12020-12-31 Richard Sandiford <richard.sandiford@arm.com> 2 3 PR tree-optimization/98302 4 * tree-vect-patterns.c (vect_determine_precisions_from_users): Make 5 sure that the precision remains greater than the shift count. 6 72020-12-31 Richard Sandiford <richard.sandiford@arm.com> 8 9 PR tree-optimization/94994 10 * tree-vect-data-refs.c (vect_vfa_align): Use dr_alignment. 11 122020-12-31 Richard Sandiford <richard.sandiford@arm.com> 13 14 PR rtl-optimization/98214 15 * genmodes.c (emit_insn_modes_h): Emit a definition of CONST_MODE_MASK. 16 (emit_mode_mask): Treat mode_mask_array as non-constant if adj_nunits. 17 (emit_mode_adjustments): Update GET_MODE_MASK when updating 18 GET_MODE_NUNITS. 19 * machmode.h (mode_mask_array): Use CONST_MODE_MASK. 20 212020-12-31 Jakub Jelinek <jakub@redhat.com> 22 23 PR tree-optimization/94802 24 * match.pd (clz(X) == 0 -> (int)X < 0): New simplification. 25 (clz(X) == (prec-1) -> X == 1): Likewise. 26 272020-12-31 Jakub Jelinek <jakub@redhat.com> 28 29 PR tree-optimization/94785 30 * match.pd ((-(X < 0) | 1) * X -> abs (X)): New simplification. 31 ((-(X < 0) | 1U) * X -> absu (X)): Likewise. 32 332020-12-31 Jakub Jelinek <jakub@redhat.com> 34 35 PR tree-optimization/98474 36 * wide-int.cc (wi::to_mpz): If wide_int has MSB set, but type 37 is unsigned and excess negative, append set bits after len until 38 precision. 39 402020-12-31 Jakub Jelinek <jakub@redhat.com> 41 42 PR c++/98206 43 * fold-const.c: Include asan.h. 44 (fold_unary_loc): Don't optimize (ptr_type) (((ptr_type2) x) p+ y) 45 into ((ptr_type) x) p+ y if sanitizing alignment in GENERIC and 46 ptr_type points to type with higher alignment than ptr_type2. 47 482020-12-31 Jakub Jelinek <jakub@redhat.com> 49 50 PR tree-optimization/56719 51 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize 52 x < C && y < C && z < C when C is a power of two constant into 53 (x | y | z) < C. 54 552020-12-30 Uroš Bizjak <ubizjak@gmail.com> 56 57 * config/i386/i386.md: Remove unnecessary clobbers 58 from combine splitters. 59 602020-12-30 Jakub Jelinek <jakub@redhat.com> 61 62 PR target/98461 63 * config/i386/sse.md (<sse2_avx2>_pmovmskb): Add splitters 64 for pmovmskb of NOT vector. 65 662020-12-29 Claudiu Zissulescu <claziss@synopsys.com> 67 68 * config/arc/arc.md (maddsidi4_split): Skip macd gen, use mac insn 69 instead. 70 (macd): Update register letters. 71 (umaddsidi4_split): Skip macdu gen, use macu insn instead. 72 (macdu): Update register letters. 73 742020-12-29 Claudiu Zissulescu <claziss@synopsys.com> 75 76 * config/arc/arc.c (arc_secondary_reload): Flip if-condition 77 predicates. 78 792020-12-29 Claudiu Zissulescu <claziss@synopsys.com> 80 81 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Check if defined 82 reg_renumber. 83 842020-12-29 Claudiu Zissulescu <claziss@synopsys.com> 85 86 * config/arc/arc.c (prepare_move_operands): Use a temporary 87 registers when we have cached mem-to-uncached mem moves. 88 892020-12-29 Claudiu Zissulescu <claziss@synopsys.com> 90 91 * config/arc/arc.md (movdi_insn): Update pattern, no predicated 92 vadd2 usage. 93 (movdf_insn): Likewise. 94 * config/arc/simdext.md (movVEC_insn): Likewise. 95 962020-12-29 Uroš Bizjak <ubizjak@gmail.com> 97 98 * config/i386/i386-expand.c (ix86_gen_TWO52): Use REAL_MODE_FORMAT 99 to determine number of mantissa bits. Use real_2expN instead 100 of real_ldexp. 101 (ix86_expand_rint): Use copy_to_reg. 102 (ix86_expand_floorceildf_32): Ditto. 103 (ix86_expand_truncdf_32): Ditto. 104 (ix86_expand_rounddf_32): Ditto. 105 (ix86_expand_floorceil): Use copy_to_reg and int_mode_for_mode. 106 (ix86_expand_trunc): Ditto. 107 (ix86_expand_round): Ditto. 108 1092020-12-28 Gerald Pfeifer <gerald@pfeifer.com> 110 111 * doc/standards.texi (HSAIL): Remove section. 112 1132020-12-28 Uroš Bizjak <ubizjak@gmail.com> 114 115 PR target/96793 116 * config/i386/i386-expand.c (ix86_expand_rint): 117 Remove the sign of the intermediate value for flag_rounding_math. 118 1192020-12-28 Uroš Bizjak <ubizjak@gmail.com> 120 121 * config/i386/i386-expand.c (ix86_expand_trunc): Use 122 existing temporary register to avoid a call to force_reg. 123 1242020-12-28 Hongyu Wang <hongyu.wang@intel.com> 125 126 * config/i386/i386.md (optab): New code attr. 127 * config/i386/sse.md (<code>v32qiv32hi2): Rename to ... 128 (<optab>v32qiv32hi2) ... this. 129 (<code>v16qiv16hi2): Likewise. 130 (<code>v8qiv8hi2): Likewise. 131 (<code>v16qiv16si2): Likewise. 132 (<code>v8qiv8si2): Likewise. 133 (<code>v4qiv4si2): Likewise. 134 (<code>v16hiv16si2): Likewise. 135 (<code>v8hiv8si2): Likewise. 136 (<code>v4hiv4si2): Likewise. 137 (<code>v8qiv8di2): Likewise. 138 (<code>v4qiv4di2): Likewise. 139 (<code>v2qiv2di2): Likewise. 140 (<code>v8hiv8di2): Likewise. 141 (<code>v4hiv4di2): Likewise. 142 (<code>v2hiv2di2): Likewise. 143 (<code>v8siv8di2): Likewise. 144 (<code>v4siv4di2): Likewise. 145 (<code>v2siv2di2): Likewise. 146 1472020-12-27 Gerald Pfeifer <gerald@pfeifer.com> 148 149 * doc/analyzer.texi (Analyzer Internals): Find a new source for 150 the "A Memory Model for Static Analysis of C Programs" paper. 151 1522020-12-25 Gerald Pfeifer <gerald@pfeifer.com> 153 154 * doc/invoke.texi (C++ Module Mapper): Fix reference to libcody. 155 1562020-12-24 Iain Sandoe <iain@sandoe.co.uk> 157 158 * configure.ac: Add gxx-libcxx-include-dir handled 159 in the same way as the regular cxx header directory. 160 * Makefile.in: Regenerated. 161 * config.in: Likewise. 162 * configure: Likewise. 163 * cppdefault.c: Pick up libc++ headers if the option 164 is enabled. 165 * cppdefault.h (struct default_include): Amend comments 166 to reflect the extended use of the cplusplus field. 167 * incpath.c (add_standard_paths): Allow for multiple 168 c++ header include path variants. 169 * doc/invoke.texi: Document the -stdlib= option. 170 1712020-12-24 Kito Cheng <kito.cheng@sifive.com> 172 173 * config/riscv/multilib-generator (arch_canonicalize): Call 174 decode for the subprocess return value. 175 1762020-12-23 Martin Sebor <msebor@redhat.com> 177 178 PR middle-end/98160 179 * builtins.c (warn_dealloc_offset): Avoid assuming calls are made 180 through declared functions and not pointers. 181 1822020-12-23 Martin Sebor <msebor@redhat.com> 183 184 PR c++/98413 185 * builtins.c (get_offset_range): Avoid non-integers/-pointers. 186 1872020-12-23 Iain Sandoe <iain@sandoe.co.uk> 188 189 * config/darwin-driver.c (validate_macosx_version_min): Allow 190 MACOSX_DEPLOYMENT_TARGET=11. 191 (darwin_default_min_version): Adjust warning spelling to avoid 192 an apostrophe. 193 1942020-12-23 Uroš Bizjak <ubizjak@gmail.com> 195 196 PR target/96793 197 * config/i386/i386-expand.c (ix86_expand_truncdf_32): 198 Remove the sign of the intermediate value for flag_rounding_math. 199 2002020-12-22 Qian Jianhua <qianjh@cn.fujitsu.com> 201 202 * config/arm/types.md (define_attr "autodetect_type"): New. 203 (define_attr "type"): Subdivide alu_shift_imm. 204 * config/arm/common.md: New file. 205 * config/aarch64/predicates.md:Include common.md. 206 * config/arm/predicates.md:Include common.md. 207 * config/aarch64/aarch64.md (*add_<shift>_<mode>): Set autodetect_type. 208 (*add_<shift>_si_uxtw): Likewise. 209 (*sub_<shift>_<mode>): Likewise. 210 (*sub_<shift>_si_uxtw): Likewise. 211 (*neg_<shift>_<mode>2): Likewise. 212 (*neg_<shift>_si2_uxtw): Likewise. 213 * config/arm/arm.md (*addsi3_carryin_shift): Likewise. 214 (add_not_shift_cin): Likewise. 215 (*subsi3_carryin_shift): Likewise. 216 (*subsi3_carryin_shift_alt): Likewise. 217 (*rsbsi3_carryin_shift): Likewise. 218 (*rsbsi3_carryin_shift_alt): Likewise. 219 (*arm_shiftsi3): Likewise. 220 (*<arith_shift_insn>_multsi): Likewise. 221 (*<arith_shift_insn>_shiftsi): Likewise. 222 (subsi3_carryin): Set new type. 223 (*if_arith_move): Set new type. 224 (*if_move_arith): Set new type. 225 (define_attr "core_cycles"): Use new type. 226 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Set autodetect_type. 227 * config/arm/thumb2.md (*orsi_not_shiftsi_si): Likewise. 228 (*thumb2_shiftsi3_short): Set new type. 229 * config/aarch64/falkor.md (falkor_alu_1_xyz): Use new type. 230 * config/aarch64/saphira.md (saphira_alu_1_xyz): Likewise. 231 * config/aarch64/thunderx.md (thunderx_arith_shift): Likewise. 232 * config/aarch64/thunderx2t99.md (thunderx2t99_alu_shift): Likewise. 233 * config/aarch64/thunderx3t110.md (thunderx3t110_alu_shift): Likewise. 234 (thunderx3t110_alu_shift1): Likewise. 235 * config/aarch64/tsv110.md (tsv110_alu_shift): Likewise. 236 * config/arm/arm1020e.md (1020alu_shift_op): Likewise. 237 * config/arm/arm1026ejs.md (alu_shift_op): Likewise. 238 * config/arm/arm1136jfs.md (11_alu_shift_op): Likewise. 239 * config/arm/arm926ejs.md (9_alu_op): Likewise. 240 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Likewise. 241 * config/arm/cortex-a17.md (cortex_a17_alu_shiftimm): Likewise. 242 * config/arm/cortex-a5.md (cortex_a5_alu_shift): Likewise. 243 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise. 244 * config/arm/cortex-a57.md (cortex_a57_alu_shift): Likewise. 245 * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise. 246 * config/arm/cortex-a8.md (cortex_a8_alu_shift): Likewise. 247 * config/arm/cortex-a9.md (cortex_a9_dp_shift): Likewise. 248 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise. 249 * config/arm/cortex-m7.md (cortex_m7_alu_shift): Likewise. 250 * config/arm/cortex-r4.md (cortex_r4_alu_shift): Likewise. 251 * config/arm/exynos-m1.md (exynos_m1_alu_shift): Likewise. 252 * config/arm/fa526.md (526_alu_shift_op): Likewise. 253 * config/arm/fa606te.md (606te_alu_op): Likewise. 254 * config/arm/fa626te.md (626te_alu_shift_op): Likewise. 255 * config/arm/fa726te.md (726te_alu_shift_op): Likewise. 256 * config/arm/fmp626.md (mp626_alu_shift_op): Likewise. 257 * config/arm/marvell-pj4.md (pj4_shift): Likewise. 258 (pj4_shift_conds): Likewise. 259 (pj4_alu_shift): Likewise. 260 (pj4_alu_shift_conds): Likewise. 261 * config/arm/xgene1.md (xgene1_alu): Likewise. 262 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise. 263 2642020-12-22 Uroš Bizjak <ubizjak@gmail.com> 265 266 PR target/96793 267 * config/i386/i386-expand.c (ix86_expand_floorceil): 268 Remove the sign of the intermediate value for flag_rounding_math. 269 (ix86_expand_floorceildf_32): Ditto. 270 2712020-12-22 liuhongt <hongtao.liu@intel.com> 272 273 * config/i386/i386.md (*one_cmpl<mode>2_1): Fix typo, change 274 alternative from 2 to 1 in attr isa. 275 2762020-12-22 Ian Lance Taylor <iant@golang.org> 277 278 * godump.c (go_output_typedef): If DECL_ORIGINAL_TYPE is NULL, use 279 TREE_TYPE. 280 2812020-12-21 Jakub Jelinek <jakub@redhat.com> 282 283 PR c++/98353 284 * gimplify.c (gimplify_init_ctor_eval_range): Gimplify value before 285 storing it into cref. 286 2872020-12-21 Iain Sandoe <iain@sandoe.co.uk> 288 289 * config/darwin-driver.c (darwin_find_version_from_kernel): 290 Compute the minor OS version from the minor kernel version. 291 2922020-12-21 Jakub Jelinek <jakub@redhat.com> 293 294 PR tree-optimization/98407 295 * fold-const.c (native_encode_initializer): When handling flexible 296 array members, fix up computation of length for memset. Also remove 297 " - o" as o is always guaranteed to be 0 in this code path. 298 2992020-12-21 Jakub Jelinek <jakub@redhat.com> 300 301 PR c++/98383 302 * gimplify.c (struct gimplify_omp_ctx): Add in_for_exprs flag. 303 (gimple_add_tmp_var): For addressable temporaries appearing in 304 simd lb, b or incr expressions, don't add a private clause unless 305 it is seen also outside of those expressions in the simd body. 306 (omp_notice_variable): Likewise. 307 (gimplify_omp_for): Set and reset in_for_exprs around gimplification 308 of lb, b or incr expressions. 309 3102020-12-20 Max Filippov <jcmvbkbc@gmail.com> 311 312 * config/xtensa/xtensa.md (bswapsi2, bswapdi2): New patterns. 313 3142020-12-20 Jakub Jelinek <jakub@redhat.com> 315 316 PR other/98400 317 * doc/invoke.texi (-mbackchain): Fix a typo - -mmo-backchain -> 318 -mno-backchain. 319 3202020-12-19 Jakub Jelinek <jakub@redhat.com> 321 322 PR middle-end/98366 323 * fold-const.c (native_encode_initializer): Don't try to 324 memset more than total_bytes with off == -1 even if len is large. 325 Handle flexible array member initializers if off == -1 and mask is 326 NULL. 327 * expr.c (convert_to_bytes): Remove. 328 (constant_byte_string): Use native_encode_initializer instead of 329 convert_to_bytes. Remove extraneous semicolon. Punt on various 330 corner-cases the APIs don't handle, like sizes > INT_MAX, 331 BITS_PER_UNIT != 8, CHAR_BIT != 8. 332 3332020-12-19 Iain Buclaw <ibuclaw@gdcproject.org> 334 335 PR d/98067 336 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Handle 337 CONST_DECL only if is_fortran, is_ada, or is_dlang. 338 3392020-12-19 Jakub Jelinek <jakub@redhat.com> 340 341 PR tree-optimization/98378 342 * gimple-ssa-store-merging.c (find_bswap_or_nop): Punt if CONSTRUCTOR 343 has no elements. 344 3452020-12-18 Jakub Jelinek <jakub@redhat.com> 346 347 * gimplify.c (struct gimplify_omp_ctx): Add has_depend member. 348 (gimplify_scan_omp_clauses): Set it to true if OMP_CLAUSE_DEPEND 349 appears on OMP_TASK. 350 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Force 351 GOVD_WRITTEN on shared variables if task construct has depend clause. 352 3532020-12-18 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 354 355 PR target/98177 356 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use 357 get_same_sized_vectype to obtain index type. 358 (vectorizable_reduction): Likewise. 359 3602020-12-18 Kwok Cheung Yeung <kcy@codesourcery.com> 361 362 * langhooks-def.h (lhd_get_decl_init): New. 363 (lhd_finish_decl_inits): New. 364 (LANG_HOOKS_GET_DECL_INIT): New. 365 (LANG_HOOKS_OMP_FINISH_DECL_INITS): New. 366 (LANG_HOOKS_DECLS): Add LANG_HOOKS_GET_DECL_INIT and 367 LANG_HOOKS_OMP_FINISH_DECL_INITS. 368 * langhooks.c (lhd_omp_get_decl_init): New. 369 (lhd_omp_finish_decl_inits): New. 370 * langhooks.h (struct lang_hooks_for_decls): Add omp_get_decl_init 371 and omp_finish_decl_inits. 372 * omp-offload.c (omp_discover_declare_target_var_r): Use 373 get_decl_init langhook in place of DECL_INITIAL. Call 374 omp_finish_decl_inits langhook at end of function. 375 3762020-12-18 Richard Sandiford <richard.sandiford@arm.com> 377 378 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Use 379 aarch64_full_sve_mode and aarch64_vq_mode directly, instead of 380 going via aarch64_simd_container_mode. 381 3822020-12-18 Tamar Christina <tamar.christina@arm.com> 383 384 * config/arm/iterators.md (rot): Add UNSPEC_VCMUL, UNSPEC_VCMUL90, 385 UNSPEC_VCMUL180, UNSPEC_VCMUL270. 386 3872020-12-17 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 388 389 * config/arm/arm-cpus.in: Add Cortex-A78C core. 390 * config/arm/arm-tables.opt: Regenerate. 391 * config/arm/arm-tune.md: Regenerate. 392 * doc/invoke.texi: Update docs. 393 3942020-12-17 Richard Sandiford <richard.sandiford@arm.com> 395 396 PR rtl-optimization/98347 397 * rtl-ssa/access-utils.h (full_register): Use regno_reg_rtx 398 instead of reg_raw_mode. 399 4002020-12-17 H.J. Lu <hjl.tools@gmail.com> 401 402 * targhooks.h (default_estimated_poly_value): Updated. 403 4042020-12-17 Nathan Sidwell <nathan@acm.org> 405 406 * doc/invoke.texi (C++ Modules): Document lack of std 407 library header units. 408 4092020-12-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 410 411 * target.h (enum poly_value_estimate_kind): Define. 412 (estimated_poly_value): Take an estimate kind argument. 413 * target.def (estimated_poly_value): Update definition for the 414 above. 415 * doc/tm.texi: Regenerate. 416 * targhooks.c (estimated_poly_value): Update prototype. 417 * tree-vect-loop.c (vect_better_loop_vinfo_p): Use min, max and 418 likely estimates of VF to pick between vinfos. 419 * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Use 420 estimated_poly_value instead of aarch64_estimated_poly_value. 421 (aarch64_estimated_poly_value): Take a kind argument and handle 422 it. 423 4242020-12-17 Andrea Corallo <andrea.corallo@arm.com> 425 426 * config/arm/arm_neon.h (vcreate_p64): Remove call to 427 '__builtin_neon_vcreatedi'. 428 4292020-12-17 Andrew MacLeod <amacleod@redhat.com> 430 431 PR tree-optimization/97750 432 * range-op.cc (operator_cast::op1_range): Handle pointers better. 433 4342020-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 435 436 * rtl-ssa.h: Include memmodel.h before tm_p.h. 437 4382020-12-17 Jakub Jelinek <jakub@redhat.com> 439 440 PR rtl-optimization/98289 441 * shrink-wrap.c (can_get_prologue): Don't punt on EDGE_CROSSING 442 incoming edges. 443 4442020-12-17 Marius Hillenbrand <mhillen@linux.ibm.com> 445 446 * configure.ac: Change --enable-s390-excess-float-precision 447 default behavior for cross compiles with target headers. 448 * configure: Regenerate. 449 * doc/install.texi: Adjust documentation. 450 4512020-12-17 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> 452 453 * config/xtensa/xtensa.md (*ashlsi3_1, *ashlsi3_3x, *ashrsi3_3x) 454 (*lshrsi3_3x): New patterns. 455 4562020-12-17 Richard Sandiford <richard.sandiford@arm.com> 457 458 * fwprop.c: Rewrite to use the RTL SSA framework. 459 4602020-12-17 Richard Sandiford <richard.sandiford@arm.com> 461 462 * configure.ac: Add rtl-ssa to the list of dependence directories. 463 * configure: Regenerate. 464 * Makefile.in (rtl-ssa-warn): New variable. 465 (OBJS): Add the rtl-ssa object files. 466 * emit-rtl.h (rtl_data::ssa): New field. 467 * rtl-ssa.h: New file. 468 * system.h: Include <functional> when INCLUDE_FUNCTIONAL is defined. 469 * rtl-ssa/access-utils.h: Likewise. 470 * rtl-ssa/accesses.h: New file. 471 * rtl-ssa/accesses.cc: Likewise. 472 * rtl-ssa/blocks.h: New file. 473 * rtl-ssa/blocks.cc: Likewise. 474 * rtl-ssa/change-utils.h: Likewise. 475 * rtl-ssa/changes.h: New file. 476 * rtl-ssa/changes.cc: Likewise. 477 * rtl-ssa/functions.h: New file. 478 * rtl-ssa/functions.cc: Likewise. 479 * rtl-ssa/insn-utils.h: Likewise. 480 * rtl-ssa/insns.h: New file. 481 * rtl-ssa/insns.cc: Likewise. 482 * rtl-ssa/internals.inl: Likewise. 483 * rtl-ssa/is-a.inl: Likewise. 484 * rtl-ssa/member-fns.inl: Likewise. 485 * rtl-ssa/movement.h: Likewise. 486 4872020-12-17 Richard Sandiford <richard.sandiford@arm.com> 488 489 * doc/rtl.texi (RTL SSA): New node. 490 4912020-12-17 Richard Sandiford <richard.sandiford@arm.com> 492 493 * rtl.h (simple_regno_set): Declare. 494 * rtlanal.c (simple_regno_set): New function. 495 4962020-12-17 Richard Sandiford <richard.sandiford@arm.com> 497 498 * rtlanal.h: New file. 499 (MEM_REGNO): New constant. 500 (rtx_obj_flags): New namespace. 501 (rtx_obj_reference, rtx_properties): New classes. 502 (growing_rtx_properties, vec_rtx_properties_base): Likewise. 503 (vec_rtx_properties): New alias. 504 * rtlanal.c: Include it. 505 (rtx_properties::try_to_add_reg): New function. 506 (rtx_properties::try_to_add_dest): Likewise. 507 (rtx_properties::try_to_add_src): Likewise. 508 (rtx_properties::try_to_add_pattern): Likewise. 509 (rtx_properties::try_to_add_insn): Likewise. 510 (vec_rtx_properties_base::grow): Likewise. 511 5122020-12-17 Richard Sandiford <richard.sandiford@arm.com> 513 514 * recog.h (insn_change_watermark): New class. 515 5162020-12-17 Richard Sandiford <richard.sandiford@arm.com> 517 518 * recog.h (insn_propagation): New class. 519 * recog.c (insn_propagation::apply_to_mem_1): New function. 520 (insn_propagation::apply_to_rvalue_1): Likewise. 521 (insn_propagation::apply_to_lvalue_1): Likewise. 522 (insn_propagation::apply_to_pattern_1): Likewise. 523 (insn_propagation::apply_to_pattern): Likewise. 524 (insn_propagation::apply_to_rvalue): Likewise. 525 5262020-12-17 Richard Sandiford <richard.sandiford@arm.com> 527 528 * recog.h (temporarily_undo_changes, redo_changes): Declare. 529 * recog.c (temporarily_undone_changes): New variable. 530 (validate_change_1, confirm_change_group): Check that it's zero. 531 (cancel_changes): Likewise. 532 (swap_change, temporarily_undo_changes): New functions. 533 (redo_changes): Likewise. 534 5352020-12-17 Richard Sandiford <richard.sandiford@arm.com> 536 537 * recog.h (validate_change_xveclen): Declare. 538 * recog.c (change_t::old_len): New field. 539 (validate_change_1): Add a new_len parameter. Conditionally 540 replace the XVECLEN of an rtx, avoiding single-element PARALLELs. 541 (validate_change_xveclen): New function. 542 (cancel_changes): Undo changes made by validate_change_xveclen. 543 5442020-12-17 Richard Sandiford <richard.sandiford@arm.com> 545 546 * rtl.h (simplify_context): New class. 547 (simplify_unary_operation, simplify_binary_operation): Use it. 548 (simplify_ternary_operation, simplify_relational_operation): Likewise. 549 (simplify_subreg, simplify_gen_unary, simplify_gen_binary): Likewise. 550 (simplify_gen_ternary, simplify_gen_relational): Likewise. 551 (simplify_gen_subreg, lowpart_subreg): Likewise. 552 * simplify-rtx.c (simplify_gen_binary): Turn into a member function 553 of simplify_context. 554 (simplify_gen_unary, simplify_gen_ternary, simplify_gen_relational) 555 (simplify_truncation, simplify_unary_operation): Likewise. 556 (simplify_unary_operation_1, simplify_byte_swapping_operation) 557 (simplify_associative_operation, simplify_logical_relational_operation) 558 (simplify_binary_operation, simplify_binary_operation_series) 559 (simplify_distributive_operation, simplify_plus_minus): Likewise. 560 (simplify_relational_operation, simplify_relational_operation_1) 561 (simplify_cond_clz_ctz, simplify_merge_mask): Likewise. 562 (simplify_ternary_operation, simplify_subreg, simplify_gen_subreg) 563 (lowpart_subreg): Likewise. 564 (simplify_binary_operation_1): Likewise. Test mem_depth when 565 deciding whether the ASHIFT or MULT form is canonical. 566 (simplify_merge_mask): Use simplify_context. 567 5682020-12-17 Richard Sandiford <richard.sandiford@arm.com> 569 570 * rtl.h (register_asm_p): Declare. 571 * recog.c (verify_changes): Split out the test for whether 572 a hard register is a register asm to... 573 * rtlanal.c (register_asm_p): ...this new function. 574 5752020-12-17 Richard Sandiford <richard.sandiford@arm.com> 576 577 * print-rtl.h (print_insn_with_notes): Declare. 578 * print-rtl.c (print_insn_with_notes): Make non-static 579 5802020-12-17 Richard Sandiford <richard.sandiford@arm.com> 581 582 * cfgrtl.h (update_cfg_for_uncondjump): Declare. 583 * combine.c (update_cfg_for_uncondjump): Move to... 584 * cfgrtl.c: ...here. 585 5862020-12-17 Richard Sandiford <richard.sandiford@arm.com> 587 588 * vec.h (array_slice): New class. 589 5902020-12-17 Richard Sandiford <richard.sandiford@arm.com> 591 592 * Makefile.in (OBJS): Add splay-tree-utils.o. 593 * system.h: Include <array> when INCLUDE_ARRAY is defined. 594 * selftest.h (splay_tree_cc_tests): Declare. 595 * selftest-run-tests.c (selftest::run_tests): Run splay_tree_cc_tests. 596 * splay-tree-utils.h: New file. 597 * splay-tree-utils.tcc: Likewise. 598 * splay-tree-utils.cc: Likewise. 599 6002020-12-17 Richard Sandiford <richard.sandiford@arm.com> 601 602 * mux-utils.h: New file. 603 6042020-12-17 Richard Sandiford <richard.sandiford@arm.com> 605 606 * obstack-utils.h: New file. 607 6082020-12-17 Richard Sandiford <richard.sandiford@arm.com> 609 610 * iterator-utils.h (derived_iterator): New class. 611 (const_derived_container, wrapper_iterator): Likewise. 612 (list_iterator): Likewise. 613 6142020-12-17 Richard Sandiford <richard.sandiford@arm.com> 615 616 * hard-reg-set.h (global_reg_set): Declare. 617 * reginfo.c (global_reg_set): New variable. 618 (init_reg_sets_1, globalize_reg): Update it when globalizing 619 registers. 620 6212020-12-16 Piotr Kubaj <pkubaj@FreeBSD.org> 622 623 * config.gcc (powerpc*le-*-freebsd*): Add. 624 * configure.ac (powerpc*le-*-freebsd*): Ditto. 625 * configure: Regenerate. 626 * config/rs6000/freebsd64.h (ASM_SPEC_COMMON): Use ENDIAN_SELECT. 627 (DEFAULT_ASM_ENDIAN): Add little endian support. 628 (LINK_OS_FREEBSD_SPEC64): Ditto. 629 6302020-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> 631 632 * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Try to 633 replace 'l32r' with 'movi' + 'slli' when optimizing for size. 634 * config/xtensa/xtensa.md (movdi): Split loading DI mode constant 635 into register pair into two loads of SI mode constants. 636 6372020-12-16 Tamar Christina <tamar.christina@arm.com> 638 639 * config/arm/arm_mve.h (__arm_vcmulq_rot90_f16): 640 (__arm_vcmulq_rot270_f16, _arm_vcmulq_rot180_f16, __arm_vcmulq_f16, 641 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32, 642 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcmlaq_f16, 643 __arm_vcmlaq_rot180_f16, __arm_vcmlaq_rot270_f16, 644 __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32, __arm_vcmlaq_rot180_f32, 645 __arm_vcmlaq_rot270_f32, __arm_vcmlaq_rot90_f32): Update builtin calls. 646 * config/arm/arm_mve_builtins.def (vcmulq_f, vcmulq_rot90_f, 647 vcmulq_rot180_f, vcmulq_rot270_f, vcmlaq_f, vcmlaq_rot90_f, 648 vcmlaq_rot180_f, vcmlaq_rot270_f): Removed. 649 (vcmulq, vcmulq_rot90, vcmulq_rot180, vcmulq_rot270, vcmlaq, 650 vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270): New. 651 * config/arm/iterators.md (mve_rot): Add UNSPEC_VCMLA, UNSPEC_VCMLA90, 652 UNSPEC_VCMLA180, UNSPEC_VCMLA270, UNSPEC_VCMUL, UNSPEC_VCMUL90, 653 UNSPEC_VCMUL180, UNSPEC_VCMUL270. 654 (VCMUL): New. 655 * config/arm/mve.md (mve_vcmulq_f<mode, mve_vcmulq_rot180_f<mode>, 656 mve_vcmulq_rot270_f<mode>, mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, 657 mve_vcmlaq_rot180_f<mode>, mve_vcmlaq_rot270_f<mode>, 658 mve_vcmlaq_rot90_f<mode>): Removed. 659 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>, 660 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>): 661 New. 662 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270, UNSPEC_VCMUL, 663 UNSPEC_VCMUL180): New. 664 (VCMULQ_F, VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, 665 VCMLAQ_F, VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F): Removed. 666 6672020-12-16 Tamar Christina <tamar.christina@arm.com> 668 669 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8, 670 __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8, 671 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, 672 __arm_vcaddq_rot90_s16, __arm_vcaddq_rot270_s16, 673 __arm_vcaddq_rot90_u32, __arm_vcaddq_rot270_u32, 674 __arm_vcaddq_rot90_s32, __arm_vcaddq_rot270_s32, 675 __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16, 676 __arm_vcaddq_rot90_f32, __arm_vcaddq_rot270_f32): Update builtin calls. 677 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u, 678 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f): 679 Removed. 680 (vcaddq_rot90, vcaddq_rot270): New. 681 * config/arm/constraints.md (Dz): Include MVE. 682 * config/arm/iterators.md (mve_rot): New. 683 (supf): Remove VCADDQ_ROT270_S, VCADDQ_ROT270_U, VCADDQ_ROT90_S, 684 VCADDQ_ROT90_U. 685 (VCADDQ_ROT270, VCADDQ_ROT90): Removed. 686 * config/arm/mve.md (mve_vcaddq_rot270_<supf><mode, 687 mve_vcaddq_rot90_<supf><mode>, mve_vcaddq_rot270_f<mode>, 688 mve_vcaddq_rot90_f<mode>): Removed. 689 (mve_vcaddq<mve_rot><mode>, mve_vcaddq<mve_rot><mode>): New. 690 * config/arm/unspecs.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, 691 VCADDQ_ROT270_U, VCADDQ_ROT90_U, VCADDQ_ROT270_F, 692 VCADDQ_ROT90_F): Removed. 693 * config/arm/vec-common.md (cadd<rot><mode>3): New. 694 6952020-12-16 Tamar Christina <tamar.christina@arm.com> 696 697 * config/aarch64/aarch64-simd.md (cadd<rot><mode>3): New. 698 * config/aarch64/iterators.md (SVE2_INT_CADD_OP): New. 699 * config/aarch64/aarch64-sve.md (cadd<rot><mode>3): New. 700 * config/aarch64/aarch64-sve2.md (cadd<rot><mode>3): New. 701 7022020-12-16 Pat Haugen <pthaugen@linux.ibm.com> 703 704 * config/rs6000/mma.md (*movxo, mma_<vvi4i4i8>, mma_<avvi4i4i8>, 705 mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>, 706 mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>): 707 Remove explicit setting of length attribute. 708 7092020-12-16 Jakub Jelinek <jakub@redhat.com> 710 711 * varasm.c (default_elf_asm_named_section): Always force 712 section flags even for sections with SECTION_LINK_ORDER flag. 713 7142020-12-16 H.J. Lu <hjl.tools@gmail.com> 715 716 PR target/98146 717 * defaults.h (SUPPORTS_SHF_GNU_RETAIN): New. 718 * varasm.c (get_section): Replace HAVE_GAS_SHF_GNU_RETAIN with 719 SUPPORTS_SHF_GNU_RETAIN. 720 (resolve_unique_section): Likewise. 721 (get_variable_section): Likewise. 722 (switch_to_section): Likewise. 723 7242020-12-16 H.J. Lu <hjl.tools@gmail.com> 725 726 PR target/98146 727 * varasm.c (switch_to_section): Warn when a symbol without used 728 attribute and a symbol with used attribute are placed in the 729 section with the same name. 730 7312020-12-16 H.J. Lu <hjl.tools@gmail.com> 732 733 PR target/98146 734 * output.h (switch_to_section): Add a tree argument, default to 735 nullptr. 736 * varasm.c (get_section): If the SECTION_RETAIN bit doesn't match, 737 return and switch to a new section later. 738 (assemble_start_function): Pass decl to switch_to_section. 739 (assemble_variable): Likewise. 740 (switch_to_section): If the SECTION_RETAIN bit doesn't match, 741 switch to a new section. 742 7432020-12-16 Jakub Jelinek <jakub@redhat.com> 744 745 PR tree-optimization/96239 746 * gimple-ssa-store-merging.c (find_bswap_or_nop): Handle a vector 747 CONSTRUCTOR. 748 (bswap_replace): Likewise. 749 7502020-12-16 Martin Liska <mliska@suse.cz> 751 752 * common.opt: Remove usage of Report. 753 * config/aarch64/aarch64.opt: Ditto. 754 * config/alpha/alpha.opt: Ditto. 755 * config/arc/arc.opt: Ditto. 756 * config/arm/arm.opt: Ditto. 757 * config/avr/avr.opt: Ditto. 758 * config/bfin/bfin.opt: Ditto. 759 * config/bpf/bpf.opt: Ditto. 760 * config/c6x/c6x.opt: Ditto. 761 * config/cr16/cr16.opt: Ditto. 762 * config/cris/cris.opt: Ditto. 763 * config/cris/elf.opt: Ditto. 764 * config/csky/csky.opt: Ditto. 765 * config/darwin.opt: Ditto. 766 * config/fr30/fr30.opt: Ditto. 767 * config/frv/frv.opt: Ditto. 768 * config/ft32/ft32.opt: Ditto. 769 * config/gcn/gcn.opt: Ditto. 770 * config/i386/cygming.opt: Ditto. 771 * config/i386/i386.opt: Ditto. 772 * config/ia64/ia64.opt: Ditto. 773 * config/ia64/ilp32.opt: Ditto. 774 * config/linux-android.opt: Ditto. 775 * config/linux.opt: Ditto. 776 * config/lm32/lm32.opt: Ditto. 777 * config/m32r/m32r.opt: Ditto. 778 * config/m68k/m68k.opt: Ditto. 779 * config/mcore/mcore.opt: Ditto. 780 * config/microblaze/microblaze.opt: Ditto. 781 * config/mips/mips.opt: Ditto. 782 * config/mmix/mmix.opt: Ditto. 783 * config/mn10300/mn10300.opt: Ditto. 784 * config/moxie/moxie.opt: Ditto. 785 * config/msp430/msp430.opt: Ditto. 786 * config/nds32/nds32.opt: Ditto. 787 * config/nios2/elf.opt: Ditto. 788 * config/nios2/nios2.opt: Ditto. 789 * config/nvptx/nvptx.opt: Ditto. 790 * config/pa/pa.opt: Ditto. 791 * config/pdp11/pdp11.opt: Ditto. 792 * config/pru/pru.opt: Ditto. 793 * config/riscv/riscv.opt: Ditto. 794 * config/rl78/rl78.opt: Ditto. 795 * config/rs6000/aix64.opt: Ditto. 796 * config/rs6000/linux64.opt: Ditto. 797 * config/rs6000/rs6000.opt: Ditto. 798 * config/rs6000/sysv4.opt: Ditto. 799 * config/rx/elf.opt: Ditto. 800 * config/rx/rx.opt: Ditto. 801 * config/s390/s390.opt: Ditto. 802 * config/s390/tpf.opt: Ditto. 803 * config/sh/sh.opt: Ditto. 804 * config/sol2.opt: Ditto. 805 * config/sparc/long-double-switch.opt: Ditto. 806 * config/sparc/sparc.opt: Ditto. 807 * config/tilegx/tilegx.opt: Ditto. 808 * config/tilepro/tilepro.opt: Ditto. 809 * config/v850/v850.opt: Ditto. 810 * config/visium/visium.opt: Ditto. 811 * config/vms/vms.opt: Ditto. 812 * config/vxworks.opt: Ditto. 813 * config/xtensa/xtensa.opt: Ditto. 814 8152020-12-16 Martin Liska <mliska@suse.cz> 816 817 * doc/options.texi: Remove Report keyword. 818 * opt-functions.awk: Print error when Report keyword 819 is used. 820 * optc-gen.awk: Do not handle Report keyword. 821 * opts.h (struct cl_option): Remove cl_report bitfield flag. 822 8232020-12-16 Martin Liska <mliska@suse.cz> 824 825 PR sanitizer/97868 826 * common.opt: Add new warning -Wtsan. 827 * doc/invoke.texi: Likewise. 828 * tsan.c (instrument_builtin_call): Warn users about unsupported 829 std::atomic_thread_fence. 830 8312020-12-16 Martin Liska <mliska@suse.cz> 832 833 PR rtl-optimization/98271 834 PR rtl-optimization/98276 835 PR tree-optimization/98279 836 * opts-common.c (set_option): Do not allow overflow for integer 837 arguments. 838 8392020-12-16 Eric Botcazou <ebotcazou@adacore.com> 840 841 PR tree-optimization/98272 842 * tree-switch-conversion.c (bit_test_cluster::emit): When finding 843 out whether the entry test can be merged in the bit test, do the 844 computation using the type of the index expression. 845 8462020-12-16 Kewen Lin <linkw@linux.ibm.com> 847 848 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use 849 paradoxical subreg instead of zero_extend for QI/HI promotion. 850 8512020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 852 853 PR target/66791 854 * config/arm/arm_neon.h: Replace calls to __builtin_vcgt* by 855 <, > operators in vclt and vcgt intrinsics respectively. 856 * config/arm/arm_neon_builtins.def: Remove entry for 857 vcgt and vcgtu. 858 8592020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 860 861 PR target/66791 862 * config/arm/arm_neon.h: Replace calls to __builtin_vneg* by - operator 863 in vneg intrinsics. 864 * config/arm/arm_neon_builtins.def: Remove entry for vneg. 865 8662020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 867 868 PR target/66791 869 * config/arm/arm_neon.h: Replace calls to __builtin_vcreate* 870 in vcreate intrinsics. 871 * config/arm/arm_neon_builtins.def: Remove entry for vcreate. 872 8732020-12-15 Jakub Jelinek <jakub@redhat.com> 874 875 PR tree-optimization/96094 876 * match.pd (X / bool_range_Y -> X): New simplification. 877 8782020-12-15 Nathan Sidwell <nathan@acm.org> 879 880 * doc/cppopts.texi: Document new cpp opt. 881 * doc/invoke.texi: Add C++20 module option & documentation. 882 8832020-12-15 Nathan Sidwell <nathan@acm.org> 884 885 * Makefile.in (CODYINC, CODYLIB, CODYLIB_H): New. Use them. 886 8872020-12-15 Jakub Jelinek <jakub@redhat.com> 888 889 PR target/98274 890 * config/i386/i386-options.c (ix86_option_override_internal): Set 891 ix86_tune_string to "generic" even when it wasn't specified and 892 ix86_arch_string is "x86-64-v2", "x86-64-v3" or "x86-64-v4". 893 Remove useless {}s around a single statement. 894 8952020-12-15 Martin Liska <mliska@suse.cz> 896 897 PR lto/98275 898 * lto-wrapper.c: Do not use -j0 when we are unable to detect 899 number of cores. 900 9012020-12-15 Jakub Jelinek <jakub@redhat.com> 902 903 * config/i386/i386-options.c (ix86_option_override_internal): Don't 904 error on -march=x86-64-v[234] with -m32 or -mabi=ms. 905 * config.gcc: Don't reject --with-arch=x86-64-v[234] or 906 --with-arch_32=x86-64-v[234]. 907 * doc/invoke.texi (-march=x86-64-v[234]): Document what the option 908 does for other ABIs. 909 9102020-12-15 Martin Liska <mliska@suse.cz> 911 912 PR gcov-profile/98273 913 * gcov.c (output_json_intermediate_file): Use stack of nested 914 functions for lines in a source file. Pop when a function ends. 915 9162020-12-15 Gerald Pfeifer <gerald@pfeifer.com> 917 918 * doc/invoke.texi (Instrumentation Options): Update link to 919 KernelAddressSanitizer. 920 9212020-12-15 Max Filippov <jcmvbkbc@gmail.com> 922 923 * config/xtensa/predicates.md (addsubx_operand): Change accepted 924 values from 2/4/8 to 1..3. 925 * config/xtensa/xtensa.md (*addx, *subx): Change RTL pattern 926 to use 'ashift' instead of 'mult'. Update operands[3] value. 927 9282020-12-14 Piotr Kubaj <pkubaj@FreeBSD.org> 929 Gerald Pfeifer <gerald@pfeifer.com> 930 931 * config/rs6000/freebsd64.h (PROCESSOR_DEFAULT): Update 932 to PROCESSOR_PPC7450. 933 (PROCESSOR_DEFAULT64): Update to PROCESSOR_POWER8. 934 9352020-12-14 Martin Sebor <msebor@redhat.com> 936 937 PR middle-end/98166 938 PR c++/57111 939 PR middle-end/98160 940 * builtins.c (check_access): Call tree_inlined_location 941 fndecl_alloc_p): Handle BUILT_IN_ALIGNED_ALLOC and 942 BUILT_IN_GOMP_ALLOC. 943 call_dealloc_p): Remove unused function. 944 (new_delete_mismatch_p): Call valid_new_delete_pair_p and rework. 945 (matching_alloc_calls_p): Handle built-in deallocation functions. 946 (warn_dealloc_offset): Corrct the handling of user-defined operators 947 delete. 948 (maybe_emit_free_warning): Avoid assuming expression is a decl. 949 Simplify. 950 * doc/extend.texi (attribute malloc): Update. 951 * tree-ssa-dce.c (valid_new_delete_pair_p): Factor code out into 952 valid_new_delete_pair_p in tree.c. 953 * tree.c (tree_inlined_location): Define new function. 954 (valid_new_delete_pair_p): Define. 955 * tree.h (tree_inlined_location): Declare. 956 (valid_new_delete_pair_p): Declare. 957 9582020-12-14 Sebastian Pop <spop@amazon.com> 959 960 * config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags. 961 9622020-12-14 Wilco Dijkstra <wdijkstr@arm.com> 963 964 * config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native. 965 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune. 966 9672020-12-14 Martin Liska <mliska@suse.cz> 968 969 * gcov.c (output_json_intermediate_file): Update comments. 970 9712020-12-14 Tamar Christina <tamar.christina@arm.com> 972 973 PR middle-end/98264 974 * tree-vect-slp-patterns.c (linear_loads_p): Exclude TOP permute. 975 9762020-12-14 Christophe Lyon <christophe.lyon@linaro.org> 977 978 * config/arm/mve.md (mve_vnegq_f): Use 'neg' instead of unspec. 979 (mve_vnegq_s): Likewise. 980 * config/arm/neon.md (neg<mode>2): Rename into neon_neg<mode>2. 981 (<absneg_str><mode>2): Rename into neon_<absneg_str><mode>2. 982 (neon_v<absneg_str><mode>): Call gen_neon_<absneg_str><mode>2. 983 (vashr<mode>3): Call gen_neon_neg<mode>2. 984 (vlshr<mode>3): Call gen_neon_neg<mode>2. 985 (neon_vneg<mode>): Call gen_neon_neg<mode>2. 986 * config/arm/unspecs.md (VNEGQ_F, VNEGQ_S): Remove. 987 * config/arm/vec-common.md (neg<mode>2): New expander. 988 9892020-12-14 Christophe Lyon <christophe.lyon@linaro.org> 990 991 * config/arm/iterators.md (VDQNOTM2): New mode iterator. 992 (supf): Remove VMVNQ_S and VMVNQ_U. 993 (VMVNQ): Remove. 994 * config/arm/mve.md (mve_vmvnq_u<mode>): New entry for vmvn 995 instruction using expression not. 996 (mve_vmvnq_s<mode>): New expander. 997 * config/arm/neon.md (one_cmpl<mode>2): Renamed into 998 one_cmpl<mode>2_neon. 999 * config/arm/unspecs.md (VMVNQ_S, VMVNQ_U): Remove. 1000 * config/arm/vec-common.md (one_cmpl<mode>2): New expander. 1001 10022020-12-14 Christophe Lyon <christophe.lyon@linaro.org> 1003 1004 * config/arm/iterators.md (supf): Remove VBICQ_S and VBICQ_U. 1005 (VBICQ): Remove. 1006 * config/arm/mve.md (mve_vbicq_u<mode>): New entry for vbic 1007 instruction using expression and not. 1008 (mve_vbicq_s<mode>): New expander. 1009 (mve_vbicq_f<mode>): Replace use of unspec by 'and not'. 1010 * config/arm/unspecs.md (VBICQ_S, VBICQ_U, VBICQ_F): Remove. 1011 10122020-12-14 Christophe Lyon <christophe.lyon@linaro.org> 1013 1014 * config/arm/iterators.md (supf): Remove VEORQ_S and VEORQ_U. 1015 (VEORQ): Remove. 1016 * config/arm/mve.md (mve_veorq_u<mode>): New entry for veor 1017 instruction using expression xor. 1018 (mve_veorq_s<mode>): New expander. 1019 (mve_veorq_f<mode>): Use 'xor' code instead of unspec. 1020 * config/arm/neon.md (xor<mode>3): Renamed into xor<mode>3_neon. 1021 * config/arm/unspecs.md (VEORQ_S, VEORQ_U, VEORQ_F): Remove. 1022 * config/arm/vec-common.md (xor<mode>3): New expander. 1023 10242020-12-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 1025 1026 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A78C core. 1027 * config/aarch64/aarch64-tune.md: Regenerate. 1028 * doc/invoke.texi: Update docs. 1029 10302020-12-14 Nikhil Benesch <nikhil.benesch@gmail.com> 1031 1032 * godump.c (go_output_typedef): Suppress typedefs whose name 1033 matches the tag of the underlying struct, union, or enum. 1034 Output declarations for enums that do not appear in typedefs. 1035 10362020-12-13 Maciej W. Rozycki <macro@linux-mips.org> 1037 1038 * config/vax/vax.c (vax_output_int_move): Unify push operation 1039 selection. 1040 10412020-12-13 Maciej W. Rozycki <macro@linux-mips.org> 1042 1043 * config/vax/vax.c (vax_output_int_move): Check the correct 1044 operand for constant 0 push operation. 1045 10462020-12-13 Maciej W. Rozycki <macro@linux-mips.org> 1047 1048 * config/vax/vax.c (vax_expand_addsub_di_operands): Handle equal 1049 input operands with subtraction. 1050 10512020-12-13 Maciej W. Rozycki <macro@linux-mips.org> 1052 1053 * config/vax/vax.c (vax_expand_addsub_di_operands): Handle the 1054 addition or subtraction of 0. 1055 10562020-12-13 Maciej W. Rozycki <macro@linux-mips.org> 1057 1058 * config/vax/vax.c (vax_expand_addsub_di_operands): Remove 1059 unused register allocation. 1060 10612020-12-13 Maciej W. Rozycki <macro@linux-mips.org> 1062 1063 * config/vax/vax.md (casesi): Use `gen_int_mode' rather than 1064 `GEN_INT' for the immediate used for lower bound adjustment. 1065 10662020-12-13 Jakub Jelinek <jakub@redhat.com> 1067 1068 PR tree-optimization/98256 1069 * tree-ssa-math-opts.c (match_uaddsub_overflow): For BIT_NOT_EXPR, 1070 only handle a single use, and insert .ADD_OVERFLOW before the 1071 comparison rather than after the BIT_NOT_EXPR. Return true iff 1072 it is BIT_NOT_EXPR and it has been removed. 1073 (math_opts_dom_walker::after_dom_children) <case BIT_NOT_EXPR>: 1074 If match_uaddsub_overflow returned true, continue instead of break. 1075 10762020-12-13 Tamar Christina <tamar.christina@arm.com> 1077 1078 Revert: 1079 2020-12-13 Tamar Christina <tamar.christina@arm.com> 1080 1081 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8, 1082 , __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8, 1083 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, __arm_vcaddq_rot90_s16, 1084 __arm_vcaddq_rot270_s16, __arm_vcaddq_rot90_u32, 1085 __arm_vcaddq_rot270_u32, __arm_vcaddq_rot90_s32, 1086 __arm_vcaddq_rot270_s32, __arm_vcmulq_rot90_f16, 1087 __arm_vcmulq_rot270_f16, __arm_vcmulq_rot180_f16, 1088 __arm_vcmulq_f16, __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16, 1089 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32, 1090 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcaddq_rot90_f32, 1091 __arm_vcaddq_rot270_f32, __arm_vcmlaq_f16, __arm_vcmlaq_rot180_f16, 1092 __arm_vcmlaq_rot270_f16, __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32, 1093 __arm_vcmlaq_rot180_f32, __arm_vcmlaq_rot270_f32, 1094 __arm_vcmlaq_rot90_f32): Update builtin calls. 1095 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u, 1096 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f, 1097 vcmulq_f, vcmulq_rot90_f, vcmulq_rot180_f, vcmulq_rot270_f, 1098 vcmlaq_f, vcmlaq_rot90_f, vcmlaq_rot180_f, vcmlaq_rot270_f): Removed. 1099 (vcaddq_rot90, vcaddq_rot270, vcmulq, vcmulq_rot90, vcmulq_rot180, 1100 vcmulq_rot270, vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270): 1101 New. 1102 * config/arm/constraints.md (Dz): Include MVE. 1103 * config/arm/iterators.md (mve_rotsplit1, mve_rotsplit2): New. 1104 (rot): Add UNSPEC_VCMLS, UNSPEC_VCMUL and UNSPEC_VCMUL180. 1105 (rot_op, rotsplit1, rotsplit2, fcmac1, VCMLA_OP, VCMUL_OP): New. 1106 * config/arm/mve.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, VCADDQ_ROT270_U, 1107 VCADDQ_ROT90_U, VCADDQ_ROT270_F, VCADDQ_ROT90_F, VCMULQ_F, 1108 VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, VCMLAQ_F, 1109 VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F, VCADDQ_ROT270_S, 1110 VCADDQ_ROT270, VCADDQ_ROT90): Removed. 1111 (mve_rot, VCMUL): New. 1112 (mve_vcaddq_rot270_<supf><mode, mve_vcaddq_rot90_<supf><mode>, 1113 mve_vcaddq_rot270_f<mode>, mve_vcaddq_rot90_f<mode>, mve_vcmulq_f<mode, 1114 mve_vcmulq_rot180_f<mode>, mve_vcmulq_rot270_f<mode>, 1115 mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, mve_vcmlaq_rot180_f<mode>, 1116 mve_vcmlaq_rot270_f<mode>, mve_vcmlaq_rot90_f<mode>): Removed. 1117 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>, 1118 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>): 1119 New. 1120 (cmul<rot_op><mode>3): Exclude MVE types. 1121 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270): New. 1122 * config/arm/vec-common.md (cadd<rot><mode>3, cmul<rot_op><mode>3, 1123 arm_vcmla<rot><mode>, cml<fcmac1><rot_op><mode>4): New. 1124 * config/arm/unspecs.md (UNSPEC_VCMUL, UNSPEC_VCMUL180, UNSPEC_VCMLS, 1125 UNSPEC_VCMLS180): New. 1126 * config/arm/neon.md (cmul<rot_op><mode>3): New. 1127 11282020-12-13 Jakub Jelinek <jakub@redhat.com> 1129 1130 PR target/92469 1131 * varasm.c (eliminable_regno_p): New function. 1132 (make_decl_rtl): Reject asm vars for frame and argp 1133 if they are different from hard frame pointer. 1134 11352020-12-13 Tamar Christina <tamar.christina@arm.com> 1136 1137 * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8, 1138 , __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8, 1139 __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, __arm_vcaddq_rot90_s16, 1140 __arm_vcaddq_rot270_s16, __arm_vcaddq_rot90_u32, 1141 __arm_vcaddq_rot270_u32, __arm_vcaddq_rot90_s32, 1142 __arm_vcaddq_rot270_s32, __arm_vcmulq_rot90_f16, 1143 __arm_vcmulq_rot270_f16, __arm_vcmulq_rot180_f16, 1144 __arm_vcmulq_f16, __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16, 1145 __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32, 1146 __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcaddq_rot90_f32, 1147 __arm_vcaddq_rot270_f32, __arm_vcmlaq_f16, __arm_vcmlaq_rot180_f16, 1148 __arm_vcmlaq_rot270_f16, __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32, 1149 __arm_vcmlaq_rot180_f32, __arm_vcmlaq_rot270_f32, 1150 __arm_vcmlaq_rot90_f32): Update builtin calls. 1151 * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u, 1152 vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f, 1153 vcmulq_f, vcmulq_rot90_f, vcmulq_rot180_f, vcmulq_rot270_f, 1154 vcmlaq_f, vcmlaq_rot90_f, vcmlaq_rot180_f, vcmlaq_rot270_f): Removed. 1155 (vcaddq_rot90, vcaddq_rot270, vcmulq, vcmulq_rot90, vcmulq_rot180, 1156 vcmulq_rot270, vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270): 1157 New. 1158 * config/arm/constraints.md (Dz): Include MVE. 1159 * config/arm/iterators.md (mve_rotsplit1, mve_rotsplit2): New. 1160 (rot): Add UNSPEC_VCMLS, UNSPEC_VCMUL and UNSPEC_VCMUL180. 1161 (rot_op, rotsplit1, rotsplit2, fcmac1, VCMLA_OP, VCMUL_OP): New. 1162 * config/arm/mve.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, VCADDQ_ROT270_U, 1163 VCADDQ_ROT90_U, VCADDQ_ROT270_F, VCADDQ_ROT90_F, VCMULQ_F, 1164 VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, VCMLAQ_F, 1165 VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F, VCADDQ_ROT270_S, 1166 VCADDQ_ROT270, VCADDQ_ROT90): Removed. 1167 (mve_rot, VCMUL): New. 1168 (mve_vcaddq_rot270_<supf><mode, mve_vcaddq_rot90_<supf><mode>, 1169 mve_vcaddq_rot270_f<mode>, mve_vcaddq_rot90_f<mode>, mve_vcmulq_f<mode, 1170 mve_vcmulq_rot180_f<mode>, mve_vcmulq_rot270_f<mode>, 1171 mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, mve_vcmlaq_rot180_f<mode>, 1172 mve_vcmlaq_rot270_f<mode>, mve_vcmlaq_rot90_f<mode>): Removed. 1173 (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>, 1174 mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>): 1175 New. 1176 (cmul<rot_op><mode>3): Exclude MVE types. 1177 * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270): New. 1178 * config/arm/vec-common.md (cadd<rot><mode>3, cmul<rot_op><mode>3, 1179 arm_vcmla<rot><mode>, cml<fcmac1><rot_op><mode>4): New. 1180 * config/arm/unspecs.md (UNSPEC_VCMUL, UNSPEC_VCMUL180, UNSPEC_VCMLS, 1181 UNSPEC_VCMLS180): New. 1182 * config/arm/neon.md (cmul<rot_op><mode>3): New. 1183 11842020-12-13 Tamar Christina <tamar.christina@arm.com> 1185 1186 * config/arm/arm.c (arm_preferred_simd_mode): Add E_HFmode. 1187 11882020-12-13 Tamar Christina <tamar.christina@arm.com> 1189 1190 * tree-vect-slp-patterns.c: New file. 1191 * Makefile.in: Add it. 1192 * doc/passes.texi: Document it. 1193 * internal-fn.def (COMPLEX_ADD_ROT90, COMPLEX_ADD_ROT270): New. 1194 * optabs.def (cadd90_optab, cadd270_optab): New. 1195 * doc/md.texi: Document them. 1196 * tree-vect-loop.c (vect_analyze_loop_2): Add dissolve code. 1197 * tree-vect-slp.c: 1198 (vect_free_slp_instance, vect_create_new_slp_node): Export. 1199 (vect_match_slp_patterns_2, vect_match_slp_patterns): New. 1200 (vect_analyze_slp): Use it. 1201 * tree-vectorizer.h (vect_free_slp_tree): Export. 1202 (enum _complex_operation): Forward declare. 1203 (class vect_pattern): New 1204 12052020-12-13 Tamar Christina <tamar.christina@arm.com> 1206 1207 * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove static inline. 1208 * tree-vect-slp.c (vect_create_new_slp_node): Remove static and only 1209 set smts if valid. 1210 * tree-vectorizer.c (vec_info::add_pattern_stmt): New. 1211 (vec_info::set_vinfo_for_stmt): Optionally enforce read-only. 1212 * tree-vectorizer.h (struct _slp_tree): Use new types. 1213 (lane_permutation_t, lane_permutation_t): New. 1214 (vect_create_new_slp_node, vect_mark_pattern_stmts): New. 1215 12162020-12-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1217 1218 * doc/sourcebuild.texi (Commands for use in dg-final, Scan the 1219 assembly output, scan-assembler-symbol-section): Document. 1220 (scan-symbol-section): Document. 1221 12222020-12-13 Richard Sandiford <richard.sandiford@arm.com> 1223 1224 * is-a.h (reinterpret_is_a_helper): New class. 1225 (static_is_a_helper): Likewise. 1226 (is_a_helper): Inherit from reinterpret_is_a_helper. 1227 (is_a_helper<const T *>): New specialization. 1228 12292020-12-13 Richard Sandiford <richard.sandiford@arm.com> 1230 1231 * coretypes.h (iterator_range): Move to... 1232 * iterator-utils.h: ...this new file. 1233 12342020-12-13 Richard Sandiford <richard.sandiford@arm.com> 1235 1236 * rtlanal.c (noop_move_p): Don't check for REG_EQUAL notes. 1237 12382020-12-13 Richard Sandiford <richard.sandiford@arm.com> 1239 1240 * vec.h (vnull::operator vec<T, A, L>): Make const. 1241 12422020-12-12 Jakub Jelinek <jakub@redhat.com> 1243 1244 PR tree-optimization/96685 1245 * match.pd (~(X - Y) -> ~X + Y): New optimization. 1246 (~X + Y -> (Y - X) - 1): Likewise. 1247 12482020-12-12 Jakub Jelinek <jakub@redhat.com> 1249 1250 PR tree-optimization/96272 1251 * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add OTHER argument. 1252 Handle BIT_NOT_EXPR. 1253 (match_uaddsub_overflow): Optimize unsigned a > ~b into 1254 __imag__ .ADD_OVERFLOW (a, b). 1255 (math_opts_dom_walker::after_dom_children): Call match_uaddsub_overflow 1256 even for BIT_NOT_EXPR. 1257 12582020-12-12 Jakub Jelinek <jakub@redhat.com> 1259 1260 PR middle-end/98183 1261 * omp-low.c (lower_omp_target): Don't add OMP_RETURN for 1262 data regions. 1263 * omp-expand.c (expand_omp_target): Don't try to remove 1264 OMP_RETURN for data regions. 1265 (build_omp_regions_1, omp_make_gimple_edges): Don't expect 1266 OMP_RETURN for data regions. 1267 12682020-12-11 Nathan Sidwell <nathan@acm.org> 1269 1270 * gcc.c (cpp_unique_options): Add Mmodules, Mno-modules. 1271 * tree-core.h (enum tree_index): Add TI_MODULE_HWM. 1272 12732020-12-11 Jim Wilson <jimw@sifive.com> 1274 1275 * varasm.c (get_section): Add DECL_P check before DECL_PRESERVE_P. 1276 12772020-12-11 Christophe Lyon <christophe.lyon@linaro.org> 1278 1279 * config/arm/iterators.md (VDQ): Remove TARGET_HAVE_MVE 1280 conditions. 1281 * config/arm/vec-common.md (and<mode>3): Use 1282 ARM_HAVE_<MODE>_ARITH. 1283 (ior<mode>3): Likewise. 1284 12852020-12-11 Claudiu Zissulescu <claziss@synopsys.com> 1286 1287 * config/arc/arc.c (arc_active_insn): Ignore all non essential 1288 instructions when getting the next active instruction. 1289 (check_store_cacheline_hazard): Update. 1290 (workaround_arc_anomaly): Remove obsolete cache hazard code. 1291 12922020-12-11 Claudiu Zissulescu <claziss@synopsys.com> 1293 1294 * config/arc/arc.c (arc_reorg): Avoid limm in BRcc. 1295 12962020-12-11 Claudiu Zissulescu <claziss@synopsys.com> 1297 1298 * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove 1299 it. 1300 (arc_sets_cc_p): Likewise. 1301 (arc_need_delay): Likewise. 1302 * config/arc/arc.c (arc_sets_cc_p): Likewise. 1303 (arc_need_delay): Likewise. 1304 (arc_scheduling_not_expected): Likewise. 1305 * config/arc/arc.md: Convert adc/sbc patterns to simple 1306 instruction definitions. 1307 13082020-12-11 Christophe Lyon <christophe.lyon@linaro.org> 1309 1310 * config/arm/iterators.md (supf): Remove VORRQ_S and VORRQ_U. 1311 (VORRQ): Remove. 1312 * config/arm/mve.md (mve_vorrq_s<mode>): New entry for vorr 1313 instruction using expression ior. 1314 (mve_vorrq_u<mode>): New expander. 1315 (mve_vorrq_f<mode>): Use ior code instead of unspec. 1316 * config/arm/neon.md (ior<mode>3): Renamed into ior<mode>3_neon. 1317 * config/arm/predicates.md (imm_for_neon_logic_operand): Enable 1318 for MVE. 1319 * config/arm/unspecs.md (VORRQ_S, VORRQ_U, VORRQ_F): Remove. 1320 * config/arm/vec-common.md (ior<mode>3): New expander. 1321 13222020-12-11 Claudiu Zissulescu <claziss@synopsys.com> 1323 1324 * config/arc/arc.md (mpyd<su_optab>_arcv2hs): New template 1325 pattern. 1326 (*pmpyd<su_optab>_arcv2hs): Likewise. 1327 (*pmpyd<su_optab>_imm_arcv2hs): Likewise. 1328 (mpyd_arcv2hs): Moved into above template. 1329 (mpyd_imm_arcv2hs): Moved into above template. 1330 (mpydu_arcv2hs): Likewise. 1331 (mpydu_imm_arcv2hs): Likewise. 1332 (su_optab): New optab prefix for sign/zero-extending operations. 1333 13342020-12-11 H.J. Lu <hjl.tools@gmail.com> 1335 1336 PR target/98219 1337 * config/i386/uintrintrin.h (__uintr_frame): Remove uirrv. 1338 13392020-12-11 Andrea Corallo <andrea.corallo@arm.com> 1340 1341 * doc/sourcebuild.texi (arm_softfloat): Improve documentation. 1342 13432020-12-11 Jakub Jelinek <jakub@redhat.com> 1344 1345 PR rtl-optimization/98229 1346 * optabs.c (expand_doubleword_mod): Canonicalize op1 and 1347 1 - INTVAL (op1) as word_mode constants when used in 1348 word_mode arithmetics. 1349 13502020-12-11 Richard Biener <rguenther@suse.de> 1351 1352 PR tree-optimization/98235 1353 * tree-vect-slp.c (vect_build_slp_tree): Exchange npermutes 1354 for limit. Decrement that for each cache miss and fail 1355 discovery when it reaches zero. 1356 (vect_build_slp_tree_2): Remove npermutes handling and 1357 simply pass down limit. 1358 (vect_build_slp_instance): Use pass down limit. 1359 (vect_analyze_slp_instance): Likewise. 1360 (vect_analyze_slp): Base the SLP discovery limit on 1361 max_tree_size and pass it down. 1362 13632020-12-11 Jakub Jelinek <jakub@redhat.com> 1364 1365 PR middle-end/98190 1366 * expr.c (expand_assignment): If to_rtx is a promoted SUBREG, 1367 ensure sign or zero extension either through use of store_expr 1368 or by extending manually. 1369 13702020-12-11 Andrea Corallo <andrea.corallo@arm.com> 1371 1372 PR rtl-optimization/97092 1373 * ira-color.c (update_costs_from_allocno): Do not carry over mode 1374 between subsequent iterations. 1375 13762020-12-11 Richard Biener <rguenther@suse.de> 1377 1378 PR tree-optimization/95582 1379 * tree-vect-patterns.c (vect_recog_bool_pattern): Check 1380 for VECT_SCALAR_BOOLEAN_TYPE_P, not just precision one. 1381 13822020-12-11 Hongyu <hongyu.wang@intel.com> 1383 1384 * common/config/i386/cpuinfo.h (get_available_features): 1385 Move check for HRESET/AVX_VNNI/UINTR out of avx512_usable. 1386 13872020-12-10 Jakub Jelinek <jakub@redhat.com> 1388 1389 PR rtl-optimization/98212 1390 * dojump.c (do_compare_rtx_and_jump): Change computation of 1391 first_prob for and_them. Add comment explaining and_them case. 1392 13932020-12-10 Andrew MacLeod <amacleod@redhat.com> 1394 1395 PR tree-optimization/98174 1396 * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Only push 1397 poor values to be examined if it isn't a pure global. 1398 (ranger_cache::block_range): Don't process pure globals. 1399 (ranger_cache::fill_block_cache): Adjust has_edge_range call. 1400 * gimple-range-gori.cc (gori_map::all_outgoing): New bitmap. 1401 (gori_map::gori_map): Allocate all_outgoing. 1402 (gori_map::is_export_p): No specified BB returns global context. 1403 (gori_map::calculate_gori): Accumulate each block into global. 1404 (gori_compute::gori_compute): Preprocess each block for exports. 1405 (gori_compute::has_edge_range_p): No edge returns global context. 1406 * gimple-range-gori.h (has_edge_range_p): Provide default parameter. 1407 14082020-12-10 Eric Botcazou <ebotcazou@adacore.com> 1409 1410 * dwarf2out.c (loc_list_from_tree_1) <PLACEHOLDER_EXPR>: Deal with 1411 a nested context type 1412 14132020-12-10 Bernd Edlinger <bernd.edlinger@hotmail.de> 1414 1415 * cfgexpand.c (expand_gimple_basic_block): Remove special handling 1416 of debug_inline_entries without block info. 1417 * tree-inline.c (remap_gimple_stmt): Drop debug_nonbind_markers when 1418 the call statement has no block info. 1419 (copy_debug_stmt): Remove debug_nonbind_markers when inlining 1420 and the block info is mapped to NULL. 1421 * tree-ssa-live.c (clear_unused_block_pointer): Remove 1422 debug_nonbind_markers originating from removed inline functions. 1423 14242020-12-10 Richard Biener <rguenther@suse.de> 1425 1426 * tree-vect-stmts.c (vectorizable_assignment): Remove special 1427 allowance of VECTOR_BOOLEAN_TYPE_P conversions. 1428 14292020-12-10 Christophe Lyon <christophe.lyon@linaro.org> 1430 1431 * config/arm/iterators.md (supf): Remove VANDQ_S and VANDQ_U. 1432 (VANQ): Remove. 1433 (VDQ): Add TARGET_HAVE_MVE condition where relevant. 1434 * config/arm/mve.md (mve_vandq_u<mode>): New entry for vand 1435 instruction using expression 'and'. 1436 (mve_vandq_s<mode>): New expander. 1437 (mve_vaddq_n_f<mode>): Use 'and' code instead of unspec. 1438 * config/arm/neon.md (and<mode>3): Rename into and<mode>3_neon. 1439 * config/arm/predicates.md (imm_for_neon_inv_logic_operand): 1440 Enable for MVE. 1441 * config/arm/unspecs.md (VANDQ_S, VANDQ_U, VANDQ_F): Remove. 1442 * config/arm/vec-common.md (and<mode>3): New expander. 1443 14442020-12-10 Richard Sandiford <richard.sandiford@arm.com> 1445 1446 PR tree-optimization/98069 1447 * tree-data-ref.c (compute_distributive_range): New function. 1448 (nop_conversion_for_offset_p): Likewise. 1449 (split_constant_offset): In the internal overload, treat integer 1450 expressions as having an implicit cast to sizetype and express 1451 them accordingly. Pass back the range of the original (uncast) 1452 expression in a new range parameter. 1453 (split_constant_offset_1): Likewise. Rework the handling of 1454 conversions to account for the implicit sizetype casts. 1455 14562020-12-10 Joel Hutton <joel.hutton@arm.com> 1457 1458 PR tree-optimization/97929 1459 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Add 1460 WIDEN_PLUS/WIDEN_MINUS case. 1461 14622020-12-10 Joel Hutton <joel.hutton@arm.com> 1463 1464 * tree-pretty-print.c (dump_generic_node): Add case for 1465 VEC_WIDEN_(PLUS/MINUS)_(HI/LO)_EXPR and WIDEN_(PLUS/MINUS)_EXPR. 1466 14672020-12-10 Richard Biener <rguenther@suse.de> 1468 1469 PR tree-optimization/98211 1470 * tree-vect-stmts.c (vectorizable_assignment): Disallow 1471 invalid conversions to bool vector types. 1472 14732020-12-10 Alexandre Oliva <oliva@adacore.com> 1474 1475 * tree.c (build_common_builtin_nodes): Drop __builtin_ from 1476 __clear_cache libname. 1477 14782020-12-10 Jakub Jelinek <jakub@redhat.com> 1479 1480 PR rtl-optimization/98212 1481 * dojump.c (do_compare_rtx_and_jump): When splitting NE and backend 1482 can do UNEQ, prefer splitting x != y into x unord y || !(x uneq y) 1483 instead of into x unord y || x ltgt y. 1484 14852020-12-10 Jakub Jelinek <jakub@redhat.com> 1486 1487 PR tree-optimization/98169 1488 * dojump.c (do_compare_rtx_and_jump): Don't split self-EQ/NE 1489 comparisons, just use ORDERED or UNORDERED. 1490 14912020-12-10 Jakub Jelinek <jakub@redhat.com> 1492 1493 PR middle-end/98205 1494 * omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling. 1495 14962020-12-10 Richard Biener <rguenther@suse.de> 1497 1498 * tree-vect-slp.c (vect_get_and_check_slp_defs): Do 1499 not mark the defs to occur in a pattern if it is the 1500 pattern root and record the original stmt defs in that 1501 case. 1502 15032020-12-10 Simon Cook <simon.cook@embecosm.com> 1504 1505 * config/riscv/multilib-generator (arch_canonicalize): Invoke 1506 python interpreter when calling arch-canonicalize script. 1507 15082020-12-10 Nikhil Benesch <nikhil.benesch@gmail.com> 1509 1510 * godump.c (go_format_type): Don't consider whether a type has 1511 been seen when determining whether to output a type by name. 1512 Consider only the use_type_name parameter. 1513 (go_output_typedef): When outputting a typedef, format the 1514 declaration's original type, which contains the name of the 1515 underlying type rather than the name of the typedef. 1516 15172020-12-09 Jakub Jelinek <jakub@redhat.com> 1518 1519 PR bootstrap/98188 1520 * tree-ssa-phiopt.c (two_value_replacement): Don't special case 1521 BOOLEAN_TYPEs for ranges, instead if get_range_info doesn't return 1522 VR_RANGE, set min/max to wi::min/max_value. 1523 15242020-12-09 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 1525 1526 * config/aarch64/aarch64-option-extensions.def 1527 (AARCH64_OPT_EXTENSION): New +pauth option in -march for AArch64. 1528 * config/aarch64/aarch64.h (AARCH64_FL_PAUTH): New pauth extension bitmask. 1529 (AARCH64_ISA_PUATH): New ISA bitmask for PAUTH. 1530 (AARCH64_FL_FOR_ARCH8_3): Add PAUTH to Armv8.3-A. 1531 (TARGET_PAUTH): New target mask to isolate PAUTH instructions. 1532 * config/aarch64/aarch64.md (do_return): Condition set to TARGET_PAUTH. 1533 * doc/invoke.texi: Update docs for +flagm and +pauth. 1534 15352020-12-09 Uroš Bizjak <ubizjak@gmail.com> 1536 1537 * config/i386/i386.h (REG_ALLOC_ORDER): Remove 1538 15392020-12-09 Richard Biener <rguenther@suse.de> 1540 1541 PR tree-optimization/98213 1542 * tree-ssa-loop-im.c (sm_seq_valid_bb): Cache successfully 1543 processed PHIs. 1544 (hoist_memory_references): Adjust. 1545 15462020-12-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1547 1548 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Move simd 1549 fields to... 1550 (simd_vec_cost): ... Here. Define. 1551 (advsimd_vec_cost): Define. 1552 (sve_vec_cost): Define. 1553 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): 1554 Define. 1555 (generic_sve_vector_cost): Likewise. 1556 (generic_vector_cost): Update. 1557 (qdf24xx_advsimd_vector_cost): Define. 1558 (qdf24xx_vector_cost): Update. 1559 (thunderx_advsimd_vector_cost): Define. 1560 (thunderx_vector_cost): Update. 1561 (tsv110_advsimd_vector_cost): Define. 1562 (tsv110_vector_cost): Likewise. 1563 (cortexa57_advsimd_vector_cost): Define. 1564 (cortexa57_vector_cost): Update. 1565 (exynosm1_advsimd_vector_cost): Define. 1566 (exynosm1_vector_cost): Update. 1567 (xgene1_advsimd_vector_cost): Define. 1568 (xgene1_vector_cost): Update. 1569 (thunderx2t99_advsimd_vector_cost): Define. 1570 (thunderx2t99_vector_cost): Update. 1571 (thunderx3t110_advsimd_vector_cost): Define. 1572 (thunderx3t110_vector_cost): Update. 1573 (aarch64_builtin_vectorization_cost): Handle sve and advsimd 1574 vector cost fields. 1575 15762020-12-09 Jakub Jelinek <jakub@redhat.com> 1577 1578 PR tree-optimization/98199 1579 * fold-const.c (native_encode_initializer): Fix handling bit-fields 1580 when off > 0. 1581 15822020-12-09 Jakub Jelinek <jakub@redhat.com> 1583 1584 PR c++/98193 1585 * fold-const.c (native_encode_initializer): Set pos to field's 1586 byte position if iterating over a field with missing initializer. 1587 15882020-12-08 Martin Liska <mliska@suse.cz> 1589 1590 PR tree-optimization/98182 1591 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Request 1592 chain linkage through false edges only. 1593 15942020-12-08 Nathan Sidwell <nathan@acm.org> 1595 1596 * tree.h (DECL_ALIGN_RAW): New. 1597 (DECL_ALIGN): Use it. 1598 (DECL_WARN_IF_NOT_ALIGN_RAW): New. 1599 (DECL_WARN_IF_NOT_ALIGN): Use it. 1600 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise. 1601 16022020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 1603 1604 PR target/66791 1605 * config/arm/arm_neon.h: Replace calls to __builtin_vmvn* by ~ 1606 in vmvn intrinsics. 1607 * config/arm/arm_neon_builtins.def: Remove entry for vmvn. 1608 16092020-12-08 Jakub Jelinek <jakub@redhat.com> 1610 1611 PR target/94440 1612 * config/i386/i386.opt (ix86_excess_precision, 1613 ix86_unsafe_math_optimizations): New TargetVariables. 1614 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): Use 1615 ix86_unsafe_math_optimizations instead of 1616 flag_unsafe_math_optimizations and ix86_excess_precision instead of 1617 flag_excess_precision. 1618 * config/i386/i386.c (ix86_excess_precision): Rename to ... 1619 (ix86_get_excess_precision): ... this. 1620 (TARGET_C_EXCESS_PRECISION): Define to ix86_get_excess_precision. 1621 * config/i386/i386-options.c (ix86_valid_target_attribute_tree, 1622 ix86_option_override_internal): Update ix86_unsafe_math_optimization 1623 from flag_unsafe_math_optimizations and ix86_excess_precision 1624 from flag_excess_precision when constructing target option nodes. 1625 (ix86_set_current_function): If flag_unsafe_math_optimizations 1626 or flag_excess_precision is different from the one recorded 1627 in TARGET_OPTION_NODE, create a new target option node for the 1628 current function and switch to that. 1629 16302020-12-08 Richard Biener <rguenther@suse.de> 1631 1632 PR tree-optimization/98192 1633 * tree-vect-slp.c (vect_build_slp_instance): Get scalar_stmts 1634 by reference. 1635 16362020-12-08 Richard Biener <rguenther@suse.de> 1637 1638 PR tree-optimization/98191 1639 * tree-vect-slp.c (vect_slp_check_for_constructors): Do not 1640 follow a non-SSA def chain. 1641 16422020-12-08 Richard Biener <rguenther@suse.de> 1643 1644 PR tree-optimization/97559 1645 * tree-ssa-sink.c (statement_sink_location): Never ignore 1646 PHIs on sink paths in irreducible regions. 1647 16482020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 1649 1650 PR target/97872 1651 * gimple-isel.cc (gimple_expand_vec_cond_expr): Try to fold 1652 x CMP y ? -1 : 0 to x CMP y. 1653 16542020-12-08 Richard Biener <rguenther@suse.de> 1655 1656 PR tree-optimization/98180 1657 * tree-vect-slp.c (vect_slp_check_for_constructors): Check the 1658 first inserted value has a def. 1659 16602020-12-08 Eric Botcazou <ebotcazou@adacore.com> 1661 1662 PR tree-optimization/96344 1663 * tree-switch-conversion.c (bit_test_cluster::emit): Compute the 1664 range only if an entry test is necessary. Merge the entry test in 1665 the bit test when possible. Use PREC local variable consistently. 1666 When there is only one test, do a single gimplification at the end. 1667 16682020-12-08 Kito Cheng <kito.cheng@sifive.com> 1669 1670 PR target/98152 1671 * config.gcc (riscv*-*-*): Checking python, python3 or python2 1672 is available, and skip doing with_arch canonicalize if no python 1673 available. 1674 16752020-12-07 Jakub Jelinek <jakub@redhat.com> 1676 1677 PR target/98147 1678 * builtins.c (default_emit_call_builtin___clear_cache): Call 1679 convert_memory_address to ptr_mode on both begin and end. 1680 16812020-12-07 Bernd Edlinger <bernd.edlinger@hotmail.de> 1682 1683 * ipa-param-manipulation.c 1684 (ipa_param_body_adjustments::modify_call_stmt): Set location info. 1685 16862020-12-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> 1687 1688 * doc/extend.texi (used function attribute): Document saving 1689 the declaration from linker garbage collection. 1690 (used variable attribute): Likewise. 1691 16922020-12-07 Richard Biener <rguenther@suse.de> 1693 1694 PR tree-optimization/98113 1695 * tree-vectorizer.h (struct slp_root): New. 1696 (_bb_vec_info::roots): New member. 1697 * tree-vect-slp.c (vect_analyze_slp): Also walk BB info 1698 roots. 1699 (_bb_vec_info::_bb_vec_info): Adjust. 1700 (_bb_vec_info::~_bb_vec_info): Likewise. 1701 (vld_cmp): New. 1702 (vect_slp_is_lane_insert): Likewise. 1703 (vect_slp_check_for_constructors): Match a series of 1704 BIT_INSERT_EXPRs as vector constructor. 1705 (vect_slp_analyze_bb_1): Continue if BB info roots is 1706 not empty. 1707 (vect_slp_analyze_bb_1): Mark the whole BIT_INSERT_EXPR root 1708 sequence as pure_slp. 1709 17102020-12-07 Richard Biener <rguenther@suse.de> 1711 1712 PR tree-optimization/98117 1713 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): 1714 Properly handle degenerate niter when setting the vector 1715 loop IV range. 1716 17172020-12-07 Andreas Krebbel <krebbel@linux.ibm.com> 1718 1719 * config/s390/s390.c (s390_emit_stack_probe): Change Pmode to 1720 word_mode. 1721 17222020-12-07 Martin Jambor <mjambor@suse.cz> 1723 1724 PR ipa/97816 1725 * ipa-cp.c (safe_add): Removed. 1726 (good_cloning_opportunity_p): Remove special handling of INT_MAX. 1727 (value_topo_info<valtype>::propagate_effects): Take care not to 1728 propagate from size one value to another through more sources. Scale 1729 propagated times with edge frequencies. Include local time and size 1730 in propagates ones here. Take care not to overflow size. 1731 (decide_about_value): Do not add local and propagated effects when 1732 passing them to good_cloning_opportunity_p. 1733 17342020-12-07 Matthias Klose <doko@ubuntu.com> 1735 1736 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING 1737 and ENABLE_RTL_FLAG_CHECKING. 1738 17392020-12-07 Richard Biener <rguenther@suse.de> 1740 1741 PR tree-optimization/98137 1742 * tree-data-ref.c (split_constant_offset_1): Use 1743 determine_value_range instead of get_range_info to handle 1744 arbitrary expressions. 1745 17462020-12-06 H.J. Lu <hjl.tools@gmail.com> 1747 1748 PR target/98162 1749 * doc/extend.texi: Remove -mcet. 1750 17512020-12-06 H.J. Lu <hjl.tools@gmail.com> 1752 1753 PR target/98161 1754 * config/i386/i386-features.c (pseudo_reg_set): Check mode of 1755 pseudo register push. 1756 17572020-12-06 Jakub Jelinek <jakub@redhat.com> 1758 1759 PR tree-optimization/96232 1760 * tree-ssa-phiopt.c (two_value_replacement): Optimize even boolean lhs 1761 cases as long as arg0 has wider precision and conditional_replacement 1762 doesn't handle that case. 1763 (tree_ssa_phiopt_worker): Don't call two_value_replacement during 1764 early phiopt. 1765 17662020-12-06 Jakub Jelinek <jakub@redhat.com> 1767 1768 PR tree-optimization/96232 1769 * match.pd (-(type)!A -> (type)A - 1): New optimization. 1770 17712020-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1772 David Edelsohn <dje.gcc@gmail.com> 1773 1774 * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Reference macro arguments. 1775 17762020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1777 1778 PR target/95294 1779 * config/vax/elf.h (REGISTER_NAMES): Append `%psl'. 1780 * config/vax/vax-modes.def (CCN, CCNZ, CCZ): New modes. 1781 * config/vax/vax-protos.h (vax_select_cc_mode): New prototype. 1782 (vax_maybe_split_dimode_move): Likewise. 1783 (vax_notice_update_cc): Remove prototype. 1784 * config/vax/vax.c (TARGET_FLAGS_REGNUM): New macro. 1785 (TARGET_CC_MODES_COMPATIBLE): Likewise. 1786 (TARGET_MD_ASM_ADJUST): Likewise. 1787 (vax_select_cc_mode): New function 1788 (vax_cc_modes_compatible): Likewise. 1789 (vax_md_asm_adjust): Likewise. 1790 (vax_notice_update_cc): Remove function. 1791 (vax_output_int_move): Factor out code checking if a DImode move 1792 may have to be split... 1793 (vax_maybe_split_dimode_move): ... into this new function. 1794 * config/vax/vax.h (FIRST_PSEUDO_REGISTER): Bump up. 1795 (FIXED_REGISTERS): Append an entry for PSL. 1796 (CALL_USED_REGISTERS): Likewise. 1797 (NOTICE_UPDATE_CC, OUTPUT_JUMP): Remove macros. 1798 (SELECT_CC_MODE): New macro. 1799 (REGISTER_NAMES): Append `psl'. 1800 * config/vax/predicates.md (const_zero_operand) 1801 (vax_cc_comparison_operator, vax_ccn_comparison_operator) 1802 (vax_ccnz_comparison_operator, vax_ccz_comparison_operator): 1803 New predicates. 1804 * config/vax/builtins.md: Rewrite for MODE_CC representation. 1805 * config/vax/vax.md: Likewise. 1806 18072020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1808 1809 * config/vax/elf.h (VAX_CC1_SPEC, VAX_CC1PLUS_SPEC): New macros. 1810 * config/vax/netbsd-elf.h (CC1_SPEC): Use VAX_CC1_SPEC rather 1811 than VAX_CC1_AND_CC1PLUS_SPEC. 1812 (CC1PLUS_SPEC): Use VAX_CC1PLUS_SPEC rather than 1813 VAX_CC1_AND_CC1PLUS_SPEC. 1814 18152020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1816 1817 * config/pdp11/pdp11.md (fcc_cc, fcc_ccnz): Use 1818 `const_double_zero' to express double zero constant. 1819 18202020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1821 1822 * read-rtl.c (rtx_reader::read_rtx_code): Handle syntactic 1823 `const_double_zero' rtx. 1824 * doc/rtl.texi (Constant Expression Types): Document it. 1825 18262020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1827 1828 * config/vax/vax.md (divmoddisi4, *amulsi4): Make the comment 1829 notation consistent with the rest of the file. 1830 18312020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1832 1833 * config/vax/vax.md (movti): Fix output predicate. Emit `movo' 1834 rather than `movh'. 1835 (divmoddisi4): Fix output predicates, correct RTL. 1836 (*amulsi4): Name insn. Fix output predicate. 1837 18382020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1839 1840 * config/vax/vax.md (mulsidi3): Fix the multiplicand predicates. 1841 (*maddsidi4, *maddsidi4_const): Likewise. Name insns. 1842 18432020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1844 1845 * config/vax/vax.md (*cmpv_2): Name insn. 1846 (*cmpv, *cmpzv, *cmpzv_2): Likewise. Fix location predicate and 1847 constraint. 1848 18492020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1850 1851 * config/vax/vax.md (extv): Rename insn to... 1852 (*extv): ... this. 1853 (extv): New expander. 1854 18552020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1856 1857 * config/vax/vax.md (*insv_aligned, *extzv_aligned) 1858 (*extv_aligned): Also make sure the memory address of a bit-field 1859 location can be adjusted in the PIC mode. 1860 18612020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1862 1863 * config/vax/vax.md (*insv_aligned, *extzv_aligned) 1864 (*extv_aligned): Reject register bit-field locations that are not 1865 aligned to the least significant bit; update output statement 1866 accordingly. 1867 18682020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1869 1870 * config/vax/vax.md (*insv_aligned, *extzv_aligned) 1871 (*extv_aligned, *extv_non_const, *extzv_non_const): Name insns. 1872 Fix location predicate. 1873 (*extzv): Name insn. 1874 (*insv): Likewise. Fix location constraint. 1875 (*insv_2): Likewise, and the predicate. 1876 18772020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1878 1879 * config/vax/vax.md (cpymemhi1): Rename insn to... 1880 (movmemhi1): ... this. 1881 (cpymemhi): Update accordingly. Remove constraints. 1882 (movmemhi): New expander. 1883 18842020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1885 1886 * config/vax/builtins.md: Add a peephole2 for QImode and HImode 1887 `ctz' operations. 1888 (any_extend): New code iterator. 1889 18902020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1891 1892 * config/vax/builtins.md (width): New mode attribute. 1893 (ffssi2): Rework expander into... 1894 (ffs<mode>2): ... this. 1895 (ctzsi2): Rework insn into... 1896 (ctz<mode>2): ... this. 1897 18982020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1899 1900 * config/vax/builtins.md (ffssi2_internal): Rename insn to... 1901 (ctzsi2): ... this. Update the RTL operation. 1902 (ffssi2): Update accordingly. 1903 * config/vax/vax.c (vax_notice_update_cc): Handle CTZ. 1904 * config/vax/vax.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro. 1905 19062020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1907 1908 * config/vax/vax.md: Include `builtins.md'. 1909 19102020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1911 1912 * config/vax/predicates.md (volatile_mem_operand) 1913 (any_memory_operand): New predicates. 1914 * config/vax/builtins.md (VUNSPEC_UNLOCK): Remove constant. 1915 (sync_lock_test_and_set<mode>): Remove `set' and `unspec' 1916 operations, match operands only. Reformat. 1917 (sync_lock_release<mode>): Likewise. Remove cruft. 1918 (jbb<ccss>i<mode>): Wrap into `unspec_volatile', use 1919 `any_memory_operand' predicate. 1920 19212020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1922 1923 * config/vax/builtins.md (bit): New int iterator. 1924 (ccss): New int attribute. 1925 (jbbssi<mode>, jbbcci<mode>): Fold insns into... 1926 (jbb<ccss>i<mode>): ... this. 1927 19282020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1929 1930 * config/vax/builtins.md (bb_mem): New mode attribute. 1931 (jbbssiqi, jbbssihi, jbbssisi): Fold insns into... 1932 (jbbssi<mode>): ... this. 1933 (jbbcciqi, jbbccihi, jbbccisi): Likewise... 1934 (jbbcci<mode>): ... this. 1935 19362020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1937 1938 * jump.c (pc_set): Also accept a jump wrapped in UNSPEC or 1939 UNSPEC_VOLATILE. 1940 (any_uncondjump_p, any_condjump_p): Update comment accordingly. 1941 19422020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1943 1944 * loop-doloop.c (add_test): Only remove the jump if `onlyjump_p'. 1945 19462020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1947 1948 * cfgrtl.c (rtl_block_empty_p): Return false if `!onlyjump_p' 1949 too. 1950 19512020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1952 1953 * sel-sched-ir.c (maybe_tidy_empty_bb): Only try to remove a 1954 conditional jump if `onlyjump_p'. 1955 19562020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1957 1958 * loop-iv.c (simplify_using_initial_values): Only process jumps 1959 that match `onlyjump_p'. 1960 (check_simple_exit): Likewise. 1961 19622020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1963 1964 * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Bail out 1965 if `!onlyjump_p'. 1966 19672020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1968 1969 * read-rtl.c: Add a page-feed separator at the start of iterator 1970 code. 1971 (struct iterator_group): Change the return type to HOST_WIDE_INT 1972 for the `find_builtin' member. Likewise the second parameter 1973 type for the `apply_iterator' member. 1974 (atoll) [!HAVE_ATOQ]: Reorder. 1975 (find_mode, find_code): Change the return type to HOST_WIDE_INT. 1976 (apply_mode_iterator, apply_code_iterator) 1977 (apply_subst_iterator): Change the second parameter type to 1978 HOST_WIDE_INT. 1979 (find_int): Handle input suitable for HOST_WIDE_INT output. 1980 (apply_int_iterator): Rewrite in terms of explicit format 1981 interpretation. 1982 (rtx_reader::read_rtx_operand) <'w'>: Fold into... 1983 <'i', 'n', 'p'>: ... this. 1984 * doc/md.texi (Int Iterators): Document 'w' rtx format support. 1985 19862020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1987 1988 * config/vax/builtins.md (ffssi2): Make preparation statements 1989 actually buildable. 1990 (ffssi2_internal): Fix input constraints; make the RTL pattern 1991 match reality for `cc0'. 1992 19932020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 1994 1995 * config/vax/vax.c (vax_address_cost): Express the cost in terms 1996 of COSTS_N_INSNS. 1997 (vax_rtx_costs): Likewise. 1998 19992020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 2000 2001 * config/vax/constraints.md (A): New constraint. 2002 * config/vax/predicates.md (external_symbolic_operand) 2003 (external_const_operand): Remove predicates. 2004 (local_symbolic_operand): Rename to... 2005 (pic_symbolic_operand): ... this, and rework. 2006 (external_memory_operand): Rename to... 2007 (non_pic_external_memory_operand): ... this, and rework. 2008 (illegal_blk_memory_operand, illegal_addsub_di_memory_operand): 2009 Update accordingly. 2010 * config/vax/vax-protos.h (vax_acceptable_pic_operand_p): New 2011 prototype. 2012 * config/vax/vax.c (vax_acceptable_pic_operand_p): New function. 2013 (vax_output_int_add): Update according to predicate rework. 2014 * config/vax/vax.h (LEGITIMATE_PIC_OPERAND_P): New macro. 2015 * config/vax/vax.md (pushlclsymreg, pushextsymreg): Fold 2016 together, and rename to... 2017 (*pushsymreg): ... this. Use the `pic_symbolic_operand' 2018 predicate and the `A' constraint for the displacement operand. 2019 (movlclsymreg, movextsymreg): Fold together, and rename to... 2020 (*movsymreg): ... this. Use the `pic_symbolic_operand' 2021 predicate and the `A' constraint for the displacement operand. 2022 (pushextsym, pushlclsym): Fold together, and rename to... 2023 (*pushsym): ... this. Use the `pic_symbolic_operand' predicate 2024 and the `A' constraint for the displacement operand. 2025 (movextsym, movlclsym): Fold together, and rename to... 2026 (*movsym): ... this. Use the `pic_symbolic_operand' predicate 2027 and the `A' constraint for the displacement operand. 2028 20292020-12-05 Maciej W. Rozycki <macro@linux-mips.org> 2030 2031 * config/vax/vax.c (print_operand): Replace `c' and `C' with 2032 `k' and `K' respectively. 2033 * config/vax/vax.md (*branch, *branch_reversed): Update 2034 accordingly. 2035 20362020-12-05 Matt Thomas <matt@3am-software.com> 2037 Maciej W. Rozycki <macro@linux-mips.org> 2038 2039 PR target/58901 2040 * reload.c (push_reload): Also reload the inner expression of a 2041 SUBREG for pseudos associated with a mode-dependent memory 2042 reference. 2043 (find_reloads): Force a reload likewise. 2044 20452020-12-05 Roman Zhuykov <zhroma@ispras.ru> 2046 2047 PR rtl-optimization/97421 2048 * modulo-sched.c (generate_prolog_epilog): Remove forward 2049 declaration, adjust last argument name and type. 2050 (const_iteration_count): Add bool pointer parameter to return 2051 whether count register is read in pre-header after its 2052 initialization. 2053 (sms_schedule): Fix count register initialization adjustment 2054 procedure according to what const_iteration_count said. 2055 20562020-12-05 Iain Sandoe <iain@sandoe.co.uk> 2057 2058 PR target/97865 2059 * configure: Regenerate. 2060 20612020-12-05 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> 2062 Sharavan Kumar <Shravan.Kumar@amd.com> 2063 2064 * common/config/i386/cpuinfo.h (get_amd_cpu) recognize znver3. 2065 * common/config/i386/i386-common.c (processor_names): Add 2066 znver3. 2067 (processor_alias_table): Add znver3 and AMDFAM19H entry. 2068 * common/config/i386/i386-cpuinfo.h (processor_types): Add 2069 AMDFAM19H. 2070 (processor_subtypes): AMDFAM19H_ZNVER3. 2071 * config.gcc (i[34567]86-*-linux* | ...): Likewise. 2072 * config/i386/driver-i386.c: (host_detect_local_cpu): Let 2073 -march=native recognize znver3 processors. 2074 * config/i386/i386-c.c (ix86_target_macros_internal): Add 2075 znver3. 2076 * config/i386/i386-options.c (m_znver3): New definition. 2077 (m_ZNVER): Include m_znver3. 2078 (processor_cost_table): Add znver3. 2079 * config/i386/i386.c (ix86_reassociation_width): Likewise. 2080 * config/i386/i386.h (TARGET_znver3): New definition. 2081 (enum processor_type): Add PROCESSOR_ZNVER3. 2082 * config/i386/i386.md (define_attr "cpu"): Add znver3. 2083 * config/i386/x86-tune-sched.c: (ix86_issue_rate): Likewise. 2084 (ix86_adjust_cost): Likewise. 2085 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS: 2086 Likewise. 2087 * config/i386/znver1.md: Add new reservations for znver3. 2088 * doc/extend.texi: Add details about znver3. 2089 * doc/invoke.texi: Likewise. 2090 20912020-12-05 Jakub Jelinek <jakub@redhat.com> 2092 2093 PR target/96226 2094 * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask, 2095 splitter after *<rotate_insn><mode>3_mask_1): Drop the masking from 2096 the patterns to split into. 2097 20982020-12-04 Jason Merrill <jason@redhat.com> 2099 2100 * vec.h (begin, end): Add overloads for vec*. 2101 * tree.c (build_constructor_from_vec): Remove *. 2102 21032020-12-04 David Edelsohn <dje.gcc@gmail.com> 2104 2105 * config/rs6000/rs6000.c (rs6000_option_override_internal): 2106 Change PTR_SIZE to POINTER_SIZE_UNITS. 2107 21082020-12-04 Hans-Peter Nilsson <hp@axis.com> 2109 Martin Sebor <msebor@redhat.com> 2110 2111 PR middle-end/94600 2112 * doc/implement-c.texi (Qualifiers implementation): Add blurb 2113 about access to the whole of a volatile aggregate object, only for 2114 same-size as a scalar object. 2115 21162020-12-04 Jakub Jelinek <jakub@redhat.com> 2117 2118 PR c++/98130 2119 * gimple.c (gimple_call_fnspec): Only return ".co " for replaceable 2120 operator delete or ".mC" for replaceable operator new called from 2121 new/delete. 2122 21232020-12-04 Jakub Jelinek <jakub@redhat.com> 2124 2125 PR target/96226 2126 * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask, 2127 splitter after *<rotate_insn><mode>3_mask_1): New combine splitters. 2128 21292020-12-04 Jakub Jelinek <jakub@redhat.com> 2130 2131 PR libstdc++/93121 2132 * fold-const.c (native_encode_initializer): Use build_zero_cst 2133 instead of build_constructor. 2134 21352020-12-04 Jakub Jelinek <jakub@redhat.com> 2136 2137 PR target/98100 2138 * cfgexpand.c (expand_gimple_basic_block): For vars with 2139 vector type, use TYPE_MODE rather than DECL_MODE. 2140 21412020-12-04 Jakub Jelinek <jakub@redhat.com> 2142 2143 * common.opt (-gdwarf32, -gdwarf64): New options. 2144 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default 2145 dwarf_offset_size to 8 if not overridden from the command line. 2146 * dwarf2out.c: Change all occurrences of DWARF_OFFSET_SIZE to 2147 dwarf_offset_size. 2148 * doc/invoke.texi (-gdwarf32, -gdwarf64): Document. 2149 21502020-12-04 Martin Liska <mliska@suse.cz> 2151 2152 * doc/tm.texi: Change argument of the record_gcc_switches 2153 hook and remove SWITCH_TYPE_* enum values. 2154 * dwarf2out.c (gen_producer_string): Move to opts.c and remove 2155 handling of the dwarf_record_gcc_switches option. 2156 (dwarf2out_early_finish): Use moved gen_producer_string 2157 function. 2158 * opts.c (gen_producer_string): New. 2159 * opts.h (gen_producer_string): New. 2160 * target.def: Change type of record_gcc_switches. 2161 * target.h (enum print_switch_type): Remove. 2162 (elf_record_gcc_switches): Change first argument. 2163 * toplev.c (MAX_LINE): Remove. 2164 (print_to_asm_out_file): Likewise. 2165 (print_to_stderr): Likewise. 2166 (print_single_switch): Likewise. 2167 (print_switch_values): Likewise. 2168 (init_asm_output): Use new gen_producer_string function. 2169 (process_options): Likewise. 2170 * varasm.c (elf_record_gcc_switches): Just save the string argument 2171 to the ELF container. 2172 21732020-12-04 Eric Botcazou <ebotcazou@adacore.com> 2174 2175 * ipa-sra.c (verify_access_tree_1): Relax assertion on the size. 2176 21772020-12-04 Martin Liska <mliska@suse.cz> 2178 2179 * doc/invoke.texi: Add missing params. 2180 21812020-12-03 Martin Sebor <msebor@redhat.com> 2182 2183 PR c++/90629 2184 PR middle-end/94527 2185 * builtins.c (access_ref::access_ref): Initialize new member. 2186 (compute_objsize): Use access_ref::deref. Handle simple pointer 2187 assignment. 2188 (expand_builtin): Remove handling of the free built-in. 2189 (call_dealloc_argno): Same. 2190 (find_assignment_location): New function. 2191 (fndecl_alloc_p): Same. 2192 (gimple_call_alloc_p): Same. 2193 (call_dealloc_p): Same. 2194 (matching_alloc_calls_p): Same. 2195 (warn_dealloc_offset): Same. 2196 (maybe_emit_free_warning): Same. 2197 * builtins.h (struct access_ref): Declare new member. 2198 (maybe_emit_free_warning): Make extern. Make use of access_ref. 2199 Handle -Wmismatched-new-delete. 2200 * calls.c (initialize_argument_information): Call 2201 maybe_emit_free_warning. 2202 * doc/extend.texi (attribute malloc): Update. 2203 * doc/invoke.texi (-Wfree-nonheap-object): Expand documentation. 2204 (-Wmismatched-new-delete): Document new option. 2205 (-Wmismatched-dealloc): Document new option. 2206 22072020-12-03 Alexandre Oliva <oliva@adacore.com> 2208 2209 * tree.c (build_common_builtin_nodes): Declare 2210 __builtin___clear_cache for all languages. 2211 * builtins.c (maybe_emit_call_builtin___clear_cache): Accept 2212 Pmode arguments. 2213 22142020-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de> 2215 2216 * config/arm/t-rtems: Add "-mthumb -mcpu=cortex-r52 2217 -mfloat-abi=hard" multilib. 2218 22192020-12-03 Uroš Bizjak <ubizjak@gmail.com> 2220 Jakub Jelinek <jakub@redhat.com> 2221 2222 PR target/98086 2223 * config/i386/i386.c (ix86_md_asm_adjustmd): Rewrite 2224 zero-extension part to use convert_to_mode. 2225 22262020-12-03 Andreas Krebbel <krebbel@linux.ibm.com> 2227 2228 * config/s390/s390.md ("@probe_stack2<mode>"): Change mode 2229 iterator to W. 2230 22312020-12-03 Richard Sandiford <richard.sandiford@arm.com> 2232 2233 * config/aarch64/aarch64-sve-builtins-base.cc (svundef_impl::fold): 2234 Delete. 2235 22362020-12-03 Eric Botcazou <ebotcazou@adacore.com> 2237 2238 PR middle-end/98099 2239 * expmed.c (flip_storage_order): In the case of a non-integer mode, 2240 sorry out if the integer mode to be used instead is not supported. 2241 22422020-12-03 Eric Botcazou <ebotcazou@adacore.com> 2243 2244 PR middle-end/98082 2245 * function.c (use_register_for_decl): Also return true for a result 2246 if cfun->tail_call_marked is true. 2247 22482020-12-03 Jakub Jelinek <jakub@redhat.com> 2249 2250 PR libstdc++/93121 2251 * fold-const.h (native_encode_initializer): Add mask argument 2252 defaulted to nullptr. 2253 (find_bitfield_repr_type): Declare. 2254 (native_interpret_aggregate): Declare. 2255 * fold-const.c (find_bitfield_repr_type): New function. 2256 (native_encode_initializer): Add mask argument and support for 2257 filling it. Handle also some bitfields without integral 2258 DECL_BIT_FIELD_REPRESENTATIVE. 2259 (native_interpret_aggregate): New function. 2260 * gimple-fold.h (clear_type_padding_in_mask): Declare. 2261 * gimple-fold.c (struct clear_padding_struct): Add clear_in_mask 2262 member. 2263 (clear_padding_flush): Handle buf->clear_in_mask. 2264 (clear_padding_union): Copy clear_in_mask. Don't error if 2265 buf->clear_in_mask is set. 2266 (clear_padding_type): Don't error if buf->clear_in_mask is set. 2267 (clear_type_padding_in_mask): New function. 2268 (gimple_fold_builtin_clear_padding): Set buf.clear_in_mask to false. 2269 * doc/extend.texi (__builtin_bit_cast): Document. 2270 22712020-12-03 Ilya Leoshkevich <iii@linux.ibm.com> 2272 2273 * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): 2274 Do not allow __builtin_constant_p on a threading path. 2275 22762020-12-03 Ilya Leoshkevich <iii@linux.ibm.com> 2277 2278 * tree-ssa-strlen.c (printf_strlen_execute): Avoid division by 2279 0. 2280 22812020-12-03 Kito Cheng <kito.cheng@sifive.com> 2282 2283 * config/riscv/multilib-generator (arch_canonicalize): Move 2284 code to arch-canonicalize, and call that script to canonicalize arch 2285 string. 2286 (canonical_order): Move code to arch-canonicalize. 2287 (LONG_EXT_PREFIXES): Ditto. 2288 (IMPLIED_EXT): Ditto. 2289 * config/riscv/arch-canonicalize: New. 2290 * config.gcc (riscv*-*-*): Canonicalize --with-arch. 2291 22922020-12-03 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 2293 2294 * config/aarch64/aarch64-option-extensions.def 2295 (AARCH64_OPT_EXTENSION): New +flagm option in -march for AArch64. 2296 * config/aarch64/aarch64.h (AARCH64_FL_FLAGM): Add new flagm extension bit 2297 mask. 2298 (AARCH64_FL_FOR_ARCH8_4): Add flagm to Armv8.4-A. 2299 * doc/invoke.texi: Update docs with +flagm. 2300 23012020-12-03 liuhongt <hongtao.liu@intel.com> 2302 2303 PR target/96906 2304 * config/i386/sse.md 2305 (<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Add a new 2306 define_split after this insn. 2307 23082020-12-03 liuhongt <hongtao.liu@intel.com> 2309 2310 PR target/97642 2311 * config/i386/i386-expand.c 2312 (ix86_expand_special_args_builtin): Don't move all-ones mask 2313 operands into register. 2314 * config/i386/sse.md (UNSPEC_MASKLOAD): New unspec. 2315 (*<avx512>_load<mode>_mask): New define_insns for masked load 2316 instructions. 2317 (<avx512>_load<mode>_mask): Changed to define_expands which 2318 specifically handle memory or all-ones mask operands. 2319 (<avx512>_blendm<mode>): Changed to define_insns which are same 2320 as original <avx512>_load<mode>_mask with adjustment of 2321 operands order. 2322 (*<avx512>_load<mode>): New define_insn_and_split which is 2323 used to optimize for masked load with all one mask. 2324 23252020-12-03 Hongyu Wang <hongyu.wang@intel.com> 2326 2327 PR target/97770 2328 * config/i386/sse.md (popcount<mode>2): New expander 2329 for SI/DI vector modes. 2330 (popcount<mode>2): Likewise for QI/HI vector modes. 2331 23322020-12-03 Alexandre Oliva <oliva@adacore.com> 2333 2334 * builtins.c (default_emit_call_builtin___clear_cache): New. 2335 (maybe_emit_call_builtin___clear_cache): New. 2336 (expand_builtin___clear_cache): Split into the above. 2337 (expand_builtin): Do not issue clear_cache call any more. 2338 * builtins.h (maybe_emit_call_builtin___clear_cache): Declare. 2339 * config/aarch64/aarch64.c (aarch64_trampoline_init): Use 2340 maybe_emit_call_builtin___clear_cache. 2341 * config/arc/arc.c (arc_trampoline_init): Likewise. 2342 * config/arm/arm.c (arm_trampoline_init): Likewise. 2343 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise. 2344 * config/csky/csky.c (csky_trampoline_init): Likewise. 2345 * config/m68k/linux.h (FInALIZE_TRAMPOLINE): Likewise. 2346 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise. 2347 * config/tilepro/tilepro.c (tilepro_trampoline_init): Ditto. 2348 * config/vxworks.c: Include rtl.h, memmodel.h, and optabs.h. 2349 (vxworks_emit_call_builtin___clear_cache): New. 2350 * config/vxworks.h (CLEAR_INSN_CACHE): Drop. 2351 (TARGET_EMIT_CALL_BUILTIN___CLEAR_CACHE): Define. 2352 * target.def (trampoline_init): In the documentation, refer to 2353 maybe_emit_call_builtin___clear_cache. 2354 (emit_call_builtin___clear_cache): New. 2355 * doc/tm.texi.in: Add new hook point. 2356 (CLEAR_CACHE_INSN): Remove duplicate 'both'. 2357 * doc/tm.texi: Rebuilt. 2358 * targhooks.h (default_meit_call_builtin___clear_cache): 2359 Declare. 2360 * tree.h (BUILTIN_ASM_NAME_PTR): New. 2361 23622020-12-03 Ilya Leoshkevich <iii@linux.ibm.com> 2363 2364 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): 2365 Do not allow __builtin_constant_p on a threading path. 2366 23672020-12-02 Jakub Jelinek <jakub@redhat.com> 2368 2369 * dwarf2out.c (add_scalar_info): Only use add_AT_wide for 128-bit 2370 constants and only in dwarf-5 or later, where DW_FORM_data16 is 2371 available. Otherwise use DW_FORM_block*/DW_FORM_exprloc with 2372 DW_OP_implicit_value to describe the constant. 2373 23742020-12-02 qing zhao <qinzhao@gcc.gnu.org> 2375 2376 PR rtl-optimization/97777 2377 * reg-stack.c (rest_of_handle_stack_regs): call 2378 df_insn_rescan_all if reg_to_stack return true. 2379 23802020-12-02 Ilya Leoshkevich <iii@linux.ibm.com> 2381 2382 * config/s390/s390-protos.h (s390_const_int_pool_entry_p): New 2383 function. 2384 * config/s390/s390.c (s390_const_int_pool_entry_p): New 2385 function. 2386 * config/s390/s390.md: Add define_peephole2 that produces llihf 2387 and oilf. 2388 23892020-12-02 Richard Biener <rguenther@suse.de> 2390 2391 PR tree-optimization/97630 2392 * tree-vectorizer.h (_slp_tree::next_node, 2393 _slp_tree::prev_node): New. 2394 (vect_slp_init): Declare. 2395 (vect_slp_fini): Likewise. 2396 * tree-vectorizer.c (vectorize_loops): Call vect_slp_init/fini. 2397 (pass_slp_vectorize::execute): Likewise. 2398 * tree-vect-slp.c (vect_slp_init): New. 2399 (vect_slp_fini): Likewise. 2400 (slp_first_node): New global. 2401 (_slp_tree::_slp_tree): Link node into the SLP tree list. 2402 (_slp_tree::~_slp_tree): Delink node from the SLP tree list. 2403 24042020-12-02 Scott Snyder <sss@li-snyder.org> 2405 2406 PR plugins/98059 2407 * vec.h (auto_delete_vec): Use 2408 DISABLE_COPY_AND_ASSIGN(auto_delete_vec) instead of 2409 DISABLE_COPY_AND_ASSIGN(auto_delete_vec<T>) to make it valid C++20 2410 after DR2237. 2411 24122020-12-02 Martin Liska <mliska@suse.cz> 2413 2414 PR ipa/98075 2415 * cgraph.c (cgraph_node::dump): Dump decl_is_malloc flag. 2416 * ipa-pure-const.c (propagate_malloc): Do not set malloc 2417 attribute for void functions. 2418 24192020-12-02 H.J. Lu <hjl.tools@gmail.com> 2420 2421 PR middle-end/93195 2422 PR middle-end/93197 2423 * configure.ac (HAVE_GAS_SECTION_LINK_ORDER): New. Define 1 if 2424 the assembler supports the section flag 'o' for specifying 2425 section with link-order. 2426 * output.h (SECTION_LINK_ORDER): New. Defined to 0x8000000. 2427 (SECTION_MACH_DEP): Changed from 0x8000000 to 0x10000000. 2428 * targhooks.c (default_print_patchable_function_entry): Pass 2429 SECTION_LINK_ORDER to switch_to_section if the section flag 'o' 2430 works. Pass current_function_decl to switch_to_section. 2431 * varasm.c (default_elf_asm_named_section): Use 'o' flag for 2432 SECTION_LINK_ORDER if assembler supports it. 2433 * config.in: Regenerated. 2434 * configure: Likewise. 2435 * doc/sourcebuild.texi: Document o_flag_in_section. 2436 24372020-12-02 H.J. Lu <hjl.tools@gmail.com> 2438 2439 * config/i386/i386.opt: Add the missing '.' for -mneeded. 2440 24412020-12-02 Richard Biener <rguenther@suse.de> 2442 2443 * tree-vect-loop.c (vect_transform_loop_stmt): Return whether 2444 we vectorized a stmt. 2445 (vect_transform_loop): Only call maybe_set_vectorized_backedge_value 2446 when we vectorized the stmt. 2447 24482020-12-02 Jakub Jelinek <jakub@redhat.com> 2449 2450 * expmed.h (expand_divmod): Only declare if GCC_OPTABS_H is defined. 2451 Add enum optabs_method argument defaulted to OPTAB_LIB_WIDEN. 2452 * expmed.c: Include expmed.h after optabs.h. 2453 (expand_divmod): Add methods argument, if it is not OPTAB_{,LIB_}WIDEN, 2454 don't choose a wider mode, and pass it to other calls instead of 2455 hardcoded OPTAB_LIB_WIDEN. Avoid emitting libcalls if not 2456 OPTAB_LIB or OPTAB_LIB_WIDEN. 2457 * optabs.c: Include expmed.h after optabs.h. 2458 (expand_doubleword_mod, expand_doubleword_divmod): Pass OPTAB_DIRECT 2459 as last argument to expand_divmod. 2460 (expand_binop): Punt if {s,u}divmod_optab has handler for double-word 2461 int_mode. 2462 * expr.c: Include expmed.h after optabs.h. 2463 * explow.c: Include expmed.h after optabs.h. 2464 24652020-12-02 Jakub Jelinek <jakub@redhat.com> 2466 2467 PR rtl-optimization/97459 2468 * optabs.h (expand_doubleword_divmod): Declare. 2469 * optabs.c (expand_doubleword_divmod): New function. 2470 (expand_binop): Use it. 2471 * internal-fn.c (expand_DIVMOD): Likewise. 2472 24732020-12-02 Martin Liska <mliska@suse.cz> 2474 2475 PR c/98087 2476 * gimple-fold.c (clear_padding_type): Do not divide by zero. 2477 24782020-12-02 Martin Liska <mliska@suse.cz> 2479 2480 * gdbinit.in: Write what each command calls 2481 for a debugging function. 2482 24832020-12-02 Kewen Lin <linkw@linux.ibm.com> 2484 2485 * config/rs6000/rs6000.c (rs6000_option_override_internal): 2486 Use OPTION_MASK_DIRECT_MOVE for Power8 target_enable instead 2487 of OPTION_MASK_HTM. 2488 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): 2489 Remove OPTION_MASK_HTM. 2490 (RS6000_CPU): Add OPTION_MASK_HTM to power8, power9 and 2491 powerpc64le entries. 2492 24932020-12-02 Uroš Bizjak <ubizjak@gmail.com> 2494 2495 PR target/98079 2496 * config/i386/i386.md (abs<mode>2): Enable QImode 2497 only for !TARGET_PARTIAL_REG_STALL. 2498 (*abs<mode>2_1): Ditto. 2499 (<maxmin:code><mode>3): Ditto. 2500 (*<maxmin:code><mode>3_1): Ditto. 2501 25022020-12-02 Martin Liska <mliska@suse.cz> 2503 2504 * diagnostic.c (diagnostic_report_diagnostic): ICE causes to 2505 terminate compiler immediately, so I guess it should be printed 2506 always. 2507 25082020-12-02 Martin Liska <mliska@suse.cz> 2509 2510 PR tree-optimization/88702 2511 * gimple-if-to-switch.cc (pass_if_to_switch::execute): 2512 Require at least 2 BBs. 2513 * gimple-if-to-switch.cc (find_conditions): Require 2514 equal precision for low and high of a range. 2515 25162020-12-02 Martin Liska <mliska@suse.cz> 2517 2518 PR tree-optimization/98084 2519 * gimple-if-to-switch.cc (find_conditions): Consider only 2520 integral types. 2521 25222020-12-02 Jeff Law <law@redhat.com> 2523 2524 * config/h8300/addsub.md (addqi3_clobber_flags): Rename to 2525 addqi3_flags and annotate with a <cczn> for define_subst. 2526 (addhi3_h8sx_clobber_flags): Likewise. 2527 (subqi3_clobber_flags, sub<mode>3_clobber_flags): Likewise. 2528 (neg<mode2>_clobber_flags): Similarly. 2529 (addsi3_clobber_flags): Similarly. Update last argument to 2530 output_plussi to distinguish when we need flags or do not need 2531 flags. 2532 (addhi3_clobber_flags): Similarly. Twiddle code for cases 2533 +-1, +-2 and +-4. 2534 * config/h8300/h8300.md: Define iterators, mode attributes and 2535 substitutions for use in compare/test elimination. 2536 * config/h8300/jumpcall.md (branch, branch_1): Use H8cc mode 2537 iterator to cover the different modes for the CC register. 2538 (branch_1_false): Likewise. 2539 25402020-12-02 Maciej W. Rozycki <macro@linux-mips.org> 2541 2542 * loop-iv.c: Fix a typo, s/bu/by/, in the `iv_analyze_expr' 2543 description in the introduction. 2544 25452020-12-02 H.J. Lu <hjl.tools@gmail.com> 2546 2547 * configure.ac (HAVE_GAS_SHF_GNU_RETAIN): New. Define 1 if 2548 the assembler supports marking sections with SHF_GNU_RETAIN flag. 2549 * output.h (SECTION_RETAIN): New. Defined as 0x4000000. 2550 (SECTION_MACH_DEP): Changed from 0x4000000 to 0x8000000. 2551 (default_unique_section): Add a bool argument. 2552 * varasm.c (get_section): Set SECTION_RETAIN for the preserved 2553 symbol with HAVE_GAS_SHF_GNU_RETAIN. 2554 (resolve_unique_section): Used named section for the preserved 2555 symbol if assembler supports SHF_GNU_RETAIN. 2556 (get_variable_section): Handle the preserved common symbol with 2557 HAVE_GAS_SHF_GNU_RETAIN. 2558 (default_elf_asm_named_section): Require the full declaration and 2559 use the 'R' flag for SECTION_RETAIN. 2560 * config.in: Regenerated. 2561 * configure: Likewise. 2562 * doc/sourcebuild.texi: Document R_flag_in_section. 2563 25642020-12-02 H.J. Lu <hjl.tools@gmail.com> 2565 2566 * config.gcc: Replace cet.o with gnu-property.o. Replace 2567 i386/t-cet with i386/t-gnu-property. 2568 * config/i386/cet.c: Renamed to ... 2569 * config/i386/gnu-property.c: This. 2570 (emit_gnu_property): New function. 2571 (file_end_indicate_exec_stack_and_cet): Renamed to ... 2572 (file_end_indicate_exec_stack_and_gnu_property): This. Call 2573 emit_gnu_property to generate GNU_PROPERTY_X86_FEATURE_1_AND and 2574 GNU_PROPERTY_X86_ISA_1_NEEDED properties. 2575 * config/i386/i386.opt (mneeded): New. 2576 * config/i386/linux-common.h (file_end_indicate_exec_stack_and_cet): 2577 Renamed to ... 2578 (file_end_indicate_exec_stack_and_gnu_property): This. 2579 (TARGET_ASM_FILE_END): Updated. 2580 * config/i386/t-cet: Renamed to ... 2581 * config/i386/t-gnu-property: This. 2582 (cet.o): Renamed to ... 2583 (gnu-property.o): This. 2584 * doc/invoke.texi: Document -mneeded. 2585 25862020-12-01 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com> 2587 2588 PR tree-optimization/96708 2589 * match.pd: New pattern for comparing X with MAX (X, Y) 2590 or MIN (X, y). 2591 25922020-12-01 Jeff Law <law@redhat.com> 2593 2594 * config/mcore/t-mcore (MULTILIB_EXCEPTIONS): Define. 2595 25962020-12-01 Martin Sebor <msebor@redhat.com> 2597 2598 PR middle-end/97595 2599 * tree.c (component_ref_size): Fail when DECL_SIZE != TYPE_SIZE. 2600 * tree.h (DECL_SIZE, TYPE_SIZE): Update comment. 2601 26022020-12-01 JeanHeyd Meneide <phdofthehouse@gmail.com> 2603 2604 * doc/cpp.texi: Document new macros. 2605 26062020-12-01 Martin Sebor <msebor@redhat.com> 2607 2608 PR middle-end/97373 2609 * builtins.c (compute_objsize): Rename... 2610 (compute_objsize_r): to this. Change order and types of arguments. 2611 Use new argument. Adjust calls to self. 2612 (access_ref::get_ref): New member function. 2613 (pointer_query::pointer_query): New member function. 2614 (pointer_query::get_ref): Same. 2615 (pointer_query::put_ref): Same. 2616 (handle_min_max_size): Change order and types of arguments. 2617 (maybe_emit_free_warning): Add a test. 2618 * builtins.h (class pointer_query): New class. 2619 (compute_objsize): Declare an overload. 2620 * gimple-ssa-sprintf.c (get_destination_size): Add argument. 2621 (handle_printf_call): Change argument type. 2622 * tree-ssa-strlen.c (adjust_last_stmt): Add an argument and use it. 2623 (maybe_warn_overflow): Same. 2624 (handle_builtin_strcpy): Same. 2625 (maybe_diag_stxncpy_trunc): Same. 2626 (handle_builtin_memcpy): Change argument type. Adjust calls. 2627 (handle_builtin_strcat): Same. 2628 (handle_builtin_memset): Same. 2629 (handle_store): Same. 2630 (strlen_check_and_optimize_call): Same. 2631 (check_and_optimize_stmt): Same. 2632 (strlen_dom_walker): Add new data members. 2633 (strlen_dom_walker::before_dom_children): Use new member. 2634 (printf_strlen_execute): Dump cache performance counters. Remove 2635 objsize pass cleanup. 2636 * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Add argument. 2637 (handle_printf_call): Change argument type. 2638 26392020-12-01 Eric Botcazou <ebotcazou@adacore.com> 2640 2641 * function.c (gen_call_used_regs_seq): In a function subject to the 2642 leaf register optimization, skip registers that are not present. 2643 * config/sparc/sparc.c (TARGET_ZERO_CALL_USED_REGS): Define to... 2644 (sparc_zero_call_used_regs): ...this. New function. 2645 26462020-12-01 Iain Sandoe <iain@sandoe.co.uk> 2647 2648 * config/darwin.h: Remove unused 'X' specs in the link spec 2649 rather than driver self-specs. 2650 26512020-12-01 Nathan Sidwell <nathan@acm.org> 2652 2653 * params.opt (lazy-modules): New. 2654 * timevar.def (TV_MODULE_IMPORT, TV_MODULE_EXPORT) 2655 (TV_MODULE_MAPPER): New. 2656 26572020-12-01 Jakub Jelinek <jakub@redhat.com> 2658 2659 PR rtl-optimization/97459 2660 * optabs.c (expand_doubleword_mod): Punt early for even op1. 2661 (expand_binop): Don't require lshr_optab double-word handler. 2662 26632020-12-01 Jakub Jelinek <jakub@redhat.com> 2664 2665 PR rtl-optimization/97954 2666 * loop-invariant.c (find_invariant_insn): Punt on JUMP_P insns. 2667 26682020-12-01 Iain Sandoe <iain@sandoe.co.uk> 2669 2670 * configure.ac (check leb128 support): Check that assemblers both 2671 accept the LEB128 directives and also give the expected output. 2672 Add a test for uleb128 with the MSB set for a 64 bit value. 2673 * configure: Regenerated. 2674 26752020-12-01 Iain Sandoe <iain@sandoe.co.uk> 2676 2677 * configure: Regnerated. 2678 26792020-12-01 Ilya Leoshkevich <iii@linux.ibm.com> 2680 2681 * optabs-tree.c (vec_cmp_icode_p): New function. 2682 (vec_cmp_eq_icode_p): New function. 2683 (expand_vec_cmp_expr_p): Use vec_cmp_icode_p and 2684 vec_cmp_eq_icode_p. 2685 (vcond_icode_p): Use get_rtx_code_1, just to be uniform with 2686 vec_cmp_icode_p. 2687 * optabs.c (unsigned_optab_p): New function. 2688 (insn_predicate_matches_p): New function. 2689 (can_vec_cmp_compare_p): New function. 2690 (can_vcond_compare_p): Use unsigned_optab_p and 2691 insn_predicate_matches_p. 2692 (get_rtx_code): Use get_rtx_code_1. 2693 (get_rtx_code_1): Version of get_rtx_code that returns UNKNOWN 2694 instead of asserting. 2695 * optabs.h (can_vec_cmp_compare_p): New function. 2696 (get_rtx_code_1): New function. 2697 26982020-12-01 Martin Liska <mliska@suse.cz> 2699 2700 PR tree-optimization/14799 2701 PR ipa/88702 2702 * Makefile.in: Add gimple-if-to-switch.o. 2703 * dbgcnt.def (DEBUG_COUNTER): Add new debug counter. 2704 * passes.def: Include new pass_if_to_switch pass. 2705 * timevar.def (TV_TREE_IF_TO_SWITCH): New timevar. 2706 * tree-pass.h (make_pass_if_to_switch): New. 2707 * tree-ssa-reassoc.c (struct operand_entry): Move to the header. 2708 (dump_range_entry): Move to header file. 2709 (debug_range_entry): Likewise. 2710 (no_side_effect_bb): Make it global. 2711 * tree-switch-conversion.h (simple_cluster::simple_cluster): 2712 Add inline for couple of functions in order to prevent error 2713 about multiple defined symbols. 2714 * gimple-if-to-switch.cc: New file. 2715 * tree-ssa-reassoc.h: New file. 2716 27172020-12-01 Marius Hillenbrand <mhillen@linux.ibm.com> 2718 2719 * configure.ac: Add configure option 2720 --enable-s390-excess-float-precision and check to derive default 2721 from glibc. 2722 * config/s390/s390.c: Guard s390_excess_precision with an ifdef 2723 for ENABLE_S390_EXCESS_FLOAT_PRECISION. 2724 * doc/install.texi: Document --enable-s390-excess-float-precision. 2725 * configure: Regenerate. 2726 * config.in: Regenerate. 2727 27282020-12-01 Martin Liska <mliska@suse.cz> 2729 2730 PR ipa/98057 2731 * symtab.c (symtab_node::set_section_for_node): Drop 2732 implicit_section if x_section is NULL. 2733 27342020-12-01 Jakub Jelinek <jakub@redhat.com> 2735 2736 PR target/98063 2737 * config/i386/i386-expand.c (ix86_expand_call): Handle non-plt 2738 CM_LARGE_PIC calls. 2739 27402020-12-01 Richard Biener <rguenther@suse.de> 2741 2742 PR middle-end/98070 2743 * builtins.c (builtin_fnspec): realloc is ".Cw ". 2744 27452020-12-01 Jakub Jelinek <jakub@redhat.com> 2746 2747 * dwarf2out.c (gen_compile_unit_die): Treat GNU C++20 2748 like C++14 for -gdwarf-5. 2749 27502020-12-01 Jakub Jelinek <jakub@redhat.com> 2751 2752 PR debug/97989 2753 * gcc.c (cpp_unique_options): Add -dD if %:debug-level-gt(2) 2754 rather than g3|ggdb3|gstabs3|gxcoff3|gvms3. 2755 27562020-12-01 Kito Cheng <kito.cheng@sifive.com> 2757 2758 * config.gcc (riscv*-*-*): Drop some commited accidentally code. 2759 27602020-11-30 Jeff Law <law@redhat.com> 2761 2762 * symtab.c (set_section_for_node): Add function comment. 2763 (set_section_from_node): Likewise. 2764 27652020-11-30 David Malcolm <dmalcolm@redhat.com> 2766 2767 * doc/plugins.texi (Plugin callbacks): Add PLUGIN_ANALYZER_INIT. 2768 * plugin.c (register_callback): Likewise. 2769 (invoke_plugin_callbacks_full): Likewise. 2770 * plugin.def (PLUGIN_ANALYZER_INIT): New event. 2771 27722020-11-30 Jeff Law <law@redhat.com> 2773 2774 * config/h8300/bitfield.md: Remove "cc" attribute on any 2775 insns where it remained. 2776 * config/h8300/combiner.md: Likewise. 2777 * config/h8300/jumpcall.md: Likewise. 2778 * config/h8300/logical.md: Likewise. 2779 * config/h8300/testcompare.md: Likewise. 2780 * config/h8300/h8300.md (old_cc attr): Renamed from cc attr. 2781 * config/h8300/h8300.c (notice_update_cc): Remove. 2782 (compute_plussi_cc): Change references to CC_* to OLD_CC_. 2783 (compute_logical_op_cc): Likewise. 2784 (shift_one, shift_two): Likewise. 2785 (compute_a_shift_cc): Likewise. 2786 (get_shift_alg): Likewise. 2787 (struct shift_insn): Change type of cc_valid field. 2788 (struct shift_info): Likewise. 2789 * config/h8300/save.md: Remove accidentially created file. 2790 27912020-11-30 Richard Sandiford <richard.sandiford@arm.com> 2792 2793 PR rtl-optimization/98037 2794 * dse.c (find_shift_sequence): Iterate over all integers and 2795 skip modes that are too small. 2796 27972020-11-30 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com> 2798 2799 PR tree-optimization/96679 2800 * match.pd (((b | c) & a) | b -> (a & c) | b): New pattern. 2801 28022020-11-30 Martin Liska <mliska@suse.cz> 2803 2804 * passes.c (emergency_dump_function): Dump symtab when 2805 we are in an IPA pass. 2806 28072020-11-30 Richard Biener <rguenther@suse.de> 2808 2809 PR tree-optimization/98064 2810 * tree-vect-loop.c (vectorizable_live_operation): Avoid 2811 breaking LC SSA for BB vectorization. 2812 28132020-11-30 Jonathan Wakely <jwakely@redhat.com> 2814 2815 * doc/sourcebuild.texi (Directives): Fix description of 2816 dg-require-effective-target to include "target" in selector. 2817 28182020-11-30 Richard Biener <rguenther@suse.de> 2819 2820 PR tree-optimization/98048 2821 * tree-vect-generic.c (expand_vector_operations_1): Use the 2822 correct type for the scalar LHS replacement. 2823 28242020-11-30 Martin Liska <mliska@suse.cz> 2825 2826 PR tree-optimization/98066 2827 * gimple-isel.cc (gimple_expand_vec_exprs): Return when 2828 gimple_expand_vec_exprs replaces last stmt. 2829 28302020-11-30 Ilya Leoshkevich <iii@linux.ibm.com> 2831 2832 * cfgrtl.c (rtl_bb_info_initialized_p): New function. 2833 (rtl_dump_bb): Use rtl_bb_info_initialized_p before accessing bb 2834 insns. 2835 28362020-11-30 Iain Buclaw <ibuclaw@gdcproject.org> 2837 2838 PR d/87818 2839 * config.gcc (*-*-freebsd*): Add freebsd-d.o and t-freebsd. 2840 * config/freebsd-d.c: New file. 2841 * config/t-freebsd: New file. 2842 28432020-11-30 Jakub Jelinek <jakub@redhat.com> 2844 2845 PR rtl-optimization/97459 2846 * internal-fn.h (expand_addsub_overflow): Declare. 2847 * internal-fn.c (expand_addsub_overflow): No longer static. 2848 * optabs.c (expand_doubleword_mod): New function. 2849 (expand_binop): Optimize double-word mod with constant divisor. 2850 28512020-11-30 Kito Cheng <kito.cheng@sifive.com> 2852 2853 * config.gcc (riscv*-*-*): Add TARGET_RISCV_DEFAULT_ABI and 2854 TARGET_RISCV_DEFAULT_ARCH to tm_defines. 2855 Remove including riscv/withmultilib.h for --with-multilib-list. 2856 * config/riscv/riscv.h (STRINGIZING): New. 2857 (__STRINGIZING): Ditto. 2858 (MULTILIB_DEFAULTS): Ditto. 2859 * config/riscv/withmultilib.h: Remove. 2860 28612020-11-30 Kito Cheng <kito.cheng@sifive.com> 2862 2863 * gcc.c (print_multilib_info): Check default arguments not 2864 appeared in multi-lib option list with '!' 2865 28662020-11-30 Jeff Law <law@redhat.com> 2867 2868 * config/ft32/ft32.md (umulsidi3): Do not allow constants as 2869 arguments. 2870 28712020-11-29 Jan Hubicka <jh@suse.cz> 2872 2873 * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix 2874 handling of ignore_stores. 2875 28762020-11-29 Jan Hubicka <jh@suse.cz> 2877 2878 PR jit/97867 2879 * symtab-thunks.h (thunk_info::release): Use ggc_delete. 2880 28812020-11-29 Martin Sebor <msebor@redhat.com> 2882 2883 PR middle-end/92936 2884 PR middle-end/92940 2885 PR middle-end/89428 2886 * builtins.c (access_ref::access_ref): Initialize member. 2887 (access_ref::phi): New function. 2888 (access_ref::get_ref): New function. 2889 (access_ref::add_offset): Remove duplicate assignment. 2890 (maybe_warn_for_bound): Add "maybe" kind of warning messages. 2891 (warn_for_access): Same. 2892 (inform_access): Rename... 2893 (access_ref::inform_access): ...to this. Print PHI arguments. Format 2894 offset the same as size and simplify. Improve printing of allocation 2895 functions and VLAs. 2896 (check_access): Adjust to the above. 2897 (gimple_parm_array_size): Change argument. 2898 (handle_min_max_size): New function. 2899 * builtins.h (class ssa_name_limit_t): Move class here from 2900 tree-ssa-strlen.c. 2901 (struct access_ref): Declare new members. 2902 (gimple_parm_array_size): Change argument. 2903 * tree-ssa-strlen.c (maybe_warn_overflow): Use access_ref and simplify. 2904 (handle_builtin_memcpy): Correct argument passed to maybe_warn_overflow. 2905 (handle_builtin_memset): Same. 2906 (class ssa_name_limit_t): Move class to builtins.{h,c}. 2907 29082020-11-29 Iain Buclaw <ibuclaw@gdcproject.org> 2909 2910 * config.gcc (*-*-darwin*): Set d_target_objs and target_has_targetdm. 2911 * config/elfos.h (TARGET_D_MINFO_SECTION): New macro. 2912 (TARGET_D_MINFO_START_NAME): New macro. 2913 (TARGET_D_MINFO_END_NAME): New macro. 2914 * config/t-darwin: Add darwin-d.o. 2915 * doc/tm.texi: Regenerate. 2916 * doc/tm.texi.in (D language and ABI): Add @hook for 2917 TARGET_D_MINFO_SECTION, TARGET_D_MINFO_START_NAME, and 2918 TARGET_D_MINFO_END_NAME. 2919 * config/darwin-d.c: New file. 2920 29212020-11-29 Jan Hubicka <jh@suse.cz> 2922 2923 * tree-ssa-structalias.c (handle_pure_call): Skip EAF_UNUSED 2924 parameters. 2925 29262020-11-29 Jan Hubicka <jh@suse.cz> 2927 2928 * ipa-modref.c (modref_lattice::merge): Do nothing if F is EAF_UNUSED. 2929 (analyze_parms): Detect unused params. 2930 (modref_merge_call_site_flags): Merge correct EAF_UNUSED. 2931 29322020-11-28 Eric Botcazou <ebotcazou@adacore.com> 2933 2934 PR target/97939 2935 * config/sparc/predicates.md (arith_double_add_operand): Comment. 2936 * config/sparc/sparc.md (uaddvdi4): Use arith_double_operand. 2937 (addvdi4): Use arith_double_add_operand. 2938 (addsi3): Remove useless attributes. 2939 (addvsi4): Use arith_add_operand. 2940 (*cmp_ccv_plus): Likewise and add second alternative accordingly. 2941 (*cmp_ccxv_plus): Likewise. 2942 (*cmp_ccv_plus_set): Likewise. 2943 (*cmp_ccxv_plus_set): Likewise. 2944 (*cmp_ccv_plus_sltu_set): Likewise. 2945 (usubvdi4): Use arith_double_operand. 2946 (subvdi4): Use arith_double_add_operand. 2947 (subsi3): Remove useless attributes. 2948 (subvsi4): Use arith_add_operand. 2949 (*cmp_ccv_minus): Likewise and add second alternative accordingly. 2950 (*cmp_ccxv_minus): Likewise. 2951 (*cmp_ccv_minus_set): Likewise. 2952 (*cmp_ccxv_minus_set): Likewise. 2953 (*cmp_ccv_minus_sltu_set): Likewise. 2954 (negsi2): Use register_operand. 2955 (unegvsi3): Likewise. 2956 (negvsi3) Likewise. 2957 (*cmp_ccnz_neg): Likewise. 2958 (*cmp_ccxnz_neg): Likewise. 2959 (*cmp_ccnz_neg_set): Likewise. 2960 (*cmp_ccxnz_neg_set): Likewise. 2961 (*cmp_ccc_neg_set): Likewise. 2962 (*cmp_ccxc_neg_set): Likewise. 2963 (*cmp_ccc_neg_sltu_set): Likewise. 2964 (*cmp_ccv_neg): Likewise. 2965 (*cmp_ccxv_neg): Likewise. 2966 (*cmp_ccv_neg_set): Likewise. 2967 (*cmp_ccxv_neg_set): Likewise. 2968 (*cmp_ccv_neg_sltu_set): Likewise. 2969 29702020-11-27 H.J. Lu <hjl.tools@gmail.com> 2971 2972 PR other/98027 2973 * doc/install.texi: Default to --enable-cet=auto. 2974 29752020-11-27 Thomas Schwinge <thomas@codesourcery.com> 2976 2977 * omp-oacc-kernels-decompose.cc (flatten_binds): Don't choke on 2978 empty GIMPLE sequence, and examine all statements contained in 2979 inner 'GIMPLE_BIND'. 2980 29812020-11-27 Richard Biener <rguenther@suse.de> 2982 2983 PR tree-optimization/98024 2984 * tree-ssa-pre.c (insert): Fix successor RPO order check. 2985 (do_pre_regular_insertion): When inserting an assignment 2986 in place of an all-same-value PHI still record that into 2987 PHI_GEN. 2988 29892020-11-27 Jakub Jelinek <jakub@redhat.com> 2990 2991 * tree-ssanames.c (get_range_info): Handle INTEGER_CST by returning 2992 VR_RANGE with both *min and *max set to the wide_int value of the 2993 INTEGER_CST. Return VR_VARYING for non-SSA_NAMEs. 2994 * match.pd ((t * 2) / 2) -> t): Handle also @0 being INTEGER_CST. 2995 Simplify by calling get_range_info on everything. 2996 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Simplify by calling 2997 get_range_info on everything. 2998 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise. 2999 30002020-11-27 Jakub Jelinek <jakub@redhat.com> 3001 3002 PR libstdc++/88101 3003 * gimple-fold.c (clear_padding_type): Ignore fields with is_empty_type 3004 types. 3005 30062020-11-27 Tobias Burnus <tobias@codesourcery.com> 3007 3008 PR c/97880 3009 * omp-expand.c (expand_oacc_collapse_init, expand_oacc_collapse_vars): 3010 Use now passed diff_type. 3011 (expand_oacc_for): Take largest type for diff_type, taking tiling 3012 and collapsing into account. 3013 30142020-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 3015 3016 * config/aarch64/aarch64.opt 3017 (-param=aarch64-autovec-preference): Define. 3018 * config/aarch64/aarch64.c (aarch64_override_options_internal): 3019 Set aarch64_sve_compare_costs to 0 when preferring only Advanced 3020 SIMD. 3021 (aarch64_cmp_autovec_modes): Define. 3022 (aarch64_preferred_simd_mode): Adjust to use the above. 3023 (aarch64_autovectorize_vector_modes): Likewise. 3024 * doc/invoke.texi: Document aarch64-autovec-preference param. 3025 30262020-11-27 Xionghu Luo <luoxhu@linux.ibm.com> 3027 3028 * config/rs6000/rs6000-call.c (altivec_expand_vec_set_builtin): 3029 Change call param 2 from type int to rtx. 3030 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set): 3031 Likewise. 3032 * config/rs6000/rs6000.c (rs6000_expand_vector_init): 3033 Change call param 2 from type int to rtx. 3034 (rs6000_expand_vector_set): Likewise. 3035 * config/rs6000/vector.md (vec_set<mode>): Support both constant 3036 and variable index vec_set. 3037 30382020-11-27 Haochen Gui <guihaoc@gcc.gnu.org> 3039 3040 * config/rs6000/rs6000-protos.h (rs6000_output_addr_vec_elt): Declare. 3041 * config/rs6000/rs6000.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): 3042 Define. 3043 (rs6000_gen_pic_addr_diff_vec, rs6000_output_addr_vec_elt): Implement. 3044 * config/rs6000/rs6000.h (CASE_VECTOR_PC_RELATIVE, 3045 CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Define. 3046 * config/rs6000/rs6000.md (tablejump<mode>_absolute, 3047 tablejump<mode>_absolute_nospec): New expanders. 3048 * config/rs6000/rs6000.opt (mrelative-jumptables): New. 3049 30502020-11-26 Eric Botcazou <ebotcazou@adacore.com> 3051 3052 PR target/96607 3053 * config/sparc/sparc-protos.h (eligible_for_call_delay): Delete. 3054 * config/sparc/sparc.c (eligible_for_call_delay): Likewise. 3055 * config/sparc/sparc.md (in_call_delay): Likewise. 3056 (tls_delay_slot): New attribute. 3057 (define_delay [call]): Use in_branch_delay. 3058 (tgd_call<P:mode>): Set type to call_no_delay_slot when 3059 tls_delay_slot is false. 3060 (tldm_call<P:mode>): Likewise. 3061 30622020-11-26 Jakub Jelinek <jakub@redhat.com> 3063 3064 PR tree-optimization/97997 3065 * match.pd ((t * 2) / 2) -> t): Optimize even for defined 3066 overflow if ranges prove there is no overflow. 3067 30682020-11-26 Richard Biener <rguenther@suse.de> 3069 3070 PR tree-optimization/97953 3071 * gimple-ssa-evrp-analyze.c 3072 (evrp_range_analyzer::record_ranges_from_incoming_edge): Make 3073 sure the condition post-dominates the SSA definition before 3074 recording into SSA_NAME_RANGE_INFO. 3075 30762020-11-26 Richard Biener <rguenther@suse.de> 3077 3078 * gimple-isel.cc (gimple_expand_vec_cond_expr): Only 3079 lower VECTOR_BOOLEAN_TYPE_P VEC_COND_EXPRs. 3080 30812020-11-26 Andrew Stubbs <ams@codesourcery.com> 3082 3083 * config/gcn/mkoffload.c (copy_early_debug_info): Don't wipe 3084 relocation symbols. 3085 30862020-11-26 Uroš Bizjak <ubizjak@gmail.com> 3087 3088 * config/i386/i386-expand.c (ix86_expand_multi_arg_builtin): 3089 Remove args array of structs, declare rtx xops array instead. 3090 Update all uses. 3091 (ix86_expand_args_builtin): Ditto. 3092 (ix86_expand_round_builtin): Ditto. 3093 (ix86_expand_special_args_builtin): Ditto. 3094 30952020-11-26 Martin Liska <mliska@suse.cz> 3096 3097 * dwarf2out.c (gen_compile_unit_die): Fix missing == 0 in a 3098 strcmp. 3099 31002020-11-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3101 3102 * config/sol2.h (TIME_LIBRARY): Remove. 3103 31042020-11-26 Kewen Lin <linkw@linux.ibm.com> 3105 3106 * config/rs6000/rs6000.c (rs6000_option_override_internal): 3107 Set param_vect_partial_vector_usage as 1 for Power10 and up 3108 by default. 3109 31102020-11-26 Jakub Jelinek <jakub@redhat.com> 3111 3112 * gimple-fold.c (clear_padding_union): Ignore DECL_PADDING_P 3113 fields. 3114 (clear_padding_type): Ignore DECL_PADDING_P fields, rather than 3115 DECL_BIT_FIELD with NULL DECL_NAME. 3116 31172020-11-26 Jakub Jelinek <jakub@redhat.com> 3118 3119 PR tree-optimization/97979 3120 * match.pd ((X {&,^,|} C2) << C1 into (X << C1) {&,^,|} (C2 << C1)): 3121 Only optimize if int_const_binop returned non-NULL. 3122 31232020-11-26 liuhongt <hongtao.liu@intel.com> 3124 3125 * config/i386/i386-expand.c 3126 (ix86_expand_special_args_builtin): Delete last_arg_constant 3127 and match. 3128 31292020-11-26 Uroš Bizjak <ubizjak@gmail.com> 3130 3131 PR target/97873 3132 * config/i386/i386.md (abs<mode>2): Use SDWIM mode iterator. 3133 (*abs<mode>2_1): Use SWI mode iterator. 3134 (<maxmin:code><mode>3): Use SDWIM mode iterator. 3135 (*<maxmin:code><mode>3_1): Use SWI mode iterator. 3136 31372020-11-26 Jakub Jelinek <jakub@redhat.com> 3138 3139 PR target/96906 3140 * config/i386/sse.md (VI12_AVX2): Remove V64QI/V32HI modes. 3141 (VI12_AVX2_AVX512BW): New mode iterator. 3142 (<sse2_avx2>_<plusminus_insn><mode>3<mask_name>, 3143 uavg<mode>3_ceil, <sse2_avx2>_uavg<mode>3<mask_name>): Use 3144 VI12_AVX2_AVX512BW iterator instead of VI12_AVX2. 3145 (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Likewise. 3146 (*<sse2_avx2>_uavg<mode>3<mask_name>): Likewise. 3147 (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Add a new 3148 define_split after this insn. 3149 31502020-11-26 Martin Uecker <muecker@gwdg.de> 3151 3152 PR c/65455 3153 PR c/92935 3154 * ginclude/stdatomic.h: Use comma operator to drop qualifiers. 3155 31562020-11-26 Vladimir Makarov <vmakarov@redhat.com> 3157 3158 PR bootstrap/97983 3159 * lra.c (lra_process_new_insns): Use emit_insn_before_noloc or 3160 emit_insn_after_noloc with the destination BB. 3161 31622020-11-25 Martin Sebor <msebor@redhat.com> 3163 3164 PR bootstrap/97622 3165 PR bootstrap/94982 3166 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): 3167 Avoid -Wformat-diag. 3168 * digraph.cc (struct test_edge): Same. 3169 * dumpfile.c (dump_loc): Same. 3170 (dump_context::begin_scope): Same. 3171 * edit-context.c (edited_file::print_diff): Same. 3172 (edited_file::print_diff_hunk): Same. 3173 * json.cc (object::print): Same. 3174 * lto-wrapper.c (merge_and_complain): Same. 3175 * reload.c (find_reloads): Same. 3176 * tree-diagnostic-path.cc (print_path_summary_as_text): Same. 3177 * ubsan.c (ubsan_type_descriptor): Same. 3178 31792020-11-25 Jan Hubicka <jh@suse.cz> 3180 3181 * gimple.c (gimple_call_arg_flags): Also imply EAF_NODIRECTESCAPE. 3182 * tree-core.h (EAF_NODRECTESCAPE): New flag. 3183 * tree-ssa-structalias.c (make_indirect_escape_constraint): New 3184 function. 3185 (handle_rhs_call): Hanlde EAF_NODIRECTESCAPE. 3186 * ipa-modref.c (dump_eaf_flags): Print EAF_NODIRECTESCAPE. 3187 (deref_flags): Dereference is always EAF_NODIRECTESCAPE. 3188 (modref_lattice::init): Also set EAF_NODIRECTESCAPE. 3189 (analyze_ssa_name_flags): Pure functions do not affect 3190 EAF_NODIRECTESCAPE. 3191 (analyze_params): Likewise. 3192 (ipa_merge_modref_summary_after_inlining): Likewise. 3193 (modref_merge_call_site_flags): Likewise. 3194 31952020-11-25 Jan Hubicka <jh@suse.cz> 3196 3197 * ipa-modref.c (modref_summaries::duplicate, 3198 modref_summaries_lto::duplicate): Copy arg_flags. 3199 (remap_arg_flags): Fix remapping of arg_flags. 3200 32012020-11-25 Martin Sebor <msebor@redhat.com> 3202 3203 PR middle-end/97956 3204 * gimple-fold.c (gimple_fold_builtin_memchr): Use sizetype for pointer 3205 offsets. 3206 32072020-11-25 Matthew Malcomson <matthew.malcomson@arm.com> 3208 3209 * asan.c (asan_instrument_reads): New. 3210 (asan_instrument_writes): New. 3211 (asan_memintrin): New. 3212 (handle_builtin_stack_restore): Account for HWASAN. 3213 (handle_builtin_alloca): Account for HWASAN. 3214 (get_mem_refs_of_builtin_call): Special case strlen for HWASAN. 3215 (hwasan_instrument_reads): New. 3216 (hwasan_instrument_writes): New. 3217 (hwasan_memintrin): New. 3218 (report_error_func): Assert not HWASAN. 3219 (build_check_stmt): Make HWASAN_CHECK instead of ASAN_CHECK. 3220 (instrument_derefs): HWASAN does not tag globals. 3221 (instrument_builtin_call): Use new helper functions. 3222 (maybe_instrument_call): Don't instrument `noreturn` functions. 3223 (initialize_sanitizer_builtins): Add new type. 3224 (asan_expand_mark_ifn): Account for HWASAN. 3225 (asan_expand_check_ifn): Assert never called by HWASAN. 3226 (asan_expand_poison_ifn): Account for HWASAN. 3227 (asan_instrument): Branch based on whether using HWASAN or ASAN. 3228 (pass_asan::gate): Return true if sanitizing HWASAN. 3229 (pass_asan_O0::gate): Return true if sanitizing HWASAN. 3230 (hwasan_check_func): New. 3231 (hwasan_expand_check_ifn): New. 3232 (hwasan_expand_mark_ifn): New. 3233 (gate_hwasan): New. 3234 * asan.h (hwasan_expand_check_ifn): New decl. 3235 (hwasan_expand_mark_ifn): New decl. 3236 (gate_hwasan): New decl. 3237 (asan_intercepted_p): Always false for hwasan. 3238 (asan_sanitize_use_after_scope): Account for HWASAN. 3239 * builtin-types.def (BT_FN_PTR_CONST_PTR_UINT8): New. 3240 * gimple-fold.c (gimple_build): New overload for building function 3241 calls without arguments. 3242 (gimple_build_round_up): New. 3243 * gimple-fold.h (gimple_build): New decl. 3244 (gimple_build): New inline function. 3245 (gimple_build_round_up): New decl. 3246 (gimple_build_round_up): New inline function. 3247 * gimple-pretty-print.c (dump_gimple_call_args): Account for 3248 HWASAN. 3249 * gimplify.c (asan_poison_variable): Account for HWASAN. 3250 (gimplify_function_tree): Remove requirement of 3251 SANITIZE_ADDRESS, requiring asan or hwasan is accounted for in 3252 `asan_sanitize_use_after_scope`. 3253 * internal-fn.c (expand_HWASAN_CHECK): New. 3254 (expand_HWASAN_ALLOCA_UNPOISON): New. 3255 (expand_HWASAN_CHOOSE_TAG): New. 3256 (expand_HWASAN_MARK): New. 3257 (expand_HWASAN_SET_TAG): New. 3258 * internal-fn.def (HWASAN_ALLOCA_UNPOISON): New. 3259 (HWASAN_CHOOSE_TAG): New. 3260 (HWASAN_CHECK): New. 3261 (HWASAN_MARK): New. 3262 (HWASAN_SET_TAG): New. 3263 * sanitizer.def (BUILT_IN_HWASAN_LOAD1): New. 3264 (BUILT_IN_HWASAN_LOAD2): New. 3265 (BUILT_IN_HWASAN_LOAD4): New. 3266 (BUILT_IN_HWASAN_LOAD8): New. 3267 (BUILT_IN_HWASAN_LOAD16): New. 3268 (BUILT_IN_HWASAN_LOADN): New. 3269 (BUILT_IN_HWASAN_STORE1): New. 3270 (BUILT_IN_HWASAN_STORE2): New. 3271 (BUILT_IN_HWASAN_STORE4): New. 3272 (BUILT_IN_HWASAN_STORE8): New. 3273 (BUILT_IN_HWASAN_STORE16): New. 3274 (BUILT_IN_HWASAN_STOREN): New. 3275 (BUILT_IN_HWASAN_LOAD1_NOABORT): New. 3276 (BUILT_IN_HWASAN_LOAD2_NOABORT): New. 3277 (BUILT_IN_HWASAN_LOAD4_NOABORT): New. 3278 (BUILT_IN_HWASAN_LOAD8_NOABORT): New. 3279 (BUILT_IN_HWASAN_LOAD16_NOABORT): New. 3280 (BUILT_IN_HWASAN_LOADN_NOABORT): New. 3281 (BUILT_IN_HWASAN_STORE1_NOABORT): New. 3282 (BUILT_IN_HWASAN_STORE2_NOABORT): New. 3283 (BUILT_IN_HWASAN_STORE4_NOABORT): New. 3284 (BUILT_IN_HWASAN_STORE8_NOABORT): New. 3285 (BUILT_IN_HWASAN_STORE16_NOABORT): New. 3286 (BUILT_IN_HWASAN_STOREN_NOABORT): New. 3287 (BUILT_IN_HWASAN_TAG_MISMATCH4): New. 3288 (BUILT_IN_HWASAN_HANDLE_LONGJMP): New. 3289 (BUILT_IN_HWASAN_TAG_PTR): New. 3290 * sanopt.c (sanopt_optimize_walker): Act for hwasan. 3291 (pass_sanopt::execute): Act for hwasan. 3292 * toplev.c (compile_file): Use `gate_hwasan` function. 3293 32942020-11-25 Matthew Malcomson <matthew.malcomson@arm.com> 3295 3296 * asan.c (struct hwasan_stack_var): New. 3297 (hwasan_sanitize_p): New. 3298 (hwasan_sanitize_stack_p): New. 3299 (hwasan_sanitize_allocas_p): New. 3300 (initialize_sanitizer_builtins): Define new builtins. 3301 (ATTR_NOTHROW_LIST): New macro. 3302 (hwasan_current_frame_tag): New. 3303 (hwasan_frame_base): New. 3304 (stack_vars_base_reg_p): New. 3305 (hwasan_maybe_init_frame_base_init): New. 3306 (hwasan_record_stack_var): New. 3307 (hwasan_get_frame_extent): New. 3308 (hwasan_increment_frame_tag): New. 3309 (hwasan_record_frame_init): New. 3310 (hwasan_emit_prologue): New. 3311 (hwasan_emit_untag_frame): New. 3312 (hwasan_finish_file): New. 3313 (hwasan_truncate_to_tag_size): New. 3314 * asan.h (hwasan_record_frame_init): New declaration. 3315 (hwasan_record_stack_var): New declaration. 3316 (hwasan_emit_prologue): New declaration. 3317 (hwasan_emit_untag_frame): New declaration. 3318 (hwasan_get_frame_extent): New declaration. 3319 (hwasan_maybe_enit_frame_base_init): New declaration. 3320 (hwasan_frame_base): New declaration. 3321 (stack_vars_base_reg_p): New declaration. 3322 (hwasan_current_frame_tag): New declaration. 3323 (hwasan_increment_frame_tag): New declaration. 3324 (hwasan_truncate_to_tag_size): New declaration. 3325 (hwasan_finish_file): New declaration. 3326 (hwasan_sanitize_p): New declaration. 3327 (hwasan_sanitize_stack_p): New declaration. 3328 (hwasan_sanitize_allocas_p): New declaration. 3329 (HWASAN_TAG_SIZE): New macro. 3330 (HWASAN_TAG_GRANULE_SIZE): New macro. 3331 (HWASAN_STACK_BACKGROUND): New macro. 3332 * builtin-types.def (BT_FN_VOID_PTR_UINT8_PTRMODE): New. 3333 * builtins.def (DEF_SANITIZER_BUILTIN): Enable for HWASAN. 3334 * cfgexpand.c (align_local_variable): When using hwasan ensure 3335 alignment to tag granule. 3336 (align_frame_offset): New. 3337 (expand_one_stack_var_at): For hwasan use tag offset. 3338 (expand_stack_vars): Record stack objects for hwasan. 3339 (expand_one_stack_var_1): Record stack objects for hwasan. 3340 (init_vars_expansion): Initialise hwasan state. 3341 (expand_used_vars): Emit hwasan prologue and generate hwasan epilogue. 3342 (pass_expand::execute): Emit hwasan base initialization if needed. 3343 * doc/tm.texi (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE, 3344 TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG, 3345 TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG, 3346 TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks. 3347 * doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE, 3348 TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG, 3349 TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG, 3350 TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks. 3351 * explow.c (get_dynamic_stack_base): Take new `base` argument. 3352 * explow.h (get_dynamic_stack_base): Take new `base` argument. 3353 * sanitizer.def (BUILT_IN_HWASAN_INIT): New. 3354 (BUILT_IN_HWASAN_TAG_MEM): New. 3355 * target.def (target_memtag_tag_size,target_memtag_granule_size, 3356 target_memtag_insert_random_tag,target_memtag_add_tag, 3357 target_memtag_set_tag,target_memtag_extract_tag, 3358 target_memtag_untagged_pointer): New hooks. 3359 * targhooks.c (HWASAN_SHIFT): New. 3360 (HWASAN_SHIFT_RTX): New. 3361 (default_memtag_tag_size): New default hook. 3362 (default_memtag_granule_size): New default hook. 3363 (default_memtag_insert_random_tag): New default hook. 3364 (default_memtag_add_tag): New default hook. 3365 (default_memtag_set_tag): New default hook. 3366 (default_memtag_extract_tag): New default hook. 3367 (default_memtag_untagged_pointer): New default hook. 3368 * targhooks.h (default_memtag_tag_size): New default hook. 3369 (default_memtag_granule_size): New default hook. 3370 (default_memtag_insert_random_tag): New default hook. 3371 (default_memtag_add_tag): New default hook. 3372 (default_memtag_set_tag): New default hook. 3373 (default_memtag_extract_tag): New default hook. 3374 (default_memtag_untagged_pointer): New default hook. 3375 * toplev.c (compile_file): Call hwasan_finish_file when finished. 3376 33772020-11-25 Matthew Malcomson <matthew.malcomson@arm.com> 3378 3379 * common.opt (flag_sanitize_recover): Default for kernel 3380 hwaddress. 3381 (static-libhwasan): New cli option. 3382 * config/aarch64/aarch64.c (aarch64_can_tag_addresses): New. 3383 (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New. 3384 * config/gnu-user.h (LIBHWASAN_EARLY_SPEC): hwasan equivalent of 3385 asan command line flags. 3386 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): 3387 Add hwasan equivalent of __SANITIZE_ADDRESS__. 3388 * doc/invoke.texi: Document hwasan command line flags. 3389 * doc/tm.texi: Document new hook. 3390 * doc/tm.texi.in: Document new hook. 3391 * flag-types.h (enum sanitize_code): New sanitizer values. 3392 * gcc.c (STATIC_LIBHWASAN_LIBS): New macro. 3393 (LIBHWASAN_SPEC): New macro. 3394 (LIBHWASAN_EARLY_SPEC): New macro. 3395 (SANITIZER_EARLY_SPEC): Update to include hwasan. 3396 (SANITIZER_SPEC): Update to include hwasan. 3397 (sanitize_spec_function): Use hwasan options. 3398 * opts.c (finish_options): Describe conflicts between address 3399 sanitizers. 3400 (find_sanitizer_argument): New. 3401 (report_conflicting_sanitizer_options): New. 3402 (sanitizer_opts): Introduce new sanitizer flags. 3403 (common_handle_option): Add defaults for kernel sanitizer. 3404 * params.opt (hwasan--instrument-stack): New 3405 (hwasan-random-frame-tag): New 3406 (hwasan-instrument-allocas): New 3407 (hwasan-instrument-reads): New 3408 (hwasan-instrument-writes): New 3409 (hwasan-instrument-mem-intrinsics): New 3410 * target.def (HOOK_PREFIX): Add new hook. 3411 (can_tag_addresses): Add new hook under memtag prefix. 3412 * targhooks.c (default_memtag_can_tag_addresses): New. 3413 * targhooks.h (default_memtag_can_tag_addresses): New decl. 3414 * toplev.c (process_options): Ensure hwasan only on 3415 architectures that advertise the possibility. 3416 34172020-11-25 Matthew Malcomson <matthew.malcomson@arm.com> 3418 3419 * doc/install.texi: Document new option. 3420 34212020-11-25 Richard Sandiford <richard.sandiford@arm.com> 3422 3423 * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move): 3424 Do not optimize LRA subregs. 3425 * config/aarch64/aarch64-sve.md 3426 (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): Tie the input to the 3427 output. 3428 (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): Likewise. 3429 (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise. 3430 (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise. 3431 (*cnot<mode>): Likewise. 3432 (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): Likewise. 3433 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>): 3434 Likewise. 3435 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): 3436 Likewise. 3437 (@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>): 3438 Likewise. 3439 (@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): 3440 Likewise. 3441 (@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>): 3442 Likewise. 3443 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): 3444 Likewise. 3445 (@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>): 3446 Likewise. 3447 * config/aarch64/aarch64-sve2.md 3448 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise. 3449 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise. 3450 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise. 3451 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise. 3452 34532020-11-25 Jakub Jelinek <jakub@redhat.com> 3454 3455 PR rtl-optimization/95862 3456 * internal-fn.c (get_min_precision): For narrowing conversion, recurse 3457 on the operand and if the operand precision is smaller than the 3458 current one, return that smaller precision. 3459 (expand_mul_overflow): For s1 * u2 -> ur and s1 * s2 -> ur cases 3460 if the sum of minimum precisions of both operands is smaller or equal 3461 to the result precision, just perform normal multiplication and 3462 set overflow to the sign bit of the multiplication result. For 3463 u1 * u2 -> sr if both arguments have the MSB known zero, use 3464 normal s1 * s2 -> sr expansion. 3465 34662020-11-25 Jan Hubicka <jh@suse.cz> 3467 3468 * cfg.c (free_block): New function. 3469 (clear_edges): Rename to .... 3470 (free_cfg): ... this one; also free BBs and vectors. 3471 (expunge_block): Update comment. 3472 * cfg.h (clear_edges): Rename to ... 3473 (free_cfg): ... this one. 3474 * cgraph.c (release_function_body): Use free_cfg. 3475 34762020-11-25 Richard Biener <rguenther@suse.de> 3477 3478 PR middle-end/97579 3479 * gimple-isel.cc (gimple_expand_vec_cond_expr): Lower 3480 VECTOR_BOOLEAN_TYPE_P, non-vector mode VEC_COND_EXPRs. 3481 34822020-11-25 Jakub Jelinek <jakub@redhat.com> 3483 3484 PR middle-end/97943 3485 * gimple-fold.c (clear_padding_union, clear_padding_type): Error on and 3486 ignore flexible array member fields. Ignore fields with 3487 error_mark_node type. 3488 34892020-11-24 Ulrich Weigand <ulrich.weigand@de.ibm.com> 3490 3491 Revert: 3492 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com> 3493 3494 * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans. 3495 Clarify conditions when __FAST_MATH__ preprocessor macro is defined. 3496 * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags 3497 and set_unsafe_math_optimizations_flags. 3498 (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid 3499 setting flags already explicitly set on the command line. In the !set 3500 case, also reset x_flag_cx_limited_range and x_flag_excess_precision. 3501 Never reset x_flag_signaling_nans or x_flag_rounding_math. 3502 (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use 3503 it to avoid setting flags already explicitly set on the command line. 3504 (fast_math_flags_set_p): Also test x_flag_cx_limited_range, 3505 x_flag_associative_math, x_flag_reciprocal_math, and 3506 x_flag_rounding_math. 3507 35082020-11-24 Vladimir Makarov <vmakarov@redhat.com> 3509 3510 PR bootstrap/97933 3511 * lra.c (lra_process_new_insns): Stop on the first real insn after 3512 head of e->dest. 3513 35142020-11-24 Richard Earnshaw <rearnsha@arm.com> 3515 3516 PR target/97534 3517 * config/arm/arm.c (arm_split_atomic_op): Use gen_int_mode when 3518 negating a const_int. 3519 35202020-11-24 Ilya Leoshkevich <iii@linux.ibm.com> 3521 3522 * config/s390/vector.md: Use vcond_comparison_operator 3523 predicate. 3524 35252020-11-24 Ulrich Weigand <uweigand@de.ibm.com> 3526 3527 * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans. 3528 Clarify conditions when __FAST_MATH__ preprocessor macro is defined. 3529 * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags 3530 and set_unsafe_math_optimizations_flags. 3531 (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid 3532 setting flags already explicitly set on the command line. In the !set 3533 case, also reset x_flag_cx_limited_range and x_flag_excess_precision. 3534 Never reset x_flag_signaling_nans or x_flag_rounding_math. 3535 (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use 3536 it to avoid setting flags already explicitly set on the command line. 3537 (fast_math_flags_set_p): Also test x_flag_cx_limited_range, 3538 x_flag_associative_math, x_flag_reciprocal_math, and 3539 x_flag_rounding_math. 3540 35412020-11-24 Jakub Jelinek <jakub@redhat.com> 3542 3543 PR target/97950 3544 * config/i386/i386.md (*setcc_si_1_and): Macroize into... 3545 (*setcc_<mode>_1_and): New define_insn_and_split with SWI24 iterator. 3546 (*setcc_si_1_movzbl): Macroize into... 3547 (*setcc_<mode>_1_movzbl): New define_insn_and_split with SWI24 3548 iterator. 3549 35502020-11-24 Jakub Jelinek <jakub@redhat.com> 3551 3552 * gimple-fold.c (clear_padding_flush): If a word contains only 0 3553 or 0xff bytes of padding other than all set, all clear, all set 3554 followed by all clear or all clear followed by all set, don't emit 3555 a RMW operation on the whole word or parts of it, but instead 3556 clear the individual bytes of padding. For paddings of one byte 3557 size, don't use char[1] and {}, but instead just char and 0. 3558 35592020-11-24 Thomas Schwinge <thomas@codesourcery.com> 3560 3561 * omp-expand.c (expand_oacc_for): More explicit checking of which 3562 OMP constructs we're expecting. 3563 35642020-11-24 Thomas Schwinge <thomas@codesourcery.com> 3565 3566 * doc/install.texi (Prerequisites) <Tcl>: Add comment. 3567 35682020-11-24 Jakub Jelinek <jakub@redhat.com> 3569 3570 PR tree-optimization/96929 3571 * fold-const.c (wide_int_binop) <case LSHIFT_EXPR, case RSHIFT_EXPR>: 3572 Return false on negative second argument rather than trying to handle 3573 it as shift in the other direction. 3574 * tree-ssa-ccp.c (bit_value_binop) <case LSHIFT_EXPR, 3575 case RSHIFT_EXPR>: Punt on negative shift count rather than trying 3576 to handle it as shift in the other direction. 3577 * match.pd (-1 >> x to -1): Remove tree_expr_nonnegative_p check. 3578 35792020-11-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 3580 3581 PR tree-optimization/97849 3582 * tree-if-conv.c (tree_if_conversion): Move ssa_name 3583 replacement code from ifcvt_local_dce to this function 3584 before calling do_rpo_vn. 3585 35862020-11-24 Martin Sebor <msebor@redhat.com> 3587 3588 * tree-cfg.c (dump_function_to_file): Print type attributes 3589 and return type. 3590 35912020-11-23 Martin Jambor <mjambor@suse.cz> 3592 3593 * ipa-prop.h (ipa_pass_through_data): Expand comment describing 3594 operation. 3595 * ipa-prop.c (analyze_agg_content_value): Detect new special case and 3596 encode it as ASSERT_EXPR. 3597 * ipa-cp.c (values_equal_for_ipcp_p): Move before 3598 ipa_get_jf_arith_result. 3599 (ipa_get_jf_arith_result): Special case ASSERT_EXPR. 3600 36012020-11-23 Jeff Law <law@redhat.com> 3602 3603 * config/h8300/h8300.c (h8300_rtx_costs): Handle the various 3604 comparison rtx codes too. 3605 36062020-11-23 Jan Hubicka <jh@suse.cz> 3607 3608 * ipa-prop.c (build_agg_jump_func_from_list, 3609 ipa_read_jump_function): Reserve agg.items precisely. 3610 * ipa-prop.h (ipa_node_params::~ipa_node_params): Release descriptors 3611 (ipa_edge_args::~ipa_edge_args): Release agg.items. 3612 36132020-11-23 Jan Hubicka <jh@suse.cz> 3614 3615 * lto-streamer-in.c (input_cfg): Do not init ssa operands. 3616 (input_function): Do not init tree_ssa and set in_ssa_p. 3617 (input_ssa_names): Do it here. 3618 * tree-ssa.c (init_tree_ssa): Add additional SIZE parameter, default 3619 to 0 3620 * tree-ssanames.c (init_ssanames): Do not round size up to 50, allocate 3621 precisely. 3622 * tree-ssa.h (init_tree_ssa): Update prototype. 3623 36242020-11-23 Nathan Sidwell <nathan@acm.org> 3625 3626 * diagnostic.c (diagnostic_report_current_module): Adjust for C++ 3627 module importation. 3628 36292020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> 3630 3631 * config/msp430/msp430.c (msp430_section_attr): Don't warn for "lower" 3632 attribute used with "noinit" or "persistent" attributes. 3633 (msp430_persist_attr): Remove. 3634 (attr_lower_exclusions): Remove ATTR_PERSIST exclusion. 3635 (attr_upper_exclusions): Likewise. 3636 (attr_either_exclusions): Likewise. 3637 (attr_persist_exclusions): Remove. 3638 (msp430_attribute_table): Remove ATTR_PERSIST handling. 3639 (msp430_handle_generic_attribute): Remove ATTR_PERSIST section conflict 3640 handling. 3641 (TARGET_ASM_INIT_SECTIONS): Remove. 3642 (msp430_init_sections): Remove. 3643 (msp430_select_section): Use default_elf_select_section for decls with 3644 the "persistent" attribute. 3645 (msp430_section_type_flags): Remove ".persistent" section handling. 3646 * doc/extend.texi (MSP430 Variable Attributes): Remove "noinit" and 3647 "persistent" documentation. 3648 36492020-11-23 Richard Biener <rguenther@suse.de> 3650 3651 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): Skip 3652 debug stmts. 3653 36542020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> 3655 3656 * doc/extend.texi (Common Variable Attributes): Document the 3657 "persistent" variable attribute. 3658 * doc/sourcebuild.texi (Effective-Target Keywords): Document 3659 the "persistent" effective target keyword. 3660 * tree.h (DECL_PERSISTENT_P): Define. 3661 * varasm.c (bss_initializer_p): Return false for a 3662 DECL_PERSISTENT_P decl initialized to zero. 3663 (default_section_type_flags): Handle the ".persistent" section. 3664 (default_elf_select_section): Likewise. 3665 (default_unique_section): Likewise. 3666 36672020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> 3668 3669 * tree.h (DECL_NOINIT_P): Define. 3670 * varasm.c (DECL_NOINIT_P): Check DECL_NOINIT_P before using 3671 unnamed bss/lcomm sections for bss_initializer variables. 3672 (default_elf_select_section): Use DECL_NOINIT_P instead of 3673 looking up attribute for .noinit section selection. 3674 (default_unique_section): Check DECL_NOINIT_P for .noinit 3675 section selection. 3676 36772020-11-23 Matthew Malcomson <matthew.malcomson@arm.com> 3678 3679 * doc/install.texi: Document bootstrap-asan option. 3680 36812020-11-22 Uroš Bizjak <ubizjak@gmail.com> 3682 3683 PR target/97873 3684 * config/i386/i386.md (abs<mode>2): Use SWI48DWI mode iterator. 3685 (*abs<dwi>2_doubleword): Use DWIH mode iterator. 3686 (<maxmin:code><mode>3): Use SWI48DWI mode iterator. 3687 (*<maxmin:code><dwi>3_doubleword): Use DWIH mode iterator. 3688 36892020-11-22 Austin Law <austinklaw@gmail.com> 3690 3691 * config/h8300/addsub.md: Turn existing patterns into 3692 define_insn_and_split style patterns where the splitter 3693 adds a clobber of the condition code register. Drop "cc" 3694 attribute. Add _clobber_flags patterns to match output of 3695 the splitters. 3696 (add<mod>3_incdec): Remove pattern 3697 (adds/subs splitter): Only run before reload. 3698 * config/h8300/bitfield.md: Turn existing patterns into 3699 define_insn_and_split style patterns where the splitter 3700 adds a clobber of the condition code register. Drop "cc" 3701 attribute. Add _clobber_flags patterns to match output 3702 of the splitters. 3703 (cstoreqi4, cstorehi4, cstoresi4): Comment out 3704 (*bstzhireg, *cmpstz, *bstz, *bistz, *cmpcondset): Likewise 3705 (*condbset, *cmpcondbclr, *condbclr): Likewise. 3706 (*cmpcondbsetreg, *condbsetreg, *cmpcondbclrreg): Likewise. 3707 (*condbclrreg): Likewise. 3708 * config/h8300/combiner.md: Turn existing patterns into 3709 define_insn_and_split style patterns where the splitter 3710 adds a clobber of the condition code register. Drop "cc" 3711 attribute. Add _clobber_flags patterns to match output of 3712 the splitters. Add appropriate CC register clobbers to 3713 existing splitters. 3714 (*addsi3_and_r_1): Disable for now. 3715 (*addsi3_and_not_r_1, bit-test branches): Likewise. 3716 * config/h8300/divmod.md: Turn existing patterns into 3717 define_insn_and_split style patterns where the splitter 3718 adds a clobber of the condition code register. Drop "cc" 3719 attribute. Add _clobber_flags patterns to match output of 3720 the splitters. 3721 * config/h8300/extensions.md: Turn existing patterns into 3722 define_insn_and_split style patterns where the splitter 3723 adds a clobber of the condition code register. Drop "cc" 3724 attribute. Add _clobber_flags patterns to match output of 3725 the splitters. 3726 * config/h8300/genmova.sh: Drop "cc" attribute from patterns. 3727 * config/h8300/mova.md: Drop "cc" attribute from patterns. 3728 * config/h8300/h8300-modes.def: Add CCZN and CCZNV modes. 3729 * config/h8300/h8300-protos.h (output_plussi): Update prototype. 3730 (compute_plussi_length): Likewise. 3731 (h8300_select_cc_mode): Add prototype. 3732 (compute_a_shift_cc): Remove prototype 3733 (cmpute_logical_op_cc): Likewise. 3734 * config/h8300/h8300.c (names_big): Add "cc" register. 3735 (names_extended, names_upper_extended): Likewise. 3736 (h8300_emit_stack_adjustment): Be more selective about setting 3737 RTX_FRAME_RELATED_P. 3738 (h8300_print_operand): Handle CCZN mode 3739 (h8300_select_cc_mode): New function. 3740 (notice_update_cc): if-0 out. Only kept for reference purposes. 3741 (h8300_expand_store): Likewise. 3742 (h8300_binary_length): Handle new insn forms. 3743 (output_plussi): Add argument for NEED_FLAGS and handle that case. 3744 (compute_plussi_length): Likewise. 3745 (compute_logical_op_cc): Return integer. 3746 (TARGET_FLAGS_REGNUM): Define. 3747 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Bump for cc register. 3748 (FIXED_REGISTERS, CALL_USED_REGISTERS): Handle cc register. 3749 (REG_ALLOC_ORDER, REGISTER_NAMES): Likewise. 3750 (SELECT_CC_MODE): Define. 3751 * config/h8300/h8300.md: Add CC_REG. 3752 Do not include peepholes.md for now. 3753 * config/h8300/jumpcall.md (cbranchqi4): Consolidate into 3754 cbranch<mode>4. 3755 (cbranchhi4, cbranchsi4): Likewise. 3756 (cbranch<mode>4): New expander. 3757 (branch): New define_insn_and_split for use before reload. 3758 (branch_1, branch_1_false): New patterns to match splitter output. 3759 Remove code to manage cc_status.flags. 3760 * config/h8300/logical.md: Turn existing patterns into 3761 define_insn_and_split style patterns where the splitter 3762 adds a clobber of the condition code register. Drop "cc" 3763 attribute. Add _clobber_flags patterns to match output of 3764 the splitters. Move various peepholes into this file. 3765 * config/h8300/movepush.md: Turn existing patterns into 3766 define_insn_and_split style patterns where the splitter 3767 adds a clobber of the condition code register. Drop "cc" 3768 attribute. Add _clobber_flags patterns to match output of 3769 the splitters. 3770 * config/h8300/multiply.md: Turn existing patterns into 3771 define_insn_and_split style patterns where the splitter 3772 adds a clobber of the condition code register. Drop "cc" 3773 attribute. Add _clobber_flags patterns to match output of 3774 the splitters. 3775 * config/h8300/other.md: Turn existing patterns into 3776 define_insn_and_split style patterns where the splitter 3777 adds a clobber of the condition code register. Drop "cc" 3778 attribute. Add _clobber_flags patterns to match output of 3779 the splitters. 3780 * config/h8300/peepholes.md: Remove peepholes that were moved 3781 elsewhere. 3782 * config/h8300/predicates.md (simple_memory_operand): New. 3783 * config/h8300/proepi.md: Drop "cc" attribute setting. 3784 * config/h8300/shiftrotate.md: Turn existing patterns into 3785 define_insn_and_split style patterns where the splitter 3786 adds a clobber of the condition code register. Drop "cc" 3787 attribute. Add _clobber_flags patterns to match output of 3788 the splitters. 3789 * config/h8300/testcompare.md: Turn existing patterns into 3790 define_insn_and_split style patterns where the splitter 3791 adds a clobber of the condition code register. Drop "cc" 3792 attribute. Add _clobber_flags patterns to match output of 3793 the splitters. Disable various patterns for now. 3794 Move some peepholes that were previously in peepholes.md here. 3795 * config/h8300/save.md: New file. 3796 37972020-11-22 Jakub Jelinek <jakub@redhat.com> 3798 3799 PR tree-optimization/95853 3800 * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add maxval 3801 argument, if non-NULL, instead look for r > maxval or r <= maxval 3802 comparisons. 3803 (match_uaddsub_overflow): Pattern recognize even other forms of 3804 __builtin_add_overflow, in particular when addition is performed 3805 in a wider type and result compared to maximum of the narrower 3806 type. 3807 38082020-11-22 Jeff Law <law@redhat.com> 3809 3810 * config/h8300/jumpcall.md (branch_true, branch_false): Revert 3811 recent change. Ensure operand[0] is always the target label. 3812 38132020-11-22 Iain Sandoe <iain@sandoe.co.uk> 3814 3815 * config/darwin-c.c (struct f_align_stack): Rename 3816 to type from align_stack to f_align_stack. 3817 (push_field_alignment): Likewise. 3818 (pop_field_alignment): Likewise. 3819 38202020-11-21 Marek Polacek <polacek@redhat.com> 3821 3822 PR c++/94695 3823 * doc/invoke.texi: Update the -Wrange-loop-construct description. 3824 38252020-11-21 Jan Hubicka <jh@suse.cz> 3826 3827 * tree-ssa-alias.c (ao_compare::compare_ao_refs, 3828 ao_compare::hash_ao_ref): Use OEP_MATCH_SIDE_EFFECTS. 3829 38302020-11-21 Jan Hubicka <jh@suse.cz> 3831 3832 * ipa-icf.c (sem_function::equals_wpa): Do not compare ODR type with 3833 -fno-devirtualize. 3834 (sem_item_optimizer::update_hash_by_addr_refs): Hash anonymous ODR 3835 types by TYPE_UID of their main variant. 3836 38372020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com> 3838 3839 * config/rs6000/rs6000.c (rs6000_option_override_internal): 3840 Enable vector pair memcpy/memmove expansion. 3841 38422020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com> 3843 3844 * config/rs6000/mma.md (unspec): Add assemble/extract UNSPECs. 3845 (movoi): Change to movoo. 3846 (*movpoi): Change to *movoo. 3847 (movxi): Change to movxo. 3848 (*movpxi): Change to *movxo. 3849 (mma_assemble_pair): Change to OO mode. 3850 (*mma_assemble_pair): New define_insn_and_split. 3851 (mma_disassemble_pair): New define_expand. 3852 (*mma_disassemble_pair): New define_insn_and_split. 3853 (mma_assemble_acc): Change to XO mode. 3854 (*mma_assemble_acc): Change to XO mode. 3855 (mma_disassemble_acc): New define_expand. 3856 (*mma_disassemble_acc): New define_insn_and_split. 3857 (mma_<acc>): Change to XO mode. 3858 (mma_<vv>): Change to XO mode. 3859 (mma_<avv>): Change to XO mode. 3860 (mma_<pv>): Change to OO mode. 3861 (mma_<apv>): Change to XO/OO mode. 3862 (mma_<vvi4i4i8>): Change to XO mode. 3863 (mma_<avvi4i4i8>): Change to XO mode. 3864 (mma_<vvi4i4i2>): Change to XO mode. 3865 (mma_<avvi4i4i2>): Change to XO mode. 3866 (mma_<vvi4i4>): Change to XO mode. 3867 (mma_<avvi4i4>): Change to XO mode. 3868 (mma_<pvi4i2>): Change to XO/OO mode. 3869 (mma_<apvi4i2>): Change to XO/OO mode. 3870 (mma_<vvi4i4i4>): Change to XO mode. 3871 (mma_<avvi4i4i4>): Change to XO mode. 3872 * config/rs6000/predicates.md (input_operand): Allow opaque. 3873 (mma_disassemble_output_operand): New predicate. 3874 * config/rs6000/rs6000-builtin.def: 3875 Changes to disassemble builtins. 3876 * config/rs6000/rs6000-call.c (rs6000_return_in_memory): 3877 Disallow __vector_pair/__vector_quad as return types. 3878 (rs6000_promote_function_mode): Remove function return type 3879 check because we can't test it here any more. 3880 (rs6000_function_arg): Do not allow __vector_pair/__vector_quad 3881 as as function arguments. 3882 (rs6000_gimple_fold_mma_builtin): 3883 Handle mma_disassemble_* builtins. 3884 (rs6000_init_builtins): Create types for XO/OO modes. 3885 * config/rs6000/rs6000-modes.def: DElete OI, XI, 3886 POI, and PXI modes, and create XO and OO modes. 3887 * config/rs6000/rs6000-string.c (expand_block_move): 3888 Update to OO mode. 3889 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_uncached): 3890 Update for XO/OO modes. 3891 (rs6000_rtx_costs): Make UNSPEC_MMA_XXSETACCZ cost 0. 3892 (rs6000_modes_tieable_p): Update for XO/OO modes. 3893 (rs6000_debug_reg_global): Update for XO/OO modes. 3894 (rs6000_setup_reg_addr_masks): Update for XO/OO modes. 3895 (rs6000_init_hard_regno_mode_ok): Update for XO/OO modes. 3896 (reg_offset_addressing_ok_p): Update for XO/OO modes. 3897 (rs6000_emit_move): Update for XO/OO modes. 3898 (rs6000_preferred_reload_class): Update for XO/OO modes. 3899 (rs6000_split_multireg_move): Update for XO/OO modes. 3900 (rs6000_mangle_type): Update for opaque types. 3901 (rs6000_invalid_conversion): Update for XO/OO modes. 3902 * config/rs6000/rs6000.h (VECTOR_ALIGNMENT_P): 3903 Update for XO/OO modes. 3904 * config/rs6000/rs6000.md (RELOAD): Update for XO/OO modes. 3905 39062020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com> 3907 3908 * typeclass.h: Add opaque_type_class. 3909 * builtins.c (type_to_class): Identify opaque type class. 3910 * dwarf2out.c (is_base_type): Handle opaque types. 3911 (gen_type_die_with_usage): Handle opaque types. 3912 * expr.c (count_type_elements): Opaque types should 3913 never have initializers. 3914 * ipa-devirt.c (odr_types_equivalent_p): No type-specific handling 3915 for opaque types is needed as it eventually checks the underlying 3916 mode which is what is important. 3917 * tree-streamer.c (record_common_node): Handle opaque types. 3918 * tree.c (type_contains_placeholder_1): Handle opaque types. 3919 (type_cache_hasher::equal): No additional comparison needed for 3920 opaque types. 3921 39222020-11-20 Michael Meissner <meissner@linux.ibm.com> 3923 3924 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Add missing 3925 XSCMP* cases for IEEE 128-bit long double. 3926 39272020-11-20 Jason Merrill <jason@redhat.com> 3928 3929 PR c++/97918 3930 * dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list 3931 after gen_scheduled_generic_parms_dies. 3932 39332020-11-20 Martin Sebor <msebor@redhat.com> 3934 3935 PR middle-end/97879 3936 * tree-core.h (enum attribute_flags): Add ATTR_FLAG_INTERNAL. 3937 39382020-11-20 Jan Hubicka <jh@suse.cz> 3939 3940 * ipa-icf-gimple.c (func_checker::hash_operand): Improve hashing of 3941 decls. 3942 39432020-11-20 Jan Hubicka <jh@suse.cz> 3944 3945 * ipa-icf-gimple.c (func_checker::compare_decl): Do not compare types 3946 of local variables. 3947 39482020-11-20 Nathan Sidwell <nathan@acm.org> 3949 3950 * doc/invoke.texi: Replace a couple of @code with @command 3951 39522020-11-20 Tamar Christina <tamar.christina@arm.com> 3953 3954 * tree-vect-slp.c (vectorizable_slp_permutation): Update types on nodes 3955 when needed. 3956 39572020-11-20 Richard Biener <rguenther@suse.de> 3958 3959 * tree-vect-slp.c (maybe_push_to_hybrid_worklist): New function. 3960 (vect_detect_hybrid_slp): Use it. Perform a backward walk 3961 over the IL. 3962 39632020-11-20 Richard Biener <rguenther@suse.de> 3964 3965 * tree-vect-slp.c (vect_print_slp_tree): Also dump 3966 SLP_TREE_REPRESENTATIVE. 3967 39682020-11-20 Jakub Jelinek <jakub@redhat.com> 3969 3970 PR libstdc++/88101 3971 * builtins.def (BUILT_IN_CLEAR_PADDING): New built-in function. 3972 * gimplify.c (gimplify_call_expr): Rewrite single argument 3973 BUILT_IN_CLEAR_PADDING into two-argument variant. 3974 * gimple-fold.c (clear_padding_unit, clear_padding_buf_size): New 3975 const variables. 3976 (struct clear_padding_struct): New type. 3977 (clear_padding_flush, clear_padding_add_padding, 3978 clear_padding_emit_loop, clear_padding_type, 3979 clear_padding_union, clear_padding_real_needs_padding_p, 3980 clear_padding_type_may_have_padding_p, 3981 gimple_fold_builtin_clear_padding): New functions. 3982 (gimple_fold_builtin): Handle BUILT_IN_CLEAR_PADDING. 3983 * doc/extend.texi (__builtin_clear_padding): Document. 3984 39852020-11-20 Jakub Jelinek <jakub@redhat.com> 3986 3987 PR target/97528 3988 * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require 3989 first POST_MODIFY operand is a REG and is equal to the first operand 3990 of PLUS. 3991 39922020-11-20 Eric Botcazou <ebotcazou@adacore.com> 3993 3994 * gimple-ssa-store-merging.c (struct merged_store_group): Add 3995 new 'consecutive' field. 3996 (merged_store_group): Set it to true. 3997 (do_merge): Set it to false if the store is not consecutive and 3998 set string_concatenation to false in this case. 3999 (merge_into): Call do_merge on entry. 4000 (merge_overlapping): Likewise. 4001 40022020-11-20 Jan Hubicka <jh@suse.cz> 4003 4004 * ipa-icf-gimple.c (func_checker::operand_equal_p): Fix comment. 4005 40062020-11-20 Jan Hubicka <jh@suse.cz> 4007 4008 * ipa-icf-gimple.c (func_checker::hash_operand): Hash gimple clobber. 4009 (func_checker::operand_equal_p): Special case gimple clobber. 4010 40112020-11-20 Uroš Bizjak <ubizjak@gmail.com> 4012 4013 PR target/97873 4014 * config/i386/i386.md (*neg<mode>2_2): Rename from 4015 "*neg<mode>2_cmpz". Use CCGOCmode instead of CCZmode. 4016 (*negsi2_zext): Rename from *negsi2_cmpz_zext. 4017 Use CCGOCmode instead of CCZmode. 4018 (*neg<mode>_ccc_1): New insn pattern. 4019 (*neg<dwi>2_doubleword): Use *neg<mode>_ccc_1. 4020 (abs<mode>2): Add FLAGS_REG clobber. 4021 Use TARGET_CMOVE insn predicate. 4022 (*abs<mode>2_1): New insn_and_split pattern. 4023 (*absdi2_doubleword): Ditto. 4024 (<maxmin:code><mode>3): Use SWI48x mode iterator. 4025 (*<maxmin:code><mode>3): Use SWI48 mode iterator. 4026 * config/i386/i386-features.c 4027 (general_scalar_chain::compute_convert_gain): Handle ABS code. 4028 (general_scalar_chain::convert_insn): Ditto. 4029 (general_scalar_to_vector_candidate_p): Ditto. 4030 40312020-11-20 Jakub Jelinek <jakub@redhat.com> 4032 4033 PR other/97911 4034 * configure.ac: In SERIAL_LIST use lang words without .serial 4035 suffix. Change $lang.prev from a target to variable and instead 4036 of depending on *.serial expand to the *.serial variable if 4037 the word is in the SERIAL_LIST at all, otherwise to nothing. 4038 * configure: Regenerated. 4039 40402020-11-20 Kewen Lin <linkw@linux.ibm.com> 4041 4042 * config/rs6000/rs6000.md (p8_mtvsrd_df): Fix insn type. 4043 40442020-11-20 Martin Uecker <muecker@gwdg.de> 4045 4046 * gimplify.c (gimplify_modify_expr_rhs): Optimizie 4047 NOP_EXPRs that contain compound literals. 4048 40492020-11-19 Jakub Jelinek <jakub@redhat.com> 4050 4051 PR tree-optimization/91029 4052 * range-op.cc (operator_trunc_mod::op1_range): Don't require signed 4053 types, nor require that op2 >= 0. Implement (a % b) >= x && x > 0 4054 implies a >= x and (a % b) <= x && x < 0 implies a <= x. 4055 (operator_trunc_mod::op2_range): New method. 4056 40572020-11-19 Andrew MacLeod <amacleod@redhat.com> 4058 4059 PR tree-optimization/93781 4060 * range-op.cc (get_shift_range): Rename from 4061 undefined_shift_range_check and now return valid shift ranges. 4062 (operator_lshift::fold_range): Use result from get_shift_range. 4063 (operator_rshift::fold_range): Ditto. 4064 40652020-11-19 Jan Hubicka <jh@suse.cz> 4066 4067 * fold-const.c (operand_compare::operand_equal_p): Fix thinko in 4068 COMPONENT_REF handling and guard types_same_for_odr by 4069 virtual_method_call_p. 4070 (operand_compare::hash_operand): Likewise. 4071 40722020-11-19 Jakub Jelinek <jakub@redhat.com> 4073 4074 PR c/97860 4075 * tree.c (array_type_nelts): For complete arrays with zero min 4076 and NULL max and zero size return -1. 4077 40782020-11-19 Nathan Sidwell <nathan@acm.org> 4079 4080 * configure.ac: Add tests for fstatat, sighandler_t, O_CLOEXEC, 4081 unix-domain and ipv6 sockets. 4082 * config.in: Rebuilt. 4083 * configure: Rebuilt. 4084 40852020-11-19 Dimitar Dimitrov <dimitar@dinux.eu> 4086 4087 * config/pru/alu-zext.md: Add lmbd patterns for zero_extend 4088 variants. 4089 * config/pru/pru.c (enum pru_builtin): Add HALT and LMBD. 4090 (pru_init_builtins): Ditto. 4091 (pru_builtin_decl): Ditto. 4092 (pru_expand_builtin): Ditto. 4093 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Define PRU 4094 value for CLZ with zero value parameter. 4095 * config/pru/pru.md: Add halt, lmbd and clz patterns. 4096 * doc/extend.texi: Document PRU builtins. 4097 40982020-11-19 Richard Sandiford <richard.sandiford@arm.com> 4099 4100 * doc/invoke.texi (-fvect-cost-model): Add a very-cheap model. 4101 * common.opt (fvect-cost-model=): Add very-cheap as a possible option. 4102 (fsimd-cost-model=): Likewise. 4103 (vect_cost_model): Add very-cheap. 4104 * flag-types.h (vect_cost_model): Add VECT_COST_MODEL_VERY_CHEAP. 4105 Put the values in order of increasing aggressiveness. 4106 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use 4107 range checks when comparing against VECT_COST_MODEL_CHEAP. 4108 (vect_prune_runtime_alias_test_list): Do not allow any alias 4109 checks for the very-cheap cost model. 4110 * tree-vect-loop.c (vect_analyze_loop_costing): Do not allow 4111 any peeling for the very-cheap cost model. Also require one 4112 iteration of the vector loop to pay for itself. 4113 41142020-11-19 Wilco Dijkstra <wdijkstr@arm.com> 4115 4116 * config/aarch64/aarch64.c (neoversen1_tunings): Use new 4117 cortexa76_extra_costs. 4118 (neoversev1_tunings): Likewise. 4119 (neoversen2_tunines): Likewise. 4120 * config/arm/aarch-cost-tables.h (cortexa76_extra_costs): 4121 add new costs. 4122 41232020-11-19 Wilco Dijkstra <wdijkstr@arm.com> 4124 4125 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Cleanup code and 4126 comments, tweak expansion decisions and improve tail expansion. 4127 41282020-11-19 Richard Biener <rguenther@suse.de> 4129 4130 * fold-const.c (operand_compare::hash_operand): Fix typo. 4131 41322020-11-19 Richard Biener <rguenther@suse.de> 4133 4134 * tree-ssa-reassoc.c (get_rank): Refactor to consistently 4135 use the cache and dump ranks assigned. 4136 41372020-11-19 Jan Hubicka <jh@suse.cz> 4138 4139 * fold-const.c (operand_compare::operand_equal_p): More OBJ_TYPE_REF 4140 matching to correct place; drop OEP_ADDRESS_OF for TOKEN, OBJECT and 4141 class. 4142 (operand_compare::hash_operand): Hash ODR type for OBJ_TYPE_REF. 4143 41442020-11-19 Joel Hutton <joel.hutton@arm.com> 4145 4146 * config/aarch64/aarch64-simd.md: Add vec_widen_lshift_hi/lo<mode> 4147 patterns. 4148 * tree-vect-stmts.c (vectorizable_conversion): Fix for widen_lshift 4149 case. 4150 41512020-11-19 Joel Hutton <joel.hutton@arm.com> 4152 4153 * doc/generic.texi: Document new widen_plus/minus_lo/hi tree codes. 4154 * doc/md.texi: Document new widenening add/subtract hi/lo optabs. 4155 * expr.c (expand_expr_real_2): Add widen_add, widen_subtract cases. 4156 * optabs-tree.c (optab_for_tree_code): Add case for widening optabs. 4157 * optabs.def (OPTAB_D): Define vectorized widen add, subtracts. 4158 * tree-cfg.c (verify_gimple_assign_binary): Add case for widening adds, 4159 subtracts. 4160 * tree-inline.c (estimate_operator_cost): Add case for widening adds, 4161 subtracts. 4162 * tree-vect-generic.c (expand_vector_operations_1): Add case for 4163 widening adds, subtracts 4164 * tree-vect-patterns.c (vect_recog_widen_add_pattern): New recog 4165 pattern. 4166 (vect_recog_widen_sub_pattern): New recog pattern. 4167 (vect_recog_average_pattern): Update widened add code. 4168 (vect_recog_average_pattern): Update widened add code. 4169 * tree-vect-stmts.c (vectorizable_conversion): Add case for widened add, 4170 subtract. 4171 (supportable_widening_operation): Add case for widened add, subtract. 4172 * tree.def 4173 (WIDEN_PLUS_EXPR): New tree code. 4174 (WIDEN_MINUS_EXPR): New tree code. 4175 (VEC_WIDEN_ADD_HI_EXPR): New tree code. 4176 (VEC_WIDEN_PLUS_LO_EXPR): New tree code. 4177 (VEC_WIDEN_MINUS_HI_EXPR): New tree code. 4178 (VEC_WIDEN_MINUS_LO_EXPR): New tree code. 4179 41802020-11-19 Joel Hutton <joel.hutton@arm.com> 4181 4182 * config/aarch64/aarch64-simd.md: New patterns 4183 vec_widen_saddl_lo/hi_<mode>. 4184 41852020-11-19 Richard Biener <rguenther@suse.de> 4186 4187 PR tree-optimization/97901 4188 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Compute 4189 dominators and use replace_uses_by. 4190 41912020-11-19 Eric Botcazou <ebotcazou@adacore.com> 4192 4193 * dwarf2out.h (struct fixed_point_type_info) <scale_factor>: Turn 4194 numerator and denominator into a tree. 4195 * dwarf2out.c (base_type_die): In the case of a fixed-point type 4196 with arbitrary scale factor, call add_scalar_info on numerator and 4197 denominator to emit the appropriate attributes. 4198 41992020-11-19 Richard Biener <rguenther@suse.de> 4200 4201 PR tree-optimization/97897 4202 * tree-complex.c (complex_propagate::visit_stmt): Make sure 4203 abnormally used SSA names are VARYING. 4204 (complex_propagate::visit_phi): Likewise. 4205 * tree-ssa.c (verify_phi_args): Verify PHI arguments on abnormal 4206 edges are SSA names. 4207 42082020-11-19 Uroš Bizjak <ubizjak@gmail.com> 4209 4210 * config/i386/i386.md (*<absneg:code><mode>2_i387_1): 4211 Disable for TARGET_SSE_MATH modes. 4212 42132020-11-19 Jeff Law <law@redhat.com> 4214 4215 * config/h8300/constraints.md (R constraint): Add argument to call 4216 to h8300_shift_needs_scratch_p. 4217 (S and T constraints): Similary. 4218 * config/h8300/h8300-protos.h: Update h8300_shift_needs_scratch_p 4219 prototype. 4220 * config/h8300/h8300.c (expand_a_shift): Emit a different pattern 4221 if the shift does not require a scratch register. 4222 (h8300_shift_needs_scratch_p): Refine to be more accurate. 4223 * config/h8300/shiftrotate.md (shiftqi_noscratch): New pattern. 4224 (shifthi_noscratch, shiftsi_noscratch): Similarly. 4225 42262020-11-18 Roger Sayle <roger@nextmovesoftware.com> 4227 4228 PR middle-end/85811 4229 * fold-const.c (tree_expr_finite_p): New function to test whether 4230 a tree expression must be finite, i.e. not a FP NaN or infinity. 4231 (tree_expr_infinite_p): New function to test whether a tree 4232 expression must be infinite, i.e. a FP infinity. 4233 (tree_expr_maybe_infinite_p): New function to test whether a tree 4234 expression may be infinite, i.e. a FP infinity. 4235 (tree_expr_signaling_nan_p): New function to test whether a tree 4236 expression must evaluate to a signaling NaN (sNaN). 4237 (tree_expr_maybe_signaling_nan_p): New function to test whether a 4238 tree expression may be a signaling NaN (sNaN). 4239 (tree_expr_nan_p): New function to test whether a tree expression 4240 must evaluate to a (quiet or signaling) NaN. 4241 (tree_expr_maybe_nan_p): New function to test whether a tree 4242 expression me be a (quiet or signaling) NaN. 4243 (tree_binary_nonnegative_warnv_p) [MAX_EXPR]: In the presence 4244 of NaNs, MAX_EXPR is only guaranteed to be non-negative, if both 4245 operands are non-negative. 4246 (tree_call_nonnegative_warnv_p) [CASE_CFN_FMAX,CASE_CFN_FMAX_FN]: 4247 In the presence of signaling NaNs, fmax is only guaranteed to be 4248 non-negative if both operands are negative. In the presence of 4249 quiet NaNs, fmax is non-negative if either operand is non-negative 4250 and not a qNaN, or both operands are non-negative. 4251 * fold-const.h (tree_expr_finite_p, tree_expr_infinite_p, 4252 tree_expr_maybe_infinite_p, tree_expr_signaling_nan_p, 4253 tree_expr_maybe_signaling_nan_p, tree_expr_nan_p, 4254 tree_expr_maybe_nan_p): Prototype new functions here. 4255 * builtins.c (fold_builtin_classify) [BUILT_IN_ISINF]: Fold to 4256 a constant if argument is known to be (or not to be) an Infinity. 4257 [BUILT_IN_ISFINITE]: Fold to a constant if argument is known to 4258 be (or not to be) finite. 4259 [BUILT_IN_ISNAN]: Fold to a constant if argument is known to be 4260 (or not to be) a NaN. 4261 (fold_builtin_fpclassify): Check tree_expr_maybe_infinite_p and 4262 tree_expr_maybe_nan_p instead of HONOR_INFINITIES and HONOR_NANS 4263 respectively. 4264 (fold_builtin_unordered_cmp): Fold UNORDERED_EXPR to a constant 4265 when its arguments are known to be (or not be) NaNs. Check 4266 tree_expr_maybe_nan_p instead of HONOR_NANS when choosing between 4267 unordered and regular forms of comparison operators. 4268 * match.pd (ordered(x,y)->true/false): Constant fold ORDERED_EXPR 4269 if its operands are known to be (or not to be) NaNs. 4270 (unordered(x,y)->true/false): Constant fold UNORDERED_EXPR if its 4271 operands are known to be (or not to be) NaNs. 4272 (sqrt(x)*sqrt(x)->x): Check tree_expr_maybe_signaling_nan_p instead 4273 of HONOR_SNANS. 4274 42752020-11-18 Jakub Jelinek <jakub@redhat.com> 4276 4277 PR tree-optimization/91029 4278 PR tree-optimization/97888 4279 * range-op.cc (operator_trunc_mod::op1_range): Only set op1 4280 range to >= 0 if lhs is > 0, rather than >= 0. Fix up comments. 4281 42822020-11-18 Jakub Jelinek <jakub@redhat.com> 4283 4284 * opts.h (struct cl_var): New type. 4285 (cl_vars): Declare. 4286 * optc-gen.awk: Generate cl_vars array. 4287 42882020-11-18 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com> 4289 4290 PR tree-optimization/96671 4291 * match.pd (three xor patterns): New patterns. 4292 42932020-11-18 Jakub Jelinek <jakub@redhat.com> 4294 4295 * optc-save-gen.awk: Initialize var_opt_init. In 4296 cl_optimization_stream_out for params with default values larger than 4297 10, xor the default value with the actual parameter value. In 4298 cl_optimization_stream_in repeat the above xor. 4299 43002020-11-18 Jakub Jelinek <jakub@redhat.com> 4301 4302 * configure.ac: Add $lang.prev rules, INDEX.$lang and SERIAL_LIST and 4303 SERIAL_COUNT variables to Make-hooks. 4304 (--enable-link-serialization): New configure option. 4305 * Makefile.in (DO_LINK_SERIALIZATION, LINK_PROGRESS): New variables. 4306 * doc/install.texi (--enable-link-serialization): Document. 4307 * configure: Regenerated. 4308 43092020-11-18 Vladimir Makarov <vmakarov@redhat.com> 4310 4311 PR target/97870 4312 * lra-constraints.c (curr_insn_transform): Do not delete asm goto 4313 with wrong constraints. Nullify it saving CFG. 4314 43152020-11-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> 4316 4317 * config/msp430/msp430.md (mulhi3): New. 4318 (mulsi3): New. 4319 (mulsidi3): Rename to *mulsidi3_inline. 4320 (umulsidi3): Rename to *umulsidi3_inline. 4321 (mulsidi3): New define_expand. 4322 (umulsidi3): New define_expand. 4323 43242020-11-18 Richard Biener <rguenther@suse.de> 4325 4326 PR tree-optimization/97886 4327 * tree-vect-loop.c (vectorizable_lc_phi): Properly assign 4328 vector types to invariants for SLP. 4329 43302020-11-18 Iain Buclaw <ibuclaw@gdcproject.org> 4331 4332 * config.gcc (*-*-dragonfly*): Add dragonfly-d.o and t-dragonfly. 4333 * config/dragonfly-d.c: New file. 4334 * config/t-dragonfly: New file. 4335 43362020-11-18 Jakub Jelinek <jakub@redhat.com> 4337 4338 PR middle-end/97862 4339 * omp-expand.c (expand_omp_for_init_vars): Don't use the sqrt path 4340 if number of iterations is constant 0. 4341 43422020-11-18 Kito Cheng <kito.cheng@sifive.com> 4343 4344 * common/config/riscv/riscv-common.c (riscv_ext_version): New. 4345 (riscv_ext_version_table): Ditto. 4346 (get_default_version): Ditto. 4347 (riscv_subset_t::implied_p): New field. 4348 (riscv_subset_t::riscv_subset_t): Init implied_p. 4349 (riscv_subset_list::add): New. 4350 (riscv_subset_list::handle_implied_ext): Pass riscv_subset_t 4351 instead of separated argument. 4352 (riscv_subset_list::to_string): Handle zifencei and zicsr, and 4353 omit version if version is unknown. 4354 (riscv_subset_list::parsing_subset_version): New argument `ext`, 4355 remove default_major_version and default_minor_version, get 4356 default version info via get_default_version. 4357 (riscv_subset_list::parse_std_ext): Update argument for 4358 parsing_subset_version calls. 4359 Handle 2.2 ISA spec, always enable zicsr and zifencei, they are 4360 included in baseline ISA in that time. 4361 (riscv_subset_list::parse_multiletter_ext): Update argument for 4362 `parsing_subset_version` and `add` calls. 4363 (riscv_subset_list::parse): Adjust argument for 4364 riscv_subset_list::handle_implied_ext call. 4365 * config.gcc (riscv*-*-*): Handle --with-isa-spec=. 4366 * config.in (HAVE_AS_MISA_SPEC): New. 4367 (HAVE_AS_MARCH_ZIFENCEI): Ditto. 4368 * config/riscv/riscv-opts.h (riscv_isa_spec_class): New. 4369 (riscv_isa_spec): Ditto. 4370 * config/riscv/riscv.h (HAVE_AS_MISA_SPEC): New. 4371 (ASM_SPEC): Pass -misa-spec if gas supported. 4372 * config/riscv/riscv.opt (riscv_isa_spec_class) New. 4373 * configure.ac (HAVE_AS_MARCH_ZIFENCEI): New test. 4374 (HAVE_AS_MISA_SPEC): Ditto. 4375 * configure: Regen. 4376 43772020-11-18 Kito Cheng <kito.cheng@sifive.com> 4378 4379 * common/config/riscv/riscv-common.c (riscv_implied_info): 4380 d and f implied zicsr. 4381 (riscv_ext_flag_table): Handle zicsr and zifencei. 4382 * config/riscv/riscv-opts.h (MASK_ZICSR): New. 4383 (MASK_ZIFENCEI): Ditto. 4384 (TARGET_ZICSR): Ditto. 4385 (TARGET_ZIFENCEI): Ditto. 4386 * config/riscv/riscv.md (clear_cache): Check TARGET_ZIFENCEI. 4387 (fence_i): Ditto. 4388 * config/riscv/riscv.opt (riscv_zi_subext): New. 4389 43902020-11-18 Kito Cheng <kito.cheng@sifive.com> 4391 4392 * common/config/riscv/riscv-common.c (single_letter_subset_rank): New. 4393 (multi_letter_subset_rank): Ditto. 4394 (subset_cmp): Ditto. 4395 (riscv_subset_list::add): Insert subext in canonical ordering. 4396 (riscv_subset_list::parse_std_ext): Move handle_implied_ext to ... 4397 (riscv_subset_list::parse): ... here. 4398 43992020-11-18 Jiufu Guo <guojiufu@linux.ibm.com> 4400 4401 * cfgloop.h (loop_optimizer_finalize): Add flag argument. 4402 * loop-init.c (loop_optimizer_finalize): Call clean_up_loop_closed_phi. 4403 * tree-cfgcleanup.h (clean_up_loop_closed_phi): New declare. 4404 * tree-ssa-loop.c (tree_ssa_loop_done): Call loop_optimizer_finalize 4405 with flag argument. 4406 * tree-ssa-propagate.c (clean_up_loop_closed_phi): New function. 4407 44082020-11-17 Sebastian Pop <spop@amazon.com> 4409 4410 * config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64} 4411 as alias flags for --with-{cpu,arch,tune} on AArch64. 4412 * doc/install.texi: Document new flags for aarch64. 4413 44142020-11-17 Sebastian Pop <spop@amazon.com> 4415 4416 * config.gcc: Add --with-tune to AArch64 configure flags. 4417 44182020-11-17 Andrew MacLeod <amacleod@redhat.com> 4419 4420 PR tree-optimization/91029 4421 * range-op.cc (operator_trunc_mod::op1_range): New. 4422 44232020-11-17 Jan Hubicka <jh@suse.cz> 4424 4425 * ipa-icf.c (sem_function::hash_stmt): Fix conditional on 4426 variably_modified_type_p. 4427 44282020-11-17 Nathan Sidwell <nathan@acm.org> 4429 4430 * tree.h (cache_integer_cst): Add defaulted might_duplicate parm. 4431 * tree.c (cache_integer_cst): Return the integer cst, add 4432 might_duplicate parm to permit finding a small duplicate. 4433 44342020-11-17 Andrew MacLeod <amacleod@redhat.com> 4435 4436 PR tree-optimization/83072 4437 * range-op.cc (wi_optimize_and_or): Remove zero from IOR range when 4438 mask is non-zero. 4439 44402020-11-17 Joseph Myers <joseph@codesourcery.com> 4441 4442 * ginclude/float.h (CR_DECIMAL_DIG): Also define for 4443 [__STDC_WANT_IEC_60559_EXT__]. 4444 44452020-11-17 Joseph Myers <joseph@codesourcery.com> 4446 4447 * ginclude/float.h [__STDC_VERSION__ > 201710L] (FLT_IS_IEC_60559, 4448 DBL_IS_IEC_60559, LDBL_IS_IEC_60559): New macros. 4449 44502020-11-17 Aaron Sawdey <acsawdey@linux.ibm.com> 4451 4452 PR target/96791 4453 * mode-classes.def: Add MODE_OPAQUE. 4454 * machmode.def: Add OPAQUE_MODE. 4455 * tree.def: Add OPAQUE_TYPE for types that will use 4456 MODE_OPAQUE. 4457 * doc/generic.texi: Document OPAQUE_TYPE. 4458 * doc/rtl.texi: Document MODE_OPAQUE. 4459 * machmode.h: Add OPAQUE_MODE_P(). 4460 * genmodes.c (complete_mode): Add MODE_OPAQUE. 4461 (opaque_mode): New function. 4462 * tree.c (tree_code_size): Add OPAQUE_TYPE. 4463 * tree.h: Add OPAQUE_TYPE_P(). 4464 * stor-layout.c (int_mode_for_mode): Treat MODE_OPAQUE modes 4465 like BLKmode. 4466 * ira.c (find_moveable_pseudos): Treat MODE_OPAQUE modes more 4467 like integer/float modes here. 4468 * dbxout.c (dbxout_type): Treat OPAQUE_TYPE like VOID_TYPE. 4469 * tree-pretty-print.c (dump_generic_node): Treat OPAQUE_TYPE 4470 like like other types. 4471 44722020-11-17 Jan Hubicka <hubicka@ucw.cz> 4473 Martin Liska <mliska@suse.cz> 4474 4475 * ipa-icf.c: Include data-streamer.h and alias.h. 4476 (sem_function::sem_function): Initialize memory_access_types 4477 and m_alias_sets_hash. 4478 (sem_function::hash_stmt): For memory accesses and when going to 4479 do lto streaming add base and ref types into memory_access_types. 4480 (sem_item_optimizer::write_summary): Stream memory access types. 4481 (sem_item_optimizer::read_section): Likewise and also iniitalize 4482 m_alias_sets_hash. 4483 (sem_item_optimizer::execute): Call 4484 sem_item_optimizer::update_hash_by_memory_access_type. 4485 (sem_item_optimizer::update_hash_by_memory_access_type): Updat. 4486 * ipa-icf.h (sem_function): Add memory_access_types and 4487 m_alias_sets_hash. 4488 44892020-11-17 Jan Hubicka <jh@suse.cz> 4490 4491 PR bootstrap/97857 4492 * ipa-devirt.c (odr_based_tbaa_p): Do not ICE when 4493 odr_hash is not initialized 4494 * ipa-utils.h (type_with_linkage_p): Do not sanity check 4495 CXX_ODR_P. 4496 * tree-streamer-out.c (pack_ts_type_common_value_fields): Set 4497 CXX_ODR_P according to the canonical type. 4498 44992020-11-17 Nathan Sidwell <nathan@acm.org> 4500 4501 * langhooks-def.h (LANG_HOOKS_PREPROCESS_MAIN_FILE) 4502 (LANG_HOOKS_PREPROCESS_OPTIONS, LANG_HOOKS_PREPROCESS_UNDEF) 4503 (LANG_HOOKS_PREPROCESS_TOKEN): New. 4504 (LANG_HOOKS_INITIALIZER): Add them. 4505 * langhooks.h (struct lang_hooks): Add preprocess_main_file, 4506 preprocess_options, preprocess_undef, preprocess_token hooks. Add 4507 enum PT_flags. 4508 45092020-11-17 Richard Sandiford <richard.sandiford@arm.com> 4510 4511 PR tree-optimization/97693 4512 * tree-vect-stmts.c (vectorizable_call): Pass the required vectype 4513 to vect_get_vec_defs_for_operand. 4514 45152020-11-17 Liu Hao <lh_mouse@126.com> 4516 4517 * config/i386/msformat-c.c: Add more length modifiers. 4518 45192020-11-17 Tamar Christina <tamar.christina@arm.com> 4520 4521 PR driver/97574 4522 * gcc.c (convert_filename): Don't add suffix to things that are 4523 not files. 4524 (not_actual_file_p): Use supplied argument. 4525 45262020-11-17 Haochen Gui <guihaoc@gcc.gnu.org> 4527 4528 * final.c (final_scan_insn_1): Set jump table relocatable as the 4529 second argument of targetm.asm_out.function_rodata_section. 4530 * output.h (default_function_rodata_section, 4531 default_no_function_rodata_section): Add the second argument to the 4532 declarations. 4533 * target.def (function_rodata_section): Change the doc and add 4534 the second argument. 4535 * doc/tm.texi: Regenerate. 4536 * varasm.c (jumptable_relocatable): Implement. 4537 (default_function_rodata_section): Add the second argument 4538 and the support for relocatable read only sections. 4539 (default_no_function_rodata_section): Add the second argument. 4540 (function_mergeable_rodata_prefix): Set the second argument to false. 4541 * config/mips/mips.c (mips_function_rodata_section): Add the second 4542 arugment and set it to false. 4543 * config/s390/s390.c (targetm.asm_out.function_rodata_section): Set 4544 the second argument to false. 4545 * config/s390/s390.md: Likewise. 4546 45472020-11-17 liuhongt <hongtao.liu@intel.com> 4548 4549 PR target/97194 4550 * config/i386/i386-expand.c (ix86_expand_vector_set_var): New function. 4551 * config/i386/i386-protos.h (ix86_expand_vector_set_var): New Decl. 4552 * config/i386/predicates.md (vec_setm_operand): New predicate, 4553 true for const_int_operand or register_operand under TARGET_AVX2. 4554 * config/i386/sse.md (vec_set<mode>): Support both constant 4555 and variable index vec_set. 4556 45572020-11-17 Martin Sebor <msebor@redhat.com> 4558 4559 * tree-ssa-uninit.c (maybe_warn_operand): Call is_empty_type. 4560 * tree.c (default_is_empty_type): Rename... 4561 (is_empty_type): ...to this. 4562 * tree.h (is_empty_type): Declare. 4563 45642020-11-17 Martin Sebor <msebor@redhat.com> 4565 4566 PR middle-end/95673 4567 * tree-ssa-strlen.c (used_only_for_zero_equality): Rename... 4568 (use_in_zero_equality): ...to this. Add a default argument. 4569 (handle_builtin_memcmp): Adjust to the name change above. 4570 (handle_builtin_string_cmp): Same. 4571 (maybe_warn_pointless_strcmp): Same. Pass in an explicit argument. 4572 45732020-11-17 Joseph Myers <joseph@codesourcery.com> 4574 4575 * ginclude/float.h (DEC32_SNAN, DEC64_SNAN, DEC128_SNAN): New C2x 4576 macros. 4577 45782020-11-17 Joseph Myers <joseph@codesourcery.com> 4579 4580 * ginclude/float.h (INFINITY, NAN, FLT_SNAN, DBL_SNAN, LDBL_SNAN) 4581 (FLT16_SNAN, FLT32_SNAN, FLT64_SNAN, FLT128_SNAN, FLT32X_SNAN) 4582 (FLT64X_SNAN, FLT128X_SNAN, DEC_INFINITY, DEC_NAN): New C2x 4583 macros. 4584 * doc/sourcebuild.texi (Effective-Target Keywords): Document inff. 4585 45862020-11-17 Armin Brauns via Gcc-patches <gcc-patches@gcc.gnu.org> 4587 4588 * gcc.c: Document %T spec file directive. 4589 * doc/invoke.texi: Remove %p, %P spec file directives. 4590 Add %M, %R, %V, %nSTR, %>S, %<S*, %{%:function(args):X}, %@{...} spec 4591 file directives add sanitize, version-compare, include, gt and 4592 debug-level-gt spec functions. 4593 45942020-11-16 Roger Sayle <roger@nextmovesoftware.com> 4595 4596 PR rtl-optimization/92180 4597 * config/i386/i386.c (ix86_hardreg_mov_ok): New function to 4598 determine whether (set DST SRC) should be allowed at this point. 4599 * config/i386/i386-protos.h (ix86_hardreg_mov_ok): Prototype here. 4600 * config/i386/i386-expand.c (ix86_expand_move): Check whether 4601 this is a complex set of a likely spilled hard register, and if 4602 so place the value in a pseudo, and load the hard reg from it. 4603 * config/i386/i386.md (*movdi_internal, *movsi_internal) 4604 (*movhi_internal, *movqi_internal): Make these instructions 4605 conditional on ix86_hardreg_mov_ok. 4606 (*lea<mode>): Make this define_insn_and_split conditional on 4607 ix86_hardreg_mov_ok. 4608 46092020-11-16 Martin Liska <mliska@suse.cz> 4610 4611 * params.opt: Add missing dot. 4612 46132020-11-16 Jan Hubicka <jh@suse.cz> 4614 4615 * ipa-modref.c (escape_point): New type. 4616 (modref_lattice): New type. 4617 (escape_entry): New type. 4618 (escape_summary): New type. 4619 (escape_summaries_t): New type. 4620 (escape_summaries): New static variable. 4621 (eaf_flags_useful_p): New function. 4622 (modref_summary::useful_p): Add new check_flags 4623 attribute; check eaf_flags for usefulness. 4624 (modref_summary_lto): Add arg_flags. 4625 (modref_summary_lto::useful_p): Add new check_flags 4626 attribute; check eaf_flags for usefulness. 4627 (dump_modref_edge_summaries): New function. 4628 (remove_modref_edge_summaries): New function. 4629 (ignore_retval_p): New predicate. 4630 (ignore_stores_p): Also ignore for const. 4631 (remove_summary): Call remove_modref_edge_summaries. 4632 (modref_lattice::init): New member function. 4633 (modref_lattice::release): New member unction. 4634 (modref_lattice::dump): New member function. 4635 (modref_lattice::add_escape_point): New member function. 4636 (modref_lattice::merge): Two new member functions. 4637 (modref_lattice::merge_deref): New member functions. 4638 (modref_lattice::merge_direct_load): New member function. 4639 (modref_lattice::merge_direct_store): New member function. 4640 (call_lhs_flags): Rename to ... 4641 (merge_call_lhs_flags): ... this one; reimplement using 4642 modreflattice. 4643 (analyze_ssa_name_flags): Replace KNOWN_FLAGS param by LATTICE; 4644 add IPA parametr; use modref_lattice. 4645 (analyze_parms): New parameter IPA and SUMMARY_LTO; update for 4646 modref_lattice; initialize escape_summary. 4647 (analyze_function): Allocate escape_summaries; update uses of useful_p. 4648 (modref_write_escape_summary): New function. 4649 (modref_read_escape_summary): New function. 4650 (modref_write): Write escape summary. 4651 (read_section): Read escape summary. 4652 (modref_read): Initialie escape_summaries. 4653 (remap_arg_flags): New function. 4654 (update_signature): Use it. 4655 (escape_map): New structure. 4656 (update_escape_summary_1, update_escape_summary): New functions. 4657 (ipa_merge_modref_summary_after_inlining): Merge escape summaries. 4658 (propagate_unknown_call): Do not remove useless summaries. 4659 (remove_useless_summaries): Remove them here. 4660 (modref_propagate_in_scc): Update; do not dump scc. 4661 (modref_propagate_dump_scc): New function. 4662 (modref_merge_call_site_flags): New function. 4663 (modref_propagate_flags_in_scc): New function. 4664 (pass_ipa_modref::execute): Use modref_propagate_flags_in_scc 4665 and modref_propagate_dump_scc; delete escape_summaries. 4666 (ipa_modref_c_finalize): Remove escape_summaries. 4667 * ipa-modref.h (modref_summary): Update prototype of useful_p. 4668 * params.opt (param=modref-max-escape-points): New param. 4669 * doc/invoke.texi (modref-max-escape-points): Document. 4670 46712020-11-16 Jan Hubicka <jh@suse.cz> 4672 4673 PR middle-end/97840 4674 * ipa-modref.c (analyze_ssa_name_flags): Skip clobbers if inlining 4675 is done. 4676 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Make stmt gcall; 4677 skip const calls and unused arguments. 4678 (warn_uninitialized_vars): Update prototype. 4679 46802020-11-16 Richard Biener <rguenther@suse.de> 4681 4682 * tree-vectorizer.h (vect_gather_slp_loads): Declare. 4683 * tree-vect-loop.c (vect_analyze_loop_2): Call 4684 vect_gather_slp_loads. 4685 * tree-vect-slp.c (vect_build_slp_instance): Do not gather 4686 SLP loads here. 4687 (vect_gather_slp_loads): Remove wrapper, new function. 4688 (vect_slp_analyze_bb_1): Call it. 4689 46902020-11-16 Richard Biener <rguenther@suse.de> 4691 4692 * tree-ssa-loop-im.c (analyze_memory_references): Add 4693 store_motion parameter and elide unnecessary work. 4694 (tree_ssa_lim_initialize): Likewise. 4695 (loop_invariant_motion_in_fun): Pass down store_motion. 4696 46972020-11-16 Martin Liska <mliska@suse.cz> 4698 4699 * params.opt: All modref parameters miss Optimization and Param 4700 keyword as seen in testsuite failure. 4701 47022020-11-16 Jan Hubicka <jh@suse.cz> 4703 4704 * params.opt (-param=modref-max-depth=): Add missing full stop. 4705 47062020-11-16 Sebastian Huber <sebastian.huber@embedded-brains.de> 4707 4708 * common.opt (fprofile-info-section): New. 4709 * coverage.c (build_gcov_info_var_registration): New. 4710 (coverage_obj_init): Evaluate profile_info_section and use 4711 build_gcov_info_var_registration(). 4712 * doc/invoke.texi (fprofile-info-section): Document. 4713 * opts.c (common_handle_option): Process fprofile-info-section 4714 option. 4715 47162020-11-16 Richard Biener <rguenther@suse.de> 4717 4718 PR tree-optimization/97838 4719 * tree-vect-slp.c (vect_slp_build_vertices): Properly handle 4720 not backwards reachable cycles. 4721 (vect_optimize_slp): Check a node is leaf before marking it 4722 visited. 4723 47242020-11-16 Martin Liska <mliska@suse.cz> 4725 4726 PR tree-optimization/97736 4727 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): 4728 Prefer bit tests. 4729 47302020-11-16 Richard Biener <rguenther@suse.de> 4731 4732 PR tree-optimization/97835 4733 * tree-vect-loop.c (vectorizable_induction): Convert step 4734 scalars rather than step vector. 4735 47362020-11-16 Richard Biener <rguenther@suse.de> 4737 4738 PR tree-optimization/97830 4739 * tree-ssa-sccvn.c (vn_reference_eq): Check for incomplete 4740 types before comparing TYPE_SIZE. 4741 47422020-11-16 Cui,Lili <lili.cui@intel.com> 4743 4744 * config/i386/i386.h: Add PREFETCHW to march=broadwell. 4745 * doc/invoke.texi: Put PREFETCHW back to relation arch. 4746 47472020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> 4748 4749 * config/msp430/msp430.c (msp430_output_labelref): Don't process mspabi 4750 hwmult library function names into GCC-style names. 4751 47522020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> 4753 4754 * config/msp430/msp430.c (msp430_use_16bit_hwmult): New. 4755 (use_32bit_hwmult): Rename to.. 4756 (msp430_use_32bit_hwmult): ..this. 4757 (msp430_muldiv_costs): Use msp430_use_16bit_hwmult and 4758 msp430_use_32bit_hwmult. 4759 (msp430_expand_helper): Use msp430_use_16bit_hwmult and 4760 msp430_use_32bit_hwmult. 4761 (msp430_output_labelref): Use msp430_use_32bit_hwmult. 4762 47632020-11-15 Maciej W. Rozycki <macro@linux-mips.org> 4764 4765 * config/vax/vax.c (vax_rtx_costs): Use `rtx_code' rather than 4766 `int' for `code'. 4767 47682020-11-15 Maciej W. Rozycki <macro@linux-mips.org> 4769 4770 * config/vax/vax.c (vax_output_int_add) <E_DImode>: Fix a typo 4771 in NO_EXTERNAL_INDIRECT_ADDRESS. 4772 47732020-11-15 Maciej W. Rozycki <macro@linux-mips.org> 4774 4775 * config/vax/vax.c (vax_output_int_add) <E_SImode>: Also check 4776 `operands[2]' for being symbolic with PIC rather than checking 4777 `operands[1]' twice. 4778 47792020-11-15 Aldy Hernandez <aldyh@redhat.com> 4780 4781 * vr-values.c (vr_values::extract_range_builtin): Rename to... 4782 (vr_values::extract_range_from_ubsan_builtin): ...this. 4783 Remove everything but UBSAN code. 4784 (vr_values::extract_range_basic): Call ranger version for 4785 everything except UBSAN built-ins. 4786 * vr-values.h (class vr_values): Rename extract_range_builtin to 4787 extract_range_from_ubsan_builtin. 4788 47892020-11-15 Vladimir N. Makarov <vmakarov@redhat.com> 4790 4791 * lra.c (lra_process_new_insns): Don't put reload insns in the 4792 last empty BB. 4793 47942020-11-15 Jan Hubicka <jh@suse.cz> 4795 4796 * ipa-modref.c (analyze_ssa_name_flags): Make return to clear 4797 EAF_UNUSED flag. 4798 47992020-11-14 Jan Hubicka <jh@suse.cz> 4800 4801 * gimple.c: Include ipa-modref-tree.h and ipa-modref.h. 4802 (gimple_call_arg_flags): Use modref to determine flags. 4803 * ipa-modref.c: Include gimple-ssa.h, tree-phinodes.h, 4804 tree-ssa-operands.h, stringpool.h and tree-ssanames.h. 4805 (analyze_ssa_name_flags): Declare. 4806 (modref_summary::useful_p): Summary is also useful if arg flags are 4807 known. 4808 (dump_eaf_flags): New function. 4809 (modref_summary::dump): Use it. 4810 (get_modref_function_summary): Be read for current_function_decl 4811 being NULL. 4812 (memory_access_to): New function. 4813 (deref_flags): New function. 4814 (call_lhs_flags): New function. 4815 (analyze_parms): New function. 4816 (analyze_function): Use it. 4817 * ipa-modref.h (struct modref_summary): Add arg_flags. 4818 * doc/invoke.texi (ipa-modref-max-depth): Document. 4819 * params.opt (ipa-modref-max-depth): New param. 4820 48212020-11-14 Jakub Jelinek <jakub@redhat.com> 4822 4823 PR debug/97599 4824 * dwarf2out.c (gen_subprogram_die): Call 4825 gen_unspecified_parameters_die even if not early dwarf, but only 4826 if subr_die is a newly created DIE. 4827 48282020-11-14 Monk Chiang <monk.chiang@sifive.com> 4829 4830 PR target/97682 4831 * config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Change register 4832 to t0. 4833 (RISCV_CALL_ADDRESS_TEMP_REGNUM): New Marco, define t1 register. 4834 (RISCV_CALL_ADDRESS_TEMP): Use it for call instructions. 4835 * config/riscv/riscv.c (riscv_legitimize_call_address): Use 4836 RISCV_CALL_ADDRESS_TEMP. 4837 (riscv_compute_frame_info): Change temporary register to t0 form t1. 4838 (riscv_trampoline_init): Adjust comment. 4839 48402020-11-14 Jim Wilson <jimw@sifive.com> 4841 cooper.joshua <cooper.joshua@linux.alibaba.com> 4842 4843 * config/riscv/riscv.c (riscv_asan_shadow_offset): New. 4844 (TARGET_ASAN_SHADOW_OFFSET): New. 4845 * doc/tm.texi: Regenerated. 4846 * target.def (asan_shadow_offset); Mention that it can return zero. 4847 * toplev.c (process_options): Check for and handle zero return from 4848 targetm.asan_shadow_offset call. 4849 48502020-11-14 Jakub Jelinek <jakub@redhat.com> 4851 4852 * gimplify.c (gimplify_omp_for): Add OMP_CLAUSE_ALLOCATE_ALLOCATOR 4853 decls as firstprivate on task clauses even when allocate clause 4854 decl is not lastprivate. 4855 * omp-low.c (install_var_field): Don't dereference omp_is_reference 4856 types if mask is 33 rather than 1. 4857 (scan_sharing_clauses): Populate allocate_map even for task 4858 constructs. For now remove it back for variables mentioned in 4859 reduction and in_reduction clauses on task/taskloop constructs 4860 or on VLA task firstprivates. For firstprivate on task construct, 4861 install the var field into field_map with by_ref and 33 instead 4862 of false and 1 if mentioned in allocate clause. 4863 (lower_private_allocate): Set TREE_THIS_NOTRAP on the created 4864 MEM_REF. 4865 (lower_rec_input_clauses): Handle allocate for task firstprivatized 4866 non-VLA variables. 4867 (create_task_copyfn): Likewise. 4868 48692020-11-13 Jan Hubicka <jh@suse.cz> 4870 4871 * tree-ssa-alias.c (ao_ref_base_alias_ptr_type): Remove accidental 4872 commit. 4873 (ao_ref_alias_ptr_type): Remove accidental commit. 4874 48752020-11-13 Kwok Cheung Yeung <kcy@codesourcery.com> 4876 4877 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region): 4878 Use langhook instead of accessing language-specific decl 4879 information. 4880 48812020-11-13 Gergö Barany <gergo@codesourcery.com> 4882 Thomas Schwinge <thomas@codesourcery.com> 4883 4884 * omp-oacc-kernels-decompose.cc: New. 4885 * Makefile.in (OBJS): Add it. 4886 * passes.def: Instantiate it. 4887 * tree-pass.h (make_pass_omp_oacc_kernels_decompose): Declare. 4888 * flag-types.h (enum openacc_kernels): Add. 4889 * doc/invoke.texi (-fopenacc-kernels): Document. 4890 * gimple.h (enum gf_mask): Add 4891 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_PARALLELIZED', 4892 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_GANG_SINGLE', 4893 'GF_OMP_TARGET_KIND_OACC_DATA_KERNELS'. 4894 (is_gimple_omp_oacc, is_gimple_omp_offloaded): Handle these. 4895 * gimple-pretty-print.c (dump_gimple_omp_target): Likewise. 4896 * omp-expand.c (expand_omp_target, build_omp_regions_1) 4897 (omp_make_gimple_edges): Likewise. 4898 * omp-low.c (scan_sharing_clauses, scan_omp_for) 4899 (check_omp_nesting_restrictions, lower_oacc_reductions) 4900 (lower_oacc_head_mark, lower_omp_target): Likewise. 4901 * omp-offload.c (execute_oacc_device_lower): Likewise. 4902 49032020-11-13 Thomas Schwinge <thomas@codesourcery.com> 4904 4905 * omp-low.c (scan_sharing_clauses, scan_omp_for) 4906 (lower_oacc_reductions, lower_omp_target): More explicit checking 4907 of which OMP constructs we're expecting. 4908 49092020-11-13 Thomas Schwinge <thomas@codesourcery.com> 4910 4911 * omp-expand.c (expand_omp_target): Attach an attribute to all 4912 outlined OpenACC compute regions. 4913 * omp-offload.c (execute_oacc_device_lower): Adjust. 4914 49152020-11-13 Jan Hubicka <jh@suse.cz> 4916 4917 * ipa-modref.c (modref_summaries::insert, 4918 modref_summaries_lto::insert): Remove summary if ipa-modref is disabled. 4919 49202020-11-13 Jan Hubicka <jh@suse.cz> 4921 4922 * attr-fnspec.h (attr_fnspec::arg_readonly_p): Accept '1'...'9'. 4923 49242020-11-13 Peter Jones <pjones@redhat.com> 4925 4926 * doc/extend.texi: Clarify the documentation for the ms_abi 4927 function attribute. 4928 49292020-11-13 Andrew MacLeod <amacleod@redhat.com> 4930 4931 * gimple-range.h (gimple_range_handler): Cast to gimple stmt 4932 kinds before asking for code and type. 4933 * gimple.h (gimple_expr_code): Call gassign and gcond routines 4934 to get their expr_code. 4935 49362020-11-13 Jason Merrill <jason@redhat.com> 4937 4938 * dwarf2out.c (gen_enumeration_type_die): Call 4939 equate_decl_number_to_die for enumerators. 4940 (gen_member_die): Don't move enumerators to their 4941 enclosing class. 4942 (dwarf2out_imported_module_or_decl_1): Allow importing 4943 individual enumerators. 4944 (force_decl_die): Handle CONST_DECL. 4945 49462020-11-13 Vladimir N. Makarov <vmakarov@redhat.com> 4947 4948 * cfgexpand.c (expand_asm_stmt): Output asm goto with outputs too. 4949 Place insns after asm goto on edges. 4950 * doc/extend.texi: Reflect the changes in asm goto documentation. 4951 * gimple.c (gimple_build_asm_1): Remove an assert checking output 4952 absence for asm goto. 4953 * gimple.h (gimple_asm_label_op, gimple_asm_set_label_op): Take 4954 possible asm goto outputs into account. 4955 * ira.c (ira): Remove critical edges for potential asm goto output 4956 reloads. 4957 (ira_nullify_asm_goto): New function. 4958 * ira.h (ira_nullify_asm_goto): New prototype. 4959 * lra-assigns.c (lra_split_hard_reg_for): Use ira_nullify_asm_goto. 4960 Check that splitting is done inside a basic block. 4961 * lra-constraints.c (curr_insn_transform): Permit output reloads 4962 for any jump insn. 4963 * lra-spills.c (lra_final_code_change): Remove USEs added in ira 4964 for asm gotos. 4965 * lra.c (lra_process_new_insns): Place output reload insns after 4966 jumps in the beginning of destination BBs. 4967 * reload.c (find_reloads): Report error for asm gotos with 4968 outputs. Modify them to keep CFG consistency to avoid crashes. 4969 * tree-into-ssa.c (rewrite_stmt): Don't put debug stmt after asm 4970 goto. 4971 49722020-11-13 Jakub Jelinek <jakub@redhat.com> 4973 4974 * omp-low.c (scan_sharing_clauses): For now remove for reduction 4975 clauses with inscan or task modifiers decl from allocate_map. 4976 (lower_private_allocate): Handle TYPE_P (new_var). 4977 (lower_rec_input_clauses): Handle allocate clause for C/C++ array 4978 reductions. 4979 49802020-11-13 Martin Jambor <mjambor@suse.cz> 4981 4982 PR ipa/97816 4983 * ipa-cp.c (value_topo_info<valtype>::propagate_effects): Use 4984 safe_add instead of a simple addition. 4985 49862020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> 4987 4988 * config/msp430/msp430.c (TARGET_INSN_COST): Define. 4989 (msp430_insn_cost): New function. 4990 * config/msp430/msp430.h (BRANCH_COST): Define. 4991 (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. 4992 49932020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> 4994 4995 * config/msp430/msp430-protos.h (msp430x_extendhisi): Return int 4996 instead of char *. 4997 (msp430_output_asm_shift_insns): Likewise. 4998 Add new return_length argument. 4999 (msp430x_insn_required): Add prototype. 5000 * config/msp430/msp430.c (msp430_output_asm_shift_insns): Return the 5001 total length, in bytes, of the emitted instructions. 5002 (msp430x_insn_required): New function. 5003 (msp430x_extendhisi): Return the total length, in bytes, of the 5004 emitted instructions. 5005 * config/msp430/msp430.h (ADJUST_INSN_LENGTH): Define. 5006 * config/msp430/msp430.md: New define_attr "type". 5007 New define_attr "extension". 5008 New define_attr "length_multiplier". 5009 New define_attr "extra_length". 5010 Rewrite define_attr "length". 5011 Set type, extension, length, length_multiplier or extra_length insn 5012 attributes on all insns, as appropriate. 5013 (andneghi3): Rewrite using constraints instead of C code to decide 5014 output insns. 5015 * config/msp430/predicates.md (msp430_cheap_operand): New predicate. 5016 (msp430_high_memory_operand): New predicate. 5017 50182020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> 5019 5020 * config/msp430/msp430.c (use_helper_for_const_shift): Add forward 5021 declaration. 5022 Remove unused argument. 5023 (struct msp430_multlib_costs): New struct. 5024 (msp430_is_mem_indirect): New function. 5025 (msp430_costs): Likewise. 5026 (msp430_shift_costs): Likewise. 5027 (msp430_muldiv_costs): Likewise. 5028 (msp430_get_inner_dest_code): Likewise. 5029 (msp430_single_op_cost): Likewise. 5030 (msp430_rtx_costs): Rewrite from scratch. 5031 (msp430_expand_shift): Adjust use_helper_for_const_shift call. 5032 50332020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> 5034 5035 * config/msp430/msp430.c (struct single_op_cost): New struct. 5036 (struct double_op_cost): Likewise. 5037 (TARGET_REGISTER_MOVE_COST): Don't define but add comment. 5038 (TARGET_MEMORY_MOVE_COST): Define to... 5039 (msp430_memory_move_cost): New function. 5040 (BRANCH_COST): Don't define but add comment. 5041 50422020-11-13 Jan Hubicka <jh@suse.cz> 5043 5044 * ipa-icf-gimple.c: Include tree-ssa-alias-compare.h. 5045 (find_checker::func_checker): Initialize m_tbaa. 5046 (func_checker::hash_operand): Use hash_ao_ref for memory accesses. 5047 (func_checker::compare_operand): Use compare_ao_refs for memory 5048 accesses. 5049 (func_checker::cmopare_gimple_assign): Do not check LHS types 5050 of memory stores. 5051 * ipa-icf-gimple.h (func_checker): Derive from ao_compare; 5052 add m_tbaa. 5053 * ipa-icf.c: Include tree-ssa-alias-compare.h. 5054 (sem_function::equals_private): Update call of 5055 func_checker::func_checker. 5056 * ipa-utils.h (lto_streaming_expected_p): New inline 5057 predicate. 5058 * tree-ssa-alias-compare.h: New file. 5059 * tree-ssa-alias.c: Include tree-ssa-alias-compare.h 5060 and bultins.h 5061 (view_converted_memref_p): New function. 5062 (types_equal_for_same_type_for_tbaa_p): New function. 5063 (ao_ref_alias_ptr_type, ao_ref_base_alias_ptr_type): New functions. 5064 (ao_compare::compare_ao_refs): New member function. 5065 (ao_compare::hash_ao_ref): New function 5066 * tree-ssa-alias.h (ao_ref_base_alias_ptr_type, 5067 ao_ref_alias_ptr_type): Declare. 5068 50692020-11-13 Jan Hubicka <jh@suse.cz> 5070 5071 * ipa-icf-gimple.c: Include gimple-walk.h. 5072 (func_checker::compare_ssa_name): Update call of compare_operand. 5073 (func_checker::hash_operand): Fix comment and add variant taking 5074 operand_access_type parameter. 5075 (func_checker::compare_operand): Add operand_access_type parameter. 5076 (func_checker::compare_asm_inputs_outputs): Add 5077 operand_access_type_map parameter; update use of 5078 func_checker::compare_operand. 5079 (func_checker::compare_gimple_call): Update use of 5080 func_checker::compare_operand. 5081 (func_checker::compare_gimple_assign): Likewise. 5082 (func_checker::compare_gimple_cond): Likewise. 5083 (func_checker::compare_gimple_switch): Likewise. 5084 (func_checker::compare_gimple_return): Likewise. 5085 (func_checker::compare_gimple_goto): Likewise. 5086 (func_checker::compare_gimple_asm): Likewise. 5087 (visit_load_store): New static functio. 5088 (func_checker::classify_operands): New member function. 5089 (func_checker::get_operand_access_type): New member function. 5090 * ipa-icf-gimple.h (func_checker::operand_access_type): New enum 5091 (func_checker::operand_access_type_map): New typedef. 5092 (func_checker::compare_operand): Update prototype. 5093 (func_checker::compare_asm_inputs_outputs): Likewise. 5094 (func_checker::cleassify_operands): Declare. 5095 (func_checker::get_operand_access_type): Declare. 5096 (func_checker::hash_operand): New variant with operand_access_type. 5097 * ipa-icf.c (sem_function::hash_stmt): Update uses of hash_operand. 5098 (sem_function::compare_phi_node): Update use of compare_operand. 5099 51002020-11-13 Andrea Corallo <andrea.corallo@arm.com> 5101 5102 * config/arm/aarch-common.c (aarch_accumulator_forwarding): Use 5103 RTL predicates where possible. 5104 * config/arm/arm.c (legitimate_pic_operand_p) 5105 (legitimize_pic_address, arm_is_segment_info_known) 5106 (can_avoid_literal_pool_for_label_p) 5107 (thumb1_legitimate_address_p, arm_legitimize_address) 5108 (arm_tls_referenced_p, thumb_legitimate_constant_p) 5109 (REG_OR_SUBREG_REG, thumb1_rtx_costs, thumb1_size_rtx_costs) 5110 (arm_adjust_cost, arm_coproc_mem_operand_wb) 5111 (neon_vector_mem_operand, neon_struct_mem_operand) 5112 (symbol_mentioned_p, label_mentioned_p, ) 5113 (load_multiple_sequence, store_multiple_sequence) 5114 (arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi) 5115 (mem_ok_for_ldrd_strd, arm_emit_call_insn, output_move_neon) 5116 (arm_attr_length_move_neon, arm_assemble_integer) 5117 (arm_emit_coreregs_64bit_shift, arm_valid_symbolic_address_p) 5118 (extract_base_offset_in_addr, fusion_load_store): Likewise. 5119 51202020-11-13 Andrew MacLeod <amacleod@redhat.com> 5121 5122 * gimple-range.cc: (gimple_ranger::range_of_range_op): Check for 5123 ADDR_EXPR and call range_of_address. 5124 (gimple_ranger::range_of_address): Rename from 5125 range_of_non_trivial_assignment and match vrp_stmt_computes_nonzero. 5126 * gimple-range.h: (range_of_address): Renamed. 5127 * range-op.cc: (pointer_table): Add INTEGER_CST handler. 5128 51292020-11-13 Martin Jambor <mjambor@suse.cz> 5130 5131 PR tree-optimization/94406 5132 * tree-ssa-loop-im.c (tree_ssa_lim): Renamed to 5133 loop_invariant_motion_in_fun, added a parameter to control store 5134 motion. 5135 (pass_lim::execute): Adjust call to tree_ssa_lim, now 5136 loop_invariant_motion_in_fun. 5137 * tree-ssa-loop-manip.h (loop_invariant_motion_in_fun): Declare. 5138 * gimple-loop-interchange.cc (pass_linterchange::execute): Call 5139 loop_invariant_motion_in_fun if any interchange has been done. 5140 51412020-11-13 Richard Biener <rguenther@suse.de> 5142 5143 * tree-ssa-sccvn.c (vn_phi_compute_hash): Always hash the 5144 number of predecessors. Hash the block number also for 5145 loop header PHIs. 5146 (expressions_equal_p): Short-cut SSA name compares, remove 5147 test for NULL operands. 5148 (vn_phi_eq): Cache number of predecessors, change inlined 5149 test from expressions_equal_p. 5150 51512020-11-13 Iain Sandoe <iain@sandoe.co.uk> 5152 5153 * doc/extend.texi: Don't try to line-wrap an @r command. 5154 51552020-11-13 Richard Biener <rguenther@suse.de> 5156 5157 PR tree-optimization/97812 5158 * tree-vrp.c (register_edge_assert_for_2): Extend the range 5159 according to its sign before seeing whether it fits. 5160 51612020-11-13 Andrea Corallo <andrea.corallo@arm.com> 5162 5163 * config/aarch64/aarch64.c (tls_symbolic_operand_type) 5164 (aarch64_load_symref_appropriately, aarch64_mov128_immediate) 5165 (aarch64_expand_mov_immediate) 5166 (aarch64_maybe_expand_sve_subreg_move) 5167 (aarch64_tls_referenced_p, aarch64_cannot_force_const_mem) 5168 (aarch64_base_register_rtx_p, aarch64_classify_index) 5169 (aarch64_classify_address, aarch64_symbolic_address_p) 5170 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p) 5171 (aarch64_can_const_movi_rtx_p, aarch64_select_cc_mode) 5172 (aarch64_print_operand, aarch64_label_mentioned_p) 5173 (aarch64_secondary_reload, aarch64_preferred_reload_class) 5174 (aarch64_address_cost, aarch64_tls_symbol_p) 5175 (aarch64_classify_symbol, aarch64_legitimate_pic_operand_p) 5176 (aarch64_legitimate_constant_p) 5177 (aarch64_sve_float_arith_immediate_p) 5178 (aarch64_sve_float_mul_immediate_p, aarch64_mov_operand_p) 5179 (fusion_load_store): Use RTL operands where possible. 5180 51812020-11-13 Sudakshina Das <sudi.das@arm.com> 5182 5183 * config/aarch64/aarch64-protos.h (aarch64_expand_setmem): New 5184 declaration. 5185 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case for 5186 E_V16QImode. 5187 (aarch64_set_one_block_and_progress_pointer): New helper for 5188 aarch64_expand_setmem. 5189 (aarch64_expand_setmem): Define the expansion for memset. 5190 * config/aarch64/aarch64.h (CLEAR_RATIO): Tweak to favor 5191 aarch64_expand_setmem when allowed and profitable. 5192 (SET_RATIO): Likewise. 5193 * config/aarch64/aarch64.md: Define pattern for setmemdi. 5194 51952020-11-13 Iain Sandoe <iain@sandoe.co.uk> 5196 5197 PR objc/90707 5198 * doc/extend.texi: Document the objc_nullability attribute. 5199 52002020-11-13 Iain Sandoe <iain@sandoe.co.uk> 5201 5202 PR objc/77404 5203 * doc/extend.texi: Document the objc_root_class attribute. 5204 * doc/invoke.texi: Document -Wobjc-root-class. 5205 52062020-11-13 Richard Biener <rguenther@suse.de> 5207 5208 * cfgexpand.c (gimple_assign_rhs_to_tree): Use 5209 gimple_assign_rhs_class. 5210 (expand_gimple_stmt_1): Likewise. 5211 * gimplify-me.c (gimple_regimplify_operands): Use 5212 gimple_assign_single_p. 5213 * ipa-icf-gimple.c (func_checker::compare_gimple_assign): 5214 Remove redundant compare. 5215 (func_checker::compare_gimple_cond): Use gimple_cond_code. 5216 * tree-ssa-tail-merge.c (gimple_equal_p): Likewise. 5217 * predict.c (predict_loops): Use gimple_assign_rhs_code. 5218 52192020-11-13 Aldy Hernandez <aldyh@redhat.com> 5220 5221 * tree-vrp.c (class vrp_folder): Make visit_stmt, visit_phi, 5222 and m_vr_values private. 5223 (vrp_folder::vrp_evaluate_conditional): Remove. 5224 (vrp_folder::vrp_simplify_stmt_using_ranges): Remove. 5225 (vrp_folder::fold_predicate_in): Inline 5226 vrp_evaluate_conditional and vrp_simplify_stmt_using_ranges. 5227 (vrp_folder::fold_stmt): Same. 5228 52292020-11-13 Aldy Hernandez <aldyh@redhat.com> 5230 5231 * tree-vrp.c (class vrp_prop): Rename vr_values to m_vr_values. 5232 (vrp_prop::vrp_prop): New. 5233 (vrp_prop::initialize): Rename vr_values to m_vr_values. 5234 (vrp_prop::visit_stmt): Same. 5235 (vrp_prop::visit_phi): Same. 5236 (vrp_prop::finalize): Same. 5237 (execute_vrp): Instantiate vrp_vr_values and pass it to folder 5238 and propagator. 5239 52402020-11-13 Aldy Hernandez <aldyh@redhat.com> 5241 5242 * tree-vrp.c (class vrp_prop): Move entire class... 5243 (class vrp_folder): ...before here. 5244 52452020-11-13 Aldy Hernandez <aldyh@redhat.com> 5246 5247 * tree-vrp.c (identify_jump_threads): Refactor to.. 5248 (vrp_jump_threader::vrp_jump_threader): ...here 5249 (vrp_jump_threader::~vrp_jump_threader): ...and here. 5250 (vrp_jump_threader::after_dom_children): Rename vr_values to 5251 m_vr_values. 5252 (execute_vrp): Use vrp_jump_threader. 5253 52542020-11-13 Aldy Hernandez <aldyh@redhat.com> 5255 5256 * tree-vrp.c (struct assert_locus): Move. 5257 (class vrp_insert): Rename to vrp_asserts. 5258 (vrp_insert::build_assert_expr_for): Move to vrp_asserts. 5259 (fp_predicate): Same. 5260 (vrp_insert::dump): Same. 5261 (vrp_insert::register_new_assert_for): Same. 5262 (extract_code_and_val_from_cond_with_ops): Move. 5263 (vrp_insert::finish_register_edge_assert_for): Move to vrp_asserts. 5264 (maybe_set_nonzero_bits): Move. 5265 (vrp_insert::find_conditional_asserts): Move to vrp_asserts. 5266 (stmt_interesting_for_vrp): Move. 5267 (struct case_info): Move. 5268 (compare_case_labels): Move. 5269 (lhs_of_dominating_assert): Move. 5270 (find_case_label_index): Move. 5271 (find_case_label_range): Move. 5272 (class vrp_asserts): New. 5273 (vrp_asserts::build_assert_expr_for): Rename from vrp_insert. 5274 (vrp_asserts::dump): Same. 5275 (vrp_asserts::register_new_assert_for): Same. 5276 (vrp_asserts::finish_register_edge_assert_for): Same. 5277 (vrp_asserts::find_conditional_asserts): Same. 5278 (vrp_asserts::compare_case_labels): Same. 5279 (vrp_asserts::find_switch_asserts): Same. 5280 (vrp_asserts::find_assert_locations_in_bb): Same. 5281 (vrp_asserts::find_assert_locations): Same. 5282 (vrp_asserts::process_assert_insertions_for): Same. 5283 (vrp_asserts::compare_assert_loc): Same. 5284 (vrp_asserts::process_assert_insertions): Same. 5285 (vrp_asserts::insert_range_assertions): Same. 5286 (vrp_asserts::all_imm_uses_in_stmt_or_feed_cond): Same. 5287 (vrp_asserts::remove_range_assertions): Same. 5288 (class vrp_prop): Move. 5289 (all_imm_uses_in_stmt_or_feed_cond): Move. 5290 (vrp_prop::vrp_initialize): Move. 5291 (class vrp_folder): Move. 5292 (vrp_folder::fold_predicate_in): Move. 5293 (vrp_folder::fold_stmt): Move. 5294 (vrp_prop::initialize): Move. 5295 (vrp_prop::visit_stmt): Move. 5296 (enum ssa_prop_result): Move. 5297 (vrp_prop::visit_phi): Move. 5298 (vrp_prop::finalize): Move. 5299 (class vrp_dom_walker): Rename to... 5300 (class vrp_jump_threader): ...this. 5301 (vrp_jump_threader::before_dom_children): Rename from 5302 vrp_dom_walker. 5303 (simplify_stmt_for_jump_threading): Rename to... 5304 (vrp_jump_threader::simplify_stmt): ...here. 5305 (vrp_jump_threader::after_dom_children): Same. 5306 (identify_jump_threads): Move. 5307 (vrp_prop::vrp_finalize): Move array bounds setup code to... 5308 (execute_vrp): ...here. 5309 53102020-11-13 Andrew MacLeod <amacleod@redhat.com> 5311 5312 * gimple-range.h (gimple_range_handler): Use gimple_assign and 5313 gimple_cond routines to get type and code. 5314 * range-op.cc (range_op_handler): Check for integral types. 5315 53162020-11-12 Nelson Chu <nelson.chu@sifive.com> 5317 5318 * configure: Regenerated. 5319 * configure.ac: If ifunc was supported in the binutils for 5320 linux toolchain, then set enable_gnu_indirect_function to yes. 5321 53222020-11-12 Joseph Myers <joseph@codesourcery.com> 5323 5324 * doc/cpp.texi (__has_attribute): Document when scopes are allowed 5325 for C. 5326 (__has_c_attribute): New. 5327 53282020-11-12 Jakub Jelinek <jakub@redhat.com> 5329 5330 * builtin-types.def (BT_FN_PTR_SIZE_SIZE_PTRMODE): New function type. 5331 * omp-builtins.def (BUILT_IN_GOACC_DECLARE): Move earlier. 5332 (BUILT_IN_GOMP_ALLOC, BUILT_IN_GOMP_FREE): New builtins. 5333 * gimplify.c (gimplify_scan_omp_clauses): Force allocator into a 5334 decl if it is not NULL, INTEGER_CST or decl. 5335 (gimplify_adjust_omp_clauses): Clear GOVD_EXPLICIT on explicit clauses 5336 which are being removed. Remove allocate clauses for variables not seen 5337 if they are private, firstprivate or linear too. Call 5338 omp_notice_variable on the allocator otherwise. 5339 (gimplify_omp_for): Handle iterator vars mentioned in allocate clauses 5340 similarly to non-is_gimple_reg iterators. 5341 * omp-low.c (struct omp_context): Add allocate_map field. 5342 (delete_omp_context): Delete it. 5343 (scan_sharing_clauses): Fill it from allocate clauses. Remove it 5344 if mentioned also in shared clause. 5345 (lower_private_allocate): New function. 5346 (lower_rec_input_clauses): Handle allocate clause for privatized 5347 variables, except for task/taskloop, C/C++ array reductions for now 5348 and task/inscan variables. 5349 (lower_send_shared_vars): Don't consider variables in allocate_map 5350 as shared. 5351 * omp-expand.c (expand_omp_for_generic, expand_omp_for_static_nochunk, 5352 expand_omp_for_static_chunk): Use expand_omp_build_assign instead of 5353 gimple_build_assign + gsi_insert_after. 5354 * builtins.c (builtin_fnspec): Handle BUILTIN_GOMP_ALLOC and 5355 BUILTIN_GOMP_FREE. 5356 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILTIN_GOMP_ALLOC. 5357 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle 5358 BUILTIN_GOMP_ALLOC. 5359 (mark_all_reaching_defs_necessary_1): Handle BUILTIN_GOMP_ALLOC 5360 and BUILTIN_GOMP_FREE. 5361 (propagate_necessity): Likewise. 5362 53632020-11-12 Martin Jambor <mjambor@suse.cz> 5364 5365 * cgraphclones.c (cgraph_node::materialize_clone): Check that clone 5366 info is not NULL before attempting to dump it. 5367 53682020-11-12 Martin Jambor <mjambor@suse.cz> 5369 5370 * ipa-cp.c (class ipcp_value_base): Change the type of 5371 local_time_benefit and prop_time_benefit to sreal. Adjust the 5372 constructor initializer. 5373 (ipcp_lattice::print): Dump sreals. 5374 (struct caller_statistics): Change the type of freq_sum to sreal. 5375 (gather_caller_stats): Work with sreal freq_sum. 5376 (incorporate_penalties): Work with sreal evaluation. 5377 (good_cloning_opportunity_p): Adjusted for sreal sreal time_benefit 5378 and freq_sum. Bail out if size_cost is INT_MAX. 5379 (perform_estimation_of_a_value): Work with sreal time_benefit. Avoid 5380 unnecessary capping. 5381 (estimate_local_effects): Pass sreal time benefit to 5382 good_cloning_opportunity_p without capping it. Adjust dumping. 5383 (safe_add): If there can be overflow, return INT_MAX. 5384 (propagate_effects): Work with sreal times. 5385 (get_info_about_necessary_edges): Work with sreal frequencies. 5386 (decide_about_value): Likewise and with sreal time benefits. 5387 53882020-11-12 Marek Polacek <polacek@redhat.com> 5389 5390 * system.h (WARN_UNUSED_RESULT): Define for GCC >= 3.4. 5391 * tree.h (maybe_wrap_with_location): Add WARN_UNUSED_RESULT. 5392 53932020-11-12 Jan Hubicka <jh@suse.cz> 5394 5395 * fold-const.c (operand_compare::operand_equal_p): Compare field 5396 offsets in operand_equal_p and OEP_ADDRESS_OF. 5397 (operand_compare::hash_operand): Update. 5398 53992020-11-12 Richard Biener <rguenther@suse.de> 5400 5401 * bitmap.c (bitmap_list_view): Restore head->current. 5402 * tree-ssa-pre.c (pre_expr_DFS): Elide expr_visited bitmap. 5403 Special-case value expression bitmaps with one element. 5404 (bitmap_find_leader): Likewise. 5405 (sorted_array_from_bitmap_set): Elide expr_visited bitmap. 5406 54072020-11-12 Jan Hubicka <jh@suse.cz> 5408 5409 * attr-fnspec.h: Update topleve comment. 5410 (attr_fnspec::arg_direct_p): Accept 1...9. 5411 (attr_fnspec::arg_maybe_written_p): Reject 1...9. 5412 (attr_fnspec::arg_copied_to_arg_p): New member function. 5413 * builtins.c (builtin_fnspec): Update fnspec of block copy. 5414 * tree-ssa-alias.c (attr_fnspec::verify): Update. 5415 54162020-11-12 Richard Biener <rguenther@suse.de> 5417 5418 * tree-ssa-pre.c (bitmap_value_replace_in_set): Return 5419 whether we have changed anything. 5420 (do_pre_regular_insertion): Get topologically sorted array 5421 of expressions from caller. 5422 (do_pre_partial_partial_insertion): Likewise. 5423 (insert): Compute topologically sorted arrays of expressions 5424 here and locally iterate actual insertion. Iterate only 5425 when AVAIL_OUT of an already visited block source changed. 5426 54272020-11-12 Alex Coplan <alex.coplan@arm.com> 5428 5429 PR target/97730 5430 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_bcax<mode>): 5431 Change to define_expand, add missing (trivially-predicated) not 5432 rtx to fix wrong code bug. 5433 (*aarch64_sve2_bcax<mode>): New. 5434 54352020-11-12 Richard Biener <rguenther@suse.de> 5436 5437 PR tree-optimization/97806 5438 * tree-ssa-pre.c (pre_expr_DFS): New overload for visiting 5439 values, visiting all leaders for a value. Use a bitmap 5440 for visited values. 5441 (sorted_array_from_bitmap_set): Walk over values and adjust. 5442 54432020-11-12 Andreas Krebbel <krebbel@linux.ibm.com> 5444 5445 PR target/97326 5446 * config/s390/vector.md: Support vector floating point modes in 5447 vec_cmp. 5448 54492020-11-12 Andreas Krebbel <krebbel@linux.ibm.com> 5450 5451 * config/s390/vector.md: Rename tointvec to TOINTVEC. 5452 * config/s390/vx-builtins.md: Likewise. 5453 54542020-11-12 Jason Merrill <jason@redhat.com> 5455 5456 PR debug/97060 5457 * dwarf2out.c (gen_subprogram_die): It's a declaration 5458 if DECL_INITIAL isn't set. 5459 54602020-11-12 David Malcolm <dmalcolm@redhat.com> 5461 5462 PR tree-optimization/97424 5463 * doc/invoke.texi (Static Analyzer Options): Add 5464 -Wno-analyzer-shift-count-negative and 5465 -Wno-analyzer-shift-count-overflow. 5466 (-Wno-analyzer-shift-count-negative): New. 5467 (-Wno-analyzer-shift-count-overflow): New. 5468 54692020-11-11 Iain Sandoe <iain@sandoe.co.uk> 5470 5471 * config/darwin-protos.h (darwin_make_eh_symbol_indirect): New. 5472 * config/darwin.c (darwin_make_eh_symbol_indirect): New. Use 5473 Mach-O semantics for personality and ldsa indirections. 5474 * config/darwin.h (TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT): New. 5475 * doc/tm.texi: Regenerate. 5476 * doc/tm.texi.in: Add TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT hook. 5477 * dwarf2out.c (dwarf2out_do_cfi_startproc): If the target defines 5478 a hook for indirecting personality and ldsa references, use that 5479 otherwise default to ELF semantics. 5480 * target.def (make_eh_symbol_indirect): New target hook. 5481 54822020-11-11 Patrick Palka <ppalka@redhat.com> 5483 5484 PR c++/88115 5485 * common.opt (-fabi-version): Document =15. 5486 * doc/invoke.texi (C++ Dialect Options): Likewise. 5487 54882020-11-11 Marek Polacek <polacek@redhat.com> 5489 5490 PR c++/97518 5491 * tree.c (maybe_wrap_with_location): Don't add a location 5492 wrapper around an artificial and ignored decl. 5493 54942020-11-11 Richard Biener <rguenther@suse.de> 5495 5496 PR tree-optimization/97623 5497 * tree-ssa-pre.c (create_expression_by_pieces): Guard 5498 NEW_SETS access. 5499 (insert_into_preds_of_block): Likewise. 5500 55012020-11-11 Richard Biener <rguenther@suse.de> 5502 5503 * tree-ssa-pre.c (pre_expr_DFS): New function. 5504 (sorted_array_from_bitmap_set): Use it to properly 5505 topologically sort the expression set. 5506 (clean): Verify we've cleaned everything we should. 5507 55082020-11-11 Richard Biener <rguenther@suse.de> 5509 5510 PR tree-optimization/97623 5511 * params.opt (-param=max-pre-hoist-insert-iterations): Remove 5512 again. 5513 * doc/invoke.texi (max-pre-hoist-insert-iterations): Likewise. 5514 * tree-ssa-pre.c (insert): Move hoist insertion after PRE 5515 insertion iteration and do not iterate it. 5516 55172020-11-11 Richard Sandiford <richard.sandiford@arm.com> 5518 5519 * config/aarch64/aarch64-sve.md (@vcond_mask_<mode><vpred>): Extend 5520 from SVE_FULL to SVE_ALL. 5521 (*vcond_mask_<mode><vpred>): Likewise. 5522 (@aarch64_sel_dup<mode>): Likewise. 5523 (vcond<SVE_FULL:mode><v_int_equiv>): Extend to... 5524 (vcond<SVE_ALL:mode><SVE_I:mode>): ...this, but requiring the 5525 sizes of the container modes to match. 5526 (vcondu<SVE_FULL:mode><v_int_equiv>): Extend to... 5527 (vcondu<SVE_ALL:mode><SVE_I:mode>): ...this. 5528 (vec_cmp<SVE_FULL_I:mode><vpred>): Extend to... 5529 (vec_cmp<SVE_I:mode><vpred>): ...this. 5530 (vec_cmpu<SVE_FULL_I:mode><vpred>): Extend to... 5531 (vec_cmpu<SVE_I:mode><vpred>): ...this. 5532 (@aarch64_pred_cmp<cmp_op><SVE_FULL_I:mode>): Extend to... 5533 (@aarch64_pred_cmp<cmp_op><SVE_I:mode>): ...this. 5534 (*cmp<cmp_op><SVE_FULL_I:mode>_cc): Extend to... 5535 (*cmp<cmp_op><SVE_I:mode>_cc): ...this. 5536 (*cmp<cmp_op><SVE_FULL_I:mode>_ptest): Extend to... 5537 (*cmp<cmp_op><SVE_I:mode>_ptest): ...this. 5538 (*cmp<cmp_op><SVE_FULL_I:mode>_and): Extend to... 5539 (*cmp<cmp_op><SVE_I:mode>_and): ...this. 5540 55412020-11-11 Richard Sandiford <richard.sandiford@arm.com> 5542 5543 * optabs-tree.c (expand_vec_cond_expr_p): Allow the compared values 5544 and the selected values to have different mode sizes. 5545 * gimple-isel.cc (gimple_expand_vec_cond_expr): Likewise. 5546 55472020-11-11 Hongtao Liu <hongtao.liu@intel.com> 5548 Hongyu Wang <hongyu.wang@intel.com> 5549 5550 * common/config/i386/cpuinfo.h (get_available_features): 5551 Detect AVXVNNI. 5552 * common/config/i386/i386-common.c 5553 (OPTION_MASK_ISA2_AVXVNNI_SET, 5554 OPTION_MASK_ISA2_AVXVNNI_UNSET): New. 5555 (OPTION_MASK_ISA2_AVX2_UNSET): Add AVXVNNI. 5556 (ix86_hanlde_option): Handle -mavxvnni, unset avxvnni when 5557 avx2 is disabled. 5558 * common/config/i386/i386-cpuinfo.h (enum processor_features): 5559 Add FEATURE_AVXVNNI. 5560 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY 5561 for avxvnni. 5562 * config.gcc: Add avxvnniintrin.h. 5563 * config/i386/avx512vnnivlintrin.h: Reimplement 128/256 bit non-mask 5564 intrinsics with macros to support unified interface. 5565 * config/i386/avxvnniintrin.h: New header file. 5566 * config/i386/cpuid.h (bit_AVXVNNI): New. 5567 * config/i386/i386-builtins.c (def_builtin): Handle AVXVNNI mask 5568 for unified builtin. 5569 * config/i386/i386-builtin.def (BDESC): Adjust AVX512VNNI 5570 builtins for AVXVNNI. 5571 * config/i386/i386-c.c (ix86_target_macros_internal): Define 5572 __AVXVNNI__. 5573 * config/i386/i386-expand.c (ix86_expand_builtin): Handle bisa 5574 for AVXVNNI to support unified intrinsic name, since there is no 5575 dependency between AVX512VNNI and AVXVNNI. 5576 * config/i386/i386-options.c (isa2_opts): Add -mavxvnni. 5577 (ix86_valid_target_attribute_inner_p): Handle avxnnni. 5578 (ix86_option_override_internal): Ditto. 5579 * config/i386/i386.h (TARGET_AVXVNNI, TARGET_AVXVNNI_P, 5580 TARGET_AVXVNNI_P, PTA_AVXVNNI): New. 5581 (PTA_SAPPHIRERAPIDS): Add AVX_VNNI. 5582 (PTA_ALDERLAKE): Likewise. 5583 * config/i386/i386.md ("isa"): Add avxvnni, avx512vnnivl. 5584 ("enabled"): Adjust for avxvnni and avx512vnnivl. 5585 * config/i386/i386.opt: Add option -mavxvnni. 5586 * config/i386/immintrin.h: Include avxvnniintrin.h. 5587 * config/i386/sse.md (vpdpbusd_<mode>): Adjust for AVXVNNI. 5588 (vpdpbusds_<mode>): Likewise. 5589 (vpdpwssd_<mode>): Likewise. 5590 (vpdpwssds_<mode>): Likewise. 5591 (vpdpbusd_v16si): New. 5592 (vpdpbusds_v16si): Likewise. 5593 (vpdpwssd_v16si): Likewise. 5594 (vpdpwssds_v16si): Likewise. 5595 * doc/invoke.texi: Document -mavxvnni. 5596 * doc/extend.texi: Document avxvnni. 5597 * doc/sourcebuild.texi: Document target avxvnni. 5598 55992020-11-11 Martin Liska <mliska@suse.cz> 5600 5601 * tree.c (copy_node): Fix spelling. 5602 56032020-11-11 Richard Biener <rguenther@suse.de> 5604 5605 * tree-ssa-pre.c (phi_translate_set): Do not sort the 5606 expression set topologically. 5607 56082020-11-11 Aldy Hernandez <aldyh@redhat.com> 5609 5610 * value-range.cc (irange::set): Early exit on VR_VARYING. 5611 56122020-11-11 Zhiheng Xie <xiezhiheng@huawei.com> 5613 Nannan Zheng <zhengnannan@huawei.com> 5614 5615 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 5616 for arithmetic operation intrinsics. 5617 56182020-11-11 Strager Neds <strager.nds@gmail.com> 5619 5620 * cgraph.h (symtab_node::set_section_for_node): Declare new 5621 overload. 5622 (symtab_node::set_section_from_string): Rename from set_section. 5623 (symtab_node::set_section_from_node): Declare. 5624 * symtab.c (symtab_node::set_section_for_node): Define new 5625 overload. 5626 (symtab_node::set_section_from_string): Rename from set_section. 5627 (symtab_node::set_section_from_node): Define. 5628 (symtab_node::set_section): Call renamed set_section_from_string. 5629 (symtab_node::set_section): Call new set_section_from_node. 5630 56312020-11-11 Strager Neds <strager.nds@gmail.com> 5632 5633 * symtab.c (symtab_node::set_section_for_node): Extract reference 5634 counting logic into ... 5635 (retain_section_hash_entry): ... here (new function) and ... 5636 (release_section_hash_entry): ... here (new function). 5637 56382020-11-11 liuhongt <hongtao.liu@intel.com> 5639 5640 * config/i386/i386.h (PTA_MOVDIRI, PTA_MOVDIR64B, 5641 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16, PTA_HRESET): 5642 Formatting. 5643 56442020-11-11 Ilya Leoshkevich <iii@linux.ibm.com> 5645 5646 * config/s390/s390.h (HAVE_TF): Use opaque value when 5647 GENERATOR_FILE is defined. 5648 56492020-11-10 Strager Neds <strager.nds@gmail.com> 5650 5651 * cgraph.h (symtab_node::get_section): Constify. 5652 (symtab_node::set_section): Declare new overload. 5653 * symtab.c (symtab_node::set_section): Define new overload. 5654 (symtab_node::copy_visibility_from): Use new overload of 5655 symtab_node::set_section. 5656 (symtab_node::resolve_alias): Same. 5657 * tree.h (set_decl_section_name): Declare new overload. 5658 * tree.c (set_decl_section_name): Define new overload. 5659 * tree-emutls.c (get_emutls_init_templ_addr): Same. 5660 * cgraphclones.c (cgraph_node::create_virtual_clone): Use new 5661 overload of symtab_node::set_section. 5662 (cgraph_node::create_version_clone_with_body): Same. 5663 * trans-mem.c (ipa_tm_create_version): Same. 5664 56652020-11-10 Aldy Hernandez <aldyh@redhat.com> 5666 5667 * value-range.cc (irange::set): Early exit for poly ints. 5668 56692020-11-10 Tobias Burnus <tobias@codesourcery.com> 5670 5671 * gimplify.c (gimplify_scan_omp_clauses, gimplify_omp_loop): Use 'do' 5672 instead of 'for' in error messages for Fortran. 5673 * omp-low.c (check_omp_nesting_restrictions): Likewise 5674 56752020-11-10 Matthew Malcomson <matthew.malcomson@arm.com> 5676 5677 * opts.c (control_options_for_live_patching): Reform 'is incompatible 5678 with' error messages to use a standard message with differing format 5679 arguments. 5680 (finish_options): Likewise. 5681 56822020-11-10 Richard Biener <rguenther@suse.de> 5683 5684 PR tree-optimization/97769 5685 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): 5686 Remove assert. 5687 56882020-11-10 Richard Biener <rguenther@suse.de> 5689 5690 PR tree-optimization/97780 5691 * tree-ssa-pre.c (fini_pre): Deal with added basic blocks 5692 when freeing PHI_TRANS_TABLE. 5693 56942020-11-10 Zhiheng Xie <xiezhiheng@huawei.com> 5695 Nannan Zheng <zhengnannan@huawei.com> 5696 5697 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 5698 for tbl/tbx intrinsics. 5699 57002020-11-10 Chung-Lin Tang <cltang@codesourcery.com> 5701 5702 * gimplify.c (is_or_contains_p): New static helper function. 5703 (omp_target_reorder_clauses): New function. 5704 (gimplify_scan_omp_clauses): Add use of omp_target_reorder_clauses to 5705 reorder clause list according to OpenMP 5.0 rules. Add handling of 5706 GOMP_MAP_ATTACH_DETACH for OpenMP cases. 5707 * omp-low.c (is_omp_target): New static helper function. 5708 (scan_sharing_clauses): Add scan phase handling of GOMP_MAP_ATTACH/DETACH 5709 for OpenMP cases. 5710 (lower_omp_target): Add lowering handling of GOMP_MAP_ATTACH/DETACH for 5711 OpenMP cases. 5712 57132020-11-10 Ilya Leoshkevich <iii@linux.ibm.com> 5714 5715 * config/s390/s390-modes.def (FPRX2): New mode. 5716 * config/s390/s390-protos.h (s390_fma_allowed_p): New function. 5717 * config/s390/s390.c (s390_fma_allowed_p): Likewise. 5718 (s390_build_signbit_mask): Support 128-bit masks. 5719 (print_operand): Support printing the second word of a TFmode 5720 operand as vector register. 5721 (constant_modes): Add FPRX2mode. 5722 (s390_class_max_nregs): Return 1 for TFmode on z14+. 5723 (s390_is_fpr128): New function. 5724 (s390_is_vr128): Likewise. 5725 (s390_can_change_mode_class): Use s390_is_fpr128 and 5726 s390_is_vr128 in order to determine whether mode refers to a FPR 5727 pair or to a VR. 5728 (s390_emit_compare): Force TFmode operands into registers on 5729 z14+. 5730 * config/s390/s390.h (HAVE_TF): New macro. 5731 (EXPAND_MOVTF): New macro. 5732 (EXPAND_TF): Likewise. 5733 * config/s390/s390.md (PFPO_OP_TYPE_FPRX2): PFPO_OP_TYPE_TF 5734 alias. 5735 (ALL): Add FPRX2. 5736 (FP_ALL): Add FPRX2 for z14+, restrict TFmode to z13-. 5737 (FP): Likewise. 5738 (FP_ANYTF): New mode iterator. 5739 (BFP): Add FPRX2 for z14+, restrict TFmode to z13-. 5740 (TD_TF): Likewise. 5741 (xde): Add FPRX2. 5742 (nBFP): Likewise. 5743 (nDFP): Likewise. 5744 (DSF): Likewise. 5745 (DFDI): Likewise. 5746 (SFSI): Likewise. 5747 (DF): Likewise. 5748 (SF): Likewise. 5749 (fT0): Likewise. 5750 (bt): Likewise. 5751 (_d): Likewise. 5752 (HALF_TMODE): Likewise. 5753 (tf_fpr): New mode_attr. 5754 (type): New mode_attr. 5755 (*cmp<mode>_ccz_0): Use type instead of mode with fsimp. 5756 (*cmp<mode>_ccs_0_fastmath): Likewise. 5757 (*cmptf_ccs): New pattern for wfcxb. 5758 (*cmptf_ccsfps): New pattern for wfkxb. 5759 (mov<mode>): Rename to mov<mode><tf_fpr>. 5760 (signbit<mode>2): Rename to signbit<mode>2<tf_fpr>. 5761 (isinf<mode>2): Renamed to isinf<mode>2<tf_fpr>. 5762 (*TDC_insn_<mode>): Use type instead of mode with fsimp. 5763 (fixuns_trunc<FP:mode><GPR:mode>2): Rename to 5764 fixuns_trunc<FP:mode><GPR:mode>2<FP:tf_fpr>. 5765 (fix_trunctf<mode>2): Rename to fix_trunctf<mode>2_fpr. 5766 (floatdi<mode>2): Rename to floatdi<mode>2<tf_fpr>, use type 5767 instead of mode with itof. 5768 (floatsi<mode>2): Rename to floatsi<mode>2<tf_fpr>, use type 5769 instead of mode with itof. 5770 (*floatuns<GPR:mode><FP:mode>2): Use type instead of mode for 5771 itof. 5772 (floatuns<GPR:mode><FP:mode>2): Rename to 5773 floatuns<GPR:mode><FP:mode>2<tf_fpr>. 5774 (trunctf<mode>2): Rename to trunctf<mode>2_fpr, use type instead 5775 of mode with fsimp. 5776 (extend<DSF:mode><BFP:mode>2): Rename to 5777 extend<DSF:mode><BFP:mode>2<BFP:tf_fpr>. 5778 (<FPINT:fpint_name><BFP:mode>2): Rename to 5779 <FPINT:fpint_name><BFP:mode>2<BFP:tf_fpr>, use type instead of 5780 mode with fsimp. 5781 (rint<BFP:mode>2): Rename to rint<BFP:mode>2<BFP:tf_fpr>, use 5782 type instead of mode with fsimp. 5783 (<FPINT:fpint_name><DFP:mode>2): Use type instead of mode for 5784 fsimp. 5785 (rint<DFP:mode>2): Likewise. 5786 (trunc<BFP:mode><DFP_ALL:mode>2): Rename to 5787 trunc<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>. 5788 (trunc<DFP_ALL:mode><BFP:mode>2): Rename to 5789 trunc<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>. 5790 (extend<BFP:mode><DFP_ALL:mode>2): Rename to 5791 extend<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>. 5792 (extend<DFP_ALL:mode><BFP:mode>2): Rename to 5793 extend<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>. 5794 (add<mode>3): Rename to add<mode>3<tf_fpr>, use type instead of 5795 mode with fsimp. 5796 (*add<mode>3_cc): Use type instead of mode with fsimp. 5797 (*add<mode>3_cconly): Likewise. 5798 (sub<mode>3): Rename to sub<mode>3<tf_fpr>, use type instead of 5799 mode with fsimp. 5800 (*sub<mode>3_cc): Use type instead of mode with fsimp. 5801 (*sub<mode>3_cconly): Likewise. 5802 (mul<mode>3): Rename to mul<mode>3<tf_fpr>, use type instead of 5803 mode with fsimp. 5804 (fma<mode>4): Restrict using s390_fma_allowed_p. 5805 (fms<mode>4): Restrict using s390_fma_allowed_p. 5806 (div<mode>3): Rename to div<mode>3<tf_fpr>, use type instead of 5807 mode with fdiv. 5808 (neg<mode>2): Rename to neg<mode>2<tf_fpr>. 5809 (*neg<mode>2_cc): Use type instead of mode with fsimp. 5810 (*neg<mode>2_cconly): Likewise. 5811 (*neg<mode>2_nocc): Likewise. 5812 (*neg<mode>2): Likeiwse. 5813 (abs<mode>2): Rename to abs<mode>2<tf_fpr>, use type instead of 5814 mode with fdiv. 5815 (*abs<mode>2_cc): Use type instead of mode with fsimp. 5816 (*abs<mode>2_cconly): Likewise. 5817 (*abs<mode>2_nocc): Likewise. 5818 (*abs<mode>2): Likewise. 5819 (*negabs<mode>2_cc): Likewise. 5820 (*negabs<mode>2_cconly): Likewise. 5821 (*negabs<mode>2_nocc): Likewise. 5822 (*negabs<mode>2): Likewise. 5823 (sqrt<mode>2): Rename to sqrt<mode>2<tf_fpr>, use type instead 5824 of mode with fsqrt. 5825 (cbranch<mode>4): Use FP_ANYTF instead of FP. 5826 (copysign<mode>3): Rename to copysign<mode>3<tf_fpr>, use type 5827 instead of mode with fsimp. 5828 * config/s390/s390.opt (flag_vx_long_double_fma): New 5829 undocumented option. 5830 * config/s390/vector.md (V_HW): Add TF for z14+. 5831 (V_HW2): Likewise. 5832 (VFT): Likewise. 5833 (VF_HW): Likewise. 5834 (V_128): Likewise. 5835 (tf_vr): New mode_attr. 5836 (tointvec): Add TF. 5837 (mov<mode>): Rename to mov<mode><tf_vr>. 5838 (movetf): New dispatcher. 5839 (*vec_tf_to_v1tf): Rename to *vec_tf_to_v1tf_fpr, restrict to 5840 z13-. 5841 (*vec_tf_to_v1tf_vr): New pattern for z14+. 5842 (*fprx2_to_tf): Likewise. 5843 (*mov_tf_to_fprx2_0): Likewise. 5844 (*mov_tf_to_fprx2_1): Likewise. 5845 (add<mode>3): Rename to add<mode>3<tf_vr>. 5846 (addtf3): New dispatcher. 5847 (sub<mode>3): Rename to sub<mode>3<tf_vr>. 5848 (subtf3): New dispatcher. 5849 (mul<mode>3): Rename to mul<mode>3<tf_vr>. 5850 (multf3): New dispatcher. 5851 (div<mode>3): Rename to div<mode>3<tf_vr>. 5852 (divtf3): New dispatcher. 5853 (sqrt<mode>2): Rename to sqrt<mode>2<tf_vr>. 5854 (sqrttf2): New dispatcher. 5855 (fma<mode>4): Restrict using s390_fma_allowed_p. 5856 (fms<mode>4): Likewise. 5857 (neg_fma<mode>4): Likewise. 5858 (neg_fms<mode>4): Likewise. 5859 (neg<mode>2): Rename to neg<mode>2<tf_vr>. 5860 (negtf2): New dispatcher. 5861 (abs<mode>2): Rename to abs<mode>2<tf_vr>. 5862 (abstf2): New dispatcher. 5863 (float<mode>tf2_vr): New forwarder. 5864 (float<mode>tf2): New dispatcher. 5865 (floatuns<mode>tf2_vr): New forwarder. 5866 (floatuns<mode>tf2): New dispatcher. 5867 (fix_trunctf<mode>2_vr): New forwarder. 5868 (fix_trunctf<mode>2): New dispatcher. 5869 (fixuns_trunctf<mode>2_vr): New forwarder. 5870 (fixuns_trunctf<mode>2): New dispatcher. 5871 (<FPINT:fpint_name><VF_HW:mode>2<VF_HW:tf_vr>): New pattern. 5872 (<FPINT:fpint_name>tf2): New forwarder. 5873 (rint<mode>2<tf_vr>): New pattern. 5874 (rinttf2): New forwarder. 5875 (*trunctfdf2_vr): New pattern. 5876 (trunctfdf2_vr): New forwarder. 5877 (trunctfdf2): New dispatcher. 5878 (trunctfsf2_vr): New forwarder. 5879 (trunctfsf2): New dispatcher. 5880 (extenddftf2_vr): New pattern. 5881 (extenddftf2): New dispatcher. 5882 (extendsftf2_vr): New forwarder. 5883 (extendsftf2): New dispatcher. 5884 (signbittf2_vr): New forwarder. 5885 (signbittf2): New dispatchers. 5886 (isinftf2_vr): New forwarder. 5887 (isinftf2): New dispatcher. 5888 * config/s390/vx-builtins.md (*vftci<mode>_cconly): Use VF_HW 5889 instead of VECF_HW, add missing constraint, add vw support. 5890 (vftci<mode>_intcconly): Use VF_HW instead of VECF_HW. 5891 (*vftci<mode>): Rename to vftci<mode>, use VF_HW instead of 5892 VECF_HW, and vw support. 5893 (vftci<mode>_intcc): Use VF_HW instead of VECF_HW. 5894 58952020-11-10 Eric Botcazou <ebotcazou@adacore.com> 5896 5897 * range-op.cc (operator_logical_not::fold_range): Tidy up. 5898 (operator_logical_not::op1_range): Call above method. 5899 (operator_bitwise_not::fold_range): If the type is compatible 5900 with boolean, call op_logical_not.fold_range. 5901 (operator_bitwise_not::op1_range): If the type is compatible 5902 with boolean, call op_logical_not.op1_range. 5903 59042020-11-10 Richard Biener <rguenther@suse.de> 5905 5906 * tree-ssa-pre.c (pre_expr_d::value_id): Add. 5907 (constant_value_expressions): Turn into an array of pre_expr. 5908 (get_or_alloc_expr_for_nary): New function. 5909 (get_or_alloc_expr_for_reference): Likewise. 5910 (add_to_value): For constant values only ever add a single 5911 CONSTANT. 5912 (get_expr_value_id): Return the new value_id member. 5913 (vn_valnum_from_value_id): Split out and simplify constant 5914 value id handling. 5915 (get_or_alloc_expr_for_constant): Set the value_id member. 5916 (phi_translate_1): Use get_or_alloc_expr_for_*. 5917 (compute_avail): Likewise. 5918 (bitmap_find_leader): Simplify constant value id handling. 5919 59202020-11-10 Alex Coplan <alex.coplan@arm.com> 5921 5922 * doc/md.texi (Modifiers): Fix grammar in description of 5923 earlyclobber constraint modifier. 5924 59252020-11-10 Jakub Jelinek <jakub@redhat.com> 5926 5927 PR tree-optimization/97764 5928 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): For 5929 little-endian stores with negative pd.offset, subtract 5930 BITS_PER_UNIT - amnt from size if amnt is non-zero. 5931 59322020-11-10 Richard Biener <rguenther@suse.de> 5933 5934 PR tree-optimization/97760 5935 * tree-vect-loop.c (check_reduction_path): Reject 5936 reduction paths we do not handle in epilogue generation. 5937 59382020-11-10 Aldy Hernandez <aldyh@redhat.com> 5939 5940 PR tree-optimization/97767 5941 * value-range.cc (dump_bound_with_infinite_markers): Use 5942 wi::min_value and wi::max_value. 5943 (range_tests_strict_enum): New. 5944 (range_tests): Call range_tests_strict_enum. 5945 * value-range.h (irange::varying_p): Use wi::min_value 5946 and wi::max_value. 5947 (irange::set_varying): Same. 5948 (irange::normalize_min_max): Remove comment. 5949 59502020-11-10 Andrew MacLeod <amacleod@redhat.com> 5951 5952 PR tree-optimization/97567 5953 * gimple-range-gori.cc: (gori_compute::logical_combine): False 5954 OR operations should intersect the 2 results. 5955 (gori_compute::compute_logical_operands_in_chain): If def chains 5956 are outside the current basic block, don't follow them. 5957 59582020-11-09 Claudiu Zissulescu <claziss@synopsys.com> 5959 5960 * config/arc/arc.c (arc_split_move): Recognize vadd2 instructions. 5961 * config/arc/arc.md (movdi_insn): Update pattern to use vadd2 5962 instructions. 5963 (movdf_insn): Likewise. 5964 (maddhisi4): New pattern. 5965 (umaddhisi4): Likewise. 5966 * config/arc/simdext.md (mov<mode>_int): Update pattern to use 5967 vadd2. 5968 (sdot_prodv4hi): New pattern. 5969 (udot_prodv4hi): Likewise. 5970 (arc_vec_<V_US>mac_hi_v4hi): Update/renamed to 5971 arc_vec_<V_US>mac_v2hiv2si. 5972 (arc_vec_<V_US>mac_v2hiv2si_zero): New pattern. 5973 * config/arc/constraints.md (Ral): Accumulator register 5974 constraint. 5975 59762020-11-09 Aldy Hernandez <aldyh@redhat.com> 5977 5978 * function-tests.c (test_ranges): Call range_op_tests. 5979 * range-op.cc (build_range3): Move to value-range.cc. 5980 (range3_tests): Same. 5981 (int_range_max_tests): Same. 5982 (multi_precision_range_tests): Same. 5983 (range_tests): Same. 5984 (operator_tests): Split up... 5985 (range_op_tests): Split up... 5986 (range_op_cast_tests): ...here. 5987 (range_op_lshift_tests): ...here. 5988 (range_op_rshift_tests): ...here. 5989 (range_op_bitwise_and_tests): ...here. 5990 * selftest.h (range_op_tests): New. 5991 * value-range.cc (build_range3): New. 5992 (range_tests_irange3): New. 5993 (range_tests_int_range_max): New. 5994 (range_tests_legacy): New. 5995 (range_tests_misc): New. 5996 (range_tests): New. 5997 59982020-11-09 Richard Biener <rguenther@suse.de> 5999 6000 PR tree-optimization/97761 6001 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Remove 6002 premature end of DFS walk. 6003 60042020-11-09 Aldy Hernandez <aldyh@redhat.com> 6005 6006 * value-range.cc (irange::swap_out_of_order_endpoints): Rewrite 6007 into static function. 6008 (irange::set): Cleanup redundant manipulations. 6009 * value-range.h (irange::normalize_min_max): Modify object 6010 in-place instead of modifying arguments. 6011 60122020-11-09 Andrea Corallo <andrea.corallo@arm.com> 6013 6014 * config/aarch64/aarch64-builtins.c 6015 (aarch64_expand_fcmla_builtin): Do not alter force_reg returned 6016 register. 6017 60182020-11-09 Richard Biener <rguenther@suse.de> 6019 6020 PR tree-optimization/97753 6021 * tree-vect-loop.c (vectorizable_induction): Fill vec_steps 6022 when CSEing inside the group. 6023 60242020-11-09 Richard Biener <rguenther@suse.de> 6025 6026 PR tree-optimization/97746 6027 * tree-vect-patterns.c (vect_determine_precisions): First walk PHIs. 6028 60292020-11-09 Richard Biener <rguenther@suse.de> 6030 6031 * tree-ssa-pre.c (get_representative_for): CSE VN_INFO calls. 6032 (create_expression_by_pieces): Likewise. 6033 (insert_into_preds_of_block): Likewsie. 6034 (do_pre_regular_insertion): Likewsie. 6035 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_insert): 6036 Likewise. 6037 (eliminate_dom_walker::eliminate_stmt): Likewise. 6038 60392020-11-09 Richard Biener <rguenther@suse.de> 6040 6041 PR tree-optimization/97765 6042 * tree-ssa-pre.c (bb_bitmap_sets::phi_translate_table): Add. 6043 (PHI_TRANS_TABLE): New macro. 6044 (phi_translate_table): Remove. 6045 (expr_pred_trans_d::pred): Remove. 6046 (expr_pred_trans_d::hash): Simplify. 6047 (expr_pred_trans_d::equal): Likewise. 6048 (phi_trans_add): Adjust. 6049 (phi_translate): Likewise. Remove hash-table expansion 6050 detection and optimization. 6051 (phi_translate_set): Allocate PHI_TRANS_TABLE here. 6052 (init_pre): Adjsust. 6053 (fini_pre): Free PHI_TRANS_TABLE. 6054 60552020-11-09 Lili Cui <lili.cui@intel.com> 6056 6057 PR target/97685 6058 * config/i386/i386.h: 6059 (PTA_BROADWELL): Delete PTA_PRFCHW. 6060 (PTA_SILVERMONT): Add PTA_PRFCHW. 6061 (PTA_KNL): Add PTA_PREFETCHWT1. 6062 (PTA_TREMONT): Add PTA_MOVDIRI, PTA_MOVDIR64B, PTA_CLDEMOTE and PTA_WAITPKG. 6063 * doc/invoke.texi: Delete PREFETCHW for broadwell, skylake, knl, knm, 6064 skylake-avx512, cannonlake, icelake-client, icelake-server, cascadelake, 6065 cooperlake, tigerlake and sapphirerapids. 6066 Add PREFETCHW for silvermont, goldmont, goldmont-plus and tremont. 6067 Add XSAVEC and XSAVES for goldmont, goldmont-plus and tremont. 6068 Add MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG for tremont. 6069 Add KEYLOCKER and HREST for alderlake. 6070 Add AMX-BF16, AMX-TILE, AMX-INT8 and UINTR for sapphirerapids. 6071 Add KEYLOCKER for tigerlake. 6072 60732020-11-09 Kewen Lin <linkw@linux.ibm.com> 6074 6075 PR rtl-optimization/97705 6076 * ira.c (ira): Refactor some regstat free/init/compute invocation 6077 into lambda function regstat_recompute_for_max_regno, and call it 6078 when max_regno increases as remove_scratches succeeds. 6079 60802020-11-08 David Edelsohn <dje.gcc@gmail.com> 6081 6082 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Change 6083 DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN. 6084 60852020-11-07 Martin Uecker <muecker@gwdg.de> 6086 6087 * doc/extend.texi: Document mixing labels and code. 6088 * doc/invoke.texi: Likewise. 6089 60902020-11-06 Segher Boessenkool <segher@kernel.crashing.org> 6091 6092 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't abuse 6093 operands[]. 6094 (@tablejump<mode>_nospec): Ditto. 6095 60962020-11-06 Peter Bergner <bergner@linux.ibm.com> 6097 6098 * config/rs6000/rs6000.h (BIGGEST_ALIGNMENT): Revert previous commit 6099 so as not to break the ABI. 6100 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Set the ABI 6101 mandated alignment for __vector_pair and __vector_quad types. 6102 61032020-11-06 Jeff Law <law@torsion.usersys.redhat.com> 6104 6105 PR target/91489 6106 * config/i386/i386.md (simple_return): Also check 6107 for ms_hook_prologue function attribute. 6108 * config/i386/i386.c (ix86_can_use_return_insn_p): 6109 Also check for ms_hook_prologue function attribute. 6110 * config/i386/i386-protos.h (ix86_function_ms_hook_prologue): Declare. 6111 61122020-11-06 Segher Boessenkool <segher@kernel.crashing.org> 6113 6114 PR target/96933 6115 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use 6116 TARGET_POWERPC64 instead of TARGET_64BIT. 6117 61182020-11-06 Joseph Myers <joseph@codesourcery.com> 6119 6120 * builtins.def (BUILT_IN_NANSD32, BUILT_IN_NANSD64) 6121 (BUILT_IN_NANSD128): New built-in functions. 6122 * fold-const-call.c (fold_const_call): Handle the new built-in 6123 functions. 6124 * doc/extend.texi (__builtin_nansd32, __builtin_nansd64) 6125 (__builtin_nansd128): Document. 6126 * doc/sourcebuild.texi (Effective-Target Keywords): Document 6127 fenv_exceptions_dfp. 6128 61292020-11-06 Bin Cheng <bin.cheng@linux.alibaba.com> 6130 6131 * tree-ssa-uninit.c (find_var_cmp_const): New function. 6132 (use_pred_not_overlap_with_undef_path_pred): Call above. 6133 61342020-11-06 Iain Sandoe <iain@sandoe.co.uk> 6135 6136 * config/darwin-c.c: Allow for Darwin20 to correspond to macOS 11. 6137 * config/darwin-driver.c: Likewise. 6138 61392020-11-06 Richard Biener <rguenther@suse.de> 6140 6141 * tree-ssa-pre.c (expr_pred_trans_d): Modify so elements 6142 are embedded rather than allocated. Remove hashval member, 6143 make all members integers. 6144 (phi_trans_add): Adjust accordingly. 6145 (phi_translate): Likewise. Deal with re-allocation 6146 of the table. 6147 61482020-11-06 Andrew MacLeod <amacleod@redhat.com> 6149 6150 PR tree-optimization/97737 6151 PR tree-optimization/97741 6152 * gimple-range.cc: (gimple_ranger::range_of_stmt): Intersect newly 6153 calculated ranges with the existing known global range. 6154 61552020-11-06 Darius Galis <darius.galis@cyberthorstudios.com> 6156 6157 * config/rx/rx.md (CTRLREG_PC): Add. 6158 * config/rx/rx.c (CTRLREG_PC): Add 6159 (rx_expand_builtin_mvtc): Add warning: PC register cannot 6160 be used as dest. 6161 61622020-11-06 Nathan Sidwell <nathan@acm.org> 6163 6164 * tree.h (DECL_IS_BUILTIN): Rename to ... 6165 (DECL_IS_UNDECLARED_BUILTIN): ... here. No need to use SOURCE_LOCUS. 6166 * calls.c (maybe_warn_alloc_args_overflow): Adjust for rename. 6167 * cfgexpand.c (pass_expand::execute): Likewise. 6168 * dwarf2out.c (base_type_die, is_naming_typedef_decl): Likewise. 6169 * godump.c (go_decl, go_type_decl): Likewise. 6170 * print-tree.c (print_decl_identifier): Likewise. 6171 * tree-pretty-print.c (dump_generic_node): Likewise. 6172 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise. 6173 * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise. 6174 61752020-11-06 David Candler <david.candler@arm.com> 6176 6177 * config/aarch64/aarch64-builtins.c 6178 (TYPES_SHIFT2IMM): Add define. 6179 (TYPES_SHIFT2IMM_UUSS): Add define. 6180 (TYPES_USHIFT2IMM): Add define. 6181 * config/aarch64/aarch64-simd.md 6182 (aarch64_<sur>q<r>shr<u>n2_n<mode>): Add new insn for upper saturating shift right. 6183 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics. 6184 * config/aarch64/arm_neon.h: 6185 (vqrshrn_high_n_s16): Expand using intrinsic rather than inline asm. 6186 (vqrshrn_high_n_s32): Likewise. 6187 (vqrshrn_high_n_s64): Likewise. 6188 (vqrshrn_high_n_u16): Likewise. 6189 (vqrshrn_high_n_u32): Likewise. 6190 (vqrshrn_high_n_u64): Likewise. 6191 (vqrshrun_high_n_s16): Likewise. 6192 (vqrshrun_high_n_s32): Likewise. 6193 (vqrshrun_high_n_s64): Likewise. 6194 (vqshrn_high_n_s16): Likewise. 6195 (vqshrn_high_n_s32): Likewise. 6196 (vqshrn_high_n_s64): Likewise. 6197 (vqshrn_high_n_u16): Likewise. 6198 (vqshrn_high_n_u32): Likewise. 6199 (vqshrn_high_n_u64): Likewise. 6200 (vqshrun_high_n_s16): Likewise. 6201 (vqshrun_high_n_s32): Likewise. 6202 (vqshrun_high_n_s64): Likewise. 6203 62042020-11-06 Richard Sandiford <richard.sandiford@arm.com> 6205 6206 * config/aarch64/aarch64-modes.def (VNx2BF, VNx4BF): Adjust nunits 6207 and alignment based on the current VG. 6208 * config/aarch64/iterators.md (SVE_ALL, SVE_24, SVE_2, SVE_4): Add 6209 partial SVE BF modes. 6210 (UNSPEC_REVBHW): New unspec. 6211 (Vetype, Vesize, Vctype, VEL, Vel, vwcore, V_INT_CONTAINER) 6212 (v_int_container, VPRED, vpred): Handle partial SVE BF modes. 6213 (container_bits, Vcwtype): New mode attributes. 6214 * config/aarch64/aarch64-sve.md 6215 (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): New pattern. 6216 (@aarch64_sve_dup_lane<mode>): Extended from SVE_FULL to SVE_ALL. 6217 (@aarch64_sve_rev<mode>, @aarch64_sve_<perm_insn><mode>): Likewise. 6218 (@aarch64_sve_ext<mode>): Likewise. 6219 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle 6220 E_VNx2BFmode and E_VNx4BFmode. 6221 (aarch64_evpc_rev_local): Base the analysis on the container size 6222 instead of the element size. Use the new aarch64_sve_revbhw 6223 patterns for SVE. 6224 (aarch64_evpc_dup): Handle partial SVE data modes. Use the 6225 container size instead of the element size when applying the 6226 SVE immediate limit. Fix a previously incorrect bounds check. 6227 (aarch64_expand_vec_perm_const_1): Handle partial SVE data modes. 6228 62292020-11-06 Martin Liska <mliska@suse.cz> 6230 6231 * common.opt: Add new -fbit-tests option. 6232 * doc/invoke.texi: Document the option. 6233 * tree-switch-conversion.c (bit_test_cluster::find_bit_tests): 6234 Use the option. 6235 * tree-switch-conversion.h (is_enabled): New function. 6236 62372020-11-06 Richard Biener <rguenther@suse.de> 6238 6239 * tree-ssa-sccvn.h (get_max_constant_value_id): Declare. 6240 (get_next_constant_value_id): Likewise. 6241 (value_id_constant_p): Inline and simplify. 6242 * tree-ssa-sccvn.c (constant_value_ids): Remove. 6243 (next_constant_value_id): Add. 6244 (get_or_alloc_constant_value_id): Adjust. 6245 (value_id_constant_p): Remove definition. 6246 (get_max_constant_value_id): Define. 6247 (get_next_value_id): Add assert for overflow. 6248 (get_next_constant_value_id): Define. 6249 (run_rpo_vn): Adjust. 6250 (free_rpo_vn): Likewise. 6251 (do_rpo_vn): Initialize next_constant_value_id. 6252 * tree-ssa-pre.c (constant_value_expressions): New. 6253 (add_to_value): Split into constant/non-constant value 6254 handling. Avoid exact re-allocation. 6255 (vn_valnum_from_value_id): Adjust. 6256 (phi_translate_1): Remove spurious exact re-allocation. 6257 (bitmap_find_leader): Adjust. Make sure we return 6258 a CONSTANT value for a constant value id. 6259 (do_pre_regular_insertion): Use 2 auto-elements for avail. 6260 (do_pre_partial_partial_insertion): Likewise. 6261 (init_pre): Allocate constant_value_expressions. 6262 (fini_pre): Release constant_value_expressions. 6263 62642020-11-06 Richard Biener <rguenther@suse.de> 6265 6266 PR tree-optimization/97706 6267 * tree-vect-patterns.c (possible_vector_mask_operation_p): 6268 PHIs are possible mask operations. 6269 (vect_determine_mask_precision): Handle PHIs. 6270 (vect_determine_precisions): Walk PHIs in BB analysis. 6271 62722020-11-06 Richard Biener <rguenther@suse.de> 6273 6274 * tree-vect-slp.c (vect_analyze_slp): Pass down the 6275 SLP graph entry kind. 6276 (vect_analyze_slp_instance): Simplify. 6277 (vect_build_slp_instance): Adjust. 6278 (vect_slp_check_for_constructors): Perform more 6279 eligibility checks here. 6280 62812020-11-06 Jan Hubicka <jh@suse.cz> 6282 6283 * ipa-ref.h (enum ipa_ref_use): Remove GTY marker. 6284 (struct ipa_ref): Remove GTY marker; reorder for better packing. 6285 (struct ipa_ref_list): Remove GTY marker; turn references 6286 nad referring to va_heap, vl_ptr vectors; update accesors. 6287 * cgraph.h (symtab_node::iterate_reference): Update. 6288 * ipa-ref.c (ipa_ref::remove_reference): Update. 6289 * symtab.c (symtab_node::create_reference): Update. 6290 (symtab_node::remove_all_references): Update. 6291 (symtab_node::resolve_alias): Update. 6292 62932020-11-06 Jakub Jelinek <jakub@redhat.com> 6294 6295 * ipa-modref-tree.h: Fix comment typos. 6296 * ipa-modref.c: Likewise. 6297 62982020-11-06 Andreas Krebbel <krebbel@linux.ibm.com> 6299 6300 * config/s390/s390.c (s390_option_override_internal): Remove 6301 override of inline params. 6302 63032020-11-06 Richard Biener <rguenther@suse.de> 6304 6305 PR tree-optimization/97706 6306 * tree-vect-patterns.c (vect_determine_mask_precision): 6307 Remove worklist operation. 6308 (vect_determine_stmt_precisions): Do not call 6309 vect_determine_mask_precision here. 6310 (vect_determine_precisions): Compute mask precision 6311 in a forward walk. 6312 63132020-11-06 Richard Biener <rguenther@suse.de> 6314 6315 PR tree-optimization/97732 6316 * tree-vect-loop.c (vectorizable_induction): Convert the 6317 init elements to the vector component type. 6318 * gimple-fold.c (gimple_build_vector): Use CONSTANT_CLASS_P 6319 rather than TREE_CONSTANT to determine if elements are 6320 eligible for VECTOR_CSTs. 6321 63222020-11-06 Jan Hubicka <jh@suse.cz> 6323 6324 * attr-fnspec.h (attr_fnspec::get_str): New accessor 6325 * ipa-fnsummary.c (read_ipa_call_summary): Store also parm info 6326 for builtins. 6327 * ipa-modref.c (class fnspec_summary): New type. 6328 (class fnspec_summaries_t): New type. 6329 (modref_summary::modref_summary): Initialize writes_errno. 6330 (struct modref_summary_lto): Add writes_errno. 6331 (modref_summary_lto::modref_summary_lto): Initialize writes_errno. 6332 (modref_summary::dump): Check for NULL pointers. 6333 (modref_summary_lto::dump): Dump writes_errno. 6334 (collapse_loads): Move up in source file. 6335 (collapse_stores): New function. 6336 (process_fnspec): Handle also internal calls. 6337 (analyze_call): Likewise. 6338 (analyze_stmt): Store fnspec string if needed. 6339 (analyze_function): Initialize fnspec_sumarries. 6340 (modref_summaries_lto::duplicate): Copy writes_errno. 6341 (modref_write): Store writes_errno and fnspec summaries. 6342 (read_section): Read writes_errno and fnspec summaries. 6343 (modref_read): Initialize fnspec summaries. 6344 (update_signature): Fix formating. 6345 (compute_parm_map): Return true if sucessful. 6346 (get_parm_type): New function. 6347 (get_access_for_fnspec): New function. 6348 (propagate_unknown_call): New function. 6349 (modref_propagate_in_scc): Use it. 6350 (pass_ipa_modref::execute): Delete fnspec_summaries. 6351 (ipa_modref_c_finalize): Delete fnspec_summaries. 6352 * ipa-prop.c: Include attr-fnspec.h. 6353 (ipa_compute_jump_functions_for_bb): Also compute jump functions 6354 for functions with fnspecs. 6355 (ipa_read_edge_info): Read jump functions for builtins. 6356 63572020-11-06 Jan Hubicka <jh@suse.cz> 6358 6359 * ipa-fnsummary.h (class size_time_entry): Do not GTY annotate. 6360 (class ipa_fnsummary): Turn size_time_table to auto_vec and 6361 call_size_time_table to effecient vec; update constructors. 6362 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Update. 6363 (ipa_fn_summary::~ipa_fn_summary): Update. 6364 (ipa_fn_summary_t::duplicate): Update. 6365 (ipa_dump_fn_summary): Update. 6366 (set_switch_stmt_execution_predicate): Update. 6367 (analyze_function_body): Update. 6368 (estimate_calls_size_and_time): Update. 6369 (ipa_call_context::estimate_size_and_time): Update. 6370 (ipa_merge_fn_summary_after_inlining): Update. 6371 (ipa_update_overall_fn_summary): Update. 6372 (inline_read_section): Update. 6373 (ipa_fn_summary_write): Update. 6374 63752020-11-06 Richard Biener <rguenther@suse.de> 6376 6377 PR tree-optimization/97733 6378 * tree-vect-slp.c (vect_analyze_slp_instance): If less 6379 than two reductions were relevant or live do nothing. 6380 63812020-11-06 Jeff Law <law@redhat.com> 6382 6383 PR tree-optimization/97223 6384 * match.pd (overflow detection and optimization): Handle conversions. 6385 63862020-11-06 Eugene Rozenfeld <erozen@microsoft.com> 6387 6388 * match.pd (x >> x): New pattern. 6389 63902020-11-06 Kito Cheng <kito.cheng@sifive.com> 6391 6392 * common/config/riscv/riscv-common.c (riscv_implied_info): 6393 Add static and const. 6394 (riscv_subset_list::handle_implied_ext): Add const due to 6395 riscv_implied_info changed to const. 6396 63972020-11-06 Kito Cheng <kito.cheng@sifive.com> 6398 6399 PR target/96307 6400 * toplev.c (process_options): Remove param_asan_stack checking for kasan 6401 option checking. 6402 64032020-11-05 Marek Polacek <polacek@redhat.com> 6404 6405 PR c++/97675 6406 * doc/invoke.texi: Document -Wexceptions. 6407 64082020-11-05 Marek Polacek <polacek@redhat.com> 6409 6410 PR c++/25814 6411 * doc/invoke.texi: Document -Wvexing-parse. 6412 64132020-11-05 Andrew MacLeod <amacleod@redhat.com> 6414 6415 PR tree-optimization/97725 6416 * range-op.cc (operator_equal::fold_range): Use new tmp value. 6417 (operator_not_equal::fold_range): Ditto. 6418 * value-query.cc (range_query::value_of_expr): Use int_range_max 6419 not a value_range. 6420 (range_query::value_on_edge): Ditto. 6421 (range_query::value_of_stmt): Ditto. 6422 64232020-11-05 Olivier Hainque <hainque@adacore.com> 6424 6425 * config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18): 6426 Remove definition. 6427 (STATIC_CHAIN_REGNUM): Redefine to 9. 6428 64292020-11-05 Olivier Hainque <hainque@adacore.com> 6430 6431 * config/aarch64/aarch64.md: Define PROBE_STACK_FIRST_REGNUM 6432 and PROBE_STACK_SECOND_REGNUM constants, designating r10/r11. 6433 Replacements for the PROBE_STACK_FIRST/SECOND_REG constants in 6434 aarch64.c. 6435 * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG): Remove. 6436 (PROBE_STACK_SECOND_REG): Remove. 6437 (aarch64_emit_probe_stack_range): Adjust to the _REG -> _REGNUM 6438 suffix update for PROBE_STACK register numbers. 6439 64402020-11-05 Jan Hubicka <jh@suse.cz> 6441 6442 * gimple.c (gimple_call_fnspec): Handle C++ new and delete. 6443 * gimple.h (gimple_call_from_new_or_delete): Constify parameter. 6444 64452020-11-05 Aldy Hernandez <aldyh@redhat.com> 6446 6447 PR tree-optimization/97721 6448 * gimple-range.cc (get_tree_range): Drop overflow from constants. 6449 64502020-11-05 David Malcolm <dmalcolm@redhat.com> 6451 6452 * tree-diagnostic-path.cc (struct path_summary::event_range): Move 6453 out of path_summary to... 6454 (struct event_range): ...here. 6455 (class path_summary): Convert to... 6456 (struct path_summary): ...this. 6457 (path_summary::m_ranges): Drop "private". 6458 (path_summary::print): Convert to... 6459 (print_path_summary_as_text): ...this, passing in the path_summary 6460 explicitly. 6461 (default_tree_diagnostic_path_printer): Update for above change. 6462 (selftest::test_empty_path): Likewise. 6463 (selftest::test_intraprocedural_path): Likewise. 6464 (selftest::test_interprocedural_path_1): Likewise. 6465 (selftest::test_interprocedural_path_2): Likewise. 6466 (selftest::test_recursion): Likewise. 6467 64682020-11-05 qing zhao <qinzhao@gcc.gnu.org> 6469 6470 PR target/97715 6471 * config/i386/i386.c (zero_all_st_registers): Return 6472 earlier when the FPU is disabled. 6473 64742020-11-05 Jan Hubicka <jh@suse.cz> 6475 6476 * ipa-modref.c (parm_map_for_arg): Initialize parm_offset and 6477 parm_offset_knonw. 6478 (read_section): Set writes_errno to false. 6479 64802020-11-05 Richard Biener <rguenther@suse.de> 6481 6482 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): 6483 Use the original stmts. 6484 (vect_slp_analyze_node_alignment): Use the pattern stmt. 6485 * tree-vect-slp.c (vect_fixup_store_groups_with_patterns): 6486 New function. 6487 (vect_slp_analyze_bb_1): Call it. 6488 64892020-11-05 Tamar Christina <tamar.christina@arm.com> 6490 6491 * tree-vect-slp.c (vect_slp_tree_permute_noop_p): New. 6492 (vect_optimize_slp): Optimize permutes. 6493 (vectorizable_slp_permutation): Fix typo. 6494 64952020-11-05 Richard Biener <rguenther@suse.de> 6496 6497 PR debug/97718 6498 * dwarf2out.c (add_abstract_origin_attribute): Make sure to 6499 point to the abstract instance. 6500 65012020-11-05 Tamar Christina <tamar.christina@arm.com> 6502 6503 * tree-vect-loop.c (vect_analyze_loop_2): Check kind. 6504 * tree-vect-slp.c (vect_build_slp_instance): New. 6505 (enum slp_instance_kind): Move to... 6506 * tree-vectorizer.h (enum slp_instance_kind): .. Here 6507 (SLP_INSTANCE_KIND): New. 6508 65092020-11-05 Kewen Lin <linkw@linux.ibm.com> 6510 6511 PR target/96933 6512 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use direct move 6513 instructions for vector construction with char/short types. 6514 * config/rs6000/rs6000.md (p8_mtvsrwz_v16qisi2): New define_insn. 6515 (p8_mtvsrd_v16qidi2): Likewise. 6516 65172020-11-04 Tamar Christina <tamar.christina@arm.com> 6518 6519 * tree-vect-slp.c (vect_analyze_slp_instance): Moved load/store lanes 6520 check to ... 6521 * tree-vect-loop.c (vect_analyze_loop_2): ..Here 6522 65232020-11-04 Ilya Leoshkevich <iii@linux.ibm.com> 6524 6525 * config/s390/s390.c (NR_C_MODES): Unhardcode. 6526 (s390_alloc_pool): Use size_t for iterating from 0 to 6527 NR_C_MODES. 6528 (s390_add_constant): Likewise. 6529 (s390_find_constant): Likewise. 6530 (s390_dump_pool): Likewise. 6531 (s390_free_pool): Likewise. 6532 65332020-11-04 Ilya Leoshkevich <iii@linux.ibm.com> 6534 6535 * config/s390/s390.md (RRe): Remove. 6536 (RXe): Remove. 6537 65382020-11-04 Andrew MacLeod <amacleod@redhat.com> 6539 6540 PR tree-optimization/97515 6541 * gimple-range-cache.h (class ranger_cache): New prototypes plus 6542 temporal cache pointer. 6543 * gimple-range-cache.cc (struct range_timestamp): New. 6544 (class temporal_cache): New. 6545 (temporal_cache::temporal_cache): New. 6546 (temporal_cache::~temporal_cache): New. 6547 (temporal_cache::get_timestamp): New. 6548 (temporal_cache::set_dependency): New. 6549 (temporal_cache::temporal_value): New. 6550 (temporal_cache::current_p): New. 6551 (temporal_cache::set_timestamp): New. 6552 (temporal_cache::set_always_current): New. 6553 (ranger_cache::ranger_cache): Allocate the temporal cache. 6554 (ranger_cache::~ranger_cache): Free temporal cache. 6555 (ranger_cache::get_non_stale_global_range): New. 6556 (ranger_cache::set_global_range): Add a timestamp. 6557 (ranger_cache::register_dependency): New. Add timestamp dependency. 6558 * gimple-range.cc (gimple_ranger::range_of_range_op): Add operand 6559 dependencies. 6560 (gimple_ranger::range_of_phi): Ditto. 6561 (gimple_ranger::range_of_stmt): Check if global range is stale, and 6562 recalculate if so. 6563 65642020-11-04 Tobias Burnus <tobias@codesourcery.com> 6565 6566 * targhooks.c (default_zero_call_used_regs): Fix flag-name typo 6567 in sorry. 6568 65692020-11-04 Richard Biener <rguenther@suse.de> 6570 6571 * tree-vectorizer.h (vectorizable_phi): Adjust prototype. 6572 * tree-vect-stmts.c (vect_transform_stmt): Adjust. 6573 (vect_analyze_stmt): Pass cost_vec to vectorizable_phi. 6574 * tree-vect-loop.c (vectorizable_phi): Do costing. 6575 65762020-11-04 Richard Biener <rguenther@suse.de> 6577 6578 PR tree-optimization/97709 6579 * tree-vect-loop.c (vectorizable_live_operation): Set 6580 SSA_NAME_OCCURS_IN_ABNORMAL_PHI when necessary. 6581 65822020-11-04 Jakub Jelinek <jakub@redhat.com> 6583 6584 PR tree-optimization/97690 6585 * tree-ssa-phiopt.c (conditional_replacement): Also optimize 6586 cond ? pow2p_cst : 0 as ((type) cond) << cst. 6587 65882020-11-04 Richard Biener <rguenther@suse.de> 6589 6590 * tree-vect-loop.c (vectorizable_induction): Re-instantiate 6591 previously removed CSE of SLP IVs. 6592 65932020-11-04 Uroš Bizjak <ubizjak@gmail.com> 6594 6595 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags): 6596 Fix Intel MCU psABI comment w.r.t DEFAULT_PCC_STRUCT_RETURN. 6597 65982020-11-04 Richard Biener <rguenther@suse.de> 6599 6600 PR bootstrap/97666 6601 * tree-vect-slp.c (vect_build_slp_tree_2): Revert previous 6602 fix and instead adjust the memset. 6603 66042020-11-04 Pat Bernardi <bernardi@adacore.com> 6605 6606 * config/i386/i386elf.h (SUBTARGET_RETURN_IN_MEMORY): Remove. 6607 (ASM_OUTPUT_ASCII): Likewise. 6608 (DEFAULT_PCC_STRUCT_RETURN): Define. 6609 * config/i386/i386.c (ix86_return_in_memory): Remove 6610 SUBTARGET_RETURN_IN_MEMORY. 6611 66122020-11-04 liuhongt <hongtao.liu@intel.com> 6613 6614 PR target/97540 6615 * ira.c: (ira_setup_alts): Extract memory from operand only 6616 for special memory constraint. 6617 * recog.c (asm_operand_ok): Ditto. 6618 * lra-constraints.c (process_alt_operands): MEM_P is 6619 required for normal memory constraint. 6620 66212020-11-04 liuhongt <hongtao.liu@intel.com> 6622 6623 PR target/97532 6624 * lra-constraints.c (valid_address_p): Handle operand of 6625 special memory constraint. 6626 (process_address_1): Ditto. 6627 66282020-11-03 Jan Hubicka <hubicka@ucw.cz> 6629 6630 PR ipa/97695 6631 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Fix ICE with 6632 in dumping code. 6633 (cgraph_node::remove): Save clone info before releasing it and pass it 6634 to unregister. 6635 * cgraph.h (symtab_node::unregister): Add clone_info parameter. 6636 (cgraph_clone::unregister): Likewise. 6637 * cgraphclones.c (cgraph_node::find_replacement): Copy clone info 6638 * symtab-clones.cc (clone_infos_t::duplicate): Remove. 6639 (clone_info::get_create): Simplify. 6640 * symtab.c (symtab_node::unregister): Pass around clone info. 6641 * varpool.c (varpool_node::remove): Update. 6642 66432020-11-03 Thomas Schwinge <thomas@codesourcery.com> 6644 6645 * omp-low.c (scan_omp_for) <OpenACC>: Use proper location to 6646 'inform' of enclosing parent compute construct. 6647 66482020-11-03 Jan Hubicka <hubicka@ucw.cz> 6649 6650 PR ipa/97698 6651 * cgraphclones.c (duplicate_thunk_for_node): Check that info is 6652 non-NULL. 6653 66542020-11-03 Uroš Bizjak <ubizjak@gmail.com> 6655 6656 * config/i386/i386.c (ix86_function_arg_regno_p): Use up to 6657 SSE_REGPARM_MAX registers to pass function parameters 6658 for 32bit Mach-O targets. 6659 * config/i386/i386.h (X86_32_MMX_REGPARM_MAX): New macro. 6660 (MMX_REGPARM_MAX): Use it. 6661 66622020-11-03 Dennis Zhang <dennis.zhang@arm.com> 6663 6664 * config/aarch64/aarch64-simd-builtins.def (vget_lo_half): New entry. 6665 (vget_hi_half): Likewise. 6666 * config/aarch64/aarch64-simd.md (aarch64_vget_lo_halfv8bf): New entry. 6667 (aarch64_vget_hi_halfv8bf): Likewise. 6668 * config/aarch64/arm_neon.h (vget_low_bf16): New intrinsic. 6669 (vget_high_bf16): Likewise. 6670 66712020-11-03 Yang Yang <yangyang305@huawei.com> 6672 6673 * cgraph.h (struct cgraph_simd_clone): Change field "simdlen" of 6674 struct cgraph_simd_clone from unsigned int to poly_uint64. 6675 * config/aarch64/aarch64.c 6676 (aarch64_simd_clone_compute_vecsize_and_simdlen): adaptation of 6677 operations on "simdlen". 6678 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 6679 Printf formats update. 6680 * gengtype.c (main): Handle poly_uint64. 6681 * omp-simd-clone.c (simd_clone_mangle): Likewise.Re 6682 (simd_clone_adjust_return_type): Likewise. 6683 (create_tmp_simd_array): Likewise. 6684 (simd_clone_adjust_argument_types): Likewise. 6685 (simd_clone_init_simd_arrays): Likewise. 6686 (ipa_simd_modify_function_body): Likewise. 6687 (simd_clone_adjust): Likewise. 6688 (expand_simd_clones): Likewise. 6689 * poly-int-types.h (vector_unroll_factor): New macro. 6690 * poly-int.h (constant_multiple_p): Add two-argument versions. 6691 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. 6692 66932020-11-03 Richard Biener <rguenther@suse.de> 6694 6695 PR tree-optimization/97623 6696 * params.opt (-param=max-pre-hoist-insert-iterations): New. 6697 * doc/invoke.texi (max-pre-hoist-insert-iterations): Document. 6698 * tree-ssa-pre.c (insert): Do at most max-pre-hoist-insert-iterations 6699 hoist insert iterations. 6700 67012020-11-03 Richard Biener <rguenther@suse.de> 6702 6703 PR middle-end/97579 6704 * gimple-isel.cc (gimple_expand_vec_cond_expr): Use 6705 the correct types for the vcond_mask/vec_cmp optab queries. 6706 67072020-11-03 Andrew MacLeod <amacleod@redhat.com> 6708 6709 * gimple-range-cache.cc (ssa_global_cache::get_global_range): Return 6710 true if there was a previous range set. 6711 (ranger_cache::ranger_cache): Take a gimple_ranger parameter. 6712 (ranger_cache::set_global_range): Propagate the value if updating. 6713 (ranger_cache::propagate_cache): Renamed from iterative_cache_update. 6714 (ranger_cache::propagate_updated_value): New. Split from: 6715 (ranger_cache::fill_block_cache): Split out value propagator. 6716 * gimple-range-cache.h (ssa_global_cache): Update prototypes. 6717 (ranger_cache): Update prototypes. 6718 67192020-11-03 Andrew MacLeod <amacleod@redhat.com> 6720 6721 * gimple-range-cache.h (block_range_cache): Add new entry point. 6722 (ranger_cache): Privatize global abnd block cache members. 6723 * gimple-range-cache.cc (ssa_block_ranges::set_bb_range): Add bounds 6724 check. 6725 (ssa_block_ranges::set_bb_varying): Ditto. 6726 (ssa_block_ranges::get_bb_range): Ditto. 6727 (ssa_block_ranges::bb_range_p): Ditto. 6728 (block_range_cache::get_block_ranges): Fix formatting. 6729 (block_range_cache::query_block_ranges): New. 6730 (block_range_cache::get_bb_range): Use Query_block_ranges. 6731 (block_range_cache::bb_range_p): Ditto. 6732 (ranger_cache::dump): New. 6733 (ranger_cache::get_global_range): New. 6734 (ranger_cache::set_global_range): New. 6735 * gimple-range.cc (gimple_ranger::range_of_expr): Use new API. 6736 (gimple_ranger::range_of_stmt): Ditto. 6737 (gimple_ranger::export_global_ranges): Ditto. 6738 (gimple_ranger::dump): Ditto. 6739 67402020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de> 6741 6742 * fold-const.c (getbyterep): Remove duplicated statement. 6743 67442020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de> 6745 6746 PR target/97205 6747 * cfgexpand.c (align_local_variable): Make SSA_NAMEs 6748 at least MODE_ALIGNED. 6749 (expand_one_stack_var_at): Increase MEM_ALIGN for SSA_NAMEs. 6750 67512020-11-03 Zhiheng Xie <xiezhiheng@huawei.com> 6752 Nannan Zheng <zhengnannan@huawei.com> 6753 6754 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 6755 for AES/SHA/SM3/SM4 intrinsics. 6756 67572020-11-03 Zhiheng Xie <xiezhiheng@huawei.com> 6758 Nannan Zheng <zhengnannan@huawei.com> 6759 6760 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 6761 for compare intrinsics. 6762 67632020-11-03 Richard Biener <rguenther@suse.de> 6764 6765 * dwarf2out.c (maybe_create_die_with_external_ref): Remove 6766 hashtable entry. 6767 67682020-11-03 Andrea Corallo <andrea.corallo@arm.com> 6769 6770 * config/arm/arm_neon.h (vst2_lane_bf16, vst2q_lane_bf16) 6771 (vst3_lane_bf16, vst3q_lane_bf16, vst4_lane_bf16) 6772 (vst4q_lane_bf16): New intrinsics. 6773 * config/arm/arm_neon_builtins.def: Touch it for: 6774 __builtin_neon_vst2_lanev4bf, __builtin_neon_vst2_lanev8bf, 6775 __builtin_neon_vst3_lanev4bf, __builtin_neon_vst3_lanev8bf, 6776 __builtin_neon_vst4_lanev4bf,__builtin_neon_vst4_lanev8bf. 6777 67782020-11-03 Andrea Corallo <andrea.corallo@arm.com> 6779 6780 * config/arm/arm_neon.h (vld2_lane_bf16, vld2q_lane_bf16) 6781 (vld3_lane_bf16, vld3q_lane_bf16, vld4_lane_bf16) 6782 (vld4q_lane_bf16): Add intrinsics. 6783 * config/arm/arm_neon_builtins.def: Touch for: 6784 __builtin_neon_vld2_lanev4bf, __builtin_neon_vld2_lanev8bf, 6785 __builtin_neon_vld3_lanev4bf, __builtin_neon_vld3_lanev8bf, 6786 __builtin_neon_vld4_lanev4bf, __builtin_neon_vld4_lanev8bf. 6787 * config/arm/iterators.md (VQ_HS): Add V8BF to the iterator. 6788 67892020-11-03 Andrea Corallo <andrea.corallo@arm.com> 6790 6791 * config/arm/arm_neon.h (vst1_bf16, vst1q_bf16): Add intrinsics. 6792 * config/arm/arm_neon_builtins.def : Touch for: 6793 __builtin_neon_vst1v4bf, __builtin_neon_vst1v8bf. 6794 67952020-11-03 Andrea Corallo <andrea.corallo@arm.com> 6796 6797 * config/arm/arm-builtins.c (VAR14): Define macro. 6798 * config/arm/arm_neon_builtins.def: Touch for: 6799 __builtin_neon_vld1v4bf, __builtin_neon_vld1v8bf. 6800 * config/arm/arm_neon.h (vld1_bf16, vld1q_bf16): Add intrinsics. 6801 68022020-11-03 Andrea Corallo <andrea.corallo@arm.com> 6803 6804 * config/arm/arm_neon.h (vst1_lane_bf16, vst1q_lane_bf16): Add 6805 intrinsics. 6806 * config/arm/arm_neon_builtins.def (STORE1LANE): Add v4bf, v8bf. 6807 68082020-11-03 Andrea Corallo <andrea.corallo@arm.com> 6809 6810 * config/arm/arm_neon_builtins.def: Add to LOAD1LANE v4bf, v8bf. 6811 * config/arm/arm_neon.h (vld1_lane_bf16, vld1q_lane_bf16): Add 6812 intrinsics. 6813 68142020-11-03 Richard Biener <rguenther@suse.de> 6815 6816 PR bootstrap/97666 6817 * tree-vect-slp.c (vect_build_slp_tree_2): Scale 6818 allocation of skip_args by sizeof (bool). 6819 68202020-11-03 Richard Biener <rguenther@suse.de> 6821 6822 PR tree-optimization/80928 6823 * tree-vect-loop.c (vectorizable_induction): SLP vectorize 6824 nested inductions. 6825 68262020-11-03 Jan Hubicka <hubicka@ucw.cz> 6827 6828 PR ipa/97578 6829 * ipa-inline-transform.c (maybe_materialize_called_clones): New 6830 function. 6831 (inline_transform): Use it. 6832 68332020-11-03 Richard Biener <rguenther@suse.de> 6834 6835 PR tree-optimization/97678 6836 * tree-vect-slp.c (vect_build_slp_tree_2): Do not track 6837 the initial values of inductions when not nested. 6838 * tree-vect-loop.c (vectorizable_induction): Look at 6839 PHI node initial values again for SLP and not nested 6840 inductions. Handle LOOP_VINFO_MASK_SKIP_NITERS and cost 6841 invariants. 6842 68432020-11-03 Uroš Bizjak <ubizjak@gmail.com> 6844 6845 * config/i386/sse.md (aes<aeswideklvariant>u8): 6846 Do not use xmm_regs array. Fix whitespace. 6847 68482020-11-03 Uroš Bizjak <ubizjak@gmail.com> 6849 6850 * config/i386/i386-expand.c (ix86_expand_builtin): Fix comment. 6851 68522020-11-03 Thomas Schwinge <thomas@codesourcery.com> 6853 6854 * omp-low.c (scan_omp_for) <OpenACC>: Move earlier inconsistent 6855 nested 'reduction' clauses checking. 6856 68572020-11-03 Thomas Schwinge <thomas@codesourcery.com> 6858 6859 * omp-low.c (scan_omp_for) <OpenACC>: More precise diagnostics for 6860 'gang', 'worker', 'vector' clauses with arguments only allowed in 6861 'kernels' regions. 6862 68632020-11-03 Kewen Lin <linkw@gcc.gnu.org> 6864 6865 PR tree-optimization/96789 6866 * function.h (struct function): New member unsigned pending_TODOs. 6867 * passes.c (class pass_pre_slp_scalar_cleanup): New class. 6868 (make_pass_pre_slp_scalar_cleanup): New function. 6869 (pass_data_pre_slp_scalar_cleanup): New pass data. 6870 * passes.def: (pass_pre_slp_scalar_cleanup): New pass, add 6871 pass_fre and pass_dse as its children. 6872 * timevar.def (TV_SCALAR_CLEANUP): New timevar. 6873 * tree-pass.h (PENDING_TODO_force_next_scalar_cleanup): New 6874 pending TODO flag. 6875 (make_pass_pre_slp_scalar_cleanup): New declare. 6876 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): 6877 Once any outermost loop gets unrolled, flag cfun pending_TODOs 6878 PENDING_TODO_force_next_scalar_cleanup on. 6879 68802020-11-02 Alan Modra <amodra@gmail.com> 6881 6882 PR middle-end/97267 6883 * calls.h (maybe_complain_about_tail_call): Declare. 6884 * calls.c (maybe_complain_about_tail_call): Make global. 6885 (can_implement_as_sibling_call_p): Delete reg_parm_stack_space 6886 param. Adjust caller. Move REG_PARM_STACK_SPACE check to.. 6887 * config/i386/i386.c (ix86_function_ok_for_sibcall): ..here. 6888 68892020-11-02 Vladimir N. Makarov <vmakarov@redhat.com> 6890 6891 * ira.c (ira_remove_scratches): Rename to remove_scratches. Make 6892 it static and returning flag of any change. 6893 (ira.c): Call ira_expand_reg_equiv in case of removing scratches. 6894 68952020-11-02 H.J. Lu <hjl.tools@gmail.com> 6896 6897 PR target/97140 6898 * config/i386/i386-expand.c (ix86_expand_builtin): Require MMX 6899 for __builtin_ia32_maskmovq. 6900 69012020-11-02 Martin Sebor <msebor@redhat.com> 6902 6903 * doc/invoke.texi (-Wstringop-overflow): Correct default setting. 6904 (-Wstringop-overread): Move past -Wstringop-overflow. 6905 69062020-11-02 François-Xavier Coudert <fxcoudert@gcc.gnu.org> 6907 6908 PR bootstrap/57076 6909 * Makefile.in (gcc-vers.texi): Quote @, { and }. 6910 69112020-11-02 Carl Love <cel@us.ibm.com> 6912 6913 PR target/93449 6914 * config/rs6000/altivec.h (__builtin_bcdadd, __builtin_bcdadd_lt, 6915 __builtin_bcdadd_eq, __builtin_bcdadd_gt, __builtin_bcdadd_ofl, 6916 __builtin_bcdadd_ov, __builtin_bcdsub, __builtin_bcdsub_lt, 6917 __builtin_bcdsub_eq, __builtin_bcdsub_gt, __builtin_bcdsub_ofl, 6918 __builtin_bcdsub_ov, __builtin_bcdinvalid, __builtin_bcdmul10, 6919 __builtin_bcddiv10, __builtin_bcd2dfp, __builtin_bcdcmpeq, 6920 __builtin_bcdcmpgt, __builtin_bcdcmplt, __builtin_bcdcmpge, 6921 __builtin_bcdcmple): Add defines. 6922 * config/rs6000/altivec.md: Add UNSPEC_BCDSHIFT. 6923 (BCD_TEST): Add le, ge to code iterator. 6924 Add VBCD mode iterator. 6925 (bcd<bcd_add_sub>_test, *bcd<bcd_add_sub>_test2, 6926 bcd<bcd_add_sub>_<code>, bcd<bcd_add_sub>_<code>): Add mode to name. 6927 Change iterator from V1TI to VBCD. 6928 (*bcdinvalid_<mode>, bcdshift_v16qi): New define_insn. 6929 (bcdinvalid_<mode>, bcdmul10_v16qi, bcddiv10_v16qi): New define. 6930 * config/rs6000/dfp.md (dfp_denbcd_v16qi_inst): New define_insn. 6931 (dfp_denbcd_v16qi): New define_expand. 6932 * config/rs6000/rs6000-builtin.def (BU_P8V_MISC_1): New define. 6933 (BCDADD): Replaced with BCDADD_V1TI and BCDADD_V16QI. 6934 (BCDADD_LT): Replaced with BCDADD_LT_V1TI and BCDADD_LT_V16QI. 6935 (BCDADD_EQ): Replaced with BCDADD_EQ_V1TI and BCDADD_EQ_V16QI. 6936 (BCDADD_GT): Replaced with BCDADD_GT_V1TI and BCDADD_GT_V16QI. 6937 (BCDADD_OV): Replaced with BCDADD_OV_V1TI and BCDADD_OV_V16QI. 6938 (BCDSUB_V1TI, BCDSUB_V16QI, BCDSUB_LT_V1TI, BCDSUB_LT_V16QI, 6939 BCDSUB_LE_V1TI, BCDSUB_LE_V16QI, BCDSUB_EQ_V1TI, BCDSUB_EQ_V16QI, 6940 BCDSUB_GT_V1TI, BCDSUB_GT_V16QI, BCDSUB_GE_V1TI, BCDSUB_GE_V16QI, 6941 BCDSUB_OV_V1TI, BCDSUB_OV_V16QI, BCDINVALID_V1TI, BCDINVALID_V16QI, 6942 BCDMUL10_V16QI, BCDDIV10_V16QI, DENBCD_V16QI): New builtin definitions. 6943 (BCDADD, BCDADD_LT, BCDADD_EQ, BCDADD_GT, BCDADD_OV, BCDSUB, BCDSUB_LT, 6944 BCDSUB_LE, BCDSUB_EQ, BCDSUB_GT, BCDSUB_GE, BCDSUB_OV, BCDINVALID, 6945 BCDMUL10, BCDDIV10, DENBCD): New overload definitions. 6946 * config/rs6000/rs6000-call.c (P8V_BUILTIN_VEC_BCDADD, P8V_BUILTIN_VEC_BCDADD_LT, 6947 P8V_BUILTIN_VEC_BCDADD_EQ, P8V_BUILTIN_VEC_BCDADD_GT, P8V_BUILTIN_VEC_BCDADD_OV, 6948 P8V_BUILTIN_VEC_BCDINVALID, P9V_BUILTIN_VEC_BCDMUL10, P8V_BUILTIN_VEC_DENBCD. 6949 P8V_BUILTIN_VEC_BCDSUB, P8V_BUILTIN_VEC_BCDSUB_LT, P8V_BUILTIN_VEC_BCDSUB_LE, 6950 P8V_BUILTIN_VEC_BCDSUB_EQ, P8V_BUILTIN_VEC_BCDSUB_GT, P8V_BUILTIN_VEC_BCDSUB_GE, 6951 P8V_BUILTIN_VEC_BCDSUB_OV): New overloaded specifications. 6952 (CODE_FOR_bcdadd): Replaced with CODE_FOR_bcdadd_v16qi and CODE_FOR_bcdadd_v1ti. 6953 (CODE_FOR_bcdadd_lt): Replaced with CODE_FOR_bcdadd_lt_v16qi and CODE_FOR_bcdadd_lt_v1ti. 6954 (CODE_FOR_bcdadd_eq): Replaced with CODE_FOR_bcdadd_eq_v16qi and CODE_FOR_bcdadd_eq_v1ti. 6955 (CODE_FOR_bcdadd_gt): Replaced with CODE_FOR_bcdadd_gt_v16qi and CODE_FOR_bcdadd_gt_v1ti. 6956 (CODE_FOR_bcdsub): Replaced with CODE_FOR_bcdsub_v16qi and CODE_FOR_bcdsub_v1ti. 6957 (CODE_FOR_bcdsub_lt): Replaced with CODE_FOR_bcdsub_lt_v16qi and CODE_FOR_bcdsub_lt_v1ti. 6958 (CODE_FOR_bcdsub_eq): Replaced with CODE_FOR_bcdsub_eq_v16qi and CODE_FOR_bcdsub_eq_v1ti. 6959 (CODE_FOR_bcdsub_gt): Replaced with CODE_FOR_bcdsub_gt_v16qi and CODE_FOR_bcdsub_gt_v1ti. 6960 (rs6000_expand_ternop_builtin): Add CODE_FOR_dfp_denbcd_v16qi to else if. 6961 * doc/extend.texi: Add documentation for new builtins. 6962 69632020-11-02 Nathan Sidwell <nathan@acm.org> 6964 6965 * tree.c (cache_integer_cst): Fixup pointer caching to match 6966 wide_int_to_type_1's expectations. Add comment. 6967 69682020-11-02 Nathan Sidwell <nathan@acm.org> 6969 6970 * tree.h (id_equal): Call the symetric predicate with swapped 6971 arguments. 6972 69732020-11-02 Nathan Sidwell <nathan@acm.org> 6974 6975 * print-tree.c (print_node): Display all the operands of a call 6976 expr. 6977 69782020-11-02 Vladimir N. Makarov <vmakarov@redhat.com> 6979 6980 * config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Add hint * 6981 to 2nd alternative of the 1st scratch. 6982 69832020-11-02 Sudakshina Das <sudi.das@arm.com> 6984 6985 PR target/97638 6986 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Update 6987 return value on INSN_P check. 6988 69892020-11-02 Richard Biener <rguenther@suse.de> 6990 6991 * tree.h (build_real_from_wide): Declare. 6992 * tree.c (build_real_from_wide): New function. 6993 * tree-vect-slp.c (vect_build_slp_tree_2): Remove 6994 restriction on induction vectorization, represent 6995 the initial value. 6996 * tree-vect-loop.c (vect_model_induction_cost): Inline ... 6997 (vectorizable_induction): ... here. Rewrite SLP 6998 code generation. 6999 70002020-11-02 Martin Jambor <mjambor@suse.cz> 7001 7002 * dbgcnt.def (ipa_cp_values): New counter. 7003 (ipa_cp_vr): Likewise. 7004 * ipa-cp.c (decide_about_value): Check and bump ipa_cp_values debug 7005 counter. 7006 (decide_whether_version_node): Likewise. 7007 (ipcp_store_vr_results):Check and bump ipa_cp_vr debug counter. 7008 70092020-11-02 Christophe Lyon <christophe.lyon@linaro.org> 7010 7011 * config/arm/arm.c (arm_thumb1_mi_thunk): Build mi_delta in r3 and 7012 do not emit function address and delta when -mpure-code is used. 7013 70142020-11-02 Christophe Lyon <christophe.lyon@linaro.org> 7015 7016 * config/arm/thumb1.md (thumb1_movsi_insn): Call 7017 thumb1_gen_const_int_print. 7018 * config/arm/arm-protos.h (thumb1_gen_const_int_print): Add 7019 prototype. 7020 * config/arm/arm.c (thumb1_gen_const_int_print): New. 7021 70222020-11-02 Christophe Lyon <christophe.lyon@linaro.org> 7023 7024 * config/arm/arm.c (thumb1_const_rtl, thumb1_const_print): New 7025 classes. 7026 (thumb1_gen_const_int): Rename to ... 7027 (thumb1_gen_const_int_1): ... New helper function. Add capability 7028 to emit either RTL or asm, improve generated code. 7029 (thumb1_gen_const_int_rtl): New function. 7030 * config/arm/arm-protos.h (thumb1_gen_const_int): Rename to 7031 thumb1_gen_const_int_rtl. 7032 * config/arm/thumb1.md: Call thumb1_gen_const_int_rtl instead 7033 of thumb1_gen_const_int. 7034 70352020-11-02 Richard Biener <rguenther@suse.de> 7036 7037 PR tree-optimization/97558 7038 * tree-vect-loop.c (vectorizable_reduction): For nested SLP 7039 cycles compute invariant operands vector type. 7040 70412020-11-02 Richard Biener <rguenther@suse.de> 7042 7043 PR tree-optimization/97558 7044 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): 7045 Check for any mismatch in pattern vs. non-pattern and dissolve 7046 the group if there is one. 7047 * tree-vect-slp.c (vect_analyze_slp_instance): Avoid 7048 analyzing not relevant reductions. 7049 (vect_analyze_slp): Avoid analyzing not relevant reduction 7050 groups. 7051 70522020-11-02 Richard Biener <rguenther@suse.de> 7053 7054 PR tree-optimization/97650 7055 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check 7056 for SSA_NAME before checking SSA_NAME_IS_DEFAULT_DEF. 7057 70582020-11-02 Kito Cheng <kito.cheng@sifive.com> 7059 7060 * common/config/riscv/riscv-common.c 7061 (riscv_subset_list::parse_multiletter_ext): Checking multiletter 7062 extension has more than 1 letter. 7063 70642020-11-02 Kito Cheng <kito.cheng@sifive.com> 7065 7066 * config.gcc (riscv*-*-*): Handle --with-multilib-generator. 7067 * configure: Regen. 7068 * configure.ac: Add --with-multilib-generator. 7069 * config/riscv/multilib-generator: Exit when parsing arch string error. 7070 * config/riscv/t-withmultilib-generator: New. 7071 * doc/install.texi: Document --with-multilib-generator. 7072 70732020-11-02 Christophe Lyon <christophe.lyon@linaro.org> 7074 7075 PR target/96770 7076 * config/arm/arm.c (thumb_legitimate_constant_p): Accept 7077 (symbol_ref + addend) when literal pool is disabled. 7078 (arm_valid_symbolic_address_p): Add support for thumb-1 without 7079 MOVT/MOVW. 7080 * config/arm/thumb1.md (*thumb1_movsi_insn): Accept (symbol_ref + 7081 addend) in the pure-code alternative. 7082 70832020-11-02 Christophe Lyon <christophe.lyon@linaro.org> 7084 7085 PR target/96967 7086 * config/arm/arm.c (thumb_legitimate_constant_p): Add support for 7087 disabled literal pool in thumb-1. 7088 * config/arm/thumb1.md (thumb1_movsi_symbol_ref): Remove. 7089 (*thumb1_movsi_insn): Add support for SYMBOL_REF with -mpure-code. 7090 70912020-11-01 Iain Sandoe <iain@sandoe.co.uk> 7092 7093 * config/host-darwin.c: Align pch_address_space to 16384. 7094 70952020-11-01 Pat Bernardi <bernardi@adacore.com> 7096 7097 * config/i386/i386.c (ix86_expand_prologue): Set the stack usage to 0 7098 for naked functions. 7099 71002020-11-01 Iain Buclaw <ibuclaw@gdcproject.org> 7101 7102 PR ipa/97660 7103 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't call 7104 clone_info::get when cgraph_node::get returns NULL. 7105 71062020-10-31 Jan Hubicka <jh@suse.cz> 7107 7108 * Makefile.in: (OBJS): Add symtab-clones.o 7109 (GTFILES): Add symtab-clones.h 7110 * cgraph.c: Include symtab-clones.h. 7111 (cgraph_edge::resolve_speculation): Fix formating 7112 (cgraph_edge::redirect_call_stmt_to_callee): Update. 7113 (cgraph_update_edges_for_call_stmt): Update 7114 (release_function_body): Fix formating. 7115 (cgraph_node::remove): Fix formating. 7116 (cgraph_node::dump): Fix formating. 7117 (cgraph_node::get_availability): Fix formating. 7118 (cgraph_node::call_for_symbol_thunks_and_aliases): Fix formating. 7119 (set_const_flag_1): Fix formating. 7120 (set_pure_flag_1): Fix formating. 7121 (cgraph_node::can_remove_if_no_direct_calls_p): Fix formating. 7122 (collect_callers_of_node_1): Fix formating. 7123 (clone_of_p): Update. 7124 (cgraph_node::verify_node): Update. 7125 (cgraph_c_finalize): Call clone_info::release (). 7126 * cgraph.h (struct cgraph_clone_info): Move to symtab-clones.h. 7127 (cgraph_node): Remove clone_info. 7128 (symbol_table): Add m_clones. 7129 * cgraphclones.c: Include symtab-clone.h. 7130 (duplicate_thunk_for_node): Update. 7131 (cgraph_node::create_clone): Update. 7132 (cgraph_node::create_virtual_clone): Update. 7133 (cgraph_node::find_replacement): Update. 7134 (cgraph_node::materialize_clone): Update. 7135 * gengtype.c (open_base_files): Include symtab-clones.h. 7136 * ipa-cp.c: Include symtab-clones.h. 7137 (initialize_node_lattices): Update. 7138 (want_remove_some_param_p): Update. 7139 (create_specialized_node): Update. 7140 * ipa-fnsummary.c: Include symtab-clones.h. 7141 (ipa_fn_summary_t::duplicate): Update. 7142 * ipa-modref.c: Include symtab-clones.h. 7143 (update_signature): Update. 7144 * ipa-param-manipulation.c: Include symtab-clones.h. 7145 (ipa_param_body_adjustments::common_initialization): Update. 7146 * ipa-prop.c: Include symtab-clones.h. 7147 (adjust_agg_replacement_values): Update. 7148 (ipcp_get_parm_bits): Update. 7149 (ipcp_update_bits): Update. 7150 (ipcp_update_vr): Update. 7151 * ipa-sra.c: Include symtab-clones.h. 7152 (process_isra_node_results): Update. 7153 (disable_unavailable_parameters): Update. 7154 * lto-cgraph.c: Include symtab-clone.h. 7155 (output_cgraph_opt_summary_p): Update. 7156 (output_node_opt_summary): Update. 7157 (input_node_opt_summary): Update. 7158 * symtab-clones.cc: New file. 7159 * symtab-clones.h: New file. 7160 * tree-inline.c (expand_call_inline): Update. 7161 (update_clone_info): Update. 7162 (tree_function_versioning): Update. 7163 71642020-10-31 Jan Hubicka <jh@suse.cz> 7165 7166 * ipa-modref.c (modref_summary::dump): Dump writes_errno. 7167 (parm_map_for_arg): Break out from ... 7168 (merge_call_side_effects): ... here. 7169 (get_access_for_fnspec): New function. 7170 (process_fnspec): New function. 7171 (analyze_call): Use it. 7172 (analyze_stmt): Update. 7173 (analyze_function): Initialize writes_errno. 7174 (modref_summaries::duplicate): Duplicate writes_errno. 7175 * ipa-modref.h (struct modref_summary): Add writes_errno. 7176 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Check errno. 7177 71782020-10-30 Michael Meissner <meissner@linux.ibm.com> 7179 7180 * config/rs6000/rs6000.c (glibc_supports_ieee_128bit): New helper 7181 function. 7182 (rs6000_option_override_internal): Call it. 7183 71842020-10-30 Qing Zhao <qing.zhao@oracle.com> 7185 H.J.Lu <hjl.tools@gmail.com> 7186 7187 * common.opt: Add new option -fzero-call-used-regs 7188 * config/i386/i386.c (zero_call_used_regno_p): New function. 7189 (zero_call_used_regno_mode): Likewise. 7190 (zero_all_vector_registers): Likewise. 7191 (zero_all_st_registers): Likewise. 7192 (zero_all_mm_registers): Likewise. 7193 (ix86_zero_call_used_regs): Likewise. 7194 (TARGET_ZERO_CALL_USED_REGS): Define. 7195 * df-scan.c (df_epilogue_uses_p): New function. 7196 (df_get_exit_block_use_set): Replace EPILOGUE_USES with 7197 df_epilogue_uses_p. 7198 * df.h (df_epilogue_uses_p): Declare. 7199 * doc/extend.texi: Document the new zero_call_used_regs attribute. 7200 * doc/invoke.texi: Document the new -fzero-call-used-regs option. 7201 * doc/tm.texi: Regenerate. 7202 * doc/tm.texi.in (TARGET_ZERO_CALL_USED_REGS): New hook. 7203 * emit-rtl.h (struct rtl_data): New field must_be_zero_on_return. 7204 * flag-types.h (namespace zero_regs_flags): New namespace. 7205 * function.c (gen_call_used_regs_seq): New function. 7206 (class pass_zero_call_used_regs): New class. 7207 (pass_zero_call_used_regs::execute): New function. 7208 (make_pass_zero_call_used_regs): New function. 7209 * optabs.c (expand_asm_reg_clobber_mem_blockage): New function. 7210 * optabs.h (expand_asm_reg_clobber_mem_blockage): Declare. 7211 * opts.c (zero_call_used_regs_opts): New structure array 7212 initialization. 7213 (parse_zero_call_used_regs_options): New function. 7214 (common_handle_option): Handle -fzero-call-used-regs. 7215 * opts.h (zero_call_used_regs_opts): New structure array. 7216 * passes.def: Add new pass pass_zero_call_used_regs. 7217 * recog.c (valid_insn_p): New function. 7218 * recog.h (valid_insn_p): Declare. 7219 * resource.c (init_resource_info): Replace EPILOGUE_USES with 7220 df_epilogue_uses_p. 7221 * target.def (zero_call_used_regs): New hook. 7222 * targhooks.c (default_zero_call_used_regs): New function. 7223 * targhooks.h (default_zero_call_used_regs): Declare. 7224 * tree-pass.h (make_pass_zero_call_used_regs): Declare. 7225 72262020-10-30 Vladimir N. Makarov <vmakarov@redhat.com> 7227 7228 * lra.c (get_scratch_reg): New function. 7229 (remove_scratches_1): Rename remove_insn_scratches. Use 7230 ira_remove_insn_scratches and get_scratch_reg. 7231 (remove_scratches): Do not 7232 initialize scratches, scratch_bitmap, and scratch_operand_bitmap. 7233 (lra): Call ira_restore_scratches instead of restore_scratches. 7234 (struct sloc, sloc_t, scratches, scratch_bitmap) 7235 (scratch_operand_bitmap, lra_former_scratch_p) 7236 (lra_former_scratch_operand_p, lra_register_new_scratch_op) 7237 (restore_scratches): Move them to ... 7238 * ira.c: ... here. 7239 (former_scratch_p, former_scratch_operand_p): Rename to 7240 ira_former_scratch_p and ira_former_scratch_operand_p. 7241 (contains_X_constraint_p): New function. 7242 (register_new_scratch_op): Rename to ira_register_new_scratch_op. 7243 Change it to work for IRA and LRA. 7244 (restore_scratches): Rename to ira_restore_scratches. 7245 (get_scratch_reg, ira_remove_insn_scratches): New functions. 7246 (ira): Call ira_remove_scratches if we use LRA. 7247 * ira.h (ira_former_scratch_p, ira_former_scratch_operand_p): New 7248 prototypes. 7249 (ira_register_new_scratch_op, ira_restore_scratches): New prototypes. 7250 (ira_remove_insn_scratches): New prototype. 7251 * lra-int.h (lra_former_scratch_p, lra_former_scratch_operand_p): 7252 Remove prototypes. 7253 (lra_register_new_scratch_op): Ditto. 7254 * lra-constraints.c: Rename lra_former_scratch_p and 7255 lra_former_scratch_p to ira_former_scratch_p and to 7256 ira_former_scratch_p. 7257 * lra-remat.c: Ditto. 7258 * lra-spills.c: Rename lra_former_scratch_p to ira_former_scratch_p. 7259 72602020-10-30 Martin Sebor <msebor@redhat.com> 7261 7262 PR middle-end/97556 7263 * builtins.c (access_ref::add_offset): Cap offset lower bound 7264 to at most the the upper bound. 7265 72662020-10-30 Jan Hubicka <jh@suse.cz> 7267 7268 PR pch/97593 7269 * cgraph.c (cgraph_node::create_thunk): Register thunk as early during 7270 parsing. 7271 * cgraphunit.c (analyze_functions): Call 7272 thunk_info::process_early_thunks. 7273 * symtab-thunks.cc (struct unprocessed_thunk): New struct. 7274 (thunks): New static variable. 7275 (thunk_info::register_early): New member function. 7276 (thunk_info::process_early_thunks): New member function. 7277 * symtab-thunks.h (thunk_info::register_early): Declare. 7278 (thunk_info::process_early_thunks): Declare. 7279 72802020-10-30 Richard Biener <rguenther@suse.de> 7281 7282 PR tree-optimization/97623 7283 * tree-ssa-pre.c (insert): First do hoist insertion in 7284 a backward walk. 7285 72862020-10-30 Richard Biener <rguenther@suse.de> 7287 7288 PR tree-optimization/97626 7289 * tree-vect-slp.c (vect_slp_analyze_node_operations): 7290 Exchange the lvisited hash-set for a vector, roll back 7291 recursive adds to visited when analysis failed. 7292 (vect_slp_analyze_operations): Likewise. 7293 72942020-10-30 Zhiheng Xie <xiezhiheng@huawei.com> 7295 Nannan Zheng <zhengnannan@huawei.com> 7296 7297 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 7298 for conversion intrinsics. 7299 73002020-10-30 Richard Biener <rguenther@suse.de> 7301 7302 PR tree-optimization/97633 7303 * tree-vect-slp.c (): Update backedges in single-node cycles. 7304 Optimize processing of externals. 7305 73062020-10-30 Alex Coplan <alex.coplan@arm.com> 7307 7308 PR target/96998 7309 * combine.c (make_extraction): Also handle shifts written as 7310 (mult x 2^n), avoid creating an extract rtx for these. 7311 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Delete. 7312 (aarch64_classify_index): Remove extract-based address handling. 7313 (aarch64_strip_extend): Likewise. 7314 (aarch64_rtx_arith_op_extract_p): Likewise, remove now-unused parameter. 7315 Update callers... 7316 (aarch64_rtx_costs): ... here. 7317 73182020-10-30 Olivier Hainque <hainque@adacore.com> 7319 7320 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Also 7321 builtin_define __ppc and __ppc__ for VxWorks 7. 7322 73232020-10-30 Olivier Hainque <hainque@adacore.com> 7324 Douglas Rupp <rupp@adacore.com> 7325 Pat Bernardi <bernardi@adacore.com> 7326 7327 * config.gcc: Adjust the ix86/x86_64-wrs-vxworks filters 7328 to apply to VxWorks 7 as well. 7329 * config/i386/t-vxworks (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): 7330 Remove the fPIC multilib and add one for the large code model 7331 on x86_64. 7332 * config/i386/vxworks.h: Separate sections for TARGET_VXWORKS7, 7333 other variants and common bits. 7334 (TARGET_OS_CPP_BUILTINS): Augment to support a range of CPU 7335 families. Leverage VX_CPU_PREFIX. 7336 (CC1_SPEC): Add definition. 7337 (STACK_CHECK_PROTECT): Use conditional expression instead of 7338 heavier to read conditioned macro definitions. 7339 73402020-10-30 Jakub Jelinek <jakub@redhat.com> 7341 7342 * gimplify.c (gimplify_scan_omp_clauses): Force 7343 OMP_CLAUSE_ALLOCATE_ALLOCATOR into a temporary if it is non-NULL and 7344 non-constant. 7345 (gimplify_omp_for): Only put allocate on inner taskloop if lastprivate 7346 for the same variable is going to be put there, and in that case 7347 if the OMP_CLAUSE_ALLOCATE_ALLOCATOR is non-NULL non-constant, make 7348 the allocator firstprivate on task. 7349 73502020-10-30 Michael Meissner <meissner@linux.ibm.com> 7351 7352 * config/rs6000/rs6000.c (rs6000_option_override_internal): Allow 7353 long double type to be changed for C/C++ if glibc 2.32 or newer. 7354 (rs6000_invalid_binary_op): Update error messages about mixing IBM 7355 long double and IEEE 128-bit. 7356 73572020-10-29 Richard Biener <rguenther@suse.de> 7358 7359 * tree-ssa-pre.c (compute_avail): Free operands consistently. 7360 * tree-vect-loop.c (vectorizable_phi): Make sure all operand 7361 defs vectors are released. 7362 73632020-10-29 Jan Hubicka <jh@suse.cz> 7364 7365 * vec.h (vec<T, va_heap, vl_ptr>::copy): Pass mem stat info. 7366 73672020-10-29 Jan Hubicka <jh@suse.cz> 7368 7369 * wide-int.h (trailing_wide_ints <N>): Turn len to array of structures 7370 so it does not imply typeless storage. 7371 (trailing_wide_ints <N>::operator): update 7372 (trailing_wide_ints <N>::operator []): Update. 7373 73742020-10-29 Joseph Myers <joseph@codesourcery.com> 7375 7376 * ginclude/stdbool.h [__STDC_VERSION__ > 201710L] (true, false): 7377 Define with type _Bool. 7378 73792020-10-29 Aldy Hernandez <aldyh@redhat.com> 7380 7381 PR tree-optimization/97505 7382 * vr-values.c (vr_values::extract_range_basic): Enable 7383 trap again for everything except UBSAN builtins. 7384 73852020-10-29 Richard Sandiford <richard.sandiford@arm.com> 7386 7387 * tree-vectorizer.h (vect_transform_slp_perm_load): Take an 7388 optional extra parameter. 7389 * tree-vect-slp.c (vect_transform_slp_perm_load): Calculate 7390 the number of loads as well as the number of permutes, taking 7391 the counting loop from... 7392 * tree-vect-stmts.c (vect_model_load_cost): ...here. Use the 7393 value computed by vect_transform_slp_perm_load for ncopies. 7394 73952020-10-29 Martin Liska <mliska@suse.cz> 7396 7397 PR lto/97508 7398 * langhooks.c (lhd_begin_section): Call get_section with 7399 not_existing = true. 7400 * output.h (get_section): Add new argument. 7401 * varasm.c (get_section): Fail when NOT_EXISTING is true 7402 and a section already exists. 7403 * ipa-cp.c (ipcp_write_summary): Remove. 7404 (ipcp_read_summary): Likewise. 7405 * ipa-fnsummary.c (ipa_fn_summary_read): Always read jump 7406 functions summary. 7407 (ipa_fn_summary_write): Always stream it. 7408 74092020-10-29 Richard Biener <rguenther@suse.de> 7410 7411 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Pass 7412 SLP_TREE_VECTYPE to record_stmt_cost. 7413 74142020-10-29 Martin Liska <mliska@suse.cz> 7415 7416 * optc-gen.awk: Check that params start with -param=. 7417 * params.opt: Fix ipa-jump-function-lookups. 7418 74192020-10-29 Alexandre Oliva <oliva@adacore.com> 7420 7421 * tree-ssa-math-opts.c (sincos_stats): Add conv_removed. 7422 (execute_cse_conv_1): New. 7423 (execute_cse_sincos_1): Call it. Fix return within 7424 FOR_EACH_IMM_USE_STMT. 7425 (pass_cse_sincos::execute): Report conv_inserted. 7426 74272020-10-29 Xuepeng Guo <xuepeng.guo@intel.com> 7428 Hongyu Wang <hongyu.wang@intel.com> 7429 Hongtao Liu <hongtao.liu@intel.com> 7430 7431 * common/config/i386/cpuinfo.h (get_available_features): 7432 Detect KL, AESKLE and WIDEKL features. 7433 * common/config/i386/i386-common.c 7434 (OPTION_MASK_ISA_KL_SET): New. 7435 (OPTION_MASK_ISA_WIDEKL_SET): Likewise. 7436 (OPTION_MASK_ISA_KL_UNSET): Likewise. 7437 (OPTION_MASK_ISA_WIDEKL_UNSET): Likewise. 7438 (OPTION_MASK_ISA2_AVX2_UNSET): Likewise. 7439 (OPTION_MASK_ISA2_AVX_UNSET): Likewise. 7440 (OPTION_MASK_ISA2_SSE4_2_UNSET): Likewise. 7441 (OPTION_MASK_ISA2_SSE4_1_UNSET): Likewise. 7442 (OPTION_MASK_ISA2_SSE4_UNSET): Likewise. 7443 (OPTION_MASK_ISA2_SSSE3_UNSET): Likewise. 7444 (OPTION_MASK_ISA2_SSE3_UNSET): Likewise. 7445 (OPTION_MASK_ISA2_SSE2_UNSET): Likewise. 7446 (OPTION_MASK_ISA2_SSE_UNSET): Likewise. 7447 (ix86_handle_option): Handle kl and widekl, add dependency chain 7448 for KL and SSE2. 7449 * common/config/i386/i386-cpuinfo.h (enum processor_features): 7450 (FEATURE_KL, FEATURE_AESKLE, FEATURE_WIDEKL): New. 7451 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY 7452 for KL, AESKLE and WIDEKL. 7453 * config.gcc: Add keylockerintrin.h. 7454 * doc/invoke.texi: Document new option -mkl and -mwidekl. 7455 * doc/extend.texi: Document kl and widekl. 7456 * config/i386/cpuid.h (bit_KL, bit_AESKLE, bit_WIDEKL): New. 7457 * config/i386/i386-builtin-types.def ((UINT, UINT, V2DI, V2DI, PVOID), 7458 (UINT, UINT, V2DI, PVOID), (VOID, V2DI, V2DI, V2DI, UINT), 7459 (UINT8, PV2DI, V2DI, PCVOID), (UINT8, PV2DI, PCV2DI, PCVOID)): New 7460 function types. 7461 * config/i386/i386-builtin.def: Add 7462 __builtin_ia32_loadiwkey, 7463 __builtin_ia32_aesdec128kl_u8, 7464 __builtin_ia32_aesdec256kl_u8, 7465 __builtin_ia32_aesenc128kl_u8, 7466 __builtin_ia32_aesenc256kl_u8, 7467 __builtin_ia32_aesdecwide128kl_u8, 7468 __builtin_ia32_aesdecwide256kl_u8, 7469 __builtin_ia32_aesencwide128kl_u8, 7470 __builtin_ia32_aesencwide256kl_u8, 7471 __builtin_ia32_encodekey128_u32, 7472 __builtin_ia32_encodekey256_u32. 7473 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 7474 kl and widekl. 7475 * config/i386/i386-options.c (isa2_opts): Add -mkl and -mwidekl. 7476 (ix86_option_override_internal): Handle KL and WIDEKL. 7477 (ix86_valid_target_attribute_inner_p): Add attribute for kl and widekl. 7478 * config/i386/i386-expand.c 7479 (ix86_expand_builtin): Expand Keylocker Builtins. 7480 * config/i386/i386.h (TARGET_KL): New. 7481 (TARGET_KL_P): Likewise. 7482 (TARGET_WIDEKL): Likewise. 7483 (TARGET_WIDEKL_P): Likewise. 7484 (PTA_KL): Likewise. 7485 (PTA_WIDEKL): Likewise. 7486 (PTA_TIGERLAKE): Add PTA_KL, PTA_WIDEKL. 7487 (PTA_ALDERLAKE): Likewise. 7488 * config/i386/i386.opt: Add new option mkl and mwidekl. 7489 * config/i386/keylockerintrin.h: New header file for Keylocker. 7490 * config/i386/immintrin.h: Include keylockerintrin.h. 7491 * config/i386/predicates.md (encodekey128_operation): New 7492 predicate. 7493 (encodekey256_operation): Likewise. 7494 (aeswidekl_operation): Likewise. 7495 * config/i386/sse.md (UNSPECV_LOADIWKEY): New. 7496 (UNSPECV_AESDEC128KLU8): Likewise. 7497 (UNSPECV_AESENC128KLU8): Likewise. 7498 (UNSPECV_AESDEC256KLU8): Likewise. 7499 (UNSPECV_AESENC256KLU8): Likewise. 7500 (UNSPECV_AESDECWIDE128KLU8): Likewise. 7501 (UNSPECV_AESENCWIDE128KLU8): Likewise. 7502 (UNSPECV_AESDECWIDE256KLU8): Likewise. 7503 (UNSPECV_AESENCWIDE256KLU8): Likewise. 7504 (UNSPECV_ENCODEKEY128U32): Likewise. 7505 (UNSPECV_ENCODEKEY256U32): Likewise. 7506 (encodekey128u32): New expander. 7507 (encodekey256u32): Likewise. 7508 (aes<aeswideklvariant>u8): Likewise. 7509 (loadiwkey): New insn pattern. 7510 (*encodekey128u32): Likewise. 7511 (*encodekey256u32): Likewise. 7512 (aes<aesklvariant>u8): Likewise. 7513 (*aes<aeswideklvariant>u8): Likewise. 7514 75152020-10-29 Richard Biener <rguenther@suse.de> 7516 7517 * tree-vect-slp.c (vect_build_slp_tree_2): Allow splatting 7518 not vectorizable loads. 7519 (vect_build_slp_instance): Amend dumping with address. 7520 (vect_slp_convert_to_external): Likewise. 7521 75222020-10-29 Andrew MacLeod <amacleod@redhat.com> 7523 7524 PR tree-optimization/97609 7525 * gimple-range-cache.cc (non_null_ref::process_name): Call 7526 infer_nonnull_range directly instead of infer_value_range. 7527 75282020-10-29 David Malcolm <dmalcolm@redhat.com> 7529 7530 * Makefile.in (ANALYZER_OBJS): Add analyzer/complexity.o. 7531 75322020-10-28 Marek Polacek <polacek@redhat.com> 7533 7534 PR c++/97573 7535 * doc/invoke.texi: Document -Wdeprecated-enum-enum-conversion 7536 and -Wdeprecated-enum-float-conversion. -Wenum-conversion is 7537 no longer C/ObjC only. 7538 75392020-10-28 Richard Sandiford <richard.sandiford@arm.com> 7540 7541 PR tree-optimization/97457 7542 * value-range.cc (irange::set): Don't decay POLY_INT_CST ranges 7543 to integer ranges. 7544 75452020-10-28 Carl Love <cel@us.ibm.com> 7546 7547 * config/rs6000/vsx.md(xxgenpcvm_<mode>_internal): Remove TARGET_64BIT. 7548 75492020-10-28 Richard Biener <rguenther@suse.de> 7550 7551 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Dump 7552 when shared vectype update fails. 7553 75542020-10-28 Richard Biener <rguenther@suse.de> 7555 7556 * tree-vect-slp.c (vect_get_and_check_slp_defs): For skipped 7557 args just push NULLs and vect_uninitialized_def. 7558 (vect_build_slp_tree_2): Allocate skip_args for all ops 7559 and pass it down to vect_get_and_check_slp_defs. 7560 75612020-10-28 Richard Biener <rguenther@suse.de> 7562 7563 PR tree-optimization/97615 7564 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build 7565 an external from pattern defs. 7566 75672020-10-28 Richard Biener <rguenther@suse.de> 7568 7569 * tree-vect-slp.c (vect_optimize_slp): Fix iteration over 7570 all loads. 7571 75722020-10-28 Richard Biener <rguenther@suse.de> 7573 7574 * tree-vect-slp.c (vect_build_slp_instance): Split the store 7575 group at the failure boundary and also re-analyze a large enough 7576 matching rest. 7577 75782020-10-28 Richard Biener <rguenther@suse.de> 7579 7580 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment): 7581 Dump when vect_update_shared_vectype fails. 7582 75832020-10-28 Andrea Corallo <andrea.corallo@arm.com> 7584 7585 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC, __ST3_LANE_FUNC) 7586 (__ST4_LANE_FUNC): Rename the macro generating the 'q' variants 7587 into __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC so they 7588 all can be undefed at the and of the file. 7589 (vst2_lane_bf16, vst2q_lane_bf16, vst3_lane_bf16, vst3q_lane_bf16) 7590 (vst4_lane_bf16, vst4q_lane_bf16): Add new intrinsics. 7591 75922020-10-28 Andrea Corallo <andrea.corallo@arm.com> 7593 7594 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC, __LD3_LANE_FUNC) 7595 (__LD4_LANE_FUNC): Rename the macro generating the 'q' variants 7596 into __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC so they 7597 all can be undefed at the and of the file. 7598 (vld2_lane_bf16, vld2q_lane_bf16, vld3_lane_bf16, vld3q_lane_bf16) 7599 (vld4_lane_bf16, vld4q_lane_bf16): Add new intrinsics. 7600 76012020-10-28 Jakub Jelinek <jakub@redhat.com> 7602 7603 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ALLOCATE. 7604 * tree.h (OMP_CLAUSE_ALLOCATE_ALLOCATOR, 7605 OMP_CLAUSE_ALLOCATE_COMBINED): Define. 7606 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add allocate 7607 clause. 7608 (walk_tree_1): Handle OMP_CLAUSE_ALLOCATE. 7609 * tree-pretty-print.c (dump_omp_clause): Likewise. 7610 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses, 7611 gimplify_omp_for): Likewise. 7612 * tree-nested.c (convert_nonlocal_omp_clauses, 7613 convert_local_omp_clauses): Likewise. 7614 * omp-low.c (scan_sharing_clauses): Likewise. 7615 76162020-10-28 Jakub Jelinek <jakub@redhat.com> 7617 7618 * omp-offload.c (omp_declare_target_tgt_fn_r): Handle direct calls to 7619 declare variant base functions. 7620 76212020-10-28 Jakub Jelinek <jakub@redhat.com> 7622 7623 PR lto/96680 7624 * lto-streamer.h (omp_lto_output_declare_variant_alt, 7625 omp_lto_input_declare_variant_alt): Declare variant. 7626 * symtab.c (symtab_node::get_partitioning_class): Return 7627 SYMBOL_DUPLICATE for declare_variant_alt nodes. 7628 * passes.c (ipa_write_summaries): Add declare_variant_alt to 7629 partition. 7630 * lto-cgraph.c (output_refs): Call omp_lto_output_declare_variant_alt 7631 on declare_variant_alt nodes. 7632 (input_refs): Call omp_lto_input_declare_variant_alt on 7633 declare_variant_alt nodes. 7634 * lto-streamer-out.c (output_function): Don't call 7635 collect_block_tree_leafs if DECL_INITIAL is error_mark_node. 7636 (lto_output): Call output_function even for declare_variant_alt 7637 nodes. 7638 * omp-general.c (omp_lto_output_declare_variant_alt, 7639 omp_lto_input_declare_variant_alt): New functions. 7640 76412020-10-28 Jakub Jelinek <jakub@redhat.com> 7642 7643 * wide-int.cc (wi::set_bit_large): Call canonize unless setting 7644 msb bit and clearing bits above it. 7645 76462020-10-28 Andrew MacLeod <amacleod@redhat.com> 7647 7648 * gimple-range-gori.cc (gori_compute_cache::cache_stmt): Accumulate 7649 return values and only set cache when everything returned true. 7650 * gimple-range.cc (get_tree_range): Set the return range to UNDEFINED 7651 when the range isn't supported. 7652 (gimple_ranger::calc_stmt): Return varying if the type is supported, 7653 even if the stmt processing failed. False otherwise. 7654 (range_of_builtin_ubsan_call): Don't use gcc_assert. 7655 (range_of_builtin_call): Ditto. 7656 (gimple_ranger::range_of_cond_expr): Ditto. 7657 (gimple_ranger::range_of_expr): Ditto 7658 (gimple_ranger::range_on_entry): Ditto. 7659 (gimple_ranger::range_on_exit): Ditto. 7660 (gimple_ranger::range_on_edge): DItto. 7661 (gimple_ranger::range_of_stmt): Don't use gcc_assert, and initialize 7662 return value to UNDEFINED. 7663 76642020-10-27 Andreas Krebbel <krebbel@linux.ibm.com> 7665 7666 PR rtl-optimization/97497 7667 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Do not 7668 return true for r12 when -fpic is used. 7669 76702020-10-27 Tamar Christina <tamar.christina@arm.com> 7671 7672 PR target/97535 7673 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Use unsigned 7674 arithmetic in check. 7675 76762020-10-27 Andrea Corallo <andrea.corallo@arm.com> 7677 7678 * config/aarch64/arm_neon.h (vcopy_lane_bf16, vcopyq_lane_bf16) 7679 (vcopyq_laneq_bf16, vcopy_laneq_bf16): New intrinsics. 7680 76812020-10-27 Olivier Hainque <hainque@adacore.com> 7682 7683 * config/vxworks.h (VX_CPU_PREFIX): #define here. 7684 * config/rs6000/vxworks.h: Remove #definition. 7685 76862020-10-27 Olivier Hainque <hainque@adacore.com> 7687 7688 * config/rs6000/vxworks.h (CPP_SPEC): Fix macro definition 7689 for -mcpu=e6500. 7690 76912020-10-27 Richard Biener <rguenther@suse.de> 7692 7693 * tree-vect-slp.c (vect_build_slp_instance): Use ceil_log2 7694 to compute maximum group-size. 7695 76962020-10-27 Jan Hubicka <jh@suse.cz> 7697 7698 PR ipa/97586 7699 * ipa-modref-tree.h (modref_tree::remap_params): New member function. 7700 * ipa-modref.c (modref_summaries_lto::duplicate): Check that 7701 optimization summaries are not duplicated. 7702 (remap_arguments): Remove. 7703 (modref_transform): Rename to ... 7704 (update_signature): ... this one; handle also lto summary. 7705 (pass_ipa_modref::execute): Update signatures here rather 7706 than in transform hook. 7707 77082020-10-27 Richard Biener <rguenther@suse.de> 7709 7710 * tree-vect-slp.c (vect_slp_bbs): Remove no-op 7711 slp-max-insns-in-bb check. 7712 (vect_slp_function): Dump when splitting the function. 7713 Adjust the split condition for control altering stmts. 7714 * params.opt (-param=slp-max-insns-in-bb): Remove. 7715 * doc/invoke.texi (-param=slp-max-insns-in-bb): Likewise. 7716 77172020-10-27 Richard Biener <rguenther@suse.de> 7718 7719 * gimple.h (gimple_expr_type): For PHIs return the type 7720 of the result. 7721 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): 7722 Make sure edge order into copied loop headers line up with the 7723 originals. 7724 * tree-vect-loop.c (vect_transform_cycle_phi): Handle nested 7725 loops with SLP. 7726 (vectorizable_phi): New function. 7727 (vectorizable_live_operation): For BB vectorization compute insert 7728 location here. 7729 * tree-vect-slp.c (vect_free_slp_tree): Deal with NULL 7730 SLP_TREE_CHILDREN entries. 7731 (vect_create_new_slp_node): Add overloads with pre-existing node 7732 argument. 7733 (vect_print_slp_graph): Likewise. 7734 (vect_mark_slp_stmts): Likewise. 7735 (vect_mark_slp_stmts_relevant): Likewise. 7736 (vect_gather_slp_loads): Likewise. 7737 (vect_optimize_slp): Likewise. 7738 (vect_slp_analyze_node_operations): Likewise. 7739 (vect_bb_slp_scalar_cost): Likewise. 7740 (vect_remove_slp_scalar_calls): Likewise. 7741 (vect_get_and_check_slp_defs): Handle PHIs. 7742 (vect_build_slp_tree_1): Handle PHIs. 7743 (vect_build_slp_tree_2): Continue SLP build, following PHI 7744 arguments. Fix memory leak. 7745 (vect_build_slp_tree): Put stub node into the hash-map so 7746 we can discover cycles directly. 7747 (vect_build_slp_instance): Set the backedge SLP def for 7748 reduction chains. 7749 (vect_analyze_slp_backedges): Remove. 7750 (vect_analyze_slp): Do not call it. 7751 (vect_slp_convert_to_external): Release SLP_TREE_LOAD_PERMUTATION. 7752 (vect_slp_analyze_node_operations): Handle stray failed 7753 backedge defs by failing. 7754 (vect_slp_build_vertices): Adjust leaf condition. 7755 (vect_bb_slp_mark_live_stmts): Handle PHIs, use visited 7756 hash-set to handle cycles. 7757 (vect_slp_analyze_operations): Adjust. 7758 (vect_bb_partition_graph_r): Likewise. 7759 (vect_slp_function): Adjust split condition to allow CFG 7760 merges. 7761 (vect_schedule_slp_instance): Rename to ... 7762 (vect_schedule_slp_node): ... this. Move DFS walk to ... 7763 (vect_schedule_scc): ... this new function. 7764 (vect_schedule_slp): Call it. Remove ad-hoc vectorized 7765 backedge fill code. 7766 * tree-vect-stmts.c (vect_analyze_stmt): Call 7767 vectorizable_phi. 7768 (vect_transform_stmt): Likewise. 7769 (vect_is_simple_use): Handle vect_backedge_def. 7770 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Only 7771 set loop header PHIs to vect_unknown_def_type for loop 7772 vectorization. 7773 * tree-vectorizer.h (enum vect_def_type): Add vect_backedge_def. 7774 (enum stmt_vec_info_type): Add phi_info_type. 7775 (vectorizable_phi): Declare. 7776 77772020-10-27 Richard Biener <rguenther@suse.de> 7778 7779 * tree-vect-slp.c (vect_build_slp_tree_2): When vectorizing 7780 BBs splat uniform operands and stop SLP discovery. 7781 77822020-10-27 Iain Buclaw <ibuclaw@gdcproject.org> 7783 7784 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE): 7785 Remove. 7786 * config/glibc-d.c (glibc_d_critsec_size): Likewise. 7787 (TARGET_D_CRITSEC_SIZE): Likewise. 7788 * config/i386/linux-common.h (GNU_USER_TARGET_D_CRITSEC_SIZE): 7789 Likewise. 7790 * config/sol2-d.c (solaris_d_critsec_size): Likewise. 7791 (TARGET_D_CRITSEC_SIZE): Likewise. 7792 * doc/tm.texi.in (TARGET_D_CRITSEC_SIZE): Likewise. 7793 * doc/tm.texi: Regenerate. 7794 77952020-10-27 Martin Liska <mliska@suse.cz> 7796 7797 PR gcov-profile/97461 7798 * gcov-io.h (GCOV_PREALLOCATED_KVP): Pre-allocate 64 7799 static counters. 7800 78012020-10-27 Jan Hubicka <jh@suse.cz> 7802 7803 * tree-ssa-alias.c (attr_fnspec::verify): Re-enabl checking. 7804 78052020-10-27 Jan Hubicka <jh@suse.cz> 7806 7807 * builtin-attrs.def (STRERRNOC): New macro. 7808 (STRERRNOP): New macro. 7809 (ATTR_ERRNOCONST_NOTHROW_LEAF_LIST): New attr list. 7810 (ATTR_ERRNOPURE_NOTHROW_LEAF_LIST): New attr list. 7811 * builtins.def (ATTR_MATHFN_ERRNO): Use 7812 ATTR_ERRNOCONST_NOTHROW_LEAF_LIST. 7813 (ATTR_MATHFN_FPROUNDING_ERRNO): Use ATTR_ERRNOCONST_NOTHROW_LEAF_LIST 7814 or ATTR_ERRNOPURE_NOTHROW_LEAF_LIST. 7815 78162020-10-27 Kito Cheng <kito.cheng@sifive.com> 7817 7818 * common/config/riscv/riscv-common.c (opt_var_ref_t): New. 7819 (riscv_ext_flag_table_t): New. 7820 (riscv_ext_flag_table): New. 7821 (riscv_parse_arch_string): Pass gcc_options* instead of 7822 &opts->x_target_flags only, and using riscv_arch_option_table to 7823 setup flags. 7824 (riscv_handle_option): Update argument for riscv_parse_arch_string. 7825 (riscv_expand_arch): Ditto. 7826 (riscv_expand_arch_from_cpu): Ditto. 7827 78282020-10-27 Jan Hubicka <jh@suse.cz> 7829 7830 * tree-ssa-ccp.c (evaluate_stmt): Use EAF_RETURN_ARG; do not handle 7831 string buitings specially. 7832 78332020-10-27 Jan Hubicka <jh@suse.cz> 7834 7835 * tree.c (set_call_expr_flags): Fix string for ECF_RET1. 7836 (build_common_builtin_nodes): Do not set ECF_RET1 for memcpy, memmove, 7837 and memset. They are handled by builtin_fnspec. 7838 78392020-10-27 Jan Hubicka <jh@suse.cz> 7840 7841 * builtins.c (builtin_fnspec): Add bzero, memcmp, memcmp_eq, bcmp, 7842 strncmp, strncmp_eq, strncasecmp, rindex, strlen, strlnen, strcasecmp, 7843 strcspn, strspn, strcmp, strcmp_eq. 7844 78452020-10-27 Richard Biener <rguenther@suse.de> 7846 7847 * tree-vectorizer.h (slp_tree_pool): Declare. 7848 (_slp_tree::operator new): Likewise. 7849 (_slp_tree::operator delete): Likewise. 7850 * tree-vectorizer.c (vectorize_loops): Allocate and free the 7851 slp_tree_pool. 7852 (pass_slp_vectorize::execute): Likewise. 7853 * tree-vect-slp.c (slp_tree_pool): Define. 7854 (_slp_tree::operator new): Likewise. 7855 (_slp_tree::operator delete): Likewise. 7856 78572020-10-27 Martin Liska <mliska@suse.cz> 7858 7859 * lto-wrapper.c (run_gcc): Do not use sub-make when jobserver is 7860 not detected properly. 7861 78622020-10-27 Martin Liska <mliska@suse.cz> 7863 7864 * symbol-summary.h (call_summary_base): Pass symtab hooks to 7865 base and register (or unregister) hooks directly. 7866 78672020-10-27 Martin Liska <mliska@suse.cz> 7868 7869 * symbol-summary.h (function_summary_base::unregister_hooks): 7870 Call disable_insertion_hook and disable_duplication_hook. 7871 (function_summary_base::symtab_insertion): New field. 7872 (function_summary_base::symtab_removal): Likewise. 7873 (function_summary_base::symtab_duplication): Likewise. 7874 Register hooks in function_summary_base and directly register 7875 (or unregister) hooks. 7876 78772020-10-26 Andrew MacLeod <amacleod@redhat.com> 7878 7879 PR tree-optimization/97567 7880 * gimple-range-gori.cc (gori_compute::logical_combine): Union the 7881 ranges of operand1 and operand2, not intersect. 7882 78832020-10-26 Jan Hubicka <jh@suse.cz> 7884 7885 * attr-fnspec.h: Update toplevel comment. 7886 (attr_fnspec::attr_fnspec): New constructor. 7887 (attr_fnspec::arg_read_p, 7888 attr_fnspec::arg_written_p, 7889 attr_fnspec::arg_access_size_given_by_arg_p, 7890 attr_fnspec::arg_single_access_p 7891 attr_fnspec::loads_known_p 7892 attr_fnspec::stores_known_p, 7893 attr_fnspec::clobbers_errno_p): New member functions. 7894 (gimple_call_fnspec): Declare. 7895 (builtin_fnspec): Declare. 7896 * builtins.c: Include attr-fnspec.h 7897 (builtin_fnspec): New function. 7898 * builtins.def (BUILT_IN_MEMCPY): Do not specify RET1 fnspec. 7899 (BUILT_IN_MEMMOVE): Do not specify RET1 fnspec. 7900 (BUILT_IN_MEMSET): Do not specify RET1 fnspec. 7901 (BUILT_IN_STRCAT): Do not specify RET1 fnspec. 7902 (BUILT_IN_STRCPY): Do not specify RET1 fnspec. 7903 (BUILT_IN_STRNCAT): Do not specify RET1 fnspec. 7904 (BUILT_IN_STRNCPY): Do not specify RET1 fnspec. 7905 (BUILT_IN_MEMCPY_CHK): Do not specify RET1 fnspec. 7906 (BUILT_IN_MEMMOVE_CHK): Do not specify RET1 fnspec. 7907 (BUILT_IN_MEMSET_CHK): Do not specify RET1 fnspec. 7908 (BUILT_IN_STRCAT_CHK): Do not specify RET1 fnspec. 7909 (BUILT_IN_STRCPY_CHK): Do not specify RET1 fnspec. 7910 (BUILT_IN_STRNCAT_CHK): Do not specify RET1 fnspec. 7911 (BUILT_IN_STRNCPY_CHK): Do not specify RET1 fnspec. 7912 * gimple.c (gimple_call_fnspec): Return attr_fnspec. 7913 (gimple_call_arg_flags): Update. 7914 (gimple_call_return_flags): Update. 7915 * tree-ssa-alias.c (check_fnspec): New function. 7916 (ref_maybe_used_by_call_p_1): Use fnspec for builtin handling. 7917 (call_may_clobber_ref_p_1): Likewise. 7918 (attr_fnspec::verify): Update verifier. 7919 * calls.c (decl_fnspec): New function. 7920 (decl_return_flags): Use it. 7921 79222020-10-26 Aldy Hernandez <aldyh@redhat.com> 7923 7924 PR tree-optimization/97555 7925 * range-op.cc (range_tests): Test 1-bit signed invert. 7926 * value-range.cc (subtract_one): Adjust comment. 7927 (add_one): New. 7928 (irange::invert): Call add_one. 7929 79302020-10-26 Jan Hubicka <jh@suse.cz> 7931 7932 * cgraph.h (cgraph_node::optimize_for_size_p): Return 7933 optimize_size_level. 7934 (cgraph_node::optimize_for_size_p): Update. 7935 * coretypes.h (enum optimize_size_level): New enum. 7936 * predict.c (unlikely_executed_edge_p): Microoptimize. 7937 (optimize_function_for_size_p): Return optimize_size_level. 7938 (optimize_bb_for_size_p): Likewise. 7939 (optimize_edge_for_size_p): Likewise. 7940 (optimize_insn_for_size_p): Likewise. 7941 (optimize_loop_nest_for_size_p): Likewise. 7942 * predict.h (optimize_function_for_size_p): Update declaration. 7943 (optimize_bb_for_size_p): Update declaration. 7944 (optimize_edge_for_size_p): Update declaration. 7945 (optimize_insn_for_size_p): Update declaration. 7946 (optimize_loop_for_size_p): Update declaration. 7947 (optimize_loop_nest_for_size_p): Update declaration. 7948 79492020-10-26 Richard Biener <rguenther@suse.de> 7950 7951 * tree-vect-slp.c (enum slp_instance_kind): New. 7952 (vect_build_slp_instance): Split out from... 7953 (vect_analyze_slp_instance): ... this. 7954 79552020-10-26 Andrew MacLeod <amacleod@redhat.com> 7956 7957 * gimple-range.cc (range_of_builtin_call): Initialize zerov to 0. 7958 79592020-10-26 Jan Hubicka <jh@suse.cz> 7960 7961 PR ipa/97576 7962 * cgraphclones.c (cgraph_node::materialize_clone): Clear stmt 7963 references. 7964 * cgraphunit.c (mark_functions_to_output): Do not clear them here. 7965 * ipa-inline-transform.c (inline_transform): Clear stmt references. 7966 * symtab.c (symtab_node::clear_stmts_in_references): Make recursive 7967 for clones. 7968 * tree-ssa-structalias.c (ipa_pta_execute): Do not clear references. 7969 79702020-10-26 Zhiheng Xie <xiezhiheng@huawei.com> 7971 Nannan Zheng <zhengnannan@huawei.com> 7972 7973 * config/aarch64/aarch64-builtins.c: Add FLAG STORE. 7974 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 7975 for store intrinsics. 7976 79772020-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7978 7979 PR tree-optimization/97546 7980 * gimple-ssa-store-merging.c (find_bswap_or_nop): Return NULL if 7981 type is not INTEGER_CST. 7982 79832020-10-26 Richard Biener <rguenther@suse.de> 7984 7985 PR middle-end/97521 7986 * expr.c (const_scalar_mask_from_tree): Remove. 7987 (expand_expr_real_1): Always VIEW_CONVERT integer mode 7988 vector constants to an integer type. 7989 * tree.c (build_truth_vector_type_for_mode): Use a single-bit 7990 boolean component type for non-vector-mode mask_mode. 7991 79922020-10-26 H.J. Lu <hjl.tools@gmail.com> 7993 7994 PR target/95458 7995 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): 7996 Return false for -mno-inline-all-stringops. 7997 79982020-10-26 H.J. Lu <hjl.tools@gmail.com> 7999 8000 PR target/95151 8001 * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): New 8002 function. 8003 * config/i386/i386-protos.h (ix86_expand_cmpstrn_or_cmpmem): New 8004 prototype. 8005 * config/i386/i386.md (cmpmemsi): New pattern. 8006 80072020-10-26 Andreas Krebbel <krebbel@linux.ibm.com> 8008 8009 * config/s390/vector.md ("vcond_mask_<mode><mode>"): New expander. 8010 80112020-10-26 Richard Biener <rguenther@suse.de> 8012 8013 * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte 8014 quantities to avoid overflow. 8015 80162020-10-26 Richard Biener <rguenther@suse.de> 8017 8018 PR tree-optimization/97539 8019 * tree-vect-loop-manip.c (vect_do_peeling): Reset out-of-loop 8020 debug uses before peeling. 8021 80222020-10-26 Jan Hubicka <hubicka@ucw.cz> 8023 8024 * cgraph.h (struct cgraph_node): Make ipa_transforms_to_apply vl_ptr. 8025 * ipa-inline-analysis.c (initialize_growth_caches): Disable insertion 8026 and duplication hooks. 8027 * ipa-inline-transform.c (clone_inlined_nodes): Clear 8028 ipa_transforms_to_apply. 8029 (save_inline_function_body): Disable insertion hoook for 8030 ipa_saved_clone_sources. 8031 * ipa-prop.c (ipcp_transformation_initialize): Disable insertion hook. 8032 * ipa-prop.h (ipa_node_params_t): Disable insertion hook. 8033 * ipa-reference.c (propagate): Disable insertion hoook. 8034 * ipa-sra.c (ipa_sra_summarize_function): Move out of anonymous 8035 namespace. 8036 (ipa_sra_function_summaries::insert): New virtual function. 8037 * passes.c (execute_one_pass): Do not add transforms to inline clones. 8038 * symbol-summary.h (function_summary_base): Make insert and duplicate 8039 hooks fail instead of silently producing empty summaries; add way to 8040 disable duplication hooks 8041 (call_summary_base): Likewise. 8042 * tree-nested.c (nested_function_info::get_create): Disable insertion 8043 hooks 8044 (maybe_record_nested_function): Likewise. 8045 80462020-10-26 Xionghu Luo <luoxhu@linux.ibm.com> 8047 8048 * cfg.c (debug_bb): New overloaded function. 8049 (debug_bb_n): New overloaded function. 8050 * cfg.h (debug_bb): New declaration. 8051 (debug_bb_n): New declaration. 8052 * print-rtl.c (debug_bb_slim): Call debug_bb with flags. 8053 80542020-10-24 H.J. Lu <hjl.tools@gmail.com> 8055 8056 PR bootstrap/97451 8057 * configure.ac (HAVE_AS_WORKING_DWARF_4_FLAG): Renamed to ... 8058 (HAVE_AS_WORKING_DWARF_N_FLAG): This. Don't define if there is 8059 an extra assembly input file in debug info. Replace success 8060 with dwarf4_success in the 32-bit --gdwarf-4 check. 8061 * dwarf2out.c (asm_outputs_debug_line_str): Check 8062 HAVE_AS_WORKING_DWARF_N_FLAG instead of 8063 HAVE_AS_WORKING_DWARF_4_FLAG. 8064 * gcc.c (ASM_DEBUG_SPEC): Likewise. 8065 (ASM_DEBUG_OPTION_SPEC): Likewise. 8066 * config.in: Regenerated. 8067 * configure: Likewise. 8068 80692020-10-24 Aldy Hernandez <aldyh@redhat.com> 8070 8071 PR tree-optimization/97538 8072 * calls.c (get_size_range): Handle undefined ranges. 8073 80742020-10-24 Martin Liska <mliska@suse.cz> 8075 8076 * cgraph.c (cgraph_node::former_thunk_p): Move out of CHECKING_P 8077 macro. 8078 80792020-10-24 Alan Modra <amodra@gmail.com> 8080 8081 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Limit 8082 AND addressing to just lvx/stvx style addresses. 8083 80842020-10-24 Alan Modra <amodra@gmail.com> 8085 8086 * config/rs6000/rs6000.md (cstore<mode>4): Don't call 8087 rs6000_emit_int_cmove for power10 when -mno-isel. 8088 80892020-10-23 Jan Hubicka <hubicka@ucw.cz> 8090 8091 * Makefile.in: Add symtab-thunks.o 8092 (GTFILES): Add symtab-thunks.h and symtab-thunks.cc; remove cgraphunit.c 8093 * cgraph.c: Include symtab-thunks.h. 8094 (cgraph_node::create_thunk): Update 8095 (symbol_table::create_edge): Update 8096 (cgraph_node::dump): Update 8097 (cgraph_node::call_for_symbol_thunks_and_aliases): Update 8098 (set_nothrow_flag_1): Update 8099 (set_malloc_flag_1): Update 8100 (set_const_flag_1): Update 8101 (collect_callers_of_node_1): Update 8102 (clone_of_p): Update 8103 (cgraph_node::verify_node): Update 8104 (cgraph_node::function_symbol): Update 8105 (cgraph_c_finalize): Call thunk_info::release. 8106 (cgraph_node::has_thunk_p): Update 8107 (cgraph_node::former_thunk_p): Move here from cgraph.h; reimplement. 8108 * cgraph.h (struct cgraph_thunk_info): Rename to symtab-thunks.h. 8109 (cgraph_node): Remove thunk field; add thunk bitfield. 8110 (cgraph_node::expand_thunk): Move to symtab-thunks.h 8111 (symtab_thunks_cc_finalize): Declare. 8112 (cgraph_node::has_gimple_body_p): Update. 8113 (cgraph_node::former_thunk_p): Update. 8114 * cgraphclones.c: Include symtab-thunks.h. 8115 (duplicate_thunk_for_node): Update. 8116 (cgraph_edge::redirect_callee_duplicating_thunks): Update. 8117 (cgraph_node::expand_all_artificial_thunks): Update. 8118 (cgraph_node::create_edge_including_clones): Update. 8119 * cgraphunit.c: Include symtab-thunks.h. 8120 (vtable_entry_type): Move to symtab-thunks.c. 8121 (cgraph_node::analyze): Update. 8122 (analyze_functions): Update. 8123 (mark_functions_to_output): Update. 8124 (thunk_adjust): Move to symtab-thunks.c 8125 (cgraph_node::expand_thunk): Move to symtab-thunks.c 8126 (cgraph_node::assemble_thunks_and_aliases): Update. 8127 (output_in_order): Update. 8128 (cgraphunit_c_finalize): Do not clear vtable_entry_type. 8129 (cgraph_node::create_wrapper): Update. 8130 * gengtype.c (open_base_files): Add symtab-thunks.h 8131 * ipa-comdats.c (propagate_comdat_group): UPdate. 8132 (ipa_comdats): Update. 8133 * ipa-cp.c (determine_versionability): UPdate. 8134 (gather_caller_stats): Update. 8135 (count_callers): Update 8136 (set_single_call_flag): Update 8137 (initialize_node_lattices): Update 8138 (call_passes_through_thunk_p): Update 8139 (call_passes_through_thunk): Update 8140 (propagate_constants_across_call): Update 8141 (find_more_scalar_values_for_callers_subset): Update 8142 (has_undead_caller_from_outside_scc_p): Update 8143 * ipa-fnsummary.c (evaluate_properties_for_edge): Update. 8144 (compute_fn_summary): Update. 8145 (inline_analyze_function): Update. 8146 * ipa-icf.c: Include symtab-thunks.h. 8147 (sem_function::equals_wpa): Update. 8148 (redirect_all_callers): Update. 8149 (sem_function::init): Update. 8150 (sem_function::parse): Update. 8151 * ipa-inline-transform.c: Include symtab-thunks.h. 8152 (inline_call): Update. 8153 (save_inline_function_body): Update. 8154 (preserve_function_body_p): Update. 8155 * ipa-inline.c (inline_small_functions): Update. 8156 * ipa-polymorphic-call.c: Include alloc-pool.h, symbol-summary.h, 8157 symtab-thunks.h 8158 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Update. 8159 * ipa-pure-const.c: Include symtab-thunks.h. 8160 (analyze_function): Update. 8161 * ipa-sra.c (check_for_caller_issues): Update. 8162 * ipa-utils.c (ipa_reverse_postorder): Update. 8163 (ipa_merge_profiles): Update. 8164 * ipa-visibility.c (non_local_p): Update. 8165 (cgraph_node::local_p): Update. 8166 (function_and_variable_visibility): Update. 8167 * ipa.c (symbol_table::remove_unreachable_nodes): Update. 8168 * lto-cgraph.c: Include alloc-pool.h, symbol-summary.h and 8169 symtab-thunks.h 8170 (lto_output_edge): Update. 8171 (lto_output_node): Update. 8172 (compute_ltrans_boundary): Update. 8173 (output_symtab): Update. 8174 (verify_node_partition): Update. 8175 (input_overwrite_node): Update. 8176 (input_node): Update. 8177 * lto-streamer-in.c (fixup_call_stmt_edges): Update. 8178 * symtab-thunks.cc: New file. 8179 * symtab-thunks.h: New file. 8180 * toplev.c (toplev::finalize): Call symtab_thunks_cc_finalize. 8181 * trans-mem.c (ipa_tm_mayenterirr_function): Update. 8182 (ipa_tm_execute): Update. 8183 * tree-inline.c (expand_call_inline): Update. 8184 * tree-nested.c (create_nesting_tree): Update. 8185 (convert_all_function_calls): Update. 8186 (gimplify_all_functions): Update. 8187 * tree-profile.c (tree_profiling): Update. 8188 * tree-ssa-structalias.c (associate_varinfo_to_alias): Update. 8189 * tree.c (free_lang_data_in_decl): Update. 8190 * value-prof.c (init_node_map): Update. 8191 81922020-10-23 Marek Polacek <polacek@redhat.com> 8193 8194 PR c++/91741 8195 * doc/invoke.texi: Document -Wsizeof-array-div. 8196 81972020-10-23 Martin Sebor <msebor@redhat.com> 8198 8199 PR middle-end/97552 8200 * attribs.c (init_attr_rdwr_indices): Handle static VLA parameters. 8201 82022020-10-23 Douglas Rupp <rupp@adacore.com> 8203 8204 * config/vxworks.h (VXWORKS_NET_LIBS_RTP): Use -lrtnet if 8205 rtnetStackLib.h is available,fallback to -lnet otherwise. 8206 82072020-10-23 Douglas Rupp <rupp@adacore.com> 8208 8209 * gcc.c (if-exists-then-else): New built-in spec function. 8210 * doc/invoke.texi: Document it. 8211 82122020-10-23 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> 8213 8214 * doc/extend.texi (PowerPC Built-in Functions): Replace 8215 extraneous characters with whitespace. 8216 82172020-10-23 Martin Liska <mliska@suse.cz> 8218 8219 * gcov.c (read_count_file): Never call gcov_sync with a negative 8220 value. 8221 82222020-10-23 Jakub Jelinek <jakub@redhat.com> 8223 8224 * Makefile.in (PLUGIN_HEADERS): Add gomp-constants.h and $(EXPR_H). 8225 (s-header-vars): Accept not just spaces but also tabs between *_H name 8226 and =. Handle common/config/ headers similarly to config. Don't 8227 throw away everything from first ... to last / on the remaining 8228 string, instead skip just ... to corresponding last / without 8229 intervening spaces and tabs. 8230 (install-plugin): Treat common/config headers like config headers. 8231 * config/i386/t-i386 (TM_H): Add 8232 $(srcdir)/common/config/i386/i386-cpuinfo.h. 8233 82342020-10-23 Jakub Jelinek <jakub@redhat.com> 8235 8236 PR tree-optimization/97164 8237 * stor-layout.c (layout_type): Also reject arrays where element size 8238 is constant, but not a multiple of element alignment. 8239 82402020-10-23 Eric Botcazou <ebotcazou@adacore.com> 8241 8242 * tree-ssa-loop-ivopts.c (analyze_and_mark_doloop_use): Bail out if 8243 the loop is subject to a pragma Unroll with no specific count. 8244 82452020-10-23 Dennis Zhang <dennis.zhang@arm.com> 8246 8247 * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction 8248 using expression 'minus'. 8249 (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec. 8250 * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed. 8251 (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16. 8252 * config/arm/vec-common.md (sub<mode>3): Use the new mode macros 8253 ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL. 8254 82552020-10-23 Martin Liska <mliska@suse.cz> 8256 8257 PR lto/97524 8258 * lto-wrapper.c (make_exists): New function. 8259 (run_gcc): Use it to check that make is present and working 8260 for parallel execution. 8261 82622020-10-23 Richard Biener <rguenther@suse.de> 8263 8264 Revert: 8265 2020-10-22 Richard Biener <rguenther@suse.de> 8266 8267 PR middle-end/97521 8268 * expr.c (expand_expr_real_1): Be more careful when 8269 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs. 8270 82712020-10-23 Kewen Lin <linkw@linux.ibm.com> 8272 8273 * tree-vect-loop.c (vect_transform_loop): Remove the redundant 8274 LOOP_VINFO_FULLY_MASKED_P check. 8275 82762020-10-23 Dennis Zhang <dennis.zhang@arm.com> 8277 8278 * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction 8279 using expression 'minus'. 8280 (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec. 8281 * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed. 8282 (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16. 8283 * config/arm/vec-common.md (sub<mode>3): Use the new mode macros 8284 ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL. 8285 82862020-10-22 Alan Modra <amodra@gmail.com> 8287 8288 * config/rs6000/rs6000.c (rs6000_emit_xxspltidp_v2df): Delete 8289 debug printf. Remove trailing ".\n" from inform message. 8290 Break long line. 8291 82922020-10-22 Andrew MacLeod <amacleod@redhat.com> 8293 8294 * gimple-range-gori.cc (is_gimple_logical_p): Use types_compatible_p 8295 for logical compatibility. 8296 (logical_stmt_cache::cacheable_p): Ditto. 8297 82982020-10-22 Jan Hubicka <hubicka@ucw.cz> 8299 8300 * cgraph.c (cgraph_node::get_untransformed_body): Perform lazy 8301 clone materialization. 8302 * cgraph.h (cgraph_node::materialize_clone): Declare. 8303 (symbol_table::materialize_all_clones): Remove. 8304 * cgraphclones.c (cgraph_materialize_clone): Turn to ... 8305 (cgraph_node::materialize_clone): .. this one; move here 8306 dumping from symbol_table::materialize_all_clones. 8307 (symbol_table::materialize_all_clones): Remove. 8308 * cgraphunit.c (mark_functions_to_output): Clear stmt references. 8309 (cgraph_node::expand): Initialize bitmaps early; 8310 do not call execute_all_ipa_transforms if there are no transforms. 8311 * ipa-inline-transform.c (save_inline_function_body): Fix formating. 8312 (inline_transform): Materialize all clones before function is modified. 8313 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): 8314 Materialize clone if needed. 8315 * ipa.c (class pass_materialize_all_clones): Remove. 8316 (make_pass_materialize_all_clones): Remove. 8317 * passes.c (execute_all_ipa_transforms): Materialize all clones. 8318 * passes.def: Remove pass_materialize_all_clones. 8319 * tree-pass.h (make_pass_materialize_all_clones): Remove. 8320 * tree-ssa-structalias.c (ipa_pta_execute): Clear refs. 8321 83222020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com> 8323 8324 * config/rs6000/altivec.h (vec_xl_zext, vec_xl_sext, vec_xst_trunc): 8325 New defines. 8326 * config/rs6000/rs6000-builtin.def (BU_P10V_OVERLOAD_X): New builtin 8327 macro. 8328 (BU_P10V_AV_X): New builtin macro. 8329 (se_lxvrhbx, se_lxrbhx, se_lxvrwx, se_lxvrdx): Define internal names 8330 for load and sign extend vector element. 8331 (ze_lxvrbx, ze_lxvrhx, ze_lxvrwx, ze_lxvrdx): Define internal names 8332 for load and zero extend vector element. 8333 (tr_stxvrbx, tr_stxvrhx, tr_stxvrwx, tr_stxvrdx): Define internal names 8334 for truncate and store vector element. 8335 (se_lxvrx, ze_lxvrx, tr_stxvrx): Define internal names for overloaded 8336 load/store rightmost element. 8337 * config/rs6000/rs6000-call.c (altivec_builtin_types): Define the 8338 internal monomorphs P10_BUILTIN_SE_LXVRBX, P10_BUILTIN_SE_LXVRHX, 8339 P10_BUILTIN_SE_LXVRWX, P10_BUILTIN_SE_LXVRDX, 8340 P10_BUILTIN_ZE_LXVRBX, P10_BUILTIN_ZE_LXVRHX, P10_BUILTIN_ZE_LXVRWX, 8341 P10_BUILTIN_ZE_LXVRDX, 8342 P10_BUILTIN_TR_STXVRBX, P10_BUILTIN_TR_STXVRHX, P10_BUILTIN_TR_STXVRWX, 8343 P10_BUILTIN_TR_STXVRDX, 8344 (altivec_expand_lxvr_builtin): New expansion for load element builtins. 8345 (altivec_expand_stv_builtin): Update to for truncate and store builtins. 8346 (altivec_expand_builtin): Add clases for load/store rightmost builtins. 8347 (altivec_init_builtins): Add def_builtin entries for 8348 __builtin_altivec_se_lxvrbx, __builtin_altivec_se_lxvrhx, 8349 __builtin_altivec_se_lxvrwx, __builtin_altivec_se_lxvrdx, 8350 __builtin_altivec_ze_lxvrbx, __builtin_altivec_ze_lxvrhx, 8351 __builtin_altivec_ze_lxvrwx, __builtin_altivec_ze_lxvrdx, 8352 __builtin_altivec_tr_stxvrbx, __builtin_altivec_tr_stxvrhx, 8353 __builtin_altivec_tr_stxvrwx, __builtin_altivec_tr_stxvrdx, 8354 __builtin_vec_se_lxvrx, __builtin_vec_ze_lxvrx, __builtin_vec_tr_stxvrx. 8355 * config/rs6000/vsx.md (vsx_lxvr<wd>x, vsx_stxvr<wd>x, vsx_stxvr<wd>x): 8356 New define_insn entries. 8357 * doc/extend.texi: Add documentation for vsx_xl_sext, vsx_xl_zext, 8358 and vec_xst_trunc. 8359 83602020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com> 8361 8362 * config/rs6000/vsx.md (enum unspec): Add 8363 UNSPEC_EXTENDDITI2 and UNSPEC_MTVSRD_DITI_W1 entries. 8364 (mtvsrdd_diti_w1, extendditi2_vector): New define_insns. 8365 (extendditi2): New define_expand. 8366 83672020-10-22 Alexandre Oliva <oliva@adacore.com> 8368 8369 * config/i386/mingw-w64.h (TARGET_LIBC_HAS_FUNCTION): Enable 8370 sincos optimization. 8371 83722020-10-22 Alan Modra <amodra@gmail.com> 8373 8374 * config/rs6000/vsx.md (vec_cntmb_<mode>, vec_extract_<mode>), 8375 (vec_expand_<mode>): Replace <VSX_MM_SUFFIX> with <wd>. 8376 83772020-10-22 Richard Biener <rguenther@suse.de> 8378 8379 * tree-vect-slp.c (vect_analyze_slp_instance): Refactor so 8380 computing a vector type early is not needed, for store group 8381 splitting compute a new vector type based on the desired 8382 group size. 8383 83842020-10-22 Richard Biener <rguenther@suse.de> 8385 8386 PR middle-end/97521 8387 * expr.c (expand_expr_real_1): Be more careful when 8388 expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs. 8389 83902020-10-22 David Malcolm <dmalcolm@redhat.com> 8391 8392 * ipa-modref-tree.c (selftest::test_insert_search_collapse): Fix 8393 leak. 8394 (selftest::test_merge): Fix leaks. 8395 83962020-10-22 Andreas Krebbel <krebbel@linux.ibm.com> 8397 8398 PR target/97502 8399 * config/s390/vector.md ("vec_cmp<VI_HW:mode><VI_HW:mode>") 8400 ("vec_cmpu<VI_HW:mode><VI_HW:mode>"): New expanders. 8401 84022020-10-22 Andreas Krebbel <krebbel@linux.ibm.com> 8403 8404 PR rtl-optimization/97439 8405 * dfp.c (decimal_real_maxval): Set the sign flag in the 8406 generated number. 8407 84082020-10-22 Martin Liska <mliska@suse.cz> 8409 8410 PR c/94722 8411 * cfgexpand.c (stack_protect_decl_phase): 8412 Guard with lookup_attribute("no_stack_protector") at 8413 various places. 8414 (expand_used_vars): Likewise here. 8415 * doc/extend.texi: Document no_stack_protector attribute. 8416 84172020-10-22 Martin Liska <mliska@suse.cz> 8418 8419 * cfgexpand.c: Move the enum to ... 8420 * coretypes.h (enum stack_protector): ... here. 8421 * function.c (assign_parm_adjust_stack_rtl): Use the stack_protector 8422 enum. 8423 84242020-10-22 Kito Cheng <kito.cheng@sifive.com> 8425 8426 * config/riscv/multilib-generator: Add TODO, import itertools 8427 and functools.reduce. 8428 Handle expantion operator. 8429 (LONG_EXT_PREFIXES): New. 8430 (arch_canonicalize): Update comment and improve python3 8431 debuggability/compatibility. 8432 (add_underline_prefix): New. 8433 (_expand_combination): Ditto. 8434 (unique): Ditto. 8435 (expand_combination): Ditto. 8436 84372020-10-22 Jakub Jelinek <jakub@redhat.com> 8438 8439 * tree-ssa-phiopt.c (cond_removal_in_popcount_clz_ctz_pattern): 8440 For CLZ and CTZ tests, use type temporary instead of mode. 8441 84422020-10-22 Jakub Jelinek <jakub@redhat.com> 8443 8444 * config.gcc (x86_archs): Add samuel-2, nehemiah, c7 and esther. 8445 (x86_64_archs): Add eden-x2, nano, nano-1000, nano-2000, nano-3000, 8446 nano-x2, eden-x4, nano-x4, x86-64-v2, x86-64-v3 and x86-64-v4. 8447 (i[34567]86-*-* | x86_64-*-*): Only allow x86-64-v* as argument 8448 to --with-arch_64=. 8449 84502020-10-22 Jan Hubicka <jh@suse.cz> 8451 8452 * ipa-pure-const.c (funct_state_summary_t::insert): Free stale 8453 summaries. 8454 84552020-10-22 Jan Hubicka <hubicka@ucw.cz> 8456 8457 * cgraph.c: Include tree-nested.h 8458 (cgraph_node::create): Call maybe_record_nested_function. 8459 (cgraph_node::remove): Do not remove function from nested function 8460 infos. 8461 (cgraph_node::dump): Update. 8462 (cgraph_node::unnest): Move to tree-nested.c 8463 (cgraph_node::verify_node): Update. 8464 (cgraph_c_finalize): Call nested_function_info::release. 8465 * cgraph.h (struct symtab_node): Remove nested function info. 8466 * cgraphclones.c (cgraph_node::create_clone): Do not clone nested 8467 function info. 8468 * cgraphunit.c (cgraph_node::analyze): Update. 8469 (cgraph_node::expand): Do not worry about nested functions; they are 8470 lowered. 8471 (symbol_table::finalize_compilation_unit): Call 8472 nested_function_info::release. 8473 * gimplify.c: Include tree-nested.h 8474 (unshare_body): Update. 8475 (unvisit_body): Update. 8476 * omp-offload.c (omp_discover_implicit_declare_target): Update. 8477 * tree-nested.c: Include alloc-pool.h, tree-nested.h, symbol-summary.h 8478 (nested_function_sum): New static variable. 8479 (nested_function_info::get): New member function. 8480 (nested_function_info::get_create): New member function. 8481 (unnest_function): New function. 8482 (nested_function_info::~nested_function_info): New member function. 8483 (nested_function_info::release): New function. 8484 (maybe_record_nested_function): New function. 8485 (lookup_element_for_decl): Update. 8486 (check_for_nested_with_variably_modified): Update. 8487 (create_nesting_tree): Update. 8488 (unnest_nesting_tree_1): Update. 8489 (gimplify_all_functions): Update. 8490 (lower_nested_functions): Update. 8491 * tree-nested.h (class nested_function_info): New class. 8492 (maybe_record_nested_function): Declare. 8493 (unnest_function): Declare. 8494 (first_nested_function): New inline function. 8495 (next_nested_function): New inline function. 8496 (nested_function_origin): New inline function. 8497 84982020-10-22 liuhongt <hongtao.liu@intel.com> 8499 8500 PR rtl-optimization/97249 8501 * simplify-rtx.c (simplify_binary_operation_1): Simplify 8502 vec_select of a subreg of X to a vec_select of X. 8503 85042020-10-22 liuhongt <hongtao.liu@intel.com> 8505 8506 PR target/87767 8507 * config/i386/constraints.md ("Br"): New special memory 8508 constraint. 8509 * config/i386/i386-expand.c (ix86_binary_operator_ok): Both 8510 source operand cannot be in memory or bcst_memory_operand. 8511 * config/i386/i386.c (ix86_print_operand): Print bcst_mem_operand. 8512 * config/i386/i386.h (VALID_BCST_MODE_P): New. 8513 * config/i386/predicates.md (bcst_mem_operand): New predicate 8514 for AVX512 embedding broadcast memory operand. 8515 (bcst_vector_operand): New predicate, vector_operand or 8516 bcst_mem_operand. 8517 * config/i386/sse.md 8518 (*<plusminus_insn><mode>3<mask_name><round_name>): Extend 8519 predicate and constraints to handle bcst_mem_operand. 8520 (*mul<mode>3<mask_name><round_name>): Ditto. 8521 (<sse>_div<mode>3<mask_name><round_name>): Ditto. 8522 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>): 8523 Ditto. 8524 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): 8525 Ditto. 8526 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): 8527 Ditto. 8528 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): 8529 Ditto. 8530 (*<plusminus_insn><mode>3): Ditto. 8531 (avx512dq_mul<mode>3<mask_name>): Ditto. 8532 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto. 8533 (*andnot<mode>3): Ditto. 8534 (<mask_codefor><code><mode>3<mask_name>): Ditto. 8535 (*sub<mode>3<mask_name>_bcst): Removed. 8536 (*add<mode>3<mask_name>_bcst): Ditto. 8537 (*mul<mode>3<mask_name>_bcst): Ditto. 8538 (*<avx512>_div<mode>3<mask_name>_bcst): Ditto. 8539 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): 8540 Ditto. 8541 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): 8542 Ditto. 8543 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): 8544 Ditto. 8545 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1): 8546 Ditto. 8547 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2): 8548 Ditto. 8549 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3): 8550 Ditto. 8551 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1): 8552 Ditto. 8553 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2): 8554 Ditto. 8555 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3): 8556 Ditto. 8557 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): 8558 Ditto. 8559 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2): 8560 Ditto. 8561 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3): 8562 Ditto. 8563 (*sub<mode>3_bcst): Ditto. 8564 (*add<mode>3_bcst): Ditto. 8565 (*avx512dq_mul<mode>3<mask_name>_bcst): Ditto. 8566 (*avx512f_mul<mode>3<mask_name>_bcst): Ditto. 8567 (*andnot<mode>3_bcst): Ditto. 8568 (*<code><mode>3_bcst): Ditto. 8569 * config/i386/subst.md (bcst_round_constraint): New subst 8570 attribute. 8571 (bcst_round_nimm_predicate): Ditto. 8572 (bcst_mask_prefix3): Ditto. 8573 (bcst_mask_prefix4): Ditto. 8574 85752020-10-22 liuhongt <hongtao.liu@intel.com> 8576 8577 PR target/87767 8578 * ira-costs.c (record_operand_costs): Extract memory operand 8579 from recog_data.operand[i] for record_address_regs. 8580 (record_reg_classes): Extract memory operand from OP for 8581 conditional judgement MEM_P. 8582 * ira.c (ira_setup_alts): Ditto. 8583 * lra-constraints.c (extract_mem_from_operand): New function. 8584 (satisfies_memory_constraint_p): Extract memory operand from 8585 OP for decompose_mem_address, return false when there's no 8586 memory operand inside OP. 8587 (process_alt_operands): Remove MEM_P (op) since it would be 8588 judged in satisfies_memory_constraint_p. 8589 * recog.c (asm_operand_ok): Extract memory operand from OP for 8590 judgement of memory_operand (OP, VOIDmode). 8591 (constrain_operands): Don't unwrapper unary operator when 8592 there's memory operand inside. 8593 * rtl.h (extract_mem_from_operand): New decl. 8594 85952020-10-22 Dennis Zhang <dennis.zhang@arm.com> 8596 8597 * config/arm/mve.md (mve_vmaxq_<supf><mode>): Replace with ... 8598 (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>): ... these new insns to 8599 use smax/umax instead of VMAXQ. 8600 (mve_vminq_<supf><mode>): Replace with ... 8601 (mve_vminq_s<mode>, mve_vminq_u<mode>): ... these new insns to 8602 use smin/umin instead of VMINQ. 8603 (mve_vmaxnmq_f<mode>): Use smax instead of VMAXNMQ_F. 8604 (mve_vminnmq_f<mode>): Use smin instead of VMINNMQ_F. 8605 * config/arm/vec-common.md (smin<mode>3): Use the new mode macros 8606 ARM_HAVE_<MODE>_ARITH. 8607 (umin<mode>3, smax<mode>3, umax<mode>3): Likewise. 8608 86092020-10-22 Andrew MacLeod <amacleod@redhat.com> 8610 8611 PR tree-optimization/97520 8612 * gimple-range.cc (range_of_non_trivial_assignment): Handle x = &a 8613 by returning a non-zero range. 8614 86152020-10-22 Dennis Zhang <dennis.zhang@arm.com> 8616 8617 * config/arm/mve.md (mve_vmulq<mode>): New entry for vmul instruction 8618 using expression 'mult'. 8619 (mve_vmulq_f<mode>): Use mult instead of VMULQ_F. 8620 * config/arm/neon.md (mul<mode>3): Removed. 8621 * config/arm/vec-common.md (mul<mode>3): Use the new mode macros 8622 ARM_HAVE_<MODE>_ARITH. Use mode iterator VDQWH instead of VALLW. 8623 86242020-10-22 Andrew MacLeod <amacleod@redhat.com> 8625 8626 PR tree-optimization/97515 8627 * value-query.cc (range_query::value_of_expr): If the result is 8628 UNDEFINED, check to see if the global value is a constant. 8629 (range_query::value_on_edge): Ditto. 8630 86312020-10-21 Jan Hubicka <hubicka@ucw.cz> 8632 8633 PR ipa/97445 8634 * ipa-inline.c (inline_insns_single): Add hint2 parameter. 8635 (inline_insns_auto): Add hint2 parameter. 8636 (can_inline_edge_by_limits_p): Update. 8637 (want_inline_small_function_p): Update. 8638 (wrapper_heuristics_may_apply): Update. 8639 86402020-10-21 Richard Biener <rguenther@suse.de> 8641 Andrew MacLeod <amacleod@redhat.com> 8642 Martin Liska <mliska@suse.cz> 8643 8644 PR target/97360 8645 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove call to 8646 build_distinct_type_copy(). 8647 86482020-10-21 Jan Hubicka <jh@suse.cz> 8649 8650 PR ipa/97445 8651 * ipa-fnsummary.c (ipa_dump_hints): Add INLINE_HINT_builtin_constant_p. 8652 (ipa_fn_summary::~ipa_fn_summary): Free builtin_constant_p_parms. 8653 (ipa_fn_summary_t::duplicate): Duplicate builtin_constant_p_parms. 8654 (ipa_dump_fn_summary): Dump builtin_constant_p_parms. 8655 (add_builtin_constant_p_parm): New function 8656 (set_cond_stmt_execution_predicate): Update builtin_constant_p_parms. 8657 (ipa_call_context::estimate_size_and_time): Set 8658 INLINE_HINT_builtin_constant_p.. 8659 (ipa_merge_fn_summary_after_inlining): Merge builtin_constant_p_parms. 8660 (inline_read_section): Read builtin_constant_p_parms. 8661 (ipa_fn_summary_write): Write builtin_constant_p_parms. 8662 * ipa-fnsummary.h (enum ipa_hints_vals): Add 8663 INLINE_HINT_builtin_constant_p. 8664 * ipa-inline.c (want_inline_small_function_p): Use 8665 INLINE_HINT_builtin_constant_p. 8666 (edge_badness): Use INLINE_HINT_builtin_constant_p. 8667 86682020-10-21 Douglas Rupp <rupp@adacore.com> 8669 8670 * config/vx-common.h (LINK_SPEC, LIB_SPEC): Remove #undef. 8671 86722020-10-21 Douglas Rupp <rupp@adacore.com> 8673 Olivier Hainque <hainque@adacore.com> 8674 8675 * config.gcc (powerpc*-wrs-vxworks7r*): New case. 8676 * config/rs6000/vxworks.h: Rework to handle VxWorks7. 8677 Refactor as common bits + vx6 vs vx7 ones. For the 8678 latter, rely essentially on the Linux configuration 8679 and adjust CPU to _VX_CPU in CPP_SPEC. Add a case 8680 for e6500. Use SUB3TARGET_OVERRIDE_OPTIONS for specifics 8681 to preserve the Linux SUBSUBTARGET_OVERRIDE_OPTIONS 8682 for vx7. 8683 86842020-10-21 Richard Biener <rguenther@suse.de> 8685 8686 PR tree-optimization/97500 8687 * tree-vect-slp.c (vect_analyze_slp_backedges): Do not 8688 fill backedges for inductions. 8689 86902020-10-21 liuhongt <hongtao.liu@intel.com> 8691 8692 PR target/97506 8693 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Move 8694 op_true to dest directly when op_true equals op_false. 8695 86962020-10-21 Jakub Jelinek <jakub@redhat.com> 8697 8698 PR tree-optimization/97503 8699 * tree-ssa-phiopt.c: Include internal-fn.h. 8700 (cond_removal_in_popcount_pattern): Rename to ... 8701 (cond_removal_in_popcount_clz_ctz_pattern): ... this. Handle not just 8702 popcount, but also clz and ctz if it has C?Z_DEFINED_VALUE_AT_ZERO 2. 8703 87042020-10-21 Richard Biener <rguenther@suse.de> 8705 8706 * cfg.c (htab_bb_copy_original_entry): Remove. 8707 (bb_copy_hasher): Likewise. 8708 (bb_original, bb_copy, loop_copy): Use 8709 hash_map<int_hash<int, -1, -2>, int>. 8710 (original_copy_bb_pool): Remove. 8711 (initialize_original_copy_tables): Adjust. 8712 (reset_original_copy_tables): Likewise. 8713 (free_original_copy_tables): Likewise. 8714 (original_copy_tables_initialized_p): Likewise. 8715 (copy_original_table_clear): Simplify. 8716 (copy_original_table_set): Likewise. 8717 (get_bb_original): Likewise. 8718 (get_bb_copy): Likewise. 8719 (get_loop_copy): Likewise. 8720 87212020-10-21 Richard Biener <rguenther@suse.de> 8722 8723 * cfghooks.c (copy_bbs): Split out loop computing new_edges. 8724 87252020-10-21 Aldy Hernandez <aldyh@redhat.com> 8726 8727 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info): 8728 Remove TREE_OVERFLOW special case. 8729 * vr-values.c (bounds_of_var_in_loop): Adjust overflow for 8730 invariants. 8731 87322020-10-21 Aldy Hernandez <aldyh@redhat.com> 8733 8734 * vr-values.h: Remove simplify_cond_using_ranges_2. 8735 (range_fits_type_p): New. 8736 * vr-values.c (range_fits_type_p): Remove static qualifier. 8737 (vrp_simplify_cond_using_ranges): Move... 8738 * tree-vrp.c (vrp_simplify_cond_using_ranges): ...to here. 8739 87402020-10-20 Andrew MacLeod <amacleod@redhat.com> 8741 8742 PR tree-optimization/97505 8743 * vr-values.c (vr_values::extract_range_basic): Trap if 8744 vr_values version disagrees with range_of_builtin_call. 8745 87462020-10-20 David Edelsohn <dje.gcc@gmail.com> 8747 8748 * config/rs6000/rs6000.c (rs6000_option_override_internal): 8749 Don't implcitly enable Altivec ABI if set on the command line. 8750 87512020-10-20 Aldy Hernandez <aldyh@redhat.com> 8752 8753 * calls.c (get_size_range): Adjust to work with ranger. 8754 * calls.h (get_size_range): Add ranger argument to prototype. 8755 * gimple-ssa-warn-restrict.c (class wrestrict_dom_walker): Remove. 8756 (check_call): Pull out of wrestrict_dom_walker into a 8757 static function. 8758 (wrestrict_dom_walker::before_dom_children): Rename to... 8759 (wrestrict_walk): ...this. 8760 (pass_wrestrict::execute): Instantiate ranger. 8761 (class builtin_memref): Add stmt and query fields. 8762 (builtin_access::builtin_access): Add range_query field. 8763 (builtin_memref::builtin_memref): Same. 8764 (builtin_memref::extend_offset_range): Same. 8765 (builtin_access::builtin_access): Make work with ranger. 8766 (wrestrict_dom_walker::check_call): Pull out into... 8767 (check_call): ...here. 8768 (check_bounds_or_overlap): Add range_query argument. 8769 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): 8770 Add range_query and gimple stmt arguments. 8771 87722020-10-20 Aldy Hernandez <aldyh@redhat.com> 8773 8774 * gimple-ssa-warn-alloca.c (enum alloca_type): Remove 8775 ALLOCA_BOUND_UNKNOWN and ALLOCA_CAST_FROM_SIGNED. 8776 (warn_limit_specified_p): New. 8777 (alloca_call_type_by_arg): Remove. 8778 (cast_from_signed_p): Remove. 8779 (is_max): Remove. 8780 (alloca_call_type): Remove heuristics and replace with call into 8781 ranger. 8782 (pass_walloca::execute): Instantiate ranger. 8783 87842020-10-20 Tobias Burnus <tobias@codesourcery.com> 8785 8786 * lto-wrapper.c (run_gcc): Use proper variable for 8787 %u.ltrans_args dump suffix. 8788 87892020-10-20 Zhiheng Xie <xiezhiheng@huawei.com> 8790 Nannan Zheng <zhengnannan@huawei.com> 8791 8792 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 8793 for get/set reg intrinsics. 8794 87952020-10-20 Aldy Hernandez <aldyh@redhat.com> 8796 8797 * gimple-range.cc (gimple_ranger::range_of_builtin_ubsan_call): 8798 Make externally visble... 8799 (range_of_builtin_ubsan_call): ...here. Add range_query argument. 8800 (gimple_ranger::range_of_builtin_call): Make externally visible... 8801 (range_of_builtin_call): ...here. Add range_query argument. 8802 * gimple-range.h (range_of_builtin_call): Move out from class and 8803 make externally visible. 8804 * vr-values.c (vr_values::extract_range_basic): Abstract out 8805 builtin handling to... 8806 (vr_values::range_of_expr): Handle non SSAs. 8807 (vr_values::extract_range_builtin): ...here. 8808 * vr-values.h (class vr_values): Add extract_range_builtin. 8809 (range_of_expr): Rename NAME to EXPR. 8810 88112020-10-20 Aldy Hernandez <aldyh@redhat.com> 8812 8813 PR tree-optimization/97501 8814 * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info): 8815 Saturate overflows returned from SCEV. 8816 88172020-10-20 Aldy Hernandez <aldyh@redhat.com> 8818 8819 * value-range.cc (irange::operator=): Split up call to 8820 copy_legacy_range into... 8821 (irange::copy_to_legacy): ...this. 8822 (irange::copy_legacy_to_multi_range): ...and this. 8823 (irange::copy_legacy_range): Remove. 8824 * value-range.h: Remove copoy_legacy_range. 8825 Add copy_legacy_to_multi_range and copy_to_legacy. 8826 88272020-10-20 Tobias Burnus <tobias@codesourcery.com> 8828 8829 * doc/invoke.texi (NVPTX options): Use @item not @itemx. 8830 88312020-10-20 Richard Biener <rguenther@suse.de> 8832 8833 * tree-cfg.c (reinstall_phi_args): Remove. 8834 (gimple_split_edge): Remove PHIs around the edge redirection 8835 to avoid touching them at all. 8836 88372020-10-20 Richard Biener <rguenther@suse.de> 8838 8839 * tree-vect-loop.c (vectorizable_reduction): Use the correct 8840 loops latch edge for the PHI arg lookup. 8841 88422020-10-20 Jozef Lawrynowicz <jozef.l@mittosystems.com> 8843 8844 * config/msp430/msp430.md (andneghi3): Allow general operand for 8845 op1 and update output assembler template. 8846 88472020-10-20 Tobias Burnus <tobias@codesourcery.com> 8848 8849 * collect-utils.c (collect_execute, fork_execute): Add at-file suffix 8850 argument. 8851 * collect-utils.h (collect_execute, fork_execute): Update prototype. 8852 * collect2.c (maybe_run_lto_and_relink, do_link, main, do_dsymutil): 8853 Update calls by passing NULL. 8854 * config/i386/intelmic-mkoffload.c (compile_for_target, 8855 generate_host_descr_file, prepare_target_image, main): Likewise. 8856 * config/gcn/mkoffload.c (compile_native, main): Pass at-file suffix. 8857 * config/nvptx/mkoffload.c (compile_native, main): Likewise. 8858 * lto-wrapper.c (compile_offload_image): Likewise. 8859 88602020-10-20 Aldy Hernandez <aldyh@redhat.com> 8861 8862 * range-op.cc (operator_rshift::op1_range): Special case 8863 shifting by zero. 8864 88652020-10-20 Richard Biener <rguenther@suse.de> 8866 8867 PR tree-optimization/97496 8868 * tree-vect-slp.c (vect_get_and_check_slp_defs): Guard extern 8869 promotion with not in pattern. 8870 88712020-10-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 8872 8873 * config/s390/s390.c (s390_expand_vec_strlen): Add alignment 8874 for memory access inside loop. 8875 88762020-10-19 Andrew MacLeod <amacleod@redhat.com> 8877 8878 PR tree-optimization/97360 8879 * gimple-range.h (range_compatible_p): New. 8880 * gimple-range-gori.cc (is_gimple_logical_p): Use range_compatible_p. 8881 (range_is_either_true_or_false): Ditto. 8882 (gori_compute::outgoing_edge_range_p): Cast result to the correct 8883 type if necessary. 8884 (logical_stmt_cache::cacheable_p): Use range_compatible_p. 8885 * gimple-range.cc (gimple_ranger::calc_stmt): Check range_compatible_p 8886 before casting the range. 8887 (gimple_ranger::range_on_exit): Use range_compatible_p. 8888 (gimple_ranger::range_on_edge): Ditto. 8889 88902020-10-19 Martin Jambor <mjambor@suse.cz> 8891 8892 PR tree-optimization/97456 8893 * tree-complex.c (set_component_ssa_name): Do not replace ignored decl 8894 default definitions with new component vars. Reorder if conditions. 8895 88962020-10-19 David Edelsohn <dje.gcc@gmail.com> 8897 8898 * config/rs6000/vsx.md (vextract_fp_from_shorth): Fix vals_be. 8899 (vextract_fp_from_shortl) Same. 8900 89012020-10-19 Aldy Hernandez <aldyh@redhat.com> 8902 8903 PR tree-optimization/97488 8904 * range-op.cc (operator_lshift::op1_range): Handle large right shifts. 8905 89062020-10-19 Martin Liska <mliska@suse.cz> 8907 8908 * ipa-modref.c (compute_parm_map): Clear vector. 8909 89102020-10-19 Richard Biener <rguenther@suse.de> 8911 8912 PR tree-optimization/97486 8913 * tree-vect-slp.c (vect_slp_function): Split after stmts 8914 ending a BB. 8915 89162020-10-19 Jonathan Wakely <jwakely@redhat.com> 8917 8918 * doc/invoke.texi (OPptimize Options): Add missing closing 8919 parenthesis. 8920 89212020-10-19 Aldy Hernandez <aldyh@redhat.com> 8922 8923 PR tree-optimization/97467 8924 * range-op.cc (operator_lshift::op1_range): Handle shifts by 0. 8925 89262020-10-19 Richard Biener <rguenther@suse.de> 8927 8928 PR tree-optimization/97466 8929 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove 8930 spurious assert, re-indent. 8931 89322020-10-19 Li Jia He <helijia@gcc.gnu.org> 8933 8934 PR tree-optimization/66552 8935 * match.pd (x << (n % C) -> x << (n & C-1)): New simplification. 8936 89372020-10-19 Richard Biener <rguenther@suse.de> 8938 8939 * tree-cfg.c (verify_gimple_comparison): Drop special-case 8940 for pointer comparison. 8941 89422020-10-16 Andrew MacLeod <amacleod@redhat.com> 8943 8944 * vr-values.c (dump_all_value_ranges): Only dump names which are 8945 still active. 8946 89472020-10-16 Andrew MacLeod <amacleod@redhat.com> 8948 8949 * range-op.cc (pointer_plus_operator::wi_fold): Make pointer_plus 8950 [0, 0] + const return a [const, const] range. 8951 89522020-10-16 Andrew MacLeod <amacleod@redhat.com> 8953 8954 * gimple-ssa-evrp.c (hybrid_folder::value_on_edge): Call 8955 evrp_folder::value_of_expr directly. 8956 (hybrid_folder::value_of_stmt): Ditto. 8957 89582020-10-16 Andrew MacLeod <amacleod@redhat.com> 8959 8960 PR tree-optimization/97462 8961 * range-op.cc (operator_lshift::op1_range): Don't trap on negative 8962 shifts. 8963 89642020-10-16 Olivier Hainque <hainque@adacore.com> 8965 8966 * config/vxworks.h (VX_CRTBEGIN_SPEC): Likewise. 8967 89682020-10-16 Olivier Hainque <hainque@adacore.com> 8969 8970 * config/vxworks/_vxworks-versions.h: Only include 8971 version.h if _WRS_VXWORKS_MAJOR is not defined. 8972 Provide a default _WRS_VXWORKS_MINOR (0). 8973 89742020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 8975 8976 PR target/97327 8977 * config/arm/arm.c (fp_bitlist): Add isa_bit_mve_float to FP bits array. 8978 89792020-10-16 Richard Biener <rguenther@suse.de> 8980 8981 * tree-vect-slp.c (vect_get_and_check_slp_defs): For BB 8982 vectorization swap operands only if it helps, demote mismatches to 8983 external. 8984 89852020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 8986 8987 PR target/97291 8988 * config/arm/arm-builtins.c (arm_strsbwbs_qualifiers): Modify array. 8989 (arm_strsbwbu_qualifiers): Likewise. 8990 (arm_strsbwbs_p_qualifiers): Likewise. 8991 (arm_strsbwbu_p_qualifiers): Likewise. 8992 * config/arm/arm_mve.h (__arm_vstrdq_scatter_base_wb_s64): Modify 8993 function definition. 8994 (__arm_vstrdq_scatter_base_wb_u64): Likewise. 8995 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise. 8996 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise. 8997 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise. 8998 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise. 8999 (__arm_vstrwq_scatter_base_wb_s32): Likewise. 9000 (__arm_vstrwq_scatter_base_wb_u32): Likewise. 9001 (__arm_vstrwq_scatter_base_wb_f32): Likewise. 9002 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise. 9003 * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_add_u): Remove 9004 expansion for the builtin. 9005 (vstrwq_scatter_base_wb_add_s): Likewise. 9006 (vstrwq_scatter_base_wb_add_f): Likewise. 9007 (vstrdq_scatter_base_wb_add_u): Likewise. 9008 (vstrdq_scatter_base_wb_add_s): Likewise. 9009 (vstrwq_scatter_base_wb_p_add_u): Likewise. 9010 (vstrwq_scatter_base_wb_p_add_s): Likewise. 9011 (vstrwq_scatter_base_wb_p_add_f): Likewise. 9012 (vstrdq_scatter_base_wb_p_add_u): Likewise. 9013 (vstrdq_scatter_base_wb_p_add_s): Likewise. 9014 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Remove 9015 expand. 9016 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise. 9017 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Rename pattern to ... 9018 (mve_vstrwq_scatter_base_wb_<supf>v4si): This. 9019 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Remove expand. 9020 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise. 9021 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Rename pattern to ... 9022 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): This. 9023 (mve_vstrwq_scatter_base_wb_fv4sf): Remove expand. 9024 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise. 9025 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Rename pattern to ... 9026 (mve_vstrwq_scatter_base_wb_fv4sf): This. 9027 (mve_vstrwq_scatter_base_wb_p_fv4sf): Remove expand. 9028 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise. 9029 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Rename pattern to ... 9030 (mve_vstrwq_scatter_base_wb_p_fv4sf): This. 9031 (mve_vstrdq_scatter_base_wb_<supf>v2di): Remove expand. 9032 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise. 9033 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Rename pattern to ... 9034 (mve_vstrdq_scatter_base_wb_<supf>v2di): This. 9035 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Remove expand. 9036 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise. 9037 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Rename pattern to ... 9038 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): This. 9039 90402020-10-16 Kito Cheng <kito.cheng@sifive.com> 9041 9042 * config/riscv/multilib-generator (IMPLIED_EXT): New. 9043 (arch_canonicalize): Update comment and handle implied extensions. 9044 90452020-10-16 Richard Biener <rguenther@suse.de> 9046 9047 * tree-vect-slp.c (vect_get_and_check_slp_defs): First analyze 9048 all operands and fill in the def_stmts and ops entries. 9049 (vect_def_types_match): New helper. 9050 90512020-10-16 Martin Liska <mliska@suse.cz> 9052 9053 PR ipa/97404 9054 * ipa-prop.c (struct ipa_vr_ggc_hash_traits): 9055 Compare types of VRP as we can merge ranges of different types. 9056 90572020-10-16 Richard Biener <rguenther@suse.de> 9058 9059 PR tree-optimization/97428 9060 * tree-vect-slp.c (vect_analyze_slp_instance): Split store 9061 groups also for loop vectorization. 9062 90632020-10-15 Tom de Vries <tdevries@suse.de> 9064 9065 PR target/97436 9066 * config/nvptx/nvptx.opt (m32): Comment out. 9067 * doc/invoke.texi (NVPTX options): Remove -m32. 9068 90692020-10-15 Jan Hubicka <hubicka@ucw.cz> 9070 Richard Biener <rguenther@suse.de> 9071 9072 * attr-fnspec.h: Fix toplevel comment. 9073 90742020-10-15 Richard Biener <rguenther@suse.de> 9075 9076 * tree-pretty-print.c (dump_mem_ref): Print constant offset 9077 also for TARGET_MEM_REF. 9078 90792020-10-15 Jan Hubicka <jh@suse.cz> 9080 9081 * symtab.c (symtab_node::binds_to_current_def_p): Also accept symbols 9082 defined in other partition. 9083 90842020-10-15 Richard Biener <rguenther@suse.de> 9085 9086 * tree-vect-loop.c (vectorizable_live_operation): Adjust 9087 dominance query. 9088 90892020-10-15 Richard Biener <rguenther@suse.de> 9090 9091 PR tree-optimization/97482 9092 * tree-data-ref.c (split_constant_offset_1): Handle 9093 trivial conversions better. 9094 * fold-const.c (convert_to_ptrofftype_loc): Elide conversion 9095 if the offset is already ptrofftype_p. 9096 90972020-10-15 Martin Liska <mliska@suse.cz> 9098 9099 PR ipa/97295 9100 * profile-count.c (profile_count::to_frequency): Move part of 9101 gcc_assert to STATIC_ASSERT. 9102 * regs.h (REG_FREQ_FROM_BB): Do not use count.to_frequency for 9103 a function that does not have count_max initialized. 9104 91052020-10-15 Jakub Jelinek <jakub@redhat.com> 9106 9107 * params.opt (-param-ipa-jump-function-lookups=): Add full stop at 9108 the end of the parameter description. 9109 91102020-10-15 Kito Cheng <kito.cheng@sifive.com> 9111 9112 * common/config/riscv/riscv-common.c (riscv_cpu_tables): New. 9113 (riscv_arch_str): Return empty string if current_subset_list 9114 is NULL. 9115 (riscv_find_cpu): New. 9116 (riscv_handle_option): Verify option value of -mcpu. 9117 (riscv_expand_arch): Using std::string. 9118 (riscv_default_mtune): New. 9119 (riscv_expand_arch_from_cpu): Ditto. 9120 * config/riscv/riscv-cores.def: New. 9121 * config/riscv/riscv-protos.h (riscv_find_cpu): New. 9122 (riscv_cpu_info): New. 9123 * config/riscv/riscv.c (riscv_tune_info): Rename ... 9124 (riscv_tune_param): ... to this. 9125 (riscv_cpu_info): Rename ... 9126 (riscv_tune_info): ... to this. 9127 (tune_info): Rename ... 9128 (tune_param): ... to this. 9129 (rocket_tune_info): Update data type name. 9130 (sifive_7_tune_info): Ditto. 9131 (optimize_size_tune_info): Ditto. 9132 (riscv_cpu_info_table): Rename ... 9133 (riscv_tune_info_table): ... to this. 9134 (riscv_parse_cpu): Rename ... 9135 (riscv_parse_tune): ... to this, and translate valid -mcpu option to 9136 -mtune option. 9137 (riscv_rtx_costs): Rename tune_info to tune_param. 9138 (riscv_class_max_nregs): Ditto. 9139 (riscv_memory_move_cost): Ditto. 9140 (riscv_init_machine_status): Use value of -mcpu if -mtune is not 9141 given, and rename tune_info to tune_param. 9142 * config/riscv/riscv.h (riscv_expand_arch_from_cpu): New. 9143 (riscv_default_mtune): Ditto. 9144 (EXTRA_SPEC_FUNCTIONS): Add riscv_expand_arch_from_cpu and 9145 riscv_default_mtune. 9146 (OPTION_DEFAULT_SPECS): Handle default value of -march/-mabi. 9147 (DRIVER_SELF_SPECS): Expand -march from -mcpu if -march is not 9148 given. 9149 * config/riscv/riscv.opt (-mcpu): New option. 9150 * config/riscv/t-riscv ($(common_out_file)): Add 9151 riscv-cores.def to dependency. 9152 * doc/invoke.texi (RISC-V Option): Add -mcpu, and update the 9153 description of default value for -mtune and -march. 9154 91552020-10-15 Hongyu Wang <hongyu.wang@intel.com> 9156 9157 * common/config/i386/cpuinfo.h (get_available_features): 9158 Detect HRESET. 9159 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_HRESET_SET, 9160 OPTION_MASK_ISA2_HRESET_UNSET): New macros. 9161 (ix86_handle_option): Handle -mhreset. 9162 * common/config/i386/i386-cpuinfo.h (enum processor_features): 9163 Add FEATURE_HRESET. 9164 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY 9165 for hreset. 9166 * config.gcc: Add hresetintrin.h 9167 * config/i386/hresetintrin.h: New header file. 9168 * config/i386/x86gprintrin.h: Include hresetintrin.h. 9169 * config/i386/cpuid.h (bit_HRESET): New. 9170 * config/i386/i386-builtin.def: Add new builtin. 9171 * config/i386/i386-expand.c (ix86_expand_builtin): 9172 Handle new builtin. 9173 * config/i386/i386-c.c (ix86_target_macros_internal): Define 9174 __HRESET__. 9175 * config/i386/i386-options.c (isa2_opts): Add -mhreset. 9176 (ix86_valid_target_attribute_inner_p): Handle hreset. 9177 * config/i386/i386.h (TARGET_HRESET, TARGET_HRESET_P, 9178 PTA_HRESET): New. 9179 (PTA_ALDERLAKE): Add PTA_HRESET. 9180 * config/i386/i386.opt: Add option -mhreset. 9181 * config/i386/i386.md (UNSPECV_HRESET): New unspec. 9182 (hreset): New define_insn. 9183 * doc/invoke.texi: Document -mhreset. 9184 * doc/extend.texi: Document hreset. 9185 91862020-10-15 Hongtao Liu <hongtao.liu@intel.com> 9187 9188 * common/config/i386/cpuinfo.h (get_available_features): 9189 Detect UINTR. 9190 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_UINTR_SET 9191 OPTION_MASK_ISA2_UINTR_UNSET): New. 9192 (ix86_handle_option): Handle -muintr. 9193 * common/config/i386/i386-cpuinfo.h (enum processor_features): 9194 Add FEATURE_UINTR. 9195 * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY 9196 for uintr. 9197 * config.gcc: Add uintrintrin.h to extra_headers. 9198 * config/i386/uintrintrin.h: New. 9199 * config/i386/cpuid.h (bit_UINTR): New. 9200 * config/i386/i386-builtin-types.def: Add new types. 9201 * config/i386/i386-builtin.def: Add new builtins. 9202 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): Add 9203 __builtin_ia32_testui. 9204 * config/i386/i386-builtins.h (ix86_builtins): Add 9205 IX86_BUILTIN_TESTUI. 9206 * config/i386/i386-c.c (ix86_target_macros_internal): Define 9207 __UINTR__. 9208 * config/i386/i386-expand.c (ix86_expand_special_args_builtin): 9209 Handle UINT8_FTYPE_VOID. 9210 (ix86_expand_builtin): Handle IX86_BUILTIN_TESTUI. 9211 * config/i386/i386-options.c (isa2_opts): Add -muintr. 9212 (ix86_valid_target_attribute_inner_p): Handle UINTR. 9213 (ix86_option_override_internal): Add TARGET_64BIT check for UINTR. 9214 * config/i386/i386.h (TARGET_UINTR, TARGET_UINTR_P, PTA_UINTR): New. 9215 (PTA_SAPPHIRRAPIDS): Add PTA_UINTR. 9216 * config/i386/i386.opt: Add -muintr. 9217 * config/i386/i386.md 9218 (define_int_iterator UINTR_UNSPECV): New. 9219 (define_int_attr uintr_unspecv): New. 9220 (uintr_<uintr_unspecv>, uintr_senduipi, testui): 9221 New define_insn patterns. 9222 * config/i386/x86gprintrin.h: Include uintrintrin.h 9223 * doc/invoke.texi: Document -muintr. 9224 * doc/extend.texi: Document uintr. 9225 92262020-10-14 Martin Sebor <msebor@redhat.com> 9227 9228 PR middle-end/97391 9229 * builtins.c (gimple_parm_array_size): Peel off one less layer 9230 of array types. 9231 92322020-10-14 Martin Sebor <msebor@redhat.com> 9233 9234 PR c/97413 9235 * attribs.c (init_attr_rdwr_indices): Unwrap extra list layer. 9236 92372020-10-14 Sunil K Pandey <skpgkp2@gmail.com> 9238 9239 PR target/95483 9240 * config/i386/avx2intrin.h (_mm_broadcastsi128_si256): New intrinsics. 9241 (_mm_broadcastsd_pd): Ditto. 9242 * config/i386/avx512bwintrin.h (_mm512_loadu_epi16): New intrinsics. 9243 (_mm512_storeu_epi16): Ditto. 9244 (_mm512_loadu_epi8): Ditto. 9245 (_mm512_storeu_epi8): Ditto. 9246 * config/i386/avx512dqintrin.h (_mm_reduce_round_sd): New intrinsics. 9247 (_mm_mask_reduce_round_sd): Ditto. 9248 (_mm_maskz_reduce_round_sd): Ditto. 9249 (_mm_reduce_round_ss): Ditto. 9250 (_mm_mask_reduce_round_ss): Ditto. 9251 (_mm_maskz_reduce_round_ss): Ditto. 9252 (_mm512_reduce_round_pd): Ditto. 9253 (_mm512_mask_reduce_round_pd): Ditto. 9254 (_mm512_maskz_reduce_round_pd): Ditto. 9255 (_mm512_reduce_round_ps): Ditto. 9256 (_mm512_mask_reduce_round_ps): Ditto. 9257 (_mm512_maskz_reduce_round_ps): Ditto. 9258 * config/i386/avx512erintrin.h 9259 (_mm_mask_rcp28_round_sd): New intrinsics. 9260 (_mm_maskz_rcp28_round_sd): Ditto. 9261 (_mm_mask_rcp28_round_ss): Ditto. 9262 (_mm_maskz_rcp28_round_ss): Ditto. 9263 (_mm_mask_rsqrt28_round_sd): Ditto. 9264 (_mm_maskz_rsqrt28_round_sd): Ditto. 9265 (_mm_mask_rsqrt28_round_ss): Ditto. 9266 (_mm_maskz_rsqrt28_round_ss): Ditto. 9267 (_mm_mask_rcp28_sd): Ditto. 9268 (_mm_maskz_rcp28_sd): Ditto. 9269 (_mm_mask_rcp28_ss): Ditto. 9270 (_mm_maskz_rcp28_ss): Ditto. 9271 (_mm_mask_rsqrt28_sd): Ditto. 9272 (_mm_maskz_rsqrt28_sd): Ditto. 9273 (_mm_mask_rsqrt28_ss): Ditto. 9274 (_mm_maskz_rsqrt28_ss): Ditto. 9275 * config/i386/avx512fintrin.h (_mm_mask_sqrt_sd): New intrinsics. 9276 (_mm_maskz_sqrt_sd): Ditto. 9277 (_mm_mask_sqrt_ss): Ditto. 9278 (_mm_maskz_sqrt_ss): Ditto. 9279 (_mm_mask_scalef_sd): Ditto. 9280 (_mm_maskz_scalef_sd): Ditto. 9281 (_mm_mask_scalef_ss): Ditto. 9282 (_mm_maskz_scalef_ss): Ditto. 9283 (_mm_mask_cvt_roundsd_ss): Ditto. 9284 (_mm_maskz_cvt_roundsd_ss): Ditto. 9285 (_mm_mask_cvt_roundss_sd): Ditto. 9286 (_mm_maskz_cvt_roundss_sd): Ditto. 9287 (_mm_mask_cvtss_sd): Ditto. 9288 (_mm_maskz_cvtss_sd): Ditto. 9289 (_mm_mask_cvtsd_ss): Ditto. 9290 (_mm_maskz_cvtsd_ss): Ditto. 9291 (_mm512_cvtsi512_si32): Ditto. 9292 (_mm_cvtsd_i32): Ditto. 9293 (_mm_cvtss_i32): Ditto. 9294 (_mm_cvti32_sd): Ditto. 9295 (_mm_cvti32_ss): Ditto. 9296 (_mm_cvtsd_i64): Ditto. 9297 (_mm_cvtss_i64): Ditto. 9298 (_mm_cvti64_sd): Ditto. 9299 (_mm_cvti64_ss): Ditto. 9300 * config/i386/avx512vlbwintrin.h (_mm256_storeu_epi8): New intrinsics. 9301 (_mm_storeu_epi8): Ditto. 9302 (_mm256_loadu_epi16): Ditto. 9303 (_mm_loadu_epi16): Ditto. 9304 (_mm256_loadu_epi8): Ditto. 9305 (_mm_loadu_epi8): Ditto. 9306 (_mm256_storeu_epi16): Ditto. 9307 (_mm_storeu_epi16): Ditto. 9308 * config/i386/avx512vlintrin.h (_mm256_load_epi64): New intrinsics. 9309 (_mm_load_epi64): Ditto. 9310 (_mm256_load_epi32): Ditto. 9311 (_mm_load_epi32): Ditto. 9312 (_mm256_store_epi32): Ditto. 9313 (_mm_store_epi32): Ditto. 9314 (_mm256_loadu_epi64): Ditto. 9315 (_mm_loadu_epi64): Ditto. 9316 (_mm256_loadu_epi32): Ditto. 9317 (_mm_loadu_epi32): Ditto. 9318 (_mm256_mask_cvt_roundps_ph): Ditto. 9319 (_mm256_maskz_cvt_roundps_ph): Ditto. 9320 (_mm_mask_cvt_roundps_ph): Ditto. 9321 (_mm_maskz_cvt_roundps_ph): Ditto. 9322 * config/i386/avxintrin.h (_mm256_cvtsi256_si32): New intrinsics. 9323 * config/i386/emmintrin.h (_mm_loadu_si32): New intrinsics. 9324 (_mm_loadu_si16): Ditto. 9325 (_mm_storeu_si32): Ditto. 9326 (_mm_storeu_si16): Ditto. 9327 * config/i386/i386-builtin-types.def 9328 (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT): Add new type. 9329 (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT): Ditto. 9330 (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT): Ditto. 9331 (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT): Ditto. 9332 * config/i386/i386-builtin.def 9333 (__builtin_ia32_cvtsd2ss_mask_round): New builtin. 9334 (__builtin_ia32_cvtss2sd_mask_round): Ditto. 9335 (__builtin_ia32_rcp28sd_mask_round): Ditto. 9336 (__builtin_ia32_rcp28ss_mask_round): Ditto. 9337 (__builtin_ia32_rsqrt28sd_mask_round): Ditto. 9338 (__builtin_ia32_rsqrt28ss_mask_round): Ditto. 9339 (__builtin_ia32_reducepd512_mask_round): Ditto. 9340 (__builtin_ia32_reduceps512_mask_round): Ditto. 9341 (__builtin_ia32_reducesd_mask_round): Ditto. 9342 (__builtin_ia32_reducess_mask_round): Ditto. 9343 * config/i386/i386-expand.c 9344 (ix86_expand_round_builtin): Expand round builtin for new type. 9345 (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT) 9346 (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT) 9347 (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT) 9348 (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT) 9349 * config/i386/mmintrin.h () 9350 Define datatype __m32 and __m16. 9351 Define datatype __m32_u and __m16_u. 9352 * config/i386/sse.md: Adjust pattern. 9353 (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): Adjust. 9354 (reduces<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto. 9355 (sse2_cvtsd2ss<mask_name><round_name>): Ditto. 9356 (sse2_cvtss2sd<mask_name><round_saeonly_name>): Ditto. 9357 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto. 9358 (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto. 9359 93602020-10-14 Olivier Hainque <hainque@adacore.com> 9361 9362 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Fix 9363 the VX_CPU selection for -mcpu=xscale on arm-vxworks. 9364 93652020-10-14 Olivier Hainque <hainque@adacore.com> 9366 9367 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Accommodate 9368 expectations from different versions of VxWorks, for 32 or 64bit 9369 configurations. 9370 93712020-10-14 Olivier Hainque <hainque@adacore.com> 9372 9373 * config/vxworks.h: #undef CPLUSPLUS_CPP_SPEC. 9374 93752020-10-14 Olivier Hainque <hainque@adacore.com> 9376 9377 * config/t-vxworks: Adjust the VxWorks alternative LIMITS_H guard 9378 for glimits.h, make it both closer to the previous one and easier to 9379 search for. 9380 93812020-10-14 Jakub Jelinek <jakub@redhat.com> 9382 9383 PR target/97387 9384 * config/i386/i386.md (CC_CCC): New mode iterator. 9385 (*setcc_qi_addqi3_cconly_overflow_1_<mode>): New 9386 define_insn_and_split. 9387 * config/i386/i386.c (ix86_cc_mode): Return CCCmode 9388 for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern operands. 9389 (ix86_rtx_costs): Return true and *total = 0; 9390 for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern. Use op0 and 9391 op1 temporaries to simplify COMPARE checks. 9392 93932020-10-14 Aldy Hernandez <aldyh@redhat.com> 9394 9395 PR tree-optimization/97396 9396 * gimple-range.cc (gimple_ranger::range_of_phi): Do not call 9397 range_of_ssa_name_with_loop_info with the loop tree root. 9398 93992020-10-14 Richard Biener <rguenther@suse.de> 9400 9401 * tree-vect-slp.c (vect_get_and_check_slp_defs): Split out 9402 test for compatible operand types. 9403 94042020-10-14 Olivier Hainque <hainque@adacore.com> 9405 9406 * config/vxworks.c (vxworks_override_options): Guard pic checks with 9407 flag_pic > 0 instead of just flag_pic. 9408 94092020-10-14 Jan Hubicka <hubicka@ucw.cz> 9410 9411 * ipa-fnsummary.c (remap_edge_summaries): Make offset_map HOST_WIDE_INT. 9412 (remap_freqcounting_predicate): Likewise. 9413 (ipa_merge_fn_summary_after_inlining): Likewise. 9414 * ipa-predicate.c (predicate::remap_after_inlining): Likewise 9415 * ipa-predicate.h (remap_after_inlining): Update. 9416 94172020-10-14 Jan Hubicka <jh@suse.cz> 9418 9419 * ipa-modref.c (compute_parm_map): Handle POINTER_PLUS_EXPR in 9420 PASSTHROUGH. 9421 94222020-10-14 Richard Biener <rguenther@suse.de> 9423 9424 * tree-vect-slp.c (vect_get_and_check_slp_defs): Move 9425 check for duplicate/interleave of variable size constants 9426 to a place done once and early. 9427 (vect_build_slp_tree_2): Adjust heuristics when to build 9428 a BB SLP node from scalars. 9429 94302020-10-14 Tom de Vries <tdevries@suse.de> 9431 9432 * tracer.c (cached_can_duplicate_bb_p, analyze_bb): Use 9433 can_duplicate_block_p. 9434 (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p) 9435 (can_duplicate_bb_p): Move and merge ... 9436 * tree-cfg.c (gimple_can_duplicate_bb_p): ... here. 9437 94382020-10-14 Jan Hubicka <hubicka@ucw.cz> 9439 9440 * doc/invoke.texi: (ipa-jump-function-lookups): Document param. 9441 * ipa-modref.c (merge_call_side_effects): Use 9442 unadjusted_ptr_and_unit_offset. 9443 * ipa-prop.c (unadjusted_ptr_and_unit_offset): New function. 9444 * ipa-prop.h (unadjusted_ptr_and_unit_offset): Declare. 9445 * params.opt: (-param-ipa-jump-function-lookups): New. 9446 94472020-10-14 Jan Hubicka <jh@suse.cz> 9448 9449 PR bootstrap/97350 9450 * ipa-modref.c (ignore_edge): Do not ignore inlined edes. 9451 (ipa_merge_modref_summary_after_inlining): Improve debug output and 9452 fix parameter of ignore_stores_p. 9453 94542020-10-14 Kito Cheng <kito.cheng@sifive.com> 9455 9456 PR target/96759 9457 * expr.c (expand_assignment): Handle misaligned stores with PARALLEL 9458 value. 9459 94602020-10-13 Jakub Jelinek <jakub@redhat.com> 9461 9462 PR rtl-optimization/97386 9463 * combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if 9464 they have different modes. 9465 94662020-10-13 Aldy Hernandez <aldyh@redhat.com> 9467 9468 PR tree-optimization/97379 9469 * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Do 9470 not save hash slot across calls to hash_table<>::get_or_insert. 9471 94722020-10-13 Tobias Burnus <tobias@codesourcery.com> 9473 9474 * lto-wrapper.c (find_crtoffloadtable): Fix last commit 9475 by adding NULL as last argument to concat. 9476 94772020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9478 9479 * config/aarch64/aarch64.c (neoversen2_tunings): Define. 9480 * config/aarch64/aarch64-cores.def (neoverse-n2): Use it. 9481 94822020-10-13 Tobias Burnus <tobias@codesourcery.com> 9483 9484 * lto-wrapper.c (find_crtoffloadtable): With -save-temps, 9485 use non-temp file name utilizing the dump prefix. 9486 (run_gcc): Update call. 9487 94882020-10-13 Richard Biener <rguenther@suse.de> 9489 9490 PR tree-optimization/97382 9491 * tree-vectorizer.h (_stmt_vec_info::same_align_refs): Remove. 9492 (STMT_VINFO_SAME_ALIGN_REFS): Likewise. 9493 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not 9494 allocate STMT_VINFO_SAME_ALIGN_REFS. 9495 (vec_info::free_stmt_vec_info): Do not release 9496 STMT_VINFO_SAME_ALIGN_REFS. 9497 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): 9498 Do not compute self and read-read dependences. 9499 (vect_dr_aligned_if_related_peeled_dr_is): New helper. 9500 (vect_dr_aligned_if_peeled_dr_is): Likewise. 9501 (vect_update_misalignment_for_peel): Use it instead of 9502 iterating over STMT_VINFO_SAME_ALIGN_REFS. 9503 (dr_align_group_sort_cmp): New function. 9504 (vect_enhance_data_refs_alignment): Count the number of 9505 same aligned refs here and elide uses of STMT_VINFO_SAME_ALIGN_REFS. 9506 (vect_find_same_alignment_drs): Remove. 9507 (vect_analyze_data_refs_alignment): Do not call it. 9508 * vec.h (auto_vec<T, 0>::auto_vec): Adjust CTOR to take 9509 a vec<>&&, assert it isn't using auto storage. 9510 (auto_vec& operator=): Apply a similar change. 9511 95122020-10-13 Tobias Burnus <tobias@codesourcery.com> 9513 9514 * config/nvptx/mkoffload.c (main): Add missing fclose (in). 9515 95162020-10-13 Zhiheng Xie <xiezhiheng@huawei.com> 9517 Nannan Zheng <zhengnannan@huawei.com> 9518 9519 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 9520 for mul/mla/mls intrinsics. 9521 95222020-10-13 Jakub Jelinek <jakub@redhat.com> 9523 9524 * omp-low.c (add_taskreg_looptemp_clauses): For triangular loops 9525 with non-constant number of iterations add another 4 _looptemp_ 9526 clauses before the (optional) one for lastprivate. 9527 (lower_omp_for_lastprivate): Skip those clauses when looking for 9528 the lastprivate clause. 9529 (lower_omp_for): For triangular loops with non-constant number of 9530 iterations add another 4 _looptemp_ clauses. 9531 * omp-expand.c (expand_omp_for_init_counts): For triangular loops 9532 with non-constant number of iterations set counts[0], 9533 fd->first_inner_iterations, fd->factor and fd->adjn1 from the newly 9534 added _looptemp_ clauses. 9535 (expand_omp_for_init_vars): Initialize the newly added _looptemp_ 9536 clauses. 9537 (find_lastprivate_looptemp): New function. 9538 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk, 9539 expand_omp_taskloop_for_outer): Use it instead of manually skipping 9540 _looptemp_ clauses. 9541 95422020-10-13 Jan Hubicka <hubicka@ucw.cz> 9543 9544 PR ipa/97389 9545 * ipa-modref.c (dump_lto_records): Fix formating of dump file. 9546 (modref_summary::dump): Do not check loads to be non-null. 9547 (modref_summary_lto::dump): Do not check loads to be non-null. 9548 (merge_call_side_effects): Improve debug output. 9549 (analyze_call): Crash when cur_summary->loads is NULL. 9550 (analyze_function): Update. 9551 (modref_summaries::insert): Insert only into summaries, not 9552 optimization_summaries. 9553 (modref_summaries::duplicate): Likewise; crash when load or sotres 9554 are NULL. 9555 (modref_summaries_lto::duplicate): Crash when loads or stores are NULL. 9556 (write_modref_records): param_index is signed. 9557 (read_modref_records): param_index is signed. 9558 (modref_write): Crash when loads or stores are NULL. 9559 (read_section): Compensate previous change. 9560 (pass_modref::execute): Do not check optimization_summaries t be 9561 non-NULL. 9562 (ignore_edge): Fix. 9563 (compute_parm_map): Fix formating. 9564 (modref_propagate_in_scc): Do not expect loads/stores to be NULL. 9565 95662020-10-12 Alexandre Oliva <oliva@adacore.com> 9567 9568 * builtins.c (mathfn_built_in_type): Use CFN_ enumerators. 9569 95702020-10-12 Andrew MacLeod <amacleod@redhat.com> 9571 9572 PR tree-optimization/97381 9573 * gimple-range-gori.cc (gori_compute::compute_operand2_range): If a range cannot be 9574 calculated through operand 2, return false. 9575 95762020-10-12 Aldy Hernandez <aldyh@redhat.com> 9577 9578 PR tree-optimization/97378 9579 * range-op.cc (operator_trunc_mod::wi_fold): Return VARYING for mod by zero. 9580 95812020-10-12 David Malcolm <dmalcolm@redhat.com> 9582 9583 * doc/invoke.texi: Document -Wanalyzer-write-to-const and 9584 -Wanalyzer-write-to-string-literal. 9585 95862020-10-12 Martin Sebor <msebor@redhat.com> 9587 9588 PR middle-end/97342 9589 PR middle-end/97023 9590 PR middle-end/96384 9591 * builtins.c (access_ref::access_ref): Initialize new member. Use 9592 new enum. 9593 (access_ref::size_remaining): Define new member function. 9594 (inform_access): Handle expressions referencing objects. 9595 (gimple_call_alloc_size): Call get_size_range instead of get_range. 9596 (gimple_call_return_array): New function. 9597 (get_range): Rename... 9598 (get_offset_range): ...to this. Improve detection of ranges from 9599 types of expressions. 9600 (gimple_call_return_array): Adjust calls to get_range per above. 9601 (compute_objsize): Same. Set maximum size or offset instead of 9602 failing for unknown objects and handle more kinds of expressions. 9603 (compute_objsize): Call access_ref::size_remaining. 9604 (compute_objsize): Have transitional wrapper fail for pointers 9605 into unknown objects. 9606 (expand_builtin_strncmp): Call access_ref::size_remaining and 9607 handle new cases. 9608 * builtins.h (access_ref::size_remaining): Declare new member function. 9609 (access_ref::set_max_size_range): Define new member function. 9610 (access_ref::add_ofset, access_ref::add_max_ofset): Same. 9611 (access_ref::add_base0): New data member. 9612 * calls.c (get_size_range): Change argument type. Handle new 9613 condition. 9614 * calls.h (get_size_range): Adjust signature. 9615 (enum size_range_flags): Define new type. 9616 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Correct 9617 argument to get_size_range. 9618 * tree-ssa-strlen.c (get_range): Handle anti-ranges. 9619 (maybe_warn_overflow): Check DECL_P before assuming it's one. 9620 96212020-10-12 Martin Sebor <msebor@redhat.com> 9622 9623 PR c++/96511 9624 PR middle-end/96384 9625 * builtins.c (get_range): Return full range of type when neither 9626 value nor its range is available. Fail for ranges inverted due 9627 to the signedness of offsets. 9628 (compute_objsize): Handle more special array members. Handle 9629 POINTER_PLUS_EXPR and VIEW_CONVERT_EXPR that come up in front end 9630 code. 9631 (access_ref::offset_bounded): Define new member function. 9632 * builtins.h (access_ref::eval): New data member. 9633 (access_ref::offset_bounded): New member function. 9634 (access_ref::offset_zero): New member function. 9635 (compute_objsize): Declare a new overload. 9636 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Use 9637 enum special_array_member. 9638 * tree.c (component_ref_size): Use special_array_member. 9639 * tree.h (special_array_member): Define a new type. 9640 (component_ref_size): Change signature. 9641 96422020-10-12 Jan Hubicka <hubicka@ucw.cz> 9643 9644 * ipa-modref.c (modref_summaries): Remove field IPA. 9645 (class modref_summary_lto): New global variable. 9646 (class modref_summaries_lto): New. 9647 (modref_summary::modref_summary): Remove loads_lto and stores_lto. 9648 (modref_summary::~modref_summary): Remove loads_lto and stores_lto. 9649 (modref_summary::useful_p): Do not use lto_useful. 9650 (modref_records_lto): New typedef. 9651 (struct modref_summary_lto): New type. 9652 (modref_summary_lto::modref_summary_lto): New member function. 9653 (modref_summary_lto::~modref_summary_lto): New member function. 9654 (modref_summary_lto::useful_p): New member function. 9655 (modref_summary::dump): Do not handle lto. 9656 (modref_summary_lto::dump): New member function. 9657 (get_modref_function_summary): Use optimization_summary. 9658 (merge_call_side_effects): Use optimization_summary. 9659 (analyze_call): Use optimization_summary. 9660 (struct summary_ptrs): New struture. 9661 (analyze_load): Update to handle separate lto and non-lto summaries. 9662 (analyze_store): Likewise. 9663 (analyze_stmt): Likewise. 9664 (remove_summary): Break out from ... 9665 (analyze_function): ... here; update to handle seprated summaries. 9666 (modref_summaries::insert): Do not handle lto summary. 9667 (modref_summaries_lto::insert): New member function. 9668 (modref_summaries::duplicate): Do not handle lto summary. 9669 (modref_summaries_lto::duplicate): New member function. 9670 (read_modref_records): Expect nolto_ret or lto_ret to be NULL> 9671 (modref_write): Write lto summary. 9672 (read_section): Handle separated summaries. 9673 (modref_read): Initialize separated summaries. 9674 (modref_transform): Handle separated summaries. 9675 (pass_modref::execute): Turn summary to optimization_summary; handle 9676 separate summaries. 9677 (ignore_edge): Handle separate summaries. 9678 (ipa_merge_modref_summary_after_inlining): Likewise. 9679 (collapse_loads): Likewise. 9680 (modref_propagate_in_scc): Likewise. 9681 (pass_ipa_modref::execute): Likewise. 9682 (ipa_modref_c_finalize): Likewise. 9683 * ipa-modref.h (modref_records_lto): Remove typedef. 9684 (struct modref_summary): Remove stores_lto, loads_lto and finished 9685 fields; remove lto_useful_p member function. 9686 96872020-10-12 Richard Biener <rguenther@suse.de> 9688 9689 * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence): 9690 Use SLP_TREE_REPRESENTATIVE. 9691 * tree-vectorizer.h (_slp_tree::vertex): New member used 9692 for graphds interfacing. 9693 * tree-vect-slp.c (vect_build_slp_tree_2): Allocate space 9694 for PHI SLP children. 9695 (vect_analyze_slp_backedges): New function filling in SLP 9696 node children for PHIs that correspond to backedge values. 9697 (vect_analyze_slp): Call vect_analyze_slp_backedges for the 9698 graph. 9699 (vect_slp_analyze_node_operations): Deal with a cyclic graph. 9700 (vect_schedule_slp_instance): Likewise. 9701 (vect_schedule_slp): Likewise. 9702 (slp_copy_subtree): Remove. 9703 (vect_slp_rearrange_stmts): Likewise. 9704 (vect_attempt_slp_rearrange_stmts): Likewise. 9705 (vect_slp_build_vertices): New functions. 9706 (vect_slp_permute): Likewise. 9707 (vect_slp_perms_eq): Likewise. 9708 (vect_optimize_slp): Remove special code to elide 9709 permutations with SLP reductions. Implement generic 9710 permute optimization. 9711 97122020-10-12 Christophe Lyon <christophe.lyon@linaro.org> 9713 9714 * config/arm/arm.c (arm_preferred_simd_mode): Use E_FOOmode 9715 instead of FOOmode. 9716 97172020-10-12 Martin Liska <mliska@suse.cz> 9718 9719 PR tree-optimization/97079 9720 * internal-fn.c (internal_fn_stored_value_index): Handle also 9721 .MASK_STORE_LANES. 9722 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Bail 9723 out for unsupported TREE_TYPE. 9724 97252020-10-12 Richard Biener <rguenther@suse.de> 9726 9727 * tree-vect-slp.c (vect_bb_partition_graph_r): Use visited 9728 hash-map. 9729 (vect_bb_partition_graph): Likewise. 9730 97312020-10-12 Duan bo <duanbo3@huawei.com> 9732 9733 PR target/96757 9734 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Add 9735 the identification and handling of the dropped situation in the 9736 cond expression processing phase. 9737 97382020-10-12 Tobias Burnus <tobias@codesourcery.com> 9739 9740 * doc/invoke.texi (nvptx's -misa): Update default to sm_35. 9741 97422020-10-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9743 9744 PR target/97349 9745 * config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16, 9746 vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16): 9747 Fix argument type. 9748 97492020-10-12 Ilya Leoshkevich <iii@linux.ibm.com> 9750 9751 * config/s390/s390-protos.h (s390_build_signbit_mask): New 9752 function. 9753 * config/s390/s390.c (s390_contiguous_bitmask_vector_p): 9754 Bitcast the argument to an integral mode. 9755 (s390_expand_vec_init): Do not call 9756 s390_contiguous_bitmask_vector_p with a scalar argument. 9757 (s390_build_signbit_mask): New function. 9758 * config/s390/vector.md (copysign<mode>3): Use bitwise 9759 operations. 9760 97612020-10-12 Aldy Hernandez <aldyh@redhat.com> 9762 9763 PR tree-optimization/97371 9764 * range-op.cc (operator_rshift::op1_range): Ignore shifts larger than 9765 or equal to type precision. 9766 97672020-10-12 Martin Liska <mliska@suse.cz> 9768 9769 * ipa-modref.c (merge_call_side_effects): Clear modref_parm_map 9770 fields in the vector. 9771 97722020-10-12 Richard Biener <rguenther@suse.de> 9773 9774 * tree-vect-slp.c (vect_analyze_slp_instance): Set matches to true 9775 after successful discovery but forced split. 9776 97772020-10-12 Tom de Vries <tdevries@suse.de> 9778 9779 * config/nvptx/nvptx.opt (-msoft-stack-reserve-local): Rename to ... 9780 (-msoft-stack-reserve-local=): ... this. 9781 97822020-10-12 Richard Biener <rguenther@suse.de> 9783 9784 PR tree-optimization/97357 9785 * tree-ssa-loop-split.c (ssa_semi_invariant_p): Abnormal 9786 SSA names are not semi invariant. 9787 97882020-10-11 Iain Sandoe <iain@sandoe.co.uk> 9789 9790 * config/darwin.c (darwin_globalize_label): Make a subset of 9791 metadate symbols global. 9792 (darwin_label_is_anonymous_local_objc_name): Make a subset of 9793 metadata symbols linker-visible. 9794 (darwin_override_options): Track more target OS versions, make 9795 the next_runtime version track this (unless it's set to 0 for 9796 GNU runtime). 9797 97982020-10-11 Iain Sandoe <iain@sandoe.co.uk> 9799 9800 * config/darwin.c (darwin_globalize_label): Add protocol 9801 meta-data labels to the set that are global. 9802 (darwin_label_is_anonymous_local_objc_name): Arrange for meta- 9803 data start labels to be linker-visible. 9804 98052020-10-11 Iain Sandoe <iain@sandoe.co.uk> 9806 9807 * config/darwin.c (darwin_objc2_section): Allow for 9808 values > 1 to represent the next runtime. 9809 (darwin_objc1_section): Likewise. 9810 * config/darwin.h (NEXT_OBJC_RUNTIME): Set the default 9811 next runtime value to be 10.5.8. 9812 98132020-10-10 Jan Hubicka <jh@suse.cz> 9814 9815 * ipa-modref.c (modref_transform): Fix parameter map computation. 9816 98172020-10-10 Tom de Vries <tdevries@suse.de> 9818 9819 PR target/97318 9820 * config/nvptx/nvptx.c (nvptx_replace_dot): New function. 9821 (write_fn_proto, write_fn_proto_from_insn, nvptx_output_call_insn): 9822 Use nvptx_replace_dot. 9823 98242020-10-10 Tom de Vries <tdevries@suse.de> 9825 9826 * config/nvptx/nvptx.c (write_fn_proto_1): New function, factored out 9827 of ... 9828 (write_fn_proto): ... here. Return void. 9829 98302020-10-10 Jan Hubicka <jh@suse.cz> 9831 9832 * ipa-modref.c (remap_arguments): Check range in map access. 9833 98342020-10-10 Jan Hubicka <jh@suse.cz> 9835 9836 * ipa-modref.c (modref_transform): Use reserve instead of safe_grow. 9837 98382020-10-10 Jan Hubicka <jh@suse.cz> 9839 9840 * ipa-modref.c (modref_transform): Check that summaries are allocated. 9841 98422020-10-10 Jan Hubicka <jh@suse.cz> 9843 9844 * ipa-modref-tree.h (struct modref_tree): Revert prevoius change. 9845 * ipa-modref.c (analyze_function): Dump original summary. 9846 (modref_read): Only set IPA if streaming summary (not optimization 9847 summary). 9848 (remap_arguments): New function. 9849 (modref_transform): New function. 9850 (compute_parm_map): Fix offset calculation. 9851 (ipa_merge_modref_summary_after_inlining): Do not merge stores when 9852 they can be ignored. 9853 98542020-10-10 Jan Hubicka <jh@suse.cz> 9855 9856 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Improve debug dumps. 9857 (call_may_clobber_ref_p_1): Improve debug dumps. 9858 98592020-10-10 Iain Sandoe <iain@sandoe.co.uk> 9860 9861 * config/darwin.c (output_objc_section_asm_op): Avoid extra 9862 objective-c section switches unless the linker needs them. 9863 98642020-10-10 Iain Sandoe <iain@sandoe.co.uk> 9865 9866 * config/darwin-sections.def (objc2_data_section): New. 9867 (objc2_ivar_section): New. 9868 * config/darwin.c (darwin_objc2_section): Act on Protocol and 9869 ivar refs. 9870 98712020-10-10 Iain Sandoe <iain@sandoe.co.uk> 9872 9873 * config/darwin-sections.def (objc2_class_names_section, 9874 objc2_method_names_section, objc2_method_types_section): New 9875 * config/darwin.c (output_objc_section_asm_op): Output new 9876 sections. (darwin_objc2_section): Select new sections where 9877 used. 9878 98792020-10-10 Iain Sandoe <iain@sandoe.co.uk> 9880 9881 * config/darwin.c (darwin_emit_local_bss): Amend section names to 9882 match system tools. (darwin_output_aligned_bss): Likewise. 9883 98842020-10-10 Aldy Hernandez <aldyh@redhat.com> 9885 9886 PR tree-optimization/97359 9887 * gimple-range-gori.cc (logical_stmt_cache::cacheable_p): Only 9888 handle ANDs and ORs. 9889 (gori_compute_cache::cache_stmt): Adjust comment. 9890 98912020-10-09 Vladimir Makarov <vmakarov@redhat.com> 9892 9893 PR rtl-optimization/97313 9894 * lra-constraints.c (match_reload): Don't keep strict_low_part in 9895 reloads for non-registers. 9896 98972020-10-09 H.J. Lu <hjl.tools@gmail.com> 9898 9899 PR target/97148 9900 * config.gcc (extra_headers): Add x86gprintrin.h. 9901 * config/i386/adxintrin.h: Check _X86GPRINTRIN_H_INCLUDED for 9902 <x86gprintrin.h>. 9903 * config/i386/bmi2intrin.h: Likewise. 9904 * config/i386/bmiintrin.h: Likewise. 9905 * config/i386/cetintrin.h: Likewise. 9906 * config/i386/cldemoteintrin.h: Likewise. 9907 * config/i386/clflushoptintrin.h: Likewise. 9908 * config/i386/clwbintrin.h: Likewise. 9909 * config/i386/enqcmdintrin.h: Likewise. 9910 * config/i386/fxsrintrin.h: Likewise. 9911 * config/i386/ia32intrin.h: Likewise. 9912 * config/i386/lwpintrin.h: Likewise. 9913 * config/i386/lzcntintrin.h: Likewise. 9914 * config/i386/movdirintrin.h: Likewise. 9915 * config/i386/pconfigintrin.h: Likewise. 9916 * config/i386/pkuintrin.h: Likewise. 9917 * config/i386/rdseedintrin.h: Likewise. 9918 * config/i386/rtmintrin.h: Likewise. 9919 * config/i386/serializeintrin.h: Likewise. 9920 * config/i386/tbmintrin.h: Likewise. 9921 * config/i386/tsxldtrkintrin.h: Likewise. 9922 * config/i386/waitpkgintrin.h: Likewise. 9923 * config/i386/wbnoinvdintrin.h: Likewise. 9924 * config/i386/xsavecintrin.h: Likewise. 9925 * config/i386/xsaveintrin.h: Likewise. 9926 * config/i386/xsaveoptintrin.h: Likewise. 9927 * config/i386/xsavesintrin.h: Likewise. 9928 * config/i386/xtestintrin.h: Likewise. 9929 * config/i386/immintrin.h: Include <x86gprintrin.h> instead of 9930 <fxsrintrin.h>, <xsaveintrin.h>, <xsaveoptintrin.h>, 9931 <xsavesintrin.h>, <xsavecintrin.h>, <lzcntintrin.h>, 9932 <bmiintrin.h>, <bmi2intrin.h>, <xtestintrin.h>, <cetintrin.h>, 9933 <movdirintrin.h>, <sgxintrin.h, <pconfigintrin.h>, 9934 <waitpkgintrin.h>, <cldemoteintrin.h>, <enqcmdintrin.h>, 9935 <serializeintrin.h>, <tsxldtrkintrin.h>, <adxintrin.h>, 9936 <clwbintrin.h>, <clflushoptintrin.h>, <wbnoinvdintrin.h> and 9937 <pkuintrin.h>. 9938 (_wbinvd): Moved to config/i386/x86gprintrin.h. 9939 (_rdrand16_step): Likewise. 9940 (_rdrand32_step): Likewise. 9941 (_rdpid_u32): Likewise. 9942 (_readfsbase_u32): Likewise. 9943 (_readfsbase_u64): Likewise. 9944 (_readgsbase_u32): Likewise. 9945 (_readgsbase_u64): Likewise. 9946 (_writefsbase_u32): Likewise. 9947 (_writefsbase_u64): Likewise. 9948 (_writegsbase_u32): Likewise. 9949 (_writegsbase_u64): Likewise. 9950 (_rdrand64_step): Likewise. 9951 (_ptwrite64): Likewise. 9952 (_ptwrite32): Likewise. 9953 * config/i386/x86gprintrin.h: New file. 9954 * config/i386/x86intrin.h: Include <x86gprintrin.h>. Don't 9955 include <ia32intrin.h>, <lwpintrin.h>, <tbmintrin.h>, 9956 <popcntintrin.h>, <mwaitxintrin.h> and <clzerointrin.h>. 9957 99582020-10-09 Tom de Vries <tdevries@suse.de> 9959 9960 PR target/97348 9961 * config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if 9962 default is used. 9963 * config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35. 9964 99652020-10-09 Richard Biener <rguenther@suse.de> 9966 9967 * doc/sourcebuild.texi (vect_masked_load): Document. 9968 99692020-10-09 Richard Biener <rguenther@suse.de> 9970 9971 PR tree-optimization/97334 9972 * tree-vect-slp.c (vect_build_slp_tree_1): Do not fatally 9973 fail lanes other than zero when BB vectorizing. 9974 99752020-10-09 Jan Hubicka <jh@suse.cz> 9976 9977 PR ipa/97292 9978 PR ipa/97335 9979 * ipa-modref-tree.h (copy_from): Drop summary in a 9980 clone. 9981 99822020-10-09 Richard Biener <rguenther@suse.de> 9983 9984 PR tree-optimization/97347 9985 * tree-vect-slp.c (vect_create_constant_vectors): Use 9986 edge insertion when inserting on the fallthru edge, 9987 appropriately insert at the start of BBs when inserting 9988 after PHIs. 9989 99902020-10-09 Andrew MacLeod <amacleod@redhat.com> 9991 9992 PR tree-optimization/97317 9993 * range-op.cc (operator_cast::op1_range): Handle casts where the precision 9994 of the RHS is only 1 greater than the precision of the LHS. 9995 99962020-10-09 Richard Biener <rguenther@suse.de> 9997 9998 * cgraphunit.c (expand_all_functions): Free tp_first_run_order. 9999 * ipa-modref.c (pass_ipa_modref::execute): Free order. 10000 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Free 10001 loop body. 10002 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Free 10003 data references upon failure. 10004 * tree-vect-loop.c (update_epilogue_loop_vinfo): Free BBs 10005 array of the original loop. 10006 * tree-vect-slp.c (vect_slp_bbs): Use an auto_vec for 10007 dataref_groups to release its memory. 10008 100092020-10-09 Jakub Jelinek <jakub@redhat.com> 10010 10011 PR tree-optimization/94801 10012 PR target/97312 10013 * vr-values.c (vr_values::extract_range_basic) <CASE_CFN_CLZ, 10014 CASE_CFN_CTZ>: When stmt is not an internal-fn call or 10015 C?Z_DEFINED_VALUE_AT_ZERO is not 2, assume argument is not zero 10016 and thus use [0, prec-1] range unless it can be further improved. 10017 For CTZ, don't update maxi from upper bound if it was previously prec. 10018 * gimple-range.cc (gimple_ranger::range_of_builtin_call) <CASE_CFN_CLZ, 10019 CASE_CFN_CTZ>: Likewise. 10020 100212020-10-09 Jakub Jelinek <jakub@redhat.com> 10022 10023 PR tree-optimization/97325 10024 * match.pd (FFS(nonzero) -> CTZ(nonzero) + 1): Cast argument to 10025 corresponding unsigned type. 10026 100272020-10-09 Richard Biener <rguenther@suse.de> 10028 10029 * tree-vect-slp.c (vect_create_constant_vectors): Properly insert 10030 after PHIs. 10031 100322020-10-08 Alexandre Oliva <oliva@adacore.com> 10033 10034 * builtins.c (mathfn_built_in_type): New. 10035 * builtins.h (mathfn_built_in_type): Declare. 10036 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use it to 10037 obtain the type expected by the intrinsic. 10038 100392020-10-08 Will Schmidt <will_schmidt@vnet.ibm.com> 10040 10041 * config/rs6000/rs6000-builtin.def (BU_P10_MISC_2): Rename 10042 to BU_P10_POWERPC64_MISC_2. 10043 CFUGED, CNTLZDM, CNTTZDM, PDEPD, PEXTD): Call renamed macro. 10044 100452020-10-08 Jan Hubicka <jh@suse.cz> 10046 10047 * tree-nrv.c (dest_safe_for_nrv_p): Disable tbaa in 10048 call_may_clobber_ref_p and ref_maybe_used_by_stmt_p. 10049 * tree-tailcall.c (find_tail_calls): Likewise. 10050 * tree-ssa-alias.c (call_may_clobber_ref_p): Add tbaa_p parameter. 10051 * tree-ssa-alias.h (call_may_clobber_ref_p): Update prototype. 10052 * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass data->tbaa_p 10053 to call_may_clobber_ref_p_1. 10054 100552020-10-08 Mark Wielaard <mark@klomp.org> 10056 10057 * dwarf2out.c (dwarf2out_finish): Emit .file 0 entry when 10058 generating DWARF5 .debug_line table through gas. 10059 100602020-10-08 John Henning <john.henning@oracle.com> 10061 10062 PR other/97309 10063 * doc/invoke.texi: Improve documentation of 10064 -fallow-store-data-races. 10065 100662020-10-08 Christophe Lyon <christophe.lyon@linaro.org> 10067 10068 PR target/96914 10069 * config/arm/arm_mve.h (__arm_vcvtnq_u32_f32): New. 10070 100712020-10-08 Martin Liska <mliska@suse.cz> 10072 Richard Biener <rguenther@suse.de> 10073 10074 * tree-vectorizer.h (_bb_vec_info::const_iterator): Remove. 10075 (_bb_vec_info::const_reverse_iterator): Likewise. 10076 (_bb_vec_info::region_stmts): Likewise. 10077 (_bb_vec_info::reverse_region_stmts): Likewise. 10078 (_bb_vec_info::_bb_vec_info): Adjust. 10079 (_bb_vec_info::bb): Remove. 10080 (_bb_vec_info::region_begin): Remove. 10081 (_bb_vec_info::region_end): Remove. 10082 (_bb_vec_info::bbs): New vector of BBs. 10083 (vect_slp_function): Declare. 10084 * tree-vect-patterns.c (vect_determine_precisions): Use 10085 regular stmt iteration. 10086 (vect_pattern_recog): Likewise. 10087 * tree-vect-slp.c: Include cfganal.h, tree-eh.h and tree-cfg.h. 10088 (vect_build_slp_tree_1): Properly refuse to vectorize 10089 volatile and throwing stmts. 10090 (vect_build_slp_tree_2): Pass group-size down to 10091 get_vectype_for_scalar_type. 10092 (_bb_vec_info::_bb_vec_info): Use regular stmt iteration, 10093 adjust for changed region specification. 10094 (_bb_vec_info::~_bb_vec_info): Likewise. 10095 (vect_slp_check_for_constructors): Likewise. 10096 (vect_slp_region): Likewise. 10097 (vect_slp_bbs): New worker operating on a vector of BBs. 10098 (vect_slp_bb): Wrap it. 10099 (vect_slp_function): New function splitting the function 10100 into multi-BB regions. 10101 (vect_create_constant_vectors): Handle the case of inserting 10102 after a throwing def. 10103 (vect_schedule_slp_instance): Adjust. 10104 * tree-vectorizer.c (vec_info::remove_stmt): Simplify again. 10105 (vec_info::insert_seq_on_entry): Adjust. 10106 (pass_slp_vectorize::execute): Also init PHIs. Call 10107 vect_slp_function. 10108 101092020-10-08 Richard Biener <rguenther@suse.de> 10110 10111 PR tree-optimization/97330 10112 * tree-ssa-sink.c (statement_sink_location): Avoid skipping 10113 PHIs when they dominate the insert location. 10114 101152020-10-08 Jan Hubicka <jh@suse.cz> 10116 10117 * ipa-modref.c (get_access): Fix handling of offsets. 10118 * tree-ssa-alias.c (modref_may_conflict): Watch for overflows. 10119 101202020-10-08 Martin Liska <mliska@suse.cz> 10121 10122 * dbgcnt.def (DEBUG_COUNTER): Add ipa_mod_ref debug counter. 10123 * tree-ssa-alias.c (modref_may_conflict): Handle the counter. 10124 101252020-10-08 Richard Biener <rguenther@suse.de> 10126 10127 * tree-vectorizer.c (try_vectorize_loop_1): Do not dump 10128 "basic block vectorized". 10129 (pass_slp_vectorize::execute): Likewise. 10130 * tree-vect-slp.c (vect_analyze_slp_instance): Avoid 10131 re-analyzing split single stmts. 10132 101332020-10-08 Christophe Lyon <christophe.lyon@linaro.org> 10134 10135 PR target/96914 10136 * config/arm/arm_mve.h (vqrdmlashq_n_u8, vqrdmlashq_n_u16) 10137 (vqrdmlashq_n_u32, vqrdmlahq_n_u8, vqrdmlahq_n_u16) 10138 (vqrdmlahq_n_u32, vqdmlahq_n_u8, vqdmlahq_n_u16, vqdmlahq_n_u32) 10139 (vmlaldavaxq_p_u16, vmlaldavaxq_p_u32): Remove. 10140 * config/arm/arm_mve_builtins.def (vqrdmlashq_n_u, vqrdmlahq_n_u) 10141 (vqdmlahq_n_u, vmlaldavaxq_p_u): Remove. 10142 * config/arm/unspecs.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U) 10143 (VQRDMLASHQ_N_U) 10144 (VMLALDAVAXQ_P_U): Remove unspecs. 10145 * config/arm/iterators.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U) 10146 (VQRDMLASHQ_N_U, VMLALDAVAXQ_P_U): Remove attributes. 10147 (VQDMLAHQ_N, VQRDMLAHQ_N, VQRDMLASHQ_N, VMLALDAVAXQ_P): Remove 10148 unsigned variants from iterators. 10149 * config/arm/mve.md (mve_vqdmlahq_n_<supf><mode>) 10150 (mve_vqrdmlahq_n_<supf><mode>) 10151 (mve_vqrdmlashq_n_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>): 10152 Update comment. 10153 101542020-10-08 Christophe Lyon <christophe.lyon@linaro.org> 10155 10156 PR target/96914 10157 * config/arm/arm_mve.h (vqdmlashq, vqdmlashq_m): Define. 10158 * config/arm/arm_mve_builtins.def (vqdmlashq_n_s) 10159 (vqdmlashq_m_n_s,): New. 10160 * config/arm/unspecs.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New 10161 unspecs. 10162 * config/arm/iterators.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New 10163 attributes. 10164 (VQDMLASHQ_N): New iterator. 10165 * config/arm/mve.md (mve_vqdmlashq_n_, mve_vqdmlashq_m_n_s): New 10166 patterns. 10167 101682020-10-08 Jakub Jelinek <jakub@redhat.com> 10169 10170 PR target/97322 10171 * config/arm/arm.c (arm_expand_divmod_libfunc): Pass mode instead of 10172 GET_MODE (op0) or GET_MODE (op1) to emit_library_call_value. 10173 101742020-10-08 Aldy Hernandez <aldyh@redhat.com> 10175 10176 PR tree-optimization/97325 10177 * gimple-range.cc (gimple_ranger::range_of_builtin_call): Handle 10178 negative numbers in __builtin_ffs and __builtin_popcount. 10179 101802020-10-08 Aldy Hernandez <aldyh@redhat.com> 10181 10182 PR tree-optimization/97315 10183 * range-op.cc (value_range_with_overflow): Change any 10184 non-overflow calculation in which both bounds are 10185 overflow/underflow to be undefined. 10186 101872020-10-08 Aldy Hernandez <aldyh@redhat.com> 10188 10189 PR tree-optimization/97315 10190 * gimple-ssa-evrp.c (hybrid_folder::choose_value): Removes the 10191 trap and instead annotates the listing. 10192 101932020-10-08 Jakub Jelinek <jakub@redhat.com> 10194 10195 PR sanitizer/97294 10196 * tree-cfg.c (move_block_to_fn): Call notice_special_calls on 10197 call stmts being moved into dest_cfun. 10198 * omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when 10199 adding __builtin_alloca_with_align call without gimplification. 10200 102012020-10-07 Aldy Hernandez <aldyh@redhat.com> 10202 10203 * common.opt (-fevrp-mode): Rename and move... 10204 * params.opt (--param=evrp-mode): ...here. 10205 * gimple-range.h (DEBUG_RANGE_CACHE): Use param_evrp_mode instead 10206 of flag_evrp_mode. 10207 * gimple-ssa-evrp.c (rvrp_folder): Same. 10208 (hybrid_folder): Same. 10209 (execute_early_vrp): Same. 10210 102112020-10-07 Richard Biener <rguenther@suse.de> 10212 10213 PR tree-optimization/97307 10214 * tree-ssa-sink.c (statement_sink_location): Change heuristic 10215 for not skipping stores to look for virtual definitions 10216 rather than uses. 10217 102182020-10-07 Andrew MacLeod <amacleod@redhat.com> 10219 10220 * value-range.h (irange_allocator::allocate): Allocate in two hunks 10221 instead of using the variably-sized trailing array approach. 10222 102232020-10-07 David Malcolm <dmalcolm@redhat.com> 10224 10225 * doc/invoke.texi (-fdiagnostics-plain-output): Add 10226 -fdiagnostics-path-format=separate-events to list of 10227 options injected by -fdiagnostics-plain-output. 10228 * opts-common.c (decode_cmdline_options_to_array): Likewise. 10229 102302020-10-07 Martin Jambor <mjambor@suse.cz> 10231 10232 PR ipa/96394 10233 * ipa-prop.c (update_indirect_edges_after_inlining): Do not add 10234 resolved speculation edges to vector of new direct edges even in 10235 presence of multiple speculative direct edges for a single call. 10236 102372020-10-07 Andrew Stubbs <ams@codesourcery.com> 10238 10239 * config/gcn/gcn.md (unspec): Add UNSPEC_ADDPTR. 10240 (addptrdi3): Add SGPR alternative. 10241 102422020-10-07 Mark Wielaard <mark@klomp.org> 10243 10244 * dwarf2out.c (add_filepath_AT_string): New function. 10245 (asm_outputs_debug_line_str): Likewise. 10246 (add_filename_attribute): Likewise. 10247 (add_comp_dir_attribute): Call add_filepath_AT_string. 10248 (gen_compile_unit_die): Call add_filename_attribute for name. 10249 (init_sections_and_labels): Init debug_line_str_section when 10250 asm_outputs_debug_line_str return true. 10251 (dwarf2out_early_finish): Remove DW_AT_name and DW_AT_comp_dir 10252 hack and call add_filename_attribute for the remap_debug_filename. 10253 102542020-10-07 Jakub Jelinek <jakub@redhat.com> 10255 10256 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG, 10257 HAVE_AS_WORKING_DWARF_4_FLAG): New tests. 10258 * gcc.c (ASM_DEBUG_DWARF_OPTION): Define. 10259 (ASM_DEBUG_SPEC): Use ASM_DEBUG_DWARF_OPTION instead of 10260 "--gdwarf2". Use %{cond:opt1;:opt2} style. 10261 (ASM_DEBUG_OPTION_DWARF_OPT): Define. 10262 (ASM_DEBUG_OPTION_SPEC): Define. 10263 (asm_debug_option): New variable. 10264 (asm_options): Add "%(asm_debug_option)". 10265 (static_specs): Add asm_debug_option entry. 10266 (static_spec_functions): Add dwarf-version-gt. 10267 (debug_level_greater_than_spec_func): New function. 10268 * config/darwin.h (ASM_DEBUG_OPTION_SPEC): Define. 10269 * config/darwin9.h (ASM_DEBUG_OPTION_SPEC): Redefine. 10270 * config.in: Regenerated. 10271 * configure: Regenerated. 10272 102732020-10-07 Jakub Jelinek <jakub@redhat.com> 10274 10275 PR bootstrap/97305 10276 * optc-save-gen.awk: Don't declare mask variable if explicit_mask 10277 array is not present. 10278 102792020-10-07 Jakub Jelinek <jakub@redhat.com> 10280 10281 * omp-expand.c (expand_omp_simd): Don't emit MIN_EXPR and PLUS_EXPR 10282 at the end of entry_bb and innermost init_bb, instead force arguments 10283 for MIN_EXPR into temporaries in both cases and jump to a new bb that 10284 performs MIN_EXPR and PLUS_EXPR. 10285 102862020-10-07 Tom de Vries <tdevries@suse.de> 10287 10288 * tree-ssa-loop-ch.c (ch_base::copy_headers): Add missing NULL test 10289 for dump_file. 10290 102912020-10-06 Andrew MacLeod <amacleod@redhat.com> 10292 10293 * flag-types.h (enum evrp_mode): New enumerated type EVRP_MODE_*. 10294 * common.opt (fevrp-mode): New undocumented flag. 10295 * gimple-ssa-evrp.c: Include gimple-range.h 10296 (class rvrp_folder): EVRP folding using ranger exclusively. 10297 (rvrp_folder::rvrp_folder): New. 10298 (rvrp_folder::~rvrp_folder): New. 10299 (rvrp_folder::value_of_expr): New. Use rangers value_of_expr. 10300 (rvrp_folder::value_on_edge): New. Use rangers value_on_edge. 10301 (rvrp_folder::value_of_Stmt): New. Use rangers value_of_stmt. 10302 (rvrp_folder::fold_stmt): New. Call the simplifier. 10303 (class hybrid_folder): EVRP folding using both engines. 10304 (hybrid_folder::hybrid_folder): New. 10305 (hybrid_folder::~hybrid_folder): New. 10306 (hybrid_folder::fold_stmt): New. Simplify with one engne, then the 10307 other. 10308 (hybrid_folder::value_of_expr): New. Use both value routines. 10309 (hybrid_folder::value_on_edge): New. Use both value routines. 10310 (hybrid_folder::value_of_stmt): New. Use both value routines. 10311 (hybrid_folder::choose_value): New. Choose between range_analzyer and 10312 rangers values. 10313 (execute_early_vrp): Choose a folder based on flag_evrp_mode. 10314 * vr-values.c (simplify_using_ranges::fold_cond): Try range_of_stmt 10315 first to see if it returns a value. 10316 (simplify_using_ranges::simplify_switch_using_ranges): Return true if 10317 any changes were made to the switch. 10318 103192020-10-06 Andrew MacLeod <amacleod@redhat.com> 10320 10321 * Makefile.in (OBJS): Add gimple-range*.o. 10322 * gimple-range.h: New file. 10323 * gimple-range.cc: New file. 10324 * gimple-range-cache.h: New file. 10325 * gimple-range-cache.cc: New file. 10326 * gimple-range-edge.h: New file. 10327 * gimple-range-edge.cc: New file. 10328 * gimple-range-gori.h: New file. 10329 * gimple-range-gori.cc: New file. 10330 103312020-10-06 Dennis Zhang <dennis.zhang@arm.com> 10332 10333 * config/arm/arm.c (arm_preferred_simd_mode): Enable MVE SIMD modes. 10334 103352020-10-06 Tom de Vries <tdevries@suse.de> 10336 10337 PR middle-end/90861 10338 * gimplify.c (gimplify_bind_expr): Handle lookup in 10339 oacc_declare_returns using key with decl-expr. 10340 103412020-10-06 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 10342 10343 * config/arm/iterators.md (MVE_types): Move mode iterator from mve.md to 10344 iterators.md. 10345 (MVE_VLD_ST): Likewise. 10346 (MVE_0): Likewise. 10347 (MVE_1): Likewise. 10348 (MVE_3): Likewise. 10349 (MVE_2): Likewise. 10350 (MVE_5): Likewise. 10351 (MVE_6): Likewise. 10352 (MVE_CNVT): Move mode attribute iterator from mve.md to iterators.md. 10353 (MVE_LANES): Likewise. 10354 (MVE_constraint): Likewise. 10355 (MVE_constraint1): Likewise. 10356 (MVE_constraint2): Likewise. 10357 (MVE_constraint3): Likewise. 10358 (MVE_pred): Likewise. 10359 (MVE_pred1): Likewise. 10360 (MVE_pred2): Likewise. 10361 (MVE_pred3): Likewise. 10362 (MVE_B_ELEM): Likewise. 10363 (MVE_H_ELEM): Likewise. 10364 (V_sz_elem1): Likewise. 10365 (V_extr_elem): Likewise. 10366 (earlyclobber_32): Likewise. 10367 (supf): Move int attribute from mve.md to iterators.md. 10368 (mode1): Likewise. 10369 (VCVTQ_TO_F): Move int iterator from mve.md to iterators.md. 10370 (VMVNQ_N): Likewise. 10371 (VREV64Q): Likewise. 10372 (VCVTQ_FROM_F): Likewise. 10373 (VREV16Q): Likewise. 10374 (VCVTAQ): Likewise. 10375 (VMVNQ): Likewise. 10376 (VDUPQ_N): Likewise. 10377 (VCLZQ): Likewise. 10378 (VADDVQ): Likewise. 10379 (VREV32Q): Likewise. 10380 (VMOVLBQ): Likewise. 10381 (VMOVLTQ): Likewise. 10382 (VCVTPQ): Likewise. 10383 (VCVTNQ): Likewise. 10384 (VCVTMQ): Likewise. 10385 (VADDLVQ): Likewise. 10386 (VCTPQ): Likewise. 10387 (VCTPQ_M): Likewise. 10388 (VCVTQ_N_TO_F): Likewise. 10389 (VCREATEQ): Likewise. 10390 (VSHRQ_N): Likewise. 10391 (VCVTQ_N_FROM_F): Likewise. 10392 (VADDLVQ_P): Likewise. 10393 (VCMPNEQ): Likewise. 10394 (VSHLQ): Likewise. 10395 (VABDQ): Likewise. 10396 (VADDQ_N): Likewise. 10397 (VADDVAQ): Likewise. 10398 (VADDVQ_P): Likewise. 10399 (VANDQ): Likewise. 10400 (VBICQ): Likewise. 10401 (VBRSRQ_N): Likewise. 10402 (VCADDQ_ROT270): Likewise. 10403 (VCADDQ_ROT90): Likewise. 10404 (VCMPEQQ): Likewise. 10405 (VCMPEQQ_N): Likewise. 10406 (VCMPNEQ_N): Likewise. 10407 (VEORQ): Likewise. 10408 (VHADDQ): Likewise. 10409 (VHADDQ_N): Likewise. 10410 (VHSUBQ): Likewise. 10411 (VHSUBQ_N): Likewise. 10412 (VMAXQ): Likewise. 10413 (VMAXVQ): Likewise. 10414 (VMINQ): Likewise. 10415 (VMINVQ): Likewise. 10416 (VMLADAVQ): Likewise. 10417 (VMULHQ): Likewise. 10418 (VMULLBQ_INT): Likewise. 10419 (VMULLTQ_INT): Likewise. 10420 (VMULQ): Likewise. 10421 (VMULQ_N): Likewise. 10422 (VORNQ): Likewise. 10423 (VORRQ): Likewise. 10424 (VQADDQ): Likewise. 10425 (VQADDQ_N): Likewise. 10426 (VQRSHLQ): Likewise. 10427 (VQRSHLQ_N): Likewise. 10428 (VQSHLQ): Likewise. 10429 (VQSHLQ_N): Likewise. 10430 (VQSHLQ_R): Likewise. 10431 (VQSUBQ): Likewise. 10432 (VQSUBQ_N): Likewise. 10433 (VRHADDQ): Likewise. 10434 (VRMULHQ): Likewise. 10435 (VRSHLQ): Likewise. 10436 (VRSHLQ_N): Likewise. 10437 (VRSHRQ_N): Likewise. 10438 (VSHLQ_N): Likewise. 10439 (VSHLQ_R): Likewise. 10440 (VSUBQ): Likewise. 10441 (VSUBQ_N): Likewise. 10442 (VADDLVAQ): Likewise. 10443 (VBICQ_N): Likewise. 10444 (VMLALDAVQ): Likewise. 10445 (VMLALDAVXQ): Likewise. 10446 (VMOVNBQ): Likewise. 10447 (VMOVNTQ): Likewise. 10448 (VORRQ_N): Likewise. 10449 (VQMOVNBQ): Likewise. 10450 (VQMOVNTQ): Likewise. 10451 (VSHLLBQ_N): Likewise. 10452 (VSHLLTQ_N): Likewise. 10453 (VRMLALDAVHQ): Likewise. 10454 (VBICQ_M_N): Likewise. 10455 (VCVTAQ_M): Likewise. 10456 (VCVTQ_M_TO_F): Likewise. 10457 (VQRSHRNBQ_N): Likewise. 10458 (VABAVQ): Likewise. 10459 (VSHLCQ): Likewise. 10460 (VRMLALDAVHAQ): Likewise. 10461 (VADDVAQ_P): Likewise. 10462 (VCLZQ_M): Likewise. 10463 (VCMPEQQ_M_N): Likewise. 10464 (VCMPEQQ_M): Likewise. 10465 (VCMPNEQ_M_N): Likewise. 10466 (VCMPNEQ_M): Likewise. 10467 (VDUPQ_M_N): Likewise. 10468 (VMAXVQ_P): Likewise. 10469 (VMINVQ_P): Likewise. 10470 (VMLADAVAQ): Likewise. 10471 (VMLADAVQ_P): Likewise. 10472 (VMLAQ_N): Likewise. 10473 (VMLASQ_N): Likewise. 10474 (VMVNQ_M): Likewise. 10475 (VPSELQ): Likewise. 10476 (VQDMLAHQ_N): Likewise. 10477 (VQRDMLAHQ_N): Likewise. 10478 (VQRDMLASHQ_N): Likewise. 10479 (VQRSHLQ_M_N): Likewise. 10480 (VQSHLQ_M_R): Likewise. 10481 (VREV64Q_M): Likewise. 10482 (VRSHLQ_M_N): Likewise. 10483 (VSHLQ_M_R): Likewise. 10484 (VSLIQ_N): Likewise. 10485 (VSRIQ_N): Likewise. 10486 (VMLALDAVQ_P): Likewise. 10487 (VQMOVNBQ_M): Likewise. 10488 (VMOVLTQ_M): Likewise. 10489 (VMOVNBQ_M): Likewise. 10490 (VRSHRNTQ_N): Likewise. 10491 (VORRQ_M_N): Likewise. 10492 (VREV32Q_M): Likewise. 10493 (VREV16Q_M): Likewise. 10494 (VQRSHRNTQ_N): Likewise. 10495 (VMOVNTQ_M): Likewise. 10496 (VMOVLBQ_M): Likewise. 10497 (VMLALDAVAQ): Likewise. 10498 (VQSHRNBQ_N): Likewise. 10499 (VSHRNBQ_N): Likewise. 10500 (VRSHRNBQ_N): Likewise. 10501 (VMLALDAVXQ_P): Likewise. 10502 (VQMOVNTQ_M): Likewise. 10503 (VMVNQ_M_N): Likewise. 10504 (VQSHRNTQ_N): Likewise. 10505 (VMLALDAVAXQ): Likewise. 10506 (VSHRNTQ_N): Likewise. 10507 (VCVTMQ_M): Likewise. 10508 (VCVTNQ_M): Likewise. 10509 (VCVTPQ_M): Likewise. 10510 (VCVTQ_M_N_FROM_F): Likewise. 10511 (VCVTQ_M_FROM_F): Likewise. 10512 (VRMLALDAVHQ_P): Likewise. 10513 (VADDLVAQ_P): Likewise. 10514 (VABAVQ_P): Likewise. 10515 (VSHLQ_M): Likewise. 10516 (VSRIQ_M_N): Likewise. 10517 (VSUBQ_M): Likewise. 10518 (VCVTQ_M_N_TO_F): Likewise. 10519 (VHSUBQ_M): Likewise. 10520 (VSLIQ_M_N): Likewise. 10521 (VRSHLQ_M): Likewise. 10522 (VMINQ_M): Likewise. 10523 (VMULLBQ_INT_M): Likewise. 10524 (VMULHQ_M): Likewise. 10525 (VMULQ_M): Likewise. 10526 (VHSUBQ_M_N): Likewise. 10527 (VHADDQ_M_N): Likewise. 10528 (VORRQ_M): Likewise. 10529 (VRMULHQ_M): Likewise. 10530 (VQADDQ_M): Likewise. 10531 (VRSHRQ_M_N): Likewise. 10532 (VQSUBQ_M_N): Likewise. 10533 (VADDQ_M): Likewise. 10534 (VORNQ_M): Likewise. 10535 (VRHADDQ_M): Likewise. 10536 (VQSHLQ_M): Likewise. 10537 (VANDQ_M): Likewise. 10538 (VBICQ_M): Likewise. 10539 (VSHLQ_M_N): Likewise. 10540 (VCADDQ_ROT270_M): Likewise. 10541 (VQRSHLQ_M): Likewise. 10542 (VQADDQ_M_N): Likewise. 10543 (VADDQ_M_N): Likewise. 10544 (VMAXQ_M): Likewise. 10545 (VQSUBQ_M): Likewise. 10546 (VMLASQ_M_N): Likewise. 10547 (VMLADAVAQ_P): Likewise. 10548 (VBRSRQ_M_N): Likewise. 10549 (VMULQ_M_N): Likewise. 10550 (VCADDQ_ROT90_M): Likewise. 10551 (VMULLTQ_INT_M): Likewise. 10552 (VEORQ_M): Likewise. 10553 (VSHRQ_M_N): Likewise. 10554 (VSUBQ_M_N): Likewise. 10555 (VHADDQ_M): Likewise. 10556 (VABDQ_M): Likewise. 10557 (VMLAQ_M_N): Likewise. 10558 (VQSHLQ_M_N): Likewise. 10559 (VMLALDAVAQ_P): Likewise. 10560 (VMLALDAVAXQ_P): Likewise. 10561 (VQRSHRNBQ_M_N): Likewise. 10562 (VQRSHRNTQ_M_N): Likewise. 10563 (VQSHRNBQ_M_N): Likewise. 10564 (VQSHRNTQ_M_N): Likewise. 10565 (VRSHRNBQ_M_N): Likewise. 10566 (VRSHRNTQ_M_N): Likewise. 10567 (VSHLLBQ_M_N): Likewise. 10568 (VSHLLTQ_M_N): Likewise. 10569 (VSHRNBQ_M_N): Likewise. 10570 (VSHRNTQ_M_N): Likewise. 10571 (VSTRWSBQ): Likewise. 10572 (VSTRBSOQ): Likewise. 10573 (VSTRBQ): Likewise. 10574 (VLDRBGOQ): Likewise. 10575 (VLDRBQ): Likewise. 10576 (VLDRWGBQ): Likewise. 10577 (VLD1Q): Likewise. 10578 (VLDRHGOQ): Likewise. 10579 (VLDRHGSOQ): Likewise. 10580 (VLDRHQ): Likewise. 10581 (VLDRWQ): Likewise. 10582 (VLDRDGBQ): Likewise. 10583 (VLDRDGOQ): Likewise. 10584 (VLDRDGSOQ): Likewise. 10585 (VLDRWGOQ): Likewise. 10586 (VLDRWGSOQ): Likewise. 10587 (VST1Q): Likewise. 10588 (VSTRHSOQ): Likewise. 10589 (VSTRHSSOQ): Likewise. 10590 (VSTRHQ): Likewise. 10591 (VSTRWQ): Likewise. 10592 (VSTRDSBQ): Likewise. 10593 (VSTRDSOQ): Likewise. 10594 (VSTRDSSOQ): Likewise. 10595 (VSTRWSOQ): Likewise. 10596 (VSTRWSSOQ): Likewise. 10597 (VSTRWSBWBQ): Likewise. 10598 (VLDRWGBWBQ): Likewise. 10599 (VSTRDSBWBQ): Likewise. 10600 (VLDRDGBWBQ): Likewise. 10601 (VADCIQ): Likewise. 10602 (VADCIQ_M): Likewise. 10603 (VSBCQ): Likewise. 10604 (VSBCQ_M): Likewise. 10605 (VSBCIQ): Likewise. 10606 (VSBCIQ_M): Likewise. 10607 (VADCQ): Likewise. 10608 (VADCQ_M): Likewise. 10609 (UQRSHLLQ): Likewise. 10610 (SQRSHRLQ): Likewise. 10611 (VSHLCQ_M): Likewise. 10612 * config/arm/mve.md (MVE_types): Move mode iterator to iterators.md from mve.md. 10613 (MVE_VLD_ST): Likewise. 10614 (MVE_0): Likewise. 10615 (MVE_1): Likewise. 10616 (MVE_3): Likewise. 10617 (MVE_2): Likewise. 10618 (MVE_5): Likewise. 10619 (MVE_6): Likewise. 10620 (MVE_CNVT): Move mode attribute iterator to iterators.md from mve.md. 10621 (MVE_LANES): Likewise. 10622 (MVE_constraint): Likewise. 10623 (MVE_constraint1): Likewise. 10624 (MVE_constraint2): Likewise. 10625 (MVE_constraint3): Likewise. 10626 (MVE_pred): Likewise. 10627 (MVE_pred1): Likewise. 10628 (MVE_pred2): Likewise. 10629 (MVE_pred3): Likewise. 10630 (MVE_B_ELEM): Likewise. 10631 (MVE_H_ELEM): Likewise. 10632 (V_sz_elem1): Likewise. 10633 (V_extr_elem): Likewise. 10634 (earlyclobber_32): Likewise. 10635 (supf): Move int attribute to iterators.md from mve.md. 10636 (mode1): Likewise. 10637 (VCVTQ_TO_F): Move int iterator to iterators.md from mve.md. 10638 (VMVNQ_N): Likewise. 10639 (VREV64Q): Likewise. 10640 (VCVTQ_FROM_F): Likewise. 10641 (VREV16Q): Likewise. 10642 (VCVTAQ): Likewise. 10643 (VMVNQ): Likewise. 10644 (VDUPQ_N): Likewise. 10645 (VCLZQ): Likewise. 10646 (VADDVQ): Likewise. 10647 (VREV32Q): Likewise. 10648 (VMOVLBQ): Likewise. 10649 (VMOVLTQ): Likewise. 10650 (VCVTPQ): Likewise. 10651 (VCVTNQ): Likewise. 10652 (VCVTMQ): Likewise. 10653 (VADDLVQ): Likewise. 10654 (VCTPQ): Likewise. 10655 (VCTPQ_M): Likewise. 10656 (VCVTQ_N_TO_F): Likewise. 10657 (VCREATEQ): Likewise. 10658 (VSHRQ_N): Likewise. 10659 (VCVTQ_N_FROM_F): Likewise. 10660 (VADDLVQ_P): Likewise. 10661 (VCMPNEQ): Likewise. 10662 (VSHLQ): Likewise. 10663 (VABDQ): Likewise. 10664 (VADDQ_N): Likewise. 10665 (VADDVAQ): Likewise. 10666 (VADDVQ_P): Likewise. 10667 (VANDQ): Likewise. 10668 (VBICQ): Likewise. 10669 (VBRSRQ_N): Likewise. 10670 (VCADDQ_ROT270): Likewise. 10671 (VCADDQ_ROT90): Likewise. 10672 (VCMPEQQ): Likewise. 10673 (VCMPEQQ_N): Likewise. 10674 (VCMPNEQ_N): Likewise. 10675 (VEORQ): Likewise. 10676 (VHADDQ): Likewise. 10677 (VHADDQ_N): Likewise. 10678 (VHSUBQ): Likewise. 10679 (VHSUBQ_N): Likewise. 10680 (VMAXQ): Likewise. 10681 (VMAXVQ): Likewise. 10682 (VMINQ): Likewise. 10683 (VMINVQ): Likewise. 10684 (VMLADAVQ): Likewise. 10685 (VMULHQ): Likewise. 10686 (VMULLBQ_INT): Likewise. 10687 (VMULLTQ_INT): Likewise. 10688 (VMULQ): Likewise. 10689 (VMULQ_N): Likewise. 10690 (VORNQ): Likewise. 10691 (VORRQ): Likewise. 10692 (VQADDQ): Likewise. 10693 (VQADDQ_N): Likewise. 10694 (VQRSHLQ): Likewise. 10695 (VQRSHLQ_N): Likewise. 10696 (VQSHLQ): Likewise. 10697 (VQSHLQ_N): Likewise. 10698 (VQSHLQ_R): Likewise. 10699 (VQSUBQ): Likewise. 10700 (VQSUBQ_N): Likewise. 10701 (VRHADDQ): Likewise. 10702 (VRMULHQ): Likewise. 10703 (VRSHLQ): Likewise. 10704 (VRSHLQ_N): Likewise. 10705 (VRSHRQ_N): Likewise. 10706 (VSHLQ_N): Likewise. 10707 (VSHLQ_R): Likewise. 10708 (VSUBQ): Likewise. 10709 (VSUBQ_N): Likewise. 10710 (VADDLVAQ): Likewise. 10711 (VBICQ_N): Likewise. 10712 (VMLALDAVQ): Likewise. 10713 (VMLALDAVXQ): Likewise. 10714 (VMOVNBQ): Likewise. 10715 (VMOVNTQ): Likewise. 10716 (VORRQ_N): Likewise. 10717 (VQMOVNBQ): Likewise. 10718 (VQMOVNTQ): Likewise. 10719 (VSHLLBQ_N): Likewise. 10720 (VSHLLTQ_N): Likewise. 10721 (VRMLALDAVHQ): Likewise. 10722 (VBICQ_M_N): Likewise. 10723 (VCVTAQ_M): Likewise. 10724 (VCVTQ_M_TO_F): Likewise. 10725 (VQRSHRNBQ_N): Likewise. 10726 (VABAVQ): Likewise. 10727 (VSHLCQ): Likewise. 10728 (VRMLALDAVHAQ): Likewise. 10729 (VADDVAQ_P): Likewise. 10730 (VCLZQ_M): Likewise. 10731 (VCMPEQQ_M_N): Likewise. 10732 (VCMPEQQ_M): Likewise. 10733 (VCMPNEQ_M_N): Likewise. 10734 (VCMPNEQ_M): Likewise. 10735 (VDUPQ_M_N): Likewise. 10736 (VMAXVQ_P): Likewise. 10737 (VMINVQ_P): Likewise. 10738 (VMLADAVAQ): Likewise. 10739 (VMLADAVQ_P): Likewise. 10740 (VMLAQ_N): Likewise. 10741 (VMLASQ_N): Likewise. 10742 (VMVNQ_M): Likewise. 10743 (VPSELQ): Likewise. 10744 (VQDMLAHQ_N): Likewise. 10745 (VQRDMLAHQ_N): Likewise. 10746 (VQRDMLASHQ_N): Likewise. 10747 (VQRSHLQ_M_N): Likewise. 10748 (VQSHLQ_M_R): Likewise. 10749 (VREV64Q_M): Likewise. 10750 (VRSHLQ_M_N): Likewise. 10751 (VSHLQ_M_R): Likewise. 10752 (VSLIQ_N): Likewise. 10753 (VSRIQ_N): Likewise. 10754 (VMLALDAVQ_P): Likewise. 10755 (VQMOVNBQ_M): Likewise. 10756 (VMOVLTQ_M): Likewise. 10757 (VMOVNBQ_M): Likewise. 10758 (VRSHRNTQ_N): Likewise. 10759 (VORRQ_M_N): Likewise. 10760 (VREV32Q_M): Likewise. 10761 (VREV16Q_M): Likewise. 10762 (VQRSHRNTQ_N): Likewise. 10763 (VMOVNTQ_M): Likewise. 10764 (VMOVLBQ_M): Likewise. 10765 (VMLALDAVAQ): Likewise. 10766 (VQSHRNBQ_N): Likewise. 10767 (VSHRNBQ_N): Likewise. 10768 (VRSHRNBQ_N): Likewise. 10769 (VMLALDAVXQ_P): Likewise. 10770 (VQMOVNTQ_M): Likewise. 10771 (VMVNQ_M_N): Likewise. 10772 (VQSHRNTQ_N): Likewise. 10773 (VMLALDAVAXQ): Likewise. 10774 (VSHRNTQ_N): Likewise. 10775 (VCVTMQ_M): Likewise. 10776 (VCVTNQ_M): Likewise. 10777 (VCVTPQ_M): Likewise. 10778 (VCVTQ_M_N_FROM_F): Likewise. 10779 (VCVTQ_M_FROM_F): Likewise. 10780 (VRMLALDAVHQ_P): Likewise. 10781 (VADDLVAQ_P): Likewise. 10782 (VABAVQ_P): Likewise. 10783 (VSHLQ_M): Likewise. 10784 (VSRIQ_M_N): Likewise. 10785 (VSUBQ_M): Likewise. 10786 (VCVTQ_M_N_TO_F): Likewise. 10787 (VHSUBQ_M): Likewise. 10788 (VSLIQ_M_N): Likewise. 10789 (VRSHLQ_M): Likewise. 10790 (VMINQ_M): Likewise. 10791 (VMULLBQ_INT_M): Likewise. 10792 (VMULHQ_M): Likewise. 10793 (VMULQ_M): Likewise. 10794 (VHSUBQ_M_N): Likewise. 10795 (VHADDQ_M_N): Likewise. 10796 (VORRQ_M): Likewise. 10797 (VRMULHQ_M): Likewise. 10798 (VQADDQ_M): Likewise. 10799 (VRSHRQ_M_N): Likewise. 10800 (VQSUBQ_M_N): Likewise. 10801 (VADDQ_M): Likewise. 10802 (VORNQ_M): Likewise. 10803 (VRHADDQ_M): Likewise. 10804 (VQSHLQ_M): Likewise. 10805 (VANDQ_M): Likewise. 10806 (VBICQ_M): Likewise. 10807 (VSHLQ_M_N): Likewise. 10808 (VCADDQ_ROT270_M): Likewise. 10809 (VQRSHLQ_M): Likewise. 10810 (VQADDQ_M_N): Likewise. 10811 (VADDQ_M_N): Likewise. 10812 (VMAXQ_M): Likewise. 10813 (VQSUBQ_M): Likewise. 10814 (VMLASQ_M_N): Likewise. 10815 (VMLADAVAQ_P): Likewise. 10816 (VBRSRQ_M_N): Likewise. 10817 (VMULQ_M_N): Likewise. 10818 (VCADDQ_ROT90_M): Likewise. 10819 (VMULLTQ_INT_M): Likewise. 10820 (VEORQ_M): Likewise. 10821 (VSHRQ_M_N): Likewise. 10822 (VSUBQ_M_N): Likewise. 10823 (VHADDQ_M): Likewise. 10824 (VABDQ_M): Likewise. 10825 (VMLAQ_M_N): Likewise. 10826 (VQSHLQ_M_N): Likewise. 10827 (VMLALDAVAQ_P): Likewise. 10828 (VMLALDAVAXQ_P): Likewise. 10829 (VQRSHRNBQ_M_N): Likewise. 10830 (VQRSHRNTQ_M_N): Likewise. 10831 (VQSHRNBQ_M_N): Likewise. 10832 (VQSHRNTQ_M_N): Likewise. 10833 (VRSHRNBQ_M_N): Likewise. 10834 (VRSHRNTQ_M_N): Likewise. 10835 (VSHLLBQ_M_N): Likewise. 10836 (VSHLLTQ_M_N): Likewise. 10837 (VSHRNBQ_M_N): Likewise. 10838 (VSHRNTQ_M_N): Likewise. 10839 (VSTRWSBQ): Likewise. 10840 (VSTRBSOQ): Likewise. 10841 (VSTRBQ): Likewise. 10842 (VLDRBGOQ): Likewise. 10843 (VLDRBQ): Likewise. 10844 (VLDRWGBQ): Likewise. 10845 (VLD1Q): Likewise. 10846 (VLDRHGOQ): Likewise. 10847 (VLDRHGSOQ): Likewise. 10848 (VLDRHQ): Likewise. 10849 (VLDRWQ): Likewise. 10850 (VLDRDGBQ): Likewise. 10851 (VLDRDGOQ): Likewise. 10852 (VLDRDGSOQ): Likewise. 10853 (VLDRWGOQ): Likewise. 10854 (VLDRWGSOQ): Likewise. 10855 (VST1Q): Likewise. 10856 (VSTRHSOQ): Likewise. 10857 (VSTRHSSOQ): Likewise. 10858 (VSTRHQ): Likewise. 10859 (VSTRWQ): Likewise. 10860 (VSTRDSBQ): Likewise. 10861 (VSTRDSOQ): Likewise. 10862 (VSTRDSSOQ): Likewise. 10863 (VSTRWSOQ): Likewise. 10864 (VSTRWSSOQ): Likewise. 10865 (VSTRWSBWBQ): Likewise. 10866 (VLDRWGBWBQ): Likewise. 10867 (VSTRDSBWBQ): Likewise. 10868 (VLDRDGBWBQ): Likewise. 10869 (VADCIQ): Likewise. 10870 (VADCIQ_M): Likewise. 10871 (VSBCQ): Likewise. 10872 (VSBCQ_M): Likewise. 10873 (VSBCIQ): Likewise. 10874 (VSBCIQ_M): Likewise. 10875 (VADCQ): Likewise. 10876 (VADCQ_M): Likewise. 10877 (UQRSHLLQ): Likewise. 10878 (SQRSHRLQ): Likewise. 10879 (VSHLCQ_M): Likewise. 10880 (define_c_enum "unspec"): Move MVE enumerator to unspecs.md from mve.md. 10881 * config/arm/unspecs.md (define_c_enum "unspec"): Move MVE enumerator from 10882 mve.md to unspecs.md. 10883 108842020-10-06 Martin Liska <mliska@suse.cz> 10885 10886 * common.opt: Remove -fdbg-cnt-list from deferred options. 10887 * dbgcnt.c (dbg_cnt_set_limit_by_index): Make a copy 10888 to original_limits. 10889 (dbg_cnt_list_all_counters): Print also current counter value 10890 and print to stderr. 10891 * opts-global.c (handle_common_deferred_options): Do not handle 10892 -fdbg-cnt-list. 10893 * opts.c (common_handle_option): Likewise. 10894 * toplev.c (finalize): Handle it after compilation here. 10895 108962020-10-06 Martin Liska <mliska@suse.cz> 10897 10898 * dbgcnt.c (dbg_cnt): Report also upper limit. 10899 109002020-10-06 Tom de Vries <tdevries@suse.de> 10901 10902 * tracer.c (count_insns): Rename to ... 10903 (analyze_bb): ... this. 10904 (cache_can_duplicate_bb_p, cached_can_duplicate_bb_p): New function. 10905 (ignore_bb_p): Use cached_can_duplicate_bb_p. 10906 (tail_duplicate): Call cache_can_duplicate_bb_p. 10907 109082020-10-06 Tom de Vries <tdevries@suse.de> 10909 10910 * tracer.c (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p) 10911 (can_duplicate_bb_p): New function, factored out of ... 10912 (ignore_bb_p): ... here. 10913 109142020-10-06 Jakub Jelinek <jakub@redhat.com> 10915 10916 PR rtl-optimization/97282 10917 * tree-ssa-math-opts.c (divmod_candidate_p): Don't return false for 10918 constant op2 if it is not a power of two and the type has precision 10919 larger than HOST_BITS_PER_WIDE_INT or BITS_PER_WORD. 10920 * internal-fn.c (contains_call_div_mod): New function. 10921 (expand_DIVMOD): If last argument is a constant, try to expand it as 10922 TRUNC_DIV_EXPR followed by TRUNC_MOD_EXPR, but if the sequence 10923 contains any calls or {,U}{DIV,MOD} rtxes, throw it away and use 10924 divmod optab or divmod libfunc. 10925 109262020-10-06 Aldy Hernandez <aldyh@redhat.com> 10927 10928 * value-range.h (irange_allocator::allocate): Increase 10929 newir storage by one. 10930 109312020-10-06 Jakub Jelinek <jakub@redhat.com> 10932 10933 PR middle-end/97289 10934 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Only follow 10935 node->alias_target if it is a FUNCTION_DECL. 10936 109372020-10-06 Joe Ramsay <joe.ramsay@arm.com> 10938 10939 * config/arm/arm-cpus.in: 10940 (ALL_FPU_INTERNAL): Remove vfp_base. 10941 (VFPv2): Remove vfp_base. 10942 (MVE): Remove vfp_base. 10943 (vfp_base): Redefine as implied bit dependent on MVE or FP 10944 (cortex-m55): Add flags to disable MVE, MVE FP, FP and DSP extensions. 10945 * config/arm/arm.c (arm_configure_build_target): Add implied bits to ISA. 10946 * config/arm/parsecpu.awk: 10947 (gen_isa): Print implied bits and their dependencies to ISA header. 10948 (gen_data): Add parsing for implied feature bits. 10949 109502020-10-06 Andreas Krebbel <krebbel@linux.ibm.com> 10951 10952 * doc/invoke.texi: Add z15/arch13 to the list of documented 10953 -march/-mtune options. 10954 109552020-10-05 Aldy Hernandez <aldyh@redhat.com> 10956 10957 * value-range.cc (irange::legacy_intersect): Only handle 10958 legacy ranges. 10959 (irange::legacy_union): Same. 10960 (irange::union_): When unioning legacy with non-legacy, 10961 first convert to legacy and do everything in legacy mode. 10962 (irange::intersect): Same, but for intersect. 10963 * range-op.cc (range_tests): Adjust for above changes. 10964 109652020-10-05 Aldy Hernandez <aldyh@redhat.com> 10966 10967 * range-op.cc (operator_div::wi_fold): Return varying for 10968 division by zero. 10969 (class operator_rshift): Move class up. 10970 (operator_abs::wi_fold): Return [-MIN,-MIN] for ABS([-MIN,-MIN]). 10971 (operator_tests): Adjust tests. 10972 109732020-10-05 Tom de Vries <tdevries@suse.de> 10974 10975 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_XCHG_*. 10976 109772020-10-05 Alex Coplan <alex.coplan@arm.com> 10978 10979 * config/arm/arm-cpus.in (neoverse-v1): Add missing vendor and 10980 part numbers. 10981 109822020-10-05 Tom de Vries <tdevries@suse.de> 10983 10984 * tracer.c (ignore_bb_p): Remove incorrect suggestion. 10985 109862020-10-05 Jakub Jelinek <jakub@redhat.com> 10987 10988 * opth-gen.awk: Don't emit explicit_mask array if n_target_explicit 10989 is equal to n_target_explicit_mask. 10990 * optc-save-gen.awk: Compute has_target_explicit_mask and if false, 10991 don't emit code iterating over explicit_mask array elements. Stream 10992 also explicit_mask_* target members. 10993 109942020-10-05 Jakub Jelinek <jakub@redhat.com> 10995 10996 * gimple-ssa-store-merging.c 10997 (imm_store_chain_info::output_merged_store): Use ~0U instead of ~0 in 10998 unsigned int array initializer. 10999 110002020-10-05 Tom de Vries <tdevries@suse.de> 11001 11002 PR fortran/95654 11003 * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_ENTER_ALLOC, 11004 GOMP_SIMT_VOTE_ANY and GOMP_SIMT_EXIT. 11005 110062020-10-03 Jakub Jelinek <jakub@redhat.com> 11007 11008 * opth-gen.awk: For variables referenced in Mask and InverseMask, 11009 don't use the explicit_mask bitmask array, but add separate 11010 explicit_mask_* members with the same types as the variables. 11011 * optc-save-gen.awk: Save, restore, compare and hash the separate 11012 explicit_mask_* members. 11013 110142020-10-03 Jan Hubicka <hubicka@ucw.cz> 11015 11016 * ipa-modref-tree.c (test_insert_search_collapse): Update andling 11017 of accesses. 11018 (test_merge): Likewise. 11019 * ipa-modref-tree.h (struct modref_access_node): Add offset, size, 11020 max_size, parm_offset and parm_offset_known. 11021 (modref_access_node::useful_p): Constify. 11022 (modref_access_node::range_info_useful_p): New predicate. 11023 (modref_access_node::operator==): New. 11024 (struct modref_parm_map): New structure. 11025 (modref_tree::merge): Update for racking parameters) 11026 * ipa-modref.c (dump_access): Dump new fields. 11027 (get_access): Fill in new fields. 11028 (merge_call_side_effects): Update handling of parm map. 11029 (write_modref_records): Stream new fields. 11030 (read_modref_records): Stream new fields. 11031 (compute_parm_map): Update for new parm map. 11032 (ipa_merge_modref_summary_after_inlining): Update. 11033 (modref_propagate_in_scc): Update. 11034 * tree-ssa-alias.c (modref_may_conflict): Handle known ranges. 11035 110362020-10-03 H.J. Lu <hjl.tools@gmail.com> 11037 11038 PR other/97280 11039 * doc/extend.texi: Replace roudnevenl with roundevenl 11040 110412020-10-02 David Edelsohn <dje.gcc@gmail.com> 11042 Andrew MacLeod <amacleod@redhat.com> 11043 11044 * config/rs6000/rs6000.c: Include ssa.h. Reorder some headers. 11045 * config/rs6000/rs6000-call.c: Same. 11046 110472020-10-02 Martin Jambor <mjambor@suse.cz> 11048 11049 * params.opt (ipa-cp-large-unit-insns): New parameter. 11050 * ipa-cp.c (get_max_overall_size): Use the new parameter. 11051 110522020-10-02 Martin Jambor <mjambor@suse.cz> 11053 11054 * ipa-cp.c (estimate_local_effects): Add overeall_size to dumped 11055 string. 11056 (decide_about_value): Add dumping new overall_size. 11057 110582020-10-02 Martin Jambor <mjambor@suse.cz> 11059 11060 * ipa-fnsummary.h (ipa_freqcounting_predicate): New type. 11061 (ipa_fn_summary): Change the type of loop_iterations and loop_strides 11062 to vectors of ipa_freqcounting_predicate. 11063 (ipa_fn_summary::ipa_fn_summary): Construct the new vectors. 11064 (ipa_call_estimates): New fields loops_with_known_iterations and 11065 loops_with_known_strides. 11066 * ipa-cp.c (hint_time_bonus): Multiply param_ipa_cp_loop_hint_bonus 11067 with the expected frequencies of loops with known iteration count or 11068 stride. 11069 * ipa-fnsummary.c (add_freqcounting_predicate): New function. 11070 (ipa_fn_summary::~ipa_fn_summary): Release the new vectors instead of 11071 just two predicates. 11072 (remap_hint_predicate_after_duplication): Replace with function 11073 remap_freqcounting_preds_after_dup. 11074 (ipa_fn_summary_t::duplicate): Use it or duplicate new vectors. 11075 (ipa_dump_fn_summary): Dump the new vectors. 11076 (analyze_function_body): Compute the loop property vectors. 11077 (ipa_call_context::estimate_size_and_time): Calculate also 11078 loops_with_known_iterations and loops_with_known_strides. Adjusted 11079 dumping accordinly. 11080 (remap_hint_predicate): Replace with function 11081 remap_freqcounting_predicate. 11082 (ipa_merge_fn_summary_after_inlining): Use it. 11083 (inline_read_section): Stream loopcounting vectors instead of two 11084 simple predicates. 11085 (ipa_fn_summary_write): Likewise. 11086 * params.opt (ipa-max-loop-predicates): New parameter. 11087 * doc/invoke.texi (ipa-max-loop-predicates): Document new param. 11088 110892020-10-02 Martin Jambor <mjambor@suse.cz> 11090 11091 * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to use 11092 ipa_call_estimates. 11093 (do_estimate_edge_size): Likewise. 11094 (do_estimate_edge_hints): Likewise. 11095 * ipa-fnsummary.h (struct ipa_call_estimates): New type. 11096 (ipa_call_context::estimate_size_and_time): Adjusted declaration. 11097 (estimate_ipcp_clone_size_and_time): Likewise. 11098 * ipa-cp.c (hint_time_bonus): Changed the type of the second argument 11099 to ipa_call_estimates. 11100 (perform_estimation_of_a_value): Adjusted to use ipa_call_estimates. 11101 (estimate_local_effects): Likewise. 11102 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Adjusted 11103 to return estimates in a single ipa_call_estimates parameter. 11104 (estimate_ipcp_clone_size_and_time): Likewise. 11105 111062020-10-02 Martin Jambor <mjambor@suse.cz> 11107 11108 * ipa-fnsummary.h (ipa_cached_call_context): New forward declaration 11109 and class. 11110 (class ipa_call_context): Make friend ipa_cached_call_context. Moved 11111 methods duplicate_from and release to it too. 11112 * ipa-fnsummary.c (ipa_call_context::duplicate_from): Moved to class 11113 ipa_cached_call_context. 11114 (ipa_call_context::release): Likewise, removed the parameter. 11115 * ipa-inline-analysis.c (node_context_cache_entry): Change the type of 11116 ctx to ipa_cached_call_context. 11117 (do_estimate_edge_time): Remove parameter from the call to 11118 ipa_cached_call_context::release. 11119 111202020-10-02 Martin Jambor <mjambor@suse.cz> 11121 11122 * ipa-prop.h (ipa_auto_call_arg_values): New type. 11123 (class ipa_call_arg_values): Likewise. 11124 (ipa_get_indirect_edge_target): Replaced vector arguments with 11125 ipa_call_arg_values in declaration. Added an overload for 11126 ipa_auto_call_arg_values. 11127 * ipa-fnsummary.h (ipa_call_context): Removed members m_known_vals, 11128 m_known_contexts, m_known_aggs, duplicate_from, release and equal_to, 11129 new members m_avals, store_to_cache and equivalent_to_p. Adjusted 11130 construcotr arguments. 11131 (estimate_ipcp_clone_size_and_time): Replaced vector arguments 11132 with ipa_auto_call_arg_values in declaration. 11133 (evaluate_properties_for_edge): Likewise. 11134 * ipa-cp.c (ipa_get_indirect_edge_target): Adjusted to work on 11135 ipa_call_arg_values rather than on separate vectors. Added an 11136 overload for ipa_auto_call_arg_values. 11137 (devirtualization_time_bonus): Adjusted to work on 11138 ipa_auto_call_arg_values rather than on separate vectors. 11139 (gather_context_independent_values): Adjusted to work on 11140 ipa_auto_call_arg_values rather than on separate vectors. 11141 (perform_estimation_of_a_value): Likewise. 11142 (estimate_local_effects): Likewise. 11143 (modify_known_vectors_with_val): Adjusted both variants to work on 11144 ipa_auto_call_arg_values and rename them to 11145 copy_known_vectors_add_val. 11146 (decide_about_value): Adjusted to work on ipa_call_arg_values rather 11147 than on separate vectors. 11148 (decide_whether_version_node): Likewise. 11149 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Likewise. 11150 (evaluate_properties_for_edge): Likewise. 11151 (ipa_fn_summary_t::duplicate): Likewise. 11152 (estimate_edge_devirt_benefit): Adjusted to work on 11153 ipa_call_arg_values rather than on separate vectors. 11154 (estimate_edge_size_and_time): Likewise. 11155 (estimate_calls_size_and_time_1): Likewise. 11156 (summarize_calls_size_and_time): Adjusted calls to 11157 estimate_edge_size_and_time. 11158 (estimate_calls_size_and_time): Adjusted to work on 11159 ipa_call_arg_values rather than on separate vectors. 11160 (ipa_call_context::ipa_call_context): Construct from a pointer to 11161 ipa_auto_call_arg_values instead of inividual vectors. 11162 (ipa_call_context::duplicate_from): Adjusted to access vectors within 11163 m_avals. 11164 (ipa_call_context::release): Likewise. 11165 (ipa_call_context::equal_to): Likewise. 11166 (ipa_call_context::estimate_size_and_time): Adjusted to work on 11167 ipa_call_arg_values rather than on separate vectors. 11168 (estimate_ipcp_clone_size_and_time): Adjusted to work with 11169 ipa_auto_call_arg_values rather than on separate vectors. 11170 (ipa_merge_fn_summary_after_inlining): Likewise. Adjusted call to 11171 estimate_edge_size_and_time. 11172 (ipa_update_overall_fn_summary): Adjusted call to 11173 estimate_edge_size_and_time. 11174 * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to work with 11175 ipa_auto_call_arg_values rather than with separate vectors. 11176 (do_estimate_edge_size): Likewise. 11177 (do_estimate_edge_hints): Likewise. 11178 * ipa-prop.c (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): 11179 New destructor. 11180 111812020-10-02 Joe Ramsay <joe.ramsay@arm.com> 11182 11183 * config/arm/arm_mve.h (__arm_vmaxnmavq): Remove coercion of scalar 11184 argument. 11185 (__arm_vmaxnmvq): Likewise. 11186 (__arm_vminnmavq): Likewise. 11187 (__arm_vminnmvq): Likewise. 11188 (__arm_vmaxnmavq_p): Likewise. 11189 (__arm_vmaxnmvq_p): Likewise (and delete duplicate definition). 11190 (__arm_vminnmavq_p): Likewise. 11191 (__arm_vminnmvq_p): Likewise. 11192 (__arm_vmaxavq): Likewise. 11193 (__arm_vmaxavq_p): Likewise. 11194 (__arm_vmaxvq): Likewise. 11195 (__arm_vmaxvq_p): Likewise. 11196 (__arm_vminavq): Likewise. 11197 (__arm_vminavq_p): Likewise. 11198 (__arm_vminvq): Likewise. 11199 (__arm_vminvq_p): Likewise. 11200 112012020-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11202 11203 * config/aarch64/aarch64.c (neoversev1_tunings): Define. 11204 * config/aarch64/aarch64-cores.def (zeus): Use it. 11205 (neoverse-v1): Likewise. 11206 112072020-10-02 Jan Hubicka <hubicka@ucw.cz> 11208 11209 * attr-fnspec.h: Update documentation. 11210 (attr_fnsec::return_desc_size): Set to 2 11211 (attr_fnsec::arg_desc_size): Set to 2 11212 * builtin-attrs.def (STR1): Update fnspec. 11213 * internal-fn.def (UBSAN_NULL): Update fnspec. 11214 (UBSAN_VPTR): Update fnspec. 11215 (UBSAN_PTR): Update fnspec. 11216 (ASAN_CHECK): Update fnspec. 11217 (GOACC_DIM_SIZE): Remove fnspec. 11218 (GOACC_DIM_POS): Remove fnspec. 11219 * tree-ssa-alias.c (attr_fnspec::verify): Update verification. 11220 112212020-10-02 Jan Hubicka <jh@suse.cz> 11222 11223 * attr-fnspec.h: New file. 11224 * calls.c (decl_return_flags): Use attr_fnspec. 11225 * gimple.c (gimple_call_arg_flags): Use attr_fnspec. 11226 (gimple_call_return_flags): Use attr_fnspec. 11227 * tree-into-ssa.c (pass_build_ssa::execute): Use attr_fnspec. 11228 * tree-ssa-alias.c (attr_fnspec::verify): New member fuction. 11229 112302020-10-02 Jan Hubicka <jh@suse.cz> 11231 11232 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Break out from ... 11233 (ao_ref_init_from_ptr_and_size): ... here. 11234 112352020-10-02 Jan Hubicka <hubicka@ucw.cz> 11236 11237 * data-streamer-in.c (streamer_read_poly_int64): New function. 11238 * data-streamer-out.c (streamer_write_poly_int64): New function. 11239 * data-streamer.h (streamer_write_poly_int64): Declare. 11240 (streamer_read_poly_int64): Declare. 11241 112422020-10-02 Richard Sandiford <richard.sandiford@arm.com> 11243 11244 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p): 11245 Delete. 11246 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): Likewise. 11247 * config/aarch64/aarch64-sve.md: Add banner comment describing 11248 how merging predicated FP operations are represented. 11249 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2): Split into... 11250 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_relaxed): ...this and... 11251 (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_strict): ...this. 11252 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any): Split into... 11253 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_relaxed): ...this and... 11254 (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_strict): ...this. 11255 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): Split into... 11256 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_relaxed): ...this and... 11257 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_strict): ...this. 11258 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Split into... 11259 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_relaxed): ...this 11260 and... 11261 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_strict): ...this. 11262 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2): Split into... 11263 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_relaxed): ...this and... 11264 (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_strict): ...this. 11265 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const): Split into... 11266 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_relaxed): ...this 11267 and... 11268 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_strict): ...this. 11269 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3): Split into... 11270 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_relaxed): ...this and... 11271 (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_strict): ...this. 11272 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any): Split into... 11273 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_relaxed): ...this and... 11274 (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_strict): ...this. 11275 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const): Split into... 11276 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_relaxed): ...this 11277 and... 11278 (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_strict): ...this. 11279 (*cond_add<mode>_2_const): Split into... 11280 (*cond_add<mode>_2_const_relaxed): ...this and... 11281 (*cond_add<mode>_2_const_strict): ...this. 11282 (*cond_add<mode>_any_const): Split into... 11283 (*cond_add<mode>_any_const_relaxed): ...this and... 11284 (*cond_add<mode>_any_const_strict): ...this. 11285 (*cond_<SVE_COND_FCADD:optab><mode>_2): Split into... 11286 (*cond_<SVE_COND_FCADD:optab><mode>_2_relaxed): ...this and... 11287 (*cond_<SVE_COND_FCADD:optab><mode>_2_strict): ...this. 11288 (*cond_<SVE_COND_FCADD:optab><mode>_any): Split into... 11289 (*cond_<SVE_COND_FCADD:optab><mode>_any_relaxed): ...this and... 11290 (*cond_<SVE_COND_FCADD:optab><mode>_any_strict): ...this. 11291 (*cond_sub<mode>_3_const): Split into... 11292 (*cond_sub<mode>_3_const_relaxed): ...this and... 11293 (*cond_sub<mode>_3_const_strict): ...this. 11294 (*aarch64_pred_abd<mode>): Split into... 11295 (*aarch64_pred_abd<mode>_relaxed): ...this and... 11296 (*aarch64_pred_abd<mode>_strict): ...this. 11297 (*aarch64_cond_abd<mode>_2): Split into... 11298 (*aarch64_cond_abd<mode>_2_relaxed): ...this and... 11299 (*aarch64_cond_abd<mode>_2_strict): ...this. 11300 (*aarch64_cond_abd<mode>_3): Split into... 11301 (*aarch64_cond_abd<mode>_3_relaxed): ...this and... 11302 (*aarch64_cond_abd<mode>_3_strict): ...this. 11303 (*aarch64_cond_abd<mode>_any): Split into... 11304 (*aarch64_cond_abd<mode>_any_relaxed): ...this and... 11305 (*aarch64_cond_abd<mode>_any_strict): ...this. 11306 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2): Split into... 11307 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_relaxed): ...this and... 11308 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_strict): ...this. 11309 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4): Split into... 11310 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_relaxed): ...this and... 11311 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_strict): ...this. 11312 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any): Split into... 11313 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_relaxed): ...this and... 11314 (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_strict): ...this. 11315 (*cond_<SVE_COND_FCMLA:optab><mode>_4): Split into... 11316 (*cond_<SVE_COND_FCMLA:optab><mode>_4_relaxed): ...this and... 11317 (*cond_<SVE_COND_FCMLA:optab><mode>_4_strict): ...this. 11318 (*cond_<SVE_COND_FCMLA:optab><mode>_any): Split into... 11319 (*cond_<SVE_COND_FCMLA:optab><mode>_any_relaxed): ...this and... 11320 (*cond_<SVE_COND_FCMLA:optab><mode>_any_strict): ...this. 11321 (*aarch64_pred_fac<cmp_op><mode>): Split into... 11322 (*aarch64_pred_fac<cmp_op><mode>_relaxed): ...this and... 11323 (*aarch64_pred_fac<cmp_op><mode>_strict): ...this. 11324 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>): Split 11325 into... 11326 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed): 11327 ...this and... 11328 (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict): 11329 ...this. 11330 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>): Split 11331 into... 11332 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed): 11333 ...this and... 11334 (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict): 11335 ...this. 11336 * config/aarch64/aarch64-sve2.md 11337 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>): Split into... 11338 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_relaxed): ...this and... 11339 (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_strict): ...this. 11340 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any): Split into... 11341 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_relaxed): ...this 11342 and... 11343 (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_strict): ...this. 11344 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>): Split into... 11345 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_relaxed): ...this and... 11346 (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_strict): ...this. 11347 113482020-10-02 Richard Sandiford <richard.sandiford@arm.com> 11349 11350 * config/arm/neon.md (*sub<VDQ:mode>3_neon): Use the new mode macros 11351 for the insn condition. 11352 (sub<VH:mode>3, *mul<VDQW:mode>3_neon): Likewise. 11353 (mul<VDQW:mode>3add<VDQW:mode>_neon): Likewise. 11354 (mul<VH:mode>3add<VH:mode>_neon): Likewise. 11355 (mul<VDQW:mode>3neg<VDQW:mode>add<VDQW:mode>_neon): Likewise. 11356 (fma<VCVTF:mode>4, fma<VH:mode>4, *fmsub<VCVTF:mode>4): Likewise. 11357 (quad_halves_<code>v4sf, reduc_plus_scal_<VD:mode>): Likewise. 11358 (reduc_plus_scal_<VQ:mode>, reduc_smin_scal_<VD:mode>): Likewise. 11359 (reduc_smin_scal_<VQ:mode>, reduc_smax_scal_<VD:mode>): Likewise. 11360 (reduc_smax_scal_<VQ:mode>, mul<VH:mode>3): Likewise. 11361 (neon_vabd<VF:mode>_2, neon_vabd<VF:mode>_3): Likewise. 11362 (fma<VH:mode>4_intrinsic): Delete. 11363 (neon_vadd<VCVTF:mode>): Use the new mode macros to decide which 11364 form of instruction to generate. 11365 (neon_vmla<VDQW:mode>, neon_vmls<VDQW:mode>): Likewise. 11366 (neon_vsub<VCVTF:mode>): Likewise. 11367 (neon_vfma<VH:mode>): Generate the main fma<mode>4 form instead 11368 of using fma<mode>4_intrinsic. 11369 113702020-10-02 Martin Liska <mliska@suse.cz> 11371 11372 PR gcov-profile/97193 11373 * coverage.c (coverage_init): GCDA note files should not be 11374 mangled and should end in output directory. 11375 113762020-10-02 Jason Merril <jason@redhat.com> 11377 11378 * gimple.h (gimple_call_operator_delete_p): Rename from 11379 gimple_call_replaceable_operator_delete_p. 11380 * gimple.c (gimple_call_operator_delete_p): Likewise. 11381 * tree.h (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): Remove. 11382 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Adjust. 11383 (propagate_necessity): Likewise. 11384 (eliminate_unnecessary_stmts): Likewise. 11385 * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise. 11386 113872020-10-02 Richard Biener <rguenther@suse.de> 11388 11389 * gimple.h (GF_CALL_FROM_NEW_OR_DELETE): New call flag. 11390 (gimple_call_set_from_new_or_delete): New. 11391 (gimple_call_from_new_or_delete): Likewise. 11392 * gimple.c (gimple_build_call_from_tree): Set 11393 GF_CALL_FROM_NEW_OR_DELETE appropriately. 11394 * ipa-icf-gimple.c (func_checker::compare_gimple_call): 11395 Compare gimple_call_from_new_or_delete. 11396 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Make 11397 sure to only consider new/delete calls from new or delete 11398 expressions. 11399 (propagate_necessity): Likewise. 11400 (eliminate_unnecessary_stmts): Likewise. 11401 * tree-ssa-structalias.c (find_func_aliases_for_call): 11402 Likewise. 11403 114042020-10-02 Jason Merril <jason@redhat.com> 11405 11406 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Move from cp-tree.h. 11407 * tree-core.h: Document new usage of protected_flag. 11408 114092020-10-02 Aldy Hernandez <aldyh@redhat.com> 11410 11411 * value-range.h (irange::fits_p): New. 11412 114132020-10-01 Alan Modra <amodra@gmail.com> 11414 11415 * config/rs6000/rs6000.c (rs6000_legitimize_address): Use 11416 gen_int_mode for high part of address constant. 11417 114182020-10-01 Alan Modra <amodra@gmail.com> 11419 11420 * config/rs6000/rs6000.c (rs6000_linux64_override_options): 11421 Formatting. Correct setting of TARGET_NO_FP_IN_TOC and 11422 TARGET_NO_SUM_IN_TOC. 11423 114242020-10-01 Alan Modra <amodra@gmail.com> 11425 11426 * config/rs6000/freebsd64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use 11427 rs6000_linux64_override_options. 11428 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Break 11429 out to.. 11430 * config/rs6000/rs6000.c (rs6000_linux64_override_options): ..this, 11431 new function. Tweak non-biarch test and clearing of 11432 profile_kernel to work with freebsd64.h. 11433 114342020-10-01 Martin Liska <mliska@suse.cz> 11435 11436 * config/rs6000/rs6000-call.c: Include value-range.h. 11437 * config/rs6000/rs6000.c: Likewise. 11438 114392020-10-01 Tom de Vries <tdevries@suse.de> 11440 11441 PR target/80845 11442 * config/nvptx/nvptx.md (define_insn "truncsi<QHIM>2"): Emit mov.u32 11443 instead of cvt.u32.u32. 11444 114452020-10-01 Richard Sandiford <richard.sandiford@arm.com> 11446 11447 PR target/96528 11448 PR target/97288 11449 * config/arm/arm-protos.h (arm_expand_vector_compare): Declare. 11450 (arm_expand_vcond): Likewise. 11451 * config/arm/arm.c (arm_expand_vector_compare): New function. 11452 (arm_expand_vcond): Likewise. 11453 * config/arm/neon.md (vec_cmp<VDQW:mode><v_cmp_result>): New pattern. 11454 (vec_cmpu<VDQW:mode><VDQW:mode>): Likewise. 11455 (vcond<VDQW:mode><VDQW:mode>): Require operand 5 to be a register 11456 or zero. Use arm_expand_vcond. 11457 (vcond<V_cvtto><V32:mode>): New pattern. 11458 (vcondu<VDQIW:mode><VDQIW:mode>): Generalize to... 11459 (vcondu<VDQW:mode><v_cmp_result): ...this. Require operand 5 11460 to be a register or zero. Use arm_expand_vcond. 11461 (vcond_mask_<VDQW:mode><v_cmp_result>): New pattern. 11462 (neon_vc<cmp_op><mode>, neon_vc<cmp_op><mode>_insn): Add "@" marker. 11463 (neon_vbsl<mode>): Likewise. 11464 (neon_vc<cmp_op>u<mode>): Reexpress as... 11465 (@neon_vc<code><mode>): ...this. 11466 114672020-10-01 Michael Davidsaver <mdavidsaver@gmail.com> 11468 11469 * config/i386/t-rtems: Change from mtune to march when building 11470 multilibs. The mtune argument tunes or optimizes for a specific 11471 CPU model but does not ensure the generated code is appropriate 11472 for the CPU model. Prior to this patch, i386 compatible code 11473 was always generated but tuned for later models. 11474 114752020-10-01 Aldy Hernandez <aldyh@redhat.com> 11476 11477 * builtins.c (compute_objsize): Replace vr_values with range_query. 11478 (get_range): Same. 11479 (gimple_call_alloc_size): Same. 11480 * builtins.h (class vr_values): Remove. 11481 (gimple_call_alloc_size): Replace vr_values with range_query. 11482 * gimple-ssa-sprintf.c (get_int_range): Same. 11483 (struct directive): Pass gimple context to fmtfunc callback. 11484 (directive::set_width): Replace inline with out-of-line version. 11485 (directive::set_precision): Same. 11486 (format_none): New gimple argument. 11487 (format_percent): New gimple argument. 11488 (format_integer): New gimple argument. 11489 (format_floating): New gimple argument. 11490 (get_string_length): Use range_query API. 11491 (format_character): New gimple argument. 11492 (format_string): New gimple argument. 11493 (format_plain): New gimple argument. 11494 (format_directive): New gimple argument. 11495 (parse_directive): Replace vr_values with range_query. 11496 (compute_format_length): Same. 11497 (handle_printf_call): Same. Adjust for range_query API. 11498 * tree-ssa-strlen.c (get_range): Same. 11499 (compare_nonzero_chars): Same. 11500 (get_addr_stridx) Replace vr_values with range_query. 11501 (get_stridx): Same. 11502 (dump_strlen_info): Same. 11503 (get_range_strlen_dynamic): Adjust for range_query API. 11504 (set_strlen_range): Same 11505 (maybe_warn_overflow): Replace vr_values with range_query. 11506 (handle_builtin_strcpy): Same. 11507 (maybe_diag_stxncpy_trunc): Add FIXME comment. 11508 (handle_builtin_memcpy): Replace vr_values with range_query. 11509 (handle_builtin_memset): Same. 11510 (get_len_or_size): Same. 11511 (strxcmp_eqz_result): Same. 11512 (handle_builtin_string_cmp): Same. 11513 (count_nonzero_bytes_addr): Same, plus adjust for range_query API. 11514 (count_nonzero_bytes): Replace vr_values with range_query. 11515 (handle_store): Same. 11516 (strlen_check_and_optimize_call): Same. 11517 (handle_integral_assign): Same. 11518 (check_and_optimize_stmt): Same. 11519 * tree-ssa-strlen.h (class vr_values): Remove. 11520 (get_range): Replace vr_values with range_query. 11521 (get_range_strlen_dynamic): Same. 11522 (handle_printf_call): Same. 11523 115242020-10-01 Aldy Hernandez <aldyh@redhat.com> 11525 11526 * gimple-loop-versioning.cc (lv_dom_walker::before_dom_children): 11527 Pass m_range_analyzer instead of get_vr_values. 11528 (loop_versioning::name_prop::get_value): Rename to... 11529 (loop_versioning::name_prop::value_of_expr): ...this. 11530 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer): 11531 Adjust for evrp_range_analyzer 11532 inheriting from vr_values. 11533 (evrp_range_analyzer::try_find_new_range): Same. 11534 (evrp_range_analyzer::record_ranges_from_incoming_edge): Same. 11535 (evrp_range_analyzer::record_ranges_from_phis): Same. 11536 (evrp_range_analyzer::record_ranges_from_stmt): Same. 11537 (evrp_range_analyzer::push_value_range): Same. 11538 (evrp_range_analyzer::pop_value_range): Same. 11539 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Inherit from 11540 vr_values. Adjust accordingly. 11541 * gimple-ssa-evrp.c: Adjust for evrp_range_analyzer inheriting from 11542 vr_values. 11543 (evrp_folder::value_of_evrp): Rename from get_value. 11544 * tree-ssa-ccp.c (class ccp_folder): Rename get_value to 11545 value_of_expr. 11546 (ccp_folder::get_value): Rename to... 11547 (ccp_folder::value_of_expr): ...this. 11548 * tree-ssa-copy.c (class copy_folder): Rename get_value to 11549 value_of_expr. 11550 (copy_folder::get_value): Rename to... 11551 (copy_folder::value_of_expr): ...this. 11552 * tree-ssa-dom.c (dom_opt_dom_walker::after_dom_children): Adjust 11553 for evrp_range_analyzer inheriting from vr_values. 11554 (dom_opt_dom_walker::optimize_stmt): Same. 11555 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in): 11556 Call value_of_* instead of get_value. 11557 (substitute_and_fold_engine::replace_phi_args_in): Same. 11558 (substitute_and_fold_engine::propagate_into_phi_args): Same. 11559 (substitute_and_fold_dom_walker::before_dom_children): Same. 11560 * tree-ssa-propagate.h: Include value-query.h. 11561 (class substitute_and_fold_engine): Inherit from value_query. 11562 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): 11563 Adjust for evrp_range_analyzer inheriting from vr_values. 11564 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): 11565 Same. 11566 * tree-vrp.c (class vrp_folder): Same. 11567 (vrp_folder::get_value): Rename to value_of_expr. 11568 * vr-values.c (vr_values::get_lattice_entry): Adjust for 11569 vr_values inheriting from range_query. 11570 (vr_values::range_of_expr): New. 11571 (vr_values::value_of_expr): New. 11572 (vr_values::value_on_edge): New. 11573 (vr_values::value_of_stmt): New. 11574 (simplify_using_ranges::op_with_boolean_value_range_p): Call 11575 get_value_range through query. 11576 (check_for_binary_op_overflow): Rename store to query. 11577 (vr_values::vr_values): Remove vrp_value_range_pool. 11578 (vr_values::~vr_values): Same. 11579 (simplify_using_ranges::get_vr_for_comparison): Call get_value_range 11580 through query. 11581 (simplify_using_ranges::compare_names): Same. 11582 (simplify_using_ranges::vrp_evaluate_conditional): Same. 11583 (simplify_using_ranges::vrp_visit_cond_stmt): Same. 11584 (simplify_using_ranges::simplify_abs_using_ranges): Same. 11585 (simplify_using_ranges::simplify_cond_using_ranges_1): Same. 11586 (simplify_cond_using_ranges_2): Same. 11587 (simplify_using_ranges::simplify_switch_using_ranges): Same. 11588 (simplify_using_ranges::two_valued_val_range_p): Same. 11589 (simplify_using_ranges::simplify_using_ranges): Rename store to query. 11590 (simplify_using_ranges::simplify): Assert that we have a query. 11591 * vr-values.h (class range_query): Remove. 11592 (class simplify_using_ranges): Remove inheritance of range_query. 11593 (class vr_values): Add virtuals for range_of_expr, value_of_expr, 11594 value_on_edge, value_of_stmt, and get_value_range. 11595 Call range_query allocator instead of using vrp_value_range_pool. 11596 Remove vrp_value_range_pool. 11597 (simplify_using_ranges::get_value_range): Remove. 11598 115992020-10-01 Richard Biener <rguenther@suse.de> 11600 11601 PR tree-optimization/97236 11602 * tree-vect-stmts.c (get_group_load_store_type): Keep 11603 VMAT_ELEMENTWISE for single-element vectors. 11604 116052020-10-01 Jan Hubicka <jh@suse.cz> 11606 11607 * ipa-modref.c (compute_parm_map): Be ready for callee_pi to be NULL. 11608 116092020-10-01 Jan Hubicka <jh@suse.cz> 11610 11611 PR ipa/97244 11612 * ipa-fnsummary.c (pass_free_fnsummary::execute): Free 11613 also indirect inlining datastructure. 11614 * ipa-modref.c (pass_ipa_modref::execute): Do not free them here. 11615 * ipa-prop.c (ipa_free_all_node_params): Do not crash when info does 11616 not exist. 11617 (ipa_unregister_cgraph_hooks): Likewise. 11618 116192020-10-01 Jan Hubicka <jh@suse.cz> 11620 11621 * internal-fn.c (DEF_INTERNAL_FN): Fix handling of fnspec 11622 116232020-10-01 Aldy Hernandez <aldyh@redhat.com> 11624 11625 * Makefile.in: Add value-query.o. 11626 * value-query.cc: New file. 11627 * value-query.h: New file. 11628 116292020-10-01 Alex Coplan <alex.coplan@arm.com> 11630 11631 * config/arm/arm-cpus.in: Fix ordering, move Neoverse N2 down. 11632 * config/arm/arm-tables.opt: Regenerate. 11633 * config/arm/arm-tune.md: Regenerate. 11634 116352020-10-01 Jakub Jelinek <jakub@redhat.com> 11636 11637 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use 11638 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to 11639 fenv_var and old_fpc. Formatting fixes. 11640 116412020-10-01 Richard Biener <rguenther@suse.de> 11642 11643 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle 11644 VIEW_CONVERT_EXPR. 11645 116462020-10-01 Florian Weimer <fweimer@redhat.com> 11647 11648 PR target/97250 11649 * config/i386/i386.h (PTA_NO_TUNE, PTA_X86_64_BASELINE) 11650 (PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4): New. 11651 * common/config/i386/i386-common.c (processor_alias_table): 11652 Add "x86-64-v2", "x86-64-v3", "x86-64-v4". 11653 * config/i386/i386-options.c (ix86_option_override_internal): 11654 Handle new PTA_NO_TUNE processor table entries. 11655 * doc/invoke.texi (x86 Options): Document new -march values. 11656 116572020-10-01 Alan Modra <amodra@gmail.com> 11658 11659 * config/rs6000/ppc-asm.h: Support __PCREL__ code. 11660 116612020-10-01 Alan Modra <amodra@gmail.com> 11662 11663 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't 11664 set -mcmodel=small for -mno-minimal-toc when pcrel. 11665 116662020-09-30 Martin Sebor <msebor@redhat.com> 11667 11668 PR middle-end/97189 11669 * attribs.c (attr_access::array_as_string): Avoid assuming a VLA 11670 access specification string contains a closing bracket. 11671 116722020-09-30 Martin Sebor <msebor@redhat.com> 11673 11674 PR c/97206 11675 * attribs.c (attr_access::array_as_string): Avoid modifying a shared 11676 type in place and use build_type_attribute_qual_variant instead. 11677 116782020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 11679 11680 * config/arm/arm-cpus.in: Add Cortex-A78 and Cortex-A78AE cores. 11681 * config/arm/arm-tables.opt: Regenerate. 11682 * config/arm/arm-tune.md: Regenerate. 11683 * doc/invoke.texi: Update docs. 11684 116852020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 11686 11687 * config/aarch64/aarch64-cores.def: Add Cortex-A78 and Cortex-A78AE cores. 11688 * config/aarch64/aarch64-tune.md: Regenerate. 11689 * doc/invoke.texi: Add -mtune=cortex-a78 and -mtune=cortex-a78ae. 11690 116912020-09-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 11692 11693 PR target/96795 11694 * config/arm/arm_mve.h (__ARM_mve_coerce2): Define. 11695 (__arm_vaddq): Correct the scalar argument. 11696 (__arm_vaddq_m): Likewise. 11697 (__arm_vaddq_x): Likewise. 11698 (__arm_vcmpeqq_m): Likewise. 11699 (__arm_vcmpeqq): Likewise. 11700 (__arm_vcmpgeq_m): Likewise. 11701 (__arm_vcmpgeq): Likewise. 11702 (__arm_vcmpgtq_m): Likewise. 11703 (__arm_vcmpgtq): Likewise. 11704 (__arm_vcmpleq_m): Likewise. 11705 (__arm_vcmpleq): Likewise. 11706 (__arm_vcmpltq_m): Likewise. 11707 (__arm_vcmpltq): Likewise. 11708 (__arm_vcmpneq_m): Likewise. 11709 (__arm_vcmpneq): Likewise. 11710 (__arm_vfmaq_m): Likewise. 11711 (__arm_vfmaq): Likewise. 11712 (__arm_vfmasq_m): Likewise. 11713 (__arm_vfmasq): Likewise. 11714 (__arm_vmaxnmavq): Likewise. 11715 (__arm_vmaxnmavq_p): Likewise. 11716 (__arm_vmaxnmvq): Likewise. 11717 (__arm_vmaxnmvq_p): Likewise. 11718 (__arm_vminnmavq): Likewise. 11719 (__arm_vminnmavq_p): Likewise. 11720 (__arm_vminnmvq): Likewise. 11721 (__arm_vminnmvq_p): Likewise. 11722 (__arm_vmulq_m): Likewise. 11723 (__arm_vmulq): Likewise. 11724 (__arm_vmulq_x): Likewise. 11725 (__arm_vsetq_lane): Likewise. 11726 (__arm_vsubq_m): Likewise. 11727 (__arm_vsubq): Likewise. 11728 (__arm_vsubq_x): Likewise. 11729 117302020-09-30 Joel Hutton <joel.hutton@arm.com> 11731 11732 PR target/96837 11733 * tree-vect-slp.c (vect_analyze_slp): Do not call 11734 vect_attempt_slp_rearrange_stmts for vector constructors. 11735 117362020-09-30 Tamar Christina <tamar.christina@arm.com> 11737 11738 * tree-vectorizer.h (SLP_TREE_REF_COUNT): New. 11739 * tree-vect-slp.c (_slp_tree::_slp_tree, _slp_tree::~_slp_tree, 11740 vect_free_slp_tree, vect_build_slp_tree, vect_print_slp_tree, 11741 slp_copy_subtree, vect_attempt_slp_rearrange_stmts): Use it. 11742 117432020-09-30 Tobias Burnus <tobias@codesourcery.com> 11744 11745 * omp-offload.c (omp_discover_implicit_declare_target): Also 11746 handled nested functions. 11747 117482020-09-30 Tobias Burnus <tobias@codesourcery.com> 11749 Tom de Vries <tdevries@suse.de> 11750 11751 * builtins.c (expand_builtin_cexpi, fold_builtin_sincos): Update 11752 targetm.libc_has_function call. 11753 * builtins.def (DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C11_BUILTIN): 11754 (DEF_C2X_BUILTIN, DEF_C99_COMPL_BUILTIN, DEF_C99_C90RES_BUILTIN): 11755 Same. 11756 * config/darwin-protos.h (darwin_libc_has_function): Update prototype. 11757 * config/darwin.c (darwin_libc_has_function): Add arg. 11758 * config/linux-protos.h (linux_libc_has_function): Update prototype. 11759 * config/linux.c (linux_libc_has_function): Add arg. 11760 * config/i386/i386.c (ix86_libc_has_function): Update 11761 targetm.libc_has_function call. 11762 * config/nvptx/nvptx.c (nvptx_libc_has_function): New function. 11763 (TARGET_LIBC_HAS_FUNCTION): Redefine to nvptx_libc_has_function. 11764 * convert.c (convert_to_integer_1): Update targetm.libc_has_function 11765 call. 11766 * match.pd: Same. 11767 * target.def (libc_has_function): Add arg. 11768 * doc/tm.texi: Regenerate. 11769 * targhooks.c (default_libc_has_function, gnu_libc_has_function) 11770 (no_c99_libc_has_function): Add arg. 11771 * targhooks.h (default_libc_has_function, no_c99_libc_has_function) 11772 (gnu_libc_has_function): Update prototype. 11773 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Update 11774 targetm.libc_has_function call. 11775 117762020-09-30 H.J. Lu <hjl.tools@gmail.com> 11777 11778 PR target/97184 11779 * config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ... 11780 (UNSPEC_MOVDIRI): This. 11781 (UNSPECV_MOVDIR64B): Renamed to ... 11782 (UNSPEC_MOVDIR64B): This. 11783 (movdiri<mode>): Use SET operation. 11784 (@movdir64b_<mode>): Likewise. 11785 117862020-09-30 Florian Weimer <fweimer@redhat.com> 11787 11788 * config/i386/i386-c.c (ix86_target_macros_internal): Define 11789 __LAHF_SAHF__ and __MOVBE__ based on ISA flags. 11790 117912020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11792 11793 PR target/97150 11794 * config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument 11795 signed. 11796 (vqrshlh_u16): Likewise. 11797 (vqrshls_u32): Likewise. 11798 (vqrshld_u64): Likewise. 11799 (vqshlb_u8): Likewise. 11800 (vqshlh_u16): Likewise. 11801 (vqshls_u32): Likewise. 11802 (vqshld_u64): Likewise. 11803 (vshld_u64): Likewise. 11804 118052020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11806 11807 PR target/96313 11808 * config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS 11809 qualifiers. 11810 * config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call. 11811 Remove unnecessary result cast. 11812 (vqmovun_s32): Likewise. 11813 (vqmovun_s64): Likewise. 11814 (vqmovunh_s16): Likewise. Fix return type. 11815 (vqmovuns_s32): Likewise. 11816 (vqmovund_s64): Likewise. 11817 118182020-09-30 Richard Sandiford <richard.sandiford@arm.com> 11819 11820 * config/aarch64/aarch64.c (aarch64_split_128bit_move_p): Add a 11821 function comment. Tighten check for FP moves. 11822 * config/aarch64/aarch64.md (*movti_aarch64): Add a w<-Z alternative. 11823 (*movtf_aarch64): Handle r<-Y like r<-r. Remove unnecessary 11824 earlyclobber. Change splitter predicate from aarch64_reg_or_imm 11825 to nonmemory_operand. 11826 118272020-09-30 Alex Coplan <alex.coplan@arm.com> 11828 11829 PR target/97251 11830 * config/arm/arm.md (movsf): Relax TARGET_HARD_FLOAT to 11831 TARGET_VFP_BASE. 11832 (movdf): Likewise. 11833 * config/arm/vfp.md (no_literal_pool_df_immediate): Likewise. 11834 (no_literal_pool_sf_immediate): Likewise. 11835 118362020-09-30 Alan Modra <amodra@gmail.com> 11837 11838 * configure.ac (--with-long-double-format): Typo fix. 11839 * configure: Regenerate. 11840 118412020-09-30 Alan Modra <amodra@gmail.com> 11842 11843 * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't use 11844 non-existent operands[]. 11845 (@tablejump<mode>_nospec): Likewise. 11846 118472020-09-30 Segher Boessenkool <segher@kernel.crashing.org> 11848 11849 * config/rs6000/rs6000.md (tablejump): Simplify. 11850 (tablejumpsi): Merge this ... 11851 (tablejumpdi): ... and this ... 11852 (@tablejump<mode>_normal): ... into this. 11853 (tablejumpsi_nospec): Merge this ... 11854 (tablejumpdi_nospec): ... and this ... 11855 (@tablejump<mode>_nospec): ... into this. 11856 (*tablejump<mode>_internal1): Delete, rename to ... 11857 (@tablejump<mode>_insn_normal): ... this. 11858 (*tablejump<mode>_internal1_nospec): Delete, rename to ... 11859 (@tablejump<mode>_insn_nospec): ... this. 11860 118612020-09-29 Martin Sebor <msebor@redhat.com> 11862 11863 PR middle-end/97188 11864 * calls.c (maybe_warn_rdwr_sizes): Simplify warning messages. 11865 Correct handling of VLA argumments. 11866 118672020-09-29 Marek Polacek <polacek@redhat.com> 11868 11869 PR c++/94695 11870 * doc/invoke.texi: Document -Wrange-loop-construct. 11871 118722020-09-29 Jim Wilson <jimw@sifive.com> 11873 11874 PR bootstrap/97183 11875 * configure.ac (gcc_cv_header_zstd_h): Check ZSTD_VERISON_NUMBER. 11876 * configure: Regenerated. 11877 118782020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 11879 11880 * config/arm/arm-cpus.in: Add Cortex-X1 core. 11881 * config/arm/arm-tables.opt: Regenerate. 11882 * config/arm/arm-tune.md: Regenerate. 11883 * doc/invoke.texi: Update docs. 11884 118852020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 11886 11887 * config/aarch64/aarch64-cores.def: Add Cortex-X1 Arm core. 11888 * config/aarch64/aarch64-tune.md: Regenerate. 11889 * doc/invoke.texi: Add -mtune=cortex-x1 docs. 11890 118912020-09-29 H.J. Lu <hjl.tools@gmail.com> 11892 11893 PR target/97247 11894 * config/i386/enqcmdintrin.h: Replace <enqcmdntrin.h> with 11895 <enqcmdintrin.h>. Replace _ENQCMDNTRIN_H_INCLUDED with 11896 _ENQCMDINTRIN_H_INCLUDED. 11897 118982020-09-29 Richard Biener <rguenther@suse.de> 11899 11900 PR tree-optimization/97241 11901 * tree-vect-loop.c (vectorizable_reduction): Move finding 11902 the SLP node for the reduction stmt to a better place. 11903 119042020-09-29 Richard Biener <rguenther@suse.de> 11905 11906 * tree-vect-slp.c (vect_analyze_slp): Move SLP reduction 11907 re-arrangement and SLP graph load gathering... 11908 (vect_optimize_slp): ... here. 11909 * tree-vectorizer.h (vec_info::slp_loads): Remove. 11910 119112020-09-29 Hongyu Wang <hongyu.wang@intel.com> 11912 11913 PR target/97231 11914 * config/i386/amxbf16intrin.h: Add FSF copyright notes. 11915 * config/i386/amxint8intrin.h: Ditto. 11916 * config/i386/amxtileintrin.h: Ditto. 11917 * config/i386/avx512vp2intersectintrin.h: Ditto. 11918 * config/i386/avx512vp2intersectvlintrin.h: Ditto. 11919 * config/i386/pconfigintrin.h: Ditto. 11920 * config/i386/tsxldtrkintrin.h: Ditto. 11921 * config/i386/wbnoinvdintrin.h: Ditto. 11922 119232020-09-29 Richard Biener <rguenther@suse.de> 11924 11925 PR tree-optimization/97238 11926 * tree-ssa-reassoc.c (ovce_extract_ops): Fix typo. 11927 119282020-09-29 Richard Sandiford <richard.sandiford@arm.com> 11929 11930 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_ARITH, ARM_HAVE_NEON_V4HI_ARITH) 11931 (ARM_HAVE_NEON_V2SI_ARITH, ARM_HAVE_NEON_V16QI_ARITH): New macros. 11932 (ARM_HAVE_NEON_V8HI_ARITH, ARM_HAVE_NEON_V4SI_ARITH): Likewise. 11933 (ARM_HAVE_NEON_V2DI_ARITH, ARM_HAVE_NEON_V4HF_ARITH): Likewise. 11934 (ARM_HAVE_NEON_V8HF_ARITH, ARM_HAVE_NEON_V2SF_ARITH): Likewise. 11935 (ARM_HAVE_NEON_V4SF_ARITH, ARM_HAVE_V8QI_ARITH, ARM_HAVE_V4HI_ARITH) 11936 (ARM_HAVE_V2SI_ARITH, ARM_HAVE_V16QI_ARITH, ARM_HAVE_V8HI_ARITH) 11937 (ARM_HAVE_V4SI_ARITH, ARM_HAVE_V2DI_ARITH, ARM_HAVE_V4HF_ARITH) 11938 (ARM_HAVE_V2SF_ARITH, ARM_HAVE_V8HF_ARITH, ARM_HAVE_V4SF_ARITH): 11939 Likewise. 11940 * config/arm/iterators.md (VNIM, VNINOTM): Delete. 11941 * config/arm/vec-common.md (add<VNIM:mode>3, addv8hf3) 11942 (add<VNINOTM:mode>3): Replace with... 11943 (add<VDQ:mode>3): ...this new expander. 11944 * config/arm/neon.md (*add<VDQ:mode>3_neon): Use the new 11945 ARM_HAVE_NEON_<MODE>_ARITH macros as the C condition. 11946 (addv8hf3_neon, addv4hf3, add<VFH:mode>3_fp16): Delete in 11947 favor of the above. 11948 (neon_vadd<VH:mode>): Use gen_add<mode>3 instead of 11949 gen_add<mode>3_fp16. 11950 119512020-09-29 Kito Cheng <kito.cheng@sifive.com> 11952 11953 * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define 11954 __riscv_cmodel_medany when PIC mode. 11955 119562020-09-29 Alex Coplan <alex.coplan@arm.com> 11957 11958 * config/aarch64/aarch64-cores.def: Move neoverse-n2 after saphira. 11959 * config/aarch64/aarch64-tune.md: Regenerate. 11960 119612020-09-29 Martin Liska <mliska@suse.cz> 11962 11963 PR tree-optimization/96979 11964 * tree-switch-conversion.c (jump_table_cluster::can_be_handled): 11965 Make a fast bail out. 11966 (bit_test_cluster::can_be_handled): Likewise here. 11967 * tree-switch-conversion.h (get_range): Use wi::to_wide instead 11968 of a folding. 11969 119702020-09-29 Martin Liska <mliska@suse.cz> 11971 11972 Revert: 11973 2020-09-22 Martin Liska <mliska@suse.cz> 11974 11975 PR tree-optimization/96979 11976 * doc/invoke.texi: Document new param max-switch-clustering-attempts. 11977 * params.opt: Add new parameter. 11978 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): 11979 Limit number of attempts. 11980 (bit_test_cluster::find_bit_tests): Likewise. 11981 119822020-09-28 Aldy Hernandez <aldyh@redhat.com> 11983 11984 * value-range.h (class irange): Add irange_allocator friend. 11985 (class irange_allocator): New. 11986 119872020-09-28 Tobias Burnus <tobias@codesourcery.com> 11988 11989 PR middle-end/96390 11990 * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Handle 11991 alias nodes. 11992 119932020-09-28 Paul A. Clarke <pc@us.ibm.com> 11994 11995 * config/rs6000/smmintrin.h (_mm_insert_epi8): New. 11996 (_mm_insert_epi32): New. 11997 (_mm_insert_epi64): New. 11998 119992020-09-28 liuhongt <hongtao.liu@intel.com> 12000 12001 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_AMX_TILE_SET, 12002 OPTION_MASK_ISA2_AMX_INT8_SET, OPTION_MASK_ISA2_AMX_BF16_SET, 12003 OPTION_MASK_ISA2_AMX_TILE_UNSET, OPTION_MASK_ISA2_AMX_INT8_UNSET, 12004 OPTION_MASK_ISA2_AMX_BF16_UNSET, OPTION_MASK_ISA2_XSAVE_UNSET): 12005 New marcos. 12006 (ix86_handle_option): Hanlde -mamx-tile, -mamx-int8, -mamx-bf16. 12007 * common/config/i386/i386-cpuinfo.h (processor_types): Add 12008 FEATURE_AMX_TILE, FEATURE_AMX_INT8, FEATURE_AMX_BF16. 12009 * common/config/i386/cpuinfo.h (XSTATE_TILECFG, 12010 XSTATE_TILEDATA, XCR_AMX_ENABLED_MASK): New macro. 12011 (get_available_features): Enable AMX features only if 12012 their states are suoorited by OSXSAVE. 12013 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY 12014 for amx-tile, amx-int8, amx-bf16. 12015 * config.gcc: Add amxtileintrin.h, amxint8intrin.h, 12016 amxbf16intrin.h to extra headers. 12017 * config/i386/amxbf16intrin.h: New file. 12018 * config/i386/amxint8intrin.h: Ditto. 12019 * config/i386/amxtileintrin.h: Ditto. 12020 * config/i386/cpuid.h (bit_AMX_BF16, bit_AMX_TILE, bit_AMX_INT8): 12021 New macro. 12022 * config/i386/i386-c.c (ix86_target_macros_internal): Define 12023 __AMX_TILE__, __AMX_INT8__, AMX_BF16__. 12024 * config/i386/i386-options.c (ix86_target_string): Add 12025 -mamx-tile, -mamx-int8, -mamx-bf16. 12026 (ix86_option_override_internal): Handle AMX-TILE, 12027 AMX-INT8, AMX-BF16. 12028 * config/i386/i386.h (TARGET_AMX_TILE, TARGET_AMX_TILE_P, 12029 TARGET_AMX_INT8, TARGET_AMX_INT8_P, TARGET_AMX_BF16_P, 12030 PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16): New macros. 12031 * config/i386/i386.opt: Add -mamx-tile, -mamx-int8, -mamx-bf16. 12032 * config/i386/immintrin.h: Include amxtileintrin.h, 12033 amxint8intrin.h, amxbf16intrin.h. 12034 * doc/invoke.texi: Document -mamx-tile, -mamx-int8, -mamx-bf16. 12035 * doc/extend.texi: Document amx-tile, amx-int8, amx-bf16. 12036 * doc/sourcebuild.texi ((Effective-Target Keywords, Other 12037 hardware attributes): Document amx_int8, amx_tile, amx_bf16. 12038 120392020-09-28 Andrea Corallo <andrea.corallo@arm.com> 12040 12041 * config/aarch64/aarch64-builtins.c 12042 (aarch64_general_expand_builtin): Do not alter value on a 12043 force_reg returned rtx. 12044 120452020-09-28 Eric Botcazou <ebotcazou@adacore.com> 12046 12047 * tree-eh.c (lower_try_finally_dup_block): Revert latest change. 12048 120492020-09-27 Jan Hubicka <jh@suse.cz> 12050 12051 * ipa-modref.c (modref_summary::useful_p): Fix testing of stores. 12052 120532020-09-27 Jakub Jelinek <jakub@redhat.com> 12054 12055 PR middle-end/97073 12056 * optabs.c (expand_binop, expand_absneg_bit, expand_unop, 12057 expand_copysign_bit): Check reg_overlap_mentioned_p between target 12058 and operand(s) and if it returns true, force a pseudo as target. 12059 120602020-09-27 Xionghu Luo <luoxhu@linux.ibm.com> 12061 12062 * gimple-isel.cc (gimple_expand_vec_set_expr): New function. 12063 (gimple_expand_vec_cond_exprs): Rename to ... 12064 (gimple_expand_vec_exprs): ... this and call 12065 gimple_expand_vec_set_expr. 12066 * internal-fn.c (vec_set_direct): New define. 12067 (expand_vec_set_optab_fn): New function. 12068 (direct_vec_set_optab_supported_p): New define. 12069 * internal-fn.def (VEC_SET): New DEF_INTERNAL_OPTAB_FN. 12070 * optabs.c (can_vec_set_var_idx_p): New function. 12071 * optabs.h (can_vec_set_var_idx_p): New declaration. 12072 120732020-09-26 Jan Hubicka <jh@suse.cz> 12074 12075 * ipa-modref.c (analyze_stmt): Do not skip clobbers in early pass. 12076 * ipa-pure-const.c (analyze_stmt): Update comment. 12077 120782020-09-26 David Edelsohn <dje.gcc@gmail.com> 12079 Clement Chigot <clement.chigot@atos.com> 12080 12081 * collect2.c (visibility_flag): New. 12082 (main): Detect -fvisibility. 12083 (write_c_file_stat): Push and pop default visibility. 12084 120852020-09-26 Jan Hubicka <hubicka@ucw.cz> 12086 12087 * ipa-inline-transform.c: Include ipa-modref-tree.h and ipa-modref.h. 12088 (inline_call): Call ipa_merge_modref_summary_after_inlining. 12089 * ipa-inline.c (ipa_inline): Do not free summaries. 12090 * ipa-modref.c (dump_records): Fix formating. 12091 (merge_call_side_effects): Break out from ... 12092 (analyze_call): ... here; record recursive calls. 12093 (analyze_stmt): Add new parameter RECURSIVE_CALLS. 12094 (analyze_function): Do iterative dataflow on recursive calls. 12095 (compute_parm_map): New function. 12096 (ipa_merge_modref_summary_after_inlining): New function. 12097 (collapse_loads): New function. 12098 (modref_propagate_in_scc): Break out from ... 12099 (pass_ipa_modref::execute): ... here; Do iterative dataflow. 12100 * ipa-modref.h (ipa_merge_modref_summary_after_inlining): Declare. 12101 121022020-09-26 Jakub Jelinek <jakub@redhat.com> 12103 12104 * omp-expand.c (expand_omp_simd): Help vectorizer for the collapse == 1 12105 and non-composite collapse > 1 case with non-constant innermost loop 12106 step by precomputing number of iterations before loop and using an 12107 alternate IV from 0 to number of iterations - 1 with step of 1. 12108 121092020-09-26 Jan Hubicka <jh@suse.cz> 12110 12111 * ipa-fnsummary.c (dump_ipa_call_summary): Dump 12112 points_to_local_or_readonly_memory flag. 12113 (analyze_function_body): Compute points_to_local_or_readonly_memory 12114 flag. 12115 (remap_edge_change_prob): Rename to ... 12116 (remap_edge_params): ... this one; update 12117 points_to_local_or_readonly_memory. 12118 (remap_edge_summaries): Update. 12119 (read_ipa_call_summary): Stream the new flag. 12120 (write_ipa_call_summary): Likewise. 12121 * ipa-predicate.h (struct inline_param_summary): Add 12122 points_to_local_or_readonly_memory. 12123 (inline_param_summary::equal_to): Update. 12124 (inline_param_summary::useless_p): Update. 12125 121262020-09-26 Jan Hubicka <hubicka@ucw.cz> 12127 12128 * ipa-modref-tree.h (modref_ref_node::insert_access): Track if something 12129 changed. 12130 (modref_base_node::insert_ref): Likewise (and add a new optional 12131 argument) 12132 (modref_tree::insert): Likewise. 12133 (modref_tree::merge): Rewrite 12134 121352020-09-25 Jan Hubicka <hubicka@ucw.cz> 12136 12137 * doc/invoke.texi: Add -fno-ipa-modref to flags disabled by 12138 -flive-patching. 12139 * opts.c (control_options_for_live_patching): Disable ipa-modref. 12140 121412020-09-25 Jan Hubicka <hubicka@ucw.cz> 12142 12143 * ipa-modref.c (analyze_stmt): Fix return value for gimple_clobber. 12144 121452020-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12146 12147 * config/aarch64/aarch64-option-extensions.def (rng): Add 12148 cpuinfo string. 12149 121502020-09-25 Alex Coplan <alex.coplan@arm.com> 12151 12152 * config/arm/arm-cpus.in (neoverse-v1): Add FP16. 12153 121542020-09-25 Martin Liska <mliska@suse.cz> 12155 12156 PR gcov-profile/64636 12157 * value-prof.c (stream_out_histogram_value): Allow negative 12158 values for HIST_TYPE_IOR. 12159 121602020-09-25 Tom de Vries <tdevries@suse.de> 12161 12162 * config/nvptx/nvptx.c (nvptx_assemble_integer, nvptx_print_operand): 12163 Use gcc_fallthrough (). 12164 121652020-09-25 Richard Biener <rguenther@suse.de> 12166 12167 PR middle-end/96814 12168 * expr.c (store_constructor): Handle VECTOR_BOOLEAN_TYPE_P 12169 CTORs correctly. 12170 121712020-09-25 Richard Biener <rguenther@suse.de> 12172 12173 PR middle-end/97207 12174 * vec.h (auto_vec<T>::operator=(auto_vec<T>&&)): Implement. 12175 121762020-09-25 Richard Sandiford <richard.sandiford@arm.com> 12177 12178 * config/arm/arm-protos.h (arm_mve_mode_and_operands_type_check): 12179 Delete. 12180 * config/arm/arm.c (arm_coproc_mem_operand_wb): Use a scale factor 12181 of 2 rather than 4 for 16-bit modes. 12182 (arm_mve_mode_and_operands_type_check): Delete. 12183 * config/arm/constraints.md (Uj): Allow writeback for Neon, 12184 but continue to disallow it for MVE. 12185 * config/arm/arm.md (*arm32_mov<HFBF:mode>): Add !TARGET_HAVE_MVE. 12186 * config/arm/vfp.md (*mov_load_vfp_hf16, *mov_store_vfp_hf16): Fold 12187 back into... 12188 (*mov<mode>_vfp_<mode>16): ...here but use Uj for the FPR memory 12189 constraints. Use for base MVE too. 12190 121912020-09-25 Richard Biener <rguenther@suse.de> 12192 12193 PR tree-optimization/97199 12194 * tree-if-conv.c (combine_blocks): Remove edges only 12195 after looking at virtual PHI args. 12196 121972020-09-25 Jakub Jelinek <jakub@redhat.com> 12198 12199 * omp-low.c (scan_omp_1_stmt): Don't call scan_omp_simd for 12200 collapse > 1 loops as simt doesn't support collapsed loops yet. 12201 * omp-expand.c (expand_omp_for_init_counts, expand_omp_for_init_vars): 12202 Small tweaks to function comment. 12203 (expand_omp_simd): Rewritten collapse > 1 support to only attempt 12204 to vectorize the innermost loop and emit set of outer loops around it. 12205 For non-composite simd with collapse > 1 without broken loop don't 12206 even try to compute number of iterations first. Add support for 12207 non-rectangular simd loops. 12208 (expand_omp_for): Don't sorry_at on non-rectangular simd loops. 12209 122102020-09-25 Martin Liska <mliska@suse.cz> 12211 12212 * cgraph.c (cgraph_edge::debug): New. 12213 * cgraph.h (cgraph_edge::debug): New. 12214 122152020-09-25 Martin Liska <mliska@suse.cz> 12216 12217 * cgraph.c (cgraph_node::dump): Always print space at the end 12218 of a message. Remove one extra space. 12219 122202020-09-24 Alex Coplan <alex.coplan@arm.com> 12221 12222 * config/arm/arm-cpus.in (neoverse-n2): New. 12223 * config/arm/arm-tables.opt: Regenerate. 12224 * config/arm/arm-tune.md: Regenerate. 12225 * doc/invoke.texi: Document support for Neoverse N2. 12226 122272020-09-24 Alex Coplan <alex.coplan@arm.com> 12228 12229 * config/aarch64/aarch64-cores.def: Add Neoverse N2. 12230 * config/aarch64/aarch64-tune.md: Regenerate. 12231 * doc/invoke.texi: Document AArch64 support for Neoverse N2. 12232 122332020-09-24 Richard Biener <rguenther@suse.de> 12234 12235 * vec.h (auto_vec<T, 0>::auto_vec (auto_vec &&)): New move CTOR. 12236 (auto_vec<T, 0>::operator=(auto_vec &&)): Delete. 12237 * hash-table.h (hash_table::expand): Use std::move when expanding. 12238 * cfgloop.h (get_loop_exit_edges): Return auto_vec<edge>. 12239 * cfgloop.c (get_loop_exit_edges): Adjust. 12240 * cfgloopmanip.c (fix_loop_placement): Likewise. 12241 * ipa-fnsummary.c (analyze_function_body): Likewise. 12242 * ira-build.c (create_loop_tree_nodes): Likewise. 12243 (create_loop_tree_node_allocnos): Likewise. 12244 (loop_with_complex_edge_p): Likewise. 12245 * ira-color.c (ira_loop_edge_freq): Likewise. 12246 * loop-unroll.c (analyze_insns_in_loop): Likewise. 12247 * predict.c (predict_loops): Likewise. 12248 * tree-predcom.c (last_always_executed_block): Likewise. 12249 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise. 12250 * tree-ssa-loop-im.c (store_motion_loop): Likewise. 12251 * tree-ssa-loop-ivcanon.c (loop_edge_to_cancel): Likewise. 12252 (canonicalize_loop_induction_variables): Likewise. 12253 * tree-ssa-loop-manip.c (get_loops_exits): Likewise. 12254 * tree-ssa-loop-niter.c (find_loop_niter): Likewise. 12255 (finite_loop_p): Likewise. 12256 (find_loop_niter_by_eval): Likewise. 12257 (estimate_numbers_of_iterations): Likewise. 12258 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise. 12259 (may_use_storent_in_loop_p): Likewise. 12260 122612020-09-24 Jan Hubicka <jh@suse.cz> 12262 12263 * doc/invoke.texi: Document -fipa-modref, ipa-modref-max-bases, 12264 ipa-modref-max-refs, ipa-modref-max-accesses, ipa-modref-max-tests. 12265 * ipa-modref-tree.c (test_insert_search_collapse): Update. 12266 (test_merge): Update. 12267 (gt_ggc_mx): New function. 12268 * ipa-modref-tree.h (struct modref_access_node): New structure. 12269 (struct modref_ref_node): Add every_access and accesses array. 12270 (modref_ref_node::modref_ref_node): Update ctor. 12271 (modref_ref_node::search): New member function. 12272 (modref_ref_node::collapse): New member function. 12273 (modref_ref_node::insert_access): New member function. 12274 (modref_base_node::insert_ref): Do not collapse base if ref is 0. 12275 (modref_base_node::collapse): Copllapse also refs. 12276 (modref_tree): Add accesses. 12277 (modref_tree::modref_tree): Initialize max_accesses. 12278 (modref_tree::insert): Add access parameter. 12279 (modref_tree::cleanup): New member function. 12280 (modref_tree::merge): Add parm_map; merge accesses. 12281 (modref_tree::copy_from): New member function. 12282 (modref_tree::create_ggc): Add max_accesses. 12283 * ipa-modref.c (dump_access): New function. 12284 (dump_records): Dump accesses. 12285 (dump_lto_records): Dump accesses. 12286 (get_access): New function. 12287 (record_access): Record access. 12288 (record_access_lto): Record access. 12289 (analyze_call): Compute parm_map. 12290 (analyze_function): Update construction of modref records. 12291 (modref_summaries::duplicate): Likewise; use copy_from. 12292 (write_modref_records): Stream accesses. 12293 (read_modref_records): Sream accesses. 12294 (pass_ipa_modref::execute): Update call of merge. 12295 * params.opt (-param=modref-max-accesses): New. 12296 * tree-ssa-alias.c (alias_stats): Add modref_baseptr_tests. 12297 (dump_alias_stats): Update. 12298 (base_may_alias_with_dereference_p): New function. 12299 (modref_may_conflict): Check accesses. 12300 (ref_maybe_used_by_call_p_1): Update call to modref_may_conflict. 12301 (call_may_clobber_ref_p_1): Update call to modref_may_conflict. 12302 123032020-09-24 Richard Sandiford <richard.sandiford@arm.com> 12304 12305 * config/arm/arm.md (*stack_protect_combined_set_insn): For non-PIC, 12306 load the address of the canary rather than the address of the 12307 constant pool entry that points to it. 12308 (*stack_protect_combined_test_insn): Likewise. 12309 123102020-09-24 Richard Biener <rguenther@suse.de> 12311 12312 PR tree-optimization/97085 12313 * match.pd (mask ? { false,..} : { true, ..} -> ~mask): New. 12314 123152020-09-24 Jan Hubicka <hubicka@ucw.cz> 12316 12317 * ipa-modref-tree.h (modref_base::collapse): Release memory. 12318 (modref_tree::create_ggc): New member function. 12319 (modref_tree::colapse): Release memory. 12320 (modref_tree::~modref_tree): New destructor. 12321 * ipa-modref.c (modref_summaries::create_ggc): New function. 12322 (analyze_function): Use create_ggc. 12323 (modref_summaries::duplicate): Likewise. 12324 (read_modref_records): Likewise. 12325 (modref_read): Likewise. 12326 123272020-09-24 Alan Modra <amodra@gmail.com> 12328 12329 * config/rs6000/rs6000.c (rs6000_rtx_costs): Pass mode to 12330 reg_or_add_cint_operand and reg_or_sub_cint_operand. 12331 123322020-09-24 Alan Modra <amodra@gmail.com> 12333 12334 PR target/93012 12335 * config/rs6000/rs6000.c (num_insns_constant_gpr): Count rldimi 12336 constants correctly. 12337 123382020-09-24 Alan Modra <amodra@gmail.com> 12339 12340 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): 12341 Conditionally define __PCREL__. 12342 123432020-09-24 Alan Modra <amodra@gmail.com> 12344 12345 PR target/97107 12346 * config/rs6000/rs6000-internal.h (struct rs6000_stack): Improve 12347 calls_p comment. 12348 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Likewise. 12349 (rs6000_expand_split_stack_prologue): Emit the prologue for 12350 functions that make a sibling call. 12351 123522020-09-24 David Malcolm <dmalcolm@redhat.com> 12353 12354 * doc/analyzer.texi (Analyzer Paths): Add note about 12355 -fno-analyzer-feasibility. 12356 * doc/invoke.texi (Static Analyzer Options): Add 12357 -fno-analyzer-feasibility. 12358 123592020-09-24 Paul A. Clarke <pc@us.ibm.com> 12360 12361 * doc/extend.texi: Add 'd' for doubleword variant of 12362 vector insert instruction. 12363 123642020-09-23 Martin Sebor <msebor@redhat.com> 12365 12366 * gimple-array-bounds.cc (build_zero_elt_array_type): New function. 12367 (array_bounds_checker::check_mem_ref): Call it. 12368 123692020-09-23 Martin Sebor <msebor@redhat.com> 12370 12371 PR middle-end/97175 12372 * builtins.c (maybe_warn_for_bound): Handle both DECLs and EXPRESSIONs 12373 in pad->dst.ref, same is pad->src.ref. 12374 123752020-09-23 Jan Hubicka <jh@suse.cz> 12376 12377 * ipa-fnsummary.c (refs_local_or_readonly_memory_p): New function. 12378 (points_to_local_or_readonly_memory_p): New function. 12379 * ipa-fnsummary.h (refs_local_or_readonly_memory_p): Declare. 12380 (points_to_local_or_readonly_memory_p): Declare. 12381 * ipa-modref.c (record_access_p): Use refs_local_or_readonly_memory_p. 12382 * ipa-pure-const.c (check_op): Likewise. 12383 123842020-09-23 Tom de Vries <tdevries@suse.de> 12385 12386 * config/nvptx/nvptx.md: Don't allow operand containing sum of 12387 function ref and const. 12388 123892020-09-23 Richard Sandiford <richard.sandiford@arm.com> 12390 12391 * config/aarch64/aarch64-protos.h (aarch64_salt_type): New enum. 12392 (aarch64_stack_protect_canary_mem): Declare. 12393 * config/aarch64/aarch64.md (UNSPEC_SALT_ADDR): New unspec. 12394 (stack_protect_set): Forward to stack_protect_combined_set. 12395 (stack_protect_combined_set): New pattern. Use 12396 aarch64_stack_protect_canary_mem. 12397 (reg_stack_protect_address_<mode>): Add a salt operand. 12398 (stack_protect_test): Forward to stack_protect_combined_test. 12399 (stack_protect_combined_test): New pattern. Use 12400 aarch64_stack_protect_canary_mem. 12401 * config/aarch64/aarch64.c (strip_salt): New function. 12402 (strip_offset_and_salt): Likewise. 12403 (tls_symbolic_operand_type): Use strip_offset_and_salt. 12404 (aarch64_stack_protect_canary_mem): New function. 12405 (aarch64_cannot_force_const_mem): Use strip_offset_and_salt. 12406 (aarch64_classify_address): Likewise. 12407 (aarch64_symbolic_address_p): Likewise. 12408 (aarch64_print_operand): Likewise. 12409 (aarch64_output_addr_const_extra): New function. 12410 (aarch64_tls_symbol_p): Use strip_salt. 12411 (aarch64_classify_symbol): Likewise. 12412 (aarch64_legitimate_pic_operand_p): Use strip_offset_and_salt. 12413 (aarch64_legitimate_constant_p): Likewise. 12414 (aarch64_mov_operand_p): Use strip_salt. 12415 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Override. 12416 124172020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12418 12419 PR target/71233 12420 * config/aarch64/arm_neon.h (vreinterpretq_f64_p128, 12421 vreinterpretq_p128_f64): Define. 12422 124232020-09-23 Alex Coplan <alex.coplan@arm.com> 12424 12425 * config/arm/arm-cpus.in (neoverse-v1): New. 12426 * config/arm/arm-tables.opt: Regenerate. 12427 * config/arm/arm-tune.md: Regenerate. 12428 * doc/invoke.texi: Document support for Neoverse V1. 12429 124302020-09-23 Alex Coplan <alex.coplan@arm.com> 12431 12432 * config/aarch64/aarch64-cores.def: Add Neoverse V1. 12433 * config/aarch64/aarch64-tune.md: Regenerate. 12434 * doc/invoke.texi: Document support for Neoverse V1. 12435 124362020-09-23 Richard Biener <rguenther@suse.de> 12437 12438 PR middle-end/96453 12439 * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove 12440 LT_EXPR -> NE_EXPR verification and also apply it for 12441 non-constant masks. 12442 124432020-09-23 Jan Hubicka <hubicka@ucw.cz> 12444 12445 * ipa-modref.c (modref_summary::lto_useful_p): New member function. 12446 (modref_summary::useful_p): New member function. 12447 (analyze_function): Drop useless summaries. 12448 (modref_write): Skip useless summaries. 12449 (pass_ipa_modref::execute): Drop useless summaries. 12450 * ipa-modref.h (struct GTY): Declare useful_p and lto_useful_p. 12451 * tree-ssa-alias.c (dump_alias_stats): Fix. 12452 (modref_may_conflict): Fix stats. 12453 124542020-09-23 Richard Biener <rguenther@suse.de> 12455 12456 PR middle-end/96466 12457 * internal-fn.c (expand_vect_cond_mask_optab_fn): Use 12458 appropriate mode for force_reg. 12459 * tree.c (build_truth_vector_type_for): Pass VOIDmode to 12460 make_vector_type. 12461 124622020-09-23 Richard Sandiford <richard.sandiford@arm.com> 12463 12464 * tree-vectorizer.h (determine_peel_for_niter): Delete in favor of... 12465 (vect_determine_partial_vectors_and_peeling): ...this new function. 12466 * tree-vect-loop-manip.c (vect_update_epilogue_niters): New function. 12467 Reject using vector epilogue loops for single iterations. Install 12468 the constant number of epilogue loop iterations in the associated 12469 loop_vinfo. Rely on vect_determine_partial_vectors_and_peeling 12470 to do the main part of the test. 12471 (vect_do_peeling): Use vect_update_epilogue_niters to handle 12472 epilogue loops with a known number of iterations. Skip recomputing 12473 the number of iterations later in that case. Otherwise, use 12474 vect_determine_partial_vectors_and_peeling to decide whether the 12475 epilogue loop needs to use partial vectors or peeling. 12476 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Set the 12477 default can_use_partial_vectors_p to false if partial-vector-usage=0. 12478 (determine_peel_for_niter): Remove in favor of... 12479 (vect_determine_partial_vectors_and_peeling): ...this new function, 12480 split out from... 12481 (vect_analyze_loop_2): ...here. Reflect the vect_verify_full_masking 12482 and vect_verify_loop_lens results in CAN_USE_PARTIAL_VECTORS_P 12483 rather than USING_PARTIAL_VECTORS_P. 12484 124852020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12486 12487 PR target/71233 12488 * config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF 12489 for modes. Remove explicit hf instantiation. 12490 * config/aarch64/arm_neon.h (vrndns_f32): Define. 12491 124922020-09-23 Richard Biener <rguenther@suse.de> 12493 12494 PR tree-optimization/97173 12495 * tree-vect-loop.c (vectorizable_live_operation): Extend 12496 assert to also conver element conversions. 12497 124982020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12499 12500 PR target/71233 12501 * config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64, 12502 vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define. 12503 125042020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12505 12506 PR target/71233 12507 * config/aarch64/arm_neon.h (vldrq_p128): Define. 12508 125092020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12510 12511 PR target/71233 12512 * config/aarch64/arm_neon.h (vstrq_p128): Define. 12513 125142020-09-23 Richard Biener <rguenther@suse.de> 12515 12516 PR tree-optimization/97151 12517 * tree-ssa-structalias.c (find_func_aliases_for_call): 12518 DECL_IS_REPLACEABLE_OPERATOR_DELETE_P has no effect on 12519 arguments. 12520 125212020-09-23 Richard Biener <rguenther@suse.de> 12522 12523 PR middle-end/97162 12524 * alias.c (compare_base_decls): Use DECL_HARD_REGISTER 12525 and guard with VAR_P. 12526 125272020-09-23 Martin Liska <mliska@suse.cz> 12528 12529 PR gcov-profile/97069 12530 * profile.c (branch_prob): Line number must be at least 1. 12531 125322020-09-23 Tom de Vries <tdevries@suse.de> 12533 12534 PR target/97158 12535 * config/nvptx/nvptx.c (nvptx_output_mov_insn): Handle move from 12536 DF subreg to DF reg. 12537 125382020-09-23 David Malcolm <dmalcolm@redhat.com> 12539 12540 * Makefile.in: Add $(ZLIBINC) to CFLAGS-analyzer/engine.o. 12541 125422020-09-22 Jan Hubicka <jh@suse.cz> 12543 12544 * ipa-modref.c (analyze_stmt): Ignore gimple clobber. 12545 125462020-09-22 Jan Hubicka <jh@suse.cz> 12547 12548 * ipa-modref-tree.c: Add namespace selftest. 12549 (modref_tree_c_tests): Rename to ... 12550 (ipa_modref_tree_c_tests): ... this. 12551 * ipa-modref.c (pass_modref): Remove destructor. 12552 (ipa_modref_c_finalize): New function. 12553 * ipa-modref.h (ipa_modref_c_finalize): Declare. 12554 * selftest-run-tests.c (selftest::run_tests): Call 12555 ipa_modref_c_finalize. 12556 * selftest.h (ipa_modref_tree_c_tests): Declare. 12557 * toplev.c: Include ipa-modref-tree.h and ipa-modref.h 12558 (toplev::finalize): Call ipa_modref_c_finalize. 12559 125602020-09-22 David Malcolm <dmalcolm@redhat.com> 12561 12562 * doc/analyzer.texi (Other Debugging Techniques): Mention 12563 -fdump-analyzer-json. 12564 * doc/invoke.texi (Static Analyzer Options): Add 12565 -fdump-analyzer-json. 12566 125672020-09-22 David Faust <david.faust@oracle.com> 12568 12569 * config/bpf/bpf.md: Add defines for signed div and mod operators. 12570 125712020-09-22 Martin Liska <mliska@suse.cz> 12572 12573 PR tree-optimization/96979 12574 * doc/invoke.texi: Document new param max-switch-clustering-attempts. 12575 * params.opt: Add new parameter. 12576 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): 12577 Limit number of attempts. 12578 (bit_test_cluster::find_bit_tests): Likewise. 12579 125802020-09-22 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 12581 12582 * config/s390/s390.md ("*cmp<mode>_ccs_0", "*cmp<mode>_ccz_0", 12583 "*cmp<mode>_ccs_0_fastmath"): Basically change "*cmp<mode>_ccs_0" into 12584 "*cmp<mode>_ccz_0" and for fast math add "*cmp<mode>_ccs_0_fastmath". 12585 125862020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12587 12588 PR target/71233 12589 * config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32, 12590 vclsq_u8, vclsq_u16, vclsq_u32): Define. 12591 125922020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12593 12594 PR target/71233 12595 * config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define. 12596 125972020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12598 12599 PR target/71233 12600 * config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8, 12601 vaddq_p16, vaddq_p64, vaddq_p128): Define. 12602 126032020-09-22 Jakub Jelinek <jakub@redhat.com> 12604 12605 * params.opt (--param=modref-max-tests=): Fix typo in help text: 12606 perofmed -> performed. 12607 * common.opt: Fix typo: incrmeental -> incremental. 12608 * ipa-modref.c: Fix typos: recroding -> recording, becaue -> because, 12609 analsis -> analysis. 12610 (class modref_summaries): Fix typo: betweehn -> between. 12611 (analyze_call): Fix typo: calle -> callee. 12612 (read_modref_records): Fix typo: expcted -> expected. 12613 (pass_ipa_modref::execute): Fix typo: calle -> callee. 12614 126152020-09-22 Jakub Jelinek <jakub@redhat.com> 12616 12617 * common.opt (-fipa-modref): Add dot at the end of option help. 12618 * params.opt (--param=modref-max-tests=): Likewise. 12619 126202020-09-21 Marek Polacek <polacek@redhat.com> 12621 12622 * doc/invoke.texi: Document -Wctad-maybe-unsupported. 12623 126242020-09-21 Richard Biener <rguenther@suse.de> 12625 12626 PR tree-optimization/97139 12627 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Only mark the 12628 pattern root, track visited vectorized stmts. 12629 126302020-09-21 Jakub Jelinek <jakub@redhat.com> 12631 12632 * configure.ac: Use mallinfo mallinfo2 as first operand of 12633 gcc_AC_CHECK_DECLS rather than [mallinfo, mallinfo2]. 12634 * configure: Regenerated. 12635 * config.in: Regenerated. 12636 126372020-09-21 Andrea Corallo <andrea.corallo@arm.com> 12638 12639 * config/aarch64/aarch64-builtins.c 12640 (aarch64_general_expand_builtin): Use expand machinery not to 12641 alter the value of an rtx returned by force_reg. 12642 126432020-09-21 Richard Biener <rguenther@suse.de> 12644 12645 PR tree-optimization/97135 12646 * tree-ssa-loop-im.c (sm_seq_push_down): Do not ignore 12647 self-dependences. 12648 126492020-09-21 Martin Liska <mliska@suse.cz> 12650 12651 PR tree-optimization/96915 12652 * tree-switch-conversion.c (switch_conversion::expand): Accept 12653 also integer constants. 12654 126552020-09-21 Martin Liska <mliska@suse.cz> 12656 12657 * print-tree.c (print_node): Remove extra space. 12658 126592020-09-21 Andrea Corallo <andrea.corallo@arm.com> 12660 12661 PR target/96968 12662 * config/aarch64/aarch64-builtins.c 12663 (aarch64_expand_fpsr_fpcr_setter): Fix comment nit. 12664 (aarch64_expand_fpsr_fpcr_getter): New function, expand these 12665 getters using expand_insn machinery. 12666 (aarch64_general_expand_builtin): Make use of. 12667 126682020-09-21 Martin Liska <mliska@suse.cz> 12669 12670 * ggc-common.c (ggc_rlimit_bound): Use ONE_? macro. 12671 (ggc_min_expand_heuristic): Likewise. 12672 (ggc_min_heapsize_heuristic): Likewise. 12673 * ggc-page.c (ggc_collect): Likewise. 12674 * system.h (ONE_G): Likewise. 12675 126762020-09-21 Martin Liska <mliska@suse.cz> 12677 12678 * ggc-common.c (ggc_prune_overhead_list): Use SIZE_AMOUNT. 12679 * ggc-page.c (release_pages): Likewise. 12680 (ggc_collect): Likewise. 12681 (ggc_trim): Likewise. 12682 (ggc_grow): Likewise. 12683 * timevar.c (timer::print): Likewise. 12684 126852020-09-21 Martin Liska <mliska@suse.cz> 12686 12687 * config.in: Regenerate. 12688 * configure: Likewise. 12689 * configure.ac: Detect for mallinfo2. 12690 * ggc-common.c (defined): Use it. 12691 * system.h: Handle also HAVE_MALLINFO2. 12692 126932020-09-20 John David Anglin < danglin@gcc.gnu.org> 12694 12695 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Delete. 12696 * config/pa/pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. 12697 (ENDFILE_SPEC): Link with libgcc_stub.a and mill.a. 12698 * config/pa/pa32-linux.h (ENDFILE_SPEC): Link with libgcc.a. 12699 127002020-09-20 Jan Hubicka <hubicka@ucw.cz> 12701 12702 * ipa-modref.c (dump_lto_records): Fix ICE. 12703 127042020-09-20 David Cepelik <d@dcepelik.cz> 12705 Jan Hubicka <hubicka@ucw.cz> 12706 12707 * Makefile.in: Add ipa-modref.c and ipa-modref-tree.c. 12708 * alias.c: (reference_alias_ptr_type_1): Export. 12709 * alias.h (reference_alias_ptr_type_1): Declare. 12710 * common.opt (fipa-modref): New. 12711 * gengtype.c (open_base_files): Add ipa-modref-tree.h and ipa-modref.h 12712 * ipa-modref-tree.c: New file. 12713 * ipa-modref-tree.h: New file. 12714 * ipa-modref.c: New file. 12715 * ipa-modref.h: New file. 12716 * lto-section-in.c (lto_section_name): Add ipa_modref. 12717 * lto-streamer.h (enum lto_section_type): Add LTO_section_ipa_modref. 12718 * opts.c (default_options_table): Enable ipa-modref at -O1+. 12719 * params.opt (-param=modref-max-bases, -param=modref-max-refs, 12720 -param=modref-max-tests): New params. 12721 * passes.def: Schedule pass_modref and pass_ipa_modref. 12722 * timevar.def (TV_IPA_MODREF): New timevar. 12723 (TV_TREE_MODREF): New timevar. 12724 * tree-pass.h (make_pass_modref): Declare. 12725 (make_pass_ipa_modref): Declare. 12726 * tree-ssa-alias.c (dump_alias_stats): Include ipa-modref-tree.h 12727 and ipa-modref.h 12728 (alias_stats): Add modref_use_may_alias, modref_use_no_alias, 12729 modref_clobber_may_alias, modref_clobber_no_alias, modref_tests. 12730 (dump_alias_stats): Dump new stats. 12731 (nonoverlapping_array_refs_p): Fix formating. 12732 (modref_may_conflict): New function. 12733 (ref_maybe_used_by_call_p_1): Use it. 12734 (call_may_clobber_ref_p_1): Use it. 12735 (call_may_clobber_ref_p): Update. 12736 (stmt_may_clobber_ref_p_1): Update. 12737 * tree-ssa-alias.h (call_may_clobber_ref_p_1): Update. 12738 127392020-09-19 Martin Sebor <msebor@redhat.com> 12740 12741 PR middle-end/82608 12742 PR middle-end/94195 12743 PR c/50584 12744 PR middle-end/84051 12745 * gimple-array-bounds.cc (get_base_decl): New function. 12746 (get_ref_size): New function. 12747 (trailing_array): New function. 12748 (array_bounds_checker::check_array_ref): Call them. Handle arrays 12749 declared in function parameters. 12750 (array_bounds_checker::check_mem_ref): Same. Handle references to 12751 dynamically allocated arrays. 12752 127532020-09-19 Martin Sebor <msebor@redhat.com> 12754 12755 PR c/50584 12756 * builtins.c (warn_for_access): Add argument. Distinguish between 12757 reads and writes. 12758 (check_access): Add argument. Distinguish between reads and writes. 12759 (gimple_call_alloc_size): Set range even on failure. 12760 (gimple_parm_array_size): New function. 12761 (compute_objsize): Call it. 12762 (check_memop_access): Pass check_access an additional argument. 12763 (expand_builtin_memchr, expand_builtin_strcat): Same. 12764 (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same. 12765 (expand_builtin_stpncpy, check_strncat_sizes): Same. 12766 (expand_builtin_strncat, expand_builtin_strncpy): Same. 12767 (expand_builtin_memcmp): Same. 12768 * builtins.h (compute_objsize): Declare a new overload. 12769 (gimple_parm_array_size): Declare. 12770 (check_access): Add argument. 12771 * calls.c (append_attrname): Simplify. 12772 (maybe_warn_rdwr_sizes): Handle internal attribute access. 12773 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid adding 12774 quotes. 12775 127762020-09-19 Martin Sebor <msebor@redhat.com> 12777 12778 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Handle attribute 12779 access internal representation of arrays. 12780 127812020-09-19 Martin Sebor <msebor@redhat.com> 12782 12783 PR c/50584 12784 * attribs.c (decl_attributes): Also pass decl along with type 12785 attributes to handlers. 12786 (init_attr_rdwr_indices): Change second argument to attribute chain. 12787 Handle internal attribute representation in addition to external. 12788 (get_parm_access): New function. 12789 (attr_access::to_internal_string): Define new member function. 12790 (attr_access::to_external_string): Define new member function. 12791 (attr_access::vla_bounds): Define new member function. 12792 * attribs.h (struct attr_access): Declare new members. 12793 (attr_access::from_mode_char): Define new member function. 12794 (get_parm_access): Declare new function. 12795 * calls.c (initialize_argument_information): Pass function type 12796 attributes to init_attr_rdwr_indices. 12797 * doc/invoke.texi (-Warray-parameter, -Wvla-parameter): Document. 12798 * tree-pretty-print.c (dump_generic_node): Correct handling of 12799 qualifiers. 12800 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Same. 12801 * tree.h (access_mode): Add new enumerator. 12802 128032020-09-19 Sandra Loosemore <sandra@codesourcery.com> 12804 12805 * doc/generic.texi (Basic Statements): Document SWITCH_EXPR here, 12806 not SWITCH_STMT. 12807 (Statements for C and C++): Rename node to reflect what 12808 the introduction already says about sharing between C and C++ 12809 front ends. Copy-edit and correct documentation for structured 12810 loops and switch. 12811 128122020-09-19 liuhongt <hongtao.liu@intel.com> 12813 12814 PR target/96861 12815 * config/i386/x86-tune-costs.h (skylake_cost): increase rtx 12816 cost of sse_to_integer from 2 to 6. 12817 128182020-09-18 Sudi Das <sudi.das@arm.com> 12819 Omar Tahir <omar.tahir@arm.com> 12820 12821 * config/arm/thumb2.md (*thumb2_csneg): New. 12822 (*thumb2_negscc): Don't match if TARGET_COND_ARITH. 12823 * config/arm/arm.md (*if_neg_move): Don't match if TARGET_COND_ARITH. 12824 128252020-09-18 Sudi Das <sudi.das@arm.com> 12826 Omar Tahir <omar.tahir@arm.com> 12827 12828 * config/arm/thumb2.md (*thumb2_csinc): New. 12829 (*thumb2_cond_arith): Generate CINC where possible. 12830 128312020-09-18 Sudi Das <sudi.das@arm.com> 12832 Omar Tahir <omar.tahir@arm.com> 12833 12834 * config/arm/arm.h (TARGET_COND_ARITH): New macro. 12835 * config/arm/arm.c (arm_have_conditional_execution): Return false if 12836 TARGET_COND_ARITH before reload. 12837 * config/arm/predicates.md (arm_comparison_operation): Returns true if 12838 comparing CC_REGNUM with constant zero. 12839 * config/arm/thumb2.md (*thumb2_csinv): New. 12840 (*thumb2_movcond): Don't match if TARGET_COND_ARITH. 12841 128422020-09-18 Richard Sandiford <richard.sandiford@arm.com> 12843 12844 PR middle-end/91957 12845 * ira.c (ira_setup_eliminable_regset): Skip the special elimination 12846 handling of the hard frame pointer if the hard frame pointer is fixed. 12847 128482020-09-18 Richard Biener <rguenther@suse.de> 12849 12850 PR tree-optimization/97081 12851 * tree-vect-patterns.c (vect_recog_rotate_pattern): Use the 12852 precision of the shifted operand to determine the mask. 12853 128542020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> 12855 12856 * config/msp430/msp430.c (msp430_print_operand): Update comment. 12857 Cast to long when printing values formatted as long. 12858 Support 'd', 'e', 'f' and 'g' modifiers. 12859 Extract operand value with a single operation for all modifiers. 12860 * doc/extend.texi (msp430Operandmodifiers): New. 12861 128622020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> 12863 12864 * config/msp430/msp430.c (increment_stack): Mark insns which increment 12865 the stack as frame_related. 12866 (msp430_expand_prologue): Add comments. 12867 (msp430_expand_epilogue): Mark insns which decrement 12868 the stack as frame_related. 12869 Add reg_note to stack pop insns describing position of register 12870 variables on the stack. 12871 128722020-09-18 Andrew Stubbs <ams@codesourcery.com> 12873 12874 * config/gcn/gcn-tree.c (execute_omp_gcn): Delete. 12875 (make_pass_omp_gcn): Delete. 12876 * config/gcn/t-gcn-hsa (PASSES_EXTRA): Delete. 12877 * config/gcn/gcn-passes.def: Removed. 12878 128792020-09-18 Alex Coplan <alex.coplan@arm.com> 12880 12881 * cfgloop.h (nb_iter_bound): Reword comment describing is_exit. 12882 128832020-09-18 Richard Biener <rguenther@suse.de> 12884 12885 PR tree-optimization/97095 12886 * tree-vect-loop.c (vectorizable_live_operation): Get 12887 the SLP vector type from the correct object. 12888 128892020-09-18 Richard Biener <rguenther@suse.de> 12890 12891 PR tree-optimization/97089 12892 * tree-ssa-sccvn.c (visit_nary_op): Do not replace unsigned 12893 divisions. 12894 128952020-09-18 Richard Biener <rguenther@suse.de> 12896 12897 PR tree-optimization/97098 12898 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Do not 12899 recurse to children when all stmts were already visited. 12900 129012020-09-17 Sergei Trofimovich <siarheit@google.com> 12902 12903 * profile.c (sort_hist_values): Clarify hist format: 12904 start with a value, not counter. 12905 129062020-09-17 Yeting Kuo <fakepaper56@gmail.com> 12907 12908 * config/riscv/riscv.h (CSW_MAX_OFFSET): Fix typo. 12909 129102020-09-17 Patrick Palka <ppalka@redhat.com> 12911 12912 PR c/80076 12913 * gensupport.c (alter_attrs_for_subst_insn) <case SET_ATTR>: 12914 Reduce indentation of misleadingly indented code fragment. 12915 * lra-constraints.c (multi_block_pseudo_p): Likewise. 12916 * sel-sched-ir.c (merge_fences): Likewise. 12917 129182020-09-17 Martin Sebor <msebor@redhat.com> 12919 12920 * doc/invoke.texi (-Wuninitialized): Document -Wuninitialized for 12921 allocated objects. 12922 (-Wmaybe-uninitialized): Same. 12923 129242020-09-17 Richard Biener <rguenther@suse.de> 12925 12926 * tree-ssa-sccvn.c (visit_nary_op): Value-number multiplications 12927 and divisions to negates of available negated forms. 12928 129292020-09-17 Eric Botcazou <ebotcazou@adacore.com> 12930 12931 PR middle-end/97078 12932 * function.c (use_register_for_decl): Test cfun->tail_call_marked 12933 for a parameter here instead of... 12934 (assign_parm_setup_reg): ...here. 12935 129362020-09-17 Aldy Hernandez <aldyh@redhat.com> 12937 12938 * range-op.cc (multi_precision_range_tests): Normalize symbolics when copying to a 12939 multi-range. 12940 * value-range.cc (irange::copy_legacy_range): Add test. 12941 129422020-09-17 Jan Hubicka <jh@suse.cz> 12943 12944 * cgraph.c (cgraph_node::get_availability): Fix availability of 12945 functions in other partitions 12946 * varpool.c (varpool_node::get_availability): Likewise. 12947 129482020-09-17 Jojo R <jiejie_rong@c-sky.com> 12949 12950 * config/csky/csky.opt (msim): New. 12951 * doc/invoke.texi (C-SKY Options): Document -msim. 12952 * config/csky/csky-elf.h (LIB_SPEC): Add simulator runtime. 12953 129542020-09-17 Sergei Trofimovich <siarheit@google.com> 12955 12956 * doc/cppenv.texi: Use @code{} instead of @samp{@command{}} 12957 around 'date %s'. 12958 129592020-09-17 liuhongt <hongtao.liu@intel.com> 12960 12961 * common/config/i386/i386-common.c 12962 (OPTION_MASK_ISA_AVX_UNSET): Remove OPTION_MASK_ISA_XSAVE_UNSET. 12963 (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_AVX_UNSET. 12964 129652020-09-16 Alexandre Oliva <oliva@adacore.com> 12966 12967 * config/rs6000/rs6000.c (have_compare_and_set_mask): Use 12968 E_*mode in cases. 12969 129702020-09-16 Bill Schmidt <wschmidt@linux.ibm.com> 12971 12972 * config/rs6000/predicates.md (current_file_function_operand): 12973 Remove argument from rs6000_pcrel_p call. 12974 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall): 12975 Likewise. 12976 (rs6000_global_entry_point_prologue_needed_p): Likewise. 12977 (rs6000_output_function_prologue): Likewise. 12978 * config/rs6000/rs6000-protos.h (rs6000_function_pcrel_p): New 12979 prototype. 12980 (rs6000_pcrel_p): Remove argument. 12981 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove 12982 argument from rs6000_pcrel_p call. 12983 (rs6000_call_template_1): Likewise. 12984 (rs6000_indirect_call_template_1): Likewise. 12985 (rs6000_longcall_ref): Likewise. 12986 (rs6000_call_aix): Likewise. 12987 (rs6000_sibcall_aix): Likewise. 12988 (rs6000_function_pcrel_p): Rename from rs6000_pcrel_p. 12989 (rs6000_pcrel_p): Rewrite. 12990 * config/rs6000/rs6000.md (*pltseq_plt_pcrel<mode>): Remove 12991 argument from rs6000_pcrel_p call. 12992 (*call_local<mode>): Likewise. 12993 (*call_value_local<mode>): Likewise. 12994 (*call_nonlocal_aix<mode>): Likewise. 12995 (*call_value_nonlocal_aix<mode>): Likewise. 12996 (*call_indirect_pcrel<mode>): Likewise. 12997 (*call_value_indirect_pcrel<mode>): Likewise. 12998 129992020-09-16 Marek Polacek <polacek@redhat.com> 13000 13001 PR preprocessor/96935 13002 * input.c (get_substring_ranges_for_loc): Return if start.column 13003 is less than 1. 13004 130052020-09-16 Martin Sebor <msebor@redhat.com> 13006 13007 PR middle-end/96295 13008 * tree-ssa-uninit.c (maybe_warn_operand): Work harder to avoid 13009 warning for objects of empty structs 13010 130112020-09-16 Eric Botcazou <ebotcazou@adacore.com> 13012 13013 * tree-eh.c (lower_try_finally_dup_block): Backward propagate slocs 13014 to stack restore builtin calls. 13015 (cleanup_all_empty_eh): Do again a post-order traversal of the EH 13016 region tree. 13017 130182020-09-16 Andrea Corallo <andrea.corallo@arm.com> 13019 13020 * tree-vect-loop.c (vect_need_peeling_or_partial_vectors_p): New 13021 function. 13022 (vect_analyze_loop_2): Make use of it not to select partial 13023 vectors if no peel is required. 13024 (determine_peel_for_niter): Move out some logic into 13025 'vect_need_peeling_or_partial_vectors_p'. 13026 130272020-09-16 H.J. Lu <hjl.tools@gmail.com> 13028 13029 PR target/97032 13030 * cfgexpand.c (asm_clobber_reg_kind): Set sp_is_clobbered_by_asm 13031 to true if the stack pointer is clobbered by asm statement. 13032 * emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm. 13033 * config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true 13034 if the stack pointer is clobbered by asm statement. 13035 130362020-09-16 Ilya Leoshkevich <iii@linux.ibm.com> 13037 13038 * config/s390/vector.md(*vec_tf_to_v1tf): Use "f" instead of "v" 13039 for the source operand. 13040 130412020-09-16 Jojo R <jiejie_rong@c-sky.com> 13042 13043 * config.gcc (C-SKY): Set use_gcc_stdint=wrap for elf target. 13044 130452020-09-16 Richard Biener <rguenther@suse.de> 13046 13047 * tree-vectorizer.h (_stmt_vec_info::num_slp_uses): Remove. 13048 (STMT_VINFO_NUM_SLP_USES): Likewise. 13049 (vect_free_slp_instance): Adjust. 13050 (vect_update_shared_vectype): Declare. 13051 * tree-vectorizer.c (vec_info::~vec_info): Adjust. 13052 * tree-vect-loop.c (vect_analyze_loop_2): Likewise. 13053 (vectorizable_live_operation): Use vector type from 13054 SLP_TREE_REPRESENTATIVE. 13055 (vect_transform_loop): Adjust. 13056 * tree-vect-data-refs.c (vect_slp_analyze_node_alignment): 13057 Set the shared vector type. 13058 * tree-vect-slp.c (vect_free_slp_tree): Remove final_p 13059 parameter, remove STMT_VINFO_NUM_SLP_USES updating. 13060 (vect_free_slp_instance): Adjust. 13061 (vect_create_new_slp_node): Remove STMT_VINFO_NUM_SLP_USES 13062 updating. 13063 (vect_update_shared_vectype): Always compare with the 13064 present vector type, update if NULL. 13065 (vect_build_slp_tree_1): Do not update the shared vector 13066 type here. 13067 (vect_build_slp_tree_2): Adjust. 13068 (slp_copy_subtree): Likewise. 13069 (vect_attempt_slp_rearrange_stmts): Likewise. 13070 (vect_analyze_slp_instance): Likewise. 13071 (vect_analyze_slp): Likewise. 13072 (vect_slp_analyze_node_operations_1): Update the shared 13073 vector type. 13074 (vect_slp_analyze_operations): Adjust. 13075 (vect_slp_analyze_bb_1): Likewise. 13076 130772020-09-16 Jojo R <jiejie_rong@c-sky.com> 13078 13079 * config/csky/t-csky-linux (CSKY_MULTILIB_OSDIRNAMES): Use mfloat-abi. 13080 (MULTILIB_OPTIONS): Likewise. 13081 * config/csky/t-csky-elf (MULTILIB_OPTIONS): Likewise. 13082 (MULTILIB_EXCEPTIONS): Likewise. 13083 130842020-09-16 Jakub Jelinek <jakub@redhat.com> 13085 13086 * config/arm/arm.c (arm_option_restore): Comment out opts argument 13087 name to avoid unused parameter warnings. 13088 130892020-09-16 Jakub Jelinek <jakub@redhat.com> 13090 13091 * optc-save-gen.awk: In cl_optimization_stream_out use 13092 bp_pack_var_len_{int,unsigned} instead of bp_pack_value. In 13093 cl_optimization_stream_in use bp_unpack_var_len_{int,unsigned} 13094 instead of bp_unpack_value. Formatting fix. 13095 130962020-09-16 Jakub Jelinek <jakub@redhat.com> 13097 13098 PR tree-optimization/97053 13099 * gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER, 13100 START, FIRST_EARLIER and LAST_EARLIER arguments. Return false if 13101 any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive 13102 has order in between FIRST_ORDER and LAST_ORDER and overlaps the to 13103 be merged store. 13104 (imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument. 13105 Adjust check_no_overlap caller. 13106 (imm_store_chain_info::coalesce_immediate_stores): Add first_earlier 13107 and last_earlier variables, adjust them during iterations. Adjust 13108 check_no_overlap callers, call check_no_overlap even when extending 13109 overlapping stores by extra INTEGER_CST stores. 13110 131112020-09-16 Jojo R <jiejie_rong@c-sky.com> 13112 13113 * config/csky/csky-linux-elf.h (GLIBC_DYNAMIC_LINKER): Use mfloat-abi. 13114 131152020-09-16 Kewen Lin <linkw@linux.ibm.com> 13116 13117 PR target/97019 13118 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Adjust to 13119 support multiple defintions which are all AND operations with 13120 the mask -16B. 13121 (recombine_lvx_pattern): Adjust to handle multiple AND operations 13122 from find_alignment_op. 13123 (recombine_stvx_pattern): Likewise. 13124 131252020-09-16 Jojo R <jiejie_rong@c-sky.com> 13126 13127 * config/csky/csky.md (CSKY_NPARM_FREGS): New. 13128 (call_value_internal_vs/d): New. 13129 (untyped_call): New. 13130 * config/csky/csky.h (TARGET_SINGLE_FPU): New. 13131 (TARGET_DOUBLE_FPU): New. 13132 (FUNCTION_VARG_REGNO_P): New. 13133 (CSKY_VREG_MODE_P): New. 13134 (FUNCTION_VARG_MODE_P): New. 13135 (CUMULATIVE_ARGS): Add extra regs info. 13136 (INIT_CUMULATIVE_ARGS): Use csky_init_cumulative_args. 13137 (FUNCTION_ARG_REGNO_P): Use FUNCTION_VARG_REGNO_P. 13138 * config/csky/csky-protos.h (csky_init_cumulative_args): Extern. 13139 * config/csky/csky.c (csky_cpu_cpp_builtins): Support TARGET_HARD_FLOAT_ABI. 13140 (csky_function_arg): Likewise. 13141 (csky_num_arg_regs): Likewise. 13142 (csky_function_arg_advance): Likewise. 13143 (csky_function_value): Likewise. 13144 (csky_libcall_value): Likewise. 13145 (csky_function_value_regno_p): Likewise. 13146 (csky_arg_partial_bytes): Likewise. 13147 (csky_setup_incoming_varargs): Likewise. 13148 (csky_init_cumulative_args): New. 13149 131502020-09-16 Bill Schmidt <wschmidt@linux.ibm.com> 13151 13152 * config/rs6000/rs6000-call.c (altivec_init_builtins): Fix name 13153 of __builtin_altivec_xst_len_r. 13154 131552020-09-15 Ilya Leoshkevich <iii@linux.ibm.com> 13156 13157 * rtlanal.c (set_noop_p): Treat subregs of registers in 13158 different modes conservatively. 13159 131602020-09-15 Richard Biener <rguenther@suse.de> 13161 13162 * tree-vect-slp.c (vect_get_and_check_slp_defs): Make swap 13163 argument by-value and do not change it. 13164 (vect_build_slp_tree_2): Adjust, set swap to NULL after last 13165 use. 13166 131672020-09-15 Feng Xue <fxue@os.amperecomputing.com> 13168 13169 PR tree-optimization/94234 13170 * match.pd (T)(A) +- (T)(B) -> (T)(A +- B): New simplification. 13171 131722020-09-15 Segher Boessenkool <segher@kernel.crashing.org> 13173 13174 PR rtl-optimization/96475 13175 * bb-reorder.c (duplicate_computed_gotos): If we did anything, run 13176 cleanup_cfg. 13177 131782020-09-15 Richard Biener <rguenther@suse.de> 13179 13180 * tree-vect-slp.c (vect_build_slp_tree_2): Also consider 13181 building an operand from scalars when building it did not 13182 fail fatally but avoid messing with the upcall splitting 13183 of groups. 13184 131852020-09-15 Andre Vieira <andre.simoesdiasvieira@arm.com> 13186 13187 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Do not 13188 check +D32 for CMSE if -mfloat-abi=soft 13189 131902020-09-15 liuhongt <hongtao.liu@intel.com> 13191 13192 PR target/96744 13193 * config/i386/x86-tune-costs.h (struct processor_costs): 13194 Increase mask <-> integer cost for non AVX512 target to avoid 13195 spill gpr to mask. Also retune mask <-> integer and 13196 mask_load/store for skylake_cost. 13197 131982020-09-15 Jakub Jelinek <jakub@redhat.com> 13199 13200 PR target/97028 13201 * config/i386/sse.md (mul<mode>3<mask_name>_bcs, 13202 <avx512>_div<mode>3<mask_name>_bcst): Use <avx512bcst> instead of 13203 <<avx512bcst>>. 13204 132052020-09-15 Tobias Burnus <tobias@codesourcery.com> 13206 13207 PR fortran/96668 13208 * gimplify.c (gimplify_omp_for): Add 'bool openacc' argument; 13209 update omp_finish_clause calls. 13210 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses, 13211 gimplify_expr, gimplify_omp_loop): Update omp_finish_clause 13212 and/or gimplify_for calls. 13213 * langhooks-def.h (lhd_omp_finish_clause): Add bool openacc arg. 13214 * langhooks.c (lhd_omp_finish_clause): Likewise. 13215 * langhooks.h (lhd_omp_finish_clause): Likewise. 13216 * omp-low.c (scan_sharing_clauses): Keep GOMP_MAP_TO_PSET cause for 13217 'declare target' vars. 13218 132192020-09-15 Feng Xue <fxue@os.amperecomputing.com> 13220 13221 PR tree-optimization/94234 13222 * genmatch.c (dt_simplify::gen_1): Emit check on final simplification 13223 result when "!" is specified on toplevel output expr. 13224 * match.pd ((A * C) +- (B * C) -> (A +- B) * C): Allow folding on expr 13225 with multi-use operands if final result is a simple gimple value. 13226 132272020-09-14 Sergei Trofimovich <siarheit@google.com> 13228 13229 * doc/invoke.texi: fix '-fprofile-reproducibility' option 13230 spelling in manual. 13231 132322020-09-14 Jose E. Marchesi <jose.marchesi@oracle.com> 13233 13234 * config/bpf/bpf.md ("nop"): Re-define as `ja 0'. 13235 132362020-09-14 Eric Botcazou <ebotcazou@adacore.com> 13237 13238 * cgraphunit.c (cgraph_node::expand_thunk): Make sure to set 13239 cfun->tail_call_marked when forcing a tail call. 13240 * function.c (assign_parm_setup_reg): Always use a register to 13241 load a parameter passed by reference if cfun->tail_call_marked. 13242 132432020-09-14 Pat Haugen <pthaugen@linux.ibm.com> 13244 13245 * config/rs6000/power10.md (power10-mffgpr, power10-mftgpr): Rename to 13246 power10-mtvsr/power10-mfvsr. 13247 * config/rs6000/power6.md (X2F_power6, power6-mftgpr, power6-mffgpr): 13248 Remove. 13249 * config/rs6000/power8.md (power8-mffgpr, power8-mftgpr): Rename to 13250 power8-mtvsr/power8-mfvsr. 13251 * config/rs6000/power9.md (power9-mffgpr, power9-mftgpr): Rename to 13252 power9-mtvsr/power9-mfvsr. 13253 * config/rs6000/rs6000.c (rs6000_adjust_cost): Remove Power6 13254 TYPE_MFFGPR cases. 13255 * config/rs6000/rs6000.md (mffgpr, mftgpr, zero_extendsi<mode>2, 13256 extendsi<mode>2, @signbit<mode>2_dm, lfiwax, lfiwzx, *movsi_internal1, 13257 movsi_from_sf, *movdi_from_sf_zero_ext, *mov<mode>_internal, 13258 movsd_hardfloat, movsf_from_si, *mov<mode>_hardfloat64, p8_mtvsrwz, 13259 p8_mtvsrd_df, p8_mtvsrd_sf, p8_mfvsrd_3_<mode>, *movdi_internal64, 13260 unpack<mode>_dm): Rename mffgpr/mftgpr to mtvsr/mfvsr. 13261 * config/rs6000/vsx.md (vsx_mov<mode>_64bit, vsx_extract_<mode>, 13262 vsx_extract_si, *vsx_extract_<mode>_p8): Likewise. 13263 132642020-09-14 Jakub Jelinek <jakub@redhat.com> 13265 13266 * config/arm/arm.opt (x_arm_arch_string, x_arm_cpu_string, 13267 x_arm_tune_string): Remove TargetSave entries. 13268 (march=, mcpu=, mtune=): Add Save keyword. 13269 * config/arm/arm.c (arm_option_save): Remove. 13270 (TARGET_OPTION_SAVE): Don't redefine. 13271 (arm_option_restore): Don't restore x_arm_*_string here. 13272 132732020-09-14 Jakub Jelinek <jakub@redhat.com> 13274 13275 * opt-read.awk: Also initialize extra_target_var_types array. 13276 * opth-gen.awk: Emit explicit_mask arrays to struct cl_optimization 13277 and cl_target_option. Adjust cl_optimization_save, 13278 cl_optimization_restore, cl_target_option_save and 13279 cl_target_option_restore declarations. 13280 * optc-save-gen.awk: Add opts_set argument to cl_optimization_save, 13281 cl_optimization_restore, cl_target_option_save and 13282 cl_target_option_restore functions and save or restore opts_set 13283 next to the opts values into or from explicit_mask arrays. 13284 In cl_target_option_eq and cl_optimization_option_eq compare 13285 explicit_mask arrays, in cl_target_option_hash and cl_optimization_hash 13286 hash them and in cl_target_option_stream_out, 13287 cl_target_option_stream_in, cl_optimization_stream_out and 13288 cl_optimization_stream_in stream them. 13289 * tree.h (build_optimization_node, build_target_option_node): Add 13290 opts_set argument. 13291 * tree.c (build_optimization_node): Add opts_set argument, pass it 13292 to cl_optimization_save. 13293 (build_target_option_node): Add opts_set argument, pass it to 13294 cl_target_option_save. 13295 * function.c (invoke_set_current_function_hook): Adjust 13296 cl_optimization_restore caller. 13297 * ipa-inline-transform.c (inline_call): Adjust cl_optimization_restore 13298 and build_optimization_node callers. 13299 * target.def (TARGET_OPTION_SAVE, TARGET_OPTION_RESTORE): Add opts_set 13300 argument. 13301 * target-globals.c (save_target_globals_default_opts): Adjust 13302 cl_optimization_restore callers. 13303 * toplev.c (process_options): Adjust build_optimization_node and 13304 cl_optimization_restore callers. 13305 (target_reinit): Adjust cl_optimization_restore caller. 13306 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): 13307 Adjust build_optimization_node and cl_optimization_restore callers. 13308 * doc/tm.texi: Updated. 13309 * config/aarch64/aarch64.c (aarch64_override_options): Adjust 13310 build_target_option_node caller. 13311 (aarch64_option_save, aarch64_option_restore): Add opts_set argument. 13312 (aarch64_set_current_function): Adjust cl_target_option_restore 13313 caller. 13314 (aarch64_option_valid_attribute_p): Adjust cl_target_option_save, 13315 cl_target_option_restore, cl_optimization_restore, 13316 build_optimization_node and build_target_option_node callers. 13317 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Adjust 13318 cl_target_option_restore and build_target_option_node callers. 13319 * config/arm/arm.c (arm_option_save, arm_option_restore): Add 13320 opts_set argument. 13321 (arm_option_override): Adjust cl_target_option_save, 13322 build_optimization_node and build_target_option_node callers. 13323 (arm_set_current_function): Adjust cl_target_option_restore caller. 13324 (arm_valid_target_attribute_tree): Adjust build_target_option_node 13325 caller. 13326 (add_attribute): Formatting fix. 13327 (arm_valid_target_attribute_p): Adjust cl_optimization_restore, 13328 cl_target_option_restore, arm_valid_target_attribute_tree and 13329 build_optimization_node callers. 13330 * config/arm/arm-c.c (arm_pragma_target_parse): Adjust 13331 cl_target_option_restore callers. 13332 * config/csky/csky.c (csky_option_override): Adjust 13333 build_target_option_node and cl_target_option_save callers. 13334 * config/gcn/gcn.c (gcn_fixup_accel_lto_options): Adjust 13335 build_optimization_node and cl_optimization_restore callers. 13336 * config/i386/i386-builtins.c (get_builtin_code_for_version): 13337 Adjust cl_target_option_save and cl_target_option_restore 13338 callers. 13339 * config/i386/i386-c.c (ix86_pragma_target_parse): Adjust 13340 build_target_option_node and cl_target_option_restore callers. 13341 * config/i386/i386-options.c (ix86_function_specific_save, 13342 ix86_function_specific_restore): Add opts_set arguments. 13343 (ix86_valid_target_attribute_tree): Adjust build_target_option_node 13344 caller. 13345 (ix86_valid_target_attribute_p): Adjust build_optimization_node, 13346 cl_optimization_restore, cl_target_option_restore, 13347 ix86_valid_target_attribute_tree and build_optimization_node callers. 13348 (ix86_option_override_internal): Adjust build_target_option_node 13349 caller. 13350 (ix86_reset_previous_fndecl, ix86_set_current_function): Adjust 13351 cl_target_option_restore callers. 13352 * config/i386/i386-options.h (ix86_function_specific_save, 13353 ix86_function_specific_restore): Add opts_set argument. 13354 * config/nios2/nios2.c (nios2_option_override): Adjust 13355 build_target_option_node caller. 13356 (nios2_option_save, nios2_option_restore): Add opts_set argument. 13357 (nios2_valid_target_attribute_tree): Adjust build_target_option_node 13358 caller. 13359 (nios2_valid_target_attribute_p): Adjust build_optimization_node, 13360 cl_optimization_restore, cl_target_option_save and 13361 cl_target_option_restore callers. 13362 (nios2_set_current_function, nios2_pragma_target_parse): Adjust 13363 cl_target_option_restore callers. 13364 * config/pru/pru.c (pru_option_override): Adjust 13365 build_target_option_node caller. 13366 (pru_set_current_function): Adjust cl_target_option_restore 13367 callers. 13368 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust 13369 cl_target_option_save caller. 13370 (rs6000_option_override_internal): Adjust build_target_option_node 13371 caller. 13372 (rs6000_valid_attribute_p): Adjust build_optimization_node, 13373 cl_optimization_restore, cl_target_option_save, 13374 cl_target_option_restore and build_target_option_node callers. 13375 (rs6000_pragma_target_parse): Adjust cl_target_option_restore and 13376 build_target_option_node callers. 13377 (rs6000_activate_target_options): Adjust cl_target_option_restore 13378 callers. 13379 (rs6000_function_specific_save, rs6000_function_specific_restore): 13380 Add opts_set argument. 13381 * config/s390/s390.c (s390_function_specific_restore): Likewise. 13382 (s390_option_override_internal): Adjust s390_function_specific_restore 13383 caller. 13384 (s390_option_override, s390_valid_target_attribute_tree): Adjust 13385 build_target_option_node caller. 13386 (s390_valid_target_attribute_p): Adjust build_optimization_node, 13387 cl_optimization_restore and cl_target_option_restore callers. 13388 (s390_activate_target_options): Adjust cl_target_option_restore 13389 caller. 13390 * config/s390/s390-c.c (s390_cpu_cpp_builtins): Adjust 13391 cl_target_option_save caller. 13392 (s390_pragma_target_parse): Adjust build_target_option_node and 13393 cl_target_option_restore callers. 13394 133952020-09-13 Roger Sayle <roger@nextmovesoftware.com> 13396 13397 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]: 13398 Provide accurate costs for DImode shifts of integer constants. 13399 134002020-09-12 Roger Sayle <roger@nextmovesoftware.com> 13401 John David Anglin <danglin@gcc.gnu.org> 13402 13403 * config/pa/pa.md (shrpsi4_1, shrpsi4_2): New define_insns split 13404 out from previous shrpsi4 providing two commutitive variants using 13405 plus_xor_ior_operator as a predicate. 13406 (shrpdi4_1, shrpdi4_2, shrpdi_3, shrpdi_4): Likewise DImode versions 13407 where _1 and _2 take register shifts, and _3 and _4 for integers. 13408 (rotlsi3_internal): Name this anonymous instruction. 13409 (rotrdi3): New DImode insn copied from rotrsi3. 13410 (rotldi3): New DImode expander copied from rotlsi3. 13411 (rotldi4_internal): New DImode insn copied from rotsi3_internal. 13412 134132020-09-11 Michael Meissner <meissner@linux.ibm.com> 13414 13415 * config/rs6000/rs6000.c (rs6000_maybe_emit_maxc_minc): Rename 13416 from rs6000_emit_p9_fp_minmax. Change return type to bool. Add 13417 comments to document NaN/signed zero behavior. 13418 (rs6000_maybe_emit_fp_cmove): Rename from rs6000_emit_p9_fp_cmove. 13419 (have_compare_and_set_mask): New helper function. 13420 (rs6000_emit_cmove): Update calls to new names and the new helper 13421 function. 13422 134232020-09-11 Nathan Sidwell <nathan@acm.org> 13424 13425 * config/i386/sse.md (mov<mode>): Fix operand indices. 13426 134272020-09-11 Martin Sebor <msebor@redhat.com> 13428 13429 PR middle-end/96903 13430 * builtins.c (compute_objsize): Remove incorrect offset adjustment. 13431 (compute_objsize): Adjust offset range here instead. 13432 134332020-09-11 Richard Biener <rguenther@suse.de> 13434 13435 PR tree-optimization/97020 13436 * tree-vect-slp.c (vect_slp_analyze_operations): Apply 13437 SLP costs when doing loop vectorization. 13438 134392020-09-11 Tom de Vries <tdevries@suse.de> 13440 13441 PR target/96964 13442 * config/nvptx/nvptx.md (define_expand "atomic_test_and_set"): New 13443 expansion. 13444 134452020-09-11 Andrew Stubbs <ams@codesourcery.com> 13446 13447 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align TImode registers. 13448 * config/gcn/gcn.md: Assert that TImode registers do not early clobber. 13449 134502020-09-11 Richard Biener <rguenther@suse.de> 13451 13452 * tree-vectorizer.h (_slp_instance::location): New method. 13453 (vect_schedule_slp): Adjust prototype. 13454 * tree-vectorizer.c (vec_info::remove_stmt): Adjust 13455 the BB region begin if we removed the stmt it points to. 13456 * tree-vect-loop.c (vect_transform_loop): Adjust. 13457 * tree-vect-slp.c (_slp_instance::location): Implement. 13458 (vect_analyze_slp_instance): For BB vectorization set 13459 vect_location to that of the instance. 13460 (vect_slp_analyze_operations): Likewise. 13461 (vect_bb_vectorization_profitable_p): Remove wrapper. 13462 (vect_slp_analyze_bb_1): Remove cost check here. 13463 (vect_slp_region): Cost check and code generate subgraphs separately, 13464 report optimized locations and missed optimizations due to 13465 profitability for each of them. 13466 (vect_schedule_slp): Get the vector of SLP graph entries to 13467 vectorize as argument. 13468 134692020-09-11 Richard Biener <rguenther@suse.de> 13470 13471 PR tree-optimization/97013 13472 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove duplicate dumping. 13473 134742020-09-11 Richard Biener <rguenther@suse.de> 13475 13476 * tree-vect-slp.c (vect_build_slp_tree_1): Check vector 13477 types for all lanes are compatible. 13478 (vect_analyze_slp_instance): Appropriately check for stores. 13479 (vect_schedule_slp): Likewise. 13480 134812020-09-11 Tom de Vries <tdevries@suse.de> 13482 13483 * config/nvptx/nvptx.c (nvptx_assemble_value): Fix undefined 13484 behaviour. 13485 134862020-09-11 Tom de Vries <tdevries@suse.de> 13487 13488 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle negative 13489 __int128. 13490 134912020-09-11 Aaron Sawdey <acsawdey@linux.ibm.com> 13492 13493 * config/rs6000/rs6000.c (rs6000_option_override_internal): 13494 Change default. 13495 134962020-09-10 Michael Meissner <meissner@linux.ibm.com> 13497 13498 * config/rs6000/rs6000-protos.h (rs6000_emit_cmove): Change return 13499 type to bool. 13500 (rs6000_emit_int_cmove): Change return type to bool. 13501 * config/rs6000/rs6000.c (rs6000_emit_cmove): Change return type 13502 to bool. 13503 (rs6000_emit_int_cmove): Change return type to bool. 13504 135052020-09-10 Tom de Vries <tdevries@suse.de> 13506 13507 PR target/97004 13508 * config/nvptx/nvptx.c (nvptx_assemble_value): Handle shift by 13509 number of bits in shift operand. 13510 135112020-09-10 Jakub Jelinek <jakub@redhat.com> 13512 13513 * lto-streamer-out.c (collect_block_tree_leafs): Recurse on 13514 root rather than BLOCK_SUBBLOCKS (root). 13515 135162020-09-10 Alex Coplan <alex.coplan@arm.com> 13517 13518 * config/aarch64/aarch64-cores.def: Add Cortex-R82. 13519 * config/aarch64/aarch64-tune.md: Regenerate. 13520 * doc/invoke.texi: Add entry for Cortex-R82. 13521 135222020-09-10 Alex Coplan <alex.coplan@arm.com> 13523 13524 * common/config/aarch64/aarch64-common.c 13525 (aarch64_get_extension_string_for_isa_flags): Don't force +crc for 13526 Armv8-R. 13527 * config/aarch64/aarch64-arches.def: Add entry for Armv8-R. 13528 * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros): Set 13529 __ARM_ARCH_PROFILE correctly for Armv8-R. 13530 * config/aarch64/aarch64.h (AARCH64_FL_V8_R): New. 13531 (AARCH64_FL_FOR_ARCH8_R): New. 13532 (AARCH64_ISA_V8_R): New. 13533 * doc/invoke.texi: Add Armv8-R to architecture table. 13534 135352020-09-10 Jakub Jelinek <jakub@redhat.com> 13536 13537 * config/arm/arm.c (arm_override_options_after_change_1): Add opts_set 13538 argument, test opts_set->x_str_align_functions rather than 13539 opts->x_str_align_functions. 13540 (arm_override_options_after_change, arm_option_override_internal, 13541 arm_set_current_function): Adjust callers. 13542 135432020-09-10 Jakub Jelinek <jakub@redhat.com> 13544 13545 PR target/96939 13546 * config/arm/arm.c (arm_override_options_after_change): Don't call 13547 arm_configure_build_target here. 13548 (arm_set_current_function): Call arm_override_options_after_change_1 13549 at the end. 13550 135512020-09-10 Pat Haugen <pthaugen@linux.ibm.com> 13552 13553 * config/rs6000/rs6000.md 13554 (lfiwzx, floatunssi<mode>2_lfiwzx, p8_mtvsrwz, p8_mtvsrd_sf): Fix insn 13555 type. 13556 * config/rs6000/vsx.md 13557 (vsx_concat_<mode>, vsx_splat_<mode>_reg, vsx_splat_v4sf): Likewise. 13558 135592020-09-10 Jonathan Yong <10walls@gmail.com> 13560 13561 * config.host: Adjust plugin name for Windows. 13562 135632020-09-10 Tom de Vries <tdevries@suse.de> 13564 13565 PR tree-optimization/97000 13566 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): Don't clear 13567 flag for IFN_UNIQUE. 13568 135692020-09-10 Jakub Jelinek <jakub@redhat.com> 13570 13571 PR debug/93865 13572 * lto-streamer.h (struct output_block): Add emit_pwd member. 13573 * lto-streamer-out.c: Include toplev.h. 13574 (clear_line_info): Set emit_pwd. 13575 (lto_output_location_1): Encode the ob->current_file != xloc.file 13576 bit directly into the location number. If changing file, emit 13577 additionally a bit whether pwd is emitted and emit it before the 13578 first relative pathname since clear_line_info. 13579 (output_function, output_constructor): Don't call clear_line_info 13580 here. 13581 * lto-streamer-in.c (struct string_pair_map): New type. 13582 (struct string_pair_map_hasher): New type. 13583 (string_pair_map_hasher::hash): New method. 13584 (string_pair_map_hasher::equal): New method. 13585 (path_name_pair_hash_table, string_pair_map_allocator): New variables. 13586 (relative_path_prefix, canon_relative_path_prefix, 13587 canon_relative_file_name): New functions. 13588 (canon_file_name): Add relative_prefix argument, if non-NULL 13589 and string is a relative path, return canon_relative_file_name. 13590 (lto_location_cache::input_location_and_block): Decode file change 13591 bit from the location number. If changing file, unpack bit whether 13592 pwd is streamed and stream in pwd. Adjust canon_file_name caller. 13593 (lto_free_file_name_hash): Delete path_name_pair_hash_table 13594 and string_pair_map_allocator. 13595 135962020-09-10 Richard Biener <rguenther@suse.de> 13597 13598 PR tree-optimization/96043 13599 * tree-vectorizer.h (_slp_instance::cost_vec): New. 13600 (_slp_instance::subgraph_entries): Likewise. 13601 (BB_VINFO_TARGET_COST_DATA): Remove. 13602 * tree-vect-slp.c (vect_free_slp_instance): Free 13603 cost_vec and subgraph_entries. 13604 (vect_analyze_slp_instance): Initialize them. 13605 (vect_slp_analyze_operations): Defer passing costs to 13606 the target, instead record them in the SLP graph entry. 13607 (get_ultimate_leader): New helper for graph partitioning. 13608 (vect_bb_partition_graph_r): Likewise. 13609 (vect_bb_partition_graph): New function to partition the 13610 SLP graph into independently costable parts. 13611 (vect_bb_vectorization_profitable_p): Adjust to work on 13612 a subgraph. 13613 (vect_bb_vectorization_profitable_p): New wrapper, 13614 discarding non-profitable vectorization of subgraphs. 13615 (vect_slp_analyze_bb_1): Call vect_bb_partition_graph before 13616 costing. 13617 136182020-09-09 David Malcolm <dmalcolm@redhat.com> 13619 13620 PR analyzer/94355 13621 * doc/invoke.texi: Document -Wanalyzer-mismatching-deallocation. 13622 136232020-09-09 Segher Boessenkool <segher@kernel.crashing.org> 13624 13625 PR rtl-optimization/96475 13626 * bb-reorder.c (maybe_duplicate_computed_goto): Remove single_pred_p 13627 micro-optimization. 13628 136292020-09-09 Tom de Vries <tdevries@suse.de> 13630 13631 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Fix Wformat 13632 warning. 13633 136342020-09-09 Richard Biener <rguenther@suse.de> 13635 13636 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do 13637 nothing when the permutation doesn't permute. 13638 136392020-09-09 Tom de Vries <tdevries@suse.de> 13640 13641 PR target/96991 13642 * config/nvptx/nvptx.c (write_fn_proto): Fix boolean type check. 13643 136442020-09-09 Richard Biener <rguenther@suse.de> 13645 13646 * tree-vect-stmts.c (vectorizable_comparison): Allow 13647 STMT_VINFO_LIVE_P stmts. 13648 136492020-09-09 Richard Biener <rguenther@suse.de> 13650 13651 * tree-vect-stmts.c (vectorizable_condition): Allow 13652 STMT_VINFO_LIVE_P stmts. 13653 136542020-09-09 Richard Biener <rguenther@suse.de> 13655 13656 PR tree-optimization/96978 13657 * tree-vect-stmts.c (vectorizable_condition): Do not 13658 look at STMT_VINFO_LIVE_P for BB vectorization. 13659 (vectorizable_comparison): Likewise. 13660 136612020-09-09 liuhongt <hongtao.liu@intel.com> 13662 13663 PR target/96955 13664 * config/i386/i386.md (get_thread_pointer<mode>): New 13665 expander. 13666 136672020-09-08 Julian Brown <julian@codesourcery.com> 13668 13669 * config/gcn/gcn-valu.md (scatter<mode>_insn_1offset_ds<exec_scatter>): 13670 Add waitcnt. 13671 * config/gcn/gcn.md (*mov<mode>_insn, *movti_insn): Add waitcnt to 13672 ds_write alternatives. 13673 136742020-09-08 Julian Brown <julian@codesourcery.com> 13675 13676 * config/gcn/mkoffload.c (process_asm): Initialise regcount. Update 13677 scanning for SGPR/VGPR usage for HSACO v3. 13678 136792020-09-08 Aldy Hernandez <aldyh@redhat.com> 13680 13681 PR tree-optimization/96967 13682 * tree-vrp.c (find_case_label_range): Cast label range to 13683 type of switch operand. 13684 136852020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com> 13686 13687 * config/msp430/msp430.c (msp430_file_end): Fix jumbled 13688 HAVE_AS_MSPABI_ATTRIBUTE and HAVE_AS_GNU_ATTRIBUTE checks. 13689 * configure: Regenerate. 13690 * configure.ac: Use ".mspabi_attribute 4,2" to check for assembler 13691 support for this object attribute directive. 13692 136932020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com> 13694 13695 * common/config/msp430/msp430-common.c (msp430_handle_option): Remove 13696 OPT_mcpu_ handling. 13697 Set target_cpu value to new enum values when parsing certain -mmcu= 13698 values. 13699 * config/msp430/msp430-opts.h (enum msp430_cpu_types): New. 13700 * config/msp430/msp430.c (msp430_option_override): Handle new 13701 target_cpu enum values. 13702 Set target_cpu using extracted value for given MCU when -mcpu= 13703 option is not passed by the user. 13704 * config/msp430/msp430.opt: Handle -mcpu= values using enums. 13705 137062020-09-07 Richard Sandiford <richard.sandiford@arm.com> 13707 13708 PR rtl-optimization/96796 13709 * lra-constraints.c (in_class_p): Add a default-false 13710 allow_all_reload_class_changes_p parameter. Do not treat 13711 reload moves specially when the parameter is true. 13712 (get_reload_reg): Try to narrow the class of an existing OP_OUT 13713 reload if we're reloading a reload pseudo in a reload instruction. 13714 137152020-09-07 Andrea Corallo <andrea.corallo@arm.com> 13716 13717 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Revert 13718 dead-code removal introduced by 09fa6acd8d9 + add a comment to 13719 clarify. 13720 137212020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> 13722 13723 * doc/rtl.texi (subreg): Fix documentation to state there is a known 13724 number of undefined bits in regs and subregs of MODE_PARTIAL_INT modes. 13725 137262020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> 13727 13728 * config/msp430/msp430.c (msp430_option_override): Don't set the 13729 ISA to 430 when the MCU is unrecognized. 13730 137312020-09-07 Iain Sandoe <iain@sandoe.co.uk> 13732 13733 * config/darwin.c (darwin_libc_has_function): Report sincos 13734 available from 10.9. 13735 137362020-09-07 Alex Coplan <alex.coplan@arm.com> 13737 13738 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): Delete. 13739 (*subs_mul_imm_<mode>): Delete. 13740 (*adds_<optab><mode>_multp2): Delete. 13741 (*subs_<optab><mode>_multp2): Delete. 13742 (*add_mul_imm_<mode>): Delete. 13743 (*add_<optab><ALLX:mode>_mult_<GPI:mode>): Delete. 13744 (*add_<optab><SHORT:mode>_mult_si_uxtw): Delete. 13745 (*add_<optab><mode>_multp2): Delete. 13746 (*add_<optab>si_multp2_uxtw): Delete. 13747 (*add_uxt<mode>_multp2): Delete. 13748 (*add_uxtsi_multp2_uxtw): Delete. 13749 (*sub_mul_imm_<mode>): Delete. 13750 (*sub_mul_imm_si_uxtw): Delete. 13751 (*sub_<optab><mode>_multp2): Delete. 13752 (*sub_<optab>si_multp2_uxtw): Delete. 13753 (*sub_uxt<mode>_multp2): Delete. 13754 (*sub_uxtsi_multp2_uxtw): Delete. 13755 (*neg_mul_imm_<mode>2): Delete. 13756 (*neg_mul_imm_si2_uxtw): Delete. 13757 * config/aarch64/predicates.md (aarch64_pwr_imm3): Delete. 13758 (aarch64_pwr_2_si): Delete. 13759 (aarch64_pwr_2_di): Delete. 13760 137612020-09-07 Alex Coplan <alex.coplan@arm.com> 13762 13763 * config/aarch64/aarch64.md 13764 (*adds_<optab><ALLX:mode>_<GPI:mode>): Ensure extended operand 13765 agrees with width of extension specifier. 13766 (*subs_<optab><ALLX:mode>_<GPI:mode>): Likewise. 13767 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise. 13768 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise. 13769 (*add_<optab><ALLX:mode>_<GPI:mode>): Likewise. 13770 (*add_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. 13771 (*add_uxt<mode>_shift2): Likewise. 13772 (*sub_<optab><ALLX:mode>_<GPI:mode>): Likewise. 13773 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. 13774 (*sub_uxt<mode>_shift2): Likewise. 13775 (*cmp_swp_<optab><ALLX:mode>_reg<GPI:mode>): Likewise. 13776 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. 13777 137782020-09-07 Richard Biener <rguenther@suse.de> 13779 13780 * tree-vect-slp.c (vect_analyze_slp_instance): Dump 13781 stmts we start SLP analysis from, failure and splitting. 13782 (vect_schedule_slp): Dump SLP graph entry and root stmt 13783 we are about to emit code for. 13784 137852020-09-07 Martin Storsjö <martin@martin.st> 13786 13787 * dwarf2out.c (file_name_acquire): Make a strchr return value 13788 pointer to const. 13789 137902020-09-07 Jakub Jelinek <jakub@redhat.com> 13791 13792 PR debug/94235 13793 * lto-streamer-out.c (output_cfg): Also stream goto_locus for edges. 13794 Use bp_pack_var_len_unsigned instead of streamer_write_uhwi to stream 13795 e->dest->index and e->flags. 13796 (output_function): Call output_cfg before output_ssa_name, rather than 13797 after streaming all bbs. 13798 * lto-streamer-in.c (input_cfg): Stream in goto_locus for edges. 13799 Use bp_unpack_var_len_unsigned instead of streamer_read_uhwi to stream 13800 in dest_index and edge_flags. 13801 138022020-09-07 Richard Biener <rguenther@suse.de> 13803 13804 * tree-vectorizer.h (vectorizable_live_operation): Adjust. 13805 * tree-vect-loop.c (vectorizable_live_operation): Vectorize 13806 live lanes out of basic-block vectorization nodes. 13807 * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): New function. 13808 (vect_slp_analyze_operations): Analyze live lanes and their 13809 vectorization possibility after the whole SLP graph is final. 13810 (vect_bb_slp_scalar_cost): Adjust for vectorized live lanes. 13811 * tree-vect-stmts.c (can_vectorize_live_stmts): Adjust. 13812 (vect_transform_stmt): Call can_vectorize_live_stmts also for 13813 basic-block vectorization. 13814 138152020-09-04 Richard Biener <rguenther@suse.de> 13816 13817 PR tree-optimization/96698 13818 PR tree-optimization/96920 13819 * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): Remove. 13820 (loop_vec_info::reduc_latch_slp_defs): Likewise. 13821 * tree-vect-stmts.c (vect_transform_stmt): Remove vectorized 13822 cycle PHI latch code. 13823 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): New 13824 helper to set vectorized cycle PHI latch values. 13825 (vect_transform_loop): Walk over all PHIs again after 13826 vectorizing them, calling maybe_set_vectorized_backedge_value. 13827 Call maybe_set_vectorized_backedge_value for each vectorized 13828 stmt. Remove delayed update code. 13829 * tree-vect-slp.c (vect_analyze_slp_instance): Initialize 13830 SLP instance reduc_phis member. 13831 (vect_schedule_slp): Set vectorized cycle PHI latch values. 13832 138332020-09-04 Andrea Corallo <andrea.corallo@arm.com> 13834 13835 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Remove 13836 dead code as LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) is 13837 always verified. 13838 138392020-09-04 Christophe Lyon <christophe.lyon@linaro.org> 13840 13841 PR target/96769 13842 * config/arm/thumb1.md: Move movsi splitter for 13843 arm_disable_literal_pool after the other movsi splitters. 13844 138452020-09-04 Aldy Hernandez <aldyh@redhat.com> 13846 13847 * range-op.cc (range_operator::fold_range): Rename widest_irange 13848 to int_range_max. 13849 (operator_div::wi_fold): Same. 13850 (operator_lshift::op1_range): Same. 13851 (operator_rshift::op1_range): Same. 13852 (operator_cast::fold_range): Same. 13853 (operator_cast::op1_range): Same. 13854 (operator_bitwise_and::remove_impossible_ranges): Same. 13855 (operator_bitwise_and::op1_range): Same. 13856 (operator_abs::op1_range): Same. 13857 (range_cast): Same. 13858 (widest_irange_tests): Same. 13859 (range3_tests): Rename irange3 to int_range3. 13860 (int_range_max_tests): Rename from widest_irange_tests. 13861 Rename widest_irange to int_range_max. 13862 (operator_tests): Rename widest_irange to int_range_max. 13863 (range_tests): Same. 13864 * tree-vrp.c (find_case_label_range): Same. 13865 * value-range.cc (irange::irange_intersect): Same. 13866 (irange::invert): Same. 13867 * value-range.h: Same. 13868 138692020-09-04 Richard Biener <rguenther@suse.de> 13870 13871 PR tree-optimization/96931 13872 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): If 13873 there's a fallthru edge and no abnormal edge the call is 13874 no longer control-altering. 13875 (cleanup_control_flow_bb): Pass down the BB to 13876 cleanup_call_ctrl_altering_flag. 13877 138782020-09-04 Jakub Jelinek <jakub@redhat.com> 13879 13880 * lto-streamer.h (stream_input_location_now): Remove declaration. 13881 * lto-streamer-in.c (stream_input_location_now): Remove. 13882 (input_eh_region, input_struct_function_base): Use 13883 stream_input_location instead of stream_input_location_now. 13884 138852020-09-04 Jakub Jelinek <jakub@redhat.com> 13886 13887 * lto-streamer.h (struct output_block): Add reset_locus member. 13888 * lto-streamer-out.c (clear_line_info): Set reset_locus to true. 13889 (lto_output_location_1): If reset_locus, clear it and ensure 13890 current_{file,line,col} is different from xloc members. 13891 138922020-09-04 David Faust <david.faust@oracle.com> 13893 13894 * config/bpf/bpf.h (ASM_SPEC): Pass -mxbpf to gas, if specified. 13895 * config/bpf/bpf.c (bpf_output_call): Support indirect calls in xBPF. 13896 138972020-09-03 Martin Jambor <mjambor@suse.cz> 13898 13899 PR tree-optimization/96820 13900 * tree-sra.c (create_access): Disqualify candidates with accesses 13901 beyond the end of the original aggregate. 13902 (maybe_add_sra_candidate): Check that candidate type size fits 13903 signed uhwi for the sake of consistency. 13904 139052020-09-03 Will Schmidt <will_schmidt@vnet.ibm.com> 13906 13907 * config/rs6000/rs6000-call.c (rs6000_init_builtin): Update V2DI_type_node 13908 and unsigned_V2DI_type_node definitions. 13909 139102020-09-03 Jakub Jelinek <jakub@redhat.com> 13911 13912 PR c++/96901 13913 * tree.h (struct decl_tree_traits): New type. 13914 (decl_tree_map): New typedef. 13915 139162020-09-03 Jakub Jelinek <jakub@redhat.com> 13917 13918 PR lto/94311 13919 * gimple.h (gimple_location_ptr, gimple_phi_arg_location_ptr): New 13920 functions. 13921 * streamer-hooks.h (struct streamer_hooks): Add 13922 output_location_and_block callback. Fix up formatting for 13923 output_location. 13924 (stream_output_location_and_block): Define. 13925 * lto-streamer.h (class lto_location_cache): Fix comment typo. Add 13926 current_block member. 13927 (lto_location_cache::input_location_and_block): New method. 13928 (lto_location_cache::lto_location_cache): Initialize current_block. 13929 (lto_location_cache::cached_location): Add block member. 13930 (struct output_block): Add current_block member. 13931 (lto_output_location): Formatting fix. 13932 (lto_output_location_and_block): Declare. 13933 * lto-streamer.c (lto_streamer_hooks_init): Initialize 13934 streamer_hooks.output_location_and_block. 13935 * lto-streamer-in.c (lto_location_cache::cmp_loc): Also compare 13936 block members. 13937 (lto_location_cache::apply_location_cache): Handle blocks. 13938 (lto_location_cache::accept_location_cache, 13939 lto_location_cache::revert_location_cache): Fix up function comments. 13940 (lto_location_cache::input_location_and_block): New method. 13941 (lto_location_cache::input_location): Implement using 13942 input_location_and_block. 13943 (input_function): Invoke apply_location_cache after streaming in all 13944 bbs. 13945 * lto-streamer-out.c (clear_line_info): Set current_block. 13946 (lto_output_location_1): New function, moved from lto_output_location, 13947 added block handling. 13948 (lto_output_location): Implement using lto_output_location_1. 13949 (lto_output_location_and_block): New function. 13950 * gimple-streamer-in.c (input_phi): Use input_location_and_block 13951 to input and cache both location and block. 13952 (input_gimple_stmt): Likewise. 13953 * gimple-streamer-out.c (output_phi): Use 13954 stream_output_location_and_block. 13955 (output_gimple_stmt): Likewise. 13956 139572020-09-03 Richard Biener <rguenther@suse.de> 13958 13959 * tree-vect-generic.c (tree_vec_extract): Remove odd 13960 special-casing of boolean vectors. 13961 * fold-const.c (fold_ternary_loc): Handle boolean vector 13962 type BIT_FIELD_REFs. 13963 139642020-09-03 Hongtao Liu <hongtao.liu@intel.com> 13965 13966 PR target/87767 13967 * config/i386/i386-features.c 13968 (replace_constant_pool_with_broadcast): New function. 13969 (constant_pool_broadcast): Ditto. 13970 (class pass_constant_pool_broadcast): New pass. 13971 (make_pass_constant_pool_broadcast): Ditto. 13972 (remove_partial_avx_dependency): Call 13973 replace_constant_pool_with_broadcast under TARGET_AVX512F, it 13974 would save compile time when both pass rpad and cpb are 13975 available. 13976 (remove_partial_avx_dependency_gate): New function. 13977 (class pass_remove_partial_avx_dependency::gate): Call 13978 remove_partial_avx_dependency_gate. 13979 * config/i386/i386-passes.def: Insert new pass after combine. 13980 * config/i386/i386-protos.h 13981 (make_pass_constant_pool_broadcast): Declare. 13982 * config/i386/sse.md (*avx512dq_mul<mode>3<mask_name>_bcst): 13983 New define_insn. 13984 (*avx512f_mul<mode>3<mask_name>_bcst): Ditto. 13985 * config/i386/avx512fintrin.h (_mm512_set1_ps, 13986 _mm512_set1_pd,_mm512_set1_epi32, _mm512_set1_epi64): Adjusted. 13987 139882020-09-02 Jonathan Wakely <jwakely@redhat.com> 13989 13990 PR c++/60304 13991 * ginclude/stdbool.h (bool, false, true): Never define for C++. 13992 139932020-09-02 Jozef Lawrynowicz <jozef.l@mittosystems.com> 13994 13995 * doc/invoke.texi (MSP430 options): Fix -mlarge description to 13996 indicate size_t is a 20-bit type. 13997 139982020-09-02 Roger Sayle <roger@nextmovesoftware.com> 13999 14000 * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]: 14001 Provide accurate costs for shifts of integer constants. 14002 140032020-09-02 Jose E. Marchesi <jose.marchesi@oracle.com> 14004 14005 * config/bpf/bpf.c (bpf_asm_named_section): Delete. 14006 (TARGET_ASM_NAMED_SECTION): Likewise. 14007 140082020-09-02 Jose E. Marchesi <jemarch@gnu.org> 14009 14010 * config.gcc: Use elfos.h in bpf-*-* targets. 14011 * config/bpf/bpf.h (MAX_OFILE_ALIGNMENT): Remove definition. 14012 (COMMON_ASM_OP): Likewise. 14013 (INIT_SECTION_ASM_OP): Likewise. 14014 (FINI_SECTION_ASM_OP): Likewise. 14015 (ASM_OUTPUT_SKIP): Likewise. 14016 (ASM_OUTPUT_ALIGNED_COMMON): Likewise. 14017 (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. 14018 140192020-09-01 Martin Sebor <msebor@redhat.com> 14020 14021 * builtins.c (compute_objsize): Only replace the upper bound 14022 of a POINTER_PLUS offset when it's less than the lower bound. 14023 140242020-09-01 Peter Bergner <bergner@linux.ibm.com> 14025 14026 PR target/96808 14027 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Do not 14028 reuse accumulator memory reference for source and destination accesses. 14029 140302020-09-01 Martin Liska <mliska@suse.cz> 14031 14032 * cfgrtl.c (rtl_create_basic_block): Use default value for 14033 growth vector function. 14034 * gimple.c (gimple_set_bb): Likewise. 14035 * symbol-summary.h: Likewise. 14036 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. 14037 (build_gimple_cfg): Likewise. 14038 (create_bb): Likewise. 14039 (move_block_to_fn): Likewise. 14040 140412020-09-01 Martin Liska <mliska@suse.cz> 14042 14043 * vec.h (vec_safe_grow): Change default of exact to false. 14044 (vec_safe_grow_cleared): Likewise. 14045 140462020-09-01 Roger Sayle <roger@nextmovesoftware.com> 14047 14048 PR middle-end/90597 14049 * targhooks.c (default_vector_alignment): Return at least the 14050 GET_MODE_ALIGNMENT for the type's mode. 14051 140522020-09-01 Richard Biener <rguenther@suse.de> 14053 14054 PR rtl-optimization/96812 14055 * tree-ssa-address.c (copy_ref_info): Also copy dependence info. 14056 * cfgrtl.h (duplicate_insn_chain): Adjust prototype. 14057 * cfgrtl.c (duplicate_insn_chain): Remap dependence info 14058 if requested. 14059 (cfg_layout_duplicate_bb): Make sure we remap dependence info. 14060 * modulo-sched.c (duplicate_insns_of_cycles): Remap dependence 14061 info. 14062 (generate_prolog_epilog): Adjust. 14063 * config/c6x/c6x.c (hwloop_optimize): Remap dependence info. 14064 140652020-09-01 Kewen Lin <linkw@gcc.gnu.org> 14066 14067 * doc/sourcebuild.texi (has_arch_pwr5, has_arch_pwr6, has_arch_pwr7, 14068 has_arch_pwr8, has_arch_pwr9): Document. 14069 140702020-08-31 Carl Love <cel@us.ibm.com> 14071 14072 PR target/85830 14073 * config/rs6000/altivec.h (vec_popcntb, vec_popcnth, vec_popcntw, 14074 vec_popcntd): Remove defines. 14075 140762020-08-31 Marek Polacek <polacek@redhat.com> 14077 Jason Merrill <jason@redhat.com> 14078 14079 PR c++/93529 14080 * tree.c (build_constructor_from_vec): New. 14081 * tree.h (build_constructor_from_vec): Declare. 14082 140832020-08-31 Aldy Hernandez <aldyh@redhat.com> 14084 14085 PR tree-optimization/96818 14086 * tree-vrp.c (find_case_label_range): Cast label range to 14087 type of switch operand. 14088 140892020-08-31 liuhongt <hongtao.liu@intel.com> 14090 14091 PR target/96551 14092 * config/i386/sse.md (vec_unpacku_float_hi_v16si): For vector 14093 compare to integer mask, don't use gen_rtx_LT, use 14094 ix86_expand_mask_vec_cmp instead. 14095 (vec_unpacku_float_hi_v16si): Ditto. 14096 140972020-08-31 Jakub Jelinek <jakub@redhat.com> 14098 14099 * tree-cfg.c (verify_gimple_switch): If the first non-default case 14100 label has CASE_HIGH, verify it has the same type as CASE_LOW. 14101 141022020-08-31 Feng Xue <fxue@os.amperecomputing.com> 14103 14104 PR ipa/96806 14105 * ipa-cp.c (decide_about_value): Use safe_add to avoid cost addition 14106 overflow. 14107 141082020-08-31 Jakub Jelinek <jakub@redhat.com> 14109 14110 PR middle-end/54201 14111 * varasm.c: Include alloc-pool.h. 14112 (output_constant_pool_contents): Emit desc->mark < 0 entries as 14113 aliases. 14114 (struct constant_descriptor_rtx_data): New type. 14115 (constant_descriptor_rtx_data_cmp): New function. 14116 (struct const_rtx_data_hasher): New type. 14117 (const_rtx_data_hasher::hash, const_rtx_data_hasher::equal): New 14118 methods. 14119 (optimize_constant_pool): New function. 14120 (output_shared_constant_pool): Call it if TARGET_SUPPORTS_ALIASES. 14121 141222020-08-31 Kewen Lin <linkw@gcc.gnu.org> 14123 14124 * doc/sourcebuild.texi (vect_len_load_store, 14125 vect_partial_vectors_usage_1, vect_partial_vectors_usage_2, 14126 vect_partial_vectors): Document. 14127 141282020-08-30 Martin Sebor <msebor@redhat.com> 14129 14130 * builtins.c (access_ref::access_ref): Call get_size_range instead 14131 of get_range. 14132 141332020-08-30 Jakub Jelinek <jakub@redhat.com> 14134 14135 * config/i386/sse.md (ssse3_pshufbv8qi): Use gen_int_mode instead of 14136 GEN_INT, and ix86_build_const_vector instead of gen_rtvec and 14137 gen_rtx_CONT_VECTOR. 14138 141392020-08-29 Bill Schmidt <wschmidt@linux.ibm.com> 14140 14141 * config/rs6000/rs6000-builtin.def (MASK_FOR_STORE): Remove. 14142 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Remove 14143 all logic for ALTIVEC_BUILTIN_MASK_FOR_STORE. 14144 141452020-08-28 Martin Sebor <msebor@redhat.com> 14146 14147 * attribs.c (init_attr_rdwr_indices): Use global access_mode. 14148 * attribs.h (struct attr_access): Same. 14149 * builtins.c (fold_builtin_strlen): Add argument. 14150 (compute_objsize): Declare. 14151 (get_range): Declare. 14152 (check_read_access): New function. 14153 (access_ref::access_ref): Define ctor. 14154 (warn_string_no_nul): Add arguments. Handle -Wstrintop-overread. 14155 (check_nul_terminated_array): Handle source strings of different 14156 ranges of sizes. 14157 (expand_builtin_strlen): Remove warning code, call check_read_access 14158 instead. Declare locals closer to their initialization. 14159 (expand_builtin_strnlen): Same. 14160 (maybe_warn_for_bound): New function. 14161 (warn_for_access): Remove argument. Handle -Wstrintop-overread. 14162 (inform_access): Change argument type. 14163 (get_size_range): New function. 14164 (check_access): Remove unused arguments. Add new arguments. Handle 14165 -Wstrintop-overread. Move warning code to helpers and call them. 14166 Call check_nul_terminated_array. 14167 (check_memop_access): Remove unnecessary and provide additional 14168 arguments in calls. 14169 (expand_builtin_memchr): Call check_read_access. 14170 (expand_builtin_strcat): Remove unnecessary and provide additional 14171 arguments in calls. 14172 (expand_builtin_strcpy): Same. 14173 (expand_builtin_strcpy_args): Same. Avoid testing no-warning bit. 14174 (expand_builtin_stpcpy_1): Remove unnecessary and provide additional 14175 arguments in calls. 14176 (expand_builtin_stpncpy): Same. 14177 (check_strncat_sizes): Same. 14178 (expand_builtin_strncat): Remove unnecessary and provide additional 14179 arguments in calls. Adjust comments. 14180 (expand_builtin_strncpy): Remove unnecessary and provide additional 14181 arguments in calls. 14182 (expand_builtin_memcmp): Remove warning code. Call check_access. 14183 (expand_builtin_strcmp): Call check_access instead of 14184 check_nul_terminated_array. 14185 (expand_builtin_strncmp): Handle -Wstrintop-overread. 14186 (expand_builtin_fork_or_exec): Call check_access instead of 14187 check_nul_terminated_array. 14188 (expand_builtin): Same. 14189 (fold_builtin_1): Pass additional argument. 14190 (fold_builtin_n): Same. 14191 (fold_builtin_strpbrk): Remove calls to check_nul_terminated_array. 14192 (expand_builtin_memory_chk): Add comments. 14193 (maybe_emit_chk_warning): Remove unnecessary and provide additional 14194 arguments in calls. 14195 (maybe_emit_sprintf_chk_warning): Same. Adjust comments. 14196 * builtins.h (warn_string_no_nul): Add arguments. 14197 (struct access_ref): Add member and ctor argument. 14198 (struct access_data): Add members and ctor. 14199 (check_access): Adjust signature. 14200 * calls.c (maybe_warn_nonstring_arg): Return an indication of 14201 whether a warning was issued. Issue -Wstrintop-overread instead 14202 of -Wstringop-overflow. 14203 (append_attrname): Adjust to naming changes. 14204 (maybe_warn_rdwr_sizes): Same. Remove unnecessary and provide 14205 additional arguments in calls. 14206 * calls.h (maybe_warn_nonstring_arg): Return bool. 14207 * doc/invoke.texi (-Wstringop-overread): Document new option. 14208 * gimple-fold.c (gimple_fold_builtin_strcpy): Provide an additional 14209 argument in call. 14210 (gimple_fold_builtin_stpcpy): Same. 14211 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Adjust to naming 14212 changes. 14213 * tree.h (enum access_mode): New type. 14214 142152020-08-28 Bill Schmidt <wschmidt@linux.ibm.com> 14216 14217 * config/rs6000/rs6000.c (rs6000_call_aix): Remove test for r12. 14218 (rs6000_sibcall_aix): Likewise. 14219 142202020-08-28 Andrew Stubbs <ams@codesourcery.com> 14221 14222 * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Add "true" 14223 parameter to vec_safe_grow_cleared. 14224 142252020-08-28 Martin Sebor <msebor@redhat.com> 14226 14227 * ggc-common.c (gt_pch_save): Add argument to a call. 14228 142292020-08-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 14230 14231 PR target/96357 14232 * config/aarch64/aarch64-sve.md 14233 (cond_sub<mode>_relaxed_const): Updated and renamed from 14234 cond_sub<mode>_any_const pattern. 14235 (cond_sub<mode>_strict_const): New pattern. 14236 142372020-08-28 Wei Wentao <weiwt.fnst@cn.fujitsu.com> 14238 14239 * doc/rtl.texi: Fix typo. 14240 142412020-08-28 Uros Bizjak <ubizjak@gmail.com> 14242 14243 PR target/96744 14244 * config/i386/i386-expand.c (split_double_mode): Also handle 14245 E_P2HImode and E_P2QImode. 14246 * config/i386/sse.md (MASK_DWI): New define_mode_iterator. 14247 (mov<mode>): New expander for P2HI,P2QI. 14248 (*mov<mode>_internal): New define_insn_and_split to split 14249 movement of P2QI/P2HI to 2 movqi/movhi patterns after reload. 14250 142512020-08-28 liuhongt <hongtao.liu@intel.com> 14252 14253 * common/config/i386/i386-common.c (ix86_handle_option): Set 14254 AVX512DQ when AVX512VP2INTERSECT exists. 14255 142562020-08-27 Jakub Jelinek <jakub@redhat.com> 14257 14258 PR target/65146 14259 * config/i386/i386.c (iamcu_alignment): Don't decrease alignment 14260 for TYPE_ATOMIC types. 14261 (ix86_local_alignment): Likewise. 14262 (ix86_minimum_alignment): Likewise. 14263 (x86_field_alignment): Likewise, and emit a -Wpsabi diagnostic 14264 for it. 14265 142662020-08-27 Bill Schmidt <wschmidt@linux.ibm.com> 14267 14268 PR target/96787 14269 * config/rs6000/rs6000.c (rs6000_sibcall_aix): Support 14270 indirect call for ELFv2. 14271 142722020-08-27 Richard Biener <rguenther@suse.de> 14273 14274 PR tree-optimization/96522 14275 * tree-ssa-address.c (copy_ref_info): Reset flow-sensitive 14276 info of the copied points-to. Transfer bigger alignment 14277 via the access type. 14278 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): 14279 Reset all flow-sensitive info. 14280 142812020-08-27 Martin Liska <mliska@suse.cz> 14282 14283 * alias.c (init_alias_analysis): Set exact argument of a vector 14284 growth function to true. 14285 * calls.c (internal_arg_pointer_based_exp_scan): Likewise. 14286 * cfgbuild.c (find_many_sub_basic_blocks): Likewise. 14287 * cfgexpand.c (expand_asm_stmt): Likewise. 14288 * cfgrtl.c (rtl_create_basic_block): Likewise. 14289 * combine.c (combine_split_insns): Likewise. 14290 (combine_instructions): Likewise. 14291 * config/aarch64/aarch64-sve-builtins.cc (function_expander::add_output_operand): Likewise. 14292 (function_expander::add_input_operand): Likewise. 14293 (function_expander::add_integer_operand): Likewise. 14294 (function_expander::add_address_operand): Likewise. 14295 (function_expander::add_fixed_operand): Likewise. 14296 * df-core.c (df_worklist_dataflow_doublequeue): Likewise. 14297 * dwarf2cfi.c (update_row_reg_save): Likewise. 14298 * early-remat.c (early_remat::init_block_info): Likewise. 14299 (early_remat::finalize_candidate_indices): Likewise. 14300 * except.c (sjlj_build_landing_pads): Likewise. 14301 * final.c (compute_alignments): Likewise. 14302 (grow_label_align): Likewise. 14303 * function.c (temp_slots_at_level): Likewise. 14304 * fwprop.c (build_single_def_use_links): Likewise. 14305 (update_uses): Likewise. 14306 * gcc.c (insert_wrapper): Likewise. 14307 * genautomata.c (create_state_ainsn_table): Likewise. 14308 (add_vect): Likewise. 14309 (output_dead_lock_vect): Likewise. 14310 * genmatch.c (capture_info::capture_info): Likewise. 14311 (parser::finish_match_operand): Likewise. 14312 * genrecog.c (optimize_subroutine_group): Likewise. 14313 (merge_pattern_info::merge_pattern_info): Likewise. 14314 (merge_into_decision): Likewise. 14315 (print_subroutine_start): Likewise. 14316 (main): Likewise. 14317 * gimple-loop-versioning.cc (loop_versioning::loop_versioning): Likewise. 14318 * gimple.c (gimple_set_bb): Likewise. 14319 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Likewise. 14320 * haifa-sched.c (sched_extend_luids): Likewise. 14321 (extend_h_i_d): Likewise. 14322 * insn-addr.h (insn_addresses_new): Likewise. 14323 * ipa-cp.c (gather_context_independent_values): Likewise. 14324 (find_more_contexts_for_caller_subset): Likewise. 14325 * ipa-devirt.c (final_warning_record::grow_type_warnings): Likewise. 14326 (ipa_odr_read_section): Likewise. 14327 * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise. 14328 (ipa_fn_summary_t::duplicate): Likewise. 14329 (analyze_function_body): Likewise. 14330 (ipa_merge_fn_summary_after_inlining): Likewise. 14331 (read_ipa_call_summary): Likewise. 14332 * ipa-icf.c (sem_function::bb_dict_test): Likewise. 14333 * ipa-prop.c (ipa_alloc_node_params): Likewise. 14334 (parm_bb_aa_status_for_bb): Likewise. 14335 (ipa_compute_jump_functions_for_edge): Likewise. 14336 (ipa_analyze_node): Likewise. 14337 (update_jump_functions_after_inlining): Likewise. 14338 (ipa_read_edge_info): Likewise. 14339 (read_ipcp_transformation_info): Likewise. 14340 (ipcp_transform_function): Likewise. 14341 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise. 14342 * ipa-split.c (execute_split_functions): Likewise. 14343 * ira.c (find_moveable_pseudos): Likewise. 14344 * lower-subreg.c (decompose_multiword_subregs): Likewise. 14345 * lto-streamer-in.c (input_eh_regions): Likewise. 14346 (input_cfg): Likewise. 14347 (input_struct_function_base): Likewise. 14348 (input_function): Likewise. 14349 * modulo-sched.c (set_node_sched_params): Likewise. 14350 (extend_node_sched_params): Likewise. 14351 (schedule_reg_moves): Likewise. 14352 * omp-general.c (omp_construct_simd_compare): Likewise. 14353 * passes.c (pass_manager::create_pass_tab): Likewise. 14354 (enable_disable_pass): Likewise. 14355 * predict.c (determine_unlikely_bbs): Likewise. 14356 * profile.c (compute_branch_probabilities): Likewise. 14357 * read-rtl-function.c (function_reader::parse_block): Likewise. 14358 * read-rtl.c (rtx_reader::read_rtx_code): Likewise. 14359 * reg-stack.c (stack_regs_mentioned): Likewise. 14360 * regrename.c (regrename_init): Likewise. 14361 * rtlanal.c (T>::add_single_to_queue): Likewise. 14362 * sched-deps.c (init_deps_data_vector): Likewise. 14363 * sel-sched-ir.c (sel_extend_global_bb_info): Likewise. 14364 (extend_region_bb_info): Likewise. 14365 (extend_insn_data): Likewise. 14366 * symtab.c (symtab_node::create_reference): Likewise. 14367 * tracer.c (tail_duplicate): Likewise. 14368 * trans-mem.c (tm_region_init): Likewise. 14369 (get_bb_regions_instrumented): Likewise. 14370 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. 14371 (build_gimple_cfg): Likewise. 14372 (create_bb): Likewise. 14373 (move_block_to_fn): Likewise. 14374 * tree-complex.c (tree_lower_complex): Likewise. 14375 * tree-if-conv.c (predicate_rhs_code): Likewise. 14376 * tree-inline.c (copy_bb): Likewise. 14377 * tree-into-ssa.c (get_ssa_name_ann): Likewise. 14378 (mark_phi_for_rewrite): Likewise. 14379 * tree-object-size.c (compute_builtin_object_size): Likewise. 14380 (init_object_sizes): Likewise. 14381 * tree-predcom.c (initialize_root_vars_store_elim_1): Likewise. 14382 (initialize_root_vars_store_elim_2): Likewise. 14383 (prepare_initializers_chain_store_elim): Likewise. 14384 * tree-ssa-address.c (addr_for_mem_ref): Likewise. 14385 (multiplier_allowed_in_address_p): Likewise. 14386 * tree-ssa-coalesce.c (ssa_conflicts_new): Likewise. 14387 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 14388 * tree-ssa-loop-ivopts.c (addr_offset_valid_p): Likewise. 14389 (get_address_cost_ainc): Likewise. 14390 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise. 14391 * tree-ssa-pre.c (add_to_value): Likewise. 14392 (phi_translate_1): Likewise. 14393 (do_pre_regular_insertion): Likewise. 14394 (do_pre_partial_partial_insertion): Likewise. 14395 (init_pre): Likewise. 14396 * tree-ssa-propagate.c (ssa_prop_init): Likewise. 14397 (update_call_from_tree): Likewise. 14398 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Likewise. 14399 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. 14400 (vn_reference_lookup_pieces): Likewise. 14401 (eliminate_dom_walker::eliminate_push_avail): Likewise. 14402 * tree-ssa-strlen.c (set_strinfo): Likewise. 14403 (get_stridx_plus_constant): Likewise. 14404 (zero_length_string): Likewise. 14405 (find_equal_ptrs): Likewise. 14406 (printf_strlen_execute): Likewise. 14407 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise. 14408 * tree-ssanames.c (make_ssa_name_fn): Likewise. 14409 * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise. 14410 * tree-vect-loop.c (vect_record_loop_mask): Likewise. 14411 (vect_get_loop_mask): Likewise. 14412 (vect_record_loop_len): Likewise. 14413 (vect_get_loop_len): Likewise. 14414 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise. 14415 * tree-vect-slp.c (vect_slp_convert_to_external): Likewise. 14416 (vect_bb_slp_scalar_cost): Likewise. 14417 (vect_bb_vectorization_profitable_p): Likewise. 14418 (vectorizable_slp_permutation): Likewise. 14419 * tree-vect-stmts.c (vectorizable_call): Likewise. 14420 (vectorizable_simd_clone_call): Likewise. 14421 (scan_store_can_perm_p): Likewise. 14422 (vectorizable_store): Likewise. 14423 * expr.c: Likewise. 14424 * vec.c (test_safe_grow_cleared): Likewise. 14425 * vec.h (vec_safe_grow): Likewise. 14426 (vec_safe_grow_cleared): Likewise. 14427 (vl_ptr>::safe_grow): Likewise. 14428 (vl_ptr>::safe_grow_cleared): Likewise. 14429 * config/c6x/c6x.c (insn_set_clock): Likewise. 14430 144312020-08-27 Richard Biener <rguenther@suse.de> 14432 14433 * tree-pretty-print.c (dump_mem_ref): Handle TARGET_MEM_REFs. 14434 (dump_generic_node): Use dump_mem_ref also for TARGET_MEM_REF. 14435 144362020-08-27 Alex Coplan <alex.coplan@arm.com> 14437 14438 * lra-constraints.c (canonicalize_reload_addr): New. 14439 (curr_insn_transform): Use canonicalize_reload_addr to ensure we 14440 generate canonical RTL for an address reload. 14441 144422020-08-27 Zhiheng Xie <xiezhiheng@huawei.com> 14443 14444 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 14445 for rounding intrinsics. 14446 144472020-08-27 Zhiheng Xie <xiezhiheng@huawei.com> 14448 14449 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 14450 for min/max intrinsics. 14451 144522020-08-27 Richard Biener <rguenther@suse.de> 14453 14454 PR tree-optimization/96579 14455 * tree-ssa-reassoc.c (linearize_expr_tree): If we expand 14456 rhs via special ops make sure to swap operands. 14457 144582020-08-27 Richard Biener <rguenther@suse.de> 14459 14460 PR tree-optimization/96565 14461 * tree-ssa-dse.c (dse_classify_store): Remove defs with 14462 no uses from further processing. 14463 144642020-08-26 Göran Uddeborg <goeran@uddeborg.se> 14465 14466 PR gcov-profile/96285 14467 * common.opt, doc/invoke.texi: Clarify wording of 14468 -fprofile-exclude-files and adjust -fprofile-filter-files to 14469 match. 14470 144712020-08-26 H.J. Lu <hjl.tools@gmail.com> 14472 14473 PR target/96802 14474 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): 14475 Reject target("no-general-regs-only"). 14476 144772020-08-26 Jozef Lawrynowicz <jozef.l@mittosystems.com> 14478 14479 * config/msp430/constraints.md (K): Change unused constraint to 14480 constraint to a const_int between 1 and 19. 14481 (P): New constraint. 14482 * config/msp430/msp430-protos.h (msp430x_logical_shift_right): Remove. 14483 (msp430_expand_shift): New. 14484 (msp430_output_asm_shift_insns): New. 14485 * config/msp430/msp430.c (msp430_rtx_costs): Remove shift costs. 14486 (CSH): Remove. 14487 (msp430_expand_helper): Remove hard-coded generation of some inline 14488 shift insns. 14489 (use_helper_for_const_shift): New. 14490 (msp430_expand_shift): New. 14491 (msp430_output_asm_shift_insns): New. 14492 (msp430_print_operand): Add new 'W' operand selector. 14493 (msp430x_logical_shift_right): Remove. 14494 * config/msp430/msp430.md (HPSI): New define_mode_iterator. 14495 (HDI): Likewise. 14496 (any_shift): New define_code_iterator. 14497 (shift_insn): New define_code_attr. 14498 Adjust unnamed insn patterns searched for by combine. 14499 (ashlhi3): Remove. 14500 (slli_1): Remove. 14501 (430x_shift_left): Remove. 14502 (slll_1): Remove. 14503 (slll_2): Remove. 14504 (ashlsi3): Remove. 14505 (ashldi3): Remove. 14506 (ashrhi3): Remove. 14507 (srai_1): Remove. 14508 (430x_arithmetic_shift_right): Remove. 14509 (srap_1): Remove. 14510 (srap_2): Remove. 14511 (sral_1): Remove. 14512 (sral_2): Remove. 14513 (ashrsi3): Remove. 14514 (ashrdi3): Remove. 14515 (lshrhi3): Remove. 14516 (srli_1): Remove. 14517 (430x_logical_shift_right): Remove. 14518 (srlp_1): Remove. 14519 (srll_1): Remove. 14520 (srll_2x): Remove. 14521 (lshrsi3): Remove. 14522 (lshrdi3): Remove. 14523 (<shift_insn><mode>3): New define_expand. 14524 (<shift_insn>hi3_430): New define_insn. 14525 (<shift_insn>si3_const): Likewise. 14526 (ashl<mode>3_430x): Likewise. 14527 (ashr<mode>3_430x): Likewise. 14528 (lshr<mode>3_430x): Likewise. 14529 (*bitbranch<mode>4_z): Replace renamed predicate msp430_bitpos with 14530 const_0_to_15_operand. 14531 * config/msp430/msp430.opt: New option -mmax-inline-shift=. 14532 * config/msp430/predicates.md (const_1_to_8_operand): New predicate. 14533 (const_0_to_15_operand): Rename msp430_bitpos predicate. 14534 (const_1_to_19_operand): New predicate. 14535 * doc/invoke.texi: Document -mmax-inline-shift=. 14536 145372020-08-26 Aldy Hernandez <aldyh@redhat.com> 14538 14539 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Abstract code out to... 14540 * tree-vrp.c (find_case_label_range): ...here. Rewrite for to use irange 14541 API. 14542 (simplify_stmt_for_jump_threading): Call find_case_label_range instead of 14543 duplicating the code in simplify_stmt_for_jump_threading. 14544 * tree-vrp.h (find_case_label_range): New prototype. 14545 145462020-08-26 Richard Biener <rguenther@suse.de> 14547 14548 PR tree-optimization/96698 14549 * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): New. 14550 (loop_vec_info::reduc_latch_slp_defs): Likewise. 14551 * tree-vect-stmts.c (vect_transform_stmt): Only record 14552 stmts to update PHI latches from, perform the update ... 14553 * tree-vect-loop.c (vect_transform_loop): ... here after 14554 vectorizing those PHIs. 14555 (info_for_reduction): Properly handle non-reduction PHIs. 14556 145572020-08-26 Martin Liska <mliska@suse.cz> 14558 14559 * cgraphunit.c (process_symver_attribute): Match only symver 14560 TREE_PURPOSE. 14561 145622020-08-26 Richard Biener <rguenther@suse.de> 14563 14564 PR tree-optimization/96783 14565 * tree-vect-stmts.c (get_group_load_store_type): Use 14566 VMAT_ELEMENTWISE for negative strides when we cannot 14567 use VMAT_STRIDED_SLP. 14568 145692020-08-26 Martin Liska <mliska@suse.cz> 14570 14571 * doc/invoke.texi: Document how are pie and pic options merged. 14572 145732020-08-26 Zhiheng Xie <xiezhiheng@huawei.com> 14574 14575 * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG 14576 for add/sub arithmetic intrinsics. 14577 145782020-08-26 Jakub Jelinek <jakub@redhat.com> 14579 14580 PR debug/96729 14581 * dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment. 14582 (dwarf2out_var_location): Look for next_note only if next_real is 14583 non-NULL, in that case look for the first non-deleted 14584 NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any. 14585 145862020-08-26 Iain Buclaw <ibuclaw@gdcproject.org> 14587 14588 * config/tilepro/gen-mul-tables.cc (main): Define IN_TARGET_CODE to 1 14589 in the target file. 14590 145912020-08-26 Martin Liska <mliska@suse.cz> 14592 14593 * cgraphunit.c (process_symver_attribute): Allow multiple 14594 symver attributes for one symbol. 14595 * doc/extend.texi: Document the change. 14596 145972020-08-25 H.J. Lu <hjl.tools@gmail.com> 14598 14599 PR target/95863 14600 * config/i386/i386.h (CTZ_DEFINED_VALUE_AT_ZERO): Return 0/2. 14601 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise. 14602 146032020-08-25 Roger Sayle <roger@nextmovesoftware.com> 14604 14605 PR middle-end/87256 14606 * config/pa/pa.c (hppa_rtx_costs_shadd_p): New helper function 14607 to check for coefficients supported by shNadd and shladd,l. 14608 (hppa_rtx_costs): Rewrite to avoid using estimates based upon 14609 FACTOR and enable recursing deeper into RTL expressions. 14610 146112020-08-25 Roger Sayle <roger@nextmovesoftware.com> 14612 14613 * config/pa/pa.md (ashldi3): Additionally, on !TARGET_64BIT 14614 generate a two instruction shd/zdep sequence when shifting 14615 registers by suitable constants. 14616 (shd_internal): New define_expand to provide gen_shd_internal. 14617 146182020-08-25 Richard Sandiford <richard.sandiford@arm.com> 14619 14620 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Rename 14621 __ARM_FEATURE_SVE_VECTOR_OPERATIONS to 14622 __ARM_FEATURE_SVE_VECTOR_OPERATORS. 14623 146242020-08-25 Richard Sandiford <richard.sandiford@arm.com> 14625 14626 * config/aarch64/aarch64-sve-builtins.cc (add_sve_type_attribute): 14627 Take the ACLE name of the type as a parameter and add it as fourth 14628 argument to the "SVE type" attribute. 14629 (register_builtin_types): Update call accordingly. 14630 (register_tuple_type): Likewise. Construct the name of the type 14631 earlier in order to do this. 14632 (get_arm_sve_vector_bits_attributes): New function. 14633 (handle_arm_sve_vector_bits_attribute): Report a more sensible 14634 error message if the attribute is applied to an SVE tuple type. 14635 Don't allow the attribute to be applied to an existing fixed-length 14636 SVE type. Mangle the new type as __SVE_VLS<type, vector-bits>. 14637 Add a dummy TYPE_DECL to the new type. 14638 146392020-08-25 Richard Sandiford <richard.sandiford@arm.com> 14640 14641 * config/aarch64/aarch64-sve-builtins.cc (DEF_SVE_TYPE): Add a 14642 leading "u" to each mangled name. 14643 146442020-08-25 Richard Biener <rguenther@suse.de> 14645 14646 PR tree-optimization/96548 14647 PR tree-optimization/96760 14648 * tree-ssa-loop-im.c (tree_ssa_lim): Recompute RPO after 14649 store-motion. 14650 146512020-08-25 Jakub Jelinek <jakub@redhat.com> 14652 14653 PR tree-optimization/96722 14654 * gimple.c (infer_nonnull_range): Formatting fix. 14655 (infer_nonnull_range_by_dereference): Return false for clobber stmts. 14656 146572020-08-25 Jakub Jelinek <jakub@redhat.com> 14658 14659 PR tree-optimization/96758 14660 * tree-ssa-strlen.c (handle_builtin_string_cmp): If both cstlen1 14661 and cstlen2 are set, set cmpsiz to their minimum, otherwise use the 14662 one that is set. If bound is used and smaller than cmpsiz, set cmpsiz 14663 to bound. If both cstlen1 and cstlen2 are set, perform the optimization. 14664 146652020-08-25 Martin Jambor <mjambor@suse.cz> 14666 14667 PR tree-optimization/96730 14668 * tree-sra.c (create_access): Disqualify any aggregate with negative 14669 offset access. 14670 (build_ref_for_model): Add assert that offset is non-negative. 14671 146722020-08-25 Wei Wentao <weiwt.fnst@cn.fujitsu.com> 14673 14674 * rtl.def: Fix typo in comment. 14675 146762020-08-25 Roger Sayle <roger@nextmovesoftware.com> 14677 14678 PR tree-optimization/21137 14679 * fold-const.c (fold_binary_loc) [NE_EXPR/EQ_EXPR]: Call 14680 STRIP_NOPS when checking whether to simplify ((x>>C1)&C2) != 0. 14681 146822020-08-25 Andrew Pinski <apinski@marvell.com> 14683 14684 PR middle-end/64242 14685 * config/mips/mips.md (builtin_longjmp): Restore the frame 14686 pointer and stack pointer and gp. 14687 146882020-08-25 Richard Biener <rguenther@suse.de> 14689 14690 PR debug/96690 14691 * dwarf2out.c (reference_to_unused): Make FUNCTION_DECL 14692 processing more consistent with respect to 14693 symtab->global_info_ready. 14694 (tree_add_const_value_attribute): Unconditionally call 14695 rtl_for_decl_init to do all mangling early but throw 14696 away the result if early_dwarf. 14697 146982020-08-25 Hongtao Liu <hongtao.liu@intel.com> 14699 14700 PR target/96755 14701 * config/i386/sse.md: Correct the mode of NOT operands to 14702 SImode. 14703 147042020-08-25 Jakub Jelinek <jakub@redhat.com> 14705 14706 PR tree-optimization/96715 14707 * match.pd (copysign(x,-x) -> -x): New simplification. 14708 147092020-08-25 Jakub Jelinek <jakub@redhat.com> 14710 14711 PR target/95450 14712 * fold-const.c (native_interpret_real): For MODE_COMPOSITE_P modes 14713 punt if the to be returned REAL_CST does not encode to the bitwise 14714 same representation. 14715 147162020-08-24 Gerald Pfeifer <gerald@pfeifer.com> 14717 14718 * doc/install.texi (Configuration): Switch valgrind.com to https. 14719 147202020-08-24 Christophe Lyon <christophe.lyon@linaro.org> 14721 14722 PR target/94538 14723 PR target/94538 14724 * config/arm/thumb1.md: Disable set-constant splitter when 14725 TARGET_HAVE_MOVT. 14726 (thumb1_movsi_insn): Fix -mpure-code 14727 alternative. 14728 147292020-08-24 Martin Liska <mliska@suse.cz> 14730 14731 * tree-vect-data-refs.c (dr_group_sort_cmp): Work on 14732 data_ref_pair. 14733 (vect_analyze_data_ref_accesses): Work on groups. 14734 (vect_find_stmt_data_reference): Add group_id argument and fill 14735 up dataref_groups vector. 14736 * tree-vect-loop.c (vect_get_datarefs_in_loop): Pass new 14737 arguments. 14738 (vect_analyze_loop_2): Likewise. 14739 * tree-vect-slp.c (vect_slp_analyze_bb_1): Pass argument. 14740 (vect_slp_bb_region): Likewise. 14741 (vect_slp_region): Likewise. 14742 (vect_slp_bb):Work on the entire BB. 14743 * tree-vectorizer.h (vect_analyze_data_ref_accesses): Add new 14744 argument. 14745 (vect_find_stmt_data_reference): Likewise. 14746 147472020-08-24 Martin Liska <mliska@suse.cz> 14748 14749 PR tree-optimization/96597 14750 * tree-ssa-sccvn.c (vn_reference_lookup_call): Add missing 14751 initialization of ::punned. 14752 (vn_reference_insert): Use consistently false instead of 0. 14753 (vn_reference_insert_pieces): Likewise. 14754 147552020-08-24 Hans-Peter Nilsson <hp@axis.com> 14756 14757 PR target/93372 14758 * reorg.c (fill_slots_from_thread): Allow trial insns that clobber 14759 TARGET_FLAGS_REGNUM as delay-slot fillers. 14760 147612020-08-23 H.J. Lu <hjl.tools@gmail.com> 14762 14763 PR target/96744 14764 * config/i386/i386-options.c (IX86_ATTR_IX86_YES): New. 14765 (IX86_ATTR_IX86_NO): Likewise. 14766 (ix86_opt_type): Add ix86_opt_ix86_yes and ix86_opt_ix86_no. 14767 (ix86_valid_target_attribute_inner_p): Handle general-regs-only, 14768 ix86_opt_ix86_yes and ix86_opt_ix86_no. 14769 (ix86_option_override_internal): Check opts->x_ix86_target_flags 14770 instead of opts->x_ix86_target_flags. 14771 * doc/extend.texi: Document target("general-regs-only") function 14772 attribute. 14773 147742020-08-21 Richard Sandiford <richard.sandiford@arm.com> 14775 14776 * doc/extend.texi: Update links to Arm docs. 14777 * doc/invoke.texi: Likewise. 14778 147792020-08-21 Hongtao Liu <hongtao.liu@intel.com> 14780 14781 PR target/96262 14782 * config/i386/i386-expand.c 14783 (ix86_expand_vec_shift_qihi_constant): Refine. 14784 147852020-08-21 Alex Coplan <alex.coplan@arm.com> 14786 14787 PR jit/63854 14788 * gcc.c (set_static_spec): New. 14789 (set_static_spec_owned): New. 14790 (set_static_spec_shared): New. 14791 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Use 14792 set_static_spec_owned() to take ownership of lto_wrapper_file 14793 such that it gets freed in driver::finalize. 14794 (driver::maybe_run_linker): Use set_static_spec_shared() to 14795 ensure that we don't try and free() the static string "ld", 14796 also ensuring that any previously-allocated string in 14797 linker_name_spec is freed. Likewise with argv0. 14798 (driver::finalize): Use set_static_spec_shared() when resetting 14799 specs that previously had allocated strings; remove if(0) 14800 around call to free(). 14801 148022020-08-21 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> 14803 14804 * emit-rtl.c (try_split): Call copy_frame_info_to_split_insn 14805 to split certain RTX_FRAME_RELATED_P insns. 14806 * recog.c (copy_frame_info_to_split_insn): New function. 14807 (peep2_attempt): Split copying of frame related info of 14808 RTX_FRAME_RELATED_P insns into above function and call it. 14809 * recog.h (copy_frame_info_to_split_insn): Declare it. 14810 148112020-08-21 liuhongt <hongtao.liu@intel.com> 14812 14813 PR target/88808 14814 * config/i386/i386.c (ix86_preferred_reload_class): Allow 14815 QImode data go into mask registers. 14816 * config/i386/i386.md: (*movhi_internal): Adjust constraints 14817 for mask registers. 14818 (*movqi_internal): Ditto. 14819 (*anddi_1): Support mask register operations 14820 (*and<mode>_1): Ditto. 14821 (*andqi_1): Ditto. 14822 (*andn<mode>_1): Ditto. 14823 (*<code><mode>_1): Ditto. 14824 (*<code>qi_1): Ditto. 14825 (*one_cmpl<mode>2_1): Ditto. 14826 (*one_cmplsi2_1_zext): Ditto. 14827 (*one_cmplqi2_1): Ditto. 14828 (define_peephole2): Move constant 0/-1 directly into mask 14829 registers. 14830 * config/i386/predicates.md (mask_reg_operand): New predicate. 14831 * config/i386/sse.md (define_split): Add post-reload splitters 14832 that would convert "generic" patterns to mask patterns. 14833 (*knotsi_1_zext): New define_insn. 14834 148352020-08-21 liuhongt <hongtao.liu@intel.com> 14836 14837 * config/i386/x86-tune-costs.h (skylake_cost): Adjust cost 14838 model. 14839 148402020-08-21 liuhongt <hongtao.liu@intel.com> 14841 14842 * config/i386/i386.c (inline_secondary_memory_needed): 14843 No memory is needed between mask regs and gpr. 14844 (ix86_hard_regno_mode_ok): Add condition TARGET_AVX512F for 14845 mask regno. 14846 * config/i386/i386.h (enum reg_class): Add INT_MASK_REGS. 14847 (REG_CLASS_NAMES): Ditto. 14848 (REG_CLASS_CONTENTS): Ditto. 14849 * config/i386/i386.md: Exclude mask register in 14850 define_peephole2 which is avaiable only for gpr. 14851 148522020-08-21 H.J. Lu <hjl.tools@gmail.com> 14853 14854 PR target/71453 14855 * config/i386/i386.h (struct processor_costs): Add member 14856 mask_to_integer, integer_to_mask, mask_load[3], mask_store[3], 14857 mask_move. 14858 * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, 14859 i386_cost, pentium_cost, lakemont_cost, pentiumpro_cost, 14860 geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, 14861 bdver_cost, znver1_cost, znver2_cost, skylake_cost, 14862 btver1_cost, btver2_cost, pentium4_cost, nocona_cost, 14863 atom_cost, slm_cost, intel_cost, generic_cost, core_cost): 14864 Initialize mask_load[3], mask_store[3], mask_move, 14865 integer_to_mask, mask_to_integer for all target costs. 14866 * config/i386/i386.c (ix86_register_move_cost): Using cost 14867 model of mask registers. 14868 (inline_memory_move_cost): Ditto. 14869 (ix86_register_move_cost): Ditto. 14870 148712020-08-20 Iain Buclaw <ibuclaw@gdcproject.org> 14872 14873 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Don't include 14874 VxWorks header files if -fself-test is used. 14875 (STARTFILE_PREFIX_SPEC): Avoid using VSB_DIR if -fself-test is used. 14876 148772020-08-20 Joe Ramsay <Joe.Ramsay@arm.com> 14878 14879 PR target/96683 14880 * config/arm/mve.md (mve_vst1q_f<mode>): Require MVE memory operand for 14881 destination. 14882 (mve_vst1q_<supf><mode>): Likewise. 14883 148842020-08-19 2020-08-19 Carl Love <cel@us.ibm.com> 14885 14886 * config/rs6000/rs6000-builtin.def (BU_P10V_0, BU_P10V_1, 14887 BU_P10V_2, BU_P10V_3): Rename BU_P10V_VSX_0, BU_P10V_VSX_1, 14888 BU_P10V_VSX_2, BU_P10V_VSX_3 respectively. 14889 (BU_P10V_4): Remove. 14890 (BU_P10V_AV_0, BU_P10V_AV_1, BU_P10V_AV_2, BU_P10V_AV_3, BU_P10V_AV_4): 14891 New definitions for Power 10 Altivec macros. 14892 (VSTRIBR, VSTRIHR, VSTRIBL, VSTRIHL, VSTRIBR_P, VSTRIHR_P, 14893 VSTRIBL_P, VSTRIHL_P, MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM, 14894 VEXPANDMB, VEXPANDMH, VEXPANDMW, VEXPANDMD, VEXPANDMQ, VEXTRACTMB, 14895 VEXTRACTMH, VEXTRACTMW, VEXTRACTMD, VEXTRACTMQ): Replace macro 14896 expansion BU_P10V_1 with BU_P10V_AV_1. 14897 (VCLRLB, VCLRRB, VCFUGED, VCLZDM, VCTZDM, VPDEPD, VPEXTD, VGNB, 14898 VCNTMBB, VCNTMBH, VCNTMBW, VCNTMBD): Replace macro expansion 14899 BU_P10V_2 with BU_P10V_AV_2. 14900 (VEXTRACTBL, VEXTRACTHL, VEXTRACTWL, VEXTRACTDL, VEXTRACTBR, VEXTRACTHR, 14901 VEXTRACTWR, VEXTRACTDR, VINSERTGPRBL, VINSERTGPRHL, VINSERTGPRWL, 14902 VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL, VINSERTGPRBR, 14903 VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR, VINSERTVPRHR, 14904 VINSERTVPRWR, VREPLACE_ELT_V4SI, VREPLACE_ELT_UV4SI, VREPLACE_ELT_V2DF, 14905 VREPLACE_ELT_V4SF, VREPLACE_ELT_V2DI, VREPLACE_ELT_UV2DI, VREPLACE_UN_V4SI, 14906 VREPLACE_UN_UV4SI, VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI, 14907 VREPLACE_UN_V2DF, VSLDB_V16QI, VSLDB_V8HI, VSLDB_V4SI, VSLDB_V2DI, 14908 VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI, VSRDB_V2DI): Replace macro expansion 14909 BU_P10V_3 with BU_P10V_AV_3. 14910 (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF, VXXSPLTID): Replace macro expansion 14911 BU_P10V_1 with BU_P10V_AV_1. 14912 (XXGENPCVM_V16QI, XXGENPCVM_V8HI, XXGENPCVM_V4SI, XXGENPCVM_V2DI): 14913 Replace macro expansion BU_P10V_2 with BU_P10V_VSX_2. 14914 (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF, VXXBLEND_V16QI, VXXBLEND_V8HI, 14915 VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): Replace macor 14916 expansion BU_P10V_3 with BU_P10V_VSX_3. 14917 (XXEVAL, VXXPERMX): Replace macro expansion BU_P10V_4 with BU_P10V_VSX_4. 14918 (XVCVBF16SP, XVCVSPBF16): Replace macro expansion BU_VSX_1 with 14919 BU_P10V_VSX_1. Also change MISC to CONST. 14920 * config/rs6000/rs6000-c.c: (P10_BUILTIN_VXXPERMX): Replace with 14921 P10V_BUILTIN_VXXPERMX. 14922 (P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRRB, 14923 P10_BUILTIN_VGNB, P10_BUILTIN_XXEVAL, P10_BUILTIN_VXXPERMX, 14924 P10_BUILTIN_VEXTRACTBL, P10_BUILTIN_VEXTRACTHL, P10_BUILTIN_VEXTRACTWL, 14925 P10_BUILTIN_VEXTRACTDL, P10_BUILTIN_VINSERTGPRHL, 14926 P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL, 14927 P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL, 14928 P10_BUILTIN_VEXTRACTBR, P10_BUILTIN_VEXTRACTHR, 14929 P10_BUILTIN_VEXTRACTWR, P10_BUILTIN_VEXTRACTDR, 14930 P10_BUILTIN_VINSERTGPRBR, P10_BUILTIN_VINSERTGPRHR, 14931 P10_BUILTIN_VINSERTGPRWR, P10_BUILTIN_VINSERTGPRDR, 14932 P10_BUILTIN_VINSERTVPRBR, P10_BUILTIN_VINSERTVPRHR, 14933 P10_BUILTIN_VINSERTVPRWR, P10_BUILTIN_VREPLACE_ELT_UV4SI, 14934 P10_BUILTIN_VREPLACE_ELT_V4SI, P10_BUILTIN_VREPLACE_ELT_UV2DI, 14935 P10_BUILTIN_VREPLACE_ELT_V2DI, P10_BUILTIN_VREPLACE_ELT_V2DF, 14936 P10_BUILTIN_VREPLACE_UN_UV4SI, P10_BUILTIN_VREPLACE_UN_V4SI, 14937 P10_BUILTIN_VREPLACE_UN_V4SF, P10_BUILTIN_VREPLACE_UN_UV2DI, 14938 P10_BUILTIN_VREPLACE_UN_V2DI, P10_BUILTIN_VREPLACE_UN_V2DF, 14939 P10_BUILTIN_VSLDB_V16QI, P10_BUILTIN_VSLDB_V16QI, 14940 P10_BUILTIN_VSLDB_V8HI, P10_BUILTIN_VSLDB_V4SI, 14941 P10_BUILTIN_VSLDB_V2DI, P10_BUILTIN_VXXSPLTIW_V4SI, 14942 P10_BUILTIN_VXXSPLTIW_V4SF, P10_BUILTIN_VXXSPLTID, 14943 P10_BUILTIN_VXXSPLTI32DX_V4SI, P10_BUILTIN_VXXSPLTI32DX_V4SF, 14944 P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI, 14945 P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI, 14946 P10_BUILTIN_VXXBLEND_V4SF, P10_BUILTIN_VXXBLEND_V2DF, 14947 P10_BUILTIN_VSRDB_V16QI, P10_BUILTIN_VSRDB_V8HI, 14948 P10_BUILTIN_VSRDB_V4SI, P10_BUILTIN_VSRDB_V2DI, 14949 P10_BUILTIN_VSTRIBL, P10_BUILTIN_VSTRIHL, 14950 P10_BUILTIN_VSTRIBL_P, P10_BUILTIN_VSTRIHL_P, 14951 P10_BUILTIN_VSTRIBR, P10_BUILTIN_VSTRIHR, 14952 P10_BUILTIN_VSTRIBR_P, P10_BUILTIN_VSTRIHR_P, 14953 P10_BUILTIN_MTVSRBM, P10_BUILTIN_MTVSRHM, 14954 P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM, 14955 P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB, 14956 P10_BUILTIN_VCNTMBH, P10_BUILTIN_VCNTMBW, 14957 P10_BUILTIN_VCNTMBD, P10_BUILTIN_VEXPANDMB, 14958 P10_BUILTIN_VEXPANDMH, P10_BUILTIN_VEXPANDMW, 14959 P10_BUILTIN_VEXPANDMD, P10_BUILTIN_VEXPANDMQ, 14960 P10_BUILTIN_VEXTRACTMB, P10_BUILTIN_VEXTRACTMH, 14961 P10_BUILTIN_VEXTRACTMW, P10_BUILTIN_VEXTRACTMD, 14962 P10_BUILTIN_VEXTRACTMQ, P10_BUILTIN_XVTLSBB_ZEROS, 14963 P10_BUILTIN_XVTLSBB_ONES): Replace with 14964 P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRRB, 14965 P10V_BUILTIN_VGNB, P10V_BUILTIN_XXEVAL, P10V_BUILTIN_VXXPERMX, 14966 P10V_BUILTIN_VEXTRACTBL, P10V_BUILTIN_VEXTRACTHL, P10V_BUILTIN_VEXTRACTWL, 14967 P10V_BUILTIN_VEXTRACTDL, P10V_BUILTIN_VINSERTGPRHL, 14968 P10V_BUILTIN_VINSERTGPRWL, P10V_BUILTIN_VINSERTGPRDL, 14969 P10V_BUILTIN_VINSERTVPRBL,P10V_BUILTIN_VINSERTVPRHL, 14970 P10V_BUILTIN_VEXTRACTBR, P10V_BUILTIN_VEXTRACTHR 14971 P10V_BUILTIN_VEXTRACTWR, P10V_BUILTIN_VEXTRACTDR, 14972 P10V_BUILTIN_VINSERTGPRBR, P10V_BUILTIN_VINSERTGPRHR, 14973 P10V_BUILTIN_VINSERTGPRWR, P10V_BUILTIN_VINSERTGPRDR, 14974 P10V_BUILTIN_VINSERTVPRBR, P10V_BUILTIN_VINSERTVPRHR, 14975 P10V_BUILTIN_VINSERTVPRWR, P10V_BUILTIN_VREPLACE_ELT_UV4SI, 14976 P10V_BUILTIN_VREPLACE_ELT_V4SI, P10V_BUILTIN_VREPLACE_ELT_UV2DI, 14977 P10V_BUILTIN_VREPLACE_ELT_V2DI, P10V_BUILTIN_VREPLACE_ELT_V2DF, 14978 P10V_BUILTIN_VREPLACE_UN_UV4SI, P10V_BUILTIN_VREPLACE_UN_V4SI, 14979 P10V_BUILTIN_VREPLACE_UN_V4SF, P10V_BUILTIN_VREPLACE_UN_UV2DI, 14980 P10V_BUILTIN_VREPLACE_UN_V2DI, P10V_BUILTIN_VREPLACE_UN_V2DF, 14981 P10V_BUILTIN_VSLDB_V16QI, P10V_BUILTIN_VSLDB_V16QI, 14982 P10V_BUILTIN_VSLDB_V8HI, P10V_BUILTIN_VSLDB_V4SI, 14983 P10V_BUILTIN_VSLDB_V2DI, P10V_BUILTIN_VXXSPLTIW_V4SI, 14984 P10V_BUILTIN_VXXSPLTIW_V4SF, P10V_BUILTIN_VXXSPLTID, 14985 P10V_BUILTIN_VXXSPLTI32DX_V4SI, P10V_BUILTIN_VXXSPLTI32DX_V4SF, 14986 P10V_BUILTIN_VXXBLEND_V16QI, P10V_BUILTIN_VXXBLEND_V8HI, 14987 P10V_BUILTIN_VXXBLEND_V4SI, P10V_BUILTIN_VXXBLEND_V2DI, 14988 P10V_BUILTIN_VXXBLEND_V4SF, P10V_BUILTIN_VXXBLEND_V2DF, 14989 P10V_BUILTIN_VSRDB_V16QI, P10V_BUILTIN_VSRDB_V8HI, 14990 P10V_BUILTIN_VSRDB_V4SI, P10V_BUILTIN_VSRDB_V2DI, 14991 P10V_BUILTIN_VSTRIBL, P10V_BUILTIN_VSTRIHL, 14992 P10V_BUILTIN_VSTRIBL_P, P10V_BUILTIN_VSTRIHL_P, 14993 P10V_BUILTIN_VSTRIBR, P10V_BUILTIN_VSTRIHR, 14994 P10V_BUILTIN_VSTRIBR_P, P10V_BUILTIN_VSTRIHR_P, 14995 P10V_BUILTIN_MTVSRBM, P10V_BUILTIN_MTVSRHM, 14996 P10V_BUILTIN_MTVSRWM, P10V_BUILTIN_MTVSRDM, 14997 P10V_BUILTIN_MTVSRQM, P10V_BUILTIN_VCNTMBB, 14998 P10V_BUILTIN_VCNTMBH, P10V_BUILTIN_VCNTMBW, 14999 P10V_BUILTIN_VCNTMBD, P10V_BUILTIN_VEXPANDMB, 15000 P10V_BUILTIN_VEXPANDMH, P10V_BUILTIN_VEXPANDMW, 15001 P10V_BUILTIN_VEXPANDMD, P10V_BUILTIN_VEXPANDMQ, 15002 P10V_BUILTIN_VEXTRACTMB, P10V_BUILTIN_VEXTRACTMH, 15003 P10V_BUILTIN_VEXTRACTMW, P10V_BUILTIN_VEXTRACTMD, 15004 P10V_BUILTIN_VEXTRACTMQ, P10V_BUILTIN_XVTLSBB_ZEROS, 15005 P10V_BUILTIN_XVTLSBB_ONES respectively. 15006 * config/rs6000/rs6000-call.c: Ditto above, change P10_BUILTIN_name to 15007 P10V_BUILTIN_name. 15008 (P10_BUILTIN_XVCVSPBF16, P10_BUILTIN_XVCVBF16SP): Change to 15009 P10V_BUILTIN_XVCVSPBF16, P10V_BUILTIN_XVCVBF16SP respectively. 15010 150112020-08-19 Bill Schmidt <wschmidt@linux.ibm.com> 15012 15013 * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall): 15014 Sibcalls are always legal when the caller doesn't preserve r2. 15015 150162020-08-19 Uroš Bizjak <ubizjak@gmail.com> 15017 15018 * config/i386/i386-expand.c (ix86_expand_builtin) 15019 [case IX86_BUILTIN_ENQCMD, case IX86_BUILTIN_ENQCMDS]: 15020 Rewrite expansion to use code_for_enqcmd. 15021 [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]: 15022 Rewrite expansion to use code_for_wrss. 15023 [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]: 15024 Rewrite expansion to use code_for_wrss. 15025 150262020-08-19 Feng Xue <fxue@os.amperecomputing.com> 15027 15028 PR tree-optimization/94234 15029 * match.pd ((PTR_A + OFF) - (PTR_B + OFF)) -> (PTR_A - PTR_B): New 15030 simplification. 15031 150322020-08-19 H.J. Lu <hjl.tools@gmail.com> 15033 15034 * common/config/i386/cpuinfo.h (get_intel_cpu): Detect Rocket 15035 Lake and Alder Lake. 15036 150372020-08-19 Peixin Qiao <qiaopeixin@huawei.com> 15038 15039 * config/aarch64/aarch64.c (aarch64_init_cumulative_args): Remove 15040 "fndecl && TREE_PUBLIC (fndecl)" check since it prevents the funtion 15041 type check when calling via a function pointer or when calling a static 15042 function. 15043 150442020-08-19 Kewen Lin <linkw@linux.ibm.com> 15045 15046 * opts-global.c (decode_options): Call target_option_override_hook 15047 before it prints for --help=*. 15048 150492020-08-18 Peter Bergner <bergner@linux.ibm.com> 15050 15051 * config/rs6000/rs6000-builtin.def (BU_VSX_1): Rename xvcvbf16sp to 15052 xvcvbf16spn. 15053 * config/rs6000/rs6000-call.c (builtin_function_type): Likewise. 15054 * config/rs6000/vsx.md: Likewise. 15055 * doc/extend.texi: Likewise. 15056 150572020-08-18 Aaron Sawdey <acsawdey@linux.ibm.com> 15058 15059 * config/rs6000/rs6000-string.c (gen_lxvl_stxvl_move): 15060 Helper function. 15061 (expand_block_move): Add lxvl/stxvl, vector pair, and 15062 unaligned VSX. 15063 * config/rs6000/rs6000.c (rs6000_option_override_internal): 15064 Default value for -mblock-ops-vector-pair. 15065 * config/rs6000/rs6000.opt: Add -mblock-ops-vector-pair. 15066 150672020-08-18 Aldy Hernandez <aldyh@redhat.com> 15068 15069 * vr-values.c (check_for_binary_op_overflow): Change type of store 15070 to range_query. 15071 (vr_values::adjust_range_with_scev): Abstract most of the code... 15072 (range_of_var_in_loop): ...here. Remove value_range_equiv uses. 15073 (simplify_using_ranges::simplify_using_ranges): Change type of store 15074 to range_query. 15075 * vr-values.h (class range_query): New. 15076 (class simplify_using_ranges): Use range_query. 15077 (class vr_values): Add OVERRIDE to get_value_range. 15078 (range_of_var_in_loop): New. 15079 150802020-08-18 Martin Sebor <msebor@redhat.com> 15081 15082 PR middle-end/96665 15083 PR middle-end/78257 15084 * expr.c (convert_to_bytes): Replace statically allocated buffer with 15085 a dynamically allocated one of sufficient size. 15086 150872020-08-18 Martin Sebor <msebor@redhat.com> 15088 15089 PR tree-optimization/96670 15090 PR middle-end/78257 15091 * gimple-fold.c (gimple_fold_builtin_memchr): Call byte_representation 15092 to get it, not string_constant. 15093 150942020-08-18 Hu Jiangping <hujiangping@cn.fujitsu.com> 15095 15096 * doc/gimple.texi (gimple_debug_begin_stmt_p): Add return type. 15097 (gimple_debug_inline_entry_p, gimple_debug_nonbind_marker_p): Likewise. 15098 150992020-08-18 Martin Sebor <msebor@redhat.com> 15100 15101 * fold-const.c (native_encode_expr): Update comment. 15102 151032020-08-18 Uroš Bizjak <ubizjak@gmail.com> 15104 15105 PR target/96536 15106 * config/i386/i386.md (restore_stack_nonlocal): Add missing compare 15107 RTX. Rewrite expander to use high-level functions in RTL construction. 15108 151092020-08-18 liuhongt <hongtao.liu@intel.com> 15110 15111 PR target/96562 15112 PR target/93897 15113 * config/i386/i386-expand.c (ix86_expand_pinsr): Don't use 15114 pinsr for TImode. 15115 (ix86_expand_pextr): Don't use pextr for TImode. 15116 151172020-08-17 Uroš Bizjak <ubizjak@gmail.com> 15118 15119 * config/i386/i386-builtin.def (__builtin_ia32_bextri_u32) 15120 (__builtin_ia32_bextri_u64): Use CODE_FOR_nothing. 15121 * config/i386/i386.md (@tbm_bextri_<mode>): 15122 Implement as parametrized name pattern. 15123 (@rdrand<mode>): Ditto. 15124 (@rdseed<mode>): Ditto. 15125 * config/i386/i386-expand.c (ix86_expand_builtin) 15126 [case IX86_BUILTIN_BEXTRI32, case IX86_BUILTIN_BEXTRI64]: 15127 Update for parameterized name patterns. 15128 [case IX86_BUILTIN_RDRAND16_STEP, case IX86_BUILTIN_RDRAND32_STEP] 15129 [case IX86_BUILTIN_RDRAND64_STEP]: Ditto. 15130 [case IX86_BUILTIN_RDSEED16_STEP, case IX86_BUILTIN_RDSEED32_STEP] 15131 [case IX86_BUILTIN_RDSEED64_STEP]: Ditto. 15132 151332020-08-17 Aldy Hernandez <aldyh@redhat.com> 15134 15135 * vr-values.c (vr_values::get_value_range): Add stmt param. 15136 (vr_values::extract_range_from_comparison): Same. 15137 (vr_values::extract_range_from_assignment): Pass stmt to 15138 extract_range_from_comparison. 15139 (vr_values::adjust_range_with_scev): Pass stmt to get_value_range. 15140 (simplify_using_ranges::vrp_evaluate_conditional): Add stmt param. 15141 Pass stmt to get_value_range. 15142 (simplify_using_ranges::vrp_visit_cond_stmt): Pass stmt to 15143 get_value_range. 15144 (simplify_using_ranges::simplify_abs_using_ranges): Same. 15145 (simplify_using_ranges::simplify_div_or_mod_using_ranges): Same. 15146 (simplify_using_ranges::simplify_bit_ops_using_ranges): Same. 15147 (simplify_using_ranges::simplify_cond_using_ranges_1): Same. 15148 (simplify_using_ranges::simplify_switch_using_ranges): Same. 15149 (simplify_using_ranges::simplify_float_conversion_using_ranges): Same. 15150 * vr-values.h (class vr_values): Add stmt arg to 15151 vrp_evaluate_conditional_warnv_with_ops. 15152 Add stmt arg to extract_range_from_comparison and get_value_range. 15153 (simplify_using_ranges::get_value_range): Add stmt arg. 15154 151552020-08-17 liuhongt <hongtao.liu@intel.com> 15156 15157 PR target/96350 15158 * config/i386/i386.c (ix86_legitimate_constant_p): Return 15159 false for ENDBR immediate. 15160 (ix86_legitimate_address_p): Ditto. 15161 * config/i386/predicates.md 15162 (x86_64_immediate_operand): Exclude ENDBR immediate. 15163 (x86_64_zext_immediate_operand): Ditto. 15164 (x86_64_dwzext_immediate_operand): Ditto. 15165 (ix86_endbr_immediate_operand): New predicate. 15166 151672020-08-16 Roger Sayle <roger@nextmovesoftware.com> 15168 15169 * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]: 15170 Simplify (sign_extend:M (truncate:N (lshiftrt:M x C))) to 15171 (ashiftrt:M x C) when the shift sets the high bits appropriately. 15172 151732020-08-14 Martin Sebor <msebor@redhat.com> 15174 15175 PR middle-end/78257 15176 * builtins.c (expand_builtin_memory_copy_args): Rename called function. 15177 (expand_builtin_stpcpy_1): Remove argument from call. 15178 (expand_builtin_memcmp): Rename called function. 15179 (inline_expand_builtin_bytecmp): Same. 15180 * expr.c (convert_to_bytes): New function. 15181 (constant_byte_string): New function (formerly string_constant). 15182 (string_constant): Call constant_byte_string. 15183 (byte_representation): New function. 15184 * expr.h (byte_representation): Declare. 15185 * fold-const-call.c (fold_const_call): Rename called function. 15186 * fold-const.c (c_getstr): Remove an argument. 15187 (getbyterep): Define a new function. 15188 * fold-const.h (c_getstr): Remove an argument. 15189 (getbyterep): Declare a new function. 15190 * gimple-fold.c (gimple_fold_builtin_memory_op): Rename callee. 15191 (gimple_fold_builtin_string_compare): Same. 15192 (gimple_fold_builtin_memchr): Same. 15193 151942020-08-14 David Malcolm <dmalcolm@redhat.com> 15195 15196 * doc/analyzer.texi (Overview): Add tip about how to get a 15197 gimple dump if the analyzer ICEs. 15198 151992020-08-14 Uroš Bizjak <ubizjak@gmail.com> 15200 15201 * config/i386/i386-builtin.def (__builtin_ia32_llwpcb) 15202 (__builtin_ia32_slwpcb, __builtin_ia32_lwpval32) 15203 (__builtin_ia32_lwpval64, __builtin_ia32_lwpins32) 15204 (__builtin_ia32_lwpins64): Use CODE_FOR_nothing. 15205 * config/i386/i386.md (@lwp_llwpcb<mode>): 15206 Implement as parametrized name pattern. 15207 (@lwp_slwpcb<mode>): Ditto. 15208 (@lwp_lwpval<mode>): Ditto. 15209 (@lwp_lwpins<mode>): Ditto. 15210 * config/i386/i386-expand.c (ix86_expand_special_args_builtin) 15211 [case VOID_FTYPE_UINT_UINT_UINT, case VOID_FTYPE_UINT64_UINT_UINT] 15212 [case UCHAR_FTYPE_UINT_UINT_UINT, case UCHAR_FTYPE_UINT64_UINT_UINT]: 15213 Remove. 15214 (ix86_expand_builtin) 15215 [ case IX86_BUILTIN_LLWPCB, case IX86_BUILTIN_LLWPCB]: 15216 Update for parameterized name patterns. 15217 [case IX86_BUILTIN_LWPVAL32, case IX86_BUILTIN_LWPVAL64] 15218 [case IX86_BUILTIN_LWPINS32, case IX86_BUILTIN_LWPINS64]: Expand here. 15219 152202020-08-14 Lewis Hyatt <lhyatt@gmail.com> 15221 15222 * common.opt: Add new option -fdiagnostics-plain-output. 15223 * doc/invoke.texi: Document it. 15224 * opts-common.c (decode_cmdline_options_to_array): Implement it. 15225 (decode_cmdline_option): Add missing const qualifier to argv. 15226 152272020-08-14 Jakub Jelinek <jakub@redhat.com> 15228 Jonathan Wakely <jwakely@redhat.com> 15229 Jonathan Wakely <jwakely@redhat.com> 15230 15231 * system.h: Include type_traits. 15232 * vec.h (vec<T, A, vl_embed>::embedded_size): Use offsetof and asserts 15233 on vec_stdlayout, which is conditionally a vec (for standard layout T) 15234 and otherwise vec_embedded. 15235 152362020-08-14 Jojo R <jiejie_rong@c-sky.com> 15237 15238 * config/csky/csky-elf.h (ASM_SPEC): Use mfloat-abi. 15239 * config/csky/csky-linux-elf.h (ASM_SPEC): mfloat-abi. 15240 152412020-08-13 David Malcolm <dmalcolm@redhat.com> 15242 15243 PR analyzer/93032 15244 PR analyzer/93938 15245 PR analyzer/94011 15246 PR analyzer/94099 15247 PR analyzer/94399 15248 PR analyzer/94458 15249 PR analyzer/94503 15250 PR analyzer/94640 15251 PR analyzer/94688 15252 PR analyzer/94689 15253 PR analyzer/94839 15254 PR analyzer/95026 15255 PR analyzer/95042 15256 PR analyzer/95240 15257 * Makefile.in (ANALYZER_OBJS): Add analyzer/region.o, 15258 analyzer/region-model-impl-calls.o, 15259 analyzer/region-model-manager.o, 15260 analyzer/region-model-reachability.o, analyzer/store.o, and 15261 analyzer/svalue.o. 15262 * doc/analyzer.texi: Update for changes to analyzer 15263 implementation. 15264 * tristate.h (tristate::get_value): New accessor. 15265 152662020-08-13 Uroš Bizjak <ubizjak@gmail.com> 15267 15268 * config/i386/i386-builtin.def (CET_NORMAL): Merge to CET BDESC array. 15269 (__builtin_ia32_rddspd, __builtin_ia32_rddspq, __builtin_ia32_incsspd) 15270 (__builtin_ia32_incsspq, __builtin_ia32_wrssd, __builtin_ia32_wrssq) 15271 (__builtin_ia32_wrussd, __builtin_ia32_wrussq): Use CODE_FOR_nothing. 15272 * config/i386/i386-builtins.c: Remove handling of CET_NORMAL builtins. 15273 * config/i386/i386.md (@rdssp<mode>): Implement as parametrized 15274 name pattern. Use SWI48 mode iterator. Introduce input operand 15275 and remove explicit XOR zeroing from insn template. 15276 (@incssp<mode>): Implement as parametrized name pattern. 15277 Use SWI48 mode iterator. 15278 (@wrss<mode>): Ditto. 15279 (@wruss<mode>): Ditto. 15280 (rstorssp): Remove expander. Rename insn pattern from *rstorssp<mode>. 15281 Use DImode memory operand. 15282 (clrssbsy): Remove expander. Rename insn pattern from *clrssbsy<mode>. 15283 Use DImode memory operand. 15284 (save_stack_nonlocal): Update for parametrized name patterns. 15285 Use cleared register as an argument to gen_rddsp. 15286 (restore_stack_nonlocal): Update for parametrized name patterns. 15287 * config/i386/i386-expand.c (ix86_expand_builtin): 15288 [case IX86_BUILTIN_RDSSPD, case IX86_BUILTIN_RDSSPQ]: Expand here. 15289 [case IX86_BUILTIN_INCSSPD, case IX86_BUILTIN_INCSSPQ]: Ditto. 15290 [case IX86_BUILTIN_RSTORSSP, case IX86_BUILTIN_CLRSSBSY]: 15291 Generate DImode memory operand. 15292 [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ] 15293 [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]: 15294 Update for parameterized name patterns. 15295 152962020-08-13 Peter Bergner <bergner@linux.ibm.com> 15297 15298 PR target/96506 15299 * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): Disallow 15300 MMA types as return values. 15301 (rs6000_function_arg): Disallow MMA types as function arguments. 15302 153032020-08-13 Richard Sandiford <richard.sandiford@arm.com> 15304 15305 Revert: 15306 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com> 15307 15308 * config/aarch64/aarch64.c (aarch64_function_value): Add if 15309 condition to check ag_mode after entering if condition of 15310 aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is 15311 set as false by -mgeneral-regs-only, report the diagnostic 15312 information of -mgeneral-regs-only imcompatible with the use 15313 of fp/simd register(s). 15314 153152020-08-13 Martin Liska <mliska@suse.cz> 15316 15317 PR ipa/96482 15318 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Mask m_value 15319 with m_mask. 15320 153212020-08-13 Jakub Jelinek <jakub@redhat.com> 15322 15323 * gimplify.c (gimplify_omp_taskloop_expr): New function. 15324 (gimplify_omp_for): Use it. For OMP_FOR_NON_RECTANGULAR 15325 loops adjust in outer taskloop the var-outer decls. 15326 * omp-expand.c (expand_omp_taskloop_for_inner): Handle non-rectangular 15327 loops. 15328 (expand_omp_for): Don't reject non-rectangular taskloop. 15329 * omp-general.c (omp_extract_for_data): Don't assert that 15330 non-rectangular loops have static schedule, instead treat loop->m1 15331 or loop->m2 as if loop->n1 or loop->n2 is non-constant. 15332 153332020-08-13 Hongtao Liu <hongtao.liu@intel.com> 15334 15335 PR target/96246 15336 * config/i386/sse.md (<avx512>_load<mode>_mask, 15337 <avx512>_load<mode>_mask): Extend to generate blendm 15338 instructions. 15339 (<avx512>_blendm<mode>, <avx512>_blendm<mode>): Change 15340 define_insn to define_expand. 15341 153422020-08-12 Roger Sayle <roger@nextmovesoftware.com> 15343 Uroš Bizjak <ubizjak@gmail.com> 15344 15345 PR target/96558 15346 * config/i386/i386.md (peephole2): Only reorder register clearing 15347 instructions to allow use of xor for general registers. 15348 153492020-08-12 Martin Liska <mliska@suse.cz> 15350 15351 PR ipa/96482 15352 * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Drop value bits 15353 for bits that are unknown. 15354 (ipcp_bits_lattice::set_to_constant): Likewise. 15355 * tree-ssa-ccp.c (get_default_value): Add sanity check that 15356 IPA CP bit info has all bits set to zero in bits that 15357 are unknown. 15358 153592020-08-12 Peixin Qiao <qiaopeixin@huawei.com> 15360 15361 * config/aarch64/aarch64.c (aarch64_function_value): Add if 15362 condition to check ag_mode after entering if condition of 15363 aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is 15364 set as false by -mgeneral-regs-only, report the diagnostic 15365 information of -mgeneral-regs-only imcompatible with the use 15366 of fp/simd register(s). 15367 153682020-08-12 Jakub Jelinek <jakub@redhat.com> 15369 15370 PR tree-optimization/96535 15371 * toplev.c (process_options): Move flag_unroll_loops and 15372 flag_cunroll_grow_size handling from here to ... 15373 * opts.c (finish_options): ... here. For flag_cunroll_grow_size, 15374 don't check for AUTODETECT_VALUE, but instead check 15375 opts_set->x_flag_cunroll_grow_size. 15376 * common.opt (funroll-completely-grow-size): Default to 0. 15377 * config/rs6000/rs6000.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): 15378 Redefine. 15379 (rs6000_override_options_after_change): New function. 15380 (rs6000_option_override_internal): Call it. Move there the 15381 flag_cunroll_grow_size, unroll_only_small_loops and 15382 flag_rename_registers handling. 15383 153842020-08-12 Tom de Vries <tdevries@suse.de> 15385 15386 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Make elt_size an 15387 unsigned HOST_WIDE_INT. Print init_frag.remaining using 15388 HOST_WIDE_INT_PRINT_UNSIGNED. 15389 153902020-08-12 Roger Sayle <roger@nextmovesoftware.com> 15391 Uroš Bizjak <ubizjak@gmail.com> 15392 15393 * config/i386/i386.md (peephole2): Reduce unnecessary 15394 register shuffling produced by register allocation. 15395 153962020-08-12 Aldy Hernandez <aldyh@redhat.com> 15397 15398 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use vec<> 15399 instead of std::vector<>. 15400 (evaluate_properties_for_edge): Same. 15401 (ipa_fn_summary_t::duplicate): Same. 15402 (estimate_ipcp_clone_size_and_time): Same. 15403 * vec.h (<T, A, vl_embed>::embedded_size): Change vec_embedded 15404 type to contain a char[]. 15405 154062020-08-12 Andreas Krebbel <krebbel@linux.ibm.com> 15407 15408 PR target/96308 15409 * config/s390/s390.c (s390_cannot_force_const_mem): Reject an 15410 unary minus for everything not being a numeric constant. 15411 (legitimize_tls_address): Move a NEG out of the CONST rtx. 15412 154132020-08-12 Andreas Krebbel <krebbel@linux.ibm.com> 15414 15415 PR target/96456 15416 * config/s390/s390.h (TARGET_NONSIGNALING_VECTOR_COMPARE_OK): New 15417 macro. 15418 * config/s390/vector.md (vcond_comparison_operator): Use new macro 15419 for the check. 15420 154212020-08-11 Jakub Jelinek <jakub@redhat.com> 15422 15423 PR rtl-optimization/96539 15424 * expr.c (emit_block_move_hints): Don't copy anything if x and y 15425 are the same and neither is MEM_VOLATILE_P. 15426 154272020-08-11 Jakub Jelinek <jakub@redhat.com> 15428 15429 PR c/96549 15430 * tree.c (get_narrower): Use TREE_TYPE (ret) instead of 15431 TREE_TYPE (win) for COMPOUND_EXPRs. 15432 154332020-08-11 Jan Hubicka <hubicka@ucw.cz> 15434 15435 * predict.c (not_loop_guard_equal_edge_p): New function. 15436 (maybe_predict_edge): New function. 15437 (predict_paths_for_bb): Use it. 15438 (predict_paths_leading_to_edge): Use it. 15439 154402020-08-11 Martin Liska <mliska@suse.cz> 15441 15442 * dbgcnt.def (DEBUG_COUNTER): Add ipa_cp_bits. 15443 * ipa-cp.c (ipcp_store_bits_results): Use it when we store known 15444 bits for parameters. 15445 154462020-08-10 Marek Polacek <polacek@redhat.com> 15447 15448 * doc/sourcebuild.texi: Document dg-ice. 15449 154502020-08-10 Roger Sayle <roger@nextmovesoftware.com> 15451 15452 * config/i386/i386-expand.c (ix86_expand_int_movcc): Expand 15453 signed MIN_EXPR against zero as "x < 0 ? x : 0" instead of 15454 "x <= 0 ? x : 0" to enable sign_bit_compare_p optimizations. 15455 154562020-08-10 Aldy Hernandez <aldyh@redhat.com> 15457 15458 * value-range.h (gt_ggc_mx): Declare inline. 15459 (gt_pch_nx): Same. 15460 154612020-08-10 Marc Glisse <marc.glisse@inria.fr> 15462 15463 PR tree-optimization/95433 15464 * match.pd (X * C1 == C2): Handle wrapping overflow. 15465 * expr.c (maybe_optimize_mod_cmp): Qualify call to mod_inv. 15466 (mod_inv): Move... 15467 * wide-int.cc (mod_inv): ... here. 15468 * wide-int.h (mod_inv): Declare it. 15469 154702020-08-10 Jan Hubicka <hubicka@ucw.cz> 15471 15472 * predict.c (filter_predictions): Document semantics of filter. 15473 (equal_edge_p): Rename to ... 15474 (not_equal_edge_p): ... this; reverse semantics. 15475 (remove_predictions_associated_with_edge): Fix. 15476 154772020-08-10 Hongtao Liu <hongtao.liu@intel.com> 15478 15479 PR target/96243 15480 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Refine for 15481 maskcmp. 15482 (ix86_expand_mask_vec_cmp): Change prototype. 15483 * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): Change prototype. 15484 * config/i386/i386.c (ix86_print_operand): Remove operand 15485 modifier 'I'. 15486 * config/i386/sse.md 15487 (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): Deleted. 15488 (*<avx512>_cmp<mode>3<mask_scalar_merge_name>): Ditto. 15489 (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Ditto. 15490 (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>, 15491 avx512f_maskcmp<mode>3): Ditto. 15492 154932020-08-09 Roger Sayle <roger@nextmovesoftware.com> 15494 15495 * expmed.c (init_expmed_one_conv): Restore all->reg's mode. 15496 (init_expmed_one_mode): Set all->reg to desired mode. 15497 154982020-08-08 Peter Bergner <bergner@linux.ibm.com> 15499 15500 PR target/96530 15501 * config/rs6000/rs6000.c (rs6000_invalid_conversion): Use canonical 15502 types for type comparisons. Refactor code to simplify it. 15503 155042020-08-08 Jakub Jelinek <jakub@redhat.com> 15505 15506 PR fortran/93553 15507 * tree-nested.c (convert_nonlocal_omp_clauses): For 15508 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR 15509 save info->new_local_var_chain around walks of the clause gimple 15510 sequences and declare_vars if needed into the sequence. 15511 155122020-08-08 Jakub Jelinek <jakub@redhat.com> 15513 15514 PR tree-optimization/96424 15515 * omp-expand.c: Include tree-eh.h. 15516 (expand_omp_for_init_vars): Handle -fexceptions -fnon-call-exceptions 15517 by forcing floating point comparison into a bool temporary. 15518 155192020-08-07 Marc Glisse <marc.glisse@inria.fr> 15520 15521 * generic-match-head.c (optimize_vectors_before_lowering_p): New 15522 function. 15523 * gimple-match-head.c (optimize_vectors_before_lowering_p): 15524 Likewise. 15525 * match.pd ((v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Use it. 15526 155272020-08-07 Richard Biener <rguenther@suse.de> 15528 15529 PR tree-optimization/96514 15530 * tree-if-conv.c (if_convertible_bb_p): If the last stmt 15531 is a call that is control-altering, fail. 15532 155332020-08-07 Jose E. Marchesi <jose.marchesi@oracle.com> 15534 15535 * config/bpf/bpf.md: Remove trailing whitespaces. 15536 * config/bpf/constraints.md: Likewise. 15537 * config/bpf/predicates.md: Likewise. 15538 155392020-08-07 Michael Meissner <meissner@linux.ibm.com> 15540 15541 * config/rs6000/rs6000.md (bswaphi2_reg): Add ISA 3.1 support. 15542 (bswapsi2_reg): Add ISA 3.1 support. 15543 (bswapdi2): Rename bswapdi2_xxbrd to bswapdi2_brd. 15544 (bswapdi2_brd,bswapdi2_xxbrd): Rename. Add ISA 3.1 support. 15545 155462020-08-07 Alan Modra <amodra@gmail.com> 15547 15548 PR target/96493 15549 * config/rs6000/predicates.md (current_file_function_operand): Don't 15550 accept functions that differ in r2 usage. 15551 155522020-08-06 Hans-Peter Nilsson <hp@bitrange.com> 15553 15554 * config/mmix/mmix.md (MM): New mode_iterator. 15555 ("mov<mode>"): New expander to expand for all MM-modes. 15556 ("*movqi_expanded", "*movhi_expanded", "*movsi_expanded") 15557 ("*movsf_expanded", "*movdf_expanded"): Rename from the 15558 corresponding mov<M> named pattern. Add to the condition that 15559 either operand must be a register_operand. 15560 ("*movdi_expanded"): Similar, but also allow STCO in the condition. 15561 155622020-08-06 Richard Sandiford <richard.sandiford@arm.com> 15563 15564 PR target/96191 15565 * config/arm/arm.md (arm_stack_protect_test_insn): Zero out 15566 operand 2 after use. 15567 * config/arm/thumb1.md (thumb1_stack_protect_test_insn): Likewise. 15568 155692020-08-06 Peter Bergner <bergner@linux.ibm.com> 15570 15571 PR target/96446 15572 * config/rs6000/mma.md (*movpxi): Add xxsetaccz generation. 15573 Disable split for zero constant source operand. 15574 (mma_xxsetaccz): Change to define_expand. Call gen_movpxi. 15575 155762020-08-06 Jakub Jelinek <jakub@redhat.com> 15577 15578 PR tree-optimization/96480 15579 * tree-ssa-reassoc.c (suitable_cond_bb): Add TEST_SWAPPED_P argument. 15580 If TEST_BB ends in cond and has one edge to *OTHER_BB and another 15581 through an empty bb to that block too, if PHI args don't match, retry 15582 them through the other path from TEST_BB. 15583 (maybe_optimize_range_tests): Adjust callers. Handle such LAST_BB 15584 through inversion of the condition. 15585 155862020-08-06 Jose E. Marchesi <jose.marchesi@oracle.com> 15587 15588 * config/bpf/bpf-helpers.h (KERNEL_HELPER): Define. 15589 (KERNEL_VERSION): Remove. 15590 * config/bpf/bpf-helpers.def: Delete. 15591 * config/bpf/bpf.c (bpf_handle_fndecl_attribute): New function. 15592 (bpf_attribute_table): Define. 15593 (bpf_helper_names): Delete. 15594 (bpf_helper_code): Likewise. 15595 (enum bpf_builtins): Adjust to new helpers mechanism. 15596 (bpf_output_call): Likewise. 15597 (bpf_init_builtins): Likewise. 15598 (bpf_init_builtins): Likewise. 15599 * doc/extend.texi (BPF Function Attributes): New section. 15600 (BPF Kernel Helpers): Delete section. 15601 156022020-08-06 Richard Biener <rguenther@suse.de> 15603 15604 PR tree-optimization/96491 15605 * tree-ssa-sink.c (sink_common_stores_to_bb): Avoid 15606 sinking across abnormal edges. 15607 156082020-08-06 Richard Biener <rguenther@suse.de> 15609 15610 PR tree-optimization/96483 15611 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle 15612 POLY_INT_CST. 15613 156142020-08-06 Richard Biener <rguenther@suse.de> 15615 15616 * graphite-isl-ast-to-gimple.c (ivs_params): Use hash_map instead 15617 of std::map. 15618 (ivs_params_clear): Adjust. 15619 (gcc_expression_from_isl_ast_expr_id): Likewise. 15620 (graphite_create_new_loop): Likewise. 15621 (add_parameters_to_ivs_params): Likewise. 15622 156232020-08-06 Roger Sayle <roger@nextmovesoftware.com> 15624 Uroš Bizjak <ubizjak@gmail.com> 15625 15626 * config/i386/i386.md (MAXMIN_IMODE): No longer needed. 15627 (<maxmin><mode>3): Support SWI248 and general_operand for 15628 second operand, when TARGET_CMOVE. 15629 (<maxmin><mode>3_1 splitter): Optimize comparisons against 15630 0, 1 and -1 to use "test" instead of "cmp". 15631 (*<maxmin>di3_doubleword): Likewise, allow general_operand 15632 and enable on TARGET_CMOVE. 15633 (peephole2): Convert clearing a register after a flag setting 15634 instruction into an xor followed by the original flag setter. 15635 156362020-08-06 Gerald Pfeifer <gerald@pfeifer.com> 15637 15638 * ipa-fnsummary.c (INCLUDE_VECTOR): Define. 15639 Remove direct inclusion of <vector>. 15640 156412020-08-06 Kewen Lin <linkw@gcc.gnu.org> 15642 15643 * config/rs6000/rs6000.c (rs6000_adjust_vect_cost_per_loop): New 15644 function. 15645 (rs6000_finish_cost): Call rs6000_adjust_vect_cost_per_loop. 15646 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Add cost 15647 modeling for vector with length. 15648 (vect_rgroup_iv_might_wrap_p): New function, factored out from... 15649 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): ...this. 15650 Update function comment. 15651 * tree-vect-stmts.c (vect_gen_len): Update function comment. 15652 * tree-vectorizer.h (vect_rgroup_iv_might_wrap_p): New declare. 15653 156542020-08-06 Kewen Lin <linkw@linux.ibm.com> 15655 15656 * tree-vectorizer.c (try_vectorize_loop_1): Skip the epilogue loops 15657 for dbgcnt check. 15658 156592020-08-05 Marc Glisse <marc.glisse@inria.fr> 15660 15661 PR tree-optimization/95906 15662 PR target/70314 15663 * match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e), 15664 (v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): New transformations. 15665 (op (c ? a : b)): Update to match the new transformations. 15666 156672020-08-05 Richard Sandiford <richard.sandiford@arm.com> 15668 15669 PR target/96191 15670 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Set the 15671 CC register directly, instead of a GPR. Replace the original GPR 15672 destination with an extra scratch register. Zero out operand 3 15673 after use. 15674 (stack_protect_test): Update accordingly. 15675 156762020-08-05 Richard Sandiford <richard.sandiford@arm.com> 15677 15678 * config/aarch64/aarch64.md (load_pair_sw_<SX:mode><SX2:mode>) 15679 (load_pair_dw_<DX:mode><DX2:mode>, load_pair_dw_tftf) 15680 (store_pair_sw_<SX:mode><SX2:mode>) 15681 (store_pair_dw_<DX:mode><DX2:mode>, store_pair_dw_tftf) 15682 (*load_pair_extendsidi2_aarch64) 15683 (*load_pair_zero_extendsidi2_aarch64): Use %z for the memory operand. 15684 * config/aarch64/aarch64-simd.md (load_pair<DREG:mode><DREG2:mode>) 15685 (vec_store_pair<DREG:mode><DREG2:mode>, load_pair<VQ:mode><VQ2:mode>) 15686 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise. 15687 156882020-08-05 Richard Biener <rguenther@suse.de> 15689 15690 * tree-ssa-loop-im.c (invariantness_dom_walker): Remove. 15691 (invariantness_dom_walker::before_dom_children): Move to ... 15692 (compute_invariantness): ... this function. 15693 (move_computations): Inline ... 15694 (tree_ssa_lim): ... here, share RPO order and avoid some 15695 cfun references. 15696 (analyze_memory_references): Remove sorting of location 15697 lists, instead assert they are sorted already when checking. 15698 (prev_flag_edges): Remove. 15699 (execute_sm_if_changed): Pass down and adjust prev edge state. 15700 (execute_sm_exit): Likewise. 15701 (hoist_memory_references): Likewise. Commit edge insertions 15702 of each processed exit. 15703 (store_motion_loop): Do not commit edge insertions on all 15704 edges in the function. 15705 (tree_ssa_lim_initialize): Do not call alloc_aux_for_edges. 15706 (tree_ssa_lim_finalize): Do not call free_aux_for_edges. 15707 157082020-08-05 Richard Biener <rguenther@suse.de> 15709 15710 * genmatch.c (fail_label): New global. 15711 (expr::gen_transform): Branch to fail_label instead of 15712 returning. Fix indent of call argument checking. 15713 (dt_simplify::gen_1): Compute and emit fail_label, branch 15714 to it instead of returning early. 15715 157162020-08-05 Jakub Jelinek <jakub@redhat.com> 15717 15718 * omp-expand.c (expand_omp_for): Don't disallow combined non-rectangular 15719 loops. 15720 157212020-08-05 Jakub Jelinek <jakub@redhat.com> 15722 15723 PR middle-end/96459 15724 * omp-low.c (lower_omp_taskreg): Call lower_reduction_clauses even in 15725 for host teams. 15726 157272020-08-05 Jakub Jelinek <jakub@redhat.com> 15728 15729 * omp-expand.c (expand_omp_for_init_counts): Remember 15730 first_inner_iterations, factor and n1o from the number of iterations 15731 computation in *fd. 15732 (expand_omp_for_init_vars): Use more efficient logical iteration number 15733 to actual iterator values computation even for non-rectangular loops 15734 where number of loop iterations could not be computed at compile time. 15735 157362020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> 15737 15738 * config/rs6000/altivec.h (vec_blendv, vec_permx): Add define. 15739 * config/rs6000/altivec.md (UNSPEC_XXBLEND, UNSPEC_XXPERMX.): New 15740 unspecs. 15741 (VM3): New define_mode. 15742 (VM3_char): New define_attr. 15743 (xxblend_<mode> mode VM3): New define_insn. 15744 (xxpermx): New define_expand. 15745 (xxpermx_inst): New define_insn. 15746 * config/rs6000/rs6000-builtin.def (VXXBLEND_V16QI, VXXBLEND_V8HI, 15747 VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): New 15748 BU_P10V_3 definitions. 15749 (XXBLEND): New BU_P10_OVERLOAD_3 definition. 15750 (XXPERMX): New BU_P10_OVERLOAD_4 definition. 15751 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 15752 (P10_BUILTIN_VXXPERMX): Add if statement. 15753 * config/rs6000/rs6000-call.c (P10_BUILTIN_VXXBLEND_V16QI, 15754 P10_BUILTIN_VXXBLEND_V8HI, P10_BUILTIN_VXXBLEND_V4SI, 15755 P10_BUILTIN_VXXBLEND_V2DI, P10_BUILTIN_VXXBLEND_V4SF, 15756 P10_BUILTIN_VXXBLEND_V2DF, P10_BUILTIN_VXXPERMX): Define 15757 overloaded arguments. 15758 (rs6000_expand_quaternop_builtin): Add if case for CODE_FOR_xxpermx. 15759 (builtin_quaternary_function_type): Add v16uqi_type and xxpermx_type 15760 variables, add case statement for P10_BUILTIN_VXXPERMX. 15761 (builtin_function_type): Add case statements for 15762 P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI, 15763 P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI. 15764 * doc/extend.texi: Add documentation for vec_blendv and vec_permx. 15765 157662020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> 15767 15768 * config/rs6000/altivec.h (vec_splati, vec_splatid, vec_splati_ins): 15769 Add defines. 15770 * config/rs6000/altivec.md (UNSPEC_XXSPLTIW, UNSPEC_XXSPLTID, 15771 UNSPEC_XXSPLTI32DX): New. 15772 (vxxspltiw_v4si, vxxspltiw_v4sf_inst, vxxspltidp_v2df_inst, 15773 vxxsplti32dx_v4si_inst, vxxsplti32dx_v4sf_inst): New define_insn. 15774 (vxxspltiw_v4sf, vxxspltidp_v2df, vxxsplti32dx_v4si, 15775 vxxsplti32dx_v4sf.): New define_expands. 15776 * config/rs6000/predicates.md (u1bit_cint_operand, 15777 s32bit_cint_operand, c32bit_cint_operand): New predicates. 15778 * config/rs6000/rs6000-builtin.def (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF, 15779 VXXSPLTID): New definitions. 15780 (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF): New BU_P10V_3 15781 definitions. 15782 (XXSPLTIW, XXSPLTID): New definitions. 15783 (XXSPLTI32DX): Add definitions. 15784 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XXSPLTIW, 15785 P10_BUILTIN_VEC_XXSPLTID, P10_BUILTIN_VEC_XXSPLTI32DX): 15786 New definitions. 15787 * config/rs6000/rs6000-protos.h (rs6000_constF32toI32): New extern 15788 declaration. 15789 * config/rs6000/rs6000.c (rs6000_constF32toI32): New function. 15790 * doc/extend.texi: Add documentation for vec_splati, 15791 vec_splatid, and vec_splati_ins. 15792 157932020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> 15794 15795 * config/rs6000/altivec.h (vec_sldb, vec_srdb): New defines. 15796 * config/rs6000/altivec.md (UNSPEC_SLDB, UNSPEC_SRDB): New. 15797 (SLDB_lr): New attribute. 15798 (VSHIFT_DBL_LR): New iterator. 15799 (vs<SLDB_lr>db_<mode>): New define_insn. 15800 * config/rs6000/rs6000-builtin.def (VSLDB_V16QI, VSLDB_V8HI, 15801 VSLDB_V4SI, VSLDB_V2DI, VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI, 15802 VSRDB_V2DI): New BU_P10V_3 definitions. 15803 (SLDB, SRDB): New BU_P10_OVERLOAD_3 definitions. 15804 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_SLDB, 15805 P10_BUILTIN_VEC_SRDB): New definitions. 15806 (rs6000_expand_ternop_builtin) [CODE_FOR_vsldb_v16qi, 15807 CODE_FOR_vsldb_v8hi, CODE_FOR_vsldb_v4si, CODE_FOR_vsldb_v2di, 15808 CODE_FOR_vsrdb_v16qi, CODE_FOR_vsrdb_v8hi, CODE_FOR_vsrdb_v4si, 15809 CODE_FOR_vsrdb_v2di]: Add clauses. 15810 * doc/extend.texi: Add description for vec_sldb and vec_srdb. 15811 158122020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> 15813 15814 * config/rs6000/altivec.h: Add define for vec_replace_elt and 15815 vec_replace_unaligned. 15816 * config/rs6000/vsx.md (UNSPEC_REPLACE_ELT, UNSPEC_REPLACE_UN): New 15817 unspecs. 15818 (REPLACE_ELT): New mode iterator. 15819 (REPLACE_ELT_char, REPLACE_ELT_sh, REPLACE_ELT_max): New mode attributes. 15820 (vreplace_un_<mode>, vreplace_elt_<mode>_inst): New. 15821 * config/rs6000/rs6000-builtin.def (VREPLACE_ELT_V4SI, 15822 VREPLACE_ELT_UV4SI, VREPLACE_ELT_V4SF, VREPLACE_ELT_UV2DI, 15823 VREPLACE_ELT_V2DF, VREPLACE_UN_V4SI, VREPLACE_UN_UV4SI, 15824 VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI, 15825 VREPLACE_UN_V2DF, (REPLACE_ELT, REPLACE_UN, VREPLACE_ELT_V2DI): New builtin 15826 entries. 15827 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_REPLACE_ELT, 15828 P10_BUILTIN_VEC_REPLACE_UN): New builtin argument definitions. 15829 (rs6000_expand_quaternop_builtin): Add 3rd argument checks for 15830 CODE_FOR_vreplace_elt_v4si, CODE_FOR_vreplace_elt_v4sf, 15831 CODE_FOR_vreplace_un_v4si, CODE_FOR_vreplace_un_v4sf. 15832 (builtin_function_type) [P10_BUILTIN_VREPLACE_ELT_UV4SI, 15833 P10_BUILTIN_VREPLACE_ELT_UV2DI, P10_BUILTIN_VREPLACE_UN_UV4SI, 15834 P10_BUILTIN_VREPLACE_UN_UV2DI]: New cases. 15835 * doc/extend.texi: Add description for vec_replace_elt and 15836 vec_replace_unaligned builtins. 15837 158382020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> 15839 15840 * config/rs6000/altivec.h (vec_insertl, vec_inserth): New defines. 15841 * config/rs6000/rs6000-builtin.def (VINSERTGPRBL, VINSERTGPRHL, 15842 VINSERTGPRWL, VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL, 15843 VINSERTGPRBR, VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR, 15844 VINSERTVPRHR, VINSERTVPRWR): New builtins. 15845 (INSERTL, INSERTH): New builtins. 15846 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_INSERTL, 15847 P10_BUILTIN_VEC_INSERTH): New overloaded definitions. 15848 (P10_BUILTIN_VINSERTGPRBL, P10_BUILTIN_VINSERTGPRHL, 15849 P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL, 15850 P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL, 15851 P10_BUILTIN_VINSERTVPRWL): Add case entries. 15852 * config/rs6000/vsx.md (define_c_enum): Add UNSPEC_INSERTL, 15853 UNSPEC_INSERTR. 15854 (define_expand): Add vinsertvl_<mode>, vinsertvr_<mode>, 15855 vinsertgl_<mode>, vinsertgr_<mode>, mode is VI2. 15856 (define_ins): vinsertvl_internal_<mode>, vinsertvr_internal_<mode>, 15857 vinsertgl_internal_<mode>, vinsertgr_internal_<mode>, mode VEC_I. 15858 * doc/extend.texi: Add documentation for vec_insertl, vec_inserth. 15859 158602020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> 15861 15862 * config/rs6000/altivec.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR) 15863 (vextractl<mode>, vextractr<mode>) 15864 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2) 15865 (VI2): Move to ... 15866 * config/rs6000/vsx.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR) 15867 (vextractl<mode>, vextractr<mode>) 15868 (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2) 15869 (VI2): ..here. 15870 * doc/extend.texi: Update documentation for vec_extractl. 15871 Replace builtin name vec_extractr with vec_extracth. Update 15872 description of vec_extracth. 15873 158742020-08-04 Jim Wilson <jimw@sifive.com> 15875 15876 * doc/invoke.texi (AArch64 Options): Delete duplicate 15877 -mstack-protector-guard docs. 15878 158792020-08-04 Roger Sayle <roger@nextmovesoftware.com> 15880 15881 * config/nvptx/nvptx.md (smulhi3_highpart, smulsi3_highpart) 15882 (umulhi3_highpart, umulsi3_highpart): New instructions. 15883 158842020-08-04 Andrew Stubbs <ams@codesourcery.com> 15885 15886 * config/gcn/gcn-run.c (R_AMDGPU_NONE): Delete. 15887 (R_AMDGPU_ABS32_LO): Delete. 15888 (R_AMDGPU_ABS32_HI): Delete. 15889 (R_AMDGPU_ABS64): Delete. 15890 (R_AMDGPU_REL32): Delete. 15891 (R_AMDGPU_REL64): Delete. 15892 (R_AMDGPU_ABS32): Delete. 15893 (R_AMDGPU_GOTPCREL): Delete. 15894 (R_AMDGPU_GOTPCREL32_LO): Delete. 15895 (R_AMDGPU_GOTPCREL32_HI): Delete. 15896 (R_AMDGPU_REL32_LO): Delete. 15897 (R_AMDGPU_REL32_HI): Delete. 15898 (reserved): Delete. 15899 (R_AMDGPU_RELATIVE64): Delete. 15900 159012020-08-04 Omar Tahir <omar.tahir@arm.com> 15902 15903 * config/arm/arm-cpus.in (armv8.1-m.main): Tune for Cortex-M55. 15904 159052020-08-04 Hu Jiangping <hujiangping@cn.fujitsu.com> 15906 15907 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Delete 15908 redundant extra_cost variable. 15909 159102020-08-04 Zhiheng Xie <xiezhiheng@huawei.com> 15911 15912 * config/aarch64/aarch64-builtins.c (aarch64_call_properties): 15913 Use FLOAT_MODE_P macro instead of enumerating all floating-point 15914 modes and add global flag FLAG_AUTO_FP. 15915 159162020-08-04 Jakub Jelinek <jakub@redhat.com> 15917 15918 * doc/extend.texi (symver): Add @cindex for symver function attribute. 15919 159202020-08-04 Marc Glisse <marc.glisse@inria.fr> 15921 15922 PR tree-optimization/95433 15923 * match.pd (X * C1 == C2): New transformation. 15924 159252020-08-04 Aldy Hernandez <aldyh@redhat.com> 15926 15927 * gimple-ssa-sprintf.c (get_int_range): Adjust for irange API. 15928 (format_integer): Same. 15929 (handle_printf_call): Same. 15930 159312020-08-04 Andrew Stubbs <ams@codesourcery.com> 15932 15933 * config/gcn/gcn.md ("<expander>ti3"): New. 15934 159352020-08-04 Richard Biener <rguenther@suse.de> 15936 15937 PR tree-optimization/88240 15938 * tree-ssa-sccvn.h (vn_reference_s::punned): New flag. 15939 * tree-ssa-sccvn.c (vn_reference_insert): Initialize punned. 15940 (vn_reference_insert_pieces): Likewise. 15941 (visit_reference_op_call): Likewise. 15942 (visit_reference_op_load): Track whether a ref was punned. 15943 * tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist 15944 insertion on punned floating point loads. 15945 159462020-08-04 Sudakshina Das <sudi.das@arm.com> 15947 15948 * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case 15949 for E_V4SImode. 15950 (aarch64_gen_load_pair): Likewise. 15951 (aarch64_copy_one_block_and_progress_pointers): Handle 256 bit copy. 15952 (aarch64_expand_cpymem): Expand copy_limit to 256bits where 15953 appropriate. 15954 159552020-08-04 Andrea Corallo <andrea.corallo@arm.com> 15956 15957 * config/aarch64/aarch64.md (aarch64_fjcvtzs): Add missing 15958 clobber. 15959 * doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new 15960 target supports option. 15961 159622020-08-04 Tom de Vries <tdevries@suse.de> 15963 15964 PR target/96428 15965 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Handle V2SI/V2DI. 15966 159672020-08-04 Jakub Jelinek <jakub@redhat.com> 15968 15969 PR middle-end/96426 15970 * tree-vect-generic.c (expand_vector_conversion): Replace .VEC_CONVERT 15971 call with GIMPLE_NOP if there is no lhs. 15972 159732020-08-04 Jakub Jelinek <jakub@redhat.com> 15974 15975 PR debug/96354 15976 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Add IS_DEBUG 15977 argument. Return false instead of gcc_unreachable if it is true and 15978 get_addr_base_and_unit_offset returns NULL. 15979 (fold_stmt_1) <case GIMPLE_DEBUG>: Adjust caller. 15980 159812020-08-04 Aldy Hernandez <aldyh@redhat.com> 15982 15983 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): 15984 Call is_gimple_min_invariant dropped from previous patch. 15985 159862020-08-04 Jakub Jelinek <jakub@redhat.com> 15987 15988 * omp-expand.c (expand_omp_for_init_counts): For triangular loops 15989 compute number of iterations at runtime more efficiently. 15990 (expand_omp_for_init_vars): Adjust immediate dominators. 15991 (extract_omp_for_update_vars): Likewise. 15992 159932020-08-04 Aldy Hernandez <aldyh@redhat.com> 15994 15995 * vr-values.c (simplify_using_ranges::two_valued_val_range_p): 15996 Use irange API. 15997 159982020-08-04 Aldy Hernandez <aldyh@redhat.com> 15999 16000 * vr-values.c (simplify_conversion_using_ranges): Convert to irange API. 16001 160022020-08-04 Aldy Hernandez <aldyh@redhat.com> 16003 16004 * vr-values.c (test_for_singularity): Use irange API. 16005 (simplify_using_ranges::simplify_cond_using_ranges_1): Do not 16006 special case VR_RANGE. 16007 160082020-08-04 Aldy Hernandez <aldyh@redhat.com> 16009 16010 * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): Adjust 16011 for irange API. 16012 160132020-08-04 Aldy Hernandez <aldyh@redhat.com> 16014 16015 * vr-values.c (simplify_using_ranges::op_with_boolean_value_range_p): Adjust 16016 for irange API. 16017 160182020-08-04 Aldy Hernandez <aldyh@redhat.com> 16019 16020 * tree-ssanames.c (get_range_info): Use irange instead of value_range. 16021 * tree-ssanames.h (get_range_info): Same. 16022 160232020-08-04 Aldy Hernandez <aldyh@redhat.com> 16024 16025 * fold-const.c (expr_not_equal_to): Adjust for irange API. 16026 160272020-08-04 Aldy Hernandez <aldyh@redhat.com> 16028 16029 * builtins.c (determine_block_size): Remove ad-hoc range canonicalization. 16030 160312020-08-04 Xionghu Luo <luoxhu@linux.ibm.com> 16032 16033 PR rtl-optimization/71309 16034 * dse.c (find_shift_sequence): Use subreg of shifted from high part 16035 register to avoid loading from address. 16036 160372020-08-03 Jonathan Wakely <jwakely@redhat.com> 16038 16039 * doc/cpp.texi (Variadic Macros): Use the exact ... token in 16040 code examples. 16041 160422020-08-03 Nathan Sidwell <nathan@acm.org> 16043 16044 * doc/invoke.texi: Refer to c++20 16045 160462020-08-03 Julian Brown <julian@codesourcery.com> 16047 Thomas Schwinge <thomas@codesourcery.com> 16048 16049 * gimplify.c (gimplify_omp_target_update): Allow GOMP_MAP_TO_PSET 16050 without a preceding data-movement mapping. 16051 160522020-08-03 Iain Sandoe <iain@sandoe.co.uk> 16053 16054 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): UNDEF before 16055 use. 16056 (DEF_MIN_OSX_VERSION): Only define if there's no existing 16057 def. 16058 160592020-08-03 Iain Sandoe <iain@sandoe.co.uk> 16060 16061 * config/darwin.c (IN_TARGET_CODE): Remove. 16062 (darwin_mergeable_constant_section): Handle poly-int machine modes. 16063 (machopic_select_rtx_section): Likewise. 16064 160652020-08-03 Aldy Hernandez <aldyh@redhat.com> 16066 16067 PR tree-optimization/96430 16068 * range-op.cc (operator_tests): Do not shift by 31 on targets with 16069 integer's smaller than 32 bits. 16070 160712020-08-03 Martin Jambor <mjambor@suse.cz> 16072 16073 * hsa-brig-format.h: Moved to brig/brigfrontend. 16074 * hsa-brig.c: Removed. 16075 * hsa-builtins.def: Likewise. 16076 * hsa-common.c: Likewise. 16077 * hsa-common.h: Likewise. 16078 * hsa-dump.c: Likewise. 16079 * hsa-gen.c: Likewise. 16080 * hsa-regalloc.c: Likewise. 16081 * ipa-hsa.c: Likewise. 16082 * omp-grid.c: Likewise. 16083 * omp-grid.h: Likewise. 16084 * Makefile.in (BUILTINS_DEF): Remove hsa-builtins.def. 16085 (OBJS): Remove hsa-common.o, hsa-gen.o, hsa-regalloc.o, hsa-brig.o, 16086 hsa-dump.o, ipa-hsa.c and omp-grid.o. 16087 (GTFILES): Removed hsa-common.c and omp-expand.c. 16088 * builtins.def: Remove processing of hsa-builtins.def. 16089 (DEF_HSA_BUILTIN): Remove. 16090 * common.opt (flag_disable_hsa): Remove. 16091 (-Whsa): Ignore. 16092 * config.in (ENABLE_HSA): Removed. 16093 * configure.ac: Removed handling configuration for hsa offloading. 16094 (ENABLE_HSA): Removed. 16095 * configure: Regenerated. 16096 * doc/install.texi (--enable-offload-targets): Remove hsa from the 16097 example. 16098 (--with-hsa-runtime): Reword to reference any HSA run-time, not 16099 specifically HSA offloading. 16100 * doc/invoke.texi (Option Summary): Remove -Whsa. 16101 (Warning Options): Likewise. 16102 (Optimize Options): Remove hsa-gen-debug-stores. 16103 * doc/passes.texi (Regular IPA passes): Remove section on IPA HSA 16104 pass. 16105 * gimple-low.c (lower_stmt): Remove GIMPLE_OMP_GRID_BODY case. 16106 * gimple-pretty-print.c (dump_gimple_omp_for): Likewise. 16107 (dump_gimple_omp_block): Likewise. 16108 (pp_gimple_stmt_1): Likewise. 16109 * gimple-walk.c (walk_gimple_stmt): Likewise. 16110 * gimple.c (gimple_build_omp_grid_body): Removed function. 16111 (gimple_copy): Remove GIMPLE_OMP_GRID_BODY case. 16112 * gimple.def (GIMPLE_OMP_GRID_BODY): Removed. 16113 * gimple.h (gf_mask): Removed GF_OMP_PARALLEL_GRID_PHONY, 16114 OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY, 16115 GF_OMP_FOR_GRID_INTRA_GROUP, GF_OMP_FOR_GRID_GROUP_ITER and 16116 GF_OMP_TEAMS_GRID_PHONY. Renumbered GF_OMP_FOR_KIND_SIMD and 16117 GF_OMP_TEAMS_HOST. 16118 (gimple_build_omp_grid_body): Removed declaration. 16119 (gimple_has_substatements): Remove GIMPLE_OMP_GRID_BODY case. 16120 (gimple_omp_for_grid_phony): Removed. 16121 (gimple_omp_for_set_grid_phony): Likewise. 16122 (gimple_omp_for_grid_intra_group): Likewise. 16123 (gimple_omp_for_grid_intra_group): Likewise. 16124 (gimple_omp_for_grid_group_iter): Likewise. 16125 (gimple_omp_for_set_grid_group_iter): Likewise. 16126 (gimple_omp_parallel_grid_phony): Likewise. 16127 (gimple_omp_parallel_set_grid_phony): Likewise. 16128 (gimple_omp_teams_grid_phony): Likewise. 16129 (gimple_omp_teams_set_grid_phony): Likewise. 16130 (CASE_GIMPLE_OMP): Remove GIMPLE_OMP_GRID_BODY case. 16131 * lto-section-in.c (lto_section_name): Removed hsa. 16132 * lto-streamer.h (lto_section_type): Removed LTO_section_ipa_hsa. 16133 * lto-wrapper.c (compile_images_for_offload_targets): Remove special 16134 handling of hsa. 16135 * omp-expand.c: Do not include hsa-common.h and gt-omp-expand.h. 16136 (parallel_needs_hsa_kernel_p): Removed. 16137 (grid_launch_attributes_trees): Likewise. 16138 (grid_launch_attributes_trees): Likewise. 16139 (grid_create_kernel_launch_attr_types): Likewise. 16140 (grid_insert_store_range_dim): Likewise. 16141 (grid_get_kernel_launch_attributes): Likewise. 16142 (get_target_arguments): Remove code passing HSA grid sizes. 16143 (grid_expand_omp_for_loop): Remove. 16144 (grid_arg_decl_map): Likewise. 16145 (grid_remap_kernel_arg_accesses): Likewise. 16146 (grid_expand_target_grid_body): Likewise. 16147 (expand_omp): Remove call to grid_expand_target_grid_body. 16148 (omp_make_gimple_edges): Remove GIMPLE_OMP_GRID_BODY case. 16149 * omp-general.c: Do not include hsa-common.h. 16150 (omp_maybe_offloaded): Do not check for HSA offloading. 16151 (omp_context_selector_matches): Likewise. 16152 * omp-low.c: Do not include hsa-common.h and omp-grid.h. 16153 (build_outer_var_ref): Remove handling of GIMPLE_OMP_GRID_BODY. 16154 (scan_sharing_clauses): Remove handling of OMP_CLAUSE__GRIDDIM_. 16155 (scan_omp_parallel): Remove handling of the phoney variant. 16156 (check_omp_nesting_restrictions): Remove handling of 16157 GIMPLE_OMP_GRID_BODY and GF_OMP_FOR_KIND_GRID_LOOP. 16158 (scan_omp_1_stmt): Remove handling of GIMPLE_OMP_GRID_BODY. 16159 (lower_omp_for_lastprivate): Remove handling of gridified loops. 16160 (lower_omp_for): Remove phony loop handling. 16161 (lower_omp_taskreg): Remove phony construct handling. 16162 (lower_omp_teams): Likewise. 16163 (lower_omp_grid_body): Removed. 16164 (lower_omp_1): Remove GIMPLE_OMP_GRID_BODY case. 16165 (execute_lower_omp): Do not call omp_grid_gridify_all_targets. 16166 * opts.c (common_handle_option): Do not handle hsa when processing 16167 OPT_foffload_. 16168 * params.opt (hsa-gen-debug-stores): Remove. 16169 * passes.def: Remove pass_ipa_hsa and pass_gen_hsail. 16170 * timevar.def: Remove TV_IPA_HSA. 16171 * toplev.c: Do not include hsa-common.h. 16172 (compile_file): Do not call hsa_output_brig. 16173 * tree-core.h (enum omp_clause_code): Remove OMP_CLAUSE__GRIDDIM_. 16174 (tree_omp_clause): Remove union field dimension. 16175 * tree-nested.c (convert_nonlocal_omp_clauses): Remove the 16176 OMP_CLAUSE__GRIDDIM_ case. 16177 (convert_local_omp_clauses): Likewise. 16178 * tree-pass.h (make_pass_gen_hsail): Remove declaration. 16179 (make_pass_ipa_hsa): Likewise. 16180 * tree-pretty-print.c (dump_omp_clause): Remove GIMPLE_OMP_GRID_BODY 16181 case. 16182 * tree.c (omp_clause_num_ops): Remove the element corresponding to 16183 OMP_CLAUSE__GRIDDIM_. 16184 (omp_clause_code_name): Likewise. 16185 (walk_tree_1): Remove GIMPLE_OMP_GRID_BODY case. 16186 * tree.h (OMP_CLAUSE__GRIDDIM__DIMENSION): Remove. 16187 (OMP_CLAUSE__GRIDDIM__SIZE): Likewise. 16188 (OMP_CLAUSE__GRIDDIM__GROUP): Likewise. 16189 161902020-08-03 Bu Le <bule1@huawei.com> 16191 16192 * config/aarch64/aarch64-sve.md (sub<mode>3): Add support for 16193 unpacked vectors. 16194 161952020-08-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> 16196 16197 * config/msp430/msp430.h (ASM_SPEC): Don't pass on "-md" option. 16198 161992020-08-03 Yunde Zhong <zhongyunde@huawei.com> 16200 16201 PR rtl-optimization/95696 16202 * regrename.c (regrename_analyze): New param include_all_block_p 16203 with default value TRUE. If set to false, avoid disrupting SMS 16204 schedule. 16205 * regrename.h (regrename_analyze): Adjust prototype. 16206 162072020-08-03 Wei Wentao <weiwt.fnst@cn.fujitsu.com> 16208 16209 * doc/tm.texi.in (VECTOR_STORE_FLAG_VALUE): Fix a typo. 16210 * doc/tm.texi: Regenerate. 16211 162122020-08-03 Richard Sandiford <richard.sandiford@arm.com> 16213 16214 * doc/invoke.texi: Add missing comma after octeontx2f95mm entry. 16215 162162020-08-03 Qian jianhua <qianjh@cn.fujitsu.com> 16217 16218 * config/aarch64/aarch64-cores.def (a64fx): New core. 16219 * config/aarch64/aarch64-tune.md: Regenerated. 16220 * config/aarch64/aarch64.c (a64fx_prefetch_tune, a64fx_tunings): New. 16221 * doc/invoke.texi: Add a64fx to the list. 16222 162232020-08-03 Roger Sayle <roger@nextmovesoftware.com> 16224 16225 PR rtl-optimization/61494 16226 * simplify-rtx.c (simplify_binary_operation_1) [MINUS]: Don't 16227 simplify x - 0.0 with -fsignaling-nans. 16228 162292020-08-03 Roger Sayle <roger@nextmovesoftware.com> 16230 16231 * genmatch.c (decision_tree::gen): Emit stub functions for 16232 tree code operand counts that have no simplifications. 16233 (main): Correct comment typo. 16234 162352020-08-03 Jonathan Wakely <jwakely@redhat.com> 16236 16237 * gimple-ssa-sprintf.c: Fix typos in comments. 16238 162392020-08-03 Tamar Christina <tamar.christina@arm.com> 16240 16241 * config/aarch64/driver-aarch64.c (readline): Check return value fgets. 16242 162432020-08-03 Richard Biener <rguenther@suse.de> 16244 16245 * doc/match-and-simplify.texi: Amend accordingly. 16246 162472020-08-03 Richard Biener <rguenther@suse.de> 16248 16249 * genmatch.c (parser::gimple): New. 16250 (parser::parser): Initialize gimple flag member. 16251 (parser::parse_expr): Error on ! operator modifier when 16252 not targeting GIMPLE. 16253 (main): Pass down gimple flag to parser ctor. 16254 162552020-08-03 Aldy Hernandez <aldyh@redhat.com> 16256 16257 * Makefile.in (GTFILES): Move value-range.h up. 16258 * gengtype-lex.l: Set yylval to handle GTY markers on templates. 16259 * ipa-cp.c (initialize_node_lattices): Call value_range 16260 constructor. 16261 (ipcp_propagate_stage): Use in-place new so value_range construct 16262 is called. 16263 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use std 16264 vec instead of GCC's vec<>. 16265 (evaluate_properties_for_edge): Adjust for std vec. 16266 (ipa_fn_summary_t::duplicate): Same. 16267 (estimate_ipcp_clone_size_and_time): Same. 16268 * ipa-prop.c (ipa_get_value_range): Use in-place new for 16269 value_range. 16270 * ipa-prop.h (struct GTY): Remove class keyword for m_vr. 16271 * range-op.cc (empty_range_check): Rename to... 16272 (empty_range_varying): ...this and adjust for varying. 16273 (undefined_shift_range_check): Adjust for irange. 16274 (range_operator::wi_fold): Same. 16275 (range_operator::fold_range): Adjust for irange. Special case 16276 single pairs for performance. 16277 (range_operator::op1_range): Adjust for irange. 16278 (range_operator::op2_range): Same. 16279 (value_range_from_overflowed_bounds): Same. 16280 (value_range_with_overflow): Same. 16281 (create_possibly_reversed_range): Same. 16282 (range_true): Same. 16283 (range_false): Same. 16284 (range_true_and_false): Same. 16285 (get_bool_state): Adjust for irange and tweak for performance. 16286 (operator_equal::fold_range): Adjust for irange. 16287 (operator_equal::op1_range): Same. 16288 (operator_equal::op2_range): Same. 16289 (operator_not_equal::fold_range): Same. 16290 (operator_not_equal::op1_range): Same. 16291 (operator_not_equal::op2_range): Same. 16292 (build_lt): Same. 16293 (build_le): Same. 16294 (build_gt): Same. 16295 (build_ge): Same. 16296 (operator_lt::fold_range): Same. 16297 (operator_lt::op1_range): Same. 16298 (operator_lt::op2_range): Same. 16299 (operator_le::fold_range): Same. 16300 (operator_le::op1_range): Same. 16301 (operator_le::op2_range): Same. 16302 (operator_gt::fold_range): Same. 16303 (operator_gt::op1_range): Same. 16304 (operator_gt::op2_range): Same. 16305 (operator_ge::fold_range): Same. 16306 (operator_ge::op1_range): Same. 16307 (operator_ge::op2_range): Same. 16308 (operator_plus::wi_fold): Same. 16309 (operator_plus::op1_range): Same. 16310 (operator_plus::op2_range): Same. 16311 (operator_minus::wi_fold): Same. 16312 (operator_minus::op1_range): Same. 16313 (operator_minus::op2_range): Same. 16314 (operator_min::wi_fold): Same. 16315 (operator_max::wi_fold): Same. 16316 (cross_product_operator::wi_cross_product): Same. 16317 (operator_mult::op1_range): New. 16318 (operator_mult::op2_range): New. 16319 (operator_mult::wi_fold): Adjust for irange. 16320 (operator_div::wi_fold): Same. 16321 (operator_exact_divide::op1_range): Same. 16322 (operator_lshift::fold_range): Same. 16323 (operator_lshift::wi_fold): Same. 16324 (operator_lshift::op1_range): New. 16325 (operator_rshift::op1_range): New. 16326 (operator_rshift::fold_range): Adjust for irange. 16327 (operator_rshift::wi_fold): Same. 16328 (operator_cast::truncating_cast_p): Abstract out from 16329 operator_cast::fold_range. 16330 (operator_cast::fold_range): Adjust for irange and tweak for 16331 performance. 16332 (operator_cast::inside_domain_p): Abstract out from fold_range. 16333 (operator_cast::fold_pair): Same. 16334 (operator_cast::op1_range): Use abstracted methods above. Adjust 16335 for irange and tweak for performance. 16336 (operator_logical_and::fold_range): Adjust for irange. 16337 (operator_logical_and::op1_range): Same. 16338 (operator_logical_and::op2_range): Same. 16339 (unsigned_singleton_p): New. 16340 (operator_bitwise_and::remove_impossible_ranges): New. 16341 (operator_bitwise_and::fold_range): New. 16342 (wi_optimize_and_or): Adjust for irange. 16343 (operator_bitwise_and::wi_fold): Same. 16344 (set_nonzero_range_from_mask): New. 16345 (operator_bitwise_and::simple_op1_range_solver): New. 16346 (operator_bitwise_and::op1_range): Adjust for irange. 16347 (operator_bitwise_and::op2_range): Same. 16348 (operator_logical_or::fold_range): Same. 16349 (operator_logical_or::op1_range): Same. 16350 (operator_logical_or::op2_range): Same. 16351 (operator_bitwise_or::wi_fold): Same. 16352 (operator_bitwise_or::op1_range): Same. 16353 (operator_bitwise_or::op2_range): Same. 16354 (operator_bitwise_xor::wi_fold): Same. 16355 (operator_bitwise_xor::op1_range): New. 16356 (operator_bitwise_xor::op2_range): New. 16357 (operator_trunc_mod::wi_fold): Adjust for irange. 16358 (operator_logical_not::fold_range): Same. 16359 (operator_logical_not::op1_range): Same. 16360 (operator_bitwise_not::fold_range): Same. 16361 (operator_bitwise_not::op1_range): Same. 16362 (operator_cst::fold_range): Same. 16363 (operator_identity::fold_range): Same. 16364 (operator_identity::op1_range): Same. 16365 (class operator_unknown): New. 16366 (operator_unknown::fold_range): New. 16367 (class operator_abs): Adjust for irange. 16368 (operator_abs::wi_fold): Same. 16369 (operator_abs::op1_range): Same. 16370 (operator_absu::wi_fold): Same. 16371 (class operator_negate): Same. 16372 (operator_negate::fold_range): Same. 16373 (operator_negate::op1_range): Same. 16374 (operator_addr_expr::fold_range): Same. 16375 (operator_addr_expr::op1_range): Same. 16376 (pointer_plus_operator::wi_fold): Same. 16377 (pointer_min_max_operator::wi_fold): Same. 16378 (pointer_and_operator::wi_fold): Same. 16379 (pointer_or_operator::op1_range): New. 16380 (pointer_or_operator::op2_range): New. 16381 (pointer_or_operator::wi_fold): Adjust for irange. 16382 (integral_table::integral_table): Add entries for IMAGPART_EXPR 16383 and POINTER_DIFF_EXPR. 16384 (range_cast): Adjust for irange. 16385 (build_range3): New. 16386 (range3_tests): New. 16387 (widest_irange_tests): New. 16388 (multi_precision_range_tests): New. 16389 (operator_tests): New. 16390 (range_tests): New. 16391 * range-op.h (class range_operator): Adjust for irange. 16392 (range_cast): Same. 16393 * tree-vrp.c (range_fold_binary_symbolics_p): Adjust for irange and 16394 tweak for performance. 16395 (range_fold_binary_expr): Same. 16396 (masked_increment): Change to extern. 16397 * tree-vrp.h (masked_increment): New. 16398 * tree.c (cache_wide_int_in_type_cache): New function abstracted 16399 out from wide_int_to_tree_1. 16400 (wide_int_to_tree_1): Cache 0, 1, and MAX for pointers. 16401 * value-range-equiv.cc (value_range_equiv::deep_copy): Use kind 16402 method. 16403 (value_range_equiv::move): Same. 16404 (value_range_equiv::check): Adjust for irange. 16405 (value_range_equiv::intersect): Same. 16406 (value_range_equiv::union_): Same. 16407 (value_range_equiv::dump): Same. 16408 * value-range.cc (irange::operator=): Same. 16409 (irange::maybe_anti_range): New. 16410 (irange::copy_legacy_range): New. 16411 (irange::set_undefined): Adjust for irange. 16412 (irange::swap_out_of_order_endpoints): Abstract out from set(). 16413 (irange::set_varying): Adjust for irange. 16414 (irange::irange_set): New. 16415 (irange::irange_set_anti_range): New. 16416 (irange::set): Adjust for irange. 16417 (value_range::set_nonzero): Move to header file. 16418 (value_range::set_zero): Move to header file. 16419 (value_range::check): Rename to... 16420 (irange::verify_range): ...this. 16421 (value_range::num_pairs): Rename to... 16422 (irange::legacy_num_pairs): ...this, and adjust for irange. 16423 (value_range::lower_bound): Rename to... 16424 (irange::legacy_lower_bound): ...this, and adjust for irange. 16425 (value_range::upper_bound): Rename to... 16426 (irange::legacy_upper_bound): ...this, and adjust for irange. 16427 (value_range::equal_p): Rename to... 16428 (irange::legacy_equal_p): ...this. 16429 (value_range::operator==): Move to header file. 16430 (irange::equal_p): New. 16431 (irange::symbolic_p): Adjust for irange. 16432 (irange::constant_p): Same. 16433 (irange::singleton_p): Same. 16434 (irange::value_inside_range): Same. 16435 (irange::may_contain_p): Same. 16436 (irange::contains_p): Same. 16437 (irange::normalize_addresses): Same. 16438 (irange::normalize_symbolics): Same. 16439 (irange::legacy_intersect): Same. 16440 (irange::legacy_union): Same. 16441 (irange::union_): Same. 16442 (irange::intersect): Same. 16443 (irange::irange_union): New. 16444 (irange::irange_intersect): New. 16445 (subtract_one): New. 16446 (irange::invert): Adjust for irange. 16447 (dump_bound_with_infinite_markers): New. 16448 (irange::dump): Adjust for irange. 16449 (debug): Add irange versions. 16450 (range_has_numeric_bounds_p): Adjust for irange. 16451 (vrp_val_max): Move to header file. 16452 (vrp_val_min): Move to header file. 16453 (DEFINE_INT_RANGE_GC_STUBS): New. 16454 (DEFINE_INT_RANGE_INSTANCE): New. 16455 * value-range.h (class irange): New. 16456 (class int_range): New. 16457 (class value_range): Rename to a instantiation of int_range. 16458 (irange::legacy_mode_p): New. 16459 (value_range::value_range): Remove. 16460 (irange::kind): New. 16461 (irange::num_pairs): Adjust for irange. 16462 (irange::type): Adjust for irange. 16463 (irange::tree_lower_bound): New. 16464 (irange::tree_upper_bound): New. 16465 (irange::type): Adjust for irange. 16466 (irange::min): Same. 16467 (irange::max): Same. 16468 (irange::varying_p): Same. 16469 (irange::undefined_p): Same. 16470 (irange::zero_p): Same. 16471 (irange::nonzero_p): Same. 16472 (irange::supports_type_p): Same. 16473 (range_includes_zero_p): Same. 16474 (gt_ggc_mx): New. 16475 (gt_pch_nx): New. 16476 (irange::irange): New. 16477 (int_range::int_range): New. 16478 (int_range::operator=): New. 16479 (irange::set): Moved from value-range.cc and adjusted for irange. 16480 (irange::set_undefined): Same. 16481 (irange::set_varying): Same. 16482 (irange::operator==): Same. 16483 (irange::lower_bound): Same. 16484 (irange::upper_bound): Same. 16485 (irange::union_): Same. 16486 (irange::intersect): Same. 16487 (irange::set_nonzero): Same. 16488 (irange::set_zero): Same. 16489 (irange::normalize_min_max): New. 16490 (vrp_val_max): Move from value-range.cc. 16491 (vrp_val_min): Same. 16492 * vr-values.c (vr_values::get_lattice_entry): Call value_range 16493 constructor. 16494 164952020-08-02 Sergei Trofimovich <siarheit@google.com> 16496 16497 PR bootstrap/96404 16498 * var-tracking.c (vt_find_locations): Fully initialize 16499 all 'in_pending' bits. 16500 165012020-08-01 Jan Hubicka <jh@suse.cz> 16502 16503 * symtab.c (symtab_node::verify_base): Verify order. 16504 (symtab_node::verify_symtab_nodes): Verify order. 16505 165062020-08-01 Jan Hubicka <jh@suse.cz> 16507 16508 * predict.c (estimate_bb_frequencies): Cap recursive calls by 90%. 16509 165102020-08-01 Jojo R <jiejie_rong@c-sky.com> 16511 16512 * config/csky/csky_opts.h (float_abi_type): New. 16513 * config/csky/csky.h (TARGET_SOFT_FLOAT): New. 16514 (TARGET_HARD_FLOAT): New. 16515 (TARGET_HARD_FLOAT_ABI): New. 16516 (OPTION_DEFAULT_SPECS): Use mfloat-abi. 16517 * config/csky/csky.opt (mfloat-abi): New. 16518 * doc/invoke.texi (C-SKY Options): Document -mfloat-abi=. 16519 165202020-08-01 Cooper Qu <cooper.qu@linux.alibaba.com> 16521 16522 * config/csky/t-csky-linux: Delete big endian CPUs' multilib. 16523 165242020-07-31 Roger Sayle <roger@nextmovesoftware.com> 16525 Tom de Vries <tdevries@suse.de> 16526 16527 PR target/90928 16528 * config/nvptx/nvptx.c (nvptx_truly_noop_truncation): Implement. 16529 (TARGET_TRULY_NOOP_TRUNCATION): Define. 16530 165312020-07-31 Richard Biener <rguenther@suse.de> 16532 16533 PR debug/96383 16534 * langhooks-def.h (lhd_finalize_early_debug): Declare. 16535 (LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define. 16536 (LANG_HOOKS_INITIALIZER): Amend. 16537 * langhooks.c: Include cgraph.h and debug.h. 16538 (lhd_finalize_early_debug): Default implementation from 16539 former code in finalize_compilation_unit. 16540 * langhooks.h (lang_hooks::finalize_early_debug): Add. 16541 * cgraphunit.c (symbol_table::finalize_compilation_unit): 16542 Call the finalize_early_debug langhook. 16543 165442020-07-31 Richard Biener <rguenther@suse.de> 16545 16546 * genmatch.c (expr::force_leaf): Add and initialize. 16547 (expr::gen_transform): Honor force_leaf by passing 16548 NULL as sequence argument to maybe_push_res_to_seq. 16549 (parser::parse_expr): Allow ! marker on result expression 16550 operations. 16551 * doc/match-and-simplify.texi: Amend. 16552 165532020-07-31 Kewen Lin <linkw@linux.ibm.com> 16554 16555 * tree-vect-loop.c (vect_get_known_peeling_cost): Don't consider branch 16556 taken costs for prologue and epilogue if they don't exist. 16557 (vect_estimate_min_profitable_iters): Likewise. 16558 165592020-07-31 Martin Liska <mliska@suse.cz> 16560 16561 * cgraph.h: Remove leading empty lines. 16562 * cgraphunit.c (enum cgraph_order_sort_kind): Remove 16563 ORDER_UNDEFINED. 16564 (struct cgraph_order_sort): Add constructors. 16565 (cgraph_order_sort::process): New. 16566 (cgraph_order_cmp): New. 16567 (output_in_order): Simplify and push nodes to vector. 16568 165692020-07-31 Richard Biener <rguenther@suse.de> 16570 16571 PR middle-end/96369 16572 * fold-const.c (fold_range_test): Special-case constant 16573 LHS for short-circuiting operations. 16574 165752020-07-31 Martin Liska <mliska@suse.cz> 16576 16577 * gcov-io.h (GCOV_PREALLOCATED_KVP): New. 16578 165792020-07-31 Zhiheng Xie <xiezhiheng@huawei.com> 16580 16581 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin): 16582 Add new argument ATTRS. 16583 (aarch64_call_properties): New function. 16584 (aarch64_modifies_global_state_p): Likewise. 16585 (aarch64_reads_global_state_p): Likewise. 16586 (aarch64_could_trap_p): Likewise. 16587 (aarch64_add_attribute): Likewise. 16588 (aarch64_get_attributes): Likewise. 16589 (aarch64_init_simd_builtins): Add attributes for each built-in function. 16590 165912020-07-31 Richard Biener <rguenther@suse.de> 16592 16593 PR debug/78288 16594 * var-tracking.c (vt_find_locations): Use 16595 rev_post_order_and_mark_dfs_back_seme and separately iterate 16596 over toplevel SCCs. 16597 165982020-07-31 Richard Biener <rguenther@suse.de> 16599 16600 * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust 16601 prototype. 16602 * cfganal.c (rpoamdbs_bb_data): New struct with pre BB data. 16603 (tag_header): New helper. 16604 (cmp_edge_dest_pre): Likewise. 16605 (rev_post_order_and_mark_dfs_back_seme): Compute SCCs, 16606 find SCC exits and perform a DFS walk with extra edges to 16607 compute a RPO with adjacent SCC members when requesting an 16608 iteration optimized order and populate the toplevel SCC array. 16609 * tree-ssa-sccvn.c (do_rpo_vn): Remove ad-hoc computation 16610 of max_rpo and fill it in from SCC extent info instead. 16611 166122020-07-30 Will Schmidt <will_schmidt@vnet.ibm.com> 16613 16614 * config/rs6000/altivec.h (vec_test_lsbb_all_ones): New define. 16615 (vec_test_lsbb_all_zeros): New define. 16616 * config/rs6000/rs6000-builtin.def (BU_P10_VSX_1): New built-in 16617 handling macro. 16618 (XVTLSBB_ZEROS, XVTLSBB_ONES): New builtin defines. 16619 (xvtlsbb_all_zeros, xvtlsbb_all_ones): New builtin overloads. 16620 * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XVTLSBB_ZEROS, 16621 P10_BUILTIN_VEC_XVTLSBB_ONES): New altivec_builtin_types entries. 16622 * config/rs6000/rs6000.md (UNSPEC_XVTLSBB): New unspec. 16623 * config/rs6000/vsx.md (*xvtlsbb_internal): New instruction define. 16624 (xvtlsbbo, xvtlsbbz): New instruction expands. 16625 166262020-07-30 Cooper Qu <cooper.qu@linux.alibaba.com> 16627 16628 * config/riscv/riscv-opts.h (stack_protector_guard): New enum. 16629 * config/riscv/riscv.c (riscv_option_override): Handle 16630 the new options. 16631 * config/riscv/riscv.md (stack_protect_set): New pattern to handle 16632 flexible stack protector guard settings. 16633 (stack_protect_set_<mode>): Ditto. 16634 (stack_protect_test): Ditto. 16635 (stack_protect_test_<mode>): Ditto. 16636 * config/riscv/riscv.opt (mstack-protector-guard=, 16637 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New 16638 options. 16639 * doc/invoke.texi (Option Summary) [RISC-V Options]: 16640 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and 16641 -mstack-protector-guard-offset=. 16642 (RISC-V Options): Ditto. 16643 166442020-07-30 H.J. Lu <hjl.tools@gmail.com> 16645 16646 PR bootstrap/96202 16647 * configure: Regenerated. 16648 166492020-07-30 Richard Biener <rguenther@suse.de> 16650 16651 PR tree-optimization/96370 16652 * tree-ssa-reassoc.c (rewrite_expr_tree): Add operation 16653 code parameter and use it instead of picking it up from 16654 the stmt that is being rewritten. 16655 (reassociate_bb): Pass down the operation code. 16656 166572020-07-30 Roger Sayle <roger@nextmovesoftware.com> 16658 Tom de Vries <tdevries@suse.de> 16659 16660 * config/nvptx/nvptx.md (nvptx_vector_index_operand): New predicate. 16661 (VECELEM): New mode attribute for a vector's uppercase element mode. 16662 (Vecelem): New mode attribute for a vector's lowercase element mode. 16663 (*vec_set<mode>_0, *vec_set<mode>_1, *vec_set<mode>_2) 16664 (*vec_set<mode>_3): New instructions. 16665 (vec_set<mode>): New expander to generate one of the above insns. 16666 (vec_extract<mode><Vecelem>): New instruction. 16667 166682020-07-30 Martin Liska <mliska@suse.cz> 16669 16670 PR target/95435 16671 * config/i386/x86-tune-costs.h: Use libcall for large sizes for 16672 -m32. Start using libcall from 128+ bytes. 16673 166742020-07-30 Martin Liska <mliska@suse.cz> 16675 16676 * config/i386/x86-tune-costs.h: Change code formatting. 16677 166782020-07-29 Roger Sayle <roger@nextmovesoftware.com> 16679 16680 * config/nvptx/nvptx.md (recip<mode>2): New instruction. 16681 166822020-07-29 Fangrui Song <maskray@google.com> 16683 16684 PR debug/95096 16685 * opts.c (common_handle_option): Don't make -gsplit-dwarf imply -g. 16686 * doc/invoke.texi (-gsplit-dwarf): Update documentation. 16687 166882020-07-29 Joe Ramsay <joe.ramsay@arm.com> 16689 16690 * config/arm/arm-protos.h (arm_coproc_mem_operand_no_writeback): 16691 Declare prototype. 16692 (arm_mve_mode_and_operands_type_check): Declare prototype. 16693 * config/arm/arm.c (arm_coproc_mem_operand): Refactor to use 16694 _arm_coproc_mem_operand. 16695 (arm_coproc_mem_operand_wb): New function to cover full, limited 16696 and no writeback. 16697 (arm_coproc_mem_operand_no_writeback): New constraint for memory 16698 operand with no writeback. 16699 (arm_print_operand): Extend 'E' specifier for memory operand 16700 that does not support writeback. 16701 (arm_mve_mode_and_operands_type_check): New constraint check for 16702 MVE memory operands. 16703 * config/arm/constraints.md: Add Uj constraint for VFP vldr.16 16704 and vstr.16. 16705 * config/arm/vfp.md (*mov_load_vfp_hf16): New pattern for 16706 vldr.16. 16707 (*mov_store_vfp_hf16): New pattern for vstr.16. 16708 (*mov<mode>_vfp_<mode>16): Remove MVE moves. 16709 167102020-07-29 Richard Biener <rguenther@suse.de> 16711 16712 PR tree-optimization/96349 16713 * tree-ssa-loop-split.c (stmt_semi_invariant_p_1): When the 16714 condition runs into a loop PHI with an abnormal entry value give up. 16715 167162020-07-29 Richard Biener <rguenther@suse.de> 16717 16718 * tree-vectorizer.c (vectorize_loops): Reset the SCEV 16719 cache if we removed any SIMD UID SSA defs. 16720 * gimple-loop-interchange.cc (pass_linterchange::execute): 16721 Reset the scev cache if we interchanged a loop. 16722 167232020-07-29 Richard Biener <rguenther@suse.de> 16724 16725 PR tree-optimization/95679 16726 * tree-ssa-propagate.h 16727 (substitute_and_fold_engine::propagate_into_phi_args): Return 16728 whether anything changed. 16729 * tree-ssa-propagate.c 16730 (substitute_and_fold_engine::propagate_into_phi_args): Likewise. 16731 (substitute_and_fold_dom_walker::before_dom_children): Update 16732 something_changed. 16733 167342020-07-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 16735 16736 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 16737 Ensure that loop variable npeel_tmp advances in each iteration. 16738 167392020-07-29 Hans-Peter Nilsson <hp@bitrange.com> 16740 16741 * config/mmix/mmix.h (NO_FUNCTION_CSE): Define to 1. 16742 167432020-07-29 Hans-Peter Nilsson <hp@bitrange.com> 16744 16745 * config/mmix/mmix.h (ASM_OUTPUT_EXTERNAL): Define to 16746 default_elf_asm_output_external. 16747 167482020-07-28 Sergei Trofimovich <siarheit@google.com> 16749 16750 PR ipa/96291 16751 * ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider 16752 unoptimized callers as undead. 16753 167542020-07-28 Roger Sayle <roger@nextmovesoftware.com> 16755 Richard Biener <rguenther@suse.de> 16756 16757 * match.pd (popcount(x)&1 -> parity(x)): New simplification. 16758 (parity(~x) -> parity(x)): New simplification. 16759 (parity(x)^parity(y) -> parity(x^y)): New simplification. 16760 (parity(x&1) -> x&1): New simplification. 16761 (popcount(x) -> x>>C): New simplification. 16762 167632020-07-28 Roger Sayle <roger@nextmovesoftware.com> 16764 Tom de Vries <tdevries@suse.de> 16765 16766 * config/nvptx/nvptx.md (extendqihi2): New instruction. 16767 (ashl<mode>3, ashr<mode>3, lshr<mode>3): Support HImode. 16768 167692020-07-28 Jakub Jelinek <jakub@redhat.com> 16770 16771 PR middle-end/96335 16772 * calls.c (maybe_warn_rdwr_sizes): Add FNDECL and FNTYPE arguments, 16773 instead of trying to rediscover them in the body. 16774 (initialize_argument_information): Adjust caller. 16775 167762020-07-28 Kewen Lin <linkw@linux.ibm.com> 16777 16778 * tree-vect-loop.c (vect_get_known_peeling_cost): Factor out some code 16779 to determine peel_iters_epilogue to... 16780 (vect_get_peel_iters_epilogue): ...this new function. 16781 (vect_estimate_min_profitable_iters): Refactor cost calculation on 16782 peel_iters_prologue and peel_iters_epilogue. 16783 167842020-07-27 Martin Sebor <msebor@redhat.com> 16785 16786 PR tree-optimization/84079 16787 * gimple-array-bounds.cc (array_bounds_checker::check_addr_expr): 16788 Only allow just-past-the-end references for the most significant 16789 array bound. 16790 167912020-07-27 Hu Jiangping <hujiangping@cn.fujitsu.com> 16792 16793 PR driver/96247 16794 * opts.c (check_alignment_argument): Set the -falign-Name 16795 on/off flag on and set the -falign-Name string value null, 16796 when the command-line specified argument is zero. 16797 167982020-07-27 Martin Liska <mliska@suse.cz> 16799 16800 PR tree-optimization/96058 16801 * expr.c (string_constant): Build string_constant only 16802 for a type that has same precision as char_type_node 16803 and is an integral type. 16804 168052020-07-27 Richard Biener <rguenther@suse.de> 16806 16807 * var-tracking.c (variable_tracking_main_1): Remove call 16808 to mark_dfs_back_edges. 16809 168102020-07-27 Martin Liska <mliska@suse.cz> 16811 16812 PR tree-optimization/96128 16813 * tree-vect-generic.c (expand_vector_comparison): Do not expand 16814 vector comparison with VEC_COND_EXPR. 16815 168162020-07-27 H.J. Lu <hjl.tools@gmail.com> 16817 16818 PR bootstrap/96203 16819 * common.opt: Add -fcf-protection=check. 16820 * flag-types.h (cf_protection_level): Add CF_CHECK. 16821 * lto-wrapper.c (merge_and_complain): Issue an error for 16822 mismatching -fcf-protection values with -fcf-protection=check. 16823 Otherwise, merge -fcf-protection values. 16824 * doc/invoke.texi: Document -fcf-protection=check. 16825 168262020-07-27 Martin Liska <mliska@suse.cz> 16827 16828 PR lto/45375 16829 * symbol-summary.h: Call vec_safe_reserve before grow is called 16830 in order to grow to a reasonable size. 16831 * vec.h (vec_safe_reserve): Add missing function for vl_ptr 16832 type. 16833 168342020-07-26 Hans-Peter Nilsson <hp@bitrange.com> 16835 16836 * configure.ac (out-of-tree linker .hidden support): Don't turn off 16837 for mmix-knuth-mmixware. 16838 * configure: Regenerate. 16839 168402020-07-26 Aaron Sawdey <acsawdey@linux.ibm.com> 16841 16842 * config/rs6000/rs6000.c (rs6000_option_override_internal): 16843 Set the default value for -mblock-ops-unaligned-vsx. 16844 * config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx. 16845 * doc/invoke.texi: Document -mblock-ops-unaligned-vsx. 16846 168472020-07-25 Hans-Peter Nilsson <hp@bitrange.com> 16848 16849 * config/mmix/mmix.c (TARGET_ASM_OUTPUT_IDENT): Override the default 16850 with default_asm_output_ident_directive. 16851 168522020-07-25 Andrew Stubbs <ams@codesourcery.com> 16853 16854 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): New function. 16855 (TARGET_SCALAR_MODE_SUPPORTED_P): New define. 16856 168572020-07-24 David Edelsohn <dje.gcc@gmail.com> 16858 Clement Chigot <clement.chigot@atos.net> 16859 16860 * config.gcc (powerpc-ibm-aix7.1): Use t-aix64 and biarch64 for 16861 cpu_is_64bit. 16862 * config/rs6000/aix71.h (ASM_SPEC): Remove aix64 option. 16863 (ASM_SPEC32): New. 16864 (ASM_SPEC64): New. 16865 (ASM_CPU_SPEC): Remove vsx and altivec options. 16866 (CPP_SPEC_COMMON): Rename from CPP_SPEC. 16867 (CPP_SPEC32): New. 16868 (CPP_SPEC64): New. 16869 (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON.. 16870 (TARGET_DEFAULT): Use 64 bit mask if BIARCH. 16871 (LIB_SPEC_COMMON): Rename from LIB_SPEC. 16872 (LIB_SPEC32): New. 16873 (LIB_SPEC64): New. 16874 (LINK_SPEC_COMMON): Rename from LINK_SPEC. 16875 (LINK_SPEC32): New. 16876 (LINK_SPEC64): New. 16877 (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase. 16878 (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P. 16879 (CPP_SPEC): Same. 16880 (CPLUSPLUS_CPP_SPEC): Same. 16881 (LIB_SPEC): Same. 16882 (LINK_SPEC): Same. 16883 (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs. 16884 * config/rs6000/aix72.h (TARGET_DEFAULT): Use 64 bit mask if BIARCH. 16885 * config/rs6000/defaultaix64.h: Delete. 16886 168872020-07-24 Segher Boessenkool <segher@kernel.crashing.org> 16888 16889 * config/rs6000/rs6000.opt: Delete -mpower10. 16890 168912020-07-24 Alexandre Oliva <oliva@adacore.com> 16892 16893 * config/i386/intelmic-mkoffload.c 16894 (generate_target_descr_file): Use dumppfx for save_temps 16895 files. Pass -dumpbase et al down to the compiler. 16896 (generate_target_offloadend_file): Likewise. 16897 (generate_host_descr_file): Likewise. 16898 (prepare_target_image): Likewise. Move out_obj_filename 16899 setting... 16900 (main): ... here. Detect -dumpbase, set dumppfx too. 16901 169022020-07-24 Alexandre Oliva <oliva@adacore.com> 16903 16904 PR driver/96230 16905 * gcc.c (process_command): Adjust and document conditions to 16906 reset dumpbase_ext. 16907 169082020-07-24 Matthias Klose <doko@ubuntu.com> 16909 16910 * config/aarch64/aarch64.c (+aarch64_offload_options, 16911 TARGET_OFFLOAD_OPTIONS): New. 16912 169132020-07-24 Uroš Bizjak <ubizjak@gmail.com> 16914 16915 PR target/95750 16916 * config/i386/sync.md (mmem_thread_fence): Emit mfence_sse2 for -Os. 16917 169182020-07-23 Roger Sayle <roger@nextmovesoftware.com> 16919 16920 PR rtl-optimization/96298 16921 * simplify-rtx.c (simplify_binary_operation_1) [XOR]: Xor doesn't 16922 distribute over xor, so (a^b)^(c^b) is not the same as (a^c)^b. 16923 169242020-07-23 Dong JianQiang <dongjianqiang2@huawei.com> 16925 16926 PR gcov-profile/96267 16927 * gcov-io.c (gcov_open): enable if IN_GCOV_TOOL. 16928 169292020-07-23 Kewen Lin <linkw@linux.ibm.com> 16930 16931 * config/rs6000/rs6000.c (adjust_vectorization_cost): Renamed to ... 16932 (rs6000_adjust_vect_cost_per_stmt): ... here. 16933 (rs6000_add_stmt_cost): Rename adjust_vectorization_cost to 16934 rs6000_adjust_vect_cost_per_stmt. 16935 169362020-07-23 Kewen Lin <linkw@linux.ibm.com> 16937 16938 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle 16939 IFN_LEN_LOAD and IFN_LEN_STORE. 16940 (get_alias_ptr_type_for_ptr_address): Likewise. 16941 169422020-07-23 Kito Cheng <kito.cheng@sifive.com> 16943 16944 PR target/96260 16945 * asan.c (asan_shadow_offset_set_p): New. 16946 * asan.h (asan_shadow_offset_set_p): Ditto. 16947 * toplev.c (process_options): Allow -fsanitize=kernel-address 16948 even TARGET_ASAN_SHADOW_OFFSET not implemented, only check when 16949 asan stack protection is enabled. 16950 169512020-07-22 Peter Bergner <bergner@linux.ibm.com> 16952 16953 PR target/96236 16954 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle 16955 little-endian memory ordering. 16956 169572020-07-22 Nathan Sidwell <nathan@acm.org> 16958 16959 * dumpfile.c (parse_dump_option): Deal with filenames 16960 containing '-' 16961 169622020-07-22 Nathan Sidwell <nathan@acm.org> 16963 16964 * incpath.c (add_path): Avoid multiple strlen calls. 16965 169662020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> 16967 16968 * expmed.c (expand_sdiv_pow2): Check return value from emit_store_flag 16969 is not NULL_RTX before use. 16970 169712020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> 16972 16973 * expr.c (convert_modes): Allow a constant integer to be converted to 16974 any scalar int mode. 16975 169762020-07-22 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 16977 16978 * config/aarch64/aarch64-ldpstp.md: Add two peepholes for adjusted vector 16979 V2SI, V2SF, V2DI, V2DF load pair and store pair modes. 16980 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp): 16981 Change mode parameter to machine_mode. 16982 (aarch64_operands_adjust_ok_for_ldpstp): Change mode parameter to 16983 machine_mode. 16984 * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): 16985 Change mode parameter to machine_mode. 16986 (aarch64_gen_adjusted_ldpstp): Change mode parameter to machine_mode. 16987 * config/aarch64/iterators.md (VP_2E): New iterator for 2 element vectors. 16988 169892020-07-22 Wei Wentao <weiwt.fnst@cn.fujitsu.com> 16990 16991 * doc/languages.texi: Fix “then”/“than” typo. 16992 169932020-07-21 Sunil K Pandey <skpgkp2@gmail.com> 16994 16995 PR target/95237 16996 * config/i386/i386-protos.h (ix86_local_alignment): Add 16997 another function parameter may_lower alignment. Default is 16998 false. 16999 * config/i386/i386.c (ix86_lower_local_decl_alignment): New 17000 function. 17001 (ix86_local_alignment): Amend ix86_local_alignment to accept 17002 another parameter may_lower. If may_lower is true, new align 17003 may be lower than incoming alignment. If may_lower is false, 17004 new align will be greater or equal to incoming alignment. 17005 (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): Define. 17006 * doc/tm.texi: Regenerate. 17007 * doc/tm.texi.in (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): New 17008 hook. 17009 * target.def (lower_local_decl_alignment): New hook. 17010 170112020-07-21 Uroš Bizjak <ubizjak@gmail.com> 17012 17013 PR target/95750 17014 * config/i386/sync.md (mfence_sse2): Enable for 17015 TARGET_64BIT and TARGET_SSE2. 17016 (mfence_nosse): Always enable. 17017 170182020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> 17019 17020 * config/msp430/msp430-protos.h (msp430_do_not_relax_short_jumps): 17021 Remove. 17022 * config/msp430/msp430.c (msp430_do_not_relax_short_jumps): Likewise. 17023 * config/msp430/msp430.md (cbranchhi4_real): Remove special case for 17024 msp430_do_not_relax_short_jumps. 17025 170262020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> 17027 17028 * config/msp430/msp430.md: New "extendqipsi2" define_insn. 17029 170302020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> 17031 17032 * config/msp430/msp430.h (NO_FUNCTION_CSE): Set to true at -O2 and 17033 above. 17034 170352020-07-21 Xionghu Luo <luoxhu@linux.ibm.com> 17036 17037 PR rtl-optimization/89310 17038 * config/rs6000/rs6000.md (movsf_from_si2): New define_insn_and_split. 17039 170402020-07-20 Hans-Peter Nilsson <hp@bitrange.com> 17041 17042 * config/mmix/mmix.c (mmix_expand_prologue): Calculate the total 17043 allocated size and set current_function_static_stack_size, if 17044 flag_stack_usage_info. 17045 170462020-07-20 Sergei Trofimovich <siarheit@google.com> 17047 17048 PR target/96190 17049 * config/sparc/linux.h (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC 17050 to get crtendS.o for !no-pie mode. 17051 * config/sparc/linux64.h (ENDFILE_SPEC): Ditto. 17052 170532020-07-20 Yang Yang <yangyang305@huawei.com> 17054 17055 * tree-vect-stmts.c (vectorizable_simd_clone_call): Add 17056 VIEW_CONVERT_EXPRs if the arguments types and return type 17057 of simd clone function are distinct with the vectype of stmt. 17058 170592020-07-20 Uroš Bizjak <ubizjak@gmail.com> 17060 17061 PR target/95750 17062 * config/i386/i386.h (TARGET_AVOID_MFENCE): 17063 Rename from TARGET_USE_XCHG_FOR_ATOMIC_STORE. 17064 * config/i386/sync.md (mfence_sse2): Disable for TARGET_AVOID_MFENCE. 17065 (mfence_nosse): Enable also for TARGET_AVOID_MFENCE. Emit stack 17066 referred memory in word_mode. 17067 (mem_thread_fence): Do not generate mfence_sse2 pattern when 17068 TARGET_AVOID_MFENCE is true. 17069 (atomic_store<mode>): Update for rename. 17070 * config/i386/x86-tune.def (X86_TUNE_AVOID_MFENCE): 17071 Rename from X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE. 17072 170732020-07-20 Martin Sebor <msebor@redhat.com> 17074 17075 PR middle-end/95189 17076 PR middle-end/95886 17077 * builtins.c (inline_expand_builtin_string_cmp): Rename... 17078 (inline_expand_builtin_bytecmp): ...to this. 17079 (builtin_memcpy_read_str): Don't expect data to be nul-terminated. 17080 (expand_builtin_memory_copy_args): Handle object representations 17081 with embedded nul bytes. 17082 (expand_builtin_memcmp): Same. 17083 (expand_builtin_strcmp): Adjust call to naming change. 17084 (expand_builtin_strncmp): Same. 17085 * expr.c (string_constant): Create empty strings with nonzero size. 17086 * fold-const.c (c_getstr): Rename locals and update comments. 17087 * tree.c (build_string): Accept null pointer argument. 17088 (build_string_literal): Same. 17089 * tree.h (build_string): Provide a default. 17090 (build_string_literal): Same. 17091 170922020-07-20 Richard Biener <rguenther@suse.de> 17093 17094 * cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove 17095 write-only post array. 17096 170972020-07-20 Jakub Jelinek <jakub@redhat.com> 17098 17099 PR libstdc++/93121 17100 * gimple-fold.c (fold_const_aggregate_ref_1): For COMPONENT_REF 17101 of a bitfield not aligned on byte boundaries try to 17102 fold_ctor_reference DECL_BIT_FIELD_REPRESENTATIVE if any and 17103 adjust it depending on endianity. 17104 171052020-07-20 Jakub Jelinek <jakub@redhat.com> 17106 17107 PR libstdc++/93121 17108 * fold-const.c (native_encode_initializer): Handle bit-fields. 17109 171102020-07-20 Kewen Lin <linkw@linux.ibm.com> 17111 17112 * config/rs6000/rs6000.c (rs6000_option_override_internal): 17113 Set param_vect_partial_vector_usage to 0 explicitly. 17114 * doc/invoke.texi (vect-partial-vector-usage): Document new option. 17115 * optabs-query.c (get_len_load_store_mode): New function. 17116 * optabs-query.h (get_len_load_store_mode): New declare. 17117 * params.opt (vect-partial-vector-usage): New. 17118 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Add the 17119 handlings for vectorization using length-based partial vectors, call 17120 vect_gen_len for length generation, and rename some variables with 17121 items instead of scalars. 17122 (vect_set_loop_condition_partial_vectors): Add the handlings for 17123 vectorization using length-based partial vectors. 17124 (vect_do_peeling): Allow remaining eiters less than epilogue vf for 17125 LOOP_VINFO_USING_PARTIAL_VECTORS_P. 17126 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Init 17127 epil_using_partial_vectors_p. 17128 (_loop_vec_info::~_loop_vec_info): Call release_vec_loop_controls 17129 for lengths destruction. 17130 (vect_verify_loop_lens): New function. 17131 (vect_analyze_loop): Add handlings for epilogue of loop when it's 17132 marked to use vectorization using partial vectors. 17133 (vect_analyze_loop_2): Add the check to allow only one vectorization 17134 approach using partial vectorization at the same time. Check param 17135 vect-partial-vector-usage for partial vectors decision. Mark 17136 LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P if the epilogue is 17137 considerable to use partial vectors. Call release_vec_loop_controls 17138 for lengths destruction. 17139 (vect_estimate_min_profitable_iters): Adjust for loop vectorization 17140 using length-based partial vectors. 17141 (vect_record_loop_mask): Init factor to 1 for vectorization using 17142 mask-based partial vectors. 17143 (vect_record_loop_len): New function. 17144 (vect_get_loop_len): Likewise. 17145 * tree-vect-stmts.c (check_load_store_for_partial_vectors): Add 17146 checks for vectorization using length-based partial vectors. Factor 17147 some code to lambda function get_valid_nvectors. 17148 (vectorizable_store): Add handlings when using length-based partial 17149 vectors. 17150 (vectorizable_load): Likewise. 17151 (vect_gen_len): New function. 17152 * tree-vectorizer.h (struct rgroup_controls): Add field factor 17153 mainly for length-based partial vectors. 17154 (vec_loop_lens): New typedef. 17155 (_loop_vec_info): Add lens and epil_using_partial_vectors_p. 17156 (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P): New macro. 17157 (LOOP_VINFO_LENS): Likewise. 17158 (LOOP_VINFO_FULLY_WITH_LENGTH_P): Likewise. 17159 (vect_record_loop_len): New declare. 17160 (vect_get_loop_len): Likewise. 17161 (vect_gen_len): Likewise. 17162 171632020-07-20 Hans-Peter Nilsson <hp@bitrange.com> 17164 17165 * config/mmix/mmix.c (mmix_option_override): Reinstate default 17166 integer-emitting targetm.asm_out pseudos when dumping detailed 17167 assembly-code. 17168 (mmix_assemble_integer): Update comment. 17169 171702020-07-19 H.J. Lu <hjl.tools@gmail.com> 17171 17172 PR target/95973 17173 PR target/96238 17174 * config/i386/cpuid.h: Add include guard. 17175 (__cpuidex): New. 17176 171772020-07-18 H.J. Lu <hjl.tools@gmail.com> 17178 17179 PR target/95620 17180 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. 17181 171822020-07-18 Peter Bergner <bergner@linux.ibm.com> 17183 17184 PR target/92488 17185 * config/rs6000/dfp.md (trunctdsd2): New define_insn. 17186 * config/rs6000/rs6000.md (define_attr "isa"): Add p9. 17187 (define_attr "enabled"): Handle p9. 17188 171892020-07-17 Roger Sayle <roger@nextmovesoftware.com> 17190 17191 * function.c (assign_parm_setup_block): Use the macro 17192 TRULY_NOOP_TRUNCATION_MODES_P instead of calling 17193 targetm.truly_noop_truncation directly. 17194 171952020-07-17 H.J. Lu <hjl.tools@gmail.com> 17196 17197 PR target/96186 17198 PR target/88713 17199 * config/i386/sse.md (VF_AVX512VL_VF1_128_256): Renamed to ... 17200 (VF1_AVX512ER_128_256): This. Drop DF vector modes. 17201 (rsqrt<mode>2): Replace VF_AVX512VL_VF1_128_256 with 17202 VF1_AVX512ER_128_256. 17203 172042020-07-17 Tamar Christina <tamar.christina@arm.com> 17205 17206 * doc/sourcebuild.texi (dg-set-compiler-env-var, 17207 dg-set-target-env-var): Document. 17208 172092020-07-17 Tamar Christina <tamar.christina@arm.com> 17210 17211 * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO. 17212 172132020-07-17 Tamar Christina <tamar.christina@arm.com> 17214 17215 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): 17216 Add GCC_CPUINFO. 17217 172182020-07-17 Tamar Christina <tamar.christina@arm.com> 17219 17220 * config/aarch64/driver-aarch64.c (INCLUDE_SET): New. 17221 (parse_field): Use std::string. 17222 (split_words, readline, find_field): New. 17223 (host_detect_local_cpu): Fix truncation issues. 17224 172252020-07-17 Andrew Stubbs <ams@codesourcery.com> 17226 17227 * config/gcn/mkoffload.c (EM_AMDGPU): Undefine before defining. 17228 (ELFOSABI_AMDGPU_HSA): Likewise. 17229 (ELFABIVERSION_AMDGPU_HSA): Likewise. 17230 (EF_AMDGPU_MACH_AMDGCN_GFX803): Likewise. 17231 (EF_AMDGPU_MACH_AMDGCN_GFX900): Likewise. 17232 (EF_AMDGPU_MACH_AMDGCN_GFX906): Likewise. 17233 (reserved): Delete. 17234 172352020-07-17 Andrew Pinski <apinksi@marvell.com> 17236 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com> 17237 17238 PR target/93720 17239 * config/aarch64/aarch64.c (aarch64_evpc_ins): New function. 17240 (aarch64_expand_vec_perm_const_1): Call it. 17241 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_copy_lane): Make 17242 public, and add a "@" prefix. 17243 172442020-07-17 Andrew Pinski <apinksi@marvell.com> 17245 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com> 17246 17247 PR target/82199 17248 * config/aarch64/aarch64.c (aarch64_evpc_reencode): New function. 17249 (aarch64_expand_vec_perm_const_1): Call it. 17250 172512020-07-17 Zhiheng Xie <xiezhiheng@huawei.com> 17252 17253 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): 17254 Add new field flags. 17255 (VAR1): Add new field FLAG in macro. 17256 (VAR2): Likewise. 17257 (VAR3): Likewise. 17258 (VAR4): Likewise. 17259 (VAR5): Likewise. 17260 (VAR6): Likewise. 17261 (VAR7): Likewise. 17262 (VAR8): Likewise. 17263 (VAR9): Likewise. 17264 (VAR10): Likewise. 17265 (VAR11): Likewise. 17266 (VAR12): Likewise. 17267 (VAR13): Likewise. 17268 (VAR14): Likewise. 17269 (VAR15): Likewise. 17270 (VAR16): Likewise. 17271 (aarch64_general_fold_builtin): Likewise. 17272 (aarch64_general_gimple_fold_builtin): Likewise. 17273 * config/aarch64/aarch64-simd-builtins.def: Add default flag for 17274 each built-in function. 17275 * config/aarch64/geniterators.sh: Add new field in BUILTIN macro. 17276 172772020-07-17 Andreas Krebbel <krebbel@linux.ibm.com> 17278 17279 PR target/96127 17280 * config/s390/s390.c (s390_expand_insv): Invoke the movstrict 17281 expanders to generate the pattern. 17282 * config/s390/s390.md ("*movstricthi", "*movstrictqi"): Remove the 17283 '*' to have callable expanders. 17284 172852020-07-16 Hans-Peter Nilsson <hp@axis.com> 17286 Segher Boessenkool <segher@kernel.crashing.org> 17287 17288 PR target/93372 17289 * combine.c (is_just_move): Take an rtx_insn* as argument. Use 17290 single_set on it. 17291 172922020-07-16 Uroš Bizjak <ubizjak@gmail.com> 17293 17294 PR target/96189 17295 * config/i386/sync.md 17296 (peephole2 to remove unneded compare after CMPXCHG): 17297 New pattern, also handle XOR zeroing and load of -1 by OR. 17298 172992020-07-16 Eric Botcazou <ebotcazou@adacore.com> 17300 17301 * config/i386/i386.c (ix86_compute_frame_layout): Minor tweak. 17302 (ix86_adjust_stack_and_probe): Delete. 17303 (ix86_adjust_stack_and_probe_stack_clash): Rename to above and add 17304 PROTECTION_AREA parameter. If it is true, probe PROBE_INTERVAL plus 17305 a small dope beyond SIZE bytes. 17306 (ix86_emit_probe_stack_range): Use local variable. 17307 (ix86_expand_prologue): Adjust calls to ix86_adjust_stack_and_probe 17308 and tidy up the stack checking code. 17309 * explow.c (get_stack_check_protect): Fix head comment. 17310 (anti_adjust_stack_and_probe_stack_clash): Likewise. 17311 (allocate_dynamic_stack_space): Add comment. 17312 * tree-nested.c (lookup_field_for_decl): Set the DECL_IGNORED_P and 17313 TREE_NO_WARNING but not TREE_ADDRESSABLE flags on the field. 17314 173152020-07-16 Andrew Stubbs <ams@codesourcery.com> 17316 17317 * config/gcn/mkoffload.c: Include simple-object.h and elf.h. 17318 (EM_AMDGPU): New macro. 17319 (ELFOSABI_AMDGPU_HSA): New macro. 17320 (ELFABIVERSION_AMDGPU_HSA): New macro. 17321 (EF_AMDGPU_MACH_AMDGCN_GFX803): New macro. 17322 (EF_AMDGPU_MACH_AMDGCN_GFX900): New macro. 17323 (EF_AMDGPU_MACH_AMDGCN_GFX906): New macro. 17324 (R_AMDGPU_NONE): New macro. 17325 (R_AMDGPU_ABS32_LO): New macro. 17326 (R_AMDGPU_ABS32_HI): New macro. 17327 (R_AMDGPU_ABS64): New macro. 17328 (R_AMDGPU_REL32): New macro. 17329 (R_AMDGPU_REL64): New macro. 17330 (R_AMDGPU_ABS32): New macro. 17331 (R_AMDGPU_GOTPCREL): New macro. 17332 (R_AMDGPU_GOTPCREL32_LO): New macro. 17333 (R_AMDGPU_GOTPCREL32_HI): New macro. 17334 (R_AMDGPU_REL32_LO): New macro. 17335 (R_AMDGPU_REL32_HI): New macro. 17336 (reserved): New macro. 17337 (R_AMDGPU_RELATIVE64): New macro. 17338 (gcn_s1_name): Delete global variable. 17339 (gcn_s2_name): Delete global variable. 17340 (gcn_o_name): Delete global variable. 17341 (gcn_cfile_name): Delete global variable. 17342 (files_to_cleanup): New global variable. 17343 (offload_abi): New global variable. 17344 (tool_cleanup): Use files_to_cleanup, not explicit list. 17345 (copy_early_debug_info): New function. 17346 (main): New local variables gcn_s1_name, gcn_s2_name, gcn_o_name, 17347 gcn_cfile_name. 17348 Create files_to_cleanup obstack. 17349 Recognize -march options. 17350 Copy early debug info from input .o files. 17351 173522020-07-16 Andrea Corallo <andrea.corallo@arm.com> 17353 17354 * Makefile.in (TAGS): Remove 'params.def'. 17355 173562020-07-16 Roger Sayle <roger@nextmovesoftware.com> 17357 17358 * target.def (TARGET_TRULY_NOOP_TRUNCATION): Clarify that 17359 targets that return false, indicating SUBREGs shouldn't be 17360 used, also need to provide a trunc?i?i2 optab that performs this 17361 truncation. 17362 * doc/tm.texi: Regenerate. 17363 173642020-07-15 Uroš Bizjak <ubizjak@gmail.com> 17365 17366 PR target/96189 17367 * config/i386/sync.md 17368 (peephole2 to remove unneded compare after CMPXCHG): New pattern. 17369 173702020-07-15 Jakub Jelinek <jakub@redhat.com> 17371 17372 PR libgomp/96198 17373 * omp-general.h (struct omp_for_data): Rename min_inner_iterations 17374 member to first_inner_iterations, adjust comment. 17375 * omp-general.c (omp_extract_for_data): Adjust for the above change. 17376 Always use n1first and n2first to compute it, rather than depending 17377 on single_nonrect_cond_code. Similarly, always compute factor 17378 as (m2 - m1) * outer_step / inner_step rather than sometimes m1 - m2 17379 depending on single_nonrect_cond_code. 17380 * omp-expand.c (expand_omp_for_init_vars): Rename min_inner_iterations 17381 to first_inner_iterations and min_inner_iterationsd to 17382 first_inner_iterationsd. 17383 173842020-07-15 Jakub Jelinek <jakub@redhat.com> 17385 17386 PR target/96174 17387 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask, 17388 _mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask, 17389 _mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask, 17390 _mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask, 17391 _mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask, 17392 _mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask, 17393 _mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask, 17394 _mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask, 17395 _mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask, 17396 _mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask, 17397 _mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask, 17398 _mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask, 17399 _mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask, 17400 _mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask, 17401 _mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask, 17402 _mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask, 17403 _mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded 17404 section. 17405 174062020-07-15 Jakub Jelinek <jakub@redhat.com> 17407 17408 PR target/96176 17409 * builtins.c: Include gimple-ssa.h, tree-ssa-live.h and 17410 tree-outof-ssa.h. 17411 (expand_expr_force_mode): If exp is a SSA_NAME with different mode 17412 from MODE and get_gimple_for_ssa_name is a cast from MODE, use the 17413 cast's rhs. 17414 174152020-07-15 Jiufu Guo <guojiufu@cn.ibm.com> 17416 17417 * config/rs6000/rs6000.c (rs6000_loop_unroll_adjust): Refine hook. 17418 174192020-07-14 David Edelsohn <dje.gcc@gmail.com> 17420 17421 * config/rs6000/rs6000.md (rotldi3_insert_sf): Add TARGET_POWERPC64 17422 condition. 17423 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add 17424 TARGET_POWERPC64 requirement to TARGET_P8_VECTOR case. 17425 174262020-07-14 Lewis Hyatt <lhyatt@gmail.com> 17427 17428 PR preprocessor/49973 17429 PR other/86904 17430 * common.opt: Handle -ftabstop here instead of in c-family 17431 options. Add -fdiagnostics-column-unit= and 17432 -fdiagnostics-column-origin= options. 17433 * opts.c (common_handle_option): Handle the new options. 17434 * diagnostic-format-json.cc (json_from_expanded_location): Add 17435 diagnostic_context argument. Use it to convert column numbers as per 17436 the new options. 17437 (json_from_location_range): Likewise. 17438 (json_from_fixit_hint): Likewise. 17439 (json_end_diagnostic): Pass the new context argument to helper 17440 functions above. Add "column-origin" field to the output. 17441 (test_unknown_location): Add the new context argument to calls to 17442 helper functions. 17443 (test_bad_endpoints): Likewise. 17444 * diagnostic-show-locus.c 17445 (exploc_with_display_col::exploc_with_display_col): Support 17446 tabstop parameter. 17447 (layout_point::layout_point): Make use of class 17448 exploc_with_display_col. 17449 (layout_range::layout_range): Likewise. 17450 (struct line_bounds): Clarify that the units are now always 17451 display columns. Rename members accordingly. Add constructor. 17452 (layout::print_source_line): Add support for tab expansion. 17453 (make_range): Adapt to class layout_range changes. 17454 (layout::maybe_add_location_range): Likewise. 17455 (layout::layout): Adapt to class exploc_with_display_col changes. 17456 (layout::calculate_x_offset_display): Support tabstop parameter. 17457 (layout::print_annotation_line): Adapt to struct line_bounds changes. 17458 (layout::print_line): Likewise. 17459 (line_label::line_label): Add diagnostic_context argument. 17460 (get_affected_range): Likewise. 17461 (get_printed_columns): Likewise. 17462 (layout::print_any_labels): Adapt to struct line_label changes. 17463 (class correction): Add m_tabstop member. 17464 (correction::correction): Add tabstop argument. 17465 (correction::compute_display_cols): Use m_tabstop. 17466 (class line_corrections): Add m_context member. 17467 (line_corrections::line_corrections): Add diagnostic_context argument. 17468 (line_corrections::add_hint): Use m_context to handle tabstops. 17469 (layout::print_trailing_fixits): Adapt to class line_corrections 17470 changes. 17471 (test_layout_x_offset_display_utf8): Support tabstop parameter. 17472 (test_layout_x_offset_display_tab): New selftest. 17473 (test_one_liner_colorized_utf8): Likewise. 17474 (test_tab_expansion): Likewise. 17475 (test_diagnostic_show_locus_one_liner_utf8): Call the new tests. 17476 (diagnostic_show_locus_c_tests): Likewise. 17477 (test_overlapped_fixit_printing): Adapt to helper class and 17478 function changes. 17479 (test_overlapped_fixit_printing_utf8): Likewise. 17480 (test_overlapped_fixit_printing_2): Likewise. 17481 * diagnostic.h (enum diagnostics_column_unit): New enum. 17482 (struct diagnostic_context): Add members for the new options. 17483 (diagnostic_converted_column): Declare. 17484 (json_from_expanded_location): Add new context argument. 17485 * diagnostic.c (diagnostic_initialize): Initialize new members. 17486 (diagnostic_converted_column): New function. 17487 (maybe_line_and_column): Be willing to output a column of 0. 17488 (diagnostic_get_location_text): Convert column number as per the new 17489 options. 17490 (diagnostic_report_current_module): Likewise. 17491 (assert_location_text): Add origin and column_unit arguments for 17492 testing the new functionality. 17493 (test_diagnostic_get_location_text): Test the new functionality. 17494 * doc/invoke.texi: Document the new options and behavior. 17495 * input.h (location_compute_display_column): Add tabstop argument. 17496 * input.c (location_compute_display_column): Likewise. 17497 (test_cpp_utf8): Add selftests for tab expansion. 17498 * tree-diagnostic-path.cc (default_tree_make_json_for_path): Pass the 17499 new context argument to json_from_expanded_location(). 17500 175012020-07-14 Jakub Jelinek <jakub@redhat.com> 17502 17503 PR middle-end/96194 17504 * expr.c (expand_constructor): Don't create temporary for store to 17505 volatile MEM if exp has an addressable type. 17506 175072020-07-14 Nathan Sidwell <nathan@acm.org> 17508 17509 * hash-map.h (hash_map::get): Note it is a pointer to value. 17510 * incpath.h (incpath_kind): Align comments. 17511 175122020-07-14 Nathan Sidwell <nathan@acm.org> 17513 17514 * tree-core.h (tree_decl_with_vis, tree_function_decl): 17515 Note additional padding on 64-bits 17516 * tree.c (cache_integer_cst): Note why no caching of enum literals. 17517 (get_tree_code_name): Robustify error case. 17518 175192020-07-14 Nathan Sidwell <nathan@acm.org> 17520 17521 * doc/gty.texi: Fic gt_cleare_cache name. 17522 * doc/invoke.texi: Remove duplicate opindex Wabi-tag. 17523 175242020-07-14 Jakub Jelinek <jakub@redhat.com> 17525 17526 * omp-general.h (struct omp_for_data): Add adjn1 member. 17527 * omp-general.c (omp_extract_for_data): For non-rect loop, punt on 17528 count computing if n1, n2 or step are not INTEGER_CST earlier. 17529 Narrow the outer iterator range if needed so that non-rect loop 17530 has at least one iteration for each outer range iteration. Compute 17531 adjn1. 17532 * omp-expand.c (expand_omp_for_init_vars): Use adjn1 if non-NULL 17533 instead of the outer loop's n1. 17534 175352020-07-14 Matthias Klose <doko@ubuntu.com> 17536 17537 PR lto/95604 17538 * lto-wrapper.c (merge_and_complain): Add decoded options as parameter, 17539 error on different values for -fcf-protection. 17540 (append_compiler_options): Pass -fcf-protection option. 17541 (find_and_merge_options): Add decoded options as parameter, 17542 pass decoded_options to merge_and_complain. 17543 (run_gcc): Pass decoded options to find_and_merge_options. 17544 * lto-opts.c (lto_write_options): Pass -fcf-protection option. 17545 175462020-07-13 Alan Modra <amodra@gmail.com> 17547 17548 * config/rs6000/rs6000.md (sibcall_local): Merge sibcall_local32 17549 and sibcall_local64. 17550 (sibcall_value_local): Similarly. 17551 175522020-07-13 Nathan Sidwell <nathan@acm.org> 17553 17554 * Makefile.in (distclean): Remove long gone cxxmain.c 17555 175562020-07-13 H.J. Lu <hjl.tools@gmail.com> 17557 17558 PR target/95443 17559 * config/i386/i386.md (cmpstrnsi): Pass a copy of the string 17560 length to cmpstrnqi patterns. 17561 175622020-07-13 Jakub Jelinek <jakub@redhat.com> 17563 17564 PR ipa/96130 17565 * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux 17566 as false predicate. 17567 175682020-07-13 Richard Biener <rguenther@suse.de> 17569 17570 PR tree-optimization/96163 17571 * tree-vect-slp.c (vect_schedule_slp_instance): Put new stmts 17572 at least after region begin. 17573 175742020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> 17575 17576 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add 17577 __ARM_FEATURE_PAC_DEFAULT support. 17578 175792020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> 17580 17581 PR target/94891 17582 * doc/extend.texi: Update the text for __builtin_return_address. 17583 175842020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> 17585 17586 PR target/94891 17587 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): 17588 Disable return address signing if __builtin_eh_return is used. 17589 175902020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> 17591 17592 PR target/94891 17593 PR target/94791 17594 * config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare. 17595 * config/aarch64/aarch64.c (aarch64_return_addr_rtx): New. 17596 (aarch64_return_addr): Use aarch64_return_addr_rtx. 17597 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise. 17598 175992020-07-13 Richard Sandiford <richard.sandiford@arm.com> 17600 17601 PR middle-end/95114 17602 * tree.h (virtual_method_call_p): Add a default-false parameter 17603 that indicates whether the function is being called from dump 17604 routines. 17605 (obj_type_ref_class): Likewise. 17606 * tree.c (virtual_method_call_p): Likewise. 17607 * ipa-devirt.c (obj_type_ref_class): Likewise. Lazily add ODR 17608 type information for the type when the parameter is false. 17609 * tree-pretty-print.c (dump_generic_node): Update calls to 17610 virtual_method_call_p and obj_type_ref_class accordingly. 17611 176122020-07-13 Julian Brown <julian@codesourcery.com> 17613 Thomas Schwinge <thomas@codesourcery.com> 17614 17615 * gimplify.c (gimplify_scan_omp_clauses): Do not strip 17616 GOMP_MAP_TO_PSET/GOMP_MAP_POINTER for OpenACC enter/exit data 17617 directives (see also PR92929). 17618 176192020-07-13 Roger Sayle <roger@nextmovesoftware.com> 17620 17621 * convert.c (convert_to_integer_1): Narrow integer operations 17622 even on targets that require explicit truncation instructions. 17623 176242020-07-13 Hans-Peter Nilsson <hp@axis.com> 17625 17626 PR target/93372 17627 * config/cris/cris-passes.def: New file. 17628 * config/cris/t-cris (PASSES_EXTRA): Add cris-passes.def. 17629 * config/cris/cris.c: Add infrastructure bits and pass execute 17630 function cris_postdbr_cmpelim. 17631 * config/cris/cris-protos.h (make_pass_cris_postdbr_cmpelim): Declare. 17632 176332020-07-13 Hans-Peter Nilsson <hp@axis.com> 17634 17635 * config/cris/t-cris: Remove gt-cris.h-related excessive cargo. 17636 176372020-07-13 Hans-Peter Nilsson <hp@axis.com> 17638 17639 PR target/93372 17640 * config/cris/cris.md ("*add<mode>3_addi"): New splitter. 17641 ("*addi_b_<mode>"): New pattern. 17642 ("*addsi3<setnz>"): Remove stale %-related comment. 17643 176442020-07-13 Hans-Peter Nilsson <hp@axis.com> 17645 17646 * config/cris/cris.md ("setnz_subst", "setnz_subst", "setcc_subst"): 17647 Use match_dup in output template, not match_operand. 17648 176492020-07-13 Richard Biener <rguenther@suse.de> 17650 17651 * var-tracking.c (bb_heap_node_t): Remove unused typedef. 17652 (vt_find_locations): Eliminate visited bitmap in favor of 17653 RPO order check. Dump statistics about the number of 17654 local BB dataflow computes. 17655 176562020-07-13 Richard Biener <rguenther@suse.de> 17657 17658 PR middle-end/94600 17659 * expr.c (expand_constructor): Make a temporary also if we're 17660 storing to volatile memory. 17661 176622020-07-13 Xionghu Luo <luoxhu@linux.ibm.com> 17663 17664 * config/rs6000/rs6000.md (rotl_unspec): New 17665 define_insn_and_split. 17666 176672020-07-13 Xionghu Luo <luoxhu@linux.ibm.com> 17668 17669 * config/rs6000/rs6000.c (rs6000_expand_vector_init): 17670 Move V4SF to V4SI, init vector like V4SI and move to V4SF back. 17671 176722020-07-11 Roger Sayle <roger@nextmovesoftware.com> 17673 17674 * internal-fn.c (expand_mul_overflow): When checking for signed 17675 overflow from a widening multiplication, we access the truncated 17676 lowpart RES twice, so keep this value in a pseudo register. 17677 176782020-07-11 Richard Sandiford <richard.sandiford@arm.com> 17679 17680 PR tree-optimization/96146 17681 * value-range.cc (value_range::set): Only decompose POLY_INT_CST 17682 bounds to integers for VR_RANGE. Decay to VR_VARYING for anti-ranges 17683 involving POLY_INT_CSTs. 17684 176852020-07-10 David Edelsohn <dje.gcc@gmail.com> 17686 17687 PR target/77373 17688 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Only 17689 create named section for VAR_DECL or FUNCTION_DECL. 17690 176912020-07-10 Joseph Myers <joseph@codesourcery.com> 17692 17693 * glimits.h [__STDC_VERSION__ > 201710L] (BOOL_MAX, BOOL_WIDTH): 17694 New macros. 17695 176962020-07-10 Alexander Popov <alex.popov@linux.com> 17697 17698 * shrink-wrap.c (try_shrink_wrapping): Improve debug output. 17699 177002020-07-10 Richard Sandiford <richard.sandiford@arm.com> 17701 17702 PR middle-end/96151 17703 * expr.c (expand_expr_real_2): When reducing bit fields, 17704 clear the target if it has a different mode from the expression. 17705 (reduce_to_bit_field_precision): Don't do that here. Instead 17706 assert that the target already has the correct mode. 17707 177082020-07-10 Richard Sandiford <richard.sandiford@arm.com> 17709 17710 PR target/92789 17711 PR target/95726 17712 * config/arm/arm.c (arm_attribute_table): Add 17713 "Advanced SIMD type". 17714 (arm_comp_type_attributes): Check that the "Advanced SIMD type" 17715 attributes are equal. 17716 * config/arm/arm-builtins.c: Include stringpool.h and 17717 attribs.h. 17718 (arm_mangle_builtin_vector_type): Use the mangling recorded 17719 in the "Advanced SIMD type" attribute. 17720 (arm_init_simd_builtin_types): Add an "Advanced SIMD type" 17721 attribute to each Advanced SIMD type, using the mangled type 17722 as the attribute's single argument. 17723 177242020-07-10 Carl Love <cel@us.ibm.com> 17725 17726 * config/rs6000/vsx.md (VSX_MM): New define_mode_iterator. 17727 (VSX_MM4): New define_mode_iterator. 17728 (vec_mtvsrbmi): New define_insn. 17729 (vec_mtvsr_<mode>): New define_insn. 17730 (vec_cntmb_<mode>): New define_insn. 17731 (vec_extract_<mode>): New define_insn. 17732 (vec_expand_<mode>): New define_insn. 17733 (define_c_enum unspec): Add entries UNSPEC_MTVSBM, UNSPEC_VCNTMB, 17734 UNSPEC_VEXTRACT, UNSPEC_VEXPAND. 17735 * config/rs6000/altivec.h ( vec_genbm, vec_genhm, vec_genwm, 17736 vec_gendm, vec_genqm, vec_cntm, vec_expandm, vec_extractm): Add 17737 defines. 17738 * config/rs6000/rs6000-builtin.def: Add defines BU_P10_2, BU_P10_1. 17739 (BU_P10_1): Add definitions for mtvsrbm, mtvsrhm, mtvsrwm, 17740 mtvsrdm, mtvsrqm, vexpandmb, vexpandmh, vexpandmw, vexpandmd, 17741 vexpandmq, vextractmb, vextractmh, vextractmw, vextractmd, vextractmq. 17742 (BU_P10_2): Add definitions for cntmbb, cntmbh, cntmbw, cntmbd. 17743 (BU_P10_OVERLOAD_1): Add definitions for mtvsrbm, mtvsrhm, 17744 mtvsrwm, mtvsrdm, mtvsrqm, vexpandm, vextractm. 17745 (BU_P10_OVERLOAD_2): Add defition for cntm. 17746 * config/rs6000/rs6000-call.c (rs6000_expand_binop_builtin): Add 17747 checks for CODE_FOR_vec_cntmbb_v16qi, CODE_FOR_vec_cntmb_v8hi, 17748 CODE_FOR_vec_cntmb_v4si, CODE_FOR_vec_cntmb_v2di. 17749 (altivec_overloaded_builtins): Add overloaded argument entries for 17750 P10_BUILTIN_VEC_MTVSRBM, P10_BUILTIN_VEC_MTVSRHM, 17751 P10_BUILTIN_VEC_MTVSRWM, P10_BUILTIN_VEC_MTVSRDM, 17752 P10_BUILTIN_VEC_MTVSRQM, P10_BUILTIN_VEC_VCNTMBB, 17753 P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH, 17754 P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD, 17755 P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH, 17756 P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD, 17757 P10_BUILTIN_VEXPANDMQ, P10_BUILTIN_VEXTRACTMB, 17758 P10_BUILTIN_VEXTRACTMH, P10_BUILTIN_VEXTRACTMW, 17759 P10_BUILTIN_VEXTRACTMD, P10_BUILTIN_VEXTRACTMQ. 17760 (builtin_function_type): Add case entries for P10_BUILTIN_MTVSRBM, 17761 P10_BUILTIN_MTVSRHM, P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM, 17762 P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH, 17763 P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD, 17764 P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH, 17765 P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD, 17766 P10_BUILTIN_VEXPANDMQ. 17767 * config/rs6000/rs6000-builtin.def (altivec_overloaded_builtins): Add 17768 entries for MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM, VCNTM, 17769 VEXPANDM, VEXTRACTM. 17770 177712020-07-10 Bill Seurer, 507-253-3502, seurer@us.ibm.com <(no_default)> 17772 17773 PR target/95581 17774 * config/rs6000/rs6000-call.c: Add new type v16qi_ftype_pcvoid. 17775 (altivec_init_builtins) Change __builtin_altivec_mask_for_load to use 17776 v16qi_ftype_pcvoid with correct number of parameters. 17777 177782020-07-10 H.J. Lu <hjl.tools@gmail.com> 17779 17780 PR target/96144 17781 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Check 17782 TARGET_AVX512VL when enabling FMA. 17783 177842020-07-10 Andrea Corallo <andrea.corallo@arm.com> 17785 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 17786 Iain Apreotesei <iain.apreotesei@arm.com> 17787 17788 * config/arm/arm-protos.h (arm_target_insn_ok_for_lob): New 17789 prototype. 17790 * config/arm/arm.c (TARGET_INVALID_WITHIN_DOLOOP): Define. 17791 (arm_invalid_within_doloop): Implement invalid_within_doloop hook. 17792 (arm_target_insn_ok_for_lob): New function. 17793 * config/arm/arm.h (TARGET_HAVE_LOB): Define macro. 17794 * config/arm/thumb2.md (*doloop_end_internal, doloop_begin) 17795 (dls_insn): Add new patterns. 17796 (doloop_end): Modify to select LR when LOB is available. 17797 * config/arm/unspecs.md: Add new unspec. 17798 * doc/sourcebuild.texi (arm_v8_1_lob_ok) 17799 (arm_thumb2_ok_no_arm_v8_1_lob): Document new target supports 17800 options. 17801 178022020-07-10 Richard Biener <rguenther@suse.de> 17803 17804 PR tree-optimization/96133 17805 * gimple-fold.c (fold_array_ctor_reference): Do not 17806 recurse to folding a CTOR that does not fully cover the 17807 asked for object. 17808 178092020-07-10 Cui,Lili <lili.cui@intel.com> 17810 17811 * common/config/i386/cpuinfo.h 17812 (get_intel_cpu): Handle sapphirerapids. 17813 * common/config/i386/i386-common.c 17814 (processor_names): Add sapphirerapids and alderlake. 17815 (processor_alias_table): Add sapphirerapids and alderlake. 17816 * common/config/i386/i386-cpuinfo.h 17817 (processor_subtypes): Add INTEL_COREI7_ALDERLAKE and 17818 INTEL_COREI7_ALDERLAKE. 17819 * config.gcc: Add -march=sapphirerapids and alderlake. 17820 * config/i386/driver-i386.c 17821 (host_detect_local_cpu) Handle sapphirerapids and alderlake. 17822 * config/i386/i386-c.c 17823 (ix86_target_macros_internal): Handle sapphirerapids and alderlake. 17824 * config/i386/i386-options.c 17825 (m_SAPPHIRERAPIDS) : Define. 17826 (m_ALDERLAKE): Ditto. 17827 (m_CORE_AVX512) : Add m_SAPPHIRERAPIDS. 17828 (processor_cost_table): Add sapphirerapids and alderlake. 17829 (ix86_option_override_internal) Handle PTA_WAITPKG, PTA_ENQCMD, 17830 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK. 17831 * config/i386/i386.h 17832 (ix86_size_cost) : Define SAPPHIRERAPIDS and ALDERLAKE. 17833 (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and 17834 PROCESSOR_ALDERLAKE. 17835 (PTA_ENQCMD): New. 17836 (PTA_CLDEMOTE): Ditto. 17837 (PTA_SERIALIZE): Ditto. 17838 (PTA_TSXLDTRK): New. 17839 (PTA_SAPPHIRERAPIDS): Ditto. 17840 (PTA_ALDERLAKE): Ditto. 17841 (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and 17842 PROCESSOR_ALDERLAKE. 17843 * doc/extend.texi: Add sapphirerapids and alderlake. 17844 * doc/invoke.texi: Add sapphirerapids and alderlake. 17845 178462020-07-10 Martin Liska <mliska@suse.cz> 17847 17848 * dumpfile.c [profile-report]: Add new profile dump. 17849 * dumpfile.h (enum tree_dump_index): Ad TDI_profile_report. 17850 * passes.c (pass_manager::dump_profile_report): Change stderr 17851 to dump_file. 17852 178532020-07-10 Kewen Lin <linkw@linux.ibm.com> 17854 17855 * tree-vect-loop.c (vect_transform_loop): Use LOOP_VINFO_NITERS which 17856 is adjusted by considering peeled prologue for non 17857 vect_use_loop_mask_for_alignment_p cases. 17858 178592020-07-09 Peter Bergner <bergner@linux.ibm.com> 17860 17861 PR target/96125 17862 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Define the MMA 17863 specific types __vector_quad and __vector_pair, and initialize the 17864 MMA built-ins if TARGET_EXTRA_BUILTINS is set. 17865 (mma_init_builtins): Don't test for mask set in rs6000_builtin_mask. 17866 Remove now unneeded mask variable. 17867 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add the 17868 OPTION_MASK_MMA flag for power10 if not already set. 17869 178702020-07-09 Richard Biener <rguenther@suse.de> 17871 17872 PR tree-optimization/96133 17873 * tree-vect-slp.c (vect_build_slp_tree_1): Compare load_p 17874 status between stmts. 17875 178762020-07-09 H.J. Lu <hjl.tools@gmail.com> 17877 17878 PR target/88713 17879 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Enable FMA. 17880 * config/i386/sse.md (VF_AVX512VL_VF1_128_256): New. 17881 (rsqrt<mode>2): Replace VF1_128_256 with VF_AVX512VL_VF1_128_256. 17882 (rsqrtv16sf2): Removed. 17883 178842020-07-09 Richard Biener <rguenther@suse.de> 17885 17886 * tree-vectorizer.h (vect_verify_datarefs_alignment): Remove. 17887 (vect_slp_analyze_and_verify_instance_alignment): Rename to ... 17888 (vect_slp_analyze_instance_alignment): ... this. 17889 * tree-vect-data-refs.c (verify_data_ref_alignment): Remove. 17890 (vect_verify_datarefs_alignment): Likewise. 17891 (vect_enhance_data_refs_alignment): Do not call 17892 vect_verify_datarefs_alignment. 17893 (vect_slp_analyze_node_alignment): Rename from 17894 vect_slp_analyze_and_verify_node_alignment and do not 17895 call verify_data_ref_alignment. 17896 (vect_slp_analyze_instance_alignment): Rename from 17897 vect_slp_analyze_and_verify_instance_alignment. 17898 * tree-vect-stmts.c (vectorizable_store): Dump when 17899 we vectorize an unaligned access. 17900 (vectorizable_load): Likewise. 17901 * tree-vect-loop.c (vect_analyze_loop_2): Do not call 17902 vect_verify_datarefs_alignment. 17903 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust. 17904 179052020-07-09 Bin Cheng <bin.cheng@linux.alibaba.com> 17906 17907 PR tree-optimization/95804 17908 * tree-loop-distribution.c (break_alias_scc_partitions): Force 17909 negative post order to reduction partition. 17910 179112020-07-09 Jakub Jelinek <jakub@redhat.com> 17912 17913 * omp-general.h (struct omp_for_data): Add min_inner_iterations 17914 and factor members. 17915 * omp-general.c (omp_extract_for_data): Initialize them and remember 17916 them in OMP_CLAUSE_COLLAPSE_COUNT if needed and restore from there. 17917 * omp-expand.c (expand_omp_for_init_counts): Fix up computation of 17918 counts[fd->last_nonrect] if fd->loop.n2 is INTEGER_CST. 17919 (expand_omp_for_init_vars): For 17920 fd->first_nonrect + 1 == fd->last_nonrect loops with for now 17921 INTEGER_CST fd->loop.n2 find quadratic equation roots instead of 17922 using fallback method when possible. 17923 179242020-07-09 Omar Tahir <omar.tahir@arm.com> 17925 17926 * ira.c (move_unallocated_pseudos): Zero first_moveable_pseudo and 17927 last_moveable_pseudo before returning. 17928 179292020-07-09 Szabolcs Nagy <szabolcs.nagy@arm.com> 17930 17931 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add 17932 __ARM_FEATURE_BTI_DEFAULT support. 17933 179342020-07-09 Matthew Malcomson <matthew.malcomson@arm.com> 17935 17936 * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm): 17937 New declaration. 17938 * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new 17939 stub registers class. 17940 (aarch64_class_max_nregs): Likewise. 17941 (aarch64_register_move_cost): Likewise. 17942 (aarch64_sls_shared_thunks): Global array to store stub labels. 17943 (aarch64_sls_emit_function_stub): New. 17944 (aarch64_create_blr_label): New. 17945 (aarch64_sls_emit_blr_function_thunks): New. 17946 (aarch64_sls_emit_shared_blr_thunks): New. 17947 (aarch64_asm_file_end): New. 17948 (aarch64_indirect_call_asm): New. 17949 (TARGET_ASM_FILE_END): Use aarch64_asm_file_end. 17950 (TARGET_ASM_FUNCTION_EPILOGUE): Use 17951 aarch64_sls_emit_blr_function_thunks. 17952 * config/aarch64/aarch64.h (STB_REGNUM_P): New. 17953 (enum reg_class): Add STUB_REGS class. 17954 (machine_function): Introduce `call_via` array for 17955 function-local stub labels. 17956 * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use 17957 aarch64_indirect_call_asm to emit code when hardening BLR 17958 instructions. 17959 * config/aarch64/constraints.md (Ucr): New constraint 17960 representing registers for indirect calls. Is GENERAL_REGS 17961 usually, and STUB_REGS when hardening BLR instruction against 17962 SLS. 17963 * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class 17964 is also a general register. 17965 179662020-07-09 Matthew Malcomson <matthew.malcomson@arm.com> 17967 17968 * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New. 17969 * config/aarch64/aarch64.c (aarch64_output_casesi): Emit 17970 speculation barrier after BR instruction if needs be. 17971 (aarch64_trampoline_init): Handle ptr_mode value & adjust size 17972 of code copied. 17973 (aarch64_sls_barrier): New. 17974 (aarch64_asm_trampoline_template): Add needed barriers. 17975 * config/aarch64/aarch64.h (AARCH64_ISA_SB): New. 17976 (TARGET_SB): New. 17977 (TRAMPOLINE_SIZE): Account for barrier. 17978 * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch, 17979 simple_return, *do_return, *sibcall_insn, *sibcall_value_insn): 17980 Emit barrier if needs be, also account for possible barrier using 17981 "sls_length" attribute. 17982 (sls_length): New attribute. 17983 (length): Determine default using any non-default sls_length 17984 value. 17985 179862020-07-09 Matthew Malcomson <matthew.malcomson@arm.com> 17987 17988 * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p): 17989 New. 17990 (aarch64_harden_sls_blr_p): New. 17991 * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type): 17992 New. 17993 (aarch64_harden_sls_retbr_p): New. 17994 (aarch64_harden_sls_blr_p): New. 17995 (aarch64_validate_sls_mitigation): New. 17996 (aarch64_override_options): Parse options for SLS mitigation. 17997 * config/aarch64/aarch64.opt (-mharden-sls): New option. 17998 * doc/invoke.texi: Document new option. 17999 180002020-07-09 Kewen Lin <linkw@linux.ibm.com> 18001 18002 * tree-vect-stmts.c (vectorizable_condition): Prohibit vectorization 18003 with partial vectors explicitly excepting for EXTRACT_LAST_REDUCTION 18004 or nested-cycle reduction. 18005 180062020-07-09 Kewen Lin <linkw@linux.ibm.com> 18007 18008 * tree-vect-loop.c (vect_analyze_loop_2): Update dumping string 18009 for fully masking to be more common. 18010 180112020-07-09 Kito Cheng <kito.cheng@sifive.com> 18012 18013 * config/riscv/riscv.md (get_thread_pointer<mode>): New. 18014 (TP_REGNUM): Ditto. 18015 * doc/extend.texi (Target Builtins): Add RISC-V built-in section. 18016 Document __builtin_thread_pointer. 18017 180182020-07-09 Kito Cheng <kito.cheng@sifive.com> 18019 18020 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls): 18021 Abort if any arguments on stack. 18022 180232020-07-08 Eric Botcazou <ebotcazou@adacore.com> 18024 18025 * gimple-fold.c (gimple_fold_builtin_memory_op): Do not fold if 18026 either type has reverse scalar storage order. 18027 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not propagate through 18028 a memory copy if either type has reverse scalar storage order. 18029 180302020-07-08 Tobias Burnus <tobias@codesourcery.com> 18031 18032 * config/gcn/mkoffload.c (compile_native, main): Pass -fPIC/-fpic 18033 on to the native compiler, if used. 18034 * config/nvptx/mkoffload.c (compile_native, main): Likewise. 18035 180362020-07-08 Will Schmidt <will_schmidt@vnet.ibm.com> 18037 18038 * config/rs6000/altivec.h (vec_vmsumudm): New define. 18039 * config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec. 18040 (altivec_vmsumudm): New define_insn. 18041 * config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3 18042 entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry. 18043 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add entries for 18044 ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum. 18045 * doc/extend.texi: Add document for vmsumudm behind vmsum. 18046 180472020-07-08 Richard Biener <rguenther@suse.de> 18048 18049 * tree-vect-stmts.c (get_group_load_store_type): Pass 18050 in the SLP node and the alignment support scheme output. 18051 Set that. 18052 (get_load_store_type): Likewise. 18053 (vectorizable_store): Adjust. 18054 (vectorizable_load): Likewise. 18055 180562020-07-08 Richard Sandiford <richard.sandiford@arm.com> 18057 18058 PR middle-end/95694 18059 * expr.c (expand_expr_real_2): Get the mode from the type rather 18060 than the rtx, and assert that it is consistent with the mode of 18061 the rtx (where known). Optimize all constant integers, not just 18062 those that can be represented in poly_int64. 18063 180642020-07-08 Kewen Lin <linkw@linux.ibm.com> 18065 18066 * config/rs6000/vsx.md (len_load_v16qi): New define_expand. 18067 (len_store_v16qi): Likewise. 18068 180692020-07-08 Kewen Lin <linkw@linux.ibm.com> 18070 18071 * doc/md.texi (len_load_@var{m}): Document. 18072 (len_store_@var{m}): Likewise. 18073 * internal-fn.c (len_load_direct): New macro. 18074 (len_store_direct): Likewise. 18075 (expand_len_load_optab_fn): Likewise. 18076 (expand_len_store_optab_fn): Likewise. 18077 (direct_len_load_optab_supported_p): Likewise. 18078 (direct_len_store_optab_supported_p): Likewise. 18079 (expand_mask_load_optab_fn): New macro. Original renamed to ... 18080 (expand_partial_load_optab_fn): ... here. Add handlings for 18081 len_load_optab. 18082 (expand_mask_store_optab_fn): New macro. Original renamed to ... 18083 (expand_partial_store_optab_fn): ... here. Add handlings for 18084 len_store_optab. 18085 (internal_load_fn_p): Handle IFN_LEN_LOAD. 18086 (internal_store_fn_p): Handle IFN_LEN_STORE. 18087 (internal_fn_stored_value_index): Handle IFN_LEN_STORE. 18088 * internal-fn.def (LEN_LOAD): New internal function. 18089 (LEN_STORE): Likewise. 18090 * optabs.def (len_load_optab, len_store_optab): New optab. 18091 180922020-07-07 Anton Youdkevitch <anton.youdkevitch@bell-sw.com> 18093 18094 * config/aarch64/aarch64.c (thunderx2t99_regmove_cost, 18095 thunderx2t99_vector_cost): Likewise. 18096 180972020-07-07 Richard Biener <rguenther@suse.de> 18098 18099 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix 18100 group overlap condition to allow negative step DR groups. 18101 * tree-vect-stmts.c (get_group_load_store_type): For 18102 multi element SLP groups force VMAT_STRIDED_SLP when the step 18103 is negative. 18104 181052020-07-07 Qian Jianhua <qianjh@cn.fujitsu.com> 18106 18107 * doc/generic.texi: Fix typo. 18108 181092020-07-07 Richard Biener <rguenther@suse.de> 18110 18111 * lto-streamer-out.c (cmp_symbol_files): Use the computed 18112 order map to sort symbols from the same sub-file together. 18113 (lto_output): Compute a map of sub-file to an order number 18114 it appears in the symbol output array. 18115 181162020-07-06 Richard Biener <rguenther@suse.de> 18117 18118 PR tree-optimization/96075 18119 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use 18120 TYPE_SIZE_UNIT of the vector component type instead of DR_STEP 18121 for the misalignment calculation for negative step. 18122 181232020-07-06 Roger Sayle <roger@nextmovesoftware.com> 18124 18125 * config/nvptx/nvptx.md (*vadd_addsi4): New instruction. 18126 (*vsub_addsi4): New instruction. 18127 181282020-07-06 Hans-Peter Nilsson <hp@axis.com> 18129 18130 * config/cris/cris.md (movulsr): New peephole2. 18131 181322020-07-06 Hans-Peter Nilsson <hp@axis.com> 18133 18134 * config/cris/sync.md ("cris_atomic_fetch_<atomic_op_name><mode>_1"): 18135 Correct gcc_assert of overlapping operands. 18136 181372020-07-05 Hans-Peter Nilsson <hp@axis.com> 18138 18139 * config/cris/cris.c (cris_select_cc_mode): Always return 18140 CC_NZmode for matching comparisons. Clarify comments. 18141 * config/cris/cris-modes.def: Clarify mode comment. 18142 * config/cris/cris.md (plusminus, plusminusumin, plusumin): New 18143 code iterators. 18144 (addsub, addsubbo, nd): New code iterator attributes. 18145 ("*<addsub><su>qihi"): Rename from "*extopqihi". Use code 18146 iterator constructs instead of match_operator constructs. 18147 ("*<addsubbo><su><nd><mode>si<setnz>"): Similar from 18148 "*extop<mode>si<setnz>". 18149 ("*add<su>qihi_swap"): Similar from "*addxqihi_swap". 18150 ("*<addsubbo><su><nd><mode>si<setnz>_swap"): Similar from 18151 "*extop<mode>si<setnz>_swap". 18152 181532020-07-05 Hans-Peter Nilsson <hp@axis.com> 18154 18155 * config/cris/cris.md ("*extopqihi", "*extop<mode>si<setnz>_swap") 18156 ("*extop<mode>si<setnz>", "*addxqihi_swap"): Reinstate. 18157 181582020-07-03 Eric Botcazou <ebotcazou@adacore.com> 18159 18160 * gimple-fold.c (gimple_fold_builtin_memory_op): Fold calls that 18161 were initially created for the assignment of a variable-sized 18162 object and whose source is now a string constant. 18163 * gimple-ssa-store-merging.c (struct merged_store_group): Document 18164 STRING_CST for rhs_code field. 18165 Add string_concatenation boolean field. 18166 (merged_store_group::merged_store_group): Initialize it as well as 18167 bit_insertion here. 18168 (merged_store_group::do_merge): Set it upon seeing a STRING_CST. 18169 Also set bit_insertion here upon seeing a BIT_INSERT_EXPR. 18170 (merged_store_group::apply_stores): Clear it for small regions. 18171 Do not create a power-of-2-sized buffer if it is still true. 18172 And do not set bit_insertion here again. 18173 (encode_tree_to_bitpos): Deal with BLKmode for the expression. 18174 (merged_store_group::can_be_merged_into): Deal with STRING_CST. 18175 (imm_store_chain_info::coalesce_immediate_stores): Set bit_insertion 18176 to true after changing MEM_REF stores into BIT_INSERT_EXPR stores. 18177 (count_multiple_uses): Return 0 for STRING_CST. 18178 (split_group): Do not split the group for a string concatenation. 18179 (imm_store_chain_info::output_merged_store): Constify and rename 18180 some local variables. Build an array type as destination type 18181 for a string concatenation, as well as a zero mask, and call 18182 build_string to build the source. 18183 (lhs_valid_for_store_merging_p): Return true for VIEW_CONVERT_EXPR. 18184 (pass_store_merging::process_store): Accept STRING_CST on the RHS. 18185 * gimple.h (gimple_call_alloca_for_var_p): New accessor function. 18186 * gimplify.c (gimplify_modify_expr_to_memcpy): Set alloca_for_var. 18187 * tree.h (CALL_ALLOCA_FOR_VAR_P): Document it for BUILT_IN_MEMCPY. 18188 181892020-07-03 Martin Jambor <mjambor@suse.cz> 18190 18191 PR ipa/96040 18192 * ipa-sra.c (all_callee_accesses_present_p): Do not accept type 18193 mismatched accesses. 18194 181952020-07-03 Roger Sayle <roger@nextmovesoftware.com> 18196 18197 * config/nvptx/nvptx.md (popcount<mode>2): New instructions. 18198 (mulhishi3, mulsidi3, umulhisi3, umulsidi3): New instructions. 18199 182002020-07-03 Martin Liska <mliska@suse.cz> 18201 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 18202 18203 PR bootstrap/96046 18204 * gcov-dump.c (tag_function): Use gcov_position_t 18205 type. 18206 182072020-07-03 Richard Biener <rguenther@suse.de> 18208 18209 PR tree-optimization/96037 18210 * tree-vect-stmts.c (vect_is_simple_use): Initialize *slp_def. 18211 182122020-07-03 Richard Biener <rguenther@suse.de> 18213 18214 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Cost the 18215 original non-pattern stmts, look at the pattern stmt 18216 vectorization status. 18217 182182020-07-03 Andrew Stubbs <ams@codesourcery.com> 18219 18220 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): New. 18221 182222020-07-03 Richard Biener <rguenther@suse.de> 18223 18224 * tree-vectorizer.h (vec_info::insert_on_entry): New. 18225 (vec_info::insert_seq_on_entry): Likewise. 18226 * tree-vectorizer.c (vec_info::insert_on_entry): Implement. 18227 (vec_info::insert_seq_on_entry): Likewise. 18228 * tree-vect-stmts.c (vect_init_vector_1): Use 18229 vec_info::insert_on_entry. 18230 (vect_finish_stmt_generation): Set modified bit after 18231 adjusting VUSE. 18232 * tree-vect-slp.c (vect_create_constant_vectors): Simplify 18233 by using vec_info::insert_seq_on_entry and bypassing 18234 vec_init_vector. 18235 (vect_schedule_slp_instance): Deal with all-constant 18236 children later. 18237 182382020-07-03 Roger Sayle <roger@nextmovesoftware.com> 18239 Tom de Vries <tdevries@suse.de> 18240 18241 PR target/90932 18242 * config/nvptx/nvptx.c (nvptx_vector_alignment): Use tree_to_uhwi 18243 to access TYPE_SIZE (type). Return at least the mode's alignment. 18244 182452020-07-02 Richard Biener <rguenther@suse.de> 18246 18247 PR tree-optimization/96028 18248 * tree-vect-slp.c (vect_slp_convert_to_external): Make sure 18249 we have scalar stmts to use. 18250 (vect_slp_analyze_node_operations): When analyzing a child 18251 failed try externalizing the parent node. 18252 182532020-07-02 Martin Jambor <mjambor@suse.cz> 18254 18255 PR debug/95343 18256 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Adjust 18257 argument index if necessary. 18258 182592020-07-02 Martin Liska <mliska@suse.cz> 18260 18261 PR middle-end/95830 18262 * tree-vect-generic.c (expand_vector_condition): Forward declaration. 18263 (expand_vector_comparison): Do not expand a comparison if all 18264 uses are consumed by a VEC_COND_EXPR. 18265 (expand_vector_operation): Change void return type to bool. 18266 (expand_vector_operations_1): Pass dce_ssa_names. 18267 182682020-07-02 Ilya Leoshkevich <iii@linux.ibm.com> 18269 18270 PR bootstrap/95700 18271 * system.h (NULL): Redefine to nullptr. 18272 182732020-07-02 Jakub Jelinek <jakub@redhat.com> 18274 18275 PR tree-optimization/95857 18276 * tree-cfg.c (group_case_labels_stmt): When removing an unreachable 18277 base_bb, remember all forced and non-local labels on it and later 18278 treat those as if they have NULL label_to_block. Formatting fix. 18279 Fix a comment typo. 18280 182812020-07-02 Richard Biener <rguenther@suse.de> 18282 18283 PR tree-optimization/96022 18284 * tree-vect-stmts.c (vectorizable_shift): Only use the 18285 first vector stmt when extracting the scalar shift amount. 18286 * tree-vect-slp.c (vect_build_slp_tree_2): Also build unary 18287 nodes with all-scalar children from scalars but not stores. 18288 (vect_analyze_slp_instance): Mark the node not failed. 18289 182902020-07-02 Felix Yang <felix.yang@huawei.com> 18291 18292 PR tree-optimization/95961 18293 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use the 18294 number of scalars instead of the number of vectors as an upper bound 18295 for the loop saving info about DR in the hash table. Remove unused 18296 local variables. 18297 182982020-07-02 Jakub Jelinek <jakub@redhat.com> 18299 18300 * omp-expand.c (expand_omp_for): Diagnose non-rectangular loops with 18301 invalid steps - ((m2 - m1) * incr_outer) % incr must be 0 in valid 18302 OpenMP non-rectangular loops. Use XALLOCAVEC. 18303 183042020-07-02 Martin Liska <mliska@suse.cz> 18305 18306 PR gcov-profile/95348 18307 * coverage.c (read_counts_file): Read only COUNTERS that are 18308 not all-zero. 18309 * gcov-dump.c (tag_function): Change signature from unsigned to 18310 signed integer. 18311 (tag_blocks): Likewise. 18312 (tag_arcs): Likewise. 18313 (tag_lines): Likewise. 18314 (tag_counters): Likewise. 18315 (tag_summary): Likewise. 18316 * gcov.c (read_count_file): Read all non-zero counters 18317 sensitively. 18318 183192020-07-02 Kito Cheng <kito.cheng@sifive.com> 18320 18321 * config/riscv/multilib-generator (arch_canonicalize): Handle 18322 multi-letter extension. 18323 Using underline as separator between different extensions. 18324 183252020-07-01 Pip Cet <pipcet@gmail.com> 18326 18327 * spellcheck.c (test_data): Add problematic strings. 18328 (test_metric_conditions): Don't test the triangle inequality 18329 condition, which our distance function does not satisfy. 18330 183312020-07-01 Omar Tahir <omar.tahir@arm.com> 18332 18333 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Always 18334 generate a BTI instruction. 18335 183362020-07-01 Jeff Law <law@redhat.com> 18337 18338 PR tree-optimization/94882 18339 * match.pd (x & y) - (x | y) - 1 -> ~(x ^ y): New simplification. 18340 183412020-07-01 Jeff Law <law@redhat.com> 18342 18343 * config/m68k/m68k.c (m68k_output_btst): Drop "register" keyword. 18344 (emit_move_sequence, output_iorsi3, output_xorsi3): Likewise. 18345 183462020-07-01 Andrea Corallo <andrea.corallo@arm.com> 18347 18348 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add enums 18349 for 64bits fpsr/fpcr getter setters builtin variants. 18350 (aarch64_init_fpsr_fpcr_builtins): New function. 18351 (aarch64_general_init_builtins): Modify to make use of the later. 18352 (aarch64_expand_fpsr_fpcr_setter): New function. 18353 (aarch64_general_expand_builtin): Modify to make use of the later. 18354 * config/aarch64/aarch64.md (@aarch64_set_<fpscr_name><GPI:mode>) 18355 (@aarch64_get_<fpscr_name><GPI:mode>): New patterns replacing and 18356 generalizing 'get_fpcr', 'set_fpsr'. 18357 * config/aarch64/iterators.md (GET_FPSCR, SET_FPSCR): New int 18358 iterators. 18359 (fpscr_name): New int attribute. 18360 * doc/extend.texi (__builtin_aarch64_get_fpcr64) 18361 (__builtin_aarch64_set_fpcr64, __builtin_aarch64_get_fpsr64) 18362 (__builtin_aarch64_set_fpsr64): Add into AArch64 Built-in 18363 Functions. 18364 183652020-07-01 Martin Liska <mliska@suse.cz> 18366 18367 * gcov.c (print_usage): Avoid trailing space for -j option. 18368 183692020-07-01 Richard Biener <rguenther@suse.de> 18370 18371 PR tree-optimization/95839 18372 * tree-vect-slp.c (vect_slp_tree_uniform_p): Pre-existing 18373 vectors are not uniform. 18374 (vect_build_slp_tree_1): Handle BIT_FIELD_REFs of 18375 vector registers. 18376 (vect_build_slp_tree_2): For groups of lane extracts 18377 from a vector register generate a permute node 18378 with a special child representing the pre-existing vector. 18379 (vect_prologue_cost_for_slp): Pre-existing vectors cost nothing. 18380 (vect_slp_analyze_node_operations): Use SLP_TREE_LANES. 18381 (vectorizable_slp_permutation): Do not generate or cost identity 18382 permutes. 18383 (vect_schedule_slp_instance): Handle pre-existing vector 18384 that are function arguments. 18385 183862020-07-01 Richard Biener <rguenther@suse.de> 18387 18388 * system.h (INCLUDE_ISL): New guarded include. 18389 * graphite-dependences.c: Use it. 18390 * graphite-isl-ast-to-gimple.c: Likewise. 18391 * graphite-optimize-isl.c: Likewise. 18392 * graphite-poly.c: Likewise. 18393 * graphite-scop-detection.c: Likewise. 18394 * graphite-sese-to-poly.c: Likewise. 18395 * graphite.c: Likewise. 18396 * graphite.h: Drop the includes here. 18397 183982020-07-01 Martin Liska <mliska@suse.cz> 18399 18400 * gcov.c (print_usage): Shorted option description for -j 18401 option. 18402 184032020-07-01 Martin Liska <mliska@suse.cz> 18404 18405 * doc/gcov.texi: Rename 2 options. 18406 * gcov.c (print_usage): Rename -i,--json-format to 18407 -j,--json-format and -j,--human-readable to -H,--human-readable. 18408 (process_args): Fix up parsing. Document obsolete options and 18409 how are they changed. 18410 184112020-07-01 Jeff Law <law@redhat.com> 18412 18413 * config/pa/pa.c (pa_emit_move_sequence): Drop register keyword. 18414 (pa_output_ascii): Likewise. 18415 184162020-07-01 Kito Cheng <kito.cheng@sifive.com> 18417 18418 * common/config/riscv/riscv-common.c (riscv_subset_t): New field 18419 added. 18420 (riscv_subset_list::parsing_subset_version): Add parameter for 18421 indicate explicitly version, and handle explicitly version. 18422 (riscv_subset_list::handle_implied_ext): Ditto. 18423 (riscv_subset_list::add): Ditto. 18424 (riscv_subset_t::riscv_subset_t): Init new field. 18425 (riscv_subset_list::to_string): Always output version info if version 18426 explicitly specified. 18427 (riscv_subset_list::parsing_subset_version): Handle explicitly 18428 arch version. 18429 (riscv_subset_list::parse_std_ext): Ditto. 18430 (riscv_subset_list::parse_multiletter_ext): Ditto. 18431 184322020-06-30 Richard Sandiford <richard.sandiford@arm.com> 18433 18434 PR target/92789 18435 PR target/95726 18436 * config/aarch64/aarch64.c (aarch64_attribute_table): Add 18437 "Advanced SIMD type". 18438 (aarch64_comp_type_attributes): Check that the "Advanced SIMD type" 18439 attributes are equal. 18440 * config/aarch64/aarch64-builtins.c: Include stringpool.h and 18441 attribs.h. 18442 (aarch64_mangle_builtin_vector_type): Use the mangling recorded 18443 in the "Advanced SIMD type" attribute. 18444 (aarch64_init_simd_builtin_types): Add an "Advanced SIMD type" 18445 attribute to each Advanced SIMD type, using the mangled type 18446 as the attribute's single argument. 18447 184482020-06-30 Christophe Lyon <christophe.lyon@linaro.org> 18449 18450 PR target/94743 18451 * config/arm/arm.c (arm_handle_isr_attribute): Warn if 18452 -mgeneral-regs-only is not used. 18453 184542020-06-30 Yang Yang <yangyang305@huawei.com> 18455 18456 PR tree-optimization/95855 18457 * gimple-ssa-split-paths.c (is_feasible_trace): Add extra 18458 checks to recognize a missed if-conversion opportunity when 18459 judging whether to duplicate a block. 18460 184612020-06-29 Segher Boessenkool <segher@kernel.crashing.org> 18462 18463 * doc/extend.texi: Change references to "future architecture" to 18464 "ISA 3.1", "-mcpu=future" to "-mcpu=power10", and remove vaguer 18465 references to "future" (because the future is now). 18466 184672020-06-29 Segher Boessenkool <segher@kernel.crashing.org> 18468 18469 * config/rs6000/rs6000.md (isa): Rename "fut" to "p10". 18470 184712020-06-29 Roger Sayle <roger@nextmovesoftware.com> 18472 18473 * simplify-rtx.c (simplify_distributive_operation): New function 18474 to un-distribute a binary operation of two binary operations. 18475 (X & C) ^ (Y & C) to (X ^ Y) & C, when C is simple (i.e. a constant). 18476 (simplify_binary_operation_1) <IOR, XOR, AND>: Call it from here 18477 when appropriate. 18478 (test_scalar_int_ops): New function for unit self-testing 18479 scalar integer transformations in simplify-rtx.c. 18480 (test_scalar_ops): Call test_scalar_int_ops for each integer mode. 18481 (simplify_rtx_c_tests): Call test_scalar_ops. 18482 184832020-06-29 Richard Biener <rguenther@suse.de> 18484 18485 PR tree-optimization/95916 18486 * tree-vect-slp.c (vect_schedule_slp_instance): Explicitely handle 18487 the case of not vectorized externals. 18488 184892020-06-29 Richard Biener <rguenther@suse.de> 18490 18491 * tree-vectorizer.h: Do not include <utility>. 18492 184932020-06-29 Martin Liska <mliska@suse.cz> 18494 18495 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Use gsi_bb 18496 instead of gimple_stmt_iterator::bb. 18497 * tree-ssa-math-opts.c (insert_reciprocals): Likewise. 18498 * tree-vectorizer.h: Likewise. 18499 185002020-06-29 Andrew Stubbs <ams@codesourcery.com> 18501 18502 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): New macro. 18503 * config/gcn/gcn-protos.h (gcn_dwarf_register_number): New prototype. 18504 * config/gcn/gcn.c (gcn_expand_prologue): Add RTX_FRAME_RELATED_P 18505 and REG_FRAME_RELATED_EXPR to stack and frame pointer adjustments. 18506 (gcn_dwarf_register_number): New function. 18507 (gcn_dwarf_register_span): New function. 18508 (TARGET_DWARF_REGISTER_SPAN): New hook macro. 18509 185102020-06-29 Kaipeng Zhou <zhoukaipeng3@huawei.com> 18511 18512 PR tree-optimization/95854 18513 * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Return NULL 18514 if operand 1 or 2 of a BIT_FIELD_REF cannot be converted to 18515 unsigned HOST_WIDE_INT. 18516 185172020-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 18518 18519 * config/sparc/sparc.c (epilogue_renumber): Remove register. 18520 (sparc_print_operand_address): Likewise. 18521 (sparc_type_code): Likewise. 18522 (set_extends): Likewise. 18523 185242020-06-29 Martin Liska <mliska@suse.cz> 18525 18526 PR tree-optimization/92860 18527 * optc-save-gen.awk: Add exceptions for arc target. 18528 185292020-06-29 Frederik Harwath <frederik@codesourcery.com> 18530 18531 * doc/sourcebuild.texi: Describe globbing of the 18532 dump file scanning commands "suffix" argument. 18533 185342020-06-28 Martin Sebor <msebor@redhat.com> 18535 18536 PR c++/86568 18537 * calls.c (maybe_warn_rdwr_sizes): Use location of argument if 18538 available. 18539 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. Adjust 18540 indentation. 18541 * tree.c (get_nonnull_args): Consider the this pointer implicitly 18542 nonnull. 18543 * var-tracking.c (deps_vec): New type. 18544 (var_loc_dep_vec): New function. 18545 (VAR_LOC_DEP_VEC): Use it. 18546 185472020-06-28 Kewen Lin <linkw@linux.ibm.com> 18548 18549 * internal-fn.c (direct_mask_load_optab_supported_p): Use 18550 convert_optab_supported_p instead of direct_optab_supported_p. 18551 (direct_mask_store_optab_supported_p): Likewise. 18552 185532020-06-27 Aldy Hernandez <aldyh@redhat.com> 18554 18555 * gimple-ssa-evrp-analyze.h (vrp_visit_cond_stmt): Use 18556 simplify_using_ranges class. 18557 * gimple-ssa-evrp.c (class evrp_folder): New simplify_using_ranges 18558 field. Adjust all methods to use new field. 18559 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Use 18560 simplify_using_ranges class. 18561 * tree-vrp.c (class vrp_folder): New simplify_using_ranges 18562 field. Adjust all methods to use new field. 18563 (simplify_stmt_for_jump_threading): Use simplify_using_ranges class. 18564 (vrp_prop::vrp_finalize): New vrp_folder argument. 18565 (execute_vrp): Pass folder to vrp_finalize. Use 18566 simplify_using_ranges class. 18567 Remove cleanup_edges_and_switches call. 18568 * vr-values.c (vr_values::op_with_boolean_value_range_p): Change 18569 value_range_equiv uses to value_range. 18570 (simplify_using_ranges::op_with_boolean_value_range_p): Use 18571 simplify_using_ranges class. 18572 (check_for_binary_op_overflow): Make static. 18573 (vr_values::extract_range_basic): Pass this to 18574 check_for_binary_op_overflow. 18575 (compare_range_with_value): Change value_range_equiv uses to 18576 value_range. 18577 (vr_values::vr_values): Initialize simplifier field. 18578 Remove uses of to_remove_edges and to_update_switch_stmts. 18579 (vr_values::~vr_values): Remove uses of to_remove_edges and 18580 to_update_switch_stmts. 18581 (vr_values::get_vr_for_comparison): Move to simplify_using_ranges 18582 class. 18583 (vr_values::compare_name_with_value): Same. 18584 (vr_values::compare_names): Same. 18585 (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same. 18586 (vr_values::vrp_evaluate_conditional): Same. 18587 (vr_values::vrp_visit_cond_stmt): Same. 18588 (find_case_label_ranges): Change value_range_equiv uses to 18589 value_range. 18590 (vr_values::extract_range_from_stmt): Use simplify_using_ranges class. 18591 (vr_values::simplify_truth_ops_using_ranges): Move to 18592 simplify_using_ranges class. 18593 (vr_values::simplify_div_or_mod_using_ranges): Same. 18594 (vr_values::simplify_min_or_max_using_ranges): Same. 18595 (vr_values::simplify_abs_using_ranges): Same. 18596 (vr_values::simplify_bit_ops_using_ranges): Same. 18597 (test_for_singularity): Change value_range_equiv uses to 18598 value_range. 18599 (range_fits_type_p): Same. 18600 (vr_values::simplify_cond_using_ranges_1): Same. 18601 (vr_values::simplify_cond_using_ranges_2): Make extern. 18602 (vr_values::fold_cond): Move to simplify_using_ranges class. 18603 (vr_values::simplify_switch_using_ranges): Same. 18604 (vr_values::cleanup_edges_and_switches): Same. 18605 (vr_values::simplify_float_conversion_using_ranges): Same. 18606 (vr_values::simplify_internal_call_using_ranges): Same. 18607 (vr_values::two_valued_val_range_p): Same. 18608 (vr_values::simplify_stmt_using_ranges): Move to... 18609 (simplify_using_ranges::simplify): ...here. 18610 * vr-values.h (class vr_values): Move all the simplification of 18611 statements using ranges methods and code from here... 18612 (class simplify_using_ranges): ...to here. 18613 (simplify_cond_using_ranges_2): New extern prototype. 18614 186152020-06-27 Jakub Jelinek <jakub@redhat.com> 18616 18617 * omp-general.h (struct omp_for_data_loop): Add non_rect_referenced 18618 member, move outer member. 18619 (struct omp_for_data): Add first_nonrect and last_nonrect members. 18620 * omp-general.c (omp_extract_for_data): Initialize first_nonrect, 18621 last_nonrect and non_rect_referenced members. 18622 * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular 18623 loops. 18624 (expand_omp_for_init_vars): Add nonrect_bounds parameter. Handle 18625 non-rectangular loops. 18626 (extract_omp_for_update_vars): Likewise. 18627 (expand_omp_for_generic, expand_omp_for_static_nochunk, 18628 expand_omp_for_static_chunk, expand_omp_simd, 18629 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Adjust 18630 expand_omp_for_init_vars and extract_omp_for_update_vars callers. 18631 (expand_omp_for): Don't sorry on non-composite worksharing-loop or 18632 distribute. 18633 186342020-06-26 H.J. Lu <hjl.tools@gmail.com> 18635 18636 PR target/95655 18637 * config/i386/gnu-user.h (SUBTARGET_FRAME_POINTER_REQUIRED): 18638 Removed. 18639 * config/i386/i386.c (ix86_frame_pointer_required): Update 18640 comments. 18641 186422020-06-26 Yichao Yu <yyc1992@gmail.com> 18643 18644 * multiple_target.c (redirect_to_specific_clone): Fix tests 18645 to check individual attribute rather than an attribute list. 18646 186472020-06-26 Peter Bergner <bergner@linux.ibm.com> 18648 18649 * config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New. 18650 * doc/extend.texi (PowerPC Built-in Functions): Document power10, 18651 arch_3_1 and mma. 18652 186532020-06-26 Marek Polacek <polacek@redhat.com> 18654 18655 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++. 18656 * doc/standards.texi (C Language): Correct the default dialect. 18657 (C++ Language): Update the default for C++ to gnu++17. 18658 186592020-06-26 Eric Botcazou <ebotcazou@adacore.com> 18660 18661 * tree-ssa-reassoc.c (dump_range_entry): New function. 18662 (debug_range_entry): New debug function. 18663 (update_range_test): Invoke dump_range_entry for dumping. 18664 (optimize_range_tests_to_bit_test): Merge the entry test in the 18665 bit test when possible and lower the profitability threshold. 18666 186672020-06-26 Richard Biener <rguenther@suse.de> 18668 18669 PR tree-optimization/95897 18670 * tree-vectorizer.h (vectorizable_induction): Remove 18671 unused gimple_stmt_iterator * parameter. 18672 * tree-vect-loop.c (vectorizable_induction): Likewise. 18673 (vect_analyze_loop_operations): Adjust. 18674 * tree-vect-stmts.c (vect_analyze_stmt): Likewise. 18675 (vect_transform_stmt): Likewise. 18676 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust 18677 for fold-left reductions, clarify existing reduction case. 18678 186792020-06-25 Nick Clifton <nickc@redhat.com> 18680 18681 * config/m32r/m32r.md (movsicc): Disable pattern. 18682 186832020-06-25 Richard Biener <rguenther@suse.de> 18684 18685 PR tree-optimization/95839 18686 * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove premature 18687 check on the number of datarefs. 18688 186892020-06-25 Iain Sandoe <iain@sandoe.co.uk> 18690 18691 * config/rs6000/rs6000-call.c (mma_init_builtins): Cast 18692 the insn_data n_operands value to unsigned. 18693 186942020-06-25 Richard Biener <rguenther@suse.de> 18695 18696 * tree-vect-slp.c (vect_schedule_slp_instance): Always use 18697 vector defs to determine insertion place. 18698 186992020-06-25 H.J. Lu <hjl.tools@gmail.com> 18700 18701 PR target/95874 18702 * config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB. 18703 (PTA_ICELAKE_SERVER): Add PTA_CLWB. 18704 (PTA_TIGERLAKE): Add PTA_CLWB. 18705 187062020-06-25 Richard Biener <rguenther@suse.de> 18707 18708 PR tree-optimization/95866 18709 * tree-vect-stmts.c (vectorizable_shift): Reject incompatible 18710 vectorized shift operands. For scalar shifts use lane zero 18711 of a vectorized shift operand. 18712 187132020-06-25 Martin Liska <mliska@suse.cz> 18714 18715 PR tree-optimization/95745 18716 PR middle-end/95830 18717 * gimple-isel.cc (gimple_expand_vec_cond_exprs): Delete dead 18718 SSA_NAMEs used as the first argument of a VEC_COND_EXPR. Always 18719 return 0. 18720 * tree-vect-generic.c (expand_vector_condition): Remove dead 18721 SSA_NAMEs used as the first argument of a VEC_COND_EXPR. 18722 187232020-06-24 Will Schmidt <will_schmidt@vnet.ibm.com> 18724 18725 PR target/94954 18726 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Update. 18727 * config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec. 18728 (convert_4f32_8f16): New define_expand 18729 * config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define 18730 and overload. 18731 * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New 18732 overloaded builtin entry. 18733 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec. 18734 (vsx_xvcvsphp): New define_insn. 18735 187362020-06-24 Roger Sayle <roger@nextmovesoftware.com> 18737 Segher Boessenkool <segher@kernel.crashing.org> 18738 18739 * simplify-rtx.c (simplify_unary_operation_1): Simplify rotates by 0. 18740 187412020-06-24 Roger Sayle <roger@nextmovesoftware.com> 18742 18743 * simplify-rtx.c (simplify_unary_operation_1): Simplify 18744 (parity (parity x)) as (parity x), i.e. PARITY is idempotent. 18745 187462020-06-24 Richard Biener <rguenther@suse.de> 18747 18748 PR tree-optimization/95866 18749 * tree-vect-slp.c (vect_slp_tree_uniform_p): New. 18750 (vect_build_slp_tree_2): Properly reset matches[0], 18751 ignore uniform constants. 18752 187532020-06-24 H.J. Lu <hjl.tools@gmail.com> 18754 18755 PR target/95660 18756 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove brand_id. 18757 (cpu_indicator_init): Likewise. 18758 * config/i386/driver-i386.c (host_detect_local_cpu): Updated. 18759 187602020-06-24 H.J. Lu <hjl.tools@gmail.com> 18761 18762 PR target/95774 18763 * common/config/i386/cpuinfo.h (get_intel_cpu): Add Cooper Lake 18764 detection with AVX512BF16. 18765 187662020-06-24 H.J. Lu <hjl.tools@gmail.com> 18767 18768 PR target/95843 18769 * common/config/i386/i386-isas.h: New file. Extracted from 18770 gcc/config/i386/i386-builtins.c. 18771 (_isa_names_table): Add option. 18772 (ISA_NAMES_TABLE_START): New. 18773 (ISA_NAMES_TABLE_END): Likewise. 18774 (ISA_NAMES_TABLE_ENTRY): Likewise. 18775 (isa_names_table): Defined with ISA_NAMES_TABLE_START, 18776 ISA_NAMES_TABLE_END and ISA_NAMES_TABLE_ENTRY. Add more ISAs 18777 from enum processor_features. 18778 * config/i386/driver-i386.c: Include 18779 "common/config/i386/cpuinfo.h" and 18780 "common/config/i386/i386-isas.h". 18781 (has_feature): New macro. 18782 (host_detect_local_cpu): Call cpu_indicator_init to get CPU 18783 features. Use has_feature to detect processor features. Call 18784 Call get_intel_cpu to get the newer Intel CPU name. Use 18785 isa_names_table to generate command-line options. 18786 * config/i386/i386-builtins.c: Include 18787 "common/config/i386/i386-isas.h". 18788 (_arch_names_table): Removed. 18789 (isa_names_table): Likewise. 18790 187912020-06-24 H.J. Lu <hjl.tools@gmail.com> 18792 18793 PR target/95259 18794 * common/config/i386/cpuinfo.h: New file. 18795 (__processor_model): Moved from libgcc/config/i386/cpuinfo.h. 18796 (__processor_model2): New. 18797 (CHECK___builtin_cpu_is): New. Defined as empty if not defined. 18798 (has_cpu_feature): New function. 18799 (set_cpu_feature): Likewise. 18800 (get_amd_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use 18801 CHECK___builtin_cpu_is. Return AMD CPU name. 18802 (get_intel_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use 18803 Use CHECK___builtin_cpu_is. Return Intel CPU name. 18804 (get_available_features): Moved from libgcc/config/i386/cpuinfo.c. 18805 Also check FEATURE_3DNOW, FEATURE_3DNOWP, FEATURE_ADX, 18806 FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT, FEATURE_CLWB, 18807 FEATURE_CLZERO, FEATURE_CMPXCHG16B, FEATURE_CMPXCHG8B, 18808 FEATURE_ENQCMD, FEATURE_F16C, FEATURE_FSGSBASE, FEATURE_FXSAVE, 18809 FEATURE_HLE, FEATURE_IBT, FEATURE_LAHF_LM, FEATURE_LM, 18810 FEATURE_LWP, FEATURE_LZCNT, FEATURE_MOVBE, FEATURE_MOVDIR64B, 18811 FEATURE_MOVDIRI, FEATURE_MWAITX, FEATURE_OSXSAVE, 18812 FEATURE_PCONFIG, FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW, 18813 FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED, 18814 FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA, 18815 FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES, 18816 FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC, 18817 FEATURE_XSAVEOPT and FEATURE_XSAVES 18818 (cpu_indicator_init): Moved from libgcc/config/i386/cpuinfo.c. 18819 Also update cpu_model2. 18820 * common/config/i386/i386-cpuinfo.h (processor_vendor): Add 18821 Add VENDOR_CENTAUR, VENDOR_CYRIX and VENDOR_NSC. 18822 (processor_features): Moved from gcc/config/i386/i386-builtins.c. 18823 Renamed F_XXX to FEATURE_XXX. Add FEATURE_3DNOW, FEATURE_3DNOWP, 18824 FEATURE_ADX, FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT, 18825 FEATURE_CLWB, FEATURE_CLZERO, FEATURE_CMPXCHG16B, 18826 FEATURE_CMPXCHG8B, FEATURE_ENQCMD, FEATURE_F16C, 18827 FEATURE_FSGSBASE, FEATURE_FXSAVE, FEATURE_HLE, FEATURE_IBT, 18828 FEATURE_LAHF_LM, FEATURE_LM, FEATURE_LWP, FEATURE_LZCNT, 18829 FEATURE_MOVBE, FEATURE_MOVDIR64B, FEATURE_MOVDIRI, 18830 FEATURE_MWAITX, FEATURE_OSXSAVE, FEATURE_PCONFIG, 18831 FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW, 18832 FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED, 18833 FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA, 18834 FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES, 18835 FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC, 18836 FEATURE_XSAVEOPT, FEATURE_XSAVES and CPU_FEATURE_MAX. 18837 (SIZE_OF_CPU_FEATURES): New. 18838 * config/i386/i386-builtins.c (processor_features): Removed. 18839 (isa_names_table): Replace F_XXX with FEATURE_XXX. 18840 (fold_builtin_cpu): Change __cpu_features2 to an array. 18841 188422020-06-24 H.J. Lu <hjl.tools@gmail.com> 18843 18844 PR target/95842 18845 * common/config/i386/i386-common.c (processor_alias_table): Add 18846 processor model and priority to each entry. 18847 (pta_size): Updated with -6. 18848 (num_arch_names): New. 18849 * common/config/i386/i386-cpuinfo.h: New file. 18850 * config/i386/i386-builtins.c (feature_priority): Removed. 18851 (processor_model): Likewise. 18852 (_arch_names_table): Likewise. 18853 (arch_names_table): Likewise. 18854 (_isa_names_table): Replace P_ZERO with P_NONE. 18855 (get_builtin_code_for_version): Replace P_ZERO with P_NONE. Use 18856 processor_alias_table. 18857 (fold_builtin_cpu): Replace arch_names_table with 18858 processor_alias_table. 18859 * config/i386/i386.h: Include "common/config/i386/i386-cpuinfo.h". 18860 (pta): Add model and priority. 18861 (num_arch_names): New. 18862 188632020-06-24 Richard Biener <rguenther@suse.de> 18864 18865 * tree-vectorizer.h (vect_find_first_scalar_stmt_in_slp): 18866 Declare. 18867 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): 18868 Simplify for new position of vectorized SLP loads. 18869 (vect_slp_analyze_node_dependences): Adjust for it. 18870 (vect_slp_analyze_and_verify_node_alignment): Compute alignment 18871 for the first stmts dataref. 18872 * tree-vect-slp.c (vect_find_first_scalar_stmt_in_slp): New. 18873 (vect_schedule_slp_instance): Emit loads before the 18874 first scalar stmt. 18875 * tree-vect-stmts.c (vectorizable_load): Do what the comment 18876 says and use vect_find_first_scalar_stmt_in_slp. 18877 188782020-06-24 Richard Biener <rguenther@suse.de> 18879 18880 PR tree-optimization/95856 18881 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): Honor 18882 region marker -1u. 18883 188842020-06-24 Jakub Jelinek <jakub@redhat.com> 18885 18886 PR middle-end/95810 18887 * fold-const.c (fold_cond_expr_with_comparison): Optimize 18888 A <= 0 ? A : -A into (type)-absu(A) rather than -abs(A). 18889 188902020-06-24 Jakub Jelinek <jakub@redhat.com> 18891 18892 * omp-low.c (lower_omp_for): Fix two pastos. 18893 188942020-06-24 Martin Liska <mliska@suse.cz> 18895 18896 * optc-save-gen.awk: Compare string options in cl_optimization_compare 18897 by strcmp. 18898 188992020-06-23 Aaron Sawdey <acsawdey@linux.ibm.com> 18900 18901 * config.gcc: Identify power10 as a 64-bit processor and as valid 18902 for --with-cpu and --with-tune. 18903 189042020-06-23 David Edelsohn <dje.gcc@gmail.com> 18905 18906 * Makefile.in (LANG_MAKEFRAGS): Same. 18907 (tmake_file): Use -include. 18908 (xmake_file): Same. 18909 189102020-06-23 Michael Meissner <meissner@linux.ibm.com> 18911 18912 * REVISION: Delete file meant for a private branch. 18913 189142020-06-23 Andre Vieira <andre.simoesdiasvieira@arm.com> 18915 18916 PR target/95646 18917 * config/arm/arm.c: (cmse_nonsecure_entry_clear_before_return): Use 18918 'callee_saved_reg_p' instead of 'calL_used_or_fixed_reg_p'. 18919 189202020-06-23 Alexandre Oliva <oliva@adacore.com> 18921 18922 * collect-utils.h (dumppfx): New. 18923 * collect-utils.c (dumppfx): Likewise. 18924 * lto-wrapper.c (run_gcc): Set global dumppfx. 18925 (compile_offload_image): Pass a -dumpbase on to mkoffload. 18926 * config/nvptx/mkoffload.c (ptx_dumpbase): New. 18927 (main): Handle incoming -dumpbase. Set ptx_dumpbase. Obey 18928 save_temps. 18929 (compile_native): Pass -dumpbase et al to compiler. 18930 * config/gcn/mkoffload.c (gcn_dumpbase): New. 18931 (main): Handle incoming -dumpbase. Set gcn_dumpbase. Obey 18932 save_temps. Pass -dumpbase et al to offload target compiler. 18933 (compile_native): Pass -dumpbase et al to compiler. 18934 189352020-06-23 Michael Meissner <meissner@linux.ibm.com> 18936 18937 * REVISION: New file. 18938 189392020-06-22 Segher Boessenkool <segher@kernel.crashing.org> 18940 18941 * config/rs6000/altivec.h: Use _ARCH_PWR10, not _ARCH_PWR_FUTURE. 18942 Update comment for ISA 3.1. 18943 * config/rs6000/altivec.md: Use TARGET_POWER10, not TARGET_FUTURE. 18944 * config/rs6000/driver-rs6000.c (asm_names): Use -mpwr10 for power10 18945 on AIX, and -mpower10 elsewhere. 18946 * config/rs6000/future.md: Delete. 18947 * config/rs6000/linux64.h: Update comments. Use TARGET_POWER10, not 18948 TARGET_FUTURE. 18949 * config/rs6000/power10.md: New file. 18950 * config/rs6000/ppc-auxv.h: Use PPC_PLATFORM_POWER10, not 18951 PPC_PLATFORM_FUTURE. 18952 * config/rs6000/rs6000-builtin.def: Update comments. Use BU_P10V_* 18953 names instead of BU_FUTURE_V_* names. Use RS6000_BTM_P10 instead of 18954 RS6000_BTM_FUTURE. Use P10_BUILTIN_* instead of FUTURE_BUILTIN_*. 18955 Use BU_P10_* instead of BU_FUTURE_*. 18956 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define 18957 _ARCH_PWR10 instead of _ARCH_PWR_FUTURE. 18958 (altivec_resolve_overloaded_builtin): Use P10_BUILTIN_VEC_XXEVAL, not 18959 FUTURE_BUILTIN_VEC_XXEVAL. 18960 * config/rs6000/rs6000-call.c: Use P10_BUILTIN_*, not FUTURE_BUILTIN_*. 18961 Update compiler messages. 18962 * config/rs6000/rs6000-cpus.def: Update comments. Use ISA_3_1_*, not 18963 ISA_FUTURE_*. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. 18964 * config/rs6000/rs6000-opts.h: Use PROCESSOR_POWER10, not 18965 PROCESSOR_FUTURE. 18966 * config/rs6000/rs6000-string.c: Ditto. 18967 * config/rs6000/rs6000-tables.opt (rs6000_cpu_opt_value): Use "power10" 18968 instead of "future", reorder it to right after "power9". 18969 * config/rs6000/rs6000.c: Update comments. Use OPTION_MASK_POWER10, 18970 not OPTION_MASK_FUTURE. Use TARGET_POWER10, not TARGET_FUTURE. Use 18971 RS6000_BTM_P10, not RS6000_BTM_FUTURE. Update compiler messages. 18972 Use PROCESSOR_POWER10, not PROCESSOR_FUTURE. Use ISA_3_1_MASKS_SERVER, 18973 not ISA_FUTURE_MASKS_SERVER. 18974 (rs6000_opt_masks): Use "power10" instead of "future". 18975 (rs6000_builtin_mask_names): Ditto. 18976 (rs6000_disable_incompatible_switches): Ditto. 18977 * config/rs6000/rs6000.h: Use -mpower10, not -mfuture. Use 18978 -mcpu=power10, not -mcpu=future. Use MASK_POWER10, not MASK_FUTURE. 18979 Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. Use RS6000_BTM_P10, 18980 not RS6000_BTM_FUTURE. 18981 * config/rs6000/rs6000.md: Use "power10", not "future". Use 18982 TARGET_POWER10, not TARGET_FUTURE. Include "power10.md", not 18983 "future.md". 18984 * config/rs6000/rs6000.opt (mfuture): Delete. 18985 (mpower10): New. 18986 * config/rs6000/t-rs6000: Use "power10.md", not "future.md". 18987 * config/rs6000/vsx.md: Use TARGET_POWER10, not TARGET_FUTURE. 18988 189892020-06-22 Richard Sandiford <richard.sandiford@arm.com> 18990 18991 * coretypes.h (first_type): Delete. 18992 * recog.h (insn_gen_fn::operator()): Go back to using a decltype. 18993 189942020-06-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 18995 18996 * doc/sourcebuild.texi (arm_v8_1m_mve_fp_ok): Add item. 18997 (arm_mve_hw): Likewise. 18998 189992020-06-22 H.J. Lu <hjl.tools@gmail.com> 19000 19001 PR target/95791 19002 * config/i386/i386.c (ix86_dirflag_mode_needed): Skip 19003 EXT_REX_SSE_REG_P. 19004 190052020-06-22 Richard Biener <rguenther@suse.de> 19006 19007 PR tree-optimization/95770 19008 * tree-vect-slp.c (vect_schedule_slp_instance): Also consider 19009 external defs. 19010 190112020-06-22 Andrew Stubbs <ams@codesourcery.com> 19012 19013 * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments. 19014 (gcn_return_in_memory): Return vectors in memory. 19015 190162020-06-22 Jakub Jelinek <jakub@redhat.com> 19017 19018 * omp-general.c (omp_extract_for_data): For triangular loops with 19019 all loop invariant expressions constant where the innermost loop is 19020 executed at least once compute number of iterations at compile time. 19021 190222020-06-22 Kito Cheng <kito.cheng@sifive.com> 19023 19024 * config/riscv/riscv.h (ASM_SPEC): Remove riscv_expand_arch call. 19025 (DRIVER_SELF_SPECS): New. 19026 190272020-06-22 Kito Cheng <kito.cheng@sifive.com> 19028 19029 * config/riscv/riscv-builtins.c (RISCV_FTYPE_NAME0): New. 19030 (RISCV_FTYPE_ATYPES0): New. 19031 (riscv_builtins): Using RISCV_USI_FTYPE for frflags. 19032 * config/riscv/riscv-ftypes.def: Remove VOID argument. 19033 190342020-06-21 David Edelsohn <dje.gcc@gmail.com> 19035 19036 * config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit. 19037 * config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option. 19038 (ASM_SPEC32): New. 19039 (ASM_SPEC64): New. 19040 (ASM_CPU_SPEC): Remove vsx and altivec options. 19041 (CPP_SPEC_COMMON): Rename from CPP_SPEC. 19042 (CPP_SPEC32): New. 19043 (CPP_SPEC64): New. 19044 (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON.. 19045 (TARGET_DEFAULT): Only define if not BIARCH. 19046 (LIB_SPEC_COMMON): Rename from LIB_SPEC. 19047 (LIB_SPEC32): New. 19048 (LIB_SPEC64): New. 19049 (LINK_SPEC_COMMON): Rename from LINK_SPEC. 19050 (LINK_SPEC32): New. 19051 (LINK_SPEC64): New. 19052 (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase. 19053 (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P. 19054 (CPP_SPEC): Same. 19055 (CPLUSPLUS_CPP_SPEC): Same. 19056 (LIB_SPEC): Same. 19057 (LINK_SPEC): Same. 19058 (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs. 19059 * config/rs6000/defaultaix64.h: New file. 19060 * config/rs6000/t-aix64: New file. 19061 190622020-06-21 Peter Bergner <bergner@linux.ibm.com> 19063 19064 * config/rs6000/predicates.md (mma_assemble_input_operand): New. 19065 * config/rs6000/rs6000-builtin.def (BU_MMA_1, BU_MMA_V2, BU_MMA_3, 19066 BU_MMA_5, BU_MMA_6, BU_VSX_1): Add support macros for defining MMA 19067 built-in functions. 19068 (ASSEMBLE_ACC, ASSEMBLE_PAIR, DISASSEMBLE_ACC, DISASSEMBLE_PAIR, 19069 PMXVBF16GER2, PMXVBF16GER2NN, PMXVBF16GER2NP, PMXVBF16GER2PN, 19070 PMXVBF16GER2PP, PMXVF16GER2, PMXVF16GER2NN, PMXVF16GER2NP, 19071 PMXVF16GER2PN, PMXVF16GER2PP, PMXVF32GER, PMXVF32GERNN, 19072 PMXVF32GERNP, PMXVF32GERPN, PMXVF32GERPP, PMXVF64GER, PMXVF64GERNN, 19073 PMXVF64GERNP, PMXVF64GERPN, PMXVF64GERPP, PMXVI16GER2, PMXVI16GER2PP, 19074 PMXVI16GER2S, PMXVI16GER2SPP, PMXVI4GER8, PMXVI4GER8PP, PMXVI8GER4, 19075 PMXVI8GER4PP, PMXVI8GER4SPP, XVBF16GER2, XVBF16GER2NN, XVBF16GER2NP, 19076 XVBF16GER2PN, XVBF16GER2PP, XVCVBF16SP, XVCVSPBF16, XVF16GER2, 19077 XVF16GER2NN, XVF16GER2NP, XVF16GER2PN, XVF16GER2PP, XVF32GER, 19078 XVF32GERNN, XVF32GERNP, XVF32GERPN, XVF32GERPP, XVF64GER, XVF64GERNN, 19079 XVF64GERNP, XVF64GERPN, XVF64GERPP, XVI16GER2, XVI16GER2PP, XVI16GER2S, 19080 XVI16GER2SPP, XVI4GER8, XVI4GER8PP, XVI8GER4, XVI8GER4PP, XVI8GER4SPP, 19081 XXMFACC, XXMTACC, XXSETACCZ): Add MMA built-ins. 19082 * config/rs6000/rs6000.c (rs6000_emit_move): Use CONST_INT_P. 19083 Allow zero constants. 19084 (print_operand) <case 'A'>: New output modifier. 19085 (rs6000_split_multireg_move): Add support for inserting accumulator 19086 priming and depriming instructions. Add support for splitting an 19087 assemble accumulator pattern. 19088 * config/rs6000/rs6000-call.c (mma_init_builtins, mma_expand_builtin, 19089 rs6000_gimple_fold_mma_builtin): New functions. 19090 (RS6000_BUILTIN_M): New macro. 19091 (def_builtin): Handle RS6000_BTC_QUAD and RS6000_BTC_PAIR attributes. 19092 (bdesc_mma): Add new MMA built-in support. 19093 (htm_expand_builtin): Use RS6000_BTC_OPND_MASK. 19094 (rs6000_invalid_builtin): Add handling of RS6000_BTM_FUTURE and 19095 RS6000_BTM_MMA. 19096 (rs6000_builtin_valid_without_lhs): Handle RS6000_BTC_VOID attribute. 19097 (rs6000_gimple_fold_builtin): Call rs6000_builtin_is_supported_p 19098 and rs6000_gimple_fold_mma_builtin. 19099 (rs6000_expand_builtin): Call mma_expand_builtin. 19100 Use RS6000_BTC_OPND_MASK. 19101 (rs6000_init_builtins): Adjust comment. Call mma_init_builtins. 19102 (htm_init_builtins): Use RS6000_BTC_OPND_MASK. 19103 (builtin_function_type): Handle VSX_BUILTIN_XVCVSPBF16 and 19104 VSX_BUILTIN_XVCVBF16SP. 19105 * config/rs6000/rs6000.h (RS6000_BTC_QUINARY, RS6000_BTC_SENARY, 19106 RS6000_BTC_OPND_MASK, RS6000_BTC_QUAD, RS6000_BTC_PAIR, 19107 RS6000_BTC_QUADPAIR, RS6000_BTC_GIMPLE): New defines. 19108 (RS6000_BTC_PREDICATE, RS6000_BTC_ABS, RS6000_BTC_DST, 19109 RS6000_BTC_TYPE_MASK, RS6000_BTC_ATTR_MASK): Adjust values. 19110 * config/rs6000/mma.md (MAX_MMA_OPERANDS): New define_constant. 19111 (UNSPEC_MMA_ASSEMBLE_ACC, UNSPEC_MMA_PMXVBF16GER2, 19112 UNSPEC_MMA_PMXVBF16GER2NN, UNSPEC_MMA_PMXVBF16GER2NP, 19113 UNSPEC_MMA_PMXVBF16GER2PN, UNSPEC_MMA_PMXVBF16GER2PP, 19114 UNSPEC_MMA_PMXVF16GER2, UNSPEC_MMA_PMXVF16GER2NN, 19115 UNSPEC_MMA_PMXVF16GER2NP, UNSPEC_MMA_PMXVF16GER2PN, 19116 UNSPEC_MMA_PMXVF16GER2PP, UNSPEC_MMA_PMXVF32GER, 19117 UNSPEC_MMA_PMXVF32GERNN, UNSPEC_MMA_PMXVF32GERNP, 19118 UNSPEC_MMA_PMXVF32GERPN, UNSPEC_MMA_PMXVF32GERPP, 19119 UNSPEC_MMA_PMXVF64GER, UNSPEC_MMA_PMXVF64GERNN, 19120 UNSPEC_MMA_PMXVF64GERNP, UNSPEC_MMA_PMXVF64GERPN, 19121 UNSPEC_MMA_PMXVF64GERPP, UNSPEC_MMA_PMXVI16GER2, 19122 UNSPEC_MMA_PMXVI16GER2PP, UNSPEC_MMA_PMXVI16GER2S, 19123 UNSPEC_MMA_PMXVI16GER2SPP, UNSPEC_MMA_PMXVI4GER8, 19124 UNSPEC_MMA_PMXVI4GER8PP, UNSPEC_MMA_PMXVI8GER4, 19125 UNSPEC_MMA_PMXVI8GER4PP, UNSPEC_MMA_PMXVI8GER4SPP, 19126 UNSPEC_MMA_XVBF16GER2, UNSPEC_MMA_XVBF16GER2NN, 19127 UNSPEC_MMA_XVBF16GER2NP, UNSPEC_MMA_XVBF16GER2PN, 19128 UNSPEC_MMA_XVBF16GER2PP, UNSPEC_MMA_XVF16GER2, UNSPEC_MMA_XVF16GER2NN, 19129 UNSPEC_MMA_XVF16GER2NP, UNSPEC_MMA_XVF16GER2PN, UNSPEC_MMA_XVF16GER2PP, 19130 UNSPEC_MMA_XVF32GER, UNSPEC_MMA_XVF32GERNN, UNSPEC_MMA_XVF32GERNP, 19131 UNSPEC_MMA_XVF32GERPN, UNSPEC_MMA_XVF32GERPP, UNSPEC_MMA_XVF64GER, 19132 UNSPEC_MMA_XVF64GERNN, UNSPEC_MMA_XVF64GERNP, UNSPEC_MMA_XVF64GERPN, 19133 UNSPEC_MMA_XVF64GERPP, UNSPEC_MMA_XVI16GER2, UNSPEC_MMA_XVI16GER2PP, 19134 UNSPEC_MMA_XVI16GER2S, UNSPEC_MMA_XVI16GER2SPP, UNSPEC_MMA_XVI4GER8, 19135 UNSPEC_MMA_XVI4GER8PP, UNSPEC_MMA_XVI8GER4, UNSPEC_MMA_XVI8GER4PP, 19136 UNSPEC_MMA_XVI8GER4SPP, UNSPEC_MMA_XXMFACC, UNSPEC_MMA_XXMTACC): New. 19137 (MMA_ACC, MMA_VV, MMA_AVV, MMA_PV, MMA_APV, MMA_VVI4I4I8, 19138 MMA_AVVI4I4I8, MMA_VVI4I4I2, MMA_AVVI4I4I2, MMA_VVI4I4, 19139 MMA_AVVI4I4, MMA_PVI4I2, MMA_APVI4I2, MMA_VVI4I4I4, 19140 MMA_AVVI4I4I4): New define_int_iterator. 19141 (acc, vv, avv, pv, apv, vvi4i4i8, avvi4i4i8, vvi4i4i2, 19142 avvi4i4i2, vvi4i4, avvi4i4, pvi4i2, apvi4i2, vvi4i4i4, 19143 avvi4i4i4): New define_int_attr. 19144 (*movpxi): Add zero constant alternative. 19145 (mma_assemble_pair, mma_assemble_acc): New define_expand. 19146 (*mma_assemble_acc): New define_insn_and_split. 19147 (mma_<acc>, mma_xxsetaccz, mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>, 19148 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>, 19149 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>, 19150 mma_<vvi4i4i4>, mma_<avvi4i4i4>): New define_insn. 19151 * config/rs6000/rs6000.md (define_attr "type"): New type mma. 19152 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVBF16SP): New. 19153 (UNSPEC_VSX_XVCVSPBF16): Likewise. 19154 (XVCVBF16): New define_int_iterator. 19155 (xvcvbf16): New define_int_attr. 19156 (vsx_<xvcvbf16>): New define_insn. 19157 * doc/extend.texi: Document the mma built-ins. 19158 191592020-06-21 Peter Bergner <bergner@linux.ibm.com> 19160 Michael Meissner <meissner@linux.ibm.com> 19161 19162 * config/rs6000/mma.md: New file. 19163 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define 19164 __MMA__ for mma. 19165 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Add support 19166 for __vector_pair and __vector_quad types. 19167 * config/rs6000/rs6000-cpus.def (OTHER_FUTURE_MASKS): Add 19168 OPTION_MASK_MMA. 19169 (POWERPC_MASKS): Likewise. 19170 * config/rs6000/rs6000-modes.def (OI, XI): New integer modes. 19171 (POI, PXI): New partial integer modes. 19172 * config/rs6000/rs6000.c (TARGET_INVALID_CONVERSION): Define. 19173 (rs6000_hard_regno_nregs_internal): Use VECTOR_ALIGNMENT_P. 19174 (rs6000_hard_regno_mode_ok_uncached): Likewise. 19175 Add support for POImode being allowed in VSX registers and PXImode 19176 being allowed in FP registers. 19177 (rs6000_modes_tieable_p): Adjust comment. 19178 Add support for POImode and PXImode. 19179 (rs6000_debug_reg_global) <print_tieable_modes>: Add OImode, POImode 19180 XImode, PXImode, V2SImode, V2SFmode and CCFPmode.. 19181 (rs6000_setup_reg_addr_masks): Use VECTOR_ALIGNMENT_P. 19182 Set up appropriate addr_masks for vector pair and vector quad addresses. 19183 (rs6000_init_hard_regno_mode_ok): Add support for vector pair and 19184 vector quad registers. Setup reload handlers for POImode and PXImode. 19185 (rs6000_builtin_mask_calculate): Add support for RS6000_BTM_MMA. 19186 (rs6000_option_override_internal): Error if -mmma is specified 19187 without -mcpu=future. 19188 (rs6000_slow_unaligned_access): Use VECTOR_ALIGNMENT_P. 19189 (quad_address_p): Change size test to less than 16 bytes. 19190 (reg_offset_addressing_ok_p): Add support for ISA 3.1 vector pair 19191 and vector quad instructions. 19192 (avoiding_indexed_address_p): Likewise. 19193 (rs6000_emit_move): Disallow POImode and PXImode moves involving 19194 constants. 19195 (rs6000_preferred_reload_class): Prefer VSX registers for POImode 19196 and FP registers for PXImode. 19197 (rs6000_split_multireg_move): Support splitting POImode and PXImode 19198 move instructions. 19199 (rs6000_mangle_type): Adjust comment. Add support for mangling 19200 __vector_pair and __vector_quad types. 19201 (rs6000_opt_masks): Add entry for mma. 19202 (rs6000_builtin_mask_names): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE. 19203 (rs6000_function_value): Use VECTOR_ALIGNMENT_P. 19204 (address_to_insn_form): Likewise. 19205 (reg_to_non_prefixed): Likewise. 19206 (rs6000_invalid_conversion): New function. 19207 * config/rs6000/rs6000.h (MASK_MMA): Define. 19208 (BIGGEST_ALIGNMENT): Set to 512 if MMA support is enabled. 19209 (VECTOR_ALIGNMENT_P): New helper macro. 19210 (ALTIVEC_VECTOR_MODE): Use VECTOR_ALIGNMENT_P. 19211 (RS6000_BTM_MMA): Define. 19212 (RS6000_BTM_COMMON): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE. 19213 (rs6000_builtin_type_index): Add RS6000_BTI_vector_pair and 19214 RS6000_BTI_vector_quad. 19215 (vector_pair_type_node): New. 19216 (vector_quad_type_node): New. 19217 * config/rs6000/rs6000.md: Include mma.md. 19218 (define_mode_iterator RELOAD): Add POI and PXI. 19219 * config/rs6000/t-rs6000 (MD_INCLUDES): Add mma.md. 19220 * config/rs6000/rs6000.opt (-mmma): New. 19221 * doc/invoke.texi: Document -mmma. 19222 192232020-06-20 Bin Cheng <bin.cheng@linux.alibaba.com> 19224 19225 PR tree-optimization/95638 19226 * tree-loop-distribution.c (pg_edge_callback_data): New field. 19227 (loop_distribution::break_alias_scc_partitions): Record and restore 19228 postorder information. Fix memory leak. 19229 192302020-06-19 Tobias Burnus <tobias@codesourcery.com> 19231 19232 * config/gcn/gcn.c (gcn_related_vector_mode): Add ARG_UNUSED. 19233 (output_file_start): Use const 'char *'. 19234 192352020-06-19 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com> 19236 19237 PR tree-optimization/94880 19238 * match.pd (A | B) - B -> (A & ~B): New simplification. 19239 192402020-06-19 Richard Biener <rguenther@suse.de> 19241 19242 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Adjust 19243 for lane permutations. 19244 192452020-06-19 Richard Biener <rguenther@suse.de> 19246 19247 PR tree-optimization/95761 19248 * tree-vect-slp.c (vect_schedule_slp_instance): Walk all 19249 vectorized stmts for finding the last one. 19250 192512020-06-18 Felix Yang <felix.yang@huawei.com> 19252 19253 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Call 19254 vect_relevant_for_alignment_p to filter out data references in 19255 the loop whose alignment is irrelevant when trying loop peeling 19256 to force alignment. 19257 192582020-06-18 Uroš Bizjak <ubizjak@gmail.com> 19259 19260 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use SWI248 mode 19261 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248 19262 mode iterator for the first operand of ZERO_EXTRACT RTX. 19263 Change ext_register_operand predicate to register_operand. 19264 Rename from *cmpqi_ext_1. 19265 (*cmpqi_ext<mode>_2): Ditto. Rename from *cmpqi_ext_2. 19266 (*cmpqi_ext<mode>_3): Ditto. Rename from *cmpqi_ext_3. 19267 (*cmpqi_ext<mode>_4): Ditto. Rename from *cmpqi_ext_4. 19268 (cmpi_ext_3): Use HImode instead of SImode for ZERO_EXTRACT RTX. 19269 (*extv<mode>): Use SWI24 mode iterator for the first operand 19270 of ZERO_EXTRACT RTX. Change ext_register_operand predicate 19271 to register_operand. 19272 (*extzv<mode>): Use SWI248 mode iterator for the first operand 19273 of ZERO_EXTRACT RTX. Change ext_register_operand predicate 19274 to register_operand. 19275 (*extzvqi): Use SWI248 mode iterator instead of SImode for 19276 ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first operand 19277 of ZERO_EXTRACT RTX. Change ext_register_operand predicate to 19278 register_operand. 19279 (*extzvqi_mem_rex64 and corresponding peephole2): Use SWI248 mode 19280 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248 19281 mode iterator for the first operand of ZERO_EXTRACT RTX. 19282 Change ext_register_operand predicate to register_operand. 19283 (@insv<mode>_1): Use SWI248 mode iterator for the first operand 19284 of ZERO_EXTRACT RTX. Change ext_register_operand predicate to 19285 register_operand. 19286 (*insvqi_1): Use SWI248 mode iterator instead of SImode 19287 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the 19288 first operand of ZERO_EXTRACT RTX. Change ext_register_operand 19289 predicate to register_operand. 19290 (*insvqi_2): Ditto. 19291 (*insvqi_3): Ditto. 19292 (*insvqi_1_mem_rex64 and corresponding peephole2): Use SWI248 mode 19293 iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248 19294 mode iterator for the first operand of ZERO_EXTRACT RTX. 19295 Change ext_register_operand predicate to register_operand. 19296 (addqi_ext_1): New expander. 19297 (*addqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode 19298 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first 19299 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate 19300 to register_operand. Rename from *addqi_ext_1. 19301 (*addqi_ext<mode>_2): Ditto. Rename from *addqi_ext_2. 19302 (divmodqi4): Use HImode instead of SImode for ZERO_EXTRACT RTX. 19303 (udivmodqi4): Ditto. 19304 (testqi_ext_1): Use HImode instead of SImode for ZERO_EXTRACT RTX. 19305 (*testqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode 19306 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first 19307 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate 19308 to register_operand. Rename from *testqi_ext_1. 19309 (*testqi_ext<mode>_2): Ditto. Rename from *testqi_ext_2. 19310 (andqi_ext_1): New expander. 19311 (*andqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode 19312 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first 19313 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate 19314 to register_operand. Rename from andqi_ext_1. 19315 (*andqi_ext<mode>_1_cc): Ditto. Rename from *andqi_ext_1_cc. 19316 (*andqi_ext<mode>_2): Ditto. Rename from *andqi_ext_2. 19317 (*<code>qi_ext<mode>_1): Ditto. Rename from *<code>qi_ext_1. 19318 (*<code>qi_ext<mode>_2): Ditto. Rename from *<code>qi_ext_2. 19319 (xorqi_ext_1_cc): Use HImode instead of SImode for ZERO_EXTRACT RTX. 19320 (*xorqi_ext<mode>_1_cc): Use SWI248 mode iterator instead of SImode 19321 for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first 19322 operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate 19323 to register_operand. Rename from *xorqi_ext_1_cc. 19324 * config/i386/i386-expand.c (ix86_split_idivmod): Emit ZERO_EXTRACT 19325 in mode, matching its first operand. 19326 (promote_duplicated_reg): Update for renamed insv<mode>_1. 19327 * config/i386/predicates.md (ext_register_operand): Remove predicate. 19328 193292020-06-18 Martin Sebor <msebor@redhat.com> 19330 19331 PR middle-end/95667 19332 PR middle-end/92814 19333 * builtins.c (compute_objsize): Remove call to 19334 compute_builtin_object_size and instead compute conservative sizes 19335 directly here. 19336 193372020-06-18 Martin Liska <mliska@suse.cz> 19338 19339 * coretypes.h (struct iterator_range): New type. 19340 * tree-vect-patterns.c (vect_determine_precisions): Use 19341 range-based iterator. 19342 (vect_pattern_recog): Likewise. 19343 * tree-vect-slp.c (_bb_vec_info): Likewise. 19344 (_bb_vec_info::~_bb_vec_info): Likewise. 19345 (vect_slp_check_for_constructors): Likewise. 19346 * tree-vectorizer.h:Add new iterators 19347 and functions that use it. 19348 193492020-06-18 Martin Liska <mliska@suse.cz> 19350 19351 * config/rs6000/rs6000-call.c (fold_build_vec_cmp): 19352 Since 502d63b6d6141597bb18fd23c87736a1b384cf8f, first argument 19353 of a VEC_COND_EXPR cannot be tcc_comparison and so that 19354 a SSA_NAME needs to be created before we use it for the first 19355 argument of the VEC_COND_EXPR. 19356 (fold_compare_helper): Pass gsi to fold_build_vec_cmp. 19357 193582020-06-18 Richard Biener <rguenther@suse.de> 19359 19360 PR middle-end/95739 19361 * internal-fn.c (expand_vect_cond_optab_fn): Move the result 19362 to the target if necessary. 19363 (expand_vect_cond_mask_optab_fn): Likewise. 19364 193652020-06-18 Martin Liska <mliska@suse.cz> 19366 19367 * tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with 19368 vcond as we check for NULL pointer. 19369 193702020-06-18 Tobias Burnus <tobias@codesourcery.com> 19371 19372 * gimple-pretty-print.c (dump_binary_rhs): Use braces to 19373 silence empty-body warning with gcc_fallthrough. 19374 193752020-06-18 Jakub Jelinek <jakub@redhat.com> 19376 19377 PR tree-optimization/95699 19378 * tree-ssa-phiopt.c (minmax_replacement): Treat (signed int)x < 0 19379 as x > INT_MAX and (signed int)x >= 0 as x <= INT_MAX. Move variable 19380 declarations to the statements that set them where possible. 19381 193822020-06-18 Jakub Jelinek <jakub@redhat.com> 19383 19384 PR target/95713 19385 * tree-ssa-forwprop.c (simplify_vector_constructor): Don't allow 19386 scalar mode halfvectype other than vector boolean for 19387 VEC_PACK_TRUNC_EXPR. 19388 193892020-06-18 Richard Biener <rguenther@suse.de> 19390 19391 * varasm.c (assemble_variable): Make sure to not 19392 defer output when outputting addressed constants. 19393 (output_constant_def_contents): Likewise. 19394 (add_constant_to_table): Take and pass on whether to 19395 defer output. 19396 (output_addressed_constants): Likewise. 19397 (output_constant_def): Pass on whether to defer output 19398 to add_constant_to_table. 19399 (tree_output_constant_def): Defer output of constants. 19400 194012020-06-18 Richard Biener <rguenther@suse.de> 19402 19403 * tree-vectorizer.h (_slp_tree::two_operators): Remove. 19404 (_slp_tree::lane_permutation): New member. 19405 (_slp_tree::code): Likewise. 19406 (SLP_TREE_TWO_OPERATORS): Remove. 19407 (SLP_TREE_LANE_PERMUTATION): New. 19408 (SLP_TREE_CODE): Likewise. 19409 (vect_stmt_dominates_stmt_p): Declare. 19410 * tree-vectorizer.c (vect_stmt_dominates_stmt_p): New function. 19411 * tree-vect-stmts.c (vect_model_simple_cost): Remove 19412 SLP_TREE_TWO_OPERATORS handling. 19413 * tree-vect-slp.c (_slp_tree::_slp_tree): Amend. 19414 (_slp_tree::~_slp_tree): Likewise. 19415 (vect_two_operations_perm_ok_p): Remove. 19416 (vect_build_slp_tree_1): Remove verification of two-operator 19417 permutation here. 19418 (vect_build_slp_tree_2): When we have two different operators 19419 build two computation SLP nodes and a blend. 19420 (vect_print_slp_tree): Print the lane permutation if it exists. 19421 (slp_copy_subtree): Copy it. 19422 (vect_slp_rearrange_stmts): Re-arrange it. 19423 (vect_slp_analyze_node_operations_1): Handle SLP_TREE_CODE 19424 VEC_PERM_EXPR explicitely. 19425 (vect_schedule_slp_instance): Likewise. Remove old 19426 SLP_TREE_TWO_OPERATORS code. 19427 (vectorizable_slp_permutation): New function. 19428 194292020-06-18 Martin Liska <mliska@suse.cz> 19430 19431 * tree-vect-generic.c (expand_vector_condition): Check 19432 for gassign before inspecting RHS. 19433 194342020-06-17 Thomas Schwinge <thomas@codesourcery.com> 19435 19436 * gimplify.c (omp_notice_threadprivate_variable) 19437 (omp_default_clause, omp_notice_variable): 'inform' after 'error' 19438 diagnostic. Adjust all users. 19439 194402020-06-17 Thomas Schwinge <thomas@codesourcery.com> 19441 19442 * hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl == 19443 NULL_TREE' check earlier. 19444 194452020-06-17 Forrest Timour <forrest.timour@gmail.com> 19446 19447 * doc/extend.texi (attribute access): Fix a typo. 19448 194492020-06-17 Bin Cheng <bin.cheng@linux.alibaba.com> 19450 Kaipeng Zhou <zhoukaipeng3@huawei.com> 19451 19452 PR tree-optimization/95199 19453 * tree-vect-stmts.c: Eliminate common stmts for bump and offset in 19454 strided load/store operations and remove redundant code. 19455 194562020-06-17 Richard Sandiford <richard.sandiford@arm.com> 19457 19458 * coretypes.h (first_type): New alias template. 19459 * recog.h (insn_gen_fn::operator()): Use it instead of a decltype. 19460 Remove spurious “...” and split the function type out into a typedef. 19461 194622020-06-17 Andreas Krebbel <krebbel@linux.ibm.com> 19463 19464 * config/s390/s390.c (s390_fix_long_loop_prediction): Exit early 19465 for PARALLELs. 19466 194672020-06-17 Richard Biener <rguenther@suse.de> 19468 19469 * tree-vect-slp.c (vect_build_slp_tree_1): Set the passed 19470 in *vectype parameter. 19471 (vect_build_slp_tree_2): Set SLP_TREE_VECTYPE from what 19472 vect_build_slp_tree_1 computed. 19473 (vect_analyze_slp_instance): Set SLP_TREE_VECTYPE. 19474 (vect_slp_analyze_node_operations_1): Use the SLP node vector type. 19475 (vect_schedule_slp_instance): Likewise. 19476 * tree-vect-stmts.c (vect_is_simple_use): Take the vector type 19477 from SLP_TREE_VECTYPE. 19478 194792020-06-17 Richard Biener <rguenther@suse.de> 19480 19481 PR tree-optimization/95717 19482 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): 19483 Move BB SSA updating before exit/latch PHI current def copying. 19484 194852020-06-17 Martin Liska <mliska@suse.cz> 19486 19487 * Makefile.in: Add new file. 19488 * expr.c (expand_expr_real_2): Add gcc_unreachable as we should 19489 not meet this condition. 19490 (do_store_flag): Likewise. 19491 * gimplify.c (gimplify_expr): Gimplify first argument of 19492 VEC_COND_EXPR to be a SSA name. 19493 * internal-fn.c (vec_cond_mask_direct): New. 19494 (vec_cond_direct): Likewise. 19495 (vec_condu_direct): Likewise. 19496 (vec_condeq_direct): Likewise. 19497 (expand_vect_cond_optab_fn): New. 19498 (expand_vec_cond_optab_fn): Likewise. 19499 (expand_vec_condu_optab_fn): Likewise. 19500 (expand_vec_condeq_optab_fn): Likewise. 19501 (expand_vect_cond_mask_optab_fn): Likewise. 19502 (expand_vec_cond_mask_optab_fn): Likewise. 19503 (direct_vec_cond_mask_optab_supported_p): Likewise. 19504 (direct_vec_cond_optab_supported_p): Likewise. 19505 (direct_vec_condu_optab_supported_p): Likewise. 19506 (direct_vec_condeq_optab_supported_p): Likewise. 19507 * internal-fn.def (VCOND): New OPTAB. 19508 (VCONDU): Likewise. 19509 (VCONDEQ): Likewise. 19510 (VCOND_MASK): Likewise. 19511 * optabs.c (get_rtx_code): Make it global. 19512 (expand_vec_cond_mask_expr): Removed. 19513 (expand_vec_cond_expr): Removed. 19514 * optabs.h (expand_vec_cond_expr): Likewise. 19515 (vector_compare_rtx): Make it global. 19516 * passes.def: Add new pass_gimple_isel pass. 19517 * tree-cfg.c (verify_gimple_assign_ternary): Add check 19518 for VEC_COND_EXPR about first argument. 19519 * tree-pass.h (make_pass_gimple_isel): New. 19520 * tree-ssa-forwprop.c (pass_forwprop::execute): Prevent 19521 propagation of the first argument of a VEC_COND_EXPR. 19522 * tree-ssa-reassoc.c (ovce_extract_ops): Support SSA_NAME as 19523 first argument of a VEC_COND_EXPR. 19524 (optimize_vec_cond_expr): Likewise. 19525 * tree-vect-generic.c (expand_vector_divmod): Make SSA_NAME 19526 for a first argument of created VEC_COND_EXPR. 19527 (expand_vector_condition): Fix coding style. 19528 * tree-vect-stmts.c (vectorizable_condition): Gimplify 19529 first argument. 19530 * gimple-isel.cc: New file. 19531 195322020-06-17 Andrew Stubbs <ams@codesourcery.com> 19533 19534 * config/gcn/gcn-hsa.h (TEXT_SECTION_ASM_OP): Use ".text". 19535 (BSS_SECTION_ASM_OP): Use ".bss". 19536 (ASM_SPEC): Remove "-mattr=-code-object-v3". 19537 (LINK_SPEC): Add "--export-dynamic". 19538 * config/gcn/gcn-opts.h (processor_type): Replace PROCESSOR_VEGA with 19539 PROCESSOR_VEGA10 and PROCESSOR_VEGA20. 19540 * config/gcn/gcn-run.c (HSA_RUNTIME_LIB): Use ".so.1" variant. 19541 (load_image): Remove obsolete relocation handling. 19542 Add ".kd" suffix to the symbol names. 19543 * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT): Set to 62. 19544 (gcn_option_override): Update gcn_isa test. 19545 (gcn_kernel_arg_types): Update all the assembler directives. 19546 Remove the obsolete options. 19547 (gcn_conditional_register_usage): Update MAX_NORMAL_SGPR_COUNT usage. 19548 (gcn_omp_device_kind_arch_isa): Handle PROCESSOR_VEGA10 and 19549 PROCESSOR_VEGA20. 19550 (output_file_start): Rework assembler file header. 19551 (gcn_hsa_declare_function_name): Rework kernel metadata. 19552 * config/gcn/gcn.h (GCN_KERNEL_ARG_TYPES): Set to 16. 19553 * config/gcn/gcn.opt (PROCESSOR_VEGA): Remove enum. 19554 (PROCESSOR_VEGA10): New enum value. 19555 (PROCESSOR_VEGA20): New enum value. 19556 195572020-06-17 Martin Liska <mliska@suse.cz> 19558 19559 * gcov-dump.c (print_version): Collapse lisence header to 2 lines 19560 in --version. 19561 * gcov-tool.c (print_version): Likewise. 19562 * gcov.c (print_version): Likewise. 19563 195642020-06-17 liuhongt <hongtao.liu@intel.com> 19565 19566 PR target/95524 19567 * config/i386/i386-expand.c 19568 (ix86_expand_vec_shift_qihi_constant): New function. 19569 * config/i386/i386-protos.h 19570 (ix86_expand_vec_shift_qihi_constant): Declare. 19571 * config/i386/sse.md (<shift_insn><mode>3): Optimize shift 19572 V*QImode by constant. 19573 195742020-06-16 Aldy Hernandez <aldyh@redhat.com> 19575 19576 PR tree-optimization/95649 19577 * tree-ssa-propagate.c (propagate_into_phi_args): Do not propagate unless 19578 value is a constant. 19579 195802020-06-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 19581 19582 * config.in: Regenerate. 19583 * config/s390/s390.c (print_operand): Emit vector alignment hints 19584 for target z13, if AS accepts them. For other targets the logic 19585 stays the same. 19586 * config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define 19587 macro. 19588 * configure: Regenerate. 19589 * configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13. 19590 195912020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 19592 19593 * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Correct the intrinsic 19594 arguments. 19595 (__arm_vaddq_m_n_s32): Likewise. 19596 (__arm_vaddq_m_n_s16): Likewise. 19597 (__arm_vaddq_m_n_u8): Likewise. 19598 (__arm_vaddq_m_n_u32): Likewise. 19599 (__arm_vaddq_m_n_u16): Likewise. 19600 (__arm_vaddq_m): Modify polymorphic variant. 19601 196022020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 19603 19604 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Correct the predicate 19605 and constraint of all the operands. 19606 (mve_sqrshrl_sat<supf>_di): Likewise. 19607 (mve_uqrshl_si): Likewise. 19608 (mve_sqrshr_si): Likewise. 19609 (mve_uqshll_di): Likewise. 19610 (mve_urshrl_di): Likewise. 19611 (mve_uqshl_si): Likewise. 19612 (mve_urshr_si): Likewise. 19613 (mve_sqshl_si): Likewise. 19614 (mve_srshr_si): Likewise. 19615 (mve_srshrl_di): Likewise. 19616 (mve_sqshll_di): Likewise. 19617 * config/arm/predicates.md (arm_low_register_operand): Define. 19618 196192020-06-16 Jakub Jelinek <jakub@redhat.com> 19620 19621 * tree.h (OMP_FOR_NON_RECTANGULAR): Define. 19622 * gimplify.c (gimplify_omp_for): Diagnose schedule, ordered 19623 or dist_schedule clause on non-rectangular loops. Handle 19624 gimplification of non-rectangular lb/b expressions. When changing 19625 iteration variable, adjust also non-rectangular lb/b expressions 19626 referencing that. 19627 * omp-general.h (struct omp_for_data_loop): Add m1, m2 and outer 19628 members. 19629 (struct omp_for_data): Add non_rect member. 19630 * omp-general.c (omp_extract_for_data): Handle non-rectangular 19631 loops. Fill in non_rect, m1, m2 and outer. 19632 * omp-low.c (lower_omp_for): Handle non-rectangular lb/b expressions. 19633 * omp-expand.c (expand_omp_for): Emit sorry_at for unsupported 19634 non-rectangular loop cases and assert for cases that can't be 19635 non-rectangular. 19636 * tree-pretty-print.c (dump_mem_ref): Formatting fix. 19637 (dump_omp_loop_non_rect_expr): New function. 19638 (dump_generic_node): Handle non-rectangular OpenMP loops. 19639 * tree-pretty-print.h (dump_omp_loop_non_rect_expr): Declare. 19640 * gimple-pretty-print.c (dump_gimple_omp_for): Handle non-rectangular 19641 OpenMP loops. 19642 196432020-06-16 Richard Biener <rguenther@suse.de> 19644 19645 PR middle-end/95690 19646 * varasm.c (build_constant_desc): Remove set_mem_attributes call. 19647 196482020-06-16 Kito Cheng <kito.cheng@sifive.com> 19649 19650 PR target/95683 19651 * config/riscv/riscv.c (riscv_gpr_save_operation_p): Remove 19652 assertion and turn it into a early exit check. 19653 196542020-06-15 Eric Botcazou <ebotcazou@adacore.com> 19655 19656 * gimplify.c (gimplify_init_constructor) <AGGREGATE_TYPE>: Declare 19657 new ENSURE_SINGLE_ACCESS constant and move variables down. If it is 19658 true and all elements are zero, then always clear. Return GS_ERROR 19659 if a temporary would be created for it and NOTIFY_TEMP_CREATION set. 19660 (gimplify_modify_expr_rhs) <VAR_DECL>: If the target is volatile but 19661 the type is aggregate non-addressable, ask gimplify_init_constructor 19662 whether it can generate a single access to the target. 19663 196642020-06-15 Eric Botcazou <ebotcazou@adacore.com> 19665 19666 * tree-sra.c (propagate_subaccesses_from_rhs): When a non-scalar 19667 access on the LHS is replaced with a scalar access, propagate the 19668 TYPE_REVERSE_STORAGE_ORDER flag of the type of the original access. 19669 196702020-06-15 Max Filippov <jcmvbkbc@gmail.com> 19671 19672 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Remove 19673 TARGET_THREADPTR reference. 19674 (xtensa_tls_symbol_p, xtensa_tls_referenced_p): Use 19675 targetm.have_tls instead of TARGET_HAVE_TLS. 19676 (xtensa_option_override): Set targetm.have_tls to false in 19677 configurations without THREADPTR. 19678 196792020-06-15 Max Filippov <jcmvbkbc@gmail.com> 19680 19681 * config/xtensa/elf.h (ASM_SPEC, LINK_SPEC): Pass ABI switch to 19682 assembler/linker. 19683 * config/xtensa/linux.h (ASM_SPEC, LINK_SPEC): Ditto. 19684 * config/xtensa/uclinux.h (ASM_SPEC, LINK_SPEC): Ditto. 19685 * config/xtensa/xtensa.c (xtensa_option_override): Initialize 19686 xtensa_windowed_abi if needed. 19687 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI_DEFAULT): New 19688 macro. 19689 (TARGET_WINDOWED_ABI): Redefine to xtensa_windowed_abi. 19690 * config/xtensa/xtensa.opt (xtensa_windowed_abi): New target 19691 option variable. 19692 (mabi=call0, mabi=windowed): New options. 19693 * doc/invoke.texi: Document new -mabi= Xtensa-specific options. 19694 196952020-06-15 Max Filippov <jcmvbkbc@gmail.com> 19696 19697 * config/xtensa/xtensa.c (xtensa_can_eliminate): New function. 19698 (TARGET_CAN_ELIMINATE): New macro. 19699 * config/xtensa/xtensa.h 19700 (XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM) 19701 (XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM): New macros. 19702 (HARD_FRAME_POINTER_REGNUM): Define using 19703 XTENSA_*_HARD_FRAME_POINTER_REGNUM. 19704 (ELIMINABLE_REGS): Replace lines with HARD_FRAME_POINTER_REGNUM 19705 by lines with XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM and 19706 XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM. 19707 197082020-06-15 Felix Yang <felix.yang@huawei.com> 19709 19710 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Rename 19711 parameter to loop_vinfo and update uses. Use LOOP_VINFO_DATAREFS 19712 when possible. 19713 (vect_analyze_data_refs_alignment): Likewise, and use LOOP_VINFO_DDRS 19714 when possible. 19715 * tree-vect-loop.c (vect_dissolve_slp_only_groups): Use 19716 LOOP_VINFO_DATAREFS when possible. 19717 (update_epilogue_loop_vinfo): Likewise. 19718 197192020-06-15 Kito Cheng <kito.cheng@sifive.com> 19720 19721 * config/riscv/riscv.c (riscv_gen_gpr_save_insn): Change type to 19722 unsigned for i. 19723 (riscv_gpr_save_operation_p): Change type to unsigned for i and 19724 len. 19725 197262020-06-15 Hongtao Liu <hongtao.liu@intel.com> 19727 19728 PR target/95488 19729 * config/i386/i386-expand.c (ix86_expand_vecmul_qihi): New 19730 function. 19731 * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Declare. 19732 * config/i386/sse.md (mul<mode>3): Drop mask_name since 19733 there's no real simd int8 multiplication instruction with 19734 mask. Also optimize it under TARGET_AVX512BW. 19735 (mulv8qi3): New expander. 19736 197372020-06-12 Marco Elver <elver@google.com> 19738 19739 * gimplify.c (gimplify_function_tree): Optimize and do not emit 19740 IFN_TSAN_FUNC_EXIT in a finally block if we do not need it. 19741 * params.opt: Add --param=tsan-instrument-func-entry-exit=. 19742 * tsan.c (instrument_memory_accesses): Make 19743 fentry_exit_instrument bool depend on new param. 19744 197452020-06-12 Felix Yang <felix.yang@huawei.com> 19746 19747 PR tree-optimization/95570 19748 * tree-vect-data-refs.c (vect_relevant_for_alignment_p): New function. 19749 (vect_verify_datarefs_alignment): Call it to filter out data references 19750 in the loop whose alignment is irrelevant. 19751 (vect_get_peeling_costs_all_drs): Likewise. 19752 (vect_peeling_supportable): Likewise. 19753 (vect_enhance_data_refs_alignment): Likewise. 19754 197552020-06-12 Richard Biener <rguenther@suse.de> 19756 19757 PR tree-optimization/95633 19758 * tree-vect-stmts.c (vectorizable_condition): Properly 19759 guard the vec_else_clause access with EXTRACT_LAST_REDUCTION. 19760 197612020-06-12 Martin Liška <mliska@suse.cz> 19762 19763 * cgraphunit.c (process_symver_attribute): Wrap weakref keyword. 19764 * dbgcnt.c (dbg_cnt_set_limit_by_index): Do not print extra new 19765 line. 19766 * lto-wrapper.c (merge_and_complain): Wrap option names. 19767 197682020-06-12 Kewen Lin <linkw@gcc.gnu.org> 19769 19770 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Rename 19771 LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename 19772 LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE. 19773 (vect_set_loop_condition_masked): Renamed to ... 19774 (vect_set_loop_condition_partial_vectors): ... this. Rename 19775 LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename 19776 vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors. 19777 (vect_set_loop_condition_unmasked): Renamed to ... 19778 (vect_set_loop_condition_normal): ... this. 19779 (vect_set_loop_condition): Rename vect_set_loop_condition_unmasked to 19780 vect_set_loop_condition_normal. Rename vect_set_loop_condition_masked 19781 to vect_set_loop_condition_partial_vectors. 19782 (vect_prepare_for_masked_peels): Rename LOOP_VINFO_MASK_COMPARE_TYPE 19783 to LOOP_VINFO_RGROUP_COMPARE_TYPE. 19784 * tree-vect-loop.c (vect_known_niters_smaller_than_vf): New, factored 19785 out from ... 19786 (vect_analyze_loop_costing): ... this. 19787 (_loop_vec_info::_loop_vec_info): Rename mask_compare_type to 19788 compare_type. 19789 (vect_min_prec_for_max_niters): New, factored out from ... 19790 (vect_verify_full_masking): ... this. Rename 19791 vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors. 19792 Rename LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. 19793 Rename LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE. 19794 (vectorizable_reduction): Update some dumpings with partial 19795 vectors instead of fully-masked. 19796 (vectorizable_live_operation): Likewise. 19797 (vect_iv_limit_for_full_masking): Renamed to ... 19798 (vect_iv_limit_for_partial_vectors): ... this. 19799 * tree-vect-stmts.c (check_load_store_masking): Renamed to ... 19800 (check_load_store_for_partial_vectors): ... this. Update some 19801 dumpings with partial vectors instead of fully-masked. 19802 (vectorizable_store): Rename check_load_store_masking to 19803 check_load_store_for_partial_vectors. 19804 (vectorizable_load): Likewise. 19805 * tree-vectorizer.h (LOOP_VINFO_MASK_COMPARE_TYPE): Renamed to ... 19806 (LOOP_VINFO_RGROUP_COMPARE_TYPE): ... this. 19807 (LOOP_VINFO_MASK_IV_TYPE): Renamed to ... 19808 (LOOP_VINFO_RGROUP_IV_TYPE): ... this. 19809 (vect_iv_limit_for_full_masking): Renamed to ... 19810 (vect_iv_limit_for_partial_vectors): this. 19811 (_loop_vec_info): Rename mask_compare_type to rgroup_compare_type. 19812 Rename iv_type to rgroup_iv_type. 19813 198142020-06-12 Richard Sandiford <richard.sandiford@arm.com> 19815 19816 * recog.h (insn_gen_fn::f0, insn_gen_fn::f1, insn_gen_fn::f2) 19817 (insn_gen_fn::f3, insn_gen_fn::f4, insn_gen_fn::f5, insn_gen_fn::f6) 19818 (insn_gen_fn::f7, insn_gen_fn::f8, insn_gen_fn::f9, insn_gen_fn::f10) 19819 (insn_gen_fn::f11, insn_gen_fn::f12, insn_gen_fn::f13) 19820 (insn_gen_fn::f14, insn_gen_fn::f15, insn_gen_fn::f16): Delete. 19821 (insn_gen_fn::operator()): Replace overloaded definitions with 19822 a parameter-pack version. 19823 198242020-06-12 H.J. Lu <hjl.tools@gmail.com> 19825 19826 PR target/93492 19827 * config/i386/i386-features.c (rest_of_insert_endbranch): 19828 Renamed to ... 19829 (rest_of_insert_endbr_and_patchable_area): Change return type 19830 to void. Add need_endbr and patchable_area_size arguments. 19831 Don't call timevar_push nor timevar_pop. Replace 19832 endbr_queued_at_entrance with insn_queued_at_entrance. Insert 19833 UNSPECV_PATCHABLE_AREA for patchable area. 19834 (pass_data_insert_endbranch): Renamed to ... 19835 (pass_data_insert_endbr_and_patchable_area): This. Change 19836 pass name to endbr_and_patchable_area. 19837 (pass_insert_endbranch): Renamed to ... 19838 (pass_insert_endbr_and_patchable_area): This. Add need_endbr 19839 and patchable_area_size;. 19840 (pass_insert_endbr_and_patchable_area::gate): Set and check 19841 need_endbr and patchable_area_size. 19842 (pass_insert_endbr_and_patchable_area::execute): Call 19843 timevar_push and timevar_pop. Pass need_endbr and 19844 patchable_area_size to rest_of_insert_endbr_and_patchable_area. 19845 (make_pass_insert_endbranch): Renamed to ... 19846 (make_pass_insert_endbr_and_patchable_area): This. 19847 * config/i386/i386-passes.def: Replace pass_insert_endbranch 19848 with pass_insert_endbr_and_patchable_area. 19849 * config/i386/i386-protos.h (ix86_output_patchable_area): New. 19850 (make_pass_insert_endbranch): Renamed to ... 19851 (make_pass_insert_endbr_and_patchable_area): This. 19852 * config/i386/i386.c (ix86_asm_output_function_label): Set 19853 function_label_emitted to true. 19854 (ix86_print_patchable_function_entry): New function. 19855 (ix86_output_patchable_area): Likewise. 19856 (x86_function_profiler): Replace endbr_queued_at_entrance with 19857 insn_queued_at_entrance. Generate ENDBR only for TYPE_ENDBR. 19858 Call ix86_output_patchable_area to generate patchable area if 19859 needed. 19860 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): New. 19861 * config/i386/i386.h (queued_insn_type): New. 19862 (machine_function): Add function_label_emitted. Replace 19863 endbr_queued_at_entrance with insn_queued_at_entrance. 19864 * config/i386/i386.md (UNSPECV_PATCHABLE_AREA): New. 19865 (patchable_area): New. 19866 198672020-06-11 Martin Liska <mliska@suse.cz> 19868 19869 * config/rs6000/rs6000.c (rs6000_density_test): Fix GNU coding 19870 style. 19871 198722020-06-11 Martin Liska <mliska@suse.cz> 19873 19874 PR target/95627 19875 * config/rs6000/rs6000.c (rs6000_density_test): Skip debug 19876 statements. 19877 198782020-06-11 Martin Liska <mliska@suse.cz> 19879 Jakub Jelinek <jakub@redhat.com> 19880 19881 PR sanitizer/95634 19882 * asan.c (asan_emit_stack_protection): Fix emission for ilp32 19883 by using Pmode instead of ptr_mode. 19884 198852020-06-11 Kewen Lin <linkw@gcc.gnu.org> 19886 19887 * tree-vect-loop-manip.c (vect_set_loop_mask): Renamed to ... 19888 (vect_set_loop_control): ... this. 19889 (vect_maybe_permute_loop_masks): Rename rgroup_masks related things. 19890 (vect_set_loop_masks_directly): Renamed to ... 19891 (vect_set_loop_controls_directly): ... this. Also rename some 19892 variables with ctrl instead of mask. Rename vect_set_loop_mask to 19893 vect_set_loop_control. 19894 (vect_set_loop_condition_masked): Rename rgroup_masks related things. 19895 Also rename some variables with ctrl instead of mask. 19896 * tree-vect-loop.c (release_vec_loop_masks): Renamed to ... 19897 (release_vec_loop_controls): ... this. Rename rgroup_masks related 19898 things. 19899 (_loop_vec_info::~_loop_vec_info): Rename release_vec_loop_masks to 19900 release_vec_loop_controls. 19901 (can_produce_all_loop_masks_p): Rename rgroup_masks related things. 19902 (vect_get_max_nscalars_per_iter): Likewise. 19903 (vect_estimate_min_profitable_iters): Likewise. 19904 (vect_record_loop_mask): Likewise. 19905 (vect_get_loop_mask): Likewise. 19906 * tree-vectorizer.h (struct rgroup_masks): Renamed to ... 19907 (struct rgroup_controls): ... this. Also rename mask_type 19908 to type and rename masks to controls. 19909 199102020-06-11 Kewen Lin <linkw@gcc.gnu.org> 19911 19912 * tree-vect-loop-manip.c (vect_set_loop_condition): Rename 19913 LOOP_VINFO_FULLY_MASKED_P to LOOP_VINFO_USING_PARTIAL_VECTORS_P. 19914 (vect_gen_vector_loop_niters): Likewise. 19915 (vect_do_peeling): Likewise. 19916 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename 19917 fully_masked_p to using_partial_vectors_p. 19918 (vect_analyze_loop_costing): Rename LOOP_VINFO_FULLY_MASKED_P to 19919 LOOP_VINFO_USING_PARTIAL_VECTORS_P. 19920 (determine_peel_for_niter): Likewise. 19921 (vect_estimate_min_profitable_iters): Likewise. 19922 (vect_transform_loop): Likewise. 19923 * tree-vectorizer.h (LOOP_VINFO_FULLY_MASKED_P): Updated. 19924 (LOOP_VINFO_USING_PARTIAL_VECTORS_P): New macro. 19925 199262020-06-11 Kewen Lin <linkw@gcc.gnu.org> 19927 19928 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename 19929 can_fully_mask_p to can_use_partial_vectors_p. 19930 (vect_analyze_loop_2): Rename LOOP_VINFO_CAN_FULLY_MASK_P to 19931 LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P. Rename saved_can_fully_mask_p 19932 to saved_can_use_partial_vectors_p. 19933 (vectorizable_reduction): Rename LOOP_VINFO_CAN_FULLY_MASK_P to 19934 LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P. 19935 (vectorizable_live_operation): Likewise. 19936 * tree-vect-stmts.c (permute_vec_elements): Likewise. 19937 (check_load_store_masking): Likewise. 19938 (vectorizable_operation): Likewise. 19939 (vectorizable_store): Likewise. 19940 (vectorizable_load): Likewise. 19941 (vectorizable_condition): Likewise. 19942 * tree-vectorizer.h (LOOP_VINFO_CAN_FULLY_MASK_P): Renamed to ... 19943 (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P): ... this. 19944 (_loop_vec_info): Rename can_fully_mask_p to can_use_partial_vectors_p. 19945 199462020-06-11 Martin Liska <mliska@suse.cz> 19947 19948 * optc-save-gen.awk: Quote error string. 19949 199502020-06-11 Alexandre Oliva <oliva@adacore.com> 19951 19952 * print-rtl.c (print_mem_expr): Enable TDF_SLIM in dump_flags. 19953 199542020-06-11 Kito Cheng <kito.cheng@sifive.com> 19955 19956 * config/riscv/riscv-protos.h (riscv_output_gpr_save): Remove. 19957 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Update 19958 value. 19959 * config/riscv/riscv.c (riscv_output_gpr_save): Remove. 19960 * config/riscv/riscv.md (gpr_save): Update output asm pattern. 19961 199622020-06-11 Kito Cheng <kito.cheng@sifive.com> 19963 19964 * config/riscv/predicates.md (gpr_save_operation): New. 19965 * config/riscv/riscv-protos.h (riscv_gen_gpr_save_insn): New. 19966 (riscv_gpr_save_operation_p): Ditto. 19967 * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls): 19968 Ignore USEs for gpr_save patter. 19969 * config/riscv/riscv.c (gpr_save_reg_order): New. 19970 (riscv_expand_prologue): Use riscv_gen_gpr_save_insn to gen gpr_save. 19971 (riscv_gen_gpr_save_insn): New. 19972 (riscv_gpr_save_operation_p): Ditto. 19973 * config/riscv/riscv.md (S3_REGNUM): New. 19974 (S4_REGNUM): Ditto. 19975 (S5_REGNUM): Ditto. 19976 (S6_REGNUM): Ditto. 19977 (S7_REGNUM): Ditto. 19978 (S8_REGNUM): Ditto. 19979 (S9_REGNUM): Ditto. 19980 (S10_REGNUM): Ditto. 19981 (S11_REGNUM): Ditto. 19982 (gpr_save): Model USEs correctly. 19983 199842020-06-10 Martin Sebor <msebor@redhat.com> 19985 19986 PR middle-end/95353 19987 PR middle-end/92939 19988 * builtins.c (inform_access): New function. 19989 (check_access): Call it. Add argument. 19990 (addr_decl_size): Remove. 19991 (get_range): New function. 19992 (compute_objsize): New overload. Only use compute_builtin_object_size 19993 with raw memory function. 19994 (check_memop_access): Pass new argument to compute_objsize and 19995 check_access. 19996 (expand_builtin_memchr, expand_builtin_strcat): Same. 19997 (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same. 19998 (expand_builtin_stpncpy, check_strncat_sizes): Same. 19999 (expand_builtin_strncat, expand_builtin_strncpy): Same. 20000 (expand_builtin_memcmp): Same. 20001 * builtins.h (check_nul_terminated_array): Declare extern. 20002 (check_access): Add argument. 20003 (struct access_ref, struct access_data): New structs. 20004 * gimple-ssa-warn-restrict.c (clamp_offset): New helper. 20005 (builtin_access::overlap): Call it. 20006 * tree-object-size.c (decl_init_size): Declare extern. 20007 (addr_object_size): Correct offset computation. 20008 * tree-object-size.h (decl_init_size): Declare. 20009 * tree-ssa-strlen.c (handle_integral_assign): Remove a call 20010 to maybe_warn_overflow when assigning to an SSA_NAME. 20011 200122020-06-10 Richard Biener <rguenther@suse.de> 20013 20014 * tree-vect-loop.c (vect_determine_vectorization_factor): 20015 Skip debug stmts. 20016 (_loop_vec_info::_loop_vec_info): Likewise. 20017 (vect_update_vf_for_slp): Likewise. 20018 (vect_analyze_loop_operations): Likewise. 20019 (update_epilogue_loop_vinfo): Likewise. 20020 * tree-vect-patterns.c (vect_determine_precisions): Likewise. 20021 (vect_pattern_recog): Likewise. 20022 * tree-vect-slp.c (vect_detect_hybrid_slp): Likewise. 20023 (_bb_vec_info::_bb_vec_info): Likewise. 20024 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): 20025 Likewise. 20026 200272020-06-10 Richard Biener <rguenther@suse.de> 20028 20029 PR tree-optimization/95576 20030 * tree-vect-slp.c (vect_slp_bb): Skip leading debug stmts. 20031 200322020-06-10 Haijian Zhang <z.zhanghaijian@huawei.com> 20033 20034 PR target/95523 20035 * config/aarch64/aarch64-sve-builtins.h 20036 (sve_switcher::m_old_maximum_field_alignment): New member. 20037 * config/aarch64/aarch64-sve-builtins.cc 20038 (sve_switcher::sve_switcher): Save maximum_field_alignment in 20039 m_old_maximum_field_alignment and clear maximum_field_alignment. 20040 (sve_switcher::~sve_switcher): Restore maximum_field_alignment. 20041 200422020-06-10 Richard Biener <rguenther@suse.de> 20043 20044 * tree-vectorizer.h (_slp_tree::vec_stmts): Make it a vector 20045 of gimple * stmts. 20046 (_stmt_vec_info::vec_stmts): Likewise. 20047 (vec_info::stmt_vec_info_ro): New flag. 20048 (vect_finish_replace_stmt): Adjust declaration. 20049 (vect_finish_stmt_generation): Likewise. 20050 (vectorizable_induction): Likewise. 20051 (vect_transform_reduction): Likewise. 20052 (vectorizable_lc_phi): Likewise. 20053 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Do not 20054 allocate stmt infos for increments. 20055 (vect_record_grouped_load_vectors): Adjust. 20056 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. 20057 (vectorize_fold_left_reduction): Likewise. 20058 (vect_transform_reduction): Likewise. 20059 (vect_transform_cycle_phi): Likewise. 20060 (vectorizable_lc_phi): Likewise. 20061 (vectorizable_induction): Likewise. 20062 (vectorizable_live_operation): Likewise. 20063 (vect_transform_loop): Likewise. 20064 * tree-vect-patterns.c (vect_pattern_recog): Set stmt_vec_info_ro. 20065 * tree-vect-slp.c (vect_get_slp_vect_def): Adjust. 20066 (vect_get_slp_defs): Likewise. 20067 (vect_transform_slp_perm_load): Likewise. 20068 (vect_schedule_slp_instance): Likewise. 20069 (vectorize_slp_instance_root_stmt): Likewise. 20070 * tree-vect-stmts.c (vect_get_vec_defs_for_operand): Likewise. 20071 (vect_finish_stmt_generation_1): Do not allocate a stmt info. 20072 (vect_finish_replace_stmt): Do not return anything. 20073 (vect_finish_stmt_generation): Likewise. 20074 (vect_build_gather_load_calls): Adjust. 20075 (vectorizable_bswap): Likewise. 20076 (vectorizable_call): Likewise. 20077 (vectorizable_simd_clone_call): Likewise. 20078 (vect_create_vectorized_demotion_stmts): Likewise. 20079 (vectorizable_conversion): Likewise. 20080 (vectorizable_assignment): Likewise. 20081 (vectorizable_shift): Likewise. 20082 (vectorizable_operation): Likewise. 20083 (vectorizable_scan_store): Likewise. 20084 (vectorizable_store): Likewise. 20085 (vectorizable_load): Likewise. 20086 (vectorizable_condition): Likewise. 20087 (vectorizable_comparison): Likewise. 20088 (vect_transform_stmt): Likewise. 20089 * tree-vectorizer.c (vec_info::vec_info): Initialize 20090 stmt_vec_info_ro. 20091 (vec_info::replace_stmt): Copy over stmt UID rather than 20092 unsetting/setting a stmt info allocating a new UID. 20093 (vec_info::set_vinfo_for_stmt): Assert !stmt_vec_info_ro. 20094 200952020-06-10 Aldy Hernandez <aldyh@redhat.com> 20096 20097 * gimple-loop-versioning.cc (loop_versioning::name_prop::get_value): 20098 Add stmt parameter. 20099 * gimple-ssa-evrp.c (class evrp_folder): New. 20100 (class evrp_dom_walker): Remove. 20101 (execute_early_vrp): Use evrp_folder instead of evrp_dom_walker. 20102 * tree-ssa-ccp.c (ccp_folder::get_value): Add stmt parameter. 20103 * tree-ssa-copy.c (copy_folder::get_value): Same. 20104 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in): 20105 Pass stmt to get_value. 20106 (substitute_and_fold_engine::replace_phi_args_in): Same. 20107 (substitute_and_fold_dom_walker::after_dom_children): Call 20108 post_fold_bb. 20109 (substitute_and_fold_dom_walker::foreach_new_stmt_in_bb): New. 20110 (substitute_and_fold_dom_walker::propagate_into_phi_args): New. 20111 (substitute_and_fold_dom_walker::before_dom_children): Adjust to 20112 call virtual functions for folding, pre_folding, and post folding. 20113 Call get_value with PHI. Tweak dump. 20114 * tree-ssa-propagate.h (class substitute_and_fold_engine): 20115 New argument to get_value. 20116 New virtual function pre_fold_bb. 20117 New virtual function post_fold_bb. 20118 New virtual function pre_fold_stmt. 20119 New virtual function post_new_stmt. 20120 New function propagate_into_phi_args. 20121 * tree-vrp.c (vrp_folder::get_value): Add stmt argument. 20122 * vr-values.c (vr_values::extract_range_from_stmt): Adjust dump 20123 output. 20124 (vr_values::fold_cond): New. 20125 (vr_values::simplify_cond_using_ranges_1): Call fold_cond. 20126 * vr-values.h (class vr_values): Add 20127 simplify_cond_using_ranges_when_edge_is_known. 20128 201292020-06-10 Martin Liska <mliska@suse.cz> 20130 20131 PR sanitizer/94910 20132 * asan.c (asan_emit_stack_protection): Emit 20133 also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release 20134 a stack frame. 20135 201362020-06-10 Tamar Christina <tamar.christina@arm.com> 20137 20138 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Adjust costs for mul. 20139 201402020-06-10 Richard Biener <rguenther@suse.de> 20141 20142 * tree-vect-data-refs.c (vect_vfa_access_size): Adjust. 20143 (vect_record_grouped_load_vectors): Likewise. 20144 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. 20145 (vectorize_fold_left_reduction): Likewise. 20146 (vect_transform_reduction): Likewise. 20147 (vect_transform_cycle_phi): Likewise. 20148 (vectorizable_lc_phi): Likewise. 20149 (vectorizable_induction): Likewise. 20150 (vectorizable_live_operation): Likewise. 20151 (vect_transform_loop): Likewise. 20152 * tree-vect-slp.c (vect_get_slp_defs): New function, split out 20153 from overload. 20154 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Remove. 20155 (vect_get_vec_def_for_operand): Likewise. 20156 (vect_get_vec_def_for_stmt_copy): Likewise. 20157 (vect_get_vec_defs_for_stmt_copy): Likewise. 20158 (vect_get_vec_defs_for_operand): New function. 20159 (vect_get_vec_defs): Likewise. 20160 (vect_build_gather_load_calls): Adjust. 20161 (vect_get_gather_scatter_ops): Likewise. 20162 (vectorizable_bswap): Likewise. 20163 (vectorizable_call): Likewise. 20164 (vectorizable_simd_clone_call): Likewise. 20165 (vect_get_loop_based_defs): Remove. 20166 (vect_create_vectorized_demotion_stmts): Adjust. 20167 (vectorizable_conversion): Likewise. 20168 (vectorizable_assignment): Likewise. 20169 (vectorizable_shift): Likewise. 20170 (vectorizable_operation): Likewise. 20171 (vectorizable_scan_store): Likewise. 20172 (vectorizable_store): Likewise. 20173 (vectorizable_load): Likewise. 20174 (vectorizable_condition): Likewise. 20175 (vectorizable_comparison): Likewise. 20176 (vect_transform_stmt): Adjust and remove no longer applicable 20177 sanity checks. 20178 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize 20179 STMT_VINFO_VEC_STMTS. 20180 (vec_info::free_stmt_vec_info): Relase it. 20181 * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Remove. 20182 (_stmt_vec_info::vec_stmts): Add. 20183 (STMT_VINFO_VEC_STMT): Remove. 20184 (STMT_VINFO_VEC_STMTS): New. 20185 (vect_get_vec_def_for_operand_1): Remove. 20186 (vect_get_vec_def_for_operand): Likewise. 20187 (vect_get_vec_defs_for_stmt_copy): Likewise. 20188 (vect_get_vec_def_for_stmt_copy): Likewise. 20189 (vect_get_vec_defs): New overloads. 20190 (vect_get_vec_defs_for_operand): New. 20191 (vect_get_slp_defs): Declare. 20192 201932020-06-10 Qian Chao <qianchao9@huawei.com> 20194 20195 PR tree-optimization/95569 20196 * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE. 20197 201982020-06-10 Martin Liska <mliska@suse.cz> 20199 20200 PR tree-optimization/92860 20201 * optc-save-gen.awk: Generate new function cl_optimization_compare. 20202 * opth-gen.awk: Generate declaration of the function. 20203 202042020-06-09 Michael Meissner <meissner@linux.ibm.com> 20205 20206 * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate 20207 'future' PowerPC platform. 20208 (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1. 20209 (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA. 20210 * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and 20211 MMA HWCAP2 bits. 20212 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support. 20213 (rs6000_clone_map): Add 'future' system target_clones support. 20214 202152020-06-09 Michael Kuhn <gcc@ikkoku.de> 20216 20217 * Makefile.in (ZSTD_INC): Define. 20218 (ZSTD_LIB): Include ZSTD_LDFLAGS. 20219 (CFLAGS-lto-compress.o): Add ZSTD_INC. 20220 * configure.ac (ZSTD_CPPFLAGS, ZSTD_LDFLAGS): New variables for 20221 AC_SUBST. 20222 * configure: Rebuilt. 20223 202242020-06-09 Jason Merrill <jason@redhat.com> 20225 20226 PR c++/95552 20227 * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR. 20228 202292020-06-09 Marco Elver <elver@google.com> 20230 20231 * params.opt: Define --param=tsan-distinguish-volatile=[0,1]. 20232 * sanitizer.def (BUILT_IN_TSAN_VOLATILE_READ1): Define new 20233 builtin for volatile instrumentation of reads/writes. 20234 (BUILT_IN_TSAN_VOLATILE_READ2): Likewise. 20235 (BUILT_IN_TSAN_VOLATILE_READ4): Likewise. 20236 (BUILT_IN_TSAN_VOLATILE_READ8): Likewise. 20237 (BUILT_IN_TSAN_VOLATILE_READ16): Likewise. 20238 (BUILT_IN_TSAN_VOLATILE_WRITE1): Likewise. 20239 (BUILT_IN_TSAN_VOLATILE_WRITE2): Likewise. 20240 (BUILT_IN_TSAN_VOLATILE_WRITE4): Likewise. 20241 (BUILT_IN_TSAN_VOLATILE_WRITE8): Likewise. 20242 (BUILT_IN_TSAN_VOLATILE_WRITE16): Likewise. 20243 * tsan.c (get_memory_access_decl): Argument if access is 20244 volatile. If param tsan-distinguish-volatile is non-zero, and 20245 access if volatile, return volatile instrumentation decl. 20246 (instrument_expr): Check if access is volatile. 20247 202482020-06-09 Richard Biener <rguenther@suse.de> 20249 20250 * tree-vect-loop.c (vectorizable_induction): Remove dead code. 20251 202522020-06-09 Tobias Burnus <tobias@codesourcery.com> 20253 20254 * omp-offload.c (add_decls_addresses_to_decl_constructor, 20255 omp_finish_file): With in_lto_p, stream out all offload-table 20256 items even if the symtab_node does not exist. 20257 202582020-06-09 Richard Biener <rguenther@suse.de> 20259 20260 * tree-vect-stmts.c (vect_transform_stmt): Remove dead code. 20261 202622020-06-09 Martin Liska <mliska@suse.cz> 20263 20264 * gcov-dump.c (print_usage): Fix spacing for --raw option 20265 in --help. 20266 202672020-06-09 Martin Liska <mliska@suse.cz> 20268 20269 * cif-code.def (ATTRIBUTE_MISMATCH): Rename to... 20270 (SANITIZE_ATTRIBUTE_MISMATCH): ...this. 20271 * ipa-inline.c (sanitize_attrs_match_for_inline_p): 20272 Handle all sanitizer options. 20273 (can_inline_edge_p): Use renamed CIF_* enum value. 20274 202752020-06-09 Joe Ramsay <joe.ramsay@arm.com> 20276 20277 * config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for 20278 unpacked vectors. 20279 (@aarch64_pred_<optab><mode>): Add support for unpacked vectors. 20280 (@aarch64_bic<mode>): Enable unpacked BIC. 20281 (*bic<mode>3): Enable unpacked BIC. 20282 202832020-06-09 Martin Liska <mliska@suse.cz> 20284 20285 PR gcov-profile/95365 20286 * doc/gcov.texi: Compile and link one example in 2 steps. 20287 202882020-06-09 Jakub Jelinek <jakub@redhat.com> 20289 20290 PR tree-optimization/95527 20291 * match.pd (__builtin_ffs (X) cmp CST): New optimizations. 20292 202932020-06-09 Michael Meissner <meissner@linux.ibm.com> 20294 20295 * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate 20296 'future' PowerPC platform. 20297 (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1. 20298 (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA. 20299 * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and 20300 MMA HWCAP2 bits. 20301 * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support. 20302 (rs6000_clone_map): Add 'future' system target_clones support. 20303 203042020-06-08 Tobias Burnus <tobias@codesourcery.com> 20305 20306 PR lto/94848 20307 PR middle-end/95551 20308 * omp-offload.c (add_decls_addresses_to_decl_constructor, 20309 omp_finish_file): Skip removed items. 20310 * lto-cgraph.c (output_offload_tables): Likewise; set force_output 20311 to this node for variables and functions. 20312 203132020-06-08 Jason Merrill <jason@redhat.com> 20314 20315 * aclocal.m4: Remove ax_cxx_compile_stdcxx.m4. 20316 * configure.ac: Remove AX_CXX_COMPILE_STDCXX. 20317 * configure: Regenerate. 20318 203192020-06-08 Martin Sebor <msebor@redhat.com> 20320 20321 * postreload.c (reload_cse_simplify_operands): Clear first array element 20322 before using it. Assert a precondition. 20323 203242020-06-08 Jakub Jelinek <jakub@redhat.com> 20325 20326 PR target/95528 20327 * tree-ssa-forwprop.c (simplify_vector_constructor): Don't use 20328 VEC_UNPACK*_EXPR or VEC_PACK_TRUNC_EXPR with scalar modes unless the 20329 type is vector boolean. 20330 203312020-06-08 Tamar Christina <tamar.christina@arm.com> 20332 20333 * config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments. 20334 203352020-06-08 Christophe Lyon <christophe.lyon@linaro.org> 20336 20337 * config/arm/predicates.md (vfp_register_operand): Use VFP_HI_REGS 20338 instead of VFP_REGS. 20339 203402020-06-08 Martin Liska <mliska@suse.cz> 20341 20342 * config/rs6000/vector.md: Replace FAIL with gcc_unreachable 20343 in all vcond* patterns. 20344 203452020-06-08 Christophe Lyon <christophe.lyon@linaro.org> 20346 20347 * common/config/arm/arm-common.c (INCLUDE_ALGORITHM): 20348 Define. No longer include <algorithm>. 20349 203502020-06-07 Roger Sayle <roger@nextmovesoftware.com> 20351 20352 * config/i386/i386.md (paritydi2, paritysi2): Expand reduction 20353 via shift and xor to an USPEC PARITY matching a parityhi2_cmp. 20354 (paritydi2_cmp, paritysi2_cmp): Delete these define_insn_and_split. 20355 (parityhi2, parityqi2): New expanders. 20356 (parityhi2_cmp): Implement set parity flag with xorb insn. 20357 (parityqi2_cmp): Implement set parity flag with testb insn. 20358 New peephole2s to use these insns (UNSPEC PARITY) when appropriate. 20359 203602020-06-07 Jiufu Guo <guojiufu@linux.ibm.com> 20361 20362 PR target/95018 20363 * config/rs6000/rs6000.c (rs6000_option_override_internal): 20364 Override flag_cunroll_grow_size. 20365 203662020-06-07 Jiufu Guo <guojiufu@linux.ibm.com> 20367 20368 * common.opt (flag_cunroll_grow_size): New flag. 20369 * toplev.c (process_options): Set flag_cunroll_grow_size. 20370 * tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute): 20371 Use flag_cunroll_grow_size. 20372 203732020-06-06 Jan Hubicka <hubicka@ucw.cz> 20374 20375 PR lto/95548 20376 * ipa-devirt.c (struct odr_enum_val): Turn values to wide_int. 20377 (ipa_odr_summary_write): Update streaming. 20378 (ipa_odr_read_section): Update streaming. 20379 203802020-06-06 Alexandre Oliva <oliva@adacore.com> 20381 20382 PR driver/95456 20383 * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0). 20384 203852020-06-05 Thomas Schwinge <thomas@codesourcery.com> 20386 Julian Brown <julian@codesourcery.com> 20387 20388 * gimplify.c (gimplify_adjust_omp_clauses): Remove 20389 'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives. 20390 203912020-06-05 Richard Biener <rguenther@suse.de> 20392 20393 PR tree-optimization/95539 20394 * tree-vect-data-refs.c 20395 (vect_slp_analyze_and_verify_instance_alignment): Use 20396 SLP_TREE_REPRESENTATIVE for the data-ref check. 20397 * tree-vect-stmts.c (vectorizable_load): Reset stmt_info 20398 back to the first scalar stmt rather than the 20399 SLP_TREE_REPRESENTATIVE to match previous behavior. 20400 204012020-06-05 Felix Yang <felix.yang@huawei.com> 20402 20403 PR target/95254 20404 * expr.c (emit_move_insn): Check src and dest of the copy to see 20405 if one or both of them are subregs, try to remove the subregs when 20406 innermode and outermode are equal in size and the mode change involves 20407 an implicit round trip through memory. 20408 204092020-06-05 Jakub Jelinek <jakub@redhat.com> 20410 20411 PR target/95535 20412 * config/i386/i386.md (*ctzsi2_zext, *clzsi2_lzcnt_zext): New 20413 define_insn_and_split patterns. 20414 (*ctzsi2_zext_falsedep, *clzsi2_lzcnt_zext_falsedep): New 20415 define_insn patterns. 20416 204172020-06-05 Jonathan Wakely <jwakely@redhat.com> 20418 20419 * alloc-pool.h (object_allocator::remove_raw): New. 20420 * tree-ssa-math-opts.c (struct occurrence): Use NSMDI. 20421 (occurrence::occurrence): Add. 20422 (occurrence::~occurrence): Likewise. 20423 (occurrence::new): Likewise. 20424 (occurrence::delete): Likewise. 20425 (occ_new): Remove. 20426 (insert_bb): Use new occurence (...) instead of occ_new. 20427 (register_division_in): Likewise. 20428 (free_bb): Use delete occ instead of manually removing 20429 from the pool. 20430 204312020-06-05 Richard Biener <rguenther@suse.de> 20432 20433 PR middle-end/95493 20434 * cfgexpand.c (expand_debug_expr): Avoid calling 20435 set_mem_attributes_minus_bitpos when we were expanding 20436 an SSA name. 20437 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove 20438 ARRAY_REF special-casing, add CONSTRUCTOR to the set of 20439 special-cases we do not want MEM_EXPRs for. Assert 20440 we end up with reasonable MEM_EXPRs. 20441 204422020-06-05 Lili Cui <lili.cui@intel.com> 20443 20444 PR target/95525 20445 * config/i386/i386.h (PTA_WAITPKG): Change bitmask value. 20446 204472020-06-04 Martin Sebor <msebor@redhat.com> 20448 20449 PR middle-end/10138 20450 PR middle-end/95136 20451 * attribs.c (init_attr_rdwr_indices): Move function here. 20452 * attribs.h (rdwr_access_hash, rdwr_map): Define. 20453 (attr_access): Add 'none'. 20454 (init_attr_rdwr_indices): Declared function. 20455 * builtins.c (warn_for_access)): New function. 20456 (check_access): Call it. 20457 * builtins.h (checK-access): Add an optional argument. 20458 * calls.c (rdwr_access_hash, rdwr_map): Move to attribs.h. 20459 (init_attr_rdwr_indices): Declare extern. 20460 (append_attrname): Handle attr_access::none. 20461 (maybe_warn_rdwr_sizes): Same. 20462 (initialize_argument_information): Update comments. 20463 * doc/extend.texi (attribute access): Document 'none'. 20464 * tree-ssa-uninit.c (struct wlimits): New. 20465 (maybe_warn_operand): New function. 20466 (maybe_warn_pass_by_reference): Same. 20467 (warn_uninitialized_vars): Refactor code into maybe_warn_operand. 20468 Also call for function calls. 20469 (pass_late_warn_uninitialized::execute): Adjust comments. 20470 (execute_early_warn_uninitialized): Same. 20471 204722020-06-04 Vladimir Makarov <vmakarov@redhat.com> 20473 20474 PR middle-end/95464 20475 * lra.c (lra_emit_move): Add processing STRICT_LOW_PART. 20476 * lra-constraints.c (match_reload): Use STRICT_LOW_PART in output 20477 reload if the original insn has it too. 20478 204792020-06-04 Richard Biener <rguenther@suse.de> 20480 20481 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): 20482 Ensure that tmp_ha is marked TREE_ADDRESSABLE. 20483 204842020-06-04 Martin Jambor <mjambor@suse.cz> 20485 20486 PR ipa/95113 20487 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move non-call 20488 exceptions check to... 20489 * tree-eh.c (stmt_unremovable_because_of_non_call_eh_p): ...this 20490 new function. 20491 * tree-eh.h (stmt_unremovable_because_of_non_call_eh_p): Declare it. 20492 * ipa-sra.c (isra_track_scalar_value_uses): Use it. New parameter 20493 fun. 20494 204952020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 20496 20497 PR target/94735 20498 * config/arm/predicates.md (mve_scatter_memory): Define to 20499 match (mem (reg)) for scatter store memory. 20500 * config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>): Modify 20501 define_insn to define_expand. 20502 (mve_vstrbq_scatter_offset_p_<supf><mode>): Likewise. 20503 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise. 20504 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise. 20505 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise. 20506 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise. 20507 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise. 20508 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise. 20509 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise. 20510 (mve_vstrhq_scatter_offset_fv8hf): Likewise. 20511 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise. 20512 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise. 20513 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise. 20514 (mve_vstrwq_scatter_offset_fv4sf): Likewise. 20515 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise. 20516 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise. 20517 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise. 20518 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise. 20519 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise. 20520 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise. 20521 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise. 20522 (mve_vstrbq_scatter_offset_<supf><mode>_insn): Define insn for scatter 20523 stores. 20524 (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise. 20525 (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise. 20526 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise. 20527 (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise. 20528 (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise. 20529 (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise. 20530 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise. 20531 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise. 20532 (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise. 20533 (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise. 20534 (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise. 20535 (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise. 20536 (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise. 20537 (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise. 20538 (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise. 20539 (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise. 20540 (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise. 20541 (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise. 20542 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise. 20543 (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise. 20544 205452020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 20546 20547 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Correct the intrinsic 20548 arguments. 20549 (__arm_vbicq_n_s16): Likewise. 20550 (__arm_vbicq_n_u32): Likewise. 20551 (__arm_vbicq_n_s32): Likewise. 20552 (__arm_vbicq): Modify polymorphic variant. 20553 205542020-06-04 Richard Biener <rguenther@suse.de> 20555 20556 * tree-vectorizer.h (vect_get_slp_vect_def): Declare. 20557 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it. 20558 * tree-vect-stmts.c (vect_transform_stmt): Likewise. 20559 (vect_is_simple_use): Use SLP_TREE_REPRESENTATIVE. 20560 * tree-vect-slp.c (vect_get_slp_vect_defs): Fold into single 20561 use ... 20562 (vect_get_slp_defs): ... here. 20563 (vect_get_slp_vect_def): New function. 20564 205652020-06-04 Richard Biener <rguenther@suse.de> 20566 20567 * tree-vectorizer.h (_slp_tree::lanes): New. 20568 (SLP_TREE_LANES): Likewise. 20569 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it. 20570 (vectorizable_reduction): Likewise. 20571 (vect_transform_cycle_phi): Likewise. 20572 (vectorizable_induction): Likewise. 20573 (vectorizable_live_operation): Likewise. 20574 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize lanes. 20575 (vect_create_new_slp_node): Likewise. 20576 (slp_copy_subtree): Copy it. 20577 (vect_optimize_slp): Use it. 20578 (vect_slp_analyze_node_operations_1): Likewise. 20579 (vect_slp_convert_to_external): Likewise. 20580 (vect_bb_vectorization_profitable_p): Likewise. 20581 * tree-vect-stmts.c (vectorizable_load): Likewise. 20582 (get_vectype_for_scalar_type): Likewise. 20583 205842020-06-04 Richard Biener <rguenther@suse.de> 20585 20586 * tree-vect-slp.c (vect_update_all_shared_vectypes): Remove. 20587 (vect_build_slp_tree_2): Simplify building all external op 20588 nodes from scalars. 20589 (vect_slp_analyze_node_operations): Remove push/pop of 20590 STMT_VINFO_DEF_TYPE. 20591 (vect_schedule_slp_instance): Likewise. 20592 * tree-vect-stmts.c (ect_check_store_rhs): Pass in the 20593 stmt_info, use the vect_is_simple_use overload combining 20594 SLP and stmt_info analysis. 20595 (vect_is_simple_cond): Likewise. 20596 (vectorizable_store): Adjust. 20597 (vectorizable_condition): Likewise. 20598 (vect_is_simple_use): Fully handle invariant SLP nodes 20599 here. Amend stmt_info operand extraction with COND_EXPR 20600 and masked stores. 20601 * tree-vect-loop.c (vectorizable_reduction): Deal with 20602 COND_EXPR representation ugliness. 20603 206042020-06-04 Hongtao Liu <hongtao.liu@inte.com> 20605 20606 PR target/95254 20607 * config/i386/sse.md (*vcvtps2ph_store<merge_mask_name>): 20608 Refine from *vcvtps2ph_store<mask_name>. 20609 (vcvtps2ph256<mask_name>): Refine constraint from vm to v. 20610 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto. 20611 (*vcvtps2ph256<merge_mask_name>): New define_insn. 20612 (*avx512f_vcvtps2ph512<merge_mask_name>): Ditto. 20613 * config/i386/subst.md (merge_mask): New define_subst. 20614 (merge_mask_name): New define_subst_attr. 20615 (merge_mask_operand3): Ditto. 20616 206172020-06-04 Hao Liu <hliu@os.amperecomputing.com> 20618 20619 PR tree-optimization/89430 20620 * tree-ssa-phiopt.c 20621 (struct name_to_bb): Rename to ref_to_bb; add a new field exp; 20622 remove ssa_name_ver, store, offset fields. 20623 (struct ssa_names_hasher): Rename to refs_hasher; update functions. 20624 (class nontrapping_dom_walker): Rename m_seen_ssa_names to m_seen_refs. 20625 (nontrapping_dom_walker::add_or_mark_expr): Extend to support ARRAY_REFs 20626 and COMPONENT_REFs. 20627 206282020-06-04 Andreas Schwab <schwab@suse.de> 20629 20630 PR target/95154 20631 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Call assemble_external. 20632 206332020-06-04 Hongtao.liu <hongtao.liu@intel.com> 20634 20635 * config/i386/sse.md (pmov_dst_3_lower): New mode attribute. 20636 (trunc<mode><pmov_dst_3_lower>2): Refine from 20637 trunc<mode><pmov_dst_3>2. 20638 206392020-06-03 Vitor Guidi <vitor.guidi@usp.br> 20640 20641 * match.pd (tanh/sinh -> 1/cosh): New simplification. 20642 206432020-06-03 Aaron Sawdey <acsawdey@linux.ibm.com> 20644 20645 PR target/95347 20646 * config/rs6000/rs6000.c (is_stfs_insn): Rename to 20647 is_lfs_stfs_insn and make it recognize lfs as well. 20648 (prefixed_store_p): Use is_lfs_stfs_insn(). 20649 (prefixed_load_p): Use is_lfs_stfs_insn() to recognize lfs. 20650 206512020-06-03 Jan Hubicka <hubicka@ucw.cz> 20652 20653 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and 20654 streamer-hooks.h. 20655 (odr_enums): New static var. 20656 (struct odr_enum_val): New struct. 20657 (class odr_enum): New struct. 20658 (odr_enum_map): New hashtable. 20659 (odr_types_equivalent_p): Drop code testing TYPE_VALUES. 20660 (add_type_duplicate): Likewise. 20661 (free_odr_warning_data): Do not free TYPE_VALUES. 20662 (register_odr_enum): New function. 20663 (ipa_odr_summary_write): New function. 20664 (ipa_odr_read_section): New function. 20665 (ipa_odr_summary_read): New function. 20666 (class pass_ipa_odr): New pass. 20667 (make_pass_ipa_odr): New function. 20668 * ipa-utils.h (register_odr_enum): Declare. 20669 * lto-section-in.c: (lto_section_name): Add odr_types section. 20670 * lto-streamer.h (enum lto_section_type): Add odr_types section. 20671 * passes.def: Add odr_types pass. 20672 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream 20673 TYPE_VALUES. 20674 (hash_tree): Likewise. 20675 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): 20676 Likewise. 20677 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): 20678 Likewise. 20679 * timevar.def (TV_IPA_ODR): New timervar. 20680 * tree-pass.h (make_pass_ipa_odr): Declare. 20681 * tree.c (free_lang_data_in_type): Regiser ODR types. 20682 206832020-06-03 Romain Naour <romain.naour@gmail.com> 20684 20685 * Makefile.in (SELFTEST_DEPS): Move before including language makefile 20686 fragments. 20687 206882020-06-03 Richard Biener <rguenther@suse.de> 20689 20690 PR tree-optimization/95487 20691 * tree-vect-stmts.c (vectorizable_store): Use a truth type 20692 for the scatter mask. 20693 206942020-06-03 Richard Biener <rguenther@suse.de> 20695 20696 PR tree-optimization/95495 20697 * tree-vect-slp.c (vect_slp_analyze_node_operations): Use 20698 SLP_TREE_REPRESENTATIVE in the shift assertion. 20699 207002020-06-03 Tom Tromey <tromey@adacore.com> 20701 20702 * spellcheck.c (CASE_COST): New define. 20703 (BASE_COST): New define. 20704 (get_edit_distance): Recognize case changes. 20705 (get_edit_distance_cutoff): Update. 20706 (test_edit_distances): Update. 20707 (get_old_cutoff): Update. 20708 (test_find_closest_string): Add case sensitivity test. 20709 207102020-06-03 Richard Biener <rguenther@suse.de> 20711 20712 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Loop over 20713 the cost vector to unset the visited flag on stmts. 20714 207152020-06-03 Tobias Burnus <tobias@codesourcery.com> 20716 20717 * gimplify.c (omp_notice_variable): Use new hook. 20718 * langhooks-def.h (lhd_omp_predetermined_mapping): Declare. 20719 (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Define 20720 (LANG_HOOKS_DECLS): Add it. 20721 * langhooks.c (lhd_omp_predetermined_sharing): Remove bogus unused attr. 20722 (lhd_omp_predetermined_mapping): New. 20723 * langhooks.h (struct lang_hooks_for_decls): Add new hook. 20724 207252020-06-03 Jan Hubicka <jh@suse.cz> 20726 20727 * lto-streamer.h (LTO_tags): Reorder so frequent tags has small indexes; 20728 add LTO_first_tree_tag and LTO_first_gimple_tag. 20729 (lto_tag_is_tree_code_p): Update. 20730 (lto_tag_is_gimple_code_p): Update. 20731 (lto_gimple_code_to_tag): Update. 20732 (lto_tag_to_gimple_code): Update. 20733 (lto_tree_code_to_tag): Update. 20734 (lto_tag_to_tree_code): Update. 20735 207362020-06-02 Felix Yang <felix.yang@huawei.com> 20737 20738 PR target/95459 20739 * config/aarch64/aarch64.c (aarch64_short_vector_p): 20740 Leave later code to report an error if SVE is disabled. 20741 207422020-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 20743 20744 * config/aarch64/aarch64-cores.def (zeus): Define. 20745 * config/aarch64/aarch64-tune.md: Regenerate. 20746 * doc/invoke.texi (AArch64 Options): Document zeus -mcpu option. 20747 207482020-06-02 Aaron Sawdey <acsawdey@linux.ibm.com> 20749 20750 PR target/95347 20751 * config/rs6000/rs6000.c (prefixed_store_p): Add special case 20752 for stfs. 20753 (is_stfs_insn): New helper function. 20754 207552020-06-02 Jan Hubicka <jh@suse.cz> 20756 20757 * lto-streamer-in.c (stream_read_tree_ref): Simplify streaming of 20758 references. 20759 * lto-streamer-out.c (stream_write_tree_ref): Likewise. 20760 207612020-06-02 Andrew Stubbs <ams@codesourcery.com> 20762 20763 * config/gcn/gcn-hsa.h (CC1_SPEC): Delete. 20764 * config/gcn/gcn.opt (-mlocal-symbol-id): Delete. 20765 * config/gcn/mkoffload.c (main): Don't use -mlocal-symbol-id. 20766 207672020-06-02 Eric Botcazou <ebotcazou@adacore.com> 20768 20769 PR middle-end/95395 20770 * optabs.c (expand_unop): Fix bits/bytes confusion in latest change. 20771 * tree-pretty-print.c (dump_generic_node) <ARRAY_TYPE>: Print quals. 20772 207732020-06-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 20774 20775 * config/s390/s390.c (print_operand): Emit vector alignment 20776 hints for z13. 20777 207782020-06-02 Martin Liska <mliska@suse.cz> 20779 20780 * coverage.c (get_coverage_counts): Skip sanity check for TOP N counters 20781 as they have variable number of counters. 20782 * gcov-dump.c (main): Add new option -r. 20783 (print_usage): Likewise. 20784 (tag_counters): All new raw format. 20785 * gcov-io.h (struct gcov_kvp): New. 20786 (GCOV_TOPN_VALUES): Remove. 20787 (GCOV_TOPN_VALUES_COUNTERS): Likewise. 20788 (GCOV_TOPN_MEM_COUNTERS): New. 20789 (GCOV_TOPN_DISK_COUNTERS): Likewise. 20790 (GCOV_TOPN_MAXIMUM_TRACKED_VALUES): Likewise. 20791 * ipa-profile.c (ipa_profile_generate_summary): Use 20792 GCOV_TOPN_MAXIMUM_TRACKED_VALUES. 20793 (ipa_profile_write_edge_summary): Likewise. 20794 (ipa_profile_read_edge_summary): Likewise. 20795 (ipa_profile): Remove usage of GCOV_TOPN_VALUES. 20796 * profile.c (sort_hist_values): Sort variable number 20797 of counters. 20798 (compute_value_histograms): Special case for TOP N counters 20799 that have dynamic number of key-value pairs. 20800 * value-prof.c (dump_histogram_value): Dump variable number 20801 of key-value pairs. 20802 (stream_in_histogram_value): Stream in variable number 20803 of key-value pairs for TOP N counter. 20804 (get_nth_most_common_value): Deal with variable number 20805 of key-value pairs. 20806 (dump_ic_profile): Use GCOV_TOPN_MAXIMUM_TRACKED_VALUES 20807 for loop iteration. 20808 (gimple_find_values_to_profile): Set GCOV_TOPN_MEM_COUNTERS 20809 to n_counters. 20810 * doc/gcov-dump.texi: Document new -r option. 20811 208122020-06-02 Iain Buclaw <ibuclaw@gdcproject.org> 20813 20814 PR target/95420 20815 * config.gcc (arm-wrs-vxworks7*): Set default cpu to generic-armv7-a. 20816 208172020-06-01 Jeff Law <law@torsion.usersys.redhat.com> 20818 20819 * lower-subreg.c (resolve_simple_move): If simplify_gen_subreg_concatn 20820 returns (const_int 0) for the destination, then emit nothing. 20821 208222020-06-01 Jan Hubicka <hubicka@ucw.cz> 20823 20824 * lto-streamer.h (enum LTO_tags): Remove LTO_field_decl_ref, 20825 LTO_function_decl_ref, LTO_label_decl_ref, LTO_namespace_decl_ref, 20826 LTO_result_decl_ref, LTO_type_decl_ref, LTO_type_ref, 20827 LTO_const_decl_ref, LTO_imported_decl_ref, 20828 LTO_translation_unit_decl_ref, LTO_global_decl_ref and 20829 LTO_namelist_decl_ref; add LTO_global_stream_ref. 20830 * lto-streamer-in.c (lto_input_tree_ref): Simplify. 20831 (lto_input_scc): Update. 20832 (lto_input_tree_1): Update. 20833 * lto-streamer-out.c (lto_indexable_tree_ref): Simlify. 20834 * lto-streamer.c (lto_tag_name): Update. 20835 208362020-06-01 Jan Hubicka <hubicka@ucw.cz> 20837 20838 * ipa-reference.c (stream_out_bitmap): Use lto_output_var_decl_ref. 20839 (ipa_reference_read_optimization_summary): Use lto_intput_var_decl_ref. 20840 * lto-cgraph.c (lto_output_node): Likewise. 20841 (lto_output_varpool_node): Likewise. 20842 (output_offload_tables): Likewise. 20843 (input_node): Likewise. 20844 (input_varpool_node): Likewise. 20845 (input_offload_tables): Likewise. 20846 * lto-streamer-in.c (lto_input_tree_ref): Declare. 20847 (lto_input_var_decl_ref): Declare. 20848 (lto_input_fn_decl_ref): Declare. 20849 * lto-streamer-out.c (lto_indexable_tree_ref): Use only one decl stream. 20850 (lto_output_var_decl_index): Rename to .. 20851 (lto_output_var_decl_ref): ... this. 20852 (lto_output_fn_decl_index): Rename to ... 20853 (lto_output_fn_decl_ref): ... this. 20854 * lto-streamer.h (enum lto_decl_stream_e_t): Remove per-type streams. 20855 (DEFINE_DECL_STREAM_FUNCS): Remove. 20856 (lto_output_var_decl_index): Remove. 20857 (lto_output_fn_decl_index): Remove. 20858 (lto_output_var_decl_ref): Declare. 20859 (lto_output_fn_decl_ref): Declare. 20860 (lto_input_var_decl_ref): Declare. 20861 (lto_input_fn_decl_ref): Declare. 20862 208632020-06-01 Feng Xue <fxue@os.amperecomputing.com> 20864 20865 * cgraphclones.c (materialize_all_clones): Adjust replace map dump. 20866 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Do not 20867 dump infomation if there is no adjusted parameter. 20868 * (ipa_param_adjustments::dump): Adjust prefix spaces for dump string. 20869 208702020-06-01 Aldy Hernandez <aldyh@redhat.com> 20871 20872 * Makefile.in (gimple-array-bounds.o): New. 20873 * tree-vrp.c: Move array bounds code... 20874 * gimple-array-bounds.cc: ...here... 20875 * gimple-array-bounds.h: ...and here. 20876 208772020-06-01 Aldy Hernandez <aldyh@redhat.com> 20878 20879 * Makefile.in (OBJS): Add value-range-equiv.o. 20880 * tree-vrp.c (*value_range_equiv*): Move to... 20881 * value-range-equiv.cc: ...here. 20882 * tree-vrp.h (class value_range_equiv): Move to... 20883 * value-range-equiv.h: ...here. 20884 * vr-values.h: Include value-range-equiv.h. 20885 208862020-06-01 Feng Xue <fxue@os.amperecomputing.com> 20887 20888 PR ipa/93429 20889 * ipa-cp.c (propagate_aggs_across_jump_function): Check aggregate 20890 lattice for simple pass-through by-ref argument. 20891 208922020-05-31 Jeff Law <law@redhat.com> 20893 20894 * lra.c (add_auto_inc_notes): Remove function. 20895 * reload1.c (add_auto_inc_notes): Similarly. Move into... 20896 * rtlanal.c (add_auto_inc_notes): New function. 20897 * rtl.h (add_auto_inc_notes): Add prototype. 20898 * recog.c (peep2_attempt): Scan and add REG_INC notes to new insns 20899 as needed. 20900 209012020-05-31 Jan Hubicka <jh@suse.cz> 20902 20903 * lto-section-out.c (lto_output_decl_index): Remove. 20904 (lto_output_field_decl_index): Move to lto-streamer-out.c 20905 (lto_output_fn_decl_index): Move to lto-streamer-out.c 20906 (lto_output_namespace_decl_index): Remove. 20907 (lto_output_var_decl_index): Remove. 20908 (lto_output_type_decl_index): Remove. 20909 (lto_output_type_ref_index): Remove. 20910 * lto-streamer-out.c (output_type_ref): Remove. 20911 (lto_get_index): New function. 20912 (lto_output_tree_ref): Remove. 20913 (lto_indexable_tree_ref): New function. 20914 (lto_output_var_decl_index): Move here from lto-section-out.c; simplify. 20915 (lto_output_fn_decl_index): Move here from lto-section-out.c; simplify. 20916 (stream_write_tree_ref): Update. 20917 (lto_output_tree): Update. 20918 * lto-streamer.h (lto_output_decl_index): Remove prototype. 20919 (lto_output_field_decl_index): Remove prototype. 20920 (lto_output_namespace_decl_index): Remove prototype. 20921 (lto_output_type_decl_index): Remove prototype. 20922 (lto_output_type_ref_index): Remove prototype. 20923 (lto_output_var_decl_index): Move. 20924 (lto_output_fn_decl_index): Move 20925 209262020-05-31 Jakub Jelinek <jakub@redhat.com> 20927 20928 PR middle-end/95052 20929 * expr.c (store_expr): For shortedned_string_cst, ensure temp has 20930 BLKmode. 20931 209322020-05-31 Jeff Law <law@redhat.com> 20933 20934 * config/h8300/jumpcall.md (brabs, brabc): Disable patterns. 20935 209362020-05-31 Jim Wilson <jimw@sifive.com> 20937 20938 * config/riscv/riscv.md (zero_extendsidi2_shifted): New. 20939 209402020-05-30 Jonathan Yong <10walls@gmail.com> 20941 20942 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Insert -lkernel32 20943 after -lmsvcrt. This is necessary as libmsvcrt.a is not a pure 20944 import library, but also contains some functions that invoke 20945 others in KERNEL32.DLL. 20946 209472020-05-29 Segher Boessenkool <segher@kernel.crashing.org> 20948 20949 * config/rs6000/altivec.md (altivec_vmrghw_direct): Prefer VSX form. 20950 (altivec_vmrglw_direct): Ditto. 20951 (altivec_vperm_<mode>_direct): Ditto. 20952 (altivec_vperm_v8hiv16qi): Ditto. 20953 (*altivec_vperm_<mode>_uns_internal): Ditto. 20954 (*altivec_vpermr_<mode>_internal): Ditto. 20955 (vperm_v8hiv4si): Ditto. 20956 (vperm_v16qiv8hi): Ditto. 20957 209582020-05-29 Jan Hubicka <jh@suse.cz> 20959 20960 * lto-streamer-in.c (streamer_read_chain): Move here from 20961 tree-streamer-in.c. 20962 (stream_read_tree_ref): New. 20963 (lto_input_tree_1): Simplify. 20964 * lto-streamer-out.c (stream_write_tree_ref): New. 20965 (lto_write_tree_1): Simplify. 20966 (lto_output_tree_1): Simplify. 20967 (DFS::DFS_write_tree): Simplify. 20968 (streamer_write_chain): Move here from tree-stremaer-out.c. 20969 * lto-streamer.h (lto_output_tree_ref): Update prototype. 20970 (stream_read_tree_ref): Declare 20971 (stream_write_tree_ref): Declare 20972 * tree-streamer-in.c (streamer_read_chain): Update to use 20973 stream_read_tree_ref. 20974 (lto_input_ts_common_tree_pointers): Likewise. 20975 (lto_input_ts_vector_tree_pointers): Likewise. 20976 (lto_input_ts_poly_tree_pointers): Likewise. 20977 (lto_input_ts_complex_tree_pointers): Likewise. 20978 (lto_input_ts_decl_minimal_tree_pointers): Likewise. 20979 (lto_input_ts_decl_common_tree_pointers): Likewise. 20980 (lto_input_ts_decl_with_vis_tree_pointers): Likewise. 20981 (lto_input_ts_field_decl_tree_pointers): Likewise. 20982 (lto_input_ts_function_decl_tree_pointers): Likewise. 20983 (lto_input_ts_type_common_tree_pointers): Likewise. 20984 (lto_input_ts_type_non_common_tree_pointers): Likewise. 20985 (lto_input_ts_list_tree_pointers): Likewise. 20986 (lto_input_ts_vec_tree_pointers): Likewise. 20987 (lto_input_ts_exp_tree_pointers): Likewise. 20988 (lto_input_ts_block_tree_pointers): Likewise. 20989 (lto_input_ts_binfo_tree_pointers): Likewise. 20990 (lto_input_ts_constructor_tree_pointers): Likewise. 20991 (lto_input_ts_omp_clause_tree_pointers): Likewise. 20992 * tree-streamer-out.c (streamer_write_chain): Update to use 20993 stream_write_tree_ref. 20994 (write_ts_common_tree_pointers): Likewise. 20995 (write_ts_vector_tree_pointers): Likewise. 20996 (write_ts_poly_tree_pointers): Likewise. 20997 (write_ts_complex_tree_pointers): Likewise. 20998 (write_ts_decl_minimal_tree_pointers): Likewise. 20999 (write_ts_decl_common_tree_pointers): Likewise. 21000 (write_ts_decl_non_common_tree_pointers): Likewise. 21001 (write_ts_decl_with_vis_tree_pointers): Likewise. 21002 (write_ts_field_decl_tree_pointers): Likewise. 21003 (write_ts_function_decl_tree_pointers): Likewise. 21004 (write_ts_type_common_tree_pointers): Likewise. 21005 (write_ts_type_non_common_tree_pointers): Likewise. 21006 (write_ts_list_tree_pointers): Likewise. 21007 (write_ts_vec_tree_pointers): Likewise. 21008 (write_ts_exp_tree_pointers): Likewise. 21009 (write_ts_block_tree_pointers): Likewise. 21010 (write_ts_binfo_tree_pointers): Likewise. 21011 (write_ts_constructor_tree_pointers): Likewise. 21012 (write_ts_omp_clause_tree_pointers): Likewise. 21013 (streamer_write_tree_body): Likewise. 21014 (streamer_write_integer_cst): Likewise. 21015 * tree-streamer.h (streamer_read_chain):Declare. 21016 (streamer_write_chain):Declare. 21017 (streamer_write_tree_body): Update prototype. 21018 (streamer_write_integer_cst): Update prototype. 21019 210202020-05-29 H.J. Lu <hjl.tools@gmail.com> 21021 21022 PR bootstrap/95413 21023 * configure: Regenerated. 21024 210252020-05-29 Andrew Stubbs <ams@codesourcery.com> 21026 21027 * config/gcn/gcn-valu.md (add<mode>3_vcc_zext_dup): Add early clobber. 21028 (add<mode>3_vcc_zext_dup_exec): Likewise. 21029 (add<mode>3_vcc_zext_dup2): Likewise. 21030 (add<mode>3_vcc_zext_dup2_exec): Likewise. 21031 210322020-05-29 Richard Biener <rguenther@suse.de> 21033 21034 PR tree-optimization/95272 21035 * tree-vectorizer.h (_slp_tree::representative): Add. 21036 (SLP_TREE_REPRESENTATIVE): Likewise. 21037 * tree-vect-loop.c (vectorizable_reduction): Adjust SLP 21038 node gathering. 21039 (vectorizable_live_operation): Use the representative to 21040 attach the reduction info to. 21041 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize 21042 SLP_TREE_REPRESENTATIVE. 21043 (vect_create_new_slp_node): Likewise. 21044 (slp_copy_subtree): Copy it. 21045 (vect_slp_rearrange_stmts): Re-arrange even COND_EXPR stmts. 21046 (vect_slp_analyze_node_operations_1): Pass the representative 21047 to vect_analyze_stmt. 21048 (vect_schedule_slp_instance): Pass the representative to 21049 vect_transform_stmt. 21050 210512020-05-29 Richard Biener <rguenther@suse.de> 21052 21053 PR tree-optimization/95356 21054 * tree-vect-stmts.c (vectorizable_shift): Do in-place SLP 21055 node hacking during analysis. 21056 210572020-05-29 Jan Hubicka <hubicka@ucw.cz> 21058 21059 PR lto/95362 21060 * lto-streamer-out.c (lto_output_tree): Disable redundant streaming. 21061 210622020-05-29 Richard Biener <rguenther@suse.de> 21063 21064 PR tree-optimization/95403 21065 * tree-vect-stmts.c (vect_init_vector_1): Guard against NULL 21066 stmt_vinfo. 21067 210682020-05-29 Jakub Jelinek <jakub@redhat.com> 21069 21070 PR middle-end/95315 21071 * omp-general.c (omp_resolve_declare_variant): Fix up addition of 21072 declare variant cgraph node removal callback. 21073 210742020-05-29 Jakub Jelinek <jakub@redhat.com> 21075 21076 PR middle-end/95052 21077 * expr.c (store_expr): If expr_size is constant and significantly 21078 larger than TREE_STRING_LENGTH, set temp to just the 21079 TREE_STRING_LENGTH portion of the STRING_CST. 21080 210812020-05-29 Richard Biener <rguenther@suse.de> 21082 21083 PR tree-optimization/95393 21084 * tree-ssa-phiopt.c (minmax_replacement): Use gimple_build 21085 to build the min/max expression so we simplify cases like 21086 MAX(0, s) immediately. 21087 210882020-05-29 Joe Ramsay <joe.ramsay@arm.com> 21089 21090 * config/aarch64/aarch64-sve.md (<LOGICAL:optab><mode>3): Add support 21091 for unpacked EOR, ORR, AND. 21092 210932020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com> 21094 21095 * Makefile.in: don't look for libiberty in the "pic" subdirectory 21096 when building for Mingw. Add dependency on xgcc with the proper 21097 extension. 21098 210992020-05-28 Jeff Law <law@redhat.com> 21100 21101 * config/h8300/logical.md (bclrhi_msx): Remove pattern. 21102 211032020-05-28 Jeff Law <law@redhat.com> 21104 21105 * config/h8300/logical.md (HImode H8/SX bit-and splitter): Don't 21106 make a nonzero adjustment to the memory offset. 21107 (b<ior,xor>hi_msx): Turn into a splitter. 21108 211092020-05-28 Eric Botcazou <ebotcazou@adacore.com> 21110 21111 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into): 21112 Fix off-by-one error. 21113 211142020-05-28 Richard Sandiford <richard.sandiford@arm.com> 21115 21116 * config/aarch64/aarch64.h (aarch64_frame): Add a comment above 21117 wb_candidate1 and wb_candidate2. 21118 * config/aarch64/aarch64.c (aarch64_layout_frame): Invalidate 21119 wb_candidate1 and wb_candidate2 if we decided not to use them. 21120 211212020-05-28 Richard Sandiford <richard.sandiford@arm.com> 21122 21123 PR testsuite/95361 21124 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Assert that 21125 we have at least some CFI operations when using a frame pointer. 21126 Only redefine the CFA if we have CFI operations. 21127 211282020-05-28 Richard Biener <rguenther@suse.de> 21129 21130 * tree-vect-slp.c (vect_prologue_cost_for_slp): Remove 21131 case for !SLP_TREE_VECTYPE. 21132 (vect_slp_analyze_node_operations): Adjust. 21133 211342020-05-28 Richard Biener <rguenther@suse.de> 21135 21136 * tree-vectorizer.h (_slp_tree::vec_defs): Add. 21137 (SLP_TREE_VEC_DEFS): Likewise. 21138 * tree-vect-slp.c (_slp_tree::_slp_tree): Adjust. 21139 (_slp_tree::~_slp_tree): Likewise. 21140 (vect_mask_constant_operand_p): Remove unused function. 21141 (vect_get_constant_vectors): Rename to... 21142 (vect_create_constant_vectors): ... this. Take the 21143 invariant node as argument and code generate it. Remove 21144 dead code, remove temporary asserts. Pass a NULL stmt_info 21145 to vect_init_vector. 21146 (vect_get_slp_defs): Simplify. 21147 (vect_schedule_slp_instance): Code-generate externals and 21148 invariants using vect_create_constant_vectors. 21149 211502020-05-28 Richard Biener <rguenther@suse.de> 21151 21152 * tree-vect-stmts.c (vect_finish_stmt_generation_1): 21153 Conditionalize stmt_info use, assert the new stmt cannot throw 21154 when not specified. 21155 (vect_finish_stmt_generation): Adjust assert. 21156 211572020-05-28 Richard Biener <rguenther@suse.de> 21158 21159 PR tree-optimization/95273 21160 PR tree-optimization/95356 21161 * tree-vect-stmts.c (vectorizable_shift): Adjust when and to 21162 what we set the vector type of the shift operand SLP node 21163 again. 21164 211652020-05-28 Andrea Corallo <andrea.corallo@arm.com> 21166 21167 * config/arm/arm.c (mve_vector_mem_operand): Fix unwanted 21168 fall-throughs. 21169 211702020-05-28 Martin Liska <mliska@suse.cz> 21171 21172 PR web/95380 21173 * doc/invoke.texi: Add missing params, remove max-once-peeled-insns and 21174 rename ipcp-unit-growth to ipa-cp-unit-growth. 21175 211762020-05-28 Hongtao Liu <hongtao.liu@intel.com> 21177 21178 * config/i386/sse.md (*avx512vl_<code>v2div2qi2_store_1): Rename 21179 from *avx512vl_<code>v2div2qi_store and refine memory size of 21180 the pattern. 21181 (*avx512vl_<code>v2div2qi2_mask_store_1): Ditto. 21182 (*avx512vl_<code><mode>v4qi2_store_1): Ditto. 21183 (*avx512vl_<code><mode>v4qi2_mask_store_1): Ditto. 21184 (*avx512vl_<code><mode>v8qi2_store_1): Ditto. 21185 (*avx512vl_<code><mode>v8qi2_mask_store_1): Ditto. 21186 (*avx512vl_<code><mode>v4hi2_store_1): Ditto. 21187 (*avx512vl_<code><mode>v4hi2_mask_store_1): Ditto. 21188 (*avx512vl_<code>v2div2hi2_store_1): Ditto. 21189 (*avx512vl_<code>v2div2hi2_mask_store_1): Ditto. 21190 (*avx512vl_<code>v2div2si2_store_1): Ditto. 21191 (*avx512vl_<code>v2div2si2_mask_store_1): Ditto. 21192 (*avx512f_<code>v8div16qi2_store_1): Ditto. 21193 (*avx512f_<code>v8div16qi2_mask_store_1): Ditto. 21194 (*avx512vl_<code>v2div2qi2_store_2): New define_insn_and_split. 21195 (*avx512vl_<code>v2div2qi2_mask_store_2): Ditto. 21196 (*avx512vl_<code><mode>v4qi2_store_2): Ditto. 21197 (*avx512vl_<code><mode>v4qi2_mask_store_2): Ditto. 21198 (*avx512vl_<code><mode>v8qi2_store_2): Ditto. 21199 (*avx512vl_<code><mode>v8qi2_mask_store_2): Ditto. 21200 (*avx512vl_<code><mode>v4hi2_store_2): Ditto. 21201 (*avx512vl_<code><mode>v4hi2_mask_store_2): Ditto. 21202 (*avx512vl_<code>v2div2hi2_store_2): Ditto. 21203 (*avx512vl_<code>v2div2hi2_mask_store_2): Ditto. 21204 (*avx512vl_<code>v2div2si2_store_2): Ditto. 21205 (*avx512vl_<code>v2div2si2_mask_store_2): Ditto. 21206 (*avx512f_<code>v8div16qi2_store_2): Ditto. 21207 (*avx512f_<code>v8div16qi2_mask_store_2): Ditto. 21208 * config/i386/i386-builtin-types.def: Adjust builtin type. 21209 * config/i386/i386-expand.c: Ditto. 21210 * config/i386/i386-builtin.def: Adjust builtin. 21211 * config/i386/avx512fintrin.h: Ditto. 21212 * config/i386/avx512vlbwintrin.h: Ditto. 21213 * config/i386/avx512vlintrin.h: Ditto. 21214 212152020-05-28 Dong JianQiang <dongjianqiang2@huawei.com> 21216 21217 PR gcov-profile/95332 21218 * gcov-io.c (gcov_var::endian): Move field. 21219 (from_file): Add IN_GCOV_TOOL check. 21220 * gcov-io.h (gcov_magic): Ditto. 21221 212222020-05-28 Max Filippov <jcmvbkbc@gmail.com> 21223 21224 * config/xtensa/xtensa.c (xtensa_delegitimize_address): New 21225 function. 21226 (TARGET_DELEGITIMIZE_ADDRESS): New macro. 21227 212282020-05-27 Eric Botcazou <ebotcazou@adacore.com> 21229 21230 * builtin-types.def (BT_UINT128): New primitive type. 21231 (BT_FN_UINT128_UINT128): New function type. 21232 * builtins.def (BUILT_IN_BSWAP128): New GCC builtin. 21233 * doc/extend.texi (__builtin_bswap128): Document it. 21234 * builtins.c (expand_builtin): Deal with BUILT_IN_BSWAP128. 21235 (is_inexpensive_builtin): Likewise. 21236 * fold-const-call.c (fold_const_call_ss): Likewise. 21237 * fold-const.c (tree_call_nonnegative_warnv_p): Likewise. 21238 * tree-ssa-ccp.c (evaluate_stmt): Likewise. 21239 * tree-vect-stmts.c (vect_get_data_ptr_increment): Likewise. 21240 (vectorizable_call): Likewise. 21241 * optabs.c (expand_unop): Always use the double word path for it. 21242 * tree-core.h (enum tree_index): Add TI_UINT128_TYPE. 21243 * tree.h (uint128_type_node): New global type. 21244 * tree.c (build_common_tree_nodes): Build it if TImode is supported. 21245 212462020-05-27 Uroš Bizjak <ubizjak@gmail.com> 21247 21248 * config/i386/mmx.md (*mmx_haddv2sf3): Remove SSE alternatives. 21249 (mmx_hsubv2sf3): Ditto. 21250 (mmx_haddsubv2sf3): New expander. 21251 (*mmx_haddsubv2sf3): Rename from mmx_addsubv2sf3. Correct 21252 RTL template to model horizontal subtraction and addition. 21253 * config/i386/i386-builtin.def (IX86_BUILTIN_PFPNACC): 21254 Update for rename. 21255 212562020-05-27 Uroš Bizjak <ubizjak@gmail.com> 21257 21258 PR target/95355 21259 * config/i386/sse.md 21260 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): 21261 Remove %q operand modifier from insn template. 21262 (avx512f_<code>v8hiv8di2<mask_name>): Ditto. 21263 212642020-05-27 Uroš Bizjak <ubizjak@gmail.com> 21265 21266 * config/i386/mmx.md (mmx_pswapdsf2): Add SSE alternatives. 21267 Enable insn pattern for TARGET_MMX_WITH_SSE. 21268 (*mmx_movshdup): New insn pattern. 21269 (*mmx_movsldup): Ditto. 21270 (*mmx_movss): Ditto. 21271 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): 21272 Handle E_V2SFmode. 21273 (expand_vec_perm_movs): Handle E_V2SFmode. 21274 (expand_vec_perm_even_odd): Ditto. 21275 (expand_vec_perm_broadcast_1): Assert that E_V2SFmode 21276 is already handled by standard shuffle patterns. 21277 212782020-05-27 Richard Biener <rguenther@suse.de> 21279 21280 PR tree-optimization/95295 21281 * tree-ssa-loop-im.c (sm_seq_valid_bb): Fix sinking after 21282 merging stores from paths. 21283 212842020-05-27 Richard Biener <rguenther@suse.de> 21285 21286 PR tree-optimization/95356 21287 * tree-vect-stmts.c (vectorizable_shift): Adjust vector 21288 type for the shift operand. 21289 212902020-05-27 Richard Biener <rguenther@suse.de> 21291 21292 PR tree-optimization/95335 21293 * tree-vect-slp.c (vect_slp_analyze_node_operations): Reset 21294 lvisited for nodes made external. 21295 212962020-05-27 Richard Biener <rguenther@suse.de> 21297 21298 * dump-context.h (debug_dump_context): New class. 21299 (dump_context): Make it friend. 21300 * dumpfile.c (debug_dump_context::debug_dump_context): 21301 Implement. 21302 (debug_dump_context::~debug_dump_context): Likewise. 21303 * tree-vect-slp.c: Include dump-context.h. 21304 (vect_print_slp_tree): Dump a single SLP node. 21305 (debug): New overload for slp_tree. 21306 (vect_print_slp_graph): Rename from vect_print_slp_tree and 21307 use that. 21308 (vect_analyze_slp_instance): Adjust. 21309 213102020-05-27 Jakub Jelinek <jakub@redhat.com> 21311 21312 PR middle-end/95315 21313 * omp-general.c (omp_declare_variant_remove_hook): New function. 21314 (omp_resolve_declare_variant): Always return base if it is already 21315 declare_variant_alt magic decl itself. Register 21316 omp_declare_variant_remove_hook as cgraph node removal hook. 21317 213182020-05-27 Jeff Law <law@redhat.com> 21319 21320 * config/h8300/testcompare.md (tst_extzv_1_n): Do not accept constants 21321 for the primary input operand. 21322 (tstsi_variable_bit_qi): Similarly. 21323 213242020-05-26 Uroš Bizjak <ubizjak@gmail.com> 21325 21326 * config/i386/mmx.md (mmx_pswapdv2si2): Add SSE2 alternative. 21327 213282020-05-26 Tobias Burnus <tobias@codesourcery.com> 21329 21330 PR ipa/95320 21331 * ipa-utils.h (odr_type_p): Also permit calls with 21332 only flag_generate_offload set. 21333 213342020-05-26 Alexandre Oliva <oliva@adacore.com> 21335 21336 * gcc.c (validate_switches): Add braced parameter. Adjust all 21337 callers. Expected and skip trailing brace only if braced. 21338 Return after handling one atom otherwise. 21339 (DUMPS_OPTIONS): New. 21340 (cpp_debug_options): Define in terms of it. 21341 213422020-05-26 Richard Biener <rguenther@suse.de> 21343 21344 PR tree-optimization/95327 21345 * tree-vect-stmts.c (vectorizable_shift): Compute op1_vectype 21346 when we are not using a scalar shift. 21347 213482020-05-26 Uroš Bizjak <ubizjak@gmail.com> 21349 21350 * config/i386/mmx.md (*mmx_pshufd_1): New insn pattern. 21351 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): 21352 Handle E_V2SImode and E_V4HImode. 21353 (expand_vec_perm_even_odd_1): Handle E_V4HImode. 21354 Assert that E_V2SImode is already handled. 21355 (expand_vec_perm_broadcast_1): Assert that E_V2SImode 21356 is already handled by standard shuffle patterns. 21357 213582020-05-26 Jan Hubicka <jh@suse.cz> 21359 21360 * tree.c (free_lang_data_in_type): Simpify types of TYPE_VALUES in 21361 enumeral types. 21362 213632020-05-26 Jakub Jelinek <jakub@redhat.com> 21364 21365 PR c++/95197 21366 * gimplify.c (find_combined_omp_for): Move to omp-general.c. 21367 * omp-general.h (find_combined_omp_for): Declare. 21368 * omp-general.c: Include tree-iterator.h. 21369 (find_combined_omp_for): New function, moved from gimplify.c. 21370 213712020-05-26 Alexandre Oliva <oliva@adacore.com> 21372 21373 * common.opt (aux_base_name): Define. 21374 (dumpbase, dumpdir): Mark as Driver options. 21375 (-dumpbase, -dumpdir): Likewise. 21376 (dumpbase-ext, -dumpbase-ext): New. 21377 (auxbase, auxbase-strip): Drop. 21378 * doc/invoke.texi (-dumpbase, -dumpbase-ext, -dumpdir): 21379 Document. 21380 (-o): Introduce the notion of primary output, mention it 21381 influences auxiliary and dump output names as well, add 21382 examples. 21383 (-save-temps): Adjust, move examples into -dump*. 21384 (-save-temps=cwd, -save-temps=obj): Likewise. 21385 (-fdump-final-insns): Adjust. 21386 * dwarf2out.c (gen_producer_string): Drop auxbase and 21387 auxbase_strip; add dumpbase_ext. 21388 * gcc.c (enum save_temps): Add SAVE_TEMPS_DUMP. 21389 (save_temps_prefix, save_temps_length): Drop. 21390 (save_temps_overrides_dumpdir): New. 21391 (dumpdir, dumpbase, dumpbase_ext): New. 21392 (dumpdir_length, dumpdir_trailing_dash_added): New. 21393 (outbase, outbase_length): New. 21394 (The Specs Language): Introduce %". Adjust %b and %B. 21395 (ASM_FINAL_SPEC): Use %b.dwo for an aux output name always. 21396 Precede object file with %w when it's the primary output. 21397 (cpp_debug_options): Do not pass on incoming -dumpdir, 21398 -dumpbase and -dumpbase-ext options; recompute them with 21399 %:dumps. 21400 (cc1_options): Drop auxbase with and without compare-debug; 21401 use cpp_debug_options instead of dumpbase. Mark asm output 21402 with %w when it's the primary output. 21403 (static_spec_functions): Drop %:compare-debug-auxbase-opt and 21404 %:replace-exception. Add %:dumps. 21405 (driver_handle_option): Implement -save-temps=*/-dumpdir 21406 mutual overriding logic. Save dumpdir, dumpbase and 21407 dumpbase-ext options. Do not save output_file in 21408 save_temps_prefix. 21409 (adds_single_suffix_p): New. 21410 (single_input_file_index): New. 21411 (process_command): Combine output dir, output base name, and 21412 dumpbase into dumpdir and outbase. 21413 (set_collect_gcc_options): Pass a possibly-adjusted -dumpdir. 21414 (do_spec_1): Optionally dumpdir instead of save_temps_prefix, 21415 and outbase instead of input_basename in %b, %B and in 21416 -save-temps aux files. Handle empty argument %". 21417 (driver::maybe_run_linker): Adjust dumpdir and auxbase. 21418 (compare_debug_dump_opt_spec_function): Adjust gkd dump file 21419 naming. Spec-quote the computed -fdump-final-insns file name. 21420 (debug_auxbase_opt): Drop. 21421 (compare_debug_self_opt_spec_function): Drop auxbase-strip 21422 computation. 21423 (compare_debug_auxbase_opt_spec_function): Drop. 21424 (not_actual_file_p): New. 21425 (replace_extension_spec_func): Drop. 21426 (dumps_spec_func): New. 21427 (convert_white_space): Split-out parts into... 21428 (quote_string, whitespace_to_convert_p): ... these. New. 21429 (quote_spec_char_p, quote_spec, quote_spec_arg): New. 21430 (driver::finalize): Release and reset new variables; drop 21431 removed ones. 21432 * lto-wrapper.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Define if... 21433 (TARGET_EXECUTABLE_SUFFIX): ... is defined; define this to the 21434 empty string otherwise. 21435 (DUMPBASE_SUFFIX): Drop leading period. 21436 (debug_objcopy): Use concat. 21437 (run_gcc): Recognize -save-temps=* as -save-temps too. Obey 21438 -dumpdir. Pass on empty dumpdir and dumpbase with a directory 21439 component. Simplify temp file names. 21440 * opts.c (finish_options): Drop aux base name handling. 21441 (common_handle_option): Drop auxbase-strip handling. 21442 * toplev.c (print_switch_values): Drop auxbase, add 21443 dumpbase-ext. 21444 (process_options): Derive aux_base_name from dump_base_name 21445 and dump_base_ext. 21446 (lang_dependent_init): Compute dump_base_ext along with 21447 dump_base_name. Disable stack usage and callgraph-info during 21448 lto generation and compare-debug recompilation. 21449 214502020-05-26 Hongtao Liu <hongtao.liu@intel.com> 21451 Uroš Bizjak <ubizjak@gmail.com> 21452 21453 PR target/95211 21454 PR target/95256 21455 * config/i386/sse.md (<floatunssuffix>v2div2sf2): New expander. 21456 (fix<fixunssuffix>_truncv2sfv2di2): Ditto. 21457 (avx512dq_float<floatunssuffix>v2div2sf2): Renaming from 21458 float<floatunssuffix>v2div2sf2. 21459 (avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>): 21460 Renaming from fix<fixunssuffix>_truncv2sfv2di2<mask_name>. 21461 (vec_pack<floatprefix>_float_<mode>): Adjust icode name. 21462 (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto. 21463 (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto. 21464 * config/i386/i386-builtin.def: Ditto. 21465 * emit-rtl.c (validate_subreg): Allow use of *paradoxical* vector 21466 subregs when both omode and imode are vector mode and 21467 have the same inner mode. 21468 214692020-05-25 Eric Botcazou <ebotcazou@adacore.com> 21470 21471 * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into): 21472 Only turn MEM_REFs into bit-field stores for small bit-field regions. 21473 (imm_store_chain_info::output_merged_store): Be prepared for sources 21474 with non-integral type in the bit-field insertion case. 21475 (pass_store_merging::process_store): Use MAX_BITSIZE_MODE_ANY_INT as 21476 the largest size for the bit-field case. 21477 214782020-05-25 Uroš Bizjak <ubizjak@gmail.com> 21479 21480 * config/i386/mmx.md (*vec_dupv2sf): Redefine as define_insn. 21481 (mmx_pshufw_1): Change Yv constraint to xYw. Correct type attribute. 21482 (*vec_dupv4hi): Redefine as define_insn. 21483 Remove alternative with general register input. 21484 (*vec_dupv2si): Ditto. 21485 214862020-05-25 Richard Biener <rguenther@suse.de> 21487 21488 PR tree-optimization/95309 21489 * tree-vect-slp.c (vect_get_constant_vectors): Move number 21490 of vector computation ... 21491 (vect_slp_analyze_node_operations): ... to analysis phase. 21492 214932020-05-25 Jan Hubicka <hubicka@ucw.cz> 21494 21495 * lto-streamer-out.c (lto_output_tree): Add streamer_debugging check. 21496 * lto-streamer.h (streamer_debugging): New constant 21497 * tree-streamer-in.c (streamer_read_tree_bitfields): Add 21498 streamer_debugging check. 21499 (streamer_get_pickled_tree): Likewise. 21500 * tree-streamer-out.c (pack_ts_base_value_fields): Likewise. 21501 215022020-05-25 Richard Biener <rguenther@suse.de> 21503 21504 PR tree-optimization/95308 21505 * tree-ssa-forwprop.c (pass_forwprop::execute): Generalize 21506 test for TARGET_MEM_REFs. 21507 215082020-05-25 Richard Biener <rguenther@suse.de> 21509 21510 PR tree-optimization/95295 21511 * tree-ssa-loop-im.c (sm_seq_valid_bb): Compare remat stores 21512 RHSes and drop to full sm_other if they are not equal. 21513 215142020-05-25 Richard Biener <rguenther@suse.de> 21515 21516 PR tree-optimization/95271 21517 * tree-vect-stmts.c (vectorizable_bswap): Update invariant SLP 21518 children vector type. 21519 (vectorizable_call): Pass down slp ops. 21520 215212020-05-25 Richard Biener <rguenther@suse.de> 21522 21523 PR tree-optimization/95297 21524 * tree-vect-stmts.c (vectorizable_shift): For scalar_shift_arg 21525 skip updating operand 1 vector type. 21526 215272020-05-25 Richard Biener <rguenther@suse.de> 21528 21529 PR tree-optimization/95284 21530 * tree-ssa-sink.c (sink_common_stores_to_bb): Amend previous 21531 fix. 21532 215332020-05-25 Hongtao Liu <hongtao.liu@intel.com> 21534 21535 PR target/95125 21536 * config/i386/sse.md (sf2dfmode_lower): New mode attribute. 21537 (trunc<mode><sf2dfmode_lower>2) New expander. 21538 (extend<sf2dfmode_lower><mode>2): Ditto. 21539 215402020-05-23 Iain Sandoe <iain@sandoe.co.uk> 21541 21542 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make 21543 ubsan_{data,type},ASAN symbols linker-visible. 21544 215452020-05-22 Jan Hubicka <hubicka@ucw.cz> 21546 21547 * lto-streamer-out.c (DFS::DFS): Silence warning. 21548 215492020-05-22 Uroš Bizjak <ubizjak@gmail.com> 21550 21551 PR target/95255 21552 * config/i386/i386.md (<rounding_insn><mode>2): Do not try to 21553 expand non-sse4 ROUND_ROUNDEVEN rounding via SSE support routines. 21554 215552020-05-22 Jan Hubicka <hubicka@ucw.cz> 21556 21557 * lto-streamer-out.c (lto_output_tree): Do not stream final ref if 21558 it is not needed. 21559 215602020-05-22 Jan Hubicka <hubicka@ucw.cz> 21561 21562 * lto-section-out.c (lto_output_decl_index): Adjust dump indentation. 21563 * lto-streamer-out.c (create_output_block): Fix whitespace 21564 (lto_write_tree_1): Add (debug) dump. 21565 (DFS::DFS): Add dump. 21566 (DFS::DFS_write_tree_body): Do not dump here. 21567 (lto_output_tree): Improve dumping; do not stream ref when not needed. 21568 (produce_asm_for_decls): Fix whitespace. 21569 * tree-streamer-out.c (streamer_write_tree_header): Add dump. 21570 * tree-streamer-out.c (streamer_write_integer_cst): Add debug dump. 21571 215722020-05-22 Hongtao.liu <hongtao.liu@intel.com> 21573 21574 PR target/92658 21575 * config/i386/sse.md (trunc<pmov_src_lower><mode>2): New expander 21576 (truncv32hiv32qi2): Ditto. 21577 (trunc<ssedoublemodelower><mode>2): Ditto. 21578 (trunc<mode><pmov_dst_3>2): Ditto. 21579 (trunc<mode><pmov_dst_mode_4>2): Ditto. 21580 (truncv2div2si2): Ditto. 21581 (truncv8div8qi2): Ditto. 21582 (avx512f_<code>v8div16qi2): Renaming from *avx512f_<code>v8div16qi2. 21583 (avx512vl_<code>v2div2si): Renaming from *avx512vl_<code>v2div2si2. 21584 (avx512vl_<code><mode>v2<ssecakarnum>qi2): Renaming from 21585 *avx512vl_<code><mode>v<ssescalarnum>qi2. 21586 215872020-05-22 H.J. Lu <hongjiu.lu@intel.com> 21588 21589 PR target/95258 21590 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 21591 AVX512VPOPCNTDQ. 21592 215932020-05-22 Richard Biener <rguenther@suse.de> 21594 21595 PR tree-optimization/95268 21596 * tree-ssa-sink.c (sink_common_stores_to_bb): Handle clobbers 21597 properly. 21598 215992020-05-22 Jan Hubicka <hubicka@ucw.cz> 21600 21601 * tree-streamer.c (record_common_node): Fix hash value of pre-streamed 21602 nodes. 21603 216042020-05-22 Jan Hubicka <hubicka@ucw.cz> 21605 21606 * lto-streamer-in.c (lto_read_tree): Do not stream end markers. 21607 (lto_input_scc): Optimize streaming of entry lengths. 21608 * lto-streamer-out.c (lto_write_tree): Do not stream end markers 21609 (DFS::DFS): Optimize stremaing of entry lengths 21610 216112020-05-22 Richard Biener <rguenther@suse.de> 21612 21613 PR lto/95190 21614 * doc/invoke.texi (flto): Document behavior of diagnostic 21615 options. 21616 216172020-05-22 Richard Biener <rguenther@suse.de> 21618 21619 * tree-vectorizer.h (vect_is_simple_use): New overload. 21620 (vect_maybe_update_slp_op_vectype): New. 21621 * tree-vect-stmts.c (vect_is_simple_use): New overload 21622 accessing operands of SLP vs. non-SLP operation transparently. 21623 (vect_maybe_update_slp_op_vectype): New function updating 21624 the possibly shared SLP operands vector type. 21625 (vectorizable_operation): Be a bit more SLP vs non-SLP agnostic 21626 using the new vect_is_simple_use overload; update SLP invariant 21627 operand nodes vector type. 21628 (vectorizable_comparison): Likewise. 21629 (vectorizable_call): Likewise. 21630 (vectorizable_conversion): Likewise. 21631 (vectorizable_shift): Likewise. 21632 (vectorizable_store): Likewise. 21633 (vectorizable_condition): Likewise. 21634 (vectorizable_assignment): Likewise. 21635 * tree-vect-loop.c (vectorizable_reduction): Likewise. 21636 * tree-vect-slp.c (vect_get_constant_vectors): Enforce 21637 present SLP_TREE_VECTYPE and check it matches previous 21638 behavior. 21639 216402020-05-22 Richard Biener <rguenther@suse.de> 21641 21642 PR tree-optimization/95248 21643 * tree-ssa-loop-im.c (sm_seq_valid_bb): Remove bogus early out. 21644 216452020-05-22 Richard Biener <rguenther@suse.de> 21646 21647 * tree-vectorizer.h (_slp_tree::_slp_tree): New. 21648 (_slp_tree::~_slp_tree): Likewise. 21649 * tree-vect-slp.c (_slp_tree::_slp_tree): Factor out code 21650 from allocators. 21651 (_slp_tree::~_slp_tree): Implement. 21652 (vect_free_slp_tree): Simplify. 21653 (vect_create_new_slp_node): Likewise. Add nops parameter. 21654 (vect_build_slp_tree_2): Adjust. 21655 (vect_analyze_slp_instance): Likewise. 21656 216572020-05-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 21658 21659 * adjust-alignment.c: Include memmodel.h. 21660 216612020-05-21 H.J. Lu <hongjiu.lu@intel.com> 21662 21663 PR target/95260 21664 * config/i386/cpuid.h: Use hexadecimal in comments. 21665 216662020-05-21 H.J. Lu <hongjiu.lu@intel.com> 21667 21668 PR target/95212 21669 * config/i386/i386-builtins.c (processor_features): Move 21670 F_AVX512VP2INTERSECT after F_AVX512BF16. 21671 (isa_names_table): Likewise. 21672 216732020-05-21 Martin Liska <mliska@suse.cz> 21674 21675 * common/config/aarch64/aarch64-common.c (aarch64_handle_option): 21676 Handle OPT_moutline_atomics. 21677 * config/aarch64/aarch64.c: Add outline-atomics to 21678 aarch64_attributes. 21679 * doc/extend.texi: Document the newly added target attribute. 21680 216812020-05-21 Uroš Bizjak <ubizjak@gmail.com> 21682 21683 PR target/95218 21684 21685 * config/i386/mmx.md (*mmx_<code>v2sf): Do not mark 21686 operands 1 and 2 commutative. Manually swap operands. 21687 (*mmx_nabsv2sf2): Ditto. 21688 21689 Partially revert: 21690 2020-05-18 Uroš Bizjak <ubizjak@gmail.com> 21691 21692 * config/i386/i386.md (*<code>tf2_1): 21693 Mark operands 1 and 2 commutative. 21694 (*nabstf2_1): Ditto. 21695 * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2 21696 commutative. Do not swap operands. 21697 (*nabs<mode>2): Ditto. 21698 216992020-05-20 Uroš Bizjak <ubizjak@gmail.com> 21700 21701 PR target/95229 21702 * config/i386/sse.md (<code>v8qiv8hi2): Use 21703 simplify_gen_subreg instead of simplify_subreg. 21704 (<code>v8qiv8si2): Ditto. 21705 (<code>v4qiv4si2): Ditto. 21706 (<code>v4hiv4si2): Ditto. 21707 (<code>v8qiv8di2): Ditto. 21708 (<code>v4qiv4di2): Ditto. 21709 (<code>v2qiv2di2): Ditto. 21710 (<code>v4hiv4di2): Ditto. 21711 (<code>v2hiv2di2): Ditto. 21712 (<code>v2siv2di2): Ditto. 21713 217142020-05-20 Uroš Bizjak <ubizjak@gmail.com> 21715 21716 PR target/95238 21717 * config/i386/i386.md (*pushsi2_rex64): 21718 Use "e" constraint instead of "i". 21719 217202020-05-20 Jan Hubicka <hubicka@ucw.cz> 21721 21722 * lto-streamer-in.c (lto_input_scc): Add SHARED_SCC parameter. 21723 (lto_input_tree_1): Strenghten sanity check. 21724 (lto_input_tree): Update call of lto_input_scc. 21725 * lto-streamer-out.c: Include ipa-utils.h 21726 (create_output_block): Initialize local_trees if merigng is going 21727 to happen. 21728 (destroy_output_block): Destroy local_trees. 21729 (DFS): Add max_local_entry. 21730 (local_tree_p): New function. 21731 (DFS::DFS): Initialize and maintain it. 21732 (DFS::DFS_write_tree): Decide on streaming format. 21733 (lto_output_tree): Stream inline singleton SCCs 21734 * lto-streamer.h (enum LTO_tags): Add LTO_trees. 21735 (struct output_block): Add local_trees. 21736 (lto_input_scc): Update prototype. 21737 217382020-05-20 Patrick Palka <ppalka@redhat.com> 21739 21740 PR c++/95223 21741 * hash-table.h (hash_table::find_with_hash): Move up the call to 21742 hash_table::verify. 21743 217442020-05-20 Martin Liska <mliska@suse.cz> 21745 21746 * lto-compress.c (lto_compression_zstd): Fill up 21747 num_compressed_il_bytes. 21748 (lto_uncompression_zstd): Likewise for num_uncompressed_il_bytes here. 21749 217502020-05-20 Richard Biener <rguenther@suse.de> 21751 21752 PR tree-optimization/95219 21753 * tree-vect-loop.c (vectorizable_induction): Reduce 21754 group_size before computing the number of required IVs. 21755 217562020-05-20 Richard Biener <rguenther@suse.de> 21757 21758 PR middle-end/95231 21759 * tree-inline.c (remap_gimple_stmt): Revert adjusting 21760 COND_EXPR and VEC_COND_EXPR for a -fnon-call-exception boundary. 21761 217622020-05-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 21763 Andre Vieira <andre.simoesdiasvieira@arm.com> 21764 21765 PR target/94959 21766 * config/arm/arm-protos.h (arm_mode_base_reg_class): Function 21767 declaration. 21768 (mve_vector_mem_operand): Likewise. 21769 * config/arm/arm.c (thumb2_legitimate_address_p): For MVE target check 21770 the load from memory to a core register is legitimate for give mode. 21771 (mve_vector_mem_operand): Define function. 21772 (arm_print_operand): Modify comment. 21773 (arm_mode_base_reg_class): Define. 21774 * config/arm/arm.h (MODE_BASE_REG_CLASS): Modify to add check for 21775 TARGET_HAVE_MVE and expand to arm_mode_base_reg_class on TRUE. 21776 * config/arm/constraints.md (Ux): Likewise. 21777 (Ul): Likewise. 21778 * config/arm/mve.md (mve_mov): Replace constraint Us with Ux and also 21779 add support for missing Vector Store Register and Vector Load Register. 21780 Add a new alternative to support load from memory to PC (or label) in 21781 vector store/load. 21782 (mve_vstrbq_<supf><mode>): Modify constraint Us to Ux. 21783 (mve_vldrbq_<supf><mode>): Modify constriant Us to Ux, predicate to 21784 mve_memory_operand and also modify the MVE instructions to emit. 21785 (mve_vldrbq_z_<supf><mode>): Modify constraint Us to Ux. 21786 (mve_vldrhq_fv8hf): Modify constriant Us to Ux, predicate to 21787 mve_memory_operand and also modify the MVE instructions to emit. 21788 (mve_vldrhq_<supf><mode>): Modify constriant Us to Ux, predicate to 21789 mve_memory_operand and also modify the MVE instructions to emit. 21790 (mve_vldrhq_z_fv8hf): Likewise. 21791 (mve_vldrhq_z_<supf><mode>): Likewise. 21792 (mve_vldrwq_fv4sf): Likewise. 21793 (mve_vldrwq_<supf>v4si): Likewise. 21794 (mve_vldrwq_z_fv4sf): Likewise. 21795 (mve_vldrwq_z_<supf>v4si): Likewise. 21796 (mve_vld1q_f<mode>): Modify constriant Us to Ux. 21797 (mve_vld1q_<supf><mode>): Likewise. 21798 (mve_vstrhq_fv8hf): Modify constriant Us to Ux, predicate to 21799 mve_memory_operand. 21800 (mve_vstrhq_p_fv8hf): Modify constriant Us to Ux, predicate to 21801 mve_memory_operand and also modify the MVE instructions to emit. 21802 (mve_vstrhq_p_<supf><mode>): Likewise. 21803 (mve_vstrhq_<supf><mode>): Modify constriant Us to Ux, predicate to 21804 mve_memory_operand. 21805 (mve_vstrwq_fv4sf): Modify constriant Us to Ux. 21806 (mve_vstrwq_p_fv4sf): Modify constriant Us to Ux and also modify the MVE 21807 instructions to emit. 21808 (mve_vstrwq_p_<supf>v4si): Likewise. 21809 (mve_vstrwq_<supf>v4si): Likewise.Modify constriant Us to Ux. 21810 * config/arm/predicates.md (mve_memory_operand): Define. 21811 218122020-05-30 Richard Biener <rguenther@suse.de> 21813 21814 PR c/95141 21815 * c-fold.c (c_fully_fold_internal): Enhance guard on 21816 overflow_warning. 21817 218182020-05-20 Kito Cheng <kito.cheng@sifive.com> 21819 21820 PR target/90811 21821 * Makefile.in (OBJS): Add adjust-alignment.o. 21822 * adjust-alignment.c (pass_data_adjust_alignment): New. 21823 (pass_adjust_alignment): New. 21824 (pass_adjust_alignment::execute): New. 21825 (make_pass_adjust_alignment): New. 21826 * tree-pass.h (make_pass_adjust_alignment): New. 21827 * passes.def: Add pass_adjust_alignment. 21828 218292020-05-19 Alex Coplan <alex.coplan@arm.com> 21830 21831 PR target/94591 21832 * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match 21833 identity permutation. 21834 218352020-05-19 Jozef Lawrynowicz <jozef.l@mittosystems.com> 21836 21837 * doc/sourcebuild.texi: Document new short_eq_int, ptr_eq_short, 21838 msp430_small, msp430_large and size24plus DejaGNU effective 21839 targets. 21840 Improve grammar in descriptions for size20plus and size32plus effective 21841 targets. 21842 218432020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> 21844 21845 * config/bpf/bpf.c (bpf_compute_frame_layout): Include space for 21846 callee saved registers only in xBPF. 21847 (bpf_expand_prologue): Save callee saved registers only in xBPF. 21848 (bpf_expand_epilogue): Likewise for restoring. 21849 * doc/invoke.texi (eBPF Options): Document this is activated by 21850 -mxbpf. 21851 218522020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> 21853 21854 * config/bpf/bpf.opt (mxbpf): New option. 21855 * doc/invoke.texi (Option Summary): Add -mxbpf. 21856 (eBPF Options): Document -mxbbpf. 21857 218582020-05-19 Uroš Bizjak <ubizjak@gmail.com> 21859 21860 PR target/92658 21861 * config/i386/sse.md (<code>v16qiv16hi2): New expander. 21862 (<code>v32qiv32hi2): Ditto. 21863 (<code>v8qiv8hi2): Ditto. 21864 (<code>v16qiv16si2): Ditto. 21865 (<code>v8qiv8si2): Ditto. 21866 (<code>v4qiv4si2): Ditto. 21867 (<code>v16hiv16si2): Ditto. 21868 (<code>v8hiv8si2): Ditto. 21869 (<code>v4hiv4si2): Ditto. 21870 (<code>v8qiv8di2): Ditto. 21871 (<code>v4qiv4di2): Ditto. 21872 (<code>v2qiv2di2): Ditto. 21873 (<code>v8hiv8di2): Ditto. 21874 (<code>v4hiv4di2): Ditto. 21875 (<code>v2hiv2di2): Ditto. 21876 (<code>v8siv8di2): Ditto. 21877 (<code>v4siv4di2): Ditto. 21878 (<code>v2siv2di2): Ditto. 21879 218802020-05-19 Kito Cheng <kito.cheng@sifive.com> 21881 21882 * common/config/riscv/riscv-common.c (riscv_implied_info_t): New. 21883 (riscv_implied_info): New. 21884 (riscv_subset_list): Add handle_implied_ext. 21885 (riscv_subset_list::to_string): New parameter version_p to 21886 control output format. 21887 (riscv_subset_list::handle_implied_ext): New. 21888 (riscv_subset_list::parse_std_ext): Call handle_implied_ext. 21889 (riscv_arch_str): New parameter version_p to control output format. 21890 (riscv_expand_arch): New. 21891 * config/riscv/riscv-protos.h (riscv_arch_str): New parameter, 21892 version_p. 21893 * config/riscv/riscv.h (riscv_expand_arch): New, 21894 (EXTRA_SPEC_FUNCTIONS): Define. 21895 (ASM_SPEC): Transform -march= via riscv_expand_arch. 21896 218972020-05-19 Kito Cheng <kito.cheng@sifive.com> 21898 21899 * riscv-common.c (parse_sv_or_non_std_ext): Rename to 21900 parse_multiletter_ext. 21901 (parse_multiletter_ext): Add parsing `h` and `z`, drop `sx`, 21902 adjust parsing order for 's' and 'x'. 21903 219042020-05-19 Richard Biener <rguenther@suse.de> 21905 21906 * tree-vectorizer.h (_slp_tree::vectype): Add field. 21907 (SLP_TREE_VECTYPE): New. 21908 * tree-vect-slp.c (vect_create_new_slp_node): Initialize 21909 SLP_TREE_VECTYPE. 21910 (vect_create_new_slp_node): Likewise. 21911 (vect_prologue_cost_for_slp): Move here from tree-vect-stmts.c 21912 and simplify. 21913 (vect_slp_analyze_node_operations): Walk nodes children for 21914 invariant costing. 21915 (vect_get_constant_vectors): Use local scope op variable. 21916 * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Remove here. 21917 (vect_model_simple_cost): Adjust. 21918 (vect_model_store_cost): Likewise. 21919 (vectorizable_store): Likewise. 21920 219212020-05-18 Martin Sebor <msebor@redhat.com> 21922 21923 PR middle-end/92815 21924 * tree-object-size.c (decl_init_size): New function. 21925 (addr_object_size): Call it. 21926 * tree.h (last_field): Declare. 21927 (first_field): Add attribute nonnull. 21928 219292020-05-18 Martin Sebor <msebor@redhat.com> 21930 21931 PR middle-end/94940 21932 * tree-vrp.c (vrp_prop::check_mem_ref): Remove unreachable code. 21933 * tree.c (component_ref_size): Correct the handling or array members 21934 of unions. 21935 Drop a pointless test. 21936 Rename a local variable. 21937 219382020-05-18 Jason Merrill <jason@redhat.com> 21939 21940 * aclocal.m4: Add ax_cxx_compile_stdcxx.m4. 21941 * configure.ac: Use AX_CXX_COMPILE_STDCXX(11). 21942 219432020-05-14 Jason Merrill <jason@redhat.com> 21944 21945 * doc/install.texi (Prerequisites): Update boostrap compiler 21946 requirement to C++11/GCC 4.8. 21947 219482020-05-18 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 21949 21950 PR tree-optimization/94952 21951 * gimple-ssa-store-merging.c (pass_store_merging::process_store): 21952 Initialize variables bitpos, bitregion_start, and bitregion_end in 21953 order to silence warnings about use of uninitialized variables. 21954 219552020-05-18 Carl Love <cel@us.ibm.com> 21956 21957 PR target/94833 21958 * config/rs6000/vsx.md (define_expand): Fix instruction generation for 21959 first_match_index_<mode>. 21960 * testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c (main): Add 21961 additional test cases with zero vector elements. 21962 219632020-05-18 Uroš Bizjak <ubizjak@gmail.com> 21964 21965 PR target/95169 21966 * config/i386/i386-expand.c (ix86_expand_int_movcc): 21967 Avoid reversing a non-trapping comparison to a trapping one. 21968 219692020-05-18 Alex Coplan <alex.coplan@arm.com> 21970 21971 * config/arm/arm.c (output_move_double): Fix codegen when loading into 21972 a register pair with an odd base register. 21973 219742020-05-18 Uroš Bizjak <ubizjak@gmail.com> 21975 21976 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): 21977 Do not emit FLAGS_REG clobber for TFmode. 21978 * config/i386/i386.md (*<code>tf2_1): Rewrite as 21979 define_insn_and_split. Mark operands 1 and 2 commutative. 21980 (*nabstf2_1): Ditto. 21981 (absneg SSE splitter): Use MODEF mode iterator instead of SSEMODEF. 21982 Do not swap memory operands. Simplify RTX generation. 21983 (neg abs SSE splitter): Ditto. 21984 * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2 21985 commutative. Do not swap operands. Simplify RTX generation. 21986 (*nabs<mode>2): Ditto. 21987 219882020-05-18 Richard Biener <rguenther@suse.de> 21989 21990 * tree-vect-slp.c (vect_slp_bb): Start after labels. 21991 (vect_get_constant_vectors): Really place init stmt after scalar defs. 21992 * tree-vect-stmts.c (vect_init_vector_1): Insert before 21993 region begin. 21994 219952020-05-18 H.J. Lu <hongjiu.lu@intel.com> 21996 21997 * config/i386/driver-i386.c (host_detect_local_cpu): Support 21998 Intel Airmont, Tremont, Comet Lake, Ice Lake and Tiger Lake 21999 processor families. 22000 220012020-05-18 Richard Biener <rguenther@suse.de> 22002 22003 PR middle-end/95171 22004 * tree-inline.c (remap_gimple_stmt): Split out trapping compares 22005 when inlining into a non-call EH function. 22006 220072020-05-18 Richard Biener <rguenther@suse.de> 22008 22009 PR tree-optimization/95172 22010 * tree-ssa-loop-im.c (execute_sm): Get flag whether we 22011 eventually need the conditional processing. 22012 (execute_sm_exit): When processing an orderd sequence 22013 avoid doing any conditional processing. 22014 (hoist_memory_references): Pass down whether all edges 22015 have ordered processing for a ref to execute_sm. 22016 220172020-05-17 Jeff Law <law@redhat.com> 22018 22019 * config/h8300/predicates.md (pc_or_label_operand): New predicate. 22020 * config/h8300/jumpcall.md (branch_true, branch_false): Consolidate 22021 into a single pattern using pc_or_label_operand. 22022 * config/h8300/combiner.md (bit branch patterns): Likewise. 22023 * config/h8300/peepholes.md (HImode and SImode branches): Likewise. 22024 220252020-05-17 H.J. Lu <hongjiu.lu@intel.com> 22026 22027 PR target/95021 22028 * config/i386/i386-features.c (has_non_address_hard_reg): 22029 Renamed to ... 22030 (pseudo_reg_set): This. Return the SET expression. Ignore 22031 pseudo register push. 22032 (general_scalar_to_vector_candidate_p): Combine single_set and 22033 has_non_address_hard_reg calls to pseudo_reg_set. 22034 (timode_scalar_to_vector_candidate_p): Likewise. 22035 * config/i386/i386.md (*pushv1ti2): New pattern. 22036 220372020-05-17 Aldy Hernandez <aldyh@redhat.com> 22038 22039 Revert: 22040 2020-05-17 Aldy Hernandez <aldyh@redhat.com> 22041 22042 * tree-vrp.c (operand_less_p): Move to... 22043 * vr-values.c (operand_less_p): ...here. 22044 * tree-vrp.h (operand_less_p): Remove. 22045 220462020-05-17 Aldy Hernandez <aldyh@redhat.com> 22047 22048 * tree-vrp.c (operand_less_p): Move to... 22049 * vr-values.c (operand_less_p): ...here. 22050 * tree-vrp.h (operand_less_p): Remove. 22051 220522020-05-17 Aldy Hernandez <aldyh@redhat.com> 22053 22054 * tree-vrp.c (class vrp_insert): Remove prototype for 22055 live_on_edge. 22056 220572020-05-17 Aldy Hernandez <aldyh@redhat.com> 22058 22059 * tree-vrp.c (class live_names): New. 22060 (live_on_edge): Move into live_names. 22061 (build_assert_expr_for): Move into vrp_insert. 22062 (find_assert_locations_in_bb): Rename from 22063 find_assert_locations_1. 22064 (process_assert_insertions_for): Move into vrp_insert. 22065 (compare_assert_loc): Same. 22066 (remove_range_assertions): Same. 22067 (dump_asserts_for): Rename to vrp_insert::dump. 22068 (debug_asserts_for): Rename to vrp_insert::debug. 22069 (dump_all_asserts): Rename to vrp_insert::dump. 22070 (debug_all_asserts): Rename to vrp_insert::debug. 22071 220722020-05-17 Aldy Hernandez <aldyh@redhat.com> 22073 22074 * tree-vrp.c (class vrp_prop): Move check_all_array_refs, 22075 check_array_ref, check_mem_ref, and search_for_addr_array 22076 into new class... 22077 (class array_bounds_checker): ...here. 22078 (class check_array_bounds_dom_walker): Adjust to use 22079 array_bounds_checker. 22080 (check_all_array_refs): Move into array_bounds_checker and rename 22081 to check. 22082 (class vrp_folder): Make fold_predicate_in private. 22083 220842020-05-15 Jeff Law <law@redhat.com> 22085 22086 * config/h8300/h8300.md (SFI iterator): New iterator for 22087 SFmode and SImode. 22088 * config/h8300/peepholes.md (memory comparison): Use mode 22089 iterator to consolidate 3 patterns into one. 22090 (stack allocation and stack store): Handle SFmode. Handle 22091 8 byte allocations. 22092 220932020-05-15 Segher Boessenkool <segher@kernel.crashing.org> 22094 22095 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require 22096 RS6000_BTM_POWERPC64. 22097 220982020-05-15 Uroš Bizjak <ubizjak@gmail.com> 22099 22100 * config/i386/i386.md (SWI48DWI): New mode iterator. 22101 (*push<mode>2): Allow XMM registers. 22102 (*pushdi2_rex64): Ditto. 22103 (*pushsi2_rex64): Ditto. 22104 (*pushsi2): Ditto. 22105 (push XMM reg splitter): New splitter 22106 22107 (*pushdf) Change "x" operand constraint to "v". 22108 (*pushsf_rex64): Ditto. 22109 (*pushsf): Ditto. 22110 221112020-05-15 Richard Biener <rguenther@suse.de> 22112 22113 PR tree-optimization/92260 22114 * tree-vect-slp.c (vect_get_constant_vectors): Compute 22115 the number of vector stmts in a canonical way. 22116 221172020-05-15 Martin Liska <mliska@suse.cz> 22118 22119 * hsa-gen.c (get_symbol_for_decl): Fix misleading indentation 22120 warning. 22121 221222020-05-15 Andrew Stubbs <ams@codesourcery.com> 22123 22124 * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp. 22125 221262020-05-15 Richard Biener <rguenther@suse.de> 22127 22128 PR tree-optimization/95133 22129 * gimple-ssa-split-paths.c 22130 (find_block_to_duplicate_for_splitting_paths): Check for 22131 normal edges. 22132 221332020-05-15 Christophe Lyon <christophe.lyon@linaro.org> 22134 22135 * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt 22136 routines. 22137 (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p. 22138 221392020-05-15 Tobias Burnus <tobias@codesourcery.com> 22140 22141 PR middle-end/94635 22142 * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with 22143 OMP_TARGET_EXIT_DATA, use 'release:' unless the associated 22144 item is 'delete:'. 22145 221462020-05-15 Uroš Bizjak <ubizjak@gmail.com> 22147 22148 PR target/95046 22149 * config/i386/i386.md (isa): Add sse3_noavx. 22150 (enabled): Handle sse3_noavx. 22151 22152 * config/i386/mmx.md (mmx_haddv2sf3): New expander. 22153 (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX 22154 alternatives. Match commutative vec_select selector operands. 22155 (*mmx_haddv2sf3_low): New insn pattern. 22156 22157 (*mmx_hsubv2sf3): Add SSE/AVX alternatives. 22158 (*mmx_hsubv2sf3_low): New insn pattern. 22159 221602020-05-15 Richard Biener <rguenther@suse.de> 22161 22162 PR tree-optimization/33315 22163 * tree-ssa-sink.c: Include tree-eh.h. 22164 (sink_stats): Add commoned member. 22165 (sink_common_stores_to_bb): New function implementing store 22166 commoning by sinking to the successor. 22167 (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned. 22168 (pass_sink_code::execute): Likewise. Record commoned stores 22169 in statistics. 22170 221712020-05-14 Xiong Hu Luo <luoxhu@linux.ibm.com> 22172 22173 PR rtl-optimization/37451, part of PR target/61837 22174 * loop-doloop.c (doloop_simplify_count): New function. Simplify 22175 (add -1; zero_ext; add +1) to zero_ext when not wrapping. 22176 (doloop_modify): Call doloop_simplify_count. 22177 221782020-05-14 H.J. Lu <hongjiu.lu@intel.com> 22179 22180 PR jit/94778 22181 * doc/sourcebuild.texi: Document effective target lgccjit. 22182 221832020-05-14 Andrew Stubbs <ams@codesourcery.com> 22184 22185 * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a 22186 define_expand, and rename the original to ... 22187 (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand. 22188 (add<mode>3_zext_dup_exec): Likewise, with ... 22189 (add<mode>3_vcc_zext_dup_exec): ... this. 22190 (add<mode>3_zext_dup2): Likewise, with ... 22191 (add<mode>3_zext_dup_exec): ... this. 22192 (add<mode>3_zext_dup2_exec): Likewise, with ... 22193 (add<mode>3_zext_dup2): ... this. 22194 * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch 22195 addv64di3_zext* calls to use addv64di3_vcc_zext*. 22196 221972020-05-14 Uroš Bizjak <ubizjak@gmail.com> 22198 22199 PR target/95046 22200 * config/i386/sse.md (truncv2dfv2df2): New insn pattern. 22201 (extendv2sfv2df2): Ditto. 22202 222032020-05-14 H.J. Lu <hongjiu.lu@intel.com> 22204 22205 * configure: Regenerated. 22206 222072020-05-14 Christophe Lyon <christophe.lyon@linaro.org> 22208 22209 * config/arm/arm.c (reg_needs_saving_p): New function. 22210 (use_return_insn): Use reg_needs_saving_p. 22211 (arm_get_vfp_saved_size): Likewise. 22212 (arm_compute_frame_layout): Likewise. 22213 (arm_save_coproc_regs): Likewise. 22214 (thumb1_expand_epilogue): Likewise. 22215 (arm_expand_epilogue_apcs_frame): Likewise. 22216 (arm_expand_epilogue): Likewise. 22217 222182020-05-14 Christophe Lyon <christophe.lyon@linaro.org> 22219 22220 * config/arm/arm.c (thumb1_expand_prologue): Update error message. 22221 222222020-05-14 Uroš Bizjak <ubizjak@gmail.com> 22223 22224 PR target/95046 22225 * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1. 22226 22227 (floatv2siv2df2): New expander. 22228 (floatunsv2siv2df2): New insn pattern. 22229 22230 (fix_truncv2dfv2si2): New expander. 22231 (fixuns_truncv2dfv2si2): New insn pattern. 22232 222332020-05-14 Richard Sandiford <richard.sandiford@arm.com> 22234 22235 PR target/95105 22236 * config/aarch64/aarch64-sve-builtins.cc 22237 (handle_arm_sve_vector_bits_attribute): Create a copy of the 22238 original type's TYPE_MAIN_VARIANT, then reapply all the differences 22239 between the original type and its main variant. 22240 222412020-05-14 Richard Biener <rguenther@suse.de> 22242 22243 PR middle-end/95118 22244 * real.c (real_to_decimal_for_mode): Make sure we handle 22245 a zero with nonzero exponent. 22246 222472020-05-14 Jakub Jelinek <jakub@redhat.com> 22248 22249 * Makefile.in (GTFILES): Add omp-general.c. 22250 * cgraph.h (struct cgraph_node): Add declare_variant_alt and 22251 calls_declare_variant_alt members and initialize them in the 22252 ctor. 22253 * ipa.c (symbol_table::remove_unreachable_nodes): Handle direct 22254 calls to declare_variant_alt nodes. 22255 * lto-cgraph.c (lto_output_node): Write declare_variant_alt 22256 and calls_declare_variant_alt. 22257 (input_overwrite_node): Read them back. 22258 * omp-simd-clone.c (simd_clone_create): Copy calls_declare_variant_alt 22259 bit. 22260 * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt 22261 bit. 22262 (tree_function_versioning): Copy calls_declare_variant_alt bit. 22263 * omp-offload.c (execute_omp_device_lower): Call 22264 omp_resolve_declare_variant on direct function calls. 22265 (pass_omp_device_lower::gate): Also enable for 22266 calls_declare_variant_alt functions. 22267 * omp-general.c (omp_maybe_offloaded): Return false after inlining. 22268 (omp_context_selector_matches): Handle the case when 22269 cfun->curr_properties has PROP_gimple_any bit set. 22270 (struct omp_declare_variant_entry): New type. 22271 (struct omp_declare_variant_base_entry): New type. 22272 (struct omp_declare_variant_hasher): New type. 22273 (omp_declare_variant_hasher::hash, omp_declare_variant_hasher::equal): 22274 New methods. 22275 (omp_declare_variants): New variable. 22276 (struct omp_declare_variant_alt_hasher): New type. 22277 (omp_declare_variant_alt_hasher::hash, 22278 omp_declare_variant_alt_hasher::equal): New methods. 22279 (omp_declare_variant_alt): New variables. 22280 (omp_resolve_late_declare_variant): New function. 22281 (omp_resolve_declare_variant): Call omp_resolve_late_declare_variant 22282 when called late. Create a magic declare_variant_alt fndecl and 22283 cgraph node and return that if decision needs to be deferred until 22284 after gimplification. 22285 * cgraph.c (symbol_table::create_edge): Or in calls_declare_variant_alt 22286 bit. 22287 22288 PR middle-end/95108 22289 * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member. 22290 (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in 22291 entry block if info->after_stmt is NULL, otherwise add after that stmt 22292 and update it after adding each stmt. 22293 (ipa_simd_modify_function_body): Initialize info.after_stmt. 22294 22295 * function.h (struct function): Add has_omp_target bit. 22296 * omp-offload.c (omp_discover_declare_target_fn_r): New function, 22297 old renamed to ... 22298 (omp_discover_declare_target_tgt_fn_r): ... this. 22299 (omp_discover_declare_target_var_r): Call 22300 omp_discover_declare_target_tgt_fn_r instead of 22301 omp_discover_declare_target_fn_r. 22302 (omp_discover_implicit_declare_target): Also queue functions with 22303 has_omp_target bit set, for those walk with 22304 omp_discover_declare_target_fn_r, for declare target to functions 22305 walk with omp_discover_declare_target_tgt_fn_r. 22306 223072020-05-14 Uroš Bizjak <ubizjak@gmail.com> 22308 22309 PR target/95046 22310 * config/i386/mmx.md (mmx_fix_truncv2sfv2si2): Rename from mmx_pf2id. 22311 Add SSE/AVX alternative. Change operand predicates from 22312 nonimmediate_operand to register_mmxmem_operand. 22313 Enable instruction pattern for TARGET_MMX_WITH_SSE. 22314 (fix_truncv2sfv2si2): New expander. 22315 (fixuns_truncv2sfv2si2): New insn pattern. 22316 22317 (mmx_floatv2siv2sf2): rename from mmx_floatv2si2. 22318 Add SSE/AVX alternative. Change operand predicates from 22319 nonimmediate_operand to register_mmxmem_operand. 22320 Enable instruction pattern for TARGET_MMX_WITH_SSE. 22321 (floatv2siv2sf2): New expander. 22322 (floatunsv2siv2sf2): New insn pattern. 22323 22324 * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID): 22325 Update for rename. 22326 (IX86_BUILTIN_PI2FD): Ditto. 22327 223282020-05-14 Andreas Krebbel <krebbel@linux.ibm.com> 22329 22330 * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack 22331 expander. 22332 * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New 22333 expanders. 22334 223352020-05-14 Andreas Krebbel <krebbel@linux.ibm.com> 22336 22337 * config/s390/s390.c (allocate_stack_space): Add missing updates 22338 of last_probe_offset. 22339 223402020-05-14 Andreas Krebbel <krebbel@linux.ibm.com> 22341 22342 * config/s390/s390.md ("allocate_stack"): Call 22343 anti_adjust_stack_and_probe_stack_clash when stack clash 22344 protection is enabled. 22345 * explow.c (anti_adjust_stack_and_probe_stack_clash): Remove 22346 prototype. Remove static. 22347 * explow.h (anti_adjust_stack_and_probe_stack_clash): Add 22348 prototype. 22349 223502020-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org> 22351 22352 * config/rs6000/altivec.h (vec_extractl): New #define. 22353 (vec_extracth): Likewise. 22354 * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant. 22355 (UNSPEC_EXTRACTR): Likewise. 22356 (vextractl<mode>): New expansion. 22357 (vextractl<mode>_internal): New insn. 22358 (vextractr<mode>): New expansion. 22359 (vextractr<mode>_internal): New insn. 22360 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vextdubvlx): 22361 New built-in function. 22362 (__builtin_altivec_vextduhvlx): Likewise. 22363 (__builtin_altivec_vextduwvlx): Likewise. 22364 (__builtin_altivec_vextddvlx): Likewise. 22365 (__builtin_altivec_vextdubvhx): Likewise. 22366 (__builtin_altivec_vextduhvhx): Likewise. 22367 (__builtin_altivec_vextduwvhx): Likewise. 22368 (__builtin_altivec_vextddvhx): Likewise. 22369 (__builtin_vec_extractl): New overloaded built-in function. 22370 (__builtin_vec_extracth): Likewise. 22371 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): 22372 Define overloaded forms of __builtin_vec_extractl and 22373 __builtin_vec_extracth. 22374 (builtin_function_type): Add cases to mark arguments of new 22375 built-in functions as unsigned. 22376 (rs6000_common_init_builtins): Add 22377 opaque_ftype_opaque_opaque_opaque_opaque. 22378 * config/rs6000/rs6000.md (du_or_d): New mode attribute. 22379 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available 22380 for a Future Architecture): Add description of vec_extractl and 22381 vec_extractr built-in functions. 22382 223832020-05-13 Richard Biener <rguenther@suse.de> 22384 22385 * target.def (add_stmt_cost): Add new vectype parameter. 22386 * targhooks.c (default_add_stmt_cost): Adjust. 22387 * targhooks.h (default_add_stmt_cost): Likewise. 22388 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Take new 22389 vectype parameter. 22390 * config/arm/arm.c (arm_add_stmt_cost): Likewise. 22391 * config/i386/i386.c (ix86_add_stmt_cost): Likewise. 22392 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise. 22393 22394 * tree-vectorizer.h (stmt_info_for_cost::vectype): Add. 22395 (dump_stmt_cost): Add new vectype parameter. 22396 (add_stmt_cost): Likewise. 22397 (record_stmt_cost): Likewise. 22398 (record_stmt_cost): Add overload with old signature. 22399 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 22400 Adjust. 22401 (vect_get_known_peeling_cost): Likewise. 22402 (vect_estimate_min_profitable_iters): Likewise. 22403 * tree-vectorizer.c (dump_stmt_cost): Add new vectype parameter. 22404 * tree-vect-stmts.c (record_stmt_cost): Likewise. 22405 (vect_prologue_cost_for_slp_op): Remove stmt_vec_info parameter 22406 and pass down correct vectype and NULL stmt_info. 22407 (vect_model_simple_cost): Adjust. 22408 (vect_model_store_cost): Likewise. 22409 224102020-05-13 Richard Biener <rguenther@suse.de> 22411 22412 * tree-vectorizer.h (SLP_INSTANCE_GROUP_SIZE): Remove. 22413 (_slp_instance::group_size): Likewise. 22414 * tree-vect-loop.c (vectorizable_reduction): The group size 22415 is the number of lanes in the node. 22416 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise. 22417 (vect_analyze_slp_instance): Do not set SLP_INSTANCE_GROUP_SIZE, 22418 verify it matches the instance trees number of lanes. 22419 (vect_slp_analyze_node_operations_1): Use the numer of lanes 22420 in the node as group size. 22421 (vect_bb_vectorization_profitable_p): Use the instance root 22422 number of lanes for the size of life. 22423 (vect_schedule_slp_instance): Use the number of lanes as 22424 group_size. 22425 * tree-vect-stmts.c (vectorizable_load): Remove SLP instance 22426 parameter. Use the number of lanes of the load for the group 22427 size in the gap adjustment code. 22428 (vect_analyze_stmt): Adjust. 22429 (vect_transform_stmt): Likewise. 22430 224312020-05-13 Jakub Jelinek <jakub@redhat.com> 22432 22433 PR debug/95080 22434 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even 22435 if the last insn is a note. 22436 22437 PR tree-optimization/95060 22438 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Fold a NEGATE_EXPR 22439 if it is the single use of the FMA internal builtin. 22440 224412020-05-13 Bin Cheng <bin.cheng@linux.alibaba.com> 22442 22443 PR tree-optimization/94969 22444 * tree-data-dependence.c (constant_access_functions): Rename to... 22445 (invariant_access_functions): ...this. Add parameter. Check for 22446 invariant access function, rather than constant. 22447 (build_classic_dist_vector): Call above function. 22448 * tree-loop-distribution.c (pg_add_dependence_edges): Add comment. 22449 224502020-05-13 Hongtao Liu <hongtao.liu@intel.com> 22451 22452 PR target/94118 22453 * doc/extend.texi (x86Operandmodifiers): Document more x86 22454 operand modifier. 22455 * gcc/config/i386/i386.c: Add comment for operand modifier N and I. 22456 224572020-05-12 Giuliano Belinassi <giuliano.belinassi@usp.br> 22458 22459 * tree-vrp.c (class vrp_insert): New. 22460 (insert_range_assertions): Move to class vrp_insert. 22461 (dump_all_asserts): Same as above. 22462 (dump_asserts_for): Same as above. 22463 (live): Same as above. 22464 (need_assert_for): Same as above. 22465 (live_on_edge): Same as above. 22466 (finish_register_edge_assert_for): Same as above. 22467 (find_switch_asserts): Same as above. 22468 (find_assert_locations): Same as above. 22469 (find_assert_locations_1): Same as above. 22470 (find_conditional_asserts): Same as above. 22471 (process_assert_insertions): Same as above. 22472 (register_new_assert_for): Same as above. 22473 (vrp_prop): New variable fun. 22474 (vrp_initialize): New parameter. 22475 (identify_jump_threads): Same as above. 22476 (execute_vrp): Same as above. 22477 22478 224792020-05-12 Keith Packard <keith.packard@sifive.com> 22480 22481 * config/riscv/riscv.c (riscv_unique_section): New. 22482 (TARGET_ASM_UNIQUE_SECTION): New. 22483 224842020-05-12 Craig Blackmore <craig.blackmore@embecosm.com> 22485 22486 * config.gcc: Add riscv-shorten-memrefs.o to extra_objs for riscv. 22487 * config/riscv/riscv-passes.def: New file. 22488 * config/riscv/riscv-protos.h (make_pass_shorten_memrefs): Declare. 22489 * config/riscv/riscv-shorten-memrefs.c: New file. 22490 * config/riscv/riscv.c (tree-pass.h): New include. 22491 (riscv_compressed_reg_p): New Function 22492 (riscv_compressed_lw_offset_p): Likewise. 22493 (riscv_compressed_lw_address_p): Likewise. 22494 (riscv_shorten_lw_offset): Likewise. 22495 (riscv_legitimize_address): Attempt to convert base + large_offset 22496 to compressible new_base + small_offset. 22497 (riscv_address_cost): Make anticipated compressed load/stores 22498 cheaper for code size than uncompressed load/stores. 22499 (riscv_register_priority): Move compressed register check to 22500 riscv_compressed_reg_p. 22501 * config/riscv/riscv.h (C_S_BITS): Define. 22502 (CSW_MAX_OFFSET): Define. 22503 * config/riscv/riscv.opt (mshorten-memefs): New option. 22504 * config/riscv/t-riscv (riscv-shorten-memrefs.o): New rule. 22505 (PASSES_EXTRA): Add riscv-passes.def. 22506 * doc/invoke.texi: Document -mshorten-memrefs. 22507 22508 * config/riscv/riscv.c (riscv_new_address_profitable_p): New function. 22509 (TARGET_NEW_ADDRESS_PROFITABLE_P): Define. 22510 * doc/tm.texi: Regenerate. 22511 * doc/tm.texi.in (TARGET_NEW_ADDRESS_PROFITABLE_P): New hook. 22512 * sched-deps.c (attempt_change): Use old address if it is cheaper than 22513 new address. 22514 * target.def (new_address_profitable_p): New hook. 22515 * targhooks.c (default_new_address_profitable_p): New function. 22516 * targhooks.h (default_new_address_profitable_p): Declare. 22517 225182020-05-12 Uroš Bizjak <ubizjak@gmail.com> 22519 22520 PR target/95046 22521 * config/i386/mmx.md (copysignv2sf3): New expander. 22522 (xorsignv2sf3): Ditto. 22523 (signbitv2sf3): Ditto. 22524 225252020-05-12 Uroš Bizjak <ubizjak@gmail.com> 22526 22527 PR target/95046 22528 * config/i386/mmx.md (fmav2sf4): New insn pattern. 22529 (fmsv2sf4): Ditto. 22530 (fnmav2sf4): Ditto. 22531 (fnmsv2sf4): Ditto. 22532 225332020-05-12 H.J. Lu <hongjiu.lu@intel.com> 22534 22535 * Makefile.in (CET_HOST_FLAGS): New. 22536 (COMPILER): Add $(CET_HOST_FLAGS). 22537 * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and 22538 AC_SUBST(CET_HOST_FLAGS). Clear CET_HOST_FLAGS if jit isn't 22539 enabled. 22540 * aclocal.m4: Regenerated. 22541 * configure: Likewise. 22542 225432020-05-12 Uroš Bizjak <ubizjak@gmail.com> 22544 22545 PR target/95046 22546 * config/i386/mmx.md (<code>v2sf2): New insn pattern. 22547 (*mmx_<code>v2sf2): New insn_and_split pattern. 22548 (*mmx_nabsv2sf2): Ditto. 22549 (*mmx_andnotv2sf3): New insn pattern. 22550 (*mmx_<code>v2sf3): Ditto. 22551 * config/i386/i386.md (absneg_op): New code attribute. 22552 * config/i386/i386.c (ix86_build_const_vector): Handle V2SFmode. 22553 (ix86_build_signbit_mask): Ditto. 22554 225552020-05-12 Richard Biener <rguenther@suse.de> 22556 22557 * tree-ssa-live.c (remove_unused_locals): Remove dead debug 22558 bind resets. 22559 225602020-05-12 Jozef Lawrynowicz <jozef.l@mittosystems.com> 22561 22562 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common): 22563 Update prototype to include "local" argument. 22564 * config/msp430/msp430.c (msp430_output_aligned_decl_common): Add 22565 "local" argument. Handle local common decls. 22566 * config/msp430/msp430.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Adjust 22567 msp430_output_aligned_decl_common call with 0 for "local" argument. 22568 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define. 22569 225702020-05-12 Richard Biener <rguenther@suse.de> 22571 22572 * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set. 22573 225742020-05-12 Martin Liska <mliska@suse.cz> 22575 22576 PR sanitizer/95033 22577 PR sanitizer/95051 22578 * sanopt.c (sanitize_rewrite_addressable_params): 22579 Clear DECL_NOT_GIMPLE_REG_P for argument. 22580 225812020-05-12 Richard Sandiford <richard.sandiford@arm.com> 22582 22583 PR tree-optimization/94980 22584 * tree-vect-generic.c (expand_vector_comparison): Use 22585 vector_element_bits_tree to get the element size in bits, 22586 rather than using TYPE_SIZE. 22587 (expand_vector_condition, vector_element): Likewise. 22588 225892020-05-12 Richard Sandiford <richard.sandiford@arm.com> 22590 22591 PR tree-optimization/94980 22592 * tree-vect-generic.c (build_replicated_const): Take the number 22593 of bits as a parameter, instead of the type of the elements. 22594 (do_plus_minus): Update accordingly, using vector_element_bits 22595 to calculate the correct number of bits. 22596 (do_negate): Likewise. 22597 225982020-05-12 Richard Sandiford <richard.sandiford@arm.com> 22599 22600 PR tree-optimization/94980 22601 * tree.h (vector_element_bits, vector_element_bits_tree): Declare. 22602 * tree.c (vector_element_bits, vector_element_bits_tree): New. 22603 * match.pd: Use the new functions instead of determining the 22604 vector element size directly from TYPE_SIZE(_UNIT). 22605 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise. 22606 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise. 22607 * tree-vect-stmts.c (vect_is_simple_cond): Likewise. 22608 * tree-vect-generic.c (expand_vector_piecewise): Likewise. 22609 (expand_vector_conversion): Likewise. 22610 (expand_vector_addition): Likewise for a TYPE_SIZE_UNIT used as 22611 a divisor. Convert the dividend to bits to compensate. 22612 * tree-vect-loop.c (vectorizable_live_operation): Call 22613 vector_element_bits instead of open-coding it. 22614 226152020-05-12 Jakub Jelinek <jakub@redhat.com> 22616 22617 * omp-offload.h (omp_discover_implicit_declare_target): Declare. 22618 * omp-offload.c: Include context.h. 22619 (omp_declare_target_fn_p, omp_declare_target_var_p, 22620 omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r, 22621 omp_discover_implicit_declare_target): New functions. 22622 * cgraphunit.c (analyze_functions): Call 22623 omp_discover_implicit_declare_target. 22624 226252020-05-12 Richard Biener <rguenther@suse.de> 22626 22627 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize 22628 literal constant &MEM[..] to a constant literal. 22629 226302020-05-12 Richard Biener <rguenther@suse.de> 22631 22632 PR tree-optimization/95045 22633 * dbgcnt.def (lim): Add debug-counter. 22634 * tree-ssa-loop-im.c: Include dbgcnt.h. 22635 (find_refs_for_sm): Use lim debug counter for store motion 22636 candidates. 22637 (do_store_motion): Rename form store_motion. Commit edge 22638 insertions... 22639 (store_motion_loop): ... here. 22640 (tree_ssa_lim): Adjust. 22641 226422020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22643 22644 * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm. 22645 (vec_ctzm): Rename to vec_cnttzm. 22646 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 22647 Change fourth operand for vec_ternarylogic to require 22648 compatibility with unsigned SImode rather than unsigned QImode. 22649 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): 22650 Remove overloaded forms of vec_gnb that are no longer needed. 22651 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available 22652 for a Future Architecture): Replace vec_clzm with vec_cntlzm; 22653 replace vec_ctzm with vec_cntlzm; remove four unwanted forms of 22654 vec_gnb; move vec_ternarylogic documentation into this section 22655 and replace const unsigned char with const unsigned int as its 22656 fourth argument. 22657 226582020-05-11 Carl Love <cel@us.ibm.com> 22659 22660 * config/rs6000/altivec.h (vec_genpcvm): New #define. 22661 * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in 22662 instantiation. 22663 (XXGENPCVM_V8HI): Likewise. 22664 (XXGENPCVM_V4SI): Likewise. 22665 (XXGENPCVM_V2DI): Likewise. 22666 (XXGENPCVM): New overloaded built-in instantiation. 22667 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add 22668 entries for FUTURE_BUILTIN_VEC_XXGENPCVM. 22669 (altivec_expand_builtin): Add special handling for 22670 FUTURE_BUILTIN_VEC_XXGENPCVM. 22671 (builtin_function_type): Add handling for 22672 FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}. 22673 * config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator. 22674 (UNSPEC_XXGENPCV): New constant. 22675 (xxgenpcvm_<mode>_internal): New insn. 22676 (xxgenpcvm_<mode>): New expansion. 22677 * doc/extend.texi: Add documentation for vec_genpcvm built-ins. 22678 226792020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22680 22681 * config/rs6000/altivec.h (vec_strir): New #define. 22682 (vec_stril): Likewise. 22683 (vec_strir_p): Likewise. 22684 (vec_stril_p): Likewise. 22685 * config/rs6000/altivec.md (UNSPEC_VSTRIR): New constant. 22686 (UNSPEC_VSTRIL): Likewise. 22687 (vstrir_<mode>): New expansion. 22688 (vstrir_code_<mode>): New insn. 22689 (vstrir_p_<mode>): New expansion. 22690 (vstrir_p_code_<mode>): New insn. 22691 (vstril_<mode>): New expansion. 22692 (vstril_code_<mode>): New insn. 22693 (vstril_p_<mode>): New expansion. 22694 (vstril_p_code_<mode>): New insn. 22695 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vstribr): 22696 New built-in function. 22697 (__builtin_altivec_vstrihr): Likewise. 22698 (__builtin_altivec_vstribl): Likewise. 22699 (__builtin_altivec_vstrihl): Likewise. 22700 (__builtin_altivec_vstribr_p): Likewise. 22701 (__builtin_altivec_vstrihr_p): Likewise. 22702 (__builtin_altivec_vstribl_p): Likewise. 22703 (__builtin_altivec_vstrihl_p): Likewise. 22704 (__builtin_vec_strir): New overloaded built-in function. 22705 (__builtin_vec_stril): Likewise. 22706 (__builtin_vec_strir_p): Likewise. 22707 (__builtin_vec_stril_p): Likewise. 22708 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): 22709 Define overloaded forms of __builtin_vec_strir, 22710 __builtin_vec_stril, __builtin_vec_strir_p, and 22711 __builtin_vec_stril_p. 22712 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available 22713 for a Future Architecture): Add description of vec_stril, 22714 vec_stril_p, vec_strir, and vec_strir_p built-in functions. 22715 227162020-05-11 Kelvin Nilsen <wschmidt@linux.ibm.com> 22717 22718 * config/rs6000/altivec.h (vec_ternarylogic): New #define. 22719 * config/rs6000/altivec.md (UNSPEC_XXEVAL): New constant. 22720 (xxeval): New insn. 22721 * config/rs6000/predicates.md (u8bit_cint_operand): New predicate. 22722 * config/rs6000/rs6000-builtin.def: Add handling of new macro 22723 RS6000_BUILTIN_4. 22724 (BU_FUTURE_V_4): New macro. Use it. 22725 (BU_FUTURE_OVERLOAD_4): Likewise. 22726 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Add 22727 handling for quaternary built-in functions. 22728 (altivec_resolve_overloaded_builtin): Add special-case handling 22729 for __builtin_vec_xxeval. 22730 * config/rs6000/rs6000-call.c: Add handling of new macro 22731 RS6000_BUILTIN_4 in initialization of rs6000_builtin_info, 22732 bdesc0_arg, bdesc1_arg, bdesc2_arg, bdesc_3arg, 22733 bdesc_altivec_preds, bdesc_abs, and bdesc_htm arrays. 22734 (altivec_overloaded_builtins): Add definitions for 22735 FUTURE_BUILTIN_VEC_XXEVAL. 22736 (bdesc_4arg): New array. 22737 (htm_expand_builtin): Add handling for quaternary built-in 22738 functions. 22739 (rs6000_expand_quaternop_builtin): New function. 22740 (rs6000_expand_builtin): Add handling for quaternary built-in 22741 functions. 22742 (rs6000_init_builtins): Initialize builtin_mode_to_type entries 22743 for unsigned QImode and unsigned HImode. 22744 (builtin_quaternary_function_type): New function. 22745 (rs6000_common_init_builtins): Add handling of quaternary 22746 operations. 22747 * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined 22748 constant. 22749 (RS6000_BTC_PREDICATE): Change value of constant. 22750 (RS6000_BTC_ABS): Likewise. 22751 (rs6000_builtins): Add support for new macro RS6000_BUILTIN_4. 22752 * doc/extend.texi (PowerPC AltiVec Built-In Functions Available 22753 for a Future Architecture): Add description of vec_ternarylogic 22754 built-in function. 22755 227562020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22757 22758 * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in 22759 function. 22760 (__builtin_pextd): Likewise. 22761 * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant. 22762 (UNSPEC_PEXTD): Likewise. 22763 (pdepd): New insn. 22764 (pextd): Likewise. 22765 * doc/extend.texi (Basic PowerPC Built-in Functions Available for 22766 a Future Architecture): Add descriptions of __builtin_pdepd and 22767 __builtin_pextd functions. 22768 227692020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22770 22771 * config/rs6000/altivec.h (vec_clrl): New #define. 22772 (vec_clrr): Likewise. 22773 * config/rs6000/altivec.md (UNSPEC_VCLRLB): New constant. 22774 (UNSPEC_VCLRRB): Likewise. 22775 (vclrlb): New insn. 22776 (vclrrb): Likewise. 22777 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vclrlb): New 22778 built-in function. 22779 (__builtin_altivec_vclrrb): Likewise. 22780 (__builtin_vec_clrl): New overloaded built-in function. 22781 (__builtin_vec_clrr): Likewise. 22782 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): 22783 Define overloaded forms of __builtin_vec_clrl and 22784 __builtin_vec_clrr. 22785 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available 22786 for a Future Architecture): Add descriptions of vec_clrl and 22787 vec_clrr. 22788 227892020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22790 22791 * config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New 22792 built-in function definition. 22793 (__builtin_cnttzdm): Likewise. 22794 * config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant. 22795 (UNSPEC_CNTTZDM): Likewise. 22796 (cntlzdm): New insn. 22797 (cnttzdm): Likewise. 22798 * doc/extend.texi (Basic PowerPC Built-in Functions available for 22799 a Future Architecture): Add descriptions of __builtin_cntlzdm and 22800 __builtin_cnttzdm functions. 22801 228022020-05-11 Uroš Bizjak <ubizjak@gmail.com> 22803 22804 PR target/95046 22805 * config/i386/mmx.md (sqrtv2sf2): New insn pattern. 22806 228072020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22808 22809 * config/rs6000/altivec.h (vec_cfuge): New #define. 22810 * config/rs6000/altivec.md (UNSPEC_VCFUGED): New constant. 22811 (vcfuged): New insn. 22812 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vcfuged): 22813 New built-in function. 22814 * config/rs6000/rs6000-call.c (builtin_function_type): Add 22815 handling for FUTURE_BUILTIN_VCFUGED case. 22816 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available 22817 for a Future Architecture): Add description of vec_cfuge built-in 22818 function. 22819 228202020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22821 22822 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New 22823 #define. 22824 (BU_FUTURE_MISC_1): Likewise. 22825 (BU_FUTURE_MISC_2): Likewise. 22826 (BU_FUTURE_MISC_3): Likewise. 22827 (__builtin_cfuged): New built-in function definition. 22828 * config/rs6000/rs6000.md (UNSPEC_CFUGED): New constant. 22829 (cfuged): New insn. 22830 * doc/extend.texi (Basic PowerPC Built-in Functions Available for 22831 a Future Architecture): New subsubsection. 22832 228332020-05-11 Richard Biener <rguenther@suse.de> 22834 22835 PR tree-optimization/95049 22836 * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition 22837 between different constants. 22838 228392020-05-11 Richard Sandiford <richard.sandiford@arm.com> 22840 22841 * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs. 22842 228432020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22844 Bill Schmidt <wschmidt@linux.ibm.com> 22845 22846 * config/rs6000/altivec.h (vec_gnb): New #define. 22847 * config/rs6000/altivec.md (UNSPEC_VGNB): New constant. 22848 (vgnb): New insn. 22849 * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New 22850 #define. 22851 (BU_FUTURE_OVERLOAD_2): Likewise. 22852 (BU_FUTURE_OVERLOAD_3): Likewise. 22853 (__builtin_altivec_gnb): New built-in function. 22854 (__buiiltin_vec_gnb): New overloaded built-in function. 22855 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): 22856 Define overloaded forms of __builtin_vec_gnb. 22857 (rs6000_expand_binop_builtin): Add error checking for 2nd argument 22858 of __builtin_vec_gnb. 22859 (builtin_function_type): Mark return value and arguments unsigned 22860 for FUTURE_BUILTIN_VGNB. 22861 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available 22862 for a Future Architecture): Add description of vec_gnb built-in 22863 function. 22864 228652020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22866 Bill Schmidt <wschmidt@linux.ibm.com> 22867 22868 * config/rs6000/altivec.h (vec_pdep): New macro implementing new 22869 built-in function. 22870 (vec_pext): Likewise. 22871 * config/rs6000/altivec.md (UNSPEC_VPDEPD): New constant. 22872 (UNSPEC_VPEXTD): Likewise. 22873 (vpdepd): New insn. 22874 (vpextd): Likewise. 22875 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vpdepd): New 22876 built-in function. 22877 (__builtin_altivec_vpextd): Likewise. 22878 * config/rs6000/rs6000-call.c (builtin_function_type): Add 22879 handling for FUTURE_BUILTIN_VPDEPD and FUTURE_BUILTIN_VPEXTD 22880 cases. 22881 * doc/extend.texi (PowerPC Altivec Built-in Functions Available 22882 for a Future Architecture): Add description of vec_pdep and 22883 vec_pext built-in functions. 22884 228852020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 22886 Bill Schmidt <wschmidt@linux.ibm.com> 22887 22888 * config/rs6000/altivec.h (vec_clzm): New macro. 22889 (vec_ctzm): Likewise. 22890 * config/rs6000/altivec.md (UNSPEC_VCLZDM): New constant. 22891 (UNSPEC_VCTZDM): Likewise. 22892 (vclzdm): New insn. 22893 (vctzdm): Likewise. 22894 * config/rs6000/rs6000-builtin.def (BU_FUTURE_V_0): New macro. 22895 (BU_FUTURE_V_1): Likewise. 22896 (BU_FUTURE_V_2): Likewise. 22897 (BU_FUTURE_V_3): Likewise. 22898 (__builtin_altivec_vclzdm): New builtin definition. 22899 (__builtin_altivec_vctzdm): Likewise. 22900 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Cause 22901 _ARCH_PWR_FUTURE macro to be defined if OPTION_MASK_FUTURE flag is 22902 set. 22903 * config/rs6000/rs6000-call.c (builtin_function_type): Set return 22904 value and parameter types to be unsigned for VCLZDM and VCTZDM. 22905 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add 22906 support for TARGET_FUTURE flag. 22907 * config/rs6000/rs6000.h (RS6000_BTM_FUTURE): New macro constant. 22908 * doc/extend.texi (PowerPC Altivec Built-in Functions Available 22909 for a Future Architecture): New subsubsection. 22910 229112020-05-11 Richard Biener <rguenther@suse.de> 22912 22913 PR tree-optimization/94988 22914 PR tree-optimization/95025 22915 * tree-ssa-loop-im.c (seq_entry): Make a struct, add from. 22916 (sm_seq_push_down): Take extra parameter denoting where we 22917 moved the ref to. 22918 (execute_sm_exit): Re-issue sm_other stores in the correct 22919 order. 22920 (sm_seq_valid_bb): When always executed, allow sm_other to 22921 prevail inbetween sm_ord and record their stored value. 22922 (hoist_memory_references): Adjust refs_not_supported propagation 22923 and prune sm_other from the end of the ordered sequences. 22924 229252020-05-11 Felix Yang <felix.yang@huawei.com> 22926 22927 PR target/94991 22928 * config/aarch64/aarch64.md (mov<mode>): 22929 Bitcasts to the equivalent integer mode using gen_lowpart 22930 instead of doing FAIL for scalar floating point move. 22931 229322020-05-11 Alex Coplan <alex.coplan@arm.com> 22933 22934 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add case 22935 to correctly calculate cost for new pattern (*csinv3_uxtw_insn3). 22936 * config/aarch64/aarch64.md (*csinv3_utxw_insn1): New. 22937 (*csinv3_uxtw_insn2): New. 22938 (*csinv3_uxtw_insn3): New. 22939 * config/aarch64/iterators.md (neg_not_cs): New. 22940 229412020-05-11 Uroš Bizjak <ubizjak@gmail.com> 22942 22943 PR target/95046 22944 * config/i386/mmx.md (mmx_addv2sf3): Use "v" constraint 22945 instead of "Yv" for AVX alternatives. Add "prefix" attribute. 22946 (*mmx_addv2sf3): Ditto. 22947 (*mmx_subv2sf3): Ditto. 22948 (*mmx_mulv2sf3): Ditto. 22949 (*mmx_<code>v2sf3): Ditto. 22950 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto. 22951 229522020-05-11 Uroš Bizjak <ubizjak@gmail.com> 22953 22954 PR target/95046 22955 * config/i386/i386.c (ix86_vector_mode_supported_p): 22956 Vectorize 3dNOW! vector modes for TARGET_MMX_WITH_SSE. 22957 * config/i386/mmx.md (*mov<mode>_internal): Do not set 22958 mode of alternative 13 to V2SF for TARGET_MMX_WITH_SSE. 22959 22960 (mmx_addv2sf3): Change operand predicates from 22961 nonimmediate_operand to register_mmxmem_operand. 22962 (addv2sf3): New expander. 22963 (*mmx_addv2sf3): Add SSE/AVX alternatives. Change operand 22964 predicates from nonimmediate_operand to register_mmxmem_operand. 22965 Enable instruction pattern for TARGET_MMX_WITH_SSE. 22966 22967 (mmx_subv2sf3): Change operand predicate from 22968 nonimmediate_operand to register_mmxmem_operand. 22969 (mmx_subrv2sf3): Ditto. 22970 (subv2sf3): New expander. 22971 (*mmx_subv2sf3): Add SSE/AVX alternatives. Change operand 22972 predicates from nonimmediate_operand to register_mmxmem_operand. 22973 Enable instruction pattern for TARGET_MMX_WITH_SSE. 22974 22975 (mmx_mulv2sf3): Change operand predicates from 22976 nonimmediate_operand to register_mmxmem_operand. 22977 (mulv2sf3): New expander. 22978 (*mmx_mulv2sf3): Add SSE/AVX alternatives. Change operand 22979 predicates from nonimmediate_operand to register_mmxmem_operand. 22980 Enable instruction pattern for TARGET_MMX_WITH_SSE. 22981 22982 (mmx_<code>v2sf3): Change operand predicates from 22983 nonimmediate_operand to register_mmxmem_operand. 22984 (<code>v2sf3): New expander. 22985 (*mmx_<code>v2sf3): Add SSE/AVX alternatives. Change operand 22986 predicates from nonimmediate_operand to register_mmxmem_operand. 22987 Enable instruction pattern for TARGET_MMX_WITH_SSE. 22988 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto. 22989 229902020-05-11 Martin Liska <mliska@suse.cz> 22991 22992 PR c/95040 22993 * common.opt: Fix typo in option description. 22994 229952020-05-11 Martin Liska <mliska@suse.cz> 22996 22997 PR gcov-profile/94928 22998 * gcov-io.h: Add caveat about coverage format parsing and 22999 possible outdated documentation. 23000 230012020-05-11 Xiong Hu Luo <luoxhu@linux.ibm.com> 23002 23003 PR tree-optimization/83403 23004 * tree-affine.c (expr_to_aff_combination): Replace SSA_NAME with 23005 determine_value_range, Add fold conversion of MULT_EXPR, fix the 23006 previous PLUS_EXPR. 23007 230082020-05-10 Gerald Pfeifer <gerald@pfeifer.com> 23009 23010 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and 23011 __ILP32__ for 32-bit targets. 23012 230132020-05-09 Eric Botcazou <ebotcazou@adacore.com> 23014 23015 * tree.h (expr_align): Delete. 23016 * tree.c (expr_align): Likewise. 23017 230182020-05-09 Hans-Peter Nilsson <hp@axis.com> 23019 23020 * resource.c (init_resource_info): Filter-out TARGET_FLAGS_REGNUM 23021 from end_of_function_needs. 23022 23023 * config.gcc: Remove support for crisv32-*-* and cris-*-linux*. 23024 * config/cris/t-linux, config/cris/linux.h, config/cris/linux.opt: 23025 Remove. 23026 * config/cris/t-elfmulti: Remove crisv32 multilib. 23027 * config/cris: Remove shared-library and CRIS v32 support. 23028 23029 Move trivially from cc0 to reg:CC model, removing most optimizations. 23030 * config/cris/cris.md: Remove all side-effect patterns and their 23031 splitters. Remove most peepholes. Add clobbers of CRIS_CC0_REGNUM 23032 to all but post-reload control-flow and movem insns. Remove 23033 constraints on all modified expanders. Remove obsoleted cc0-related 23034 references. 23035 (attr "cc"): Remove alternative "rev". 23036 (mode_iterator BWDD, DI_, SI_): New. 23037 (mode_attr sCC_destc, cmp_op1c, cmp_op2c): New. 23038 ("tst<mode>"): Remove; fold as "M" alternative into compare insn. 23039 ("mstep_shift", "mstep_mul"): Remove patterns. 23040 ("s<rcond>", "s<ocond>", "s<ncond>"): Anonymize. 23041 * config/cris/cris.c: Change all non-condition-code, 23042 non-control-flow emitted insns to add a parallel with clobber of 23043 CRIS_CC0_REGNUM, mostly by changing from gen_rtx_SET with 23044 emit_insn to use of emit_move_insn, gen_add2_insn or 23045 cris_emit_insn, as convenient. 23046 (cris_reg_overlap_mentioned_p) 23047 (cris_normal_notice_update_cc, cris_notice_update_cc): Remove. 23048 (cris_movem_load_rest_p): Don't assume all elements in a 23049 PARALLEL are SETs. 23050 (cris_store_multiple_op_p): Ditto. 23051 (cris_emit_insn): New function. 23052 * cris/cris-protos.h (cris_emit_insn): Declare. 23053 23054 PR target/93372 23055 * config/cris/cris.md (zcond): New code_iterator. 23056 ("*cbranch<mode>4_btstq<CC>"): New insn_and_split. 23057 23058 * config/cris/cris.c (TARGET_FLAGS_REGNUM): Define. 23059 23060 * config/cris/cris.h (REVERSIBLE_CC_MODE): Define to true. 23061 23062 * config/cris/cris.md ("movsi"): For memory destination 23063 post-reload, generate clobberless variant. Similarly for a 23064 zero-source post-reload. 23065 ("*mov_tomem<mode>_split"): New split. 23066 ("*mov_tomem<mode>"): New insn. 23067 ("enabled", mov_tomem_enabled): Define and use to exclude "x" -> 23068 "Q>m" for less-than-SImode. 23069 ("*mov_fromzero<mode>_split"): New split. 23070 ("*mov_fromzero<mode>"): New insn. 23071 23072 Prepare for cmpelim pass to eliminate redundant compare insns. 23073 * config/cris/cris-modes.def: New file. 23074 * config/cris/cris-protos.h (cris_select_cc_mode): Declare. 23075 (cris_notice_update_cc): Remove left-over declaration. 23076 * config/cris/cris.c (TARGET_CC_MODES_COMPATIBLE): Define. 23077 (cris_select_cc_mode, cris_cc_modes_compatible): New functions. 23078 * config/cris/cris.h (SELECT_CC_MODE): Define. 23079 * config/cris/cris.md (NZSET, NZUSE, NZVCSET, NZVCUSE): New 23080 mode_iterators. 23081 (cond): New code_iterator. 23082 (nzcond): Replacement for incorrect ncond. All callers changed. 23083 (nzvccond): Replacement for ocond. All callers changed. 23084 (rnzcond): Replacement for rcond. All callers changed. 23085 (xCC): New code_attr. 23086 (cmp_op1c, cmp_op0c): Renumber from cmp_op1c and cmp_op2c. All 23087 users changed. 23088 ("*cmpdi<NZVCSET:mode>"): Rename from "*cmpdi". Replace 23089 CCmode with iteration over NZVCSET. 23090 ("*cmp_ext<BW:mode><NZVCSET:mode>"): Similarly; rename from 23091 "*cmp_ext<mode>". 23092 ("*cmpsi<NZVCSET:mode>"): Similarly, from "*cmpsi". 23093 ("*cmp<BW:mode><NZVCSET:mode>"): Similarly from "*cmp<mode>". 23094 ("*btst<mode>"): Similarly, from "*btst". 23095 ("*cbranch<mode><code>4"): Rename from "*cbranch<mode>4", 23096 iterating over cond instead of matching the comparison with 23097 ordered_comparison_operator. 23098 ("*cbranch<mode>4_btstq<CC>"): Correct label operand number. 23099 ("b<zcond:code><mode>"): Rename from "b<ncond:code>", iterating 23100 over NZUSE. 23101 ("b<nzvccond:code><mode>"): Similarly from "b<ocond:code>", over 23102 NZVCUSE. Remove FIXME. 23103 ("*b<nzcond:code>_reversed<mode>"): Similarly from 23104 "*b<ncond:code>_reversed", over NZUSE. 23105 ("*b<nzvccond:code>_reversed<mode>"): Similarly from 23106 "*b<ocond:code>_reversed", over NZVCUSE. Remove FIXME. 23107 ("b<rnzcond:code><mode>"): Similarly from "b<rcond:code>", 23108 over NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice, 23109 depending on CC_NZmode vs. CCmode. Remove FIXME. 23110 ("*b<rnzcond:code>_reversed<mode>"): Similarly from 23111 "*b<rcond:code>_reversed", over NZUSE. 23112 ("*cstore<mode><code>4"): Rename from "*cstore<mode>4", 23113 iterating over cond instead of matching the comparison with 23114 ordered_comparison_operator. 23115 ("*s<nzcond:code><mode>"): Rename from "*s<ncond:code>", 23116 iterating over NZUSE. 23117 ("*s<rnzcond:code><mode>"): Similar from "*s<rcond:code>", over 23118 NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice, 23119 depending on CC_NZmode vs. CCmode. 23120 ("*s<nzvccond:code><mode>"): Simlar from "*s<ocond:code>", over 23121 NZVCUSE. Remove FIXME. 23122 ("cc"): Comment on new use. 23123 ("cc_enabled"): New attribute. 23124 ("enabled"): Make default fall back to cc_enabled. 23125 ("setnz", "ccnz", "setnzvc", "ccnzvc", "setcc", "cccc"): New 23126 default_subst_attrs. 23127 ("setnz_subst", "setnzvc_subst", "setcc_subst"): New default_subst. 23128 ("*movsi_internal<setcc><setnz><setnzvc>"): Rename from 23129 "*movsi_internal". Correct contents of, and rename attribute 23130 "cc" to "cc<cccc><ccnz><ccnzvc>". 23131 ("anz", "anzvc", "acc"): New define_subst_attrs. 23132 ("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from 23133 "movhi". Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>". 23134 ("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from 23135 "movqi". Correct contents of, and rename "cc" attribute to 23136 "cc<cccc><ccnz><ccnzvc>". 23137 ("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>". 23138 ("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>". 23139 ("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>". 23140 ("<acc><anz><anzvc>extend<mode>si2<setcc><setnz><setnzvc>"): 23141 Rename from "extend<mode>si2". 23142 ("<acc><anz><anzvc>zero_extend<mode>si2<setcc><setnz><setnzvc>"): 23143 Similar, from "zero_extend<mode>si2". 23144 ("*adddi3<setnz>"): Rename from "*adddi3". 23145 ("*subdi3<setnz>"): Similarly from "*subdi3". 23146 ("*addsi3<setnz>"): Similarly from "*addsi3". 23147 ("*subsi3<setnz>"): Similarly from "*subsi3". 23148 ("*addhi3<setnz>"): Similarly from "*addhi3" and decorate the 23149 "cc" attribute to "cc<ccnz>". 23150 ("*addqi3<setnz>"): Similarly from "*addqi3". 23151 ("*sub<mode>3<setnz>"): Similarly from "*sub<mode>3". 23152 ("*expanded_andsi<setcc><setnz><setnzvc>"): Rename from 23153 "*expanded_andsi". 23154 ("*iorsi3<setcc><setnz><setnzvc>"): Similar from "*iorsi3". 23155 Decorate "cc" attribute to make "cc<cccc><ccnz><ccnzvc>". 23156 ("*iorhi3<setcc><setnz><setnzvc>"): Similar from "*iorhi3". 23157 ("*iorqi3<setcc><setnz><setnzvc>"): Similar from "*iorqi3". 23158 ("*expanded_andhi<setcc><setnz><setnzvc>"): Similar from 23159 "*expanded_andhi". Add quick cc-setting alternative for 0..31. 23160 ("*andqi3<setcc><setnz><setnzvc>"): Similar from "*andqi3". 23161 ("<acc><anz><anzvc>xorsi3<setcc><setnz><setnzvc>"): Rename 23162 from "xorsi3". 23163 ("<acc><anz><anzvc>one_cmplsi2<setcc><setnz><setnzvc>"): Rename 23164 from "one_cmplsi2". 23165 ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename 23166 from "<shlr>si3". 23167 ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename 23168 from "clzsi2". 23169 ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename 23170 from "bswapsi2". 23171 ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3". 23172 23173 * config/cris/cris-modes.def (CC_ZnN): New CC_MODE. 23174 * config/cris/cris.c (cris_rtx_costs): Handle pre-split bit-test 23175 * config/cris/cris.md (ZnNNZSET, ZnNNZUSE): New mode_iterators. 23176 (znnCC, rznnCC): New code_attrs. 23177 ("*btst<mode>"): Iterator over ZnNNZSET instead of NZVCSET. Remove 23178 obseolete comment. Add belt-and-suspenders mode-test to condition. 23179 Add fixme regarding remaining matched-but-not-generated case. 23180 ("*cbranch<mode>4_btstrq1_<CC>"): New insn_and_split. 23181 ("*cbranch<mode>4_btstqb0_<CC>"): Rename from 23182 "*cbranch<mode>4_btstq<CC>". Split to CC_NZ instead of CC. 23183 ("*b<zcond:code><mode>"): Iterate over ZnNNZUSE instead of NZUSE. 23184 Handle output of CC_ZnNmode. 23185 ("*b<nzcond:code>_reversed<mode>"): Ditto. 23186 23187 * config/cris/cris.c (cris_select_cc_mode): Return CC_NZmode for 23188 NEG too. Correct comment. 23189 * config/cris/cris.md ("<anz>neg<mode>2<setnz>"): Rename from 23190 "neg<mode>2". 23191 231922020-05-08 Vladimir Makarov <vmakarov@redhat.com> 23193 23194 * ira-color.c (update_costs_from_allocno): Remove 23195 conflict_cost_update_p argument. Propagate costs only along 23196 threads. Always do conflict cost update. Add printing debugging 23197 info. 23198 (update_costs_from_copies): Add printing debugging info. 23199 (restore_costs_from_copies): Ditto. 23200 (assign_hard_reg): Improve debug info. 23201 (push_only_colorable): Ditto. Call update_costs_from_prefs. 23202 (color_allocnos): Remove update_costs_from_prefs. 23203 232042020-05-08 Richard Biener <rguenther@suse.de> 23205 23206 * tree-vectorizer.h (vec_info::slp_loads): New. 23207 (vect_optimize_slp): Declare. 23208 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do 23209 nothing when there are no loads. 23210 (vect_gather_slp_loads): Gather loads into a vector. 23211 (vect_supported_load_permutation_p): Remove. 23212 (vect_analyze_slp_instance): Do not verify permutation 23213 validity here. 23214 (vect_analyze_slp): Optimize permutations of reductions 23215 after all SLP instances have been gathered and gather 23216 all loads. 23217 (vect_optimize_slp): New function split out from 23218 vect_supported_load_permutation_p. Elide some permutations. 23219 (vect_slp_analyze_bb_1): Call vect_optimize_slp. 23220 * tree-vect-loop.c (vect_analyze_loop_2): Likewise. 23221 * tree-vect-stmts.c (vectorizable_load): Check whether 23222 the load can be permuted. When generating code assert we can. 23223 232242020-05-08 Richard Biener <rguenther@suse.de> 23225 23226 * tree-ssa-sccvn.c (rpo_avail): Change type to 23227 eliminate_dom_walker *. 23228 (eliminate_with_rpo_vn): Adjust rpo_avail to make vn_valueize 23229 use the DOM walker availability. 23230 (vn_reference_fold_indirect): Use get_addr_base_and_unit_offset_1 23231 with vn_valueize as valueization callback. 23232 (vn_reference_maybe_forwprop_address): Likewise. 23233 * tree-dfa.c (get_addr_base_and_unit_offset_1): Also valueize 23234 array_ref_low_bound. 23235 232362020-05-08 Jakub Jelinek <jakub@redhat.com> 23237 23238 PR tree-optimization/94786 23239 * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New 23240 simplification. 23241 23242 PR target/94857 23243 * config/i386/i386.md (peephole2 after *add<mode>3_cc_overflow_1): New 23244 define_peephole2. 23245 23246 PR middle-end/94724 23247 * tree.c (get_narrower): Reuse the op temporary instead of 23248 shadowing it. 23249 23250 PR tree-optimization/94783 23251 * match.pd ((X + (X >> (prec - 1))) ^ (X >> (prec - 1)) to abs (X)): 23252 New simplification. 23253 23254 PR tree-optimization/94956 23255 * match.pd (FFS): Optimize __builtin_ffs* of non-zero argument into 23256 __builtin_ctz* + 1 if direct IFN_CTZ is supported. 23257 23258 PR tree-optimization/94913 23259 * match.pd (A - B + -1 >= A to B >= A): New simplification. 23260 (A - B > A to A < B): Don't test TYPE_OVERFLOW_WRAPS which is always 23261 true for TYPE_UNSIGNED integral types. 23262 23263 PR bootstrap/94961 23264 PR rtl-optimization/94516 23265 * rtl.h (remove_reg_equal_equiv_notes): Add a bool argument defaulted 23266 to false. 23267 * rtlanal.c (remove_reg_equal_equiv_notes): Add no_rescan argument. 23268 Call df_notes_rescan if that argument is not true and returning true. 23269 * combine.c (adjust_for_new_dest): Pass true as second argument to 23270 remove_reg_equal_equiv_notes. 23271 * postreload.c (reload_combine_recognize_pattern): Don't call 23272 df_notes_rescan. 23273 232742020-05-07 Segher Boessenkool <segher@kernel.crashing.org> 23275 23276 * config/rs6000/rs6000.md (*setnbc_<un>signed_<GPR:mode>): New 23277 define_insn. 23278 (*setnbcr_<un>signed_<GPR:mode>): New define_insn. 23279 (*neg_eq_<mode>): Avoid for TARGET_FUTURE; add missing && 1. 23280 (*neg_ne_<mode>): Likewise. 23281 232822020-05-07 Segher Boessenkool <segher@kernel.crashing.org> 23283 23284 * config/rs6000/rs6000.md (setbc_<un>signed_<GPR:mode>): New 23285 define_insn. 23286 (*setbcr_<un>signed_<GPR:mode>): Likewise. 23287 (cstore<mode>4): Use setbc[r] if available. 23288 (<code><GPR:mode><GPR2:mode>2_isel): Avoid for TARGET_FUTURE. 23289 (eq<mode>3): Use setbc for TARGET_FUTURE. 23290 (*eq<mode>3): Avoid for TARGET_FUTURE. 23291 (ne<mode>3): Replace :P with :GPR; use setbc for TARGET_FUTURE; 23292 else for non-Pmode, use gen_eq and gen_xor. 23293 (*ne<mode>3): Avoid for TARGET_FUTURE. 23294 (*eqsi3_ext<mode>): Avoid for TARGET_FUTURE; fix missing && 1. 23295 232962020-05-07 Jeff Law <law@redhat.com> 23297 23298 * config/h8300/h8300.md: Move expanders and patterns into 23299 files based on functionality. 23300 * config/h8300/addsub.md: New file. 23301 * config/h8300/bitfield.md: New file 23302 * config/h8300/combiner.md: New file 23303 * config/h8300/divmod.md: New file 23304 * config/h8300/extensions.md: New file 23305 * config/h8300/jumpcall.md: New file 23306 * config/h8300/logical.md: New file 23307 * config/h8300/movepush.md: New file 23308 * config/h8300/multiply.md: New file 23309 * config/h8300/other.md: New file 23310 * config/h8300/proepi.md: New file 23311 * config/h8300/shiftrotate.md: New file 23312 * config/h8300/testcompare.md: New file 23313 23314 * config/h8300/h8300.md (adds/subs splitters): Merge into single 23315 splitter. 23316 (negation expanders and patterns): Simplify and combine using 23317 iterators. 23318 (one_cmpl expanders and patterns): Likewise. 23319 (tablejump, indirect_jump patterns ): Likewise. 23320 (shift and rotate expanders and patterns): Likewise. 23321 (absolute value expander and pattern): Drop expander, rename pattern 23322 to just "abssf2" 23323 (peephole2 patterns): Move into... 23324 * config/h8300/peepholes.md: New file. 23325 23326 * config/h8300/constraints.md (L and N): Simplify now that we're not 23327 longer supporting the original H8/300 chip. 23328 * config/h8300/elf.h (LINK_SPEC): Likewise. Default to H8/300H. 23329 * config/h8300/h8300.c (shift_alg_qi): Drop H8/300 support. 23330 (shift_alg_hi, shift_alg_si): Similarly. 23331 (h8300_option_overrides): Similarly. Default to H8/300H. If 23332 compiling for H8/S, then turn off H8/300H. Do not update the 23333 shift_alg tables for H8/300 port. 23334 (h8300_emit_stack_adjustment): Remove support for H8/300. Simplify 23335 where possible. 23336 (push, split_adds_subs, h8300_rtx_costs): Likewise. 23337 (h8300_print_operand, compute_mov_length): Likewise. 23338 (output_plussi, compute_plussi_length): Likewise. 23339 (compute_plussi_cc, output_logical_op): Likewise. 23340 (compute_logical_op_length, compute_logical_op_cc): Likewise. 23341 (get_shift_alg, h8300_shift_needs_scratch): Likewise. 23342 (output_a_shift, compute_a_shift_length): Likewise. 23343 (output_a_rotate, compute_a_rotate_length): Likewise. 23344 (output_simode_bld, h8300_hard_regno_mode_ok): Likewise. 23345 (h8300_modes_tieable_p, h8300_return_in_memory): Likewise. 23346 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise. 23347 (attr_cpu, TARGET_H8300): Remove. 23348 (TARGET_DEFAULT): Update. 23349 (UNITS_PER_WORD, PARM_BOUNDARY): Simplify where possible. 23350 (BIGGEST_ALIGNMENT, STACK_BOUNDARY): Likewise. 23351 (CONSTANT_ADDRESS_P, MOVE_MAX, Pmode): Likewise. 23352 (SIZE_TYPE, POINTER_SIZE, ASM_WORD_OP): Likewise. 23353 * config/h8300/h8300.md: Simplify patterns throughout. 23354 * config/h8300/t-h8300: Update multilib configuration. 23355 23356 * config/h8300/h8300.h (LINK_SPEC): Remove. 23357 (USER_LABEL_PREFIX): Likewise. 23358 23359 * config/h8300/h8300.c (h8300_asm_named_section): Remove. 23360 (h8300_option_override): Remove remnants of COFF support. 23361 233622020-05-07 Alan Modra <amodra@gmail.com> 23363 23364 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Replace 23365 set_rtx_cost with set_src_cost. 23366 * tree-switch-conversion.c (bit_test_cluster::emit): Likewise. 23367 233682020-05-07 Kewen Lin <linkw@gcc.gnu.org> 23369 23370 * tree-vect-stmts.c (vectorizable_load): Check alignment to avoid 23371 redundant half vector handlings for no peeling gaps. 23372 233732020-05-07 Giuliano Belinassi <giuliano.belinassi@usp.br> 23374 23375 * tree-ssa-operands.c (operands_scanner): New class. 23376 (operands_bitmap_obstack): Remove. 23377 (n_initialized): Remove. 23378 (build_uses): Move to operands_scanner class. 23379 (build_vuse): Same as above. 23380 (build_vdef): Same as above. 23381 (verify_ssa_operands): Same as above. 23382 (finalize_ssa_uses): Same as above. 23383 (cleanup_build_arrays): Same as above. 23384 (finalize_ssa_stmt_operands): Same as above. 23385 (start_ssa_stmt_operands): Same as above. 23386 (append_use): Same as above. 23387 (append_vdef): Same as above. 23388 (add_virtual_operand): Same as above. 23389 (add_stmt_operand): Same as above. 23390 (get_mem_ref_operands): Same as above. 23391 (get_tmr_operands): Same as above. 23392 (maybe_add_call_vops): Same as above. 23393 (get_asm_stmt_operands): Same as above. 23394 (get_expr_operands): Same as above. 23395 (parse_ssa_operands): Same as above. 23396 (finalize_ssa_defs): Same as above. 23397 (build_ssa_operands): Same as above, plus create a C-like wrapper. 23398 (update_stmt_operands): Create an instance of operands_scanner. 23399 234002020-05-07 Richard Biener <rguenther@suse.de> 23401 23402 PR ipa/94947 23403 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use 23404 DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible. 23405 (refered_from_nonlocal_var): Likewise. 23406 (ipa_pta_execute): Likewise. 23407 234082020-05-07 Erick Ochoa <erick.ochoa@theobroma-systems.com> 23409 23410 * gcc/tree-ssa-struct-alias.c: Fix comments 23411 234122020-05-07 Martin Liska <mliska@suse.cz> 23413 23414 * doc/invoke.texi: Fix 2 optindex entries. 23415 234162020-05-07 Richard Biener <rguenther@suse.de> 23417 23418 PR middle-end/94703 23419 * tree-core.h (tree_decl_common::gimple_reg_flag): Rename ... 23420 (tree_decl_common::not_gimple_reg_flag): ... to this. 23421 * tree.h (DECL_GIMPLE_REG_P): Rename ... 23422 (DECL_NOT_GIMPLE_REG_P): ... to this. 23423 * gimple-expr.c (copy_var_decl): Copy DECL_NOT_GIMPLE_REG_P. 23424 (create_tmp_reg): Simplify. 23425 (create_tmp_reg_fn): Likewise. 23426 (is_gimple_reg): Check DECL_NOT_GIMPLE_REG_P for all regs. 23427 * gimplify.c (create_tmp_from_val): Simplify. 23428 (gimplify_bind_expr): Likewise. 23429 (gimplify_compound_literal_expr): Likewise. 23430 (gimplify_function_tree): Likewise. 23431 (prepare_gimple_addressable): Set DECL_NOT_GIMPLE_REG_P. 23432 * asan.c (create_odr_indicator): Do not clear DECL_GIMPLE_REG_P. 23433 (asan_add_global): Copy it. 23434 * cgraphunit.c (cgraph_node::expand_thunk): Force args 23435 to be GIMPLE regs. 23436 * function.c (gimplify_parameters): Copy 23437 DECL_NOT_GIMPLE_REG_P. 23438 * ipa-param-manipulation.c 23439 (ipa_param_body_adjustments::common_initialization): Simplify. 23440 (ipa_param_body_adjustments::reset_debug_stmts): Copy 23441 DECL_NOT_GIMPLE_REG_P. 23442 * omp-low.c (lower_omp_for_scan): Do not set DECL_GIMPLE_REG_P. 23443 * sanopt.c (sanitize_rewrite_addressable_params): Likewise. 23444 * tree-cfg.c (make_blocks_1): Simplify. 23445 (verify_address): Do not verify DECL_GIMPLE_REG_P setting. 23446 * tree-eh.c (lower_eh_constructs_2): Simplify. 23447 * tree-inline.c (declare_return_variable): Adjust and 23448 generalize. 23449 (copy_decl_to_var): Copy DECL_NOT_GIMPLE_REG_P. 23450 (copy_result_decl_to_var): Likewise. 23451 * tree-into-ssa.c (pass_build_ssa::execute): Adjust comment. 23452 * tree-nested.c (create_tmp_var_for): Simplify. 23453 * tree-parloops.c (separate_decls_in_region_name): Copy 23454 DECL_NOT_GIMPLE_REG_P. 23455 * tree-sra.c (create_access_replacement): Adjust and 23456 generalize partial def support. 23457 * tree-ssa-forwprop.c (pass_forwprop::execute): Set 23458 DECL_NOT_GIMPLE_REG_P on decls we introduce partial defs on. 23459 * tree-ssa.c (maybe_optimize_var): Handle clearing of 23460 TREE_ADDRESSABLE and setting/clearing DECL_NOT_GIMPLE_REG_P 23461 independently. 23462 * lto-streamer-out.c (hash_tree): Hash DECL_NOT_GIMPLE_REG_P. 23463 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream 23464 DECL_NOT_GIMPLE_REG_P. 23465 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise. 23466 * cfgexpand.c (avoid_type_punning_on_regs): New. 23467 (discover_nonconstant_array_refs): Call 23468 avoid_type_punning_on_regs to avoid unsupported mode punning. 23469 234702020-05-07 Alex Coplan <alex.coplan@arm.com> 23471 23472 * config/arm/arm.c (arm_add_stmt_cost): Fix declaration, remove class 23473 from definition. 23474 234752020-05-07 Richard Biener <rguenther@suse.de> 23476 23477 PR tree-optimization/57359 23478 * tree-ssa-loop-im.c (im_mem_ref::indep_loop): Remove. 23479 (in_mem_ref::dep_loop): Repurpose. 23480 (LOOP_DEP_BIT): Remove. 23481 (enum dep_kind): New. 23482 (enum dep_state): Likewise. 23483 (record_loop_dependence): New function to populate the 23484 dependence cache. 23485 (query_loop_dependence): New function to query the dependence 23486 cache. 23487 (memory_accesses::refs_in_loop): Rename to ... 23488 (memory_accesses::refs_loaded_in_loop): ... this and change to 23489 only record loads. 23490 (outermost_indep_loop): Adjust. 23491 (mem_ref_alloc): Likewise. 23492 (gather_mem_refs_stmt): Likewise. 23493 (mem_refs_may_alias_p): Add tbaa_p parameter and pass it down. 23494 (struct sm_aux): New. 23495 (execute_sm): Split code generation on exits, record state 23496 into new hash-map. 23497 (enum sm_kind): New. 23498 (execute_sm_exit): Exit code generation part. 23499 (sm_seq_push_down): Helper for sm_seq_valid_bb performing 23500 dependence checking on stores reached from exits. 23501 (sm_seq_valid_bb): New function gathering SM stores on exits. 23502 (hoist_memory_references): Re-implement. 23503 (refs_independent_p): Add tbaa_p parameter and pass it down. 23504 (record_dep_loop): Remove. 23505 (ref_indep_loop_p_1): Fold into ... 23506 (ref_indep_loop_p): ... this and generalize for three kinds 23507 of dependence queries. 23508 (can_sm_ref_p): Adjust according to hoist_memory_references 23509 changes. 23510 (store_motion_loop): Don't do anything if the set of SM 23511 candidates is empty. 23512 (tree_ssa_lim_initialize): Adjust. 23513 (tree_ssa_lim_finalize): Likewise. 23514 235152020-05-07 Eric Botcazou <ebotcazou@adacore.com> 23516 Pierre-Marie de Rodat <derodat@adacore.com> 23517 23518 * dwarf2out.c (add_data_member_location_attribute): Take into account 23519 the variant part offset in the computation of the data bit offset. 23520 (add_bit_offset_attribute): Remove CTX parameter. Pass a new context 23521 in the call to field_byte_offset. 23522 (gen_field_die): Adjust call to add_bit_offset_attribute and remove 23523 confusing assertion. 23524 (analyze_variant_discr): Deal with boolean subtypes. 23525 235262020-05-07 Martin Liska <mliska@suse.cz> 23527 23528 * lto-wrapper.c: Split arguments of MAKE environment 23529 variable. 23530 235312020-05-07 Uroš Bizjak <ubizjak@gmail.com> 23532 23533 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use 23534 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to 23535 fenv_var and new_fenv_var. 23536 235372020-05-06 Jakub Jelinek <jakub@redhat.com> 23538 23539 PR target/93069 23540 * config/i386/subst.md (store_mask_constraint, store_mask_predicate): 23541 Remove. 23542 (avx512dq_vextract<shuffletype>64x2_1_maskm, 23543 avx512f_vextract<shuffletype>32x4_1_maskm, 23544 vec_extract_lo_<mode>_maskm, vec_extract_hi_<mode>_maskm): Remove. 23545 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): Split 23546 into ... 23547 (*avx512dq_vextract<shuffletype>64x2_1, 23548 avx512dq_vextract<shuffletype>64x2_1_mask): ... these new 23549 define_insns. Even in the masked variant allow memory output but in 23550 that case use 0 rather than 0C constraint on the source of masked-out 23551 elts. 23552 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Split 23553 into ... 23554 (*avx512f_vextract<shuffletype>32x4_1, 23555 avx512f_vextract<shuffletype>32x4_1_mask): ... these new define_insns. 23556 Even in the masked variant allow memory output but in that case use 23557 0 rather than 0C constraint on the source of masked-out elts. 23558 (vec_extract_lo_<mode><mask_name>): Split into ... 23559 (vec_extract_lo_<mode>, vec_extract_lo_<mode>_mask): ... these new 23560 define_insns. Even in the masked variant allow memory output but in 23561 that case use 0 rather than 0C constraint on the source of masked-out 23562 elts. 23563 (vec_extract_hi_<mode><mask_name>): Split into ... 23564 (vec_extract_hi_<mode>, vec_extract_hi_<mode>_mask): ... these new 23565 define_insns. Even in the masked variant allow memory output but in 23566 that case use 0 rather than 0C constraint on the source of masked-out 23567 elts. 23568 235692020-05-06 qing zhao <qing.zhao@oracle.com> 23570 23571 PR c/94230 23572 * common.opt: Add -flarge-source-files. 23573 * doc/invoke.texi: Document it. 23574 * toplev.c (process_options): set line_table->default_range_bits 23575 to 0 when flag_large_source_files is true. 23576 235772020-05-06 Uroš Bizjak <ubizjak@gmail.com> 23578 23579 PR target/94913 23580 * config/i386/predicates.md (add_comparison_operator): New predicate. 23581 * config/i386/i386.md (compare->add splitter): New splitters. 23582 235832020-05-06 Richard Biener <rguenther@suse.de> 23584 23585 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust. 23586 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): 23587 Remove slp_instance parameter, just iterate over all scalar stmts. 23588 (vect_slp_analyze_instance_dependence): Adjust and likewise. 23589 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Remove unused BB 23590 parameter. 23591 (vect_schedule_slp): Just iterate over all scalar stmts. 23592 (vect_supported_load_permutation_p): Adjust. 23593 (vect_transform_slp_perm_load): Remove slp_instance parameter, 23594 instead use the number of lanes in the node as group size. 23595 * tree-vect-stmts.c (vect_model_load_cost): Get vectorization 23596 factor instead of slp_instance as parameter. 23597 (vectorizable_load): Adjust. 23598 235992020-05-06 Andreas Schwab <schwab@suse.de> 23600 23601 * config/aarch64/driver-aarch64.c: Include "aarch64-protos.h". 23602 (aarch64_get_extension_string_for_isa_flags): Don't declare. 23603 236042020-05-06 Richard Biener <rguenther@suse.de> 23605 23606 PR middle-end/94964 23607 * cfgloopmanip.c (create_preheader): Require non-complex 23608 preheader edge for CP_SIMPLE_PREHEADERS. 23609 236102020-05-06 Richard Biener <rguenther@suse.de> 23611 23612 PR tree-optimization/94963 23613 * tree-ssa-loop-im.c (execute_sm_if_changed): Remove 23614 no-warning marking of the conditional store. 23615 (execute_sm): Instead mark the uninitialized state 23616 on loop entry to be not warned about. 23617 236182020-05-06 Hongtao Liu <hongtao.liu@intel.com> 23619 23620 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET, 23621 OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros. 23622 * config.gcc: Add tsxldtrkintrin.h to extra_headers. 23623 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 23624 TSXLDTRK. 23625 * config/i386/i386-builtin.def: Add new builtins. 23626 * config/i386/i386-c.c (ix86_target_macros_internal): Define 23627 __TSXLDTRK__. 23628 * config/i386/i386-options.c (ix86_target_string): Add 23629 -mtsxldtrk. 23630 (ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk. 23631 * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P): 23632 New. 23633 * config/i386/i386.md (define_c_enum "unspec"): Add 23634 UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK. 23635 (TSXLDTRK): New define_int_iterator. 23636 ("<tsxldtrk>"): New define_insn. 23637 * config/i386/i386.opt: Add -mtsxldtrk. 23638 * config/i386/immintrin.h: Include tsxldtrkintrin.h. 23639 * config/i386/tsxldtrkintrin.h: New. 23640 * doc/invoke.texi: Document -mtsxldtrk. 23641 236422020-05-06 Jakub Jelinek <jakub@redhat.com> 23643 23644 PR tree-optimization/94921 23645 * match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New 23646 simplifications. 23647 236482020-05-06 Richard Biener <rguenther@suse.de> 23649 23650 PR tree-optimization/94965 23651 * tree-vect-stmts.c (vectorizable_load): Fix typo. 23652 236532020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 23654 23655 * doc/install.texi: Replace Sun with Solaris as appropriate. 23656 (Tools/packages necessary for building GCC, Perl version between 23657 5.6.1 and 5.6.24): Remove Solaris 8 reference. 23658 (Installing GCC: Binaries, Solaris 2 (SPARC, Intel)): Remove 23659 TGCware reference. 23660 (Specific, i?86-*-solaris2*): Update version references for 23661 Solaris 11.3 and later. Remove gas 2.26 caveat. 23662 (Specific, *-*-solaris2*): Update version references for 23663 Solaris 11.3 and later. Remove boehm-gc reference. 23664 Document GMP, MPFR caveats on Solaris 11.3. 23665 (Specific, sparc-sun-solaris2*): Update Solaris 9 references. 23666 (Specific, sparc64-*-solaris2*): Likewise. 23667 Document --build requirement. 23668 236692020-05-06 Jakub Jelinek <jakub@redhat.com> 23670 23671 PR target/94950 23672 * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use 23673 TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags. 23674 23675 PR rtl-optimization/94873 23676 * combine.c (combine_instructions): Don't optimize using REG_EQUAL 23677 note if SET_SRC (set) has side-effects. 23678 236792020-05-06 Hongtao Liu <hongtao.liu@intel.com> 23680 Wei Xiao <wei3.xiao@intel.com> 23681 23682 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET, 23683 OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros. 23684 (ix86_handle_option): Handle -mserialize. 23685 * config.gcc (serializeintrin.h): New header file. 23686 * config/i386/cpuid.h (bit_SERIALIZE): New bit. 23687 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 23688 -mserialize. 23689 * config/i386/i386-builtin.def: Add new builtin. 23690 * config/i386/i386-c.c (__SERIALIZE__): New macro. 23691 * config/i386/i386-options.c (ix86_target_opts_isa2_opts): 23692 Add -mserialize. 23693 * (ix86_valid_target_attribute_inner_p): Add target attribute 23694 * for serialize. 23695 * config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P): 23696 New macros. 23697 * config/i386/i386.md (UNSPECV_SERIALIZE): New unspec. 23698 (serialize): New define_insn. 23699 * config/i386/i386.opt (mserialize): New option 23700 * config/i386/immintrin.h: Include serailizeintrin.h. 23701 * config/i386/serializeintrin.h: New header file. 23702 * doc/invoke.texi: Add documents for -mserialize. 23703 237042020-05-06 Richard Biener <rguenther@suse.de> 23705 23706 * tree-cfg.c (verify_gimple_assign_unary): Adjust integer 23707 to/from pointer conversion checking. 23708 237092020-05-05 Michael Meissner <meissner@linux.ibm.com> 23710 23711 * config/rs6000/rs6000-builtin.def: Delete changes meant for a 23712 private branch. 23713 * config/rs6000/rs6000-c.c: Likewise. 23714 * config/rs6000/rs6000-call.c: Likewise. 23715 * config/rs6000/rs6000.c: Likewise. 23716 237172020-05-05 Sebastian Huber <sebastian.huber@embedded-brains.de> 23718 23719 * config/rtems.h (RTEMS_STARTFILE_SPEC): Define if undefined. 23720 (RTEMS_ENDFILE_SPEC): Likewise. 23721 (STARTFILE_SPEC): Update comment. Add RTEMS_STARTFILE_SPEC. 23722 (ENDFILE_SPEC): Add RTEMS_ENDFILE_SPEC. 23723 (LIB_SPECS): Support -nodefaultlibs option. 23724 * config/or1k/rtems.h (RTEMS_STARTFILE_SPEC): Define. 23725 (RTEMS_ENDFILE_SPEC): Likewise. 23726 * config/rs6000/rtems.h (RTEMS_STARTFILE_SPEC): Likewise. 23727 (RTEMS_ENDFILE_SPEC): Likewise. 23728 * config/v850/rtems.h (RTEMS_STARTFILE_SPEC): Likewise. 23729 (RTEMS_ENDFILE_SPEC): Likewise. 23730 237312020-05-05 Dimitar Dimitrov <dimitar@dinux.eu> 23732 23733 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove. 23734 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove. 23735 237362020-05-05 Dimitar Dimitrov <dimitar@dinux.eu> 23737 23738 * config/pru/pru.h: Mark R3.w0 as caller saved. 23739 237402020-05-05 Dimitar Dimitrov <dimitar@dinux.eu> 23741 23742 * config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal 23743 and gen_doloop_begin_internal. 23744 (pru_reorg_loop): Use gen_pruloop with mode. 23745 * config/pru/pru.md: Use new @insn syntax. 23746 237472020-05-05 Dimitar Dimitrov <dimitar@dinux.eu> 23748 23749 * config/pru/pru.c (pru_print_operand): Fix fall through comment. 23750 237512020-05-05 Uroš Bizjak <ubizjak@gmail.com> 23752 23753 * config/i386/i386.md (fixuns_trunc<mode>si2): Use 23754 "clobber (scratch:M)" instad of "clobber (match_scratch:M N)". 23755 (addqi3_cconly_overflow): Ditto. 23756 (umulv<mode>4): Ditto. 23757 (<s>mul<mode>3_highpart): Ditto. 23758 (tls_global_dynamic_32): Ditto. 23759 (tls_local_dynamic_base_32): Ditto. 23760 (atanxf2): Ditto. 23761 (asinxf2): Ditto. 23762 (acosxf2): Ditto. 23763 (logxf2): Ditto. 23764 (log10xf2): Ditto. 23765 (log2xf2): Ditto. 23766 (*adddi_4): Remove "m" constraint from scratch operand. 23767 (*add<mode>_4): Ditto. 23768 237692020-05-05 Jakub Jelinek <jakub@redhat.com> 23770 23771 PR rtl-optimization/94516 23772 * postreload.c (reload_cse_simplify): When replacing sp = sp + const 23773 with sp = reg, add REG_EQUAL note with sp + const. 23774 * combine-stack-adj.c (try_apply_stack_adjustment): Change return 23775 type from int to bool. Add LIVE and OTHER_INSN arguments. Undo 23776 postreload sp = sp + const to sp = reg optimization if needed and 23777 possible. 23778 (combine_stack_adjustments_for_block): Add LIVE argument. Handle 23779 reg = sp insn with sp + const REG_EQUAL note. Adjust 23780 try_apply_stack_adjustment caller, call 23781 df_simulate_initialize_forwards and df_simulate_one_insn_forwards. 23782 (combine_stack_adjustments): Allocate and free LIVE bitmap, 23783 adjust combine_stack_adjustments_for_block caller. 23784 237852020-05-05 Martin Liska <mliska@suse.cz> 23786 23787 PR gcov-profile/93623 23788 * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect 23789 reality. 23790 237912020-05-05 Martin Liska <mliska@suse.cz> 23792 23793 * opt-functions.awk (opt_args_non_empty): New function. 23794 * opt-read.awk: Use the function for various option arguments. 23795 237962020-05-05 Martin Liska <mliska@suse.cz> 23797 23798 PR driver/94330 23799 * lto-wrapper.c (run_gcc): When using -flto=jobserver, 23800 report warning when the jobserver is not detected. 23801 238022020-05-05 Martin Liska <mliska@suse.cz> 23803 23804 PR gcov-profile/94636 23805 * gcov.c (main): Print total lines summary at the end. 23806 (generate_results): Expect file_name always being non-null. 23807 Print newline after intermediate file is printed in order to align with 23808 what we do for normal files. 23809 238102020-05-05 Martin Liska <mliska@suse.cz> 23811 23812 * dumpfile.c (dump_switch_p): Change return type 23813 and print option suggestion. 23814 * dumpfile.h: Change return type. 23815 * opts-global.c (handle_common_deferred_options): 23816 Move error into dump_switch_p function. 23817 238182020-05-05 Martin Liska <mliska@suse.cz> 23819 23820 PR c/92472 23821 * alloc-pool.h: Use const for some arguments. 23822 * bitmap.h: Likewise. 23823 * mem-stats.h: Likewise. 23824 * sese.h (get_entry_bb): Likewise. 23825 (get_exit_bb): Likewise. 23826 238272020-05-05 Richard Biener <rguenther@suse.de> 23828 23829 * tree-vect-slp.c (struct vdhs_data): New. 23830 (vect_detect_hybrid_slp): New walker. 23831 (vect_detect_hybrid_slp): Rewrite. 23832 238332020-05-05 Richard Biener <rguenther@suse.de> 23834 23835 PR ipa/94947 23836 * tree-ssa-structalias.c (ipa_pta_execute): Use 23837 varpool_node::externally_visible_p (). 23838 (refered_from_nonlocal_var): Likewise. 23839 238402020-05-05 Eric Botcazou <ebotcazou@adacore.com> 23841 23842 * gcc.c (LTO_PLUGIN_SPEC): Define if not already. 23843 (LINK_PLUGIN_SPEC): Execute LTO_PLUGIN_SPEC. 23844 * config/vxworks.h (LTO_PLUGIN_SPEC): Define. 23845 238462020-05-05 Eric Botcazou <ebotcazou@adacore.com> 23847 23848 * gimplify.c (gimplify_init_constructor): Do not put the constructor 23849 into static memory if it is not complete. 23850 238512020-05-05 Richard Biener <rguenther@suse.de> 23852 23853 PR tree-optimization/94949 23854 * tree-ssa-loop-im.c (execute_sm): Check whether we use 23855 the multithreaded model or always compute the stored value 23856 before eliding a load. 23857 238582020-05-05 Alex Coplan <alex.coplan@arm.com> 23859 23860 * config/aarch64/aarch64.md (*one_cmpl_zero_extend): New. 23861 238622020-05-05 Jakub Jelinek <jakub@redhat.com> 23863 23864 PR tree-optimization/94800 23865 * match.pd (X + (X << C) to X * (1 + (1 << C)), 23866 (X << C1) + (X << C2) to X * ((1 << C1) + (1 << C2))): New 23867 canonicalizations. 23868 23869 PR target/94942 23870 * config/i386/mmx.md (*vec_dupv4hi): Use xYw constraints instead of Yv. 23871 23872 PR tree-optimization/94914 23873 * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) != 0): 23874 New simplification. 23875 238762020-05-05 Uroš Bizjak <ubizjak@gmail.com> 23877 23878 * config/i386/i386.md (*testqi_ext_3): Use 23879 int_nonimmediate_operand instead of manual mode checks. 23880 (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>): 23881 Use int_nonimmediate_operand predicate. Rewrite 23882 define_insn_and_split pattern to a combine pass splitter. 23883 238842020-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 23885 23886 * configure.ac <i[34567]86-*-*>: Add --32 to tls_as_opt on Solaris. 23887 * configure: Regenerate. 23888 238892020-05-05 Jakub Jelinek <jakub@redhat.com> 23890 23891 PR target/94460 23892 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3, 23893 ssse3_ph<plusminus_mnemonic>wv8hi3, ssse3_ph<plusminus_mnemonic>wv4hi3, 23894 avx2_ph<plusminus_mnemonic>dv8si3, ssse3_ph<plusminus_mnemonic>dv4si3, 23895 ssse3_ph<plusminus_mnemonic>dv2si3): Simplify RTL patterns. 23896 238972020-05-04 Clement Chigot <clement.chigot@atos.net> 23898 David Edelsohn <dje.gcc@gmail.com> 23899 23900 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override explicit 23901 for fmodl, frexpl, ldexpl and modfl builtins. 23902 239032020-05-04 Richard Sandiford <richard.sandiford@arm.com> 23904 23905 PR middle-end/94941 23906 * internal-fn.c (expand_load_lanes_optab_fn): Emit a move if the 23907 chosen lhs is different from the gcall lhs. 23908 (expand_mask_load_optab_fn): Likewise. 23909 (expand_gather_load_optab_fn): Likewise. 23910 239112020-05-04 Uroš Bizjak <ubizjak@gmail.com> 23912 23913 PR target/94795 23914 * config/i386/i386.md (*neg<mode>_ccc): New insn pattern. 23915 (EQ compare->LTU compare splitter): New splitter. 23916 (NE compare->NEG splitter): Ditto. 23917 239182020-05-04 Marek Polacek <polacek@redhat.com> 23919 23920 Revert: 23921 2020-04-30 Marek Polacek <polacek@redhat.com> 23922 23923 PR c++/94775 23924 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match. 23925 (check_aligned_type): Check if TYPE_USER_ALIGN match. 23926 239272020-05-04 Richard Biener <rguenther@suse.de> 23928 23929 PR tree-optimization/93891 23930 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fall back to 23931 the original reference tree for assessing access alignment. 23932 239332020-05-04 Richard Biener <rguenther@suse.de> 23934 23935 PR tree-optimization/39612 23936 * tree-ssa-loop-im.c (im_mem_ref::loaded): New member. 23937 (set_ref_loaded_in_loop): New. 23938 (mark_ref_loaded): Likewise. 23939 (gather_mem_refs_stmt): Call mark_ref_loaded for loads. 23940 (execute_sm): Avoid issueing a load when it was not there. 23941 (execute_sm_if_changed): Avoid issueing warnings for the 23942 conditional store. 23943 239442020-05-04 Martin Jambor <mjambor@suse.cz> 23945 23946 PR ipa/93385 23947 * tree-inline.c (tree_function_versioning): Leave any type conversion 23948 of replacements to setup_one_parameter and its friend 23949 force_value_to_type. 23950 239512020-05-04 Uroš Bizjak <ubizjak@gmail.com> 23952 23953 PR target/94650 23954 * config/i386/predicates.md (shr_comparison_operator): New predicate. 23955 * config/i386/i386.md (compare->shr splitter): New splitters. 23956 239572020-05-04 Jakub Jelinek <jakub@redhat.com> 23958 23959 PR tree-optimization/94718 23960 * match.pd ((X < 0) != (Y < 0) into (X ^ Y) < 0): New simplification. 23961 23962 PR tree-optimization/94718 23963 * match.pd (bitop (convert @0) (convert? @1)): For GIMPLE, if we can, 23964 replace two nop conversions on bit_{and,ior,xor} argument 23965 and result with just one conversion on the result or another argument. 23966 23967 PR tree-optimization/94718 23968 * fold-const.c (fold_binary_loc): Move (X & C) eqne (Y & C) 23969 -> (X ^ Y) & C eqne 0 optimization to ... 23970 * match.pd ((X & C) op (Y & C) into (X ^ Y) & C op 0): ... here. 23971 23972 * opts.c (get_option_html_page): Instead of hardcoding a list of 23973 options common between C/C++ and Fortran only use gfortran/ 23974 documentation for warnings that have CL_Fortran set but not 23975 CL_C or CL_CXX. 23976 239772020-05-03 Uroš Bizjak <ubizjak@gmail.com> 23978 23979 * config/i386/i386-expand.c (ix86_expand_int_movcc): 23980 Use plus_constant instead of gen_rtx_PLUS with GEN_INT. 23981 (emit_memmov): Ditto. 23982 (emit_memset): Ditto. 23983 (ix86_expand_strlensi_unroll_1): Ditto. 23984 (release_scratch_register_on_entry): Ditto. 23985 (gen_frame_set): Ditto. 23986 (ix86_emit_restore_reg_using_pop): Ditto. 23987 (ix86_emit_outlined_ms2sysv_restore): Ditto. 23988 (ix86_expand_epilogue): Ditto. 23989 (ix86_expand_split_stack_prologue): Ditto. 23990 * config/i386/i386.md (push immediate splitter): Ditto. 23991 (strmov): Ditto. 23992 (strset): Ditto. 23993 239942020-05-02 Iain Sandoe <iain@sandoe.co.uk> 23995 23996 PR translation/93861 23997 * config/darwin-driver.c (darwin_driver_init): Adjust spelling in 23998 a warning. 23999 240002020-05-02 Jakub Jelinek <jakub@redhat.com> 24001 24002 * config/tilegx/tilegx.md 24003 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n> 24004 rather than just <n>. 24005 240062020-05-01 H.J. Lu <hongjiu.lu@intel.com> 24007 24008 PR target/93492 24009 * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size 24010 and crtl->patch_area_entry. 24011 * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry. 24012 * opts.c (common_handle_option): Limit 24013 function_entry_patch_area_size and function_entry_patch_area_start 24014 to USHRT_MAX. Fix a typo in error message. 24015 * varasm.c (assemble_start_function): Use crtl->patch_area_size 24016 and crtl->patch_area_entry. 24017 * doc/invoke.texi: Document the maximum value for 24018 -fpatchable-function-entry. 24019 240202020-05-01 Iain Sandoe <iain@sandoe.co.uk> 24021 24022 * config/i386/darwin.h: Repair SUBTARGET_INIT_BUILTINS. 24023 Override SUBTARGET_SHADOW_OFFSET macro. 24024 240252020-05-01 Andreas Tobler <andreast@gcc.gnu.org> 24026 24027 * config/i386/i386.h: Define a new macro: SUBTARGET_SHADOW_OFFSET. 24028 * config/i386/i386.c (ix86_asan_shadow_offset): Use this macro. 24029 * config/i386/darwin.h: Override the SUBTARGET_SHADOW_OFFSET macro. 24030 * config/i386/freebsd.h: Likewise. 24031 * config/freebsd.h (LIBASAN_EARLY_SPEC): Define. 24032 LIBTSAN_EARLY_SPEC): Likewise. (LIBLSAN_EARLY_SPEC): Likewise. 24033 240342020-04-30 Alexandre Oliva <oliva@adacore.com> 24035 24036 * doc/sourcebuild.texi (Effective-Target Keywords): Document 24037 the newly-introduced fileio effective target. 24038 240392020-04-30 Richard Sandiford <richard.sandiford@arm.com> 24040 24041 PR rtl-optimization/94740 24042 * cse.c (cse_process_notes_1): Replace with... 24043 (cse_process_note_1): ...this new function, acting as a 24044 simplify_replace_fn_rtx callback to process_note. Handle only 24045 REGs and MEMs directly. Validate the MEM if cse_process_note 24046 changes its address. 24047 (cse_process_notes): Replace with... 24048 (cse_process_note): ...this new function. 24049 (cse_extended_basic_block): Update accordingly, iterating over 24050 the register notes and passing individual notes to cse_process_note. 24051 240522020-04-30 Carl Love <cel@us.ibm.com> 24053 24054 * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment. 24055 240562020-04-30 Martin Jambor <mjambor@suse.cz> 24057 24058 PR ipa/94856 24059 * cgraph.c (clone_of_p): Also consider thunks whih had their bodies 24060 saved by the inliner and thunks which had their call inlined. 24061 * ipa-inline-transform.c (save_inline_function_body): Fill in 24062 former_clone_of of new body holders. 24063 240642020-04-30 Jakub Jelinek <jakub@redhat.com> 24065 24066 * BASE-VER: Set to 11.0.0. 24067 240682020-04-30 Jonathan Wakely <jwakely@redhat.com> 24069 24070 * pretty-print.c (pp_take_prefix): Fix spelling in comment. 24071 240722020-04-30 Marek Polacek <polacek@redhat.com> 24073 24074 PR c++/94775 24075 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match. 24076 (check_aligned_type): Check if TYPE_USER_ALIGN match. 24077 240782020-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 24079 24080 * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define. 24081 * config/aarch64/aarch64.opt (moutline-atomics): Change to Int variable. 24082 * doc/invoke.texi (moutline-atomics): Document as on by default. 24083 240842020-04-30 Szabolcs Nagy <szabolcs.nagy@arm.com> 24085 24086 PR target/94748 24087 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove 24088 the check for NOTE_INSN_DELETED_LABEL. 24089 240902020-04-30 Jakub Jelinek <jakub@redhat.com> 24091 24092 * configure.ac (--with-documentation-root-url, 24093 --with-changes-root-url): Diagnose URL not ending with /, 24094 use AC_DEFINE_UNQUOTED instead of AC_SUBST. 24095 * opts.h (get_changes_url): Remove. 24096 * opts.c (get_changes_url): Remove. 24097 * Makefile.in (CFLAGS-opts.o): Don't add -DDOCUMENTATION_ROOT_URL 24098 or -DCHANGES_ROOT_URL. 24099 * doc/install.texi (--with-documentation-root-url, 24100 --with-changes-root-url): Document. 24101 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Don't call 24102 get_changes_url and free, change url variable type to const char * and 24103 set it to CHANGES_ROOT_URL "gcc-10/changes.html#empty_base". 24104 * config/s390/s390.c (s390_function_arg_vector, 24105 s390_function_arg_float): Likewise. 24106 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate): 24107 Likewise. 24108 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate): 24109 Likewise. 24110 * config.in: Regenerate. 24111 * configure: Regenerate. 24112 241132020-04-30 Christophe Lyon <christophe.lyon@linaro.org> 24114 24115 PR target/57002 24116 * config/arm/arm.c (isr_attribute_args): Remove duplicate entries. 24117 241182020-04-30 Andreas Krebbel <krebbel@linux.ibm.com> 24119 24120 * config/s390/constraints.md ("j>f", "jb4"): New constraints. 24121 * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix 24122 macro definitions. 24123 * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a 24124 separate expander. 24125 ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst. 24126 Change constraint for vlrl/vstrl to jb4. 24127 241282020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 24129 24130 * var-tracking.c (vt_initialize): Move variables pre and post 24131 into inner block and initialize both in order to fix warning 24132 about uninitialized use. Remove unnecessary checks for 24133 frame_pointer_needed. 24134 241352020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 24136 24137 * toplev.c (output_stack_usage_1): Ensure that first 24138 argument to fprintf is not null. 24139 241402020-04-29 Jakub Jelinek <jakub@redhat.com> 24141 24142 * configure.ac (-with-changes-root-url): New configure option, 24143 defaulting to https://gcc.gnu.org/. 24144 * Makefile.in (CFLAGS-opts.o): Define CHANGES_ROOT_URL for 24145 opts.c. 24146 * pretty-print.c (get_end_url_string): New function. 24147 (pp_format): Handle %{ and %} for URLs. 24148 (pp_begin_url): Use pp_string instead of pp_printf. 24149 (pp_end_url): Use get_end_url_string. 24150 * opts.h (get_changes_url): Declare. 24151 * opts.c (get_changes_url): New function. 24152 * config/rs6000/rs6000-call.c: Include opts.h. 24153 (rs6000_discover_homogeneous_aggregate): Use %{in GCC 10.1%} instead 24154 of just in GCC 10.1 in diagnostics and add URL. 24155 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Likewise. 24156 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate): 24157 Likewise. 24158 * config/s390/s390.c (s390_function_arg_vector, 24159 s390_function_arg_float): Likewise. 24160 * configure: Regenerated. 24161 24162 PR target/94704 24163 * config/s390/s390.c (s390_function_arg_vector, 24164 s390_function_arg_float): Use DECL_FIELD_ABI_IGNORED instead of 24165 cxx17_empty_base_field_p. In -Wpsabi diagnostics use the type 24166 passed to the function rather than the type of the single element. 24167 Rename cxx17_empty_base_seen variable to empty_base_seen, change 24168 type to int, and adjust diagnostics depending on if the field 24169 has [[no_unique_attribute]] or not. 24170 24171 PR target/94832 24172 * config/i386/avx512bwintrin.h (_mm512_alignr_epi8, 24173 _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands 24174 used in casts into parens. 24175 * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph, 24176 _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph, 24177 _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph, 24178 _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask, 24179 _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask, 24180 _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask, 24181 _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise. 24182 * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8, 24183 _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8, 24184 _mm256_mask_cmp_epu8_mask): Likewise. 24185 * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph, 24186 _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise. 24187 * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise. 24188 * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise. 24189 24190 PR target/94832 24191 * config/i386/avx2intrin.h (_mm_mask_i32gather_pd, 24192 _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd, 24193 _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps, 24194 _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps, 24195 _mm256_mask_i64gather_ps, _mm_i32gather_epi64, 24196 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64, 24197 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64, 24198 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64, 24199 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32, 24200 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32, 24201 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32, 24202 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32, 24203 _mm256_mask_i64gather_epi32): Surround macro parameter uses with 24204 parens. 24205 (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd, 24206 _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps, 24207 _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use 24208 as mask vector containing -1.0 or -1.0f elts, but instead vector 24209 with all bits set using _mm*_cmpeq_p? with zero operands. 24210 * config/i386/avx512fintrin.h (_mm512_i32gather_ps, 24211 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, 24212 _mm512_mask_i32gather_pd, _mm512_i64gather_ps, 24213 _mm512_mask_i64gather_ps, _mm512_i64gather_pd, 24214 _mm512_mask_i64gather_pd, _mm512_i32gather_epi32, 24215 _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64, 24216 _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32, 24217 _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64, 24218 _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps, 24219 _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd, 24220 _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps, 24221 _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd, 24222 _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32, 24223 _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64, 24224 _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32, 24225 _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64, 24226 _mm512_mask_i64scatter_epi64): Surround macro parameter uses with 24227 parens. 24228 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd, 24229 _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd, 24230 _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd, 24231 _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd, 24232 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd, 24233 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd, 24234 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd, 24235 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd, 24236 _mm512_mask_prefetch_i64scatter_ps): Likewise. 24237 * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps, 24238 _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd, 24239 _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps, 24240 _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd, 24241 _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32, 24242 _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64, 24243 _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32, 24244 _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64, 24245 _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps, 24246 _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps, 24247 _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd, 24248 _mm_mask_i32scatter_pd, _mm256_i64scatter_ps, 24249 _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps, 24250 _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd, 24251 _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32, 24252 _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32, 24253 _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64, 24254 _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64, 24255 _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32, 24256 _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32, 24257 _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64, 24258 _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64, 24259 _mm_mask_i64scatter_epi64): Likewise. 24260 242612020-04-29 Jeff Law <law@redhat.com> 24262 24263 * config/h8300/h8300.md (H8/SX div patterns): All H8/SX specific 24264 division instructions are 4 bytes long. 24265 242662020-04-29 Jakub Jelinek <jakub@redhat.com> 24267 24268 PR target/94826 24269 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use 24270 TARGET_EXPR instead of MODIFY_EXPR for first assignment to 24271 fenv_var, fenv_clear and old_fenv variables. For fenv_addr 24272 take address of TARGET_EXPR of fenv_var with void_node initializer. 24273 Formatting fixes. 24274 242752020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 24276 24277 PR tree-optimization/94774 24278 * gimple-ssa-sprintf.c (try_substitute_return_value): Initialize 24279 variable retval. 24280 242812020-04-29 Richard Sandiford <richard.sandiford@arm.com> 24282 24283 * calls.h (cxx17_empty_base_field_p): Turn into a function declaration. 24284 * calls.c (cxx17_empty_base_field_p): New function. Check 24285 DECL_ARTIFICIAL and RECORD_OR_UNION_TYPE_P in addition to the 24286 previous checks. 24287 242882020-04-29 H.J. Lu <hongjiu.lu@intel.com> 24289 24290 PR target/93654 24291 * config/i386/i386-options.c (ix86_set_indirect_branch_type): 24292 Allow -fcf-protection with -mindirect-branch=thunk-extern and 24293 -mfunction-return=thunk-extern. 24294 * doc/invoke.texi: Update notes for -fcf-protection=branch with 24295 -mindirect-branch=thunk-extern and -mindirect-return=thunk-extern. 24296 242972020-04-29 Richard Sandiford <richard.sandiford@arm.com> 24298 24299 * doc/sourcebuild.texi: Add missing arm_arch_v8a_hard_ok anchor. 24300 243012020-04-29 Richard Sandiford <richard.sandiford@arm.com> 24302 24303 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use 24304 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to 24305 fenv_var and new_fenv_var. 24306 243072020-04-29 Richard Sandiford <richard.sandiford@arm.com> 24308 24309 * doc/sourcebuild.texi (arm_arch_v8a_hard_ok): Document new 24310 effective-target keyword. 24311 (arm_arch_v8a_hard_multilib): Likewise. 24312 (arm_arch_v8a_hard): Document new dg-add-options keyword. 24313 * config/arm/arm.c (arm_return_in_memory): Note that the APCS 24314 code is deprecated and has not been updated to handle 24315 DECL_FIELD_ABI_IGNORED. 24316 (WARN_PSABI_EMPTY_CXX17_BASE): New constant. 24317 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise. 24318 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter 24319 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields 24320 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether 24321 something actually is a HFA or HVA. Record whether we see a 24322 [[no_unique_address]] field that previous GCCs would not have 24323 ignored in this way. 24324 (aapcs_vfp_is_call_or_return_candidate): Update the calls to 24325 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the 24326 [[no_unique_address]] case. Use TYPE_MAIN_VARIANT in the 24327 diagnostic messages. 24328 (arm_needs_doubleword_align): Add a comment explaining why we 24329 consider even zero-sized fields. 24330 243312020-04-29 Richard Biener <rguenther@suse.de> 24332 Li Zekun <lizekun1@huawei.com> 24333 24334 PR lto/94822 24335 * tree.c (component_ref_size): Guard against error_mark_node 24336 DECL_INITIAL as it happens with LTO. 24337 243382020-04-29 Richard Sandiford <richard.sandiford@arm.com> 24339 24340 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add a 24341 comment explaining why we consider even zero-sized fields. 24342 (WARN_PSABI_EMPTY_CXX17_BASE): New constant. 24343 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise. 24344 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter 24345 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields 24346 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether 24347 something actually is a HFA or HVA. Record whether we see a 24348 [[no_unique_address]] field that previous GCCs would not have 24349 ignored in this way. 24350 (aarch64_vfp_is_call_or_return_candidate): Add a parameter to say 24351 whether diagnostics should be suppressed. Update the calls to 24352 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the 24353 [[no_unique_address]] case. 24354 (aarch64_return_in_msb): Update call accordingly, never silencing 24355 diagnostics. 24356 (aarch64_function_value): Likewise. 24357 (aarch64_return_in_memory_1): Likewise. 24358 (aarch64_init_cumulative_args): Likewise. 24359 (aarch64_gimplify_va_arg_expr): Likewise. 24360 (aarch64_pass_by_reference_1): Take a CUMULATIVE_ARGS pointer and 24361 use it to decide whether arch64_vfp_is_call_or_return_candidate 24362 should be silent. 24363 (aarch64_pass_by_reference): Update calls accordingly. 24364 (aarch64_vfp_is_call_candidate): Use the CUMULATIVE_ARGS argument 24365 to decide whether arch64_vfp_is_call_or_return_candidate should be 24366 silent. 24367 243682020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com> 24369 24370 PR target/94820 24371 * config/aarch64/aarch64-builtins.c 24372 (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of 24373 MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and 24374 new_fenv_var. 24375 243762020-04-29 Thomas Schwinge <thomas@codesourcery.com> 24377 24378 * configure.ac <$enable_offload_targets>: Do parsing as done 24379 elsewhere. 24380 * configure: Regenerate. 24381 24382 * configure.ac <$enable_offload_targets>: 'amdgcn' is 'gcn'. 24383 * configure: Regenerate. 24384 24385 PR target/94279 24386 * rtlanal.c (set_noop_p): Handle non-constant selectors. 24387 24388 PR target/94282 24389 * common/config/gcn/gcn-common.c (gcn_except_unwind_info): New 24390 function. 24391 (TARGET_EXCEPT_UNWIND_INFO): Define. 24392 243932020-04-29 Jakub Jelinek <jakub@redhat.com> 24394 24395 PR target/94248 24396 * config/gcn/gcn.md (*mov<mode>_insn): Use 24397 'reg_overlap_mentioned_p' to check for overlap. 24398 24399 PR target/94706 24400 * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED 24401 instead of cxx17_empty_base_field_p. 24402 24403 PR target/94707 24404 * tree-core.h (tree_decl_common): Note decl_flag_0 used for 24405 DECL_FIELD_ABI_IGNORED. 24406 * tree.h (DECL_FIELD_ABI_IGNORED): Define. 24407 * calls.h (cxx17_empty_base_field_p): Change into a temporary 24408 macro, check DECL_FIELD_ABI_IGNORED flag with no "no_unique_address" 24409 attribute. 24410 * calls.c (cxx17_empty_base_field_p): Remove. 24411 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Handle 24412 DECL_FIELD_ABI_IGNORED. 24413 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise. 24414 * lto-streamer-out.c (hash_tree): Likewise. 24415 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Rename 24416 cxx17_empty_base_seen to empty_base_seen, change type to int *, 24417 adjust recursive calls, use DECL_FIELD_ABI_IGNORED instead of 24418 cxx17_empty_base_field_p, if "no_unique_address" attribute is 24419 present, propagate that to the caller too. 24420 (rs6000_discover_homogeneous_aggregate): Adjust 24421 rs6000_aggregate_candidate caller, emit different diagnostics 24422 when c++17 empty base fields are present and when empty 24423 [[no_unique_address]] fields are present. 24424 * config/rs6000/rs6000.c (rs6000_special_round_type_align, 24425 darwin_rs6000_special_round_type_align): Skip DECL_FIELD_ABI_IGNORED 24426 fields. 24427 244282020-04-29 Richard Biener <rguenther@suse.de> 24429 24430 * tree-ssa-loop-im.c (ref_always_accessed::operator ()): 24431 Just check whether the stmt stores. 24432 244332020-04-28 Alexandre Oliva <oliva@adacore.com> 24434 24435 PR target/94812 24436 * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to 24437 output operand in emulation. Don't overwrite pseudos. 24438 244392020-04-28 Jeff Law <law@redhat.com> 24440 24441 * config/h8300/h8300.md (H8/SX mult patterns): All H8/SX specific 24442 multiply patterns are 4 bytes long. 24443 244442020-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 24445 24446 * config/arm/arm-cpus.in (cortex-m55): Remove +nofp option. 24447 * doc/invoke.texi (Arm Options): Remove -mcpu=cortex-m55 from +nofp option. 24448 244492020-04-28 Matthew Malcomson <matthew.malcomson@arm.com> 24450 Jakub Jelinek <jakub@redhat.com> 24451 24452 PR target/94711 24453 * config/arm/arm.c (aapcs_vfp_sub_candidate): Account for C++17 empty 24454 base class artificial fields. 24455 (aapcs_vfp_is_call_or_return_candidate): Warn when PCS ABI 24456 decision is different after this fix. 24457 244582020-04-28 David Malcolm <dmalcolm@redhat.com> 24459 24460 PR analyzer/94447 24461 PR analyzer/94639 24462 PR analyzer/94732 24463 PR analyzer/94754 24464 * doc/invoke.texi (Static Analyzer Options): Remove 24465 -Wanalyzer-use-of-uninitialized-value. 24466 (-Wno-analyzer-use-of-uninitialized-value): Remove item. 24467 244682020-04-28 Jakub Jelinek <jakub@redhat.com> 24469 24470 PR tree-optimization/94809 24471 * tree.c (build_call_expr_internal_loc_array): Call 24472 process_call_operands. 24473 244742020-04-27 Anton Youdkevitch <anton.youdkevitch@bell-sw.com> 24475 24476 * config/aarch64/aarch64-cores.def (thunderx3t110): Add the chip name. 24477 * config/aarch64/aarch64-tune.md: Regenerate. 24478 * config/aarch64/aarch64.c (thunderx3t110_addrcost_table): Define. 24479 (thunderx3t110_regmove_cost): Likewise. 24480 (thunderx3t110_vector_cost): Likewise. 24481 (thunderx3t110_prefetch_tune): Likewise. 24482 (thunderx3t110_tunings): Likewise. 24483 * config/aarch64/aarch64-cost-tables.h (thunderx3t110_extra_costs): 24484 Define. 24485 * config/aarch64/thunderx3t110.md: New file. 24486 * config/aarch64/aarch64.md: Include thunderx3t110.md. 24487 * doc/invoke.texi (AArch64 options): Add thunderx3t110. 24488 244892020-04-28 Jakub Jelinek <jakub@redhat.com> 24490 24491 PR target/94704 24492 * config/s390/s390.c (s390_function_arg_vector, 24493 s390_function_arg_float): Emit -Wpsabi diagnostics if the ABI changed. 24494 244952020-04-28 Richard Sandiford <richard.sandiford@arm.com> 24496 24497 PR tree-optimization/94727 24498 * tree-vect-stmts.c (vect_is_simple_cond): If both comparison 24499 operands are invariant booleans, use the mask type associated with the 24500 STMT_VINFO_VECTYPE. Use !slp_node instead of !vectype to exclude SLP. 24501 (vectorizable_condition): Pass vectype unconditionally to 24502 vect_is_simple_cond. 24503 245042020-04-27 Jakub Jelinek <jakub@redhat.com> 24505 24506 PR target/94780 24507 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use 24508 TARGET_EXPR instead of MODIFY_EXPR for first assignment to 24509 sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var. 24510 245112020-04-27 David Malcolm <dmalcolm@redhat.com> 24512 24513 PR 92830 24514 * configure.ac (DOCUMENTATION_ROOT_URL): Drop trailing "gcc/" from 24515 default value, so that it can by supplied by get_option_html_page. 24516 * configure: Regenerate. 24517 * opts.c: Include "selftest.h". 24518 (get_option_html_page): New function. 24519 (get_option_url): Use it. Reformat to place comments next to the 24520 expressions they refer to. 24521 (selftest::test_get_option_html_page): New. 24522 (selftest::opts_c_tests): New. 24523 * selftest-run-tests.c (selftest::run_tests): Call 24524 selftest::opts_c_tests. 24525 * selftest.h (selftest::opts_c_tests): New decl. 24526 245272020-04-27 Richard Sandiford <richard.sandiford@arm.com> 24528 24529 * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply 24530 UINTVAL to CONST_INTs. 24531 245322020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 24533 24534 * config/arm/constraints.md (e): Remove constraint. 24535 (Te): Define constraint. 24536 * config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in 24537 operand 0 from "e" to "Te". 24538 (vaddvaq_<supf><mode>): Likewise. 24539 (vaddvq_p_<supf><mode>): Likewise. 24540 (vmladavq_<supf><mode>): Likewise. 24541 (vmladavxq_s<mode>): Likewise. 24542 (vmlsdavq_s<mode>): Likewise. 24543 (vmlsdavxq_s<mode>): Likewise. 24544 (vaddvaq_p_<supf><mode>): Likewise. 24545 (vmladavaq_<supf><mode>): Likewise. 24546 (vmladavq_p_<supf><mode>): Likewise. 24547 (vmladavxq_p_s<mode>): Likewise. 24548 (vmlsdavq_p_s<mode>): Likewise. 24549 (vmlsdavxq_p_s<mode>): Likewise. 24550 (vmlsdavaxq_s<mode>): Likewise. 24551 (vmlsdavaq_s<mode>): Likewise. 24552 (vmladavaxq_s<mode>): Likewise. 24553 (vmladavaq_p_<supf><mode>): Likewise. 24554 (vmladavaxq_p_s<mode>): Likewise. 24555 (vmlsdavaq_p_s<mode>): Likewise. 24556 (vmlsdavaxq_p_s<mode>): Likewise. 24557 245582020-04-27 Andre Vieira <andre.simoesdiasvieira@arm.com> 24559 24560 * config/arm/arm.c (output_move_neon): Only get the first operand if 24561 addr is PLUS. 24562 245632020-04-27 Felix Yang <felix.yang@huawei.com> 24564 24565 PR tree-optimization/94784 24566 * tree-ssa-forwprop.c (simplify_vector_constructor): Flip the 24567 assert around so that it checks that the two vectors have equal 24568 TYPE_VECTOR_SUBPARTS and that converting the corresponding element 24569 types is a useless_type_conversion_p. 24570 245712020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com> 24572 24573 PR target/94515 24574 * dwarf2cfi.c (struct GTY): Add ra_mangled. 24575 (cfi_row_equal_p): Check ra_mangled. 24576 (dwarf2out_frame_debug_cfa_window_save): Remove the argument, 24577 this only handles the sparc logic now. 24578 (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for 24579 the aarch64 specific logic. 24580 (dwarf2out_frame_debug): Update to use the new subroutines. 24581 (change_cfi_row): Check ra_mangled. 24582 245832020-04-27 Jakub Jelinek <jakub@redhat.com> 24584 24585 PR target/94704 24586 * config/s390/s390.c (s390_function_arg_vector, 24587 s390_function_arg_float): Ignore cxx17_empty_base_field_p fields. 24588 245892020-04-27 Jiufu Guo <guojiufu@cn.ibm.com> 24590 24591 * common/config/rs6000/rs6000-common.c 24592 (rs6000_option_optimization_table) [OPT_LEVELS_ALL]: Remove turn off 24593 -fweb. 24594 * config/rs6000/rs6000.c (rs6000_option_override_internal): Avoid to 24595 set flag_web. 24596 245972020-04-27 Martin Liska <mliska@suse.cz> 24598 24599 PR lto/94659 24600 * cgraph.h (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): 24601 Do not remove ifunc_resolvers in remove unreachable nodes in LTO. 24602 246032020-04-27 Xiong Hu Luo <luoxhu@linux.ibm.com> 24604 24605 PR target/91518 24606 * config/rs6000/rs6000-logue.c (frame_pointer_needed_indeed): 24607 New variable. 24608 (rs6000_emit_prologue_components): 24609 Check with frame_pointer_needed_indeed. 24610 (rs6000_emit_epilogue_components): Likewise. 24611 (rs6000_emit_prologue): Likewise. 24612 (rs6000_emit_epilogue): Set frame_pointer_needed_indeed. 24613 246142020-04-25 David Edelsohn <dje.gcc@gmail.com> 24615 24616 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Don't push a 24617 stack frame when debugging and flag_compare_debug is enabled. 24618 246192020-04-25 Michael Meissner <meissner@linux.ibm.com> 24620 24621 * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Define to 24622 enable PC-relative addressing for -mcpu=future. 24623 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Move 24624 after OTHER_FUTURE_MASKS. Use OTHER_FUTURE_MASKS. 24625 * config/rs6000/rs6000.c (PCREL_SUPPORTED_BY_OS): If not defined, 24626 suppress PC-relative addressing. 24627 (rs6000_option_override_internal): Split up error messages 24628 checking for -mprefixed and -mpcrel. Enable -mpcrel if the target 24629 system supports it. 24630 246312020-04-25 Jakub Jelinek <jakub@redhat.com> 24632 Richard Biener <rguenther@suse.de> 24633 24634 PR tree-optimization/94734 24635 PR tree-optimization/89430 24636 * tree-ssa-phiopt.c: Include tree-eh.h. 24637 (cond_store_replacement): Return false if an automatic variable 24638 access could trap. If -fstore-data-races, don't return false 24639 just because an automatic variable is addressable. 24640 246412020-04-24 Andrew Stubbs <ams@codesourcery.com> 24642 24643 * config/gcn/gcn-valu.md (add<mode>_zext_dup2_exec): Fix merge 24644 of high-part. 24645 (add<mode>_sext_dup2_exec): Likewise. 24646 246472020-04-24 Segher Boessenkool <segher@kernel.crashing.org> 24648 24649 PR target/94710 24650 * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little 24651 endian byteshift_val calculation. 24652 246532020-04-24 Andrew Stubbs <ams@codesourcery.com> 24654 24655 * config/gcn/gcn.md (*mov<mode>_insn): Only split post-reload. 24656 246572020-04-24 Richard Sandiford <richard.sandiford@arm.com> 24658 24659 * config/aarch64/arm_sve.h: Add a comment. 24660 246612020-04-24 Haijian Zhang <z.zhanghaijian@huawei.com> 24662 24663 PR rtl-optimization/94708 24664 * combine.c (simplify_if_then_else): Add check for 24665 !HONOR_NANS (mode) && !HONOR_SIGNED_ZEROS (mode). 24666 246672020-04-23 Martin Sebor <msebor@redhat.com> 24668 24669 PR driver/90983 24670 * common.opt (-Wno-frame-larger-than): New option. 24671 (-Wno-larger-than, -Wno-stack-usage): Same. 24672 246732020-04-23 Andrew Stubbs <ams@codesourcery.com> 24674 24675 * config/gcn/gcn-valu.md (mov<mode>_exec): Swap the numbers on operands 24676 2 and 3. 24677 (mov<mode>_exec): Likewise. 24678 (trunc<vndi><mode>2_exec): Swap parameters to gen_mov<mode>_exec. 24679 (<convop><mode><vndi>2_exec): Likewise. 24680 246812019-04-23 Eric Botcazou <ebotcazou@adacore.com> 24682 24683 PR tree-optimization/94717 24684 * gimple-ssa-store-merging.c (try_coalesce_bswap): Return false if one 24685 of the stores doesn't have the same landing pad number as the first. 24686 (coalesce_immediate_stores): Do not try to coalesce the store using 24687 bswap if it doesn't have the same landing pad number as the first. 24688 246892020-04-23 Bill Schmidt <wschmidt@linux.ibm.com> 24690 24691 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): 24692 Replace outdated link to ELFv2 ABI. 24693 246942020-04-23 Jakub Jelinek <jakub@redhat.com> 24695 24696 PR target/94710 24697 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx 24698 just return v2. 24699 24700 PR middle-end/94724 24701 * tree.c (get_narrower): Instead of creating COMPOUND_EXPRs 24702 temporarily with non-final second operand and updating it later, 24703 push COMPOUND_EXPRs into a vector and process it in reverse, 24704 creating COMPOUND_EXPRs with the final operands. 24705 247062020-04-23 Szabolcs Nagy <szabolcs.nagy@arm.com> 24707 24708 PR target/94697 24709 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap 24710 bti c and bti j handling. 24711 247122020-04-23 Andrew Stubbs <ams@codesourcery.com> 24713 Thomas Schwinge <thomas@codesourcery.com> 24714 24715 PR middle-end/93488 24716 24717 * omp-expand.c (expand_omp_target): Use force_gimple_operand_gsi on 24718 t_async and the wait arguments. 24719 247202020-04-23 Richard Sandiford <richard.sandiford@arm.com> 24721 24722 PR tree-optimization/94727 24723 * tree-vect-stmts.c (vectorizable_comparison): Use mask_type when 24724 comparing invariant scalar booleans. 24725 247262020-04-23 Matthew Malcomson <matthew.malcomson@arm.com> 24727 Jakub Jelinek <jakub@redhat.com> 24728 24729 PR target/94383 24730 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Account for C++17 24731 empty base class artificial fields. 24732 (aarch64_vfp_is_call_or_return_candidate): Warn when ABI PCS decision is 24733 different after this fix. 24734 247352020-04-23 Jakub Jelinek <jakub@redhat.com> 24736 24737 PR target/94707 24738 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate): 24739 Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check 24740 if the same type has been diagnosed most recently already. 24741 247422020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 24743 24744 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's 24745 datatype. 24746 (__arm_vbicq_n_s16): Likewise. 24747 (__arm_vbicq_n_u32): Likewise. 24748 (__arm_vbicq_n_s32): Likewise. 24749 (__arm_vbicq): Likewise. 24750 (__arm_vbicq_n_s16): Modify MVE polymorphic variant argument's datatype. 24751 (__arm_vbicq_n_s32): Likewise. 24752 (__arm_vbicq_n_u16): Likewise. 24753 (__arm_vbicq_n_u32): Likewise. 24754 (__arm_vdupq_m_n_s8): Likewise. 24755 (__arm_vdupq_m_n_s16): Likewise. 24756 (__arm_vdupq_m_n_s32): Likewise. 24757 (__arm_vdupq_m_n_u8): Likewise. 24758 (__arm_vdupq_m_n_u16): Likewise. 24759 (__arm_vdupq_m_n_u32): Likewise. 24760 (__arm_vdupq_m_n_f16): Likewise. 24761 (__arm_vdupq_m_n_f32): Likewise. 24762 (__arm_vldrhq_gather_offset_s16): Likewise. 24763 (__arm_vldrhq_gather_offset_s32): Likewise. 24764 (__arm_vldrhq_gather_offset_u16): Likewise. 24765 (__arm_vldrhq_gather_offset_u32): Likewise. 24766 (__arm_vldrhq_gather_offset_f16): Likewise. 24767 (__arm_vldrhq_gather_offset_z_s16): Likewise. 24768 (__arm_vldrhq_gather_offset_z_s32): Likewise. 24769 (__arm_vldrhq_gather_offset_z_u16): Likewise. 24770 (__arm_vldrhq_gather_offset_z_u32): Likewise. 24771 (__arm_vldrhq_gather_offset_z_f16): Likewise. 24772 (__arm_vldrhq_gather_shifted_offset_s16): Likewise. 24773 (__arm_vldrhq_gather_shifted_offset_s32): Likewise. 24774 (__arm_vldrhq_gather_shifted_offset_u16): Likewise. 24775 (__arm_vldrhq_gather_shifted_offset_u32): Likewise. 24776 (__arm_vldrhq_gather_shifted_offset_f16): Likewise. 24777 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise. 24778 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise. 24779 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise. 24780 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise. 24781 (__arm_vldrhq_gather_shifted_offset_z_f16): Likewise. 24782 (__arm_vldrwq_gather_offset_s32): Likewise. 24783 (__arm_vldrwq_gather_offset_u32): Likewise. 24784 (__arm_vldrwq_gather_offset_f32): Likewise. 24785 (__arm_vldrwq_gather_offset_z_s32): Likewise. 24786 (__arm_vldrwq_gather_offset_z_u32): Likewise. 24787 (__arm_vldrwq_gather_offset_z_f32): Likewise. 24788 (__arm_vldrwq_gather_shifted_offset_s32): Likewise. 24789 (__arm_vldrwq_gather_shifted_offset_u32): Likewise. 24790 (__arm_vldrwq_gather_shifted_offset_f32): Likewise. 24791 (__arm_vldrwq_gather_shifted_offset_z_s32): Likewise. 24792 (__arm_vldrwq_gather_shifted_offset_z_u32): Likewise. 24793 (__arm_vldrwq_gather_shifted_offset_z_f32): Likewise. 24794 (__arm_vdwdupq_x_n_u8): Likewise. 24795 (__arm_vdwdupq_x_n_u16): Likewise. 24796 (__arm_vdwdupq_x_n_u32): Likewise. 24797 (__arm_viwdupq_x_n_u8): Likewise. 24798 (__arm_viwdupq_x_n_u16): Likewise. 24799 (__arm_viwdupq_x_n_u32): Likewise. 24800 (__arm_vidupq_x_n_u8): Likewise. 24801 (__arm_vddupq_x_n_u8): Likewise. 24802 (__arm_vidupq_x_n_u16): Likewise. 24803 (__arm_vddupq_x_n_u16): Likewise. 24804 (__arm_vidupq_x_n_u32): Likewise. 24805 (__arm_vddupq_x_n_u32): Likewise. 24806 (__arm_vldrdq_gather_offset_s64): Likewise. 24807 (__arm_vldrdq_gather_offset_u64): Likewise. 24808 (__arm_vldrdq_gather_offset_z_s64): Likewise. 24809 (__arm_vldrdq_gather_offset_z_u64): Likewise. 24810 (__arm_vldrdq_gather_shifted_offset_s64): Likewise. 24811 (__arm_vldrdq_gather_shifted_offset_u64): Likewise. 24812 (__arm_vldrdq_gather_shifted_offset_z_s64): Likewise. 24813 (__arm_vldrdq_gather_shifted_offset_z_u64): Likewise. 24814 (__arm_vidupq_m_n_u8): Likewise. 24815 (__arm_vidupq_m_n_u16): Likewise. 24816 (__arm_vidupq_m_n_u32): Likewise. 24817 (__arm_vddupq_m_n_u8): Likewise. 24818 (__arm_vddupq_m_n_u16): Likewise. 24819 (__arm_vddupq_m_n_u32): Likewise. 24820 (__arm_vidupq_n_u16): Likewise. 24821 (__arm_vidupq_n_u32): Likewise. 24822 (__arm_vidupq_n_u8): Likewise. 24823 (__arm_vddupq_n_u16): Likewise. 24824 (__arm_vddupq_n_u32): Likewise. 24825 (__arm_vddupq_n_u8): Likewise. 24826 248272020-04-23 Iain Buclaw <ibuclaw@gdcproject.org> 24828 24829 * doc/install.texi (D-Specific Options): Document 24830 --enable-libphobos-checking and --with-libphobos-druntime-only. 24831 248322020-04-23 Jakub Jelinek <jakub@redhat.com> 24833 24834 PR target/94707 24835 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Add 24836 cxx17_empty_base_seen argument. Pass it to recursive calls. 24837 Ignore cxx17_empty_base_field_p fields after setting 24838 *cxx17_empty_base_seen to true. 24839 (rs6000_discover_homogeneous_aggregate): Adjust 24840 rs6000_aggregate_candidate caller. With -Wpsabi, diagnose homogeneous 24841 aggregates with C++17 empty base fields. 24842 24843 PR c/94705 24844 * attribs.c (decl_attribute): Don't diagnose attribute exclusions 24845 if last_decl is error_mark_node or has such a TREE_TYPE. 24846 24847 PR c/94705 24848 * attribs.c (decl_attribute): Don't diagnose attribute exclusions 24849 if last_decl is error_mark_node or has such a TREE_TYPE. 24850 248512020-04-22 Felix Yang <felix.yang@huawei.com> 24852 24853 PR target/94678 24854 * config/aarch64/aarch64.h (TARGET_SVE): 24855 Add && !TARGET_GENERAL_REGS_ONLY. 24856 (TARGET_SVE2): Add && TARGET_SVE. 24857 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3, 24858 TARGET_SVE2_SM4): Add && TARGET_SVE2. 24859 * config/aarch64/aarch64-sve-builtins.h 24860 (sve_switcher::m_old_general_regs_only): New member. 24861 * config/aarch64/aarch64-sve-builtins.cc (check_required_registers): 24862 New function. 24863 (reported_missing_registers_p): New variable. 24864 (check_required_extensions): Call check_required_registers before 24865 return if all required extenstions are present. 24866 (sve_switcher::sve_switcher): Save TARGET_GENERAL_REGS_ONLY in 24867 m_old_general_regs_only and clear MASK_GENERAL_REGS_ONLY in 24868 global_options.x_target_flags. 24869 (sve_switcher::~sve_switcher): Set MASK_GENERAL_REGS_ONLY in 24870 global_options.x_target_flags if m_old_general_regs_only is true. 24871 248722020-04-22 Zackery Spytz <zspytz@gmail.com> 24873 24874 * doc/extend.exi: Add "free" to list of other builtin functions 24875 supported by GCC. 24876 248772020-04-20 Aaron Sawdey <acsawdey@linux.ibm.com> 24878 24879 PR target/94622 24880 * config/rs6000/sync.md (load_quadpti): Add attr "prefixed" 24881 if TARGET_PREFIXED. 24882 (store_quadpti): Ditto. 24883 (atomic_load<mode>): Do not swap doublewords if TARGET_PREFIXED as 24884 plq will be used and doesn't need it. 24885 (atomic_store<mode>): Ditto, for pstq. 24886 248872020-04-22 Erick Ochoa <erick.ochoa@theobroma-systems.com> 24888 24889 * doc/invoke.texi: Update flags turned on by -O3. 24890 248912020-04-22 Jakub Jelinek <jakub@redhat.com> 24892 24893 PR target/94706 24894 * config/ia64/ia64.c (hfa_element_mode): Ignore 24895 cxx17_empty_base_field_p fields. 24896 24897 PR target/94383 24898 * calls.h (cxx17_empty_base_field_p): Declare. 24899 * calls.c (cxx17_empty_base_field_p): Define. 24900 249012020-04-22 Christophe Lyon <christophe.lyon@linaro.org> 24902 24903 * doc/sourcebuild.texi (arm_softfp_ok, arm_hard_ok): Document. 24904 249052020-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 24906 Andre Vieira <andre.simoesdiasvieira@arm.com> 24907 Mihail Ionescu <mihail.ionescu@arm.com> 24908 24909 * config/arm/arm.c (arm_file_start): Handle isa_bit_quirk_no_asmcpu. 24910 * config/arm/arm-cpus.in (quirk_no_asmcpu): Define. 24911 (ALL_QUIRKS): Add quirk_no_asmcpu. 24912 (cortex-m55): Define new cpu. 24913 * config/arm/arm-tables.opt: Regenerate. 24914 * config/arm/arm-tune.md: Likewise. 24915 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55. 24916 249172020-04-22 Richard Sandiford <richard.sandiford@arm.com> 24918 24919 PR tree-optimization/94700 24920 * tree-ssa-forwprop.c (simplify_vector_constructor): When processing 24921 an identity constructor, use a VIEW_CONVERT_EXPR to handle mixtures 24922 of similarly-structured but distinct vector types. 24923 249242020-04-21 Martin Sebor <msebor@redhat.com> 24925 24926 PR middle-end/94647 24927 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Correct 24928 the computation of the lower bound of the source access size. 24929 (builtin_access::generic_overlap): Remove a hack for setting ranges 24930 of overlap offsets. 24931 249322020-04-21 John David Anglin <danglin@gcc.gnu.org> 24933 24934 * config/pa/som.h (ASM_WEAKEN_LABEL): Delete. 24935 (ASM_WEAKEN_DECL): New define. 24936 (HAVE_GAS_WEAKREF): Undefine. 24937 249382020-04-21 Richard Sandiford <richard.sandiford@arm.com> 24939 24940 PR tree-optimization/94683 24941 * tree-ssa-forwprop.c (simplify_vector_constructor): Use a 24942 VIEW_CONVERT_EXPR to handle mixtures of similarly-structured 24943 but distinct vector types. 24944 249452020-04-21 Jakub Jelinek <jakub@redhat.com> 24946 24947 PR c/94641 24948 * stor-layout.c (place_field, finalize_record_size): Don't emit 24949 -Wpadded warning on TYPE_ARTIFICIAL rli->t. 24950 * ubsan.c (ubsan_get_type_descriptor_type, 24951 ubsan_get_source_location_type, ubsan_create_data): Set 24952 TYPE_ARTIFICIAL. 24953 * asan.c (asan_global_struct): Likewise. 24954 249552020-04-21 Duan bo <duanbo3@huawei.com> 24956 24957 PR target/94577 24958 * config/aarch64/aarch64.c: Add an error message for option conflict. 24959 * doc/invoke.texi (-mcmodel=large): Mention that -mcmodel=large is 24960 incompatible with -fpic, -fPIC and -mabi=ilp32. 24961 249622020-04-21 Frederik Harwath <frederik@codesourcery.com> 24963 24964 PR other/94629 24965 * omp-low.c (new_omp_context): Remove assignments to 24966 ctx->outer_reduction_clauses and ctx->local_reduction_clauses. 24967 249682020-04-20 Andreas Krebbel <krebbel@linux.ibm.com> 24969 24970 * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx") 24971 ("popcountv2di2_vx"): Use simplify_gen_subreg. 24972 249732020-04-20 Andreas Krebbel <krebbel@linux.ibm.com> 24974 24975 PR target/94613 24976 * config/s390/s390-builtin-types.def: Add 3 new function modes. 24977 * config/s390/s390-builtins.def: Add mode dependent low-level 24978 builtin and map the overloaded builtins to these. 24979 * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ... 24980 ("vsel<V_HW"): ... this and rewrite the pattern with bitops. 24981 249822020-04-20 Richard Sandiford <richard.sandiford@arm.com> 24983 24984 * tree-vect-loop.c (vect_better_loop_vinfo_p): If old_loop_vinfo 24985 has a variable VF, prefer new_loop_vinfo if it is cheaper for the 24986 estimated VF and is no worse at double the estimated VF. 24987 249882020-04-20 Richard Sandiford <richard.sandiford@arm.com> 24989 24990 PR target/94668 24991 * config/aarch64/aarch64.c (aarch64_sve_expand_vector_init): Fix 24992 order of arguments to rtx_vector_builder. 24993 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise. 24994 When extending the trailing constants to a full vector, replace any 24995 variables with zeros. 24996 249972020-04-20 Jan Hubicka <hubicka@ucw.cz> 24998 24999 PR ipa/94582 25000 * tree-inline.c (optimize_inline_calls): Recompute calls_comdat_local 25001 flag. 25002 250032020-04-20 Martin Liska <mliska@suse.cz> 25004 25005 * symtab.c (symtab_node::dump_references): Add space after 25006 one entry. 25007 (symtab_node::dump_referring): Likewise. 25008 250092020-04-18 Jeff Law <law@redhat.com> 25010 25011 PR debug/94439 25012 * regrename.c (check_new_reg_p): Ignore DEBUG_INSNs when walking 25013 the chain. 25014 250152020-04-18 Iain Buclaw <ibuclaw@gdcproject.org> 25016 25017 * doc/sourcebuild.texi (Effective-Target Keywords, Environment 25018 attributes): Document d_runtime_has_std_library. 25019 250202020-04-17 Jeff Law <law@redhat.com> 25021 25022 PR rtl-optimization/90275 25023 * cse.c (cse_insn): Avoid recording nop sets in multi-set parallels 25024 when the destination has a REG_UNUSED note. 25025 250262020-04-17 Tobias Burnus <tobias@codesourcery.com> 25027 25028 PR middle-end/94635 25029 * gimplify.c (gimplify_scan_omp_clauses): Turn MAP_TO_PSET to 25030 MAP_DELETE. 25031 250322020-04-17 Richard Sandiford <richard.sandiford@arm.com> 25033 25034 * config/aarch64/aarch64.c (aarch64_advsimd_ldp_stp_p): New function. 25035 (aarch64_sve_adjust_stmt_cost): Add a vectype parameter. Double the 25036 cost of load and store insns if one loop iteration has enough scalar 25037 elements to use an Advanced SIMD LDP or STP. 25038 (aarch64_add_stmt_cost): Update call accordingly. 25039 250402020-04-17 Jakub Jelinek <jakub@redhat.com> 25041 Jeff Law <law@redhat.com> 25042 25043 PR target/94567 25044 * config/i386/i386.md (*testqi_ext_3): Use CCZmode rather than 25045 CCNOmode in ix86_match_ccmode if len is equal to <MODE>mode precision, 25046 or pos + len >= 32, or pos + len is equal to operands[2] precision 25047 and operands[2] is not a register operand. During splitting perform 25048 SImode AND if operands[0] doesn't have CCZmode and pos + len is 25049 equal to mode precision. 25050 250512020-04-17 Richard Biener <rguenther@suse.de> 25052 25053 PR other/94629 25054 * cgraphclones.c (cgraph_node::create_clone): Remove duplicate 25055 initialization. 25056 * dwarf2out.c (dw_val_equal_p): Fix pasto in 25057 dw_val_class_vms_delta comparison. 25058 * optabs.c (expand_binop_directly): Fix pasto in commutation 25059 check. 25060 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Fix pasto in 25061 initialization. 25062 250632020-04-17 Jakub Jelinek <jakub@redhat.com> 25064 25065 PR rtl-optimization/94618 25066 * cfgrtl.c (delete_insn_and_edges): Set purge not just when 25067 insn is the BB_END of its block, but also when it is only followed 25068 by DEBUG_INSNs in its block. 25069 25070 PR tree-optimization/94621 25071 * tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN. 25072 Move id->adjust_array_error_bounds check first in the condition. 25073 250742020-04-17 Martin Liska <mliska@suse.cz> 25075 Jonathan Yong <10walls@gmail.com> 25076 25077 PR gcov-profile/94570 25078 * coverage.c (coverage_init): Use separator properly. 25079 250802020-04-16 Peter Bergner <bergner@linux.ibm.com> 25081 25082 PR rtl-optimization/93974 25083 * config/rs6000/rs6000.c (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define. 25084 (rs6000_cannot_substitute_mem_equiv_p): New function. 25085 250862020-04-16 Martin Jambor <mjambor@suse.cz> 25087 25088 PR ipa/93621 25089 * ipa-inline.h (ipa_saved_clone_sources): Declare. 25090 * ipa-inline-transform.c (ipa_saved_clone_sources): New variable. 25091 (save_inline_function_body): Link the new body holder with the 25092 previous one. 25093 * cgraph.c: Include ipa-inline.h. 25094 (cgraph_edge::redirect_call_stmt_to_callee): Try to find the decl from 25095 the statement in ipa_saved_clone_sources. 25096 * cgraphunit.c: Include ipa-inline.h. 25097 (expand_all_functions): Free ipa_saved_clone_sources. 25098 250992020-04-16 Richard Sandiford <richard.sandiford@arm.com> 25100 25101 PR target/94606 25102 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor): Take 25103 the VNx16BI lowpart of the recursively-generated constant. 25104 251052020-04-16 Martin Liska <mliska@suse.cz> 25106 Jakub Jelinek <jakub@redhat.com> 25107 25108 PR c++/94314 25109 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop 25110 DECL_IS_REPLACEABLE_OPERATOR during cloning. 25111 * tree-ssa-dce.c (valid_new_delete_pair_p): New function. 25112 (propagate_necessity): Check operator names. 25113 251142020-04-16 Richard Sandiford <richard.sandiford@arm.com> 25115 25116 PR rtl-optimization/94605 25117 * early-remat.c (early_remat::process_block): Handle insns that 25118 set multiple candidate registers. 251192020-04-16 Jan Hubicka <hubicka@ucw.cz> 25120 25121 PR gcov-profile/93401 25122 * common.opt (profile-prefix-path): New option. 25123 * coverae.c: Include diagnostics.h. 25124 (coverage_init): Strip profile prefix path. 25125 * doc/invoke.texi (-fprofile-prefix-path): Document. 25126 251272020-04-16 Richard Biener <rguenther@suse.de> 25128 25129 PR middle-end/94614 25130 * expr.c (emit_move_multi_word): Do not generate code when 25131 the destination part is undefined_operand_subword_p. 25132 * lower-subreg.c (resolve_clobber): Look through a paradoxica 25133 subreg. 25134 251352020-04-16 Martin Jambor <mjambor@suse.cz> 25136 25137 PR tree-optimization/94598 25138 * tree-sra.c (verify_sra_access_forest): Fix verification of total 25139 scalarization accesses under access to one-element arrays. 25140 251412020-04-16 Jakub Jelinek <jakub@redhat.com> 25142 25143 PR bootstrap/89494 25144 * function.c (assign_parm_find_data_types): Add workaround for 25145 BROKEN_VALUE_INITIALIZATION compilers. 25146 251472020-04-16 Richard Biener <rguenther@suse.de> 25148 25149 * gdbhooks.py (TreePrinter): Print SSA_NAME_VERSION of SSA_NAME 25150 nodes. 25151 251522020-04-15 Uroš Bizjak <ubizjak@gmail.com> 25153 25154 PR target/94603 25155 * config/i386/i386-builtin.def (__builtin_ia32_movq128): 25156 Require OPTION_MASK_ISA_SSE2. 25157 251582020-04-15 Gustavo Romero <gromero@linux.ibm.com> 25159 25160 PR bootstrap/89494 25161 * dumpfile.c (selftest::temp_dump_context::temp_dump_context): 25162 Don't construct a dump_context temporary to call static method. 25163 251642020-04-15 Andrea Corallo <andrea.corallo@arm.com> 25165 25166 * config/aarch64/falkor-tag-collision-avoidance.c 25167 (valid_src_p): Check for aarch64_address_info type before 25168 accessing base field. 25169 251702020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com> 25171 25172 * config/arm/mve.md (mve_vec_duplicate<mode>): New pattern. 25173 (V_sz_elem2): Remove unused mode attribute. 25174 251752020-04-15 Matthew Malcomson <matthew.malcomson@arm.com> 25176 25177 * config/arm/arm.md (arm_movdi): Disallow for MVE. 25178 251792020-04-15 Richard Biener <rguenther@suse.de> 25180 25181 PR middle-end/94539 25182 * tree-ssa-alias.c (same_type_for_tbaa): Defer to 25183 alias_sets_conflict_p for pointers. 25184 251852020-04-14 Max Filippov <jcmvbkbc@gmail.com> 25186 25187 PR target/94584 25188 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2) 25189 (extendhisi2_internal): Add %v1 before the load instructions. 25190 251912020-04-14 Aaron Sawdey <acsawdey@linux.ibm.com> 25192 25193 PR target/94542 25194 * config/rs6000/rs6000.c (address_to_insn_form): Do not attempt to 25195 use PC-relative addressing for TLS references. 25196 251972020-04-14 Martin Jambor <mjambor@suse.cz> 25198 25199 PR ipa/94434 25200 * ipa-sra.c: Include internal-fn.h. 25201 (enum isra_scan_context): Update comment. 25202 (scan_function): Treat calls to internal_functions like loads or stores. 25203 252042020-04-14 Yang Yang <yangyang305@huawei.com> 25205 25206 PR tree-optimization/94574 25207 * tree-ssa.c (non_rewritable_lvalue_p): Add size check when analyzing 25208 whether a vector-insert is rewritable using a BIT_INSERT_EXPR. 25209 252102020-04-14 H.J. Lu <hongjiu.lu@intel.com> 25211 25212 PR target/94561 25213 * config/i386/i386.c (ix86_get_ssemov): Remove mode size check. 25214 252152020-04-13 Martin Sebor <msebor@redhat.com> 25216 25217 * doc/extend.texi (-Wall): Mention -Wformat-overflow and 25218 -Wformat-truncation. Move -Wzero-length-bounds last. 25219 (-Wrestrict): Document positive form of option enabled by -Wall. 25220 252212020-04-13 Zachary Spytz <zspytz@gmail.com> 25222 25223 * doc/extend.texi: Add realloc to list of built-in functions 25224 are recognized by the compiler. 25225 252262020-04-13 H.J. Lu <hongjiu.lu@intel.com> 25227 25228 PR target/94556 25229 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame 25230 pointer in word_mode for eh_return epilogues. 25231 252322020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> 25233 25234 * config/msp430/msp430.c (msp430_print_operand): Don't add offsets to 25235 memory references in %B, %C and %D operand selectors when the inner 25236 operand is a post increment address. 25237 252382020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> 25239 25240 * config/msp430/msp430.c (msp430_print_operand): Offset a %C memory 25241 reference by 4 bytes, and %D memory reference by 6 bytes. 25242 252432020-04-11 Uroš Bizjak <ubizjak@gmail.com> 25244 25245 PR target/94494 25246 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2 25247 condition for V4SI, V8HI and V16QI modes. 25248 252492020-04-11 Jakub Jelinek <jakub@redhat.com> 25250 25251 PR debug/94495 25252 PR target/94551 25253 * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on 25254 val->val_rtx. 25255 252562020-04-10 Thomas Schwinge <thomas@codesourcery.com> 25257 25258 PR middle-end/89433 25259 PR middle-end/93465 25260 * omp-general.c (oacc_verify_routine_clauses): Diagnose if 25261 "#pragma omp declare target" has also been applied. 25262 252632020-04-09 Jozef Lawrynowicz <jozef.l@mittosystems.com> 25264 25265 * config/msp430/msp430.c (msp430_expand_epilogue): Use emit_jump_insn 25266 when to emit the epilogue_helper insn. 25267 * config/msp430/msp430.md (epilogue_helper): Add a return insn to the 25268 RTL pattern. 25269 252702020-04-09 Jakub Jelinek <jakub@redhat.com> 25271 25272 PR debug/94495 25273 * cselib.h (cselib_record_sp_cfa_base_equiv, 25274 cselib_sp_derived_value_p): Declare. 25275 * cselib.c (cselib_record_sp_cfa_base_equiv, 25276 cselib_sp_derived_value_p): New functions. 25277 * var-tracking.c (add_stores): Don't record MO_VAL_SET for 25278 cselib_sp_derived_value_p values. 25279 (vt_initialize): Call cselib_record_sp_cfa_base_equiv at the 25280 start of extended basic blocks other than the first one 25281 for !frame_pointer_needed functions. 25282 252832020-04-09 Richard Sandiford <richard.sandiford@arm.com> 25284 25285 * doc/sourcebuild.texi (aarch64_sve_hw, aarch64_sve128_hw) 25286 (aarch64_sve256_hw, aarch64_sve512_hw, aarch64_sve1024_hw) 25287 (aarch64_sve2048_hw): Document. 25288 * config/aarch64/aarch64-protos.h 25289 (aarch64_sve::handle_arm_sve_vector_bits_attribute): Declare. 25290 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 25291 __ARM_FEATURE_SVE_VECTOR_OPERATIONS when SVE is enabled. 25292 * config/aarch64/aarch64-sve-builtins.cc (matches_type_p): New 25293 function. 25294 (find_type_suffix_for_scalar_type): Use it instead of comparing 25295 TYPE_MAIN_VARIANTs. 25296 (function_resolver::infer_vector_or_tuple_type): Likewise. 25297 (function_resolver::require_vector_type): Likewise. 25298 (handle_arm_sve_vector_bits_attribute): New function. 25299 * config/aarch64/aarch64.c (pure_scalable_type_info): New class. 25300 (aarch64_attribute_table): Add arm_sve_vector_bits. 25301 (aarch64_return_in_memory_1): 25302 (pure_scalable_type_info::piece::get_rtx): New function. 25303 (pure_scalable_type_info::num_zr): Likewise. 25304 (pure_scalable_type_info::num_pr): Likewise. 25305 (pure_scalable_type_info::get_rtx): Likewise. 25306 (pure_scalable_type_info::analyze): Likewise. 25307 (pure_scalable_type_info::analyze_registers): Likewise. 25308 (pure_scalable_type_info::analyze_array): Likewise. 25309 (pure_scalable_type_info::analyze_record): Likewise. 25310 (pure_scalable_type_info::add_piece): Likewise. 25311 (aarch64_some_values_include_pst_objects_p): Likewise. 25312 (aarch64_returns_value_in_sve_regs_p): Use pure_scalable_type_info 25313 to analyze whether the type is returned in SVE registers. 25314 (aarch64_takes_arguments_in_sve_regs_p): Likwise whether the type 25315 is passed in SVE registers. 25316 (aarch64_pass_by_reference_1): New function, extracted from... 25317 (aarch64_pass_by_reference): ...here. Use pure_scalable_type_info 25318 to analyze whether the type is a pure scalable type and, if so, 25319 whether it should be passed by reference. 25320 (aarch64_return_in_msb): Return false for pure scalable types. 25321 (aarch64_function_value_1): Fold back into... 25322 (aarch64_function_value): ...this function. Use 25323 pure_scalable_type_info to analyze whether the type is a pure 25324 scalable type and, if so, which registers it should use. Handle 25325 types that include pure scalable types but are not themselves 25326 pure scalable types. 25327 (aarch64_return_in_memory_1): New function, split out from... 25328 (aarch64_return_in_memory): ...here. Use pure_scalable_type_info 25329 to analyze whether the type is a pure scalable type and, if so, 25330 whether it should be returned by reference. 25331 (aarch64_layout_arg): Remove orig_mode argument. Use 25332 pure_scalable_type_info to analyze whether the type is a pure 25333 scalable type and, if so, which registers it should use. Handle 25334 types that include pure scalable types but are not themselves 25335 pure scalable types. 25336 (aarch64_function_arg): Update call accordingly. 25337 (aarch64_function_arg_advance): Likewise. 25338 (aarch64_pad_reg_upward): On big-endian targets, return false for 25339 pure scalable types that are smaller than 16 bytes. 25340 (aarch64_member_type_forces_blk): New function. 25341 (aapcs_vfp_sub_candidate): Exit early for built-in SVE types. 25342 (aarch64_short_vector_p): Return false for VECTOR_TYPEs that 25343 correspond to built-in SVE types. Do not rely on a vector mode 25344 if the type includes an pure scalable type. When returning true, 25345 assert that the mode is not an SVE mode. 25346 (aarch64_vfp_is_call_or_return_candidate): Do not check for SVE 25347 built-in types here. When returning true, assert that the type 25348 does not have an SVE mode. 25349 (aarch64_can_change_mode_class): Don't allow anything to change 25350 between a predicate mode and a non-predicate mode. Also don't 25351 allow changes between SVE vector modes and other modes that 25352 might be bigger than 128 bits. 25353 (aarch64_invalid_binary_op): Reject binary operations that mix 25354 SVE and GNU vector types. 25355 (TARGET_MEMBER_TYPE_FORCES_BLK): Define. 25356 253572020-04-09 Richard Sandiford <richard.sandiford@arm.com> 25358 25359 * config/aarch64/aarch64.c (aarch64_attribute_table): Add 25360 "SVE sizeless type". 25361 * config/aarch64/aarch64-sve-builtins.cc (make_type_sizeless) 25362 (sizeless_type_p): New functions. 25363 (register_builtin_types): Apply make_type_sizeless to the type. 25364 (register_tuple_type): Likewise. 25365 (verify_type_context): Use sizeless_type_p instead of builin_type_p. 25366 253672020-04-09 Matthew Malcomson <matthew.malcomson@arm.com> 25368 25369 * config/arm/arm_cde.h: Remove `extern "C"` when compiling for 25370 C++. 25371 253722020-04-09 Martin Jambor <mjambor@suse.cz> 25373 Richard Biener <rguenther@suse.de> 25374 25375 PR tree-optimization/94482 25376 * tree-sra.c (create_access_replacement): Dump new replacement with 25377 TDF_UID. 25378 (sra_modify_expr): Fix handling of cases when the original EXPR writes 25379 to only part of the replacement. 25380 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify 25381 the first operand of combinations into REAL/IMAGPART_EXPR and 25382 BIT_FIELD_REF. 25383 253842020-04-09 Richard Sandiford <richard.sandiford@arm.com> 25385 25386 * doc/sourcebuild.texi (check-function-bodies): Treat the third 25387 parameter as a list of option regexps and require each regexp 25388 to match. 25389 253902020-04-09 Andrea Corallo <andrea.corallo@arm.com> 25391 25392 PR target/94530 25393 * config/aarch64/falkor-tag-collision-avoidance.c 25394 (valid_src_p): Fix missing rtx type check. 25395 253962020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com> 25397 Richard Biener <rguenther@suse.de> 25398 25399 PR tree-optimization/93674 25400 * tree-ssa-loop-ivopts.c (langhooks.h): New include. 25401 (add_iv_candidate_for_use): For iv_use of non integer or pointer type, 25402 or non-mode precision type, add candidate in unsigned type with the 25403 same precision. 25404 254052020-04-08 Clement Chigot <clement.chigot@atos.net> 25406 25407 * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128. 25408 * config/rs6000/aix71.h (LIB_SPEC): Likewise. 25409 * config/rs6000/aix72.h (LIB_SPEC): Likewise. 25410 254112020-04-08 Jakub Jelinek <jakub@redhat.com> 25412 25413 PR middle-end/94526 25414 * cselib.c (autoinc_split): Handle e->val_rtx being SP_DERIVED_VALUE_P 25415 with zero offset. 25416 * reload1.c (eliminate_regs_1): Avoid creating 25417 (plus (reg) (const_int 0)) in DEBUG_INSNs. 25418 25419 PR tree-optimization/94524 25420 * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is 25421 negative for signed TRUNC_MOD_EXPR, multiply with absolute value of 25422 op1 rather than op1 itself at the end. Punt for signed modulo by 25423 most negative constant. 25424 * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed 25425 modulo by most negative constant. 25426 254272020-04-08 Richard Biener <rguenther@suse.de> 25428 25429 PR rtl-optimization/93946 25430 * cse.c (cse_insn): Record the tabled expression in 25431 src_related. Verify a redundant store removal is valid. 25432 254332020-04-08 H.J. Lu <hongjiu.lu@intel.com> 25434 25435 PR target/94417 25436 * config/i386/i386-features.c (rest_of_insert_endbranch): Insert 25437 ENDBR at function entry if function will be called indirectly. 25438 254392020-04-08 Jakub Jelinek <jakub@redhat.com> 25440 25441 PR target/94438 25442 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size 25443 1, 2, 4 and 8. 25444 254452020-04-08 Martin Liska <mliska@suse.cz> 25446 25447 PR c++/94314 25448 * gimple.c (gimple_call_operator_delete_p): Rename to... 25449 (gimple_call_replaceable_operator_delete_p): ... this. 25450 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P. 25451 * gimple.h (gimple_call_operator_delete_p): Rename to ... 25452 (gimple_call_replaceable_operator_delete_p): ... this. 25453 * tree-core.h (tree_function_decl): Add replaceable_operator 25454 flag. 25455 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): 25456 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P. 25457 (propagate_necessity): Use gimple_call_replaceable_operator_delete_p. 25458 (eliminate_unnecessary_stmts): Likewise. 25459 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): 25460 Pack DECL_IS_REPLACEABLE_OPERATOR. 25461 * tree-streamer-out.c (pack_ts_function_decl_value_fields): 25462 Unpack the field here. 25463 * tree.h (DECL_IS_REPLACEABLE_OPERATOR): New. 25464 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): New. 25465 (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): New. 25466 * cgraph.c (cgraph_node::dump): Dump if an operator is replaceable. 25467 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Compare 25468 replaceable operator flags. 25469 254702020-04-08 Dennis Zhang <dennis.zhang@arm.com> 25471 Matthew Malcomson <matthew.malcomson@arm.com> 25472 25473 * config/arm/arm-builtins.c (CX_IMM_QUALIFIERS): New macro. 25474 (CX_UNARY_QUALIFIERS, CX_BINARY_QUALIFIERS): Likewise. 25475 (CX_TERNARY_QUALIFIERS): Likewise. 25476 (ARM_BUILTIN_CDE_PATTERN_START): Likewise. 25477 (ARM_BUILTIN_CDE_PATTERN_END): Likewise. 25478 (arm_init_acle_builtins): Initialize CDE builtins. 25479 (arm_expand_acle_builtin): Check CDE constant operands. 25480 * config/arm/arm.h (ARM_CDE_CONST_COPROC): New macro to set the range 25481 of CDE constant operand. 25482 * config/arm/arm.c (arm_hard_regno_mode_ok): Support DImode for 25483 TARGET_VFP_BASE. 25484 (ARM_VCDE_CONST_1, ARM_VCDE_CONST_2, ARM_VCDE_CONST_3): Likewise. 25485 * config/arm/arm_cde.h (__arm_vcx1_u32): New macro of ACLE interface. 25486 (__arm_vcx1a_u32, __arm_vcx2_u32, __arm_vcx2a_u32): Likewise. 25487 (__arm_vcx3_u32, __arm_vcx3a_u32, __arm_vcx1d_u64): Likewise. 25488 (__arm_vcx1da_u64, __arm_vcx2d_u64, __arm_vcx2da_u64): Likewise. 25489 (__arm_vcx3d_u64, __arm_vcx3da_u64): Likewise. 25490 * config/arm/arm_cde_builtins.def: New file. 25491 * config/arm/iterators.md (V_reg): New attribute of SI. 25492 * config/arm/predicates.md (const_int_coproc_operand): New. 25493 (const_int_vcde1_operand, const_int_vcde2_operand): New. 25494 (const_int_vcde3_operand): New. 25495 * config/arm/unspecs.md (UNSPEC_VCDE, UNSPEC_VCDEA): New. 25496 * config/arm/vfp.md (arm_vcx1<mode>): New entry. 25497 (arm_vcx1a<mode>, arm_vcx2<mode>, arm_vcx2a<mode>): Likewise. 25498 (arm_vcx3<mode>, arm_vcx3a<mode>): Likewise. 25499 255002020-04-08 Dennis Zhang <dennis.zhang@arm.com> 25501 25502 * config.gcc: Add arm_cde.h. 25503 * config/arm/arm-c.c (arm_cpu_builtins): Define or undefine 25504 __ARM_FEATURE_CDE and __ARM_FEATURE_CDE_COPROC. 25505 * config/arm/arm-cpus.in (cdecp0, cdecp1, ..., cdecp7): New options. 25506 * config/arm/arm.c (arm_option_reconfigure_globals): Configure 25507 arm_arch_cde and arm_arch_cde_coproc to store the feature bits. 25508 * config/arm/arm.h (TARGET_CDE): New macro. 25509 * config/arm/arm_cde.h: New file. 25510 * doc/invoke.texi: Document CDE options +cdecp[0-7]. 25511 * doc/sourcebuild.texi (arm_v8m_main_cde_ok): Document new target 25512 supports option. 25513 (arm_v8m_main_cde_fp, arm_v8_1m_main_cde_mve): Likewise. 25514 255152020-04-08 Jakub Jelinek <jakub@redhat.com> 25516 25517 PR rtl-optimization/94516 25518 * postreload.c: Include rtl-iter.h. 25519 (reload_cse_move2add): Handle SP autoinc here by FOR_EACH_SUBRTX_VAR 25520 looking for all MEMs with RTX_AUTOINC operand. 25521 (move2add_note_store): Remove {PRE,POST}_{INC,DEC} handling. 25522 255232020-04-08 Tobias Burnus <tobias@codesourcery.com> 25524 25525 * omp-grid.c (grid_eliminate_combined_simd_part): Use 25526 OMP_CLAUSE_CODE to access the omp clause code. 25527 255282020-04-07 Jeff Law <law@redhat.com> 25529 25530 PR rtl-optimization/92264 25531 * config/h8300/h8300.md (mov;add peephole2): Avoid applying when 25532 the destination is the stack pointer. 25533 255342020-04-07 Jakub Jelinek <jakub@redhat.com> 25535 25536 PR rtl-optimization/94291 25537 PR rtl-optimization/84169 25538 * combine.c (try_combine): For split_i2i3, don't assume SET_DEST 25539 must be a REG or SUBREG of REG; if it is not one of these, don't 25540 update LOG_LINKs. 25541 255422020-04-07 Richard Biener <rguenther@suse.de> 25543 25544 PR middle-end/94479 25545 * gimplify.c (gimplify_addr_expr): Also consider generated 25546 MEM_REFs. 25547 255482020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25549 25550 * config/arm/arm_mve.h: Add C++ polymorphism and fix preserve MACROs. 25551 255522020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25553 25554 * config/arm/arm_mve.h: Cast some pointers to expected types. 25555 255562020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25557 25558 * config/arm/arm_mve.h: Replace all uses of vuninitializedq_* with the 25559 same with '__arm_' prefix. 25560 255612020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25562 25563 * config/arm/mve.md (mve_vec_extract*): Allow memory operands in set. 25564 255652020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25566 25567 * config/arm/arm.c (arm_mve_immediate_check): Removed. 25568 * config/arm/mve.md (MVE_pred2, MVE_constraint2): Added FP types. 25569 (mve_vcvtq_n_to_f_*, mve_vcvtq_n_from_f_*, mve_vqshrnbq_n_*, 25570 mve_vqshrntq_n_*, mve_vqshrunbq_n_s*, mve_vqshruntq_n_s*, 25571 mve_vcvtq_m_n_from_f_*, mve_vcvtq_m_n_to_f_*, mve_vqshrnbq_m_n_*, 25572 mve_vqrshruntq_m_n_s*, mve_vqshrunbq_m_n_s*, 25573 mve_vqshruntq_m_n_s*): Fixed immediate constraints. 25574 255752020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25576 25577 * config/arm/arm.d (ashldi3): Don't use lsll for constant 32-bit shifts. 25578 255792020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25580 25581 * config/arm/arm_mve.h: Fix v[id]wdup intrinsics. 25582 * config/arm/mve/md: Fix v[id]wdup patterns. 25583 255842020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25585 25586 * config/arm/arm.c (output_move_neon): Deal with label + offset cases. 25587 * config/arm/mve.md (*mve_mov<mode>): Handle const vectors. 25588 255892020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25590 25591 * config/arm/arm_mve.h: Remove use of typeof for addr pointer parameters 25592 and remove const_ptr enums. 25593 255942020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 25595 25596 * config/arm/arm_mve.h (vsubq_n): Merge with... 25597 (vsubq): ... this. 25598 (vmulq_n): Merge with... 25599 (vmulq): ... this. 25600 (__ARM_mve_typeid): Simplify scalar and constant detection. 25601 256022020-04-07 Jakub Jelinek <jakub@redhat.com> 25603 25604 PR target/94509 25605 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix the check 25606 for inter-lane permutation for 64-byte modes. 25607 25608 PR target/94488 25609 * config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3, 25610 ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT. 25611 Assume it is a REG after that instead of testing it and doing FAIL 25612 otherwise. Formatting fix. 25613 256142020-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de> 25615 25616 * config/rs6000/t-rtems: Delete mcpu=8540 multilib. 25617 256182020-04-07 Jakub Jelinek <jakub@redhat.com> 25619 25620 PR target/94500 25621 * config/i386/i386-expand.c (emit_reduc_half): For V{64QI,32HI}mode 25622 handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes. 25623 256242020-04-06 Jakub Jelinek <jakub@redhat.com> 25625 25626 * cselib.c (cselib_subst_to_values): For SP_DERIVED_VALUE_P 25627 + const0_rtx return the SP_DERIVED_VALUE_P. 25628 256292020-04-06 Richard Sandiford <richard.sandiford@arm.com> 25630 25631 PR rtl-optimization/92989 25632 * lra-lives.c (process_bb_lives): Do not treat eh_return data 25633 registers as being live at the beginning of the EH receiver. 25634 256352020-04-05 Zachary Spytz <zspytz@gmail.com> 25636 25637 * extend.texi: Add free to list of ISO C90 functions that 25638 are recognized by the compiler. 25639 256402020-04-05 Nagaraju Mekala <nmekala@xilix.com> 25641 25642 * config/microblaze/microblaze.c (microblaze_must_save_register): Check 25643 for fast_interrupt. 25644 25645 * config/microblaze/microblaze.md (trap): Update output pattern. 25646 256472020-04-04 Hannes Domani <ssbssa@yahoo.de> 25648 Jakub Jelinek <jakub@redhat.com> 25649 25650 PR debug/94459 25651 * dwarf2out.c (gen_subprogram_die): Look through references, pointers, 25652 arrays, pointer-to-members, function types and qualifiers when 25653 checking if in-class DIE had an 'auto' or 'decltype(auto)' return type 25654 to emit type again on definition. 25655 256562020-04-04 Jan Hubicka <hubicka@ucw.cz> 25657 25658 PR ipa/93940 25659 * ipa-fnsummary.c (vrp_will_run_p): New function. 25660 (fre_will_run_p): New function. 25661 (evaluate_properties_for_edge): Use it. 25662 * ipa-inline.c (can_inline_edge_by_limits_p): Do not inline 25663 !optimize_debug to optimize_debug. 25664 256652020-04-04 Jakub Jelinek <jakub@redhat.com> 25666 25667 PR rtl-optimization/94468 25668 * cselib.c (references_value_p): Formatting fix. 25669 (cselib_useless_value_p): New function. 25670 (discard_useless_locs, discard_useless_values, 25671 cselib_invalidate_regno_val, cselib_invalidate_mem, 25672 cselib_record_set): Use it instead of 25673 v->locs == 0 && !PRESERVED_VALUE_P (v->val_rtx). 25674 25675 PR debug/94441 25676 * tree-iterator.h (expr_single): Declare. 25677 * tree-iterator.c (expr_single): New function. 25678 * tree.h (protected_set_expr_location_if_unset): Declare. 25679 * tree.c (protected_set_expr_location): Use expr_single. 25680 (protected_set_expr_location_if_unset): New function. 25681 256822020-04-03 Jeff Law <law@redhat.com> 25683 25684 PR rtl-optimization/92264 25685 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Handle 25686 reloading of auto-increment addressing modes. 25687 256882020-04-03 H.J. Lu <hongjiu.lu@intel.com> 25689 25690 PR target/94467 25691 * config/i386/sse.md (ssse3_pshufbv8qi3): Mark scratch operand 25692 as earlyclobber. 25693 256942020-04-03 Jeff Law <law@redhat.com> 25695 25696 PR rtl-optimization/92264 25697 * config/m32r/m32r.c (m32r_output_block_move): Properly account for 25698 post-increment addressing of source operands as well as residuals 25699 when computing any adjustments to the input pointer. 25700 257012020-04-03 Jakub Jelinek <jakub@redhat.com> 25702 25703 PR target/94460 25704 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3, 25705 avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do 25706 second half of first lane from first lane of second operand and 25707 first half of second lane from second lane of first operand. 25708 257092020-04-03 Andre Vieira <andre.simoesdiasvieira@arm.com> 25710 25711 * config/arm/arm_mve.h: Condition the header file on __ARM_FEATURE_MVE. 25712 257132020-04-03 Tamar Christina <tamar.christina@arm.com> 25714 25715 PR target/94396 25716 * common/config/aarch64/aarch64-common.c 25717 (aarch64_get_extension_string_for_isa_flags): Handle default flags. 25718 257192020-04-03 Richard Biener <rguenther@suse.de> 25720 25721 PR middle-end/94465 25722 * tree.c (array_ref_low_bound): Deal with released SSA names 25723 in index position. 25724 257252020-04-03 Kwok Cheung Yeung <kcy@codesourcery.com> 25726 25727 * config/gcn/gcn.c (print_operand): Handle unordered comparison 25728 operators. 25729 * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered 25730 comparison operators. 25731 257322020-04-03 Kewen Lin <linkw@gcc.gnu.org> 25733 25734 PR tree-optimization/94443 25735 * tree-vect-loop.c (vectorizable_live_operation): Use 25736 gsi_insert_seq_before to replace gsi_insert_before. 25737 257382020-04-03 Martin Liska <mliska@suse.cz> 25739 25740 PR ipa/94445 25741 * ipa-icf-gimple.c (func_checker::compare_gimple_call): 25742 Compare type attributes for gimple_call_fntypes. 25743 257442020-04-02 Sandra Loosemore <sandra@codesourcery.com> 25745 25746 * alias.c (get_alias_set): Fix comment typos. 25747 257482020-04-02 Fritz Reese <foreese@gcc.gnu.org> 25749 25750 PR fortran/85982 25751 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into 25752 attribute checking used by TYPE. 25753 257542020-04-02 Martin Jambor <mjambor@suse.cz> 25755 25756 PR ipa/92676 25757 * ipa-sra.c (struct caller_issues): New fields candidate and 25758 call_from_outside_comdat. 25759 (check_for_caller_issues): Check for calls from outsied of 25760 candidate's same_comdat_group. 25761 (check_all_callers_for_issues): Set up issues.candidate, check result 25762 of the new check. 25763 (mark_callers_calls_comdat_local): New function. 25764 (process_isra_node_results): Set calls_comdat_local of callers if 25765 appropriate. 25766 257672020-04-02 Richard Biener <rguenther@suse.de> 25768 25769 PR c/94392 25770 * common.opt (ffinite-loops): Initialize to zero. 25771 * opts.c (default_options_table): Remove OPT_ffinite_loops 25772 entry. 25773 * cfgloop.h (loop::finite_p): New member. 25774 * cfgloopmanip.c (copy_loop_info): Copy finite_p. 25775 * ipa-icf-gimple.c (func_checker::compare_loops): Compare 25776 finite_p. 25777 * lto-streamer-in.c (input_cfg): Stream finite_p. 25778 * lto-streamer-out.c (output_cfg): Likewise. 25779 * tree-cfg.c (replace_loop_annotate): Initialize finite_p 25780 from flag_finite_loops at CFG build time. 25781 * tree-ssa-loop-niter.c (finite_loop_p): Check the loops 25782 finite_p flag instead of flag_finite_loops. 25783 * doc/invoke.texi (ffinite-loops): Adjust documentation of 25784 default setting. 25785 257862020-04-02 Richard Biener <rguenther@suse.de> 25787 25788 PR debug/94450 25789 * dwarf2out.c (dwarf2out_early_finish): Remove code emitting 25790 DW_TAG_imported_unit. 25791 257922020-04-02 Maciej W. Rozycki <macro@wdc.com> 25793 25794 * doc/install.texi (Specific) <riscv32-*-elf, riscv32-*-linux> 25795 <riscv64-*-elf, riscv64-*-linux>: Update binutils requirement to 25796 2.30. 25797 257982020-04-02 Kewen Lin <linkw@gcc.gnu.org> 25799 25800 PR tree-optimization/94401 25801 * tree-vect-loop.c (vectorizable_load): Handle VMAT_CONTIGUOUS_REVERSE 25802 access type when loading halves of vector to avoid peeling for gaps. 25803 258042020-04-02 Jakub Jelinek <jakub@redhat.com> 25805 25806 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add a space in 25807 between a string literal and MIPS_SYSVERSION_SPEC macro. 25808 258092020-04-02 Martin Jambor <mjambor@suse.cz> 25810 25811 * doc/invoke.texi (Optimize Options): Document sra-max-propagations. 25812 258132020-04-02 Jakub Jelinek <jakub@redhat.com> 25814 25815 PR rtl-optimization/92264 25816 * params.opt (-param=max-find-base-term-values=): Decrease default 25817 from 2000 to 200. 25818 25819 PR rtl-optimization/92264 25820 * rtl.h (struct rtx_def): Mention that call bit is used as 25821 SP_DERIVED_VALUE_P in cselib.c. 25822 * cselib.c (SP_DERIVED_VALUE_P): Define. 25823 (PRESERVED_VALUE_P, SP_BASED_VALUE_P): Move definitions earlier. 25824 (cselib_hasher::equal): Handle equality between SP_DERIVED_VALUE_P 25825 val_rtx and sp based expression where offsets cancel each other. 25826 (preserve_constants_and_equivs): Formatting fix. 25827 (cselib_reset_table): Add reverse op loc to SP_DERIVED_VALUE_P 25828 locs list for cfa_base_preserved_val if needed. Formatting fix. 25829 (autoinc_split): If the to be returned value is a REG, MEM or 25830 VALUE which has SP_DERIVED_VALUE_P + CONST_INT as one of its 25831 locs, return the SP_DERIVED_VALUE_P VALUE and adjust *off. 25832 (rtx_equal_for_cselib_1): Call autoinc_split even if both 25833 expressions are PLUS in Pmode with CONST_INT second operands. 25834 Handle SP_DERIVED_VALUE_P cases. 25835 (cselib_hash_plus_const_int): New function. 25836 (cselib_hash_rtx): Use it for PLUS in Pmode with CONST_INT 25837 second operand, as well as for PRE_DEC etc. that ought to be 25838 hashed the same way. 25839 (cselib_subst_to_values): Substitute PLUS with Pmode and 25840 CONST_INT operand if the first operand is a VALUE which has 25841 SP_DERIVED_VALUE_P + CONST_INT as one of its locs for the 25842 SP_DERIVED_VALUE_P + adjusted offset. 25843 (cselib_lookup_1): When creating a new VALUE for stack_pointer_rtx, 25844 set SP_DERIVED_VALUE_P on it. Set PRESERVED_VALUE_P when adding 25845 SP_DERIVED_VALUE_P PRESERVED_VALUE_P subseted VALUE location. 25846 * var-tracking.c (vt_initialize): Call cselib_add_permanent_equiv 25847 on the sp value before calling cselib_add_permanent_equiv on the 25848 cfa_base value. 25849 * dse.c (check_for_inc_dec_1, check_for_inc_dec): Punt on RTX_AUTOINC 25850 in the insn without REG_INC note. 25851 (replace_read): Punt on RTX_AUTOINC in the *loc being replaced. 25852 Punt on invalid insns added by copy_to_mode_reg. Formatting fixes. 25853 25854 PR target/94435 25855 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For 25856 y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode. 25857 258582020-04-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 25859 25860 PR target/94317 25861 * config/arm/arm-builtins.c (LDRGBWBXU_QUALIFIERS): Define. 25862 (LDRGBWBXU_Z_QUALIFIERS): Likewise. 25863 * config/arm/arm_mve.h (__arm_vldrdq_gather_base_wb_s64): Modify 25864 intrinsic defintion by adding a new builtin call to writeback into base 25865 address. 25866 (__arm_vldrdq_gather_base_wb_u64): Likewise. 25867 (__arm_vldrdq_gather_base_wb_z_s64): Likewise. 25868 (__arm_vldrdq_gather_base_wb_z_u64): Likewise. 25869 (__arm_vldrwq_gather_base_wb_s32): Likewise. 25870 (__arm_vldrwq_gather_base_wb_u32): Likewise. 25871 (__arm_vldrwq_gather_base_wb_z_s32): Likewise. 25872 (__arm_vldrwq_gather_base_wb_z_u32): Likewise. 25873 (__arm_vldrwq_gather_base_wb_f32): Likewise. 25874 (__arm_vldrwq_gather_base_wb_z_f32): Likewise. 25875 * config/arm/arm_mve_builtins.def (vldrwq_gather_base_wb_z_u): Modify 25876 builtin's qualifier. 25877 (vldrdq_gather_base_wb_z_u): Likewise. 25878 (vldrwq_gather_base_wb_u): Likewise. 25879 (vldrdq_gather_base_wb_u): Likewise. 25880 (vldrwq_gather_base_wb_z_s): Likewise. 25881 (vldrwq_gather_base_wb_z_f): Likewise. 25882 (vldrdq_gather_base_wb_z_s): Likewise. 25883 (vldrwq_gather_base_wb_s): Likewise. 25884 (vldrwq_gather_base_wb_f): Likewise. 25885 (vldrdq_gather_base_wb_s): Likewise. 25886 (vldrwq_gather_base_nowb_z_u): Define builtin. 25887 (vldrdq_gather_base_nowb_z_u): Likewise. 25888 (vldrwq_gather_base_nowb_u): Likewise. 25889 (vldrdq_gather_base_nowb_u): Likewise. 25890 (vldrwq_gather_base_nowb_z_s): Likewise. 25891 (vldrwq_gather_base_nowb_z_f): Likewise. 25892 (vldrdq_gather_base_nowb_z_s): Likewise. 25893 (vldrwq_gather_base_nowb_s): Likewise. 25894 (vldrwq_gather_base_nowb_f): Likewise. 25895 (vldrdq_gather_base_nowb_s): Likewise. 25896 * config/arm/mve.md (mve_vldrwq_gather_base_nowb_<supf>v4si): Define RTL 25897 pattern. 25898 (mve_vldrwq_gather_base_wb_<supf>v4si): Modify RTL pattern. 25899 (mve_vldrwq_gather_base_nowb_z_<supf>v4si): Define RTL pattern. 25900 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Modify RTL pattern. 25901 (mve_vldrwq_gather_base_wb_fv4sf): Modify RTL pattern. 25902 (mve_vldrwq_gather_base_nowb_fv4sf): Define RTL pattern. 25903 (mve_vldrwq_gather_base_wb_z_fv4sf): Modify RTL pattern. 25904 (mve_vldrwq_gather_base_nowb_z_fv4sf): Define RTL pattern. 25905 (mve_vldrdq_gather_base_nowb_<supf>v4di): Define RTL pattern. 25906 (mve_vldrdq_gather_base_wb_<supf>v4di): Modify RTL pattern. 25907 (mve_vldrdq_gather_base_nowb_z_<supf>v4di): Define RTL pattern. 25908 (mve_vldrdq_gather_base_wb_z_<supf>v4di): Modify RTL pattern. 25909 259102020-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 25911 25912 * config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3") 25913 ("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3") 25914 ("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3") 25915 ("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>") 25916 ("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>") 25917 ("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3") 25918 ("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4") 25919 ("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx") 25920 ("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint 25921 modifier. 25922 ("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>") 25923 ("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"): 25924 Remove constraints from expander. 25925 * config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq") 25926 ("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>") 25927 ("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>") 25928 ("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>") 25929 ("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3") 25930 ("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier. 25931 259322020-04-01 Peter Bergner <bergner@linux.ibm.com> 25933 25934 PR rtl-optimization/94123 25935 * lower-subreg.c (pass_lower_subreg3::gate): Remove test for 25936 flag_split_wide_types_early. 25937 259382020-04-01 Joerg Sonnenberger <joerg@bec.de> 25939 25940 * doc/extend.texi (Common Function Attributes): Fix typo. 25941 259422020-04-01 Segher Boessenkool <segher@kernel.crashing.org> 25943 25944 PR target/94420 25945 * config/rs6000/rs6000.md (*tocref<mode> for P): Add insn condition 25946 on operands[1]. 25947 259482020-04-01 Zackery Spytz <zspytz@gmail.com> 25949 25950 * doc/extend.texi: Fix a typo in the documentation of the 25951 copy function attribute. 25952 259532020-04-01 Jakub Jelinek <jakub@redhat.com> 25954 25955 PR middle-end/94423 25956 * tree-object-size.c (pass_object_sizes::execute): Don't call 25957 replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead 25958 call replace_call_with_value. 25959 259602020-04-01 Kewen Lin <linkw@gcc.gnu.org> 25961 25962 PR tree-optimization/94043 25963 * tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed 25964 phi for vec_lhs and use it for lane extraction. 25965 259662020-03-31 Felix Yang <felix.yang@huawei.com> 25967 25968 PR tree-optimization/94398 25969 * tree-vect-stmts.c (vectorizable_store): Instead of calling 25970 vect_supportable_dr_alignment, set alignment_support_scheme to 25971 dr_unaligned_supported for gather-scatter accesses. 25972 (vectorizable_load): Likewise. 25973 259742020-03-31 Andrew Stubbs <ams@codesourcery.com> 25975 25976 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF): 25977 New mode iterators. 25978 (vnsi, VnSI, vndi, VnDI): New mode attributes. 25979 (mov<mode>): Use <VnDI> in place of V64DI. 25980 (mov<mode>_exec): Likewise. 25981 (mov<mode>_sgprbase): Likewise. 25982 (reload_out<mode>): Likewise. 25983 (*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64. 25984 (gather_load<mode>v64si): Rename to ... 25985 (gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI, 25986 and <VnDI> in place of V64DI. 25987 (gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI. 25988 (gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI. 25989 (gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>. 25990 (scatter_store<mode>v64si): Rename to ... 25991 (scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. 25992 (scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>. 25993 (scatter<mode>_insn_1offset<exec_scatter>): Likewise. 25994 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise. 25995 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. 25996 (ds_bpermute<mode>): Use <VnSI>. 25997 (addv64si3_vcc<exec_vcc>): Rename to ... 25998 (add<mode>3_vcc<exec_vcc>): ... this, and use V_SI. 25999 (addv64si3_vcc_dup<exec_vcc>): Rename to ... 26000 (add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI. 26001 (addcv64si3<exec_vcc>): Rename to ... 26002 (addc<mode>3<exec_vcc>): ... this, and use V_SI. 26003 (subv64si3_vcc<exec_vcc>): Rename to ... 26004 (sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI. 26005 (subcv64si3<exec_vcc>): Rename to ... 26006 (subc<mode>3<exec_vcc>): ... this, and use V_SI. 26007 (addv64di3): Rename to ... 26008 (add<mode>3): ... this, and use V_DI. 26009 (addv64di3_exec): Rename to ... 26010 (add<mode>3_exec): ... this, and use V_DI. 26011 (subv64di3): Rename to ... 26012 (sub<mode>3): ... this, and use V_DI. 26013 (subv64di3_exec): Rename to ... 26014 (sub<mode>3_exec): ... this, and use V_DI. 26015 (addv64di3_zext): Rename to ... 26016 (add<mode>3_zext): ... this, and use V_DI and <VnSI>. 26017 (addv64di3_zext_exec): Rename to ... 26018 (add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>. 26019 (addv64di3_zext_dup): Rename to ... 26020 (add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>. 26021 (addv64di3_zext_dup_exec): Rename to ... 26022 (add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>. 26023 (addv64di3_zext_dup2): Rename to ... 26024 (add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>. 26025 (addv64di3_zext_dup2_exec): Rename to ... 26026 (add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>. 26027 (addv64di3_sext_dup2): Rename to ... 26028 (add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>. 26029 (addv64di3_sext_dup2_exec): Rename to ... 26030 (add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>. 26031 (<su>mulv64si3_highpart<exec>): Rename to ... 26032 (<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>. 26033 (mulv64di3): Rename to ... 26034 (mul<mode>3): ... this, and use V_DI and <VnSI>. 26035 (mulv64di3_exec): Rename to ... 26036 (mul<mode>3_exec): ... this, and use V_DI and <VnSI>. 26037 (mulv64di3_zext): Rename to ... 26038 (mul<mode>3_zext): ... this, and use V_DI and <VnSI>. 26039 (mulv64di3_zext_exec): Rename to ... 26040 (mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>. 26041 (mulv64di3_zext_dup2): Rename to ... 26042 (mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>. 26043 (mulv64di3_zext_dup2_exec): Rename to ... 26044 (mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>. 26045 (<expander>v64di3): Rename to ... 26046 (<expander><mode>3): ... this, and use V_DI and <VnSI>. 26047 (<expander>v64di3_exec): Rename to ... 26048 (<expander><mode>3_exec): ... this, and use V_DI and <VnSI>. 26049 (<expander>v64si3<exec>): Rename to ... 26050 (<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>. 26051 (v<expander>v64si3<exec>): Rename to ... 26052 (v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>. 26053 (<expander>v64si3<exec>): Rename to ... 26054 (<expander><vnsi>3<exec>): ... this, and use V_SI. 26055 (subv64df3<exec>): Rename to ... 26056 (sub<mode>3<exec>): ... this, and use V_DF. 26057 (truncv64di<mode>2): Rename to ... 26058 (trunc<vndi><mode>2): ... this, and use <VnDI>. 26059 (truncv64di<mode>2_exec): Rename to ... 26060 (trunc<vndi><mode>2_exec): ... this, and use <VnDI>. 26061 (<convop><mode>v64di2): Rename to ... 26062 (<convop><mode><vndi>2): ... this, and use <VnDI>. 26063 (<convop><mode>v64di2_exec): Rename to ... 26064 (<convop><mode><vndi>2_exec): ... this, and use <VnDI>. 26065 (vec_cmp<u>v64qidi): Rename to ... 26066 (vec_cmp<u><mode>di): ... this, and use <VnSI>. 26067 (vec_cmp<u>v64qidi_exec): Rename to ... 26068 (vec_cmp<u><mode>di_exec): ... this, and use <VnSI>. 26069 (vcond_mask_<mode>di): Use <VnDI>. 26070 (maskload<mode>di): Likewise. 26071 (maskstore<mode>di): Likewise. 26072 (mask_gather_load<mode>v64si): Rename to ... 26073 (mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. 26074 (mask_scatter_store<mode>v64si): Rename to ... 26075 (mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. 26076 (*<reduc_op>_dpp_shr_v64di): Rename to ... 26077 (*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>. 26078 (*plus_carry_in_dpp_shr_v64si): Rename to ... 26079 (*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI. 26080 (*plus_carry_dpp_shr_v64di): Rename to ... 26081 (*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>. 26082 (vec_seriesv64si): Rename to ... 26083 (vec_series<mode>): ... this, and use V_SI. 26084 (vec_seriesv64di): Rename to ... 26085 (vec_series<mode>): ... this, and use V_DI. 26086 260872020-03-31 Claudiu Zissulescu <claziss@synopsys.com> 26088 26089 * config/arc/arc.c (arc_print_operand): Use 26090 HOST_WIDE_INT_PRINT_DEC macro. 26091 260922020-03-31 Claudiu Zissulescu <claziss@synopsys.com> 26093 26094 * config/arc/arc.h (ASM_FORMAT_PRIVATE_NAME): Fix it. 26095 260962020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26097 26098 * config/arm/arm_mve.h (vbicq): Define MVE intrinsic polymorphic 26099 variant. 26100 (__arm_vbicq): Likewise. 26101 261022020-03-31 Vineet Gupta <vgupta@synopsys.com> 26103 26104 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700. 26105 261062020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26107 26108 * config/arm/arm_mve.h (vaddlvq): Move the polymorphic variant to the 26109 common section of both MVE Integer and MVE Floating Point. 26110 (vaddvq): Likewise. 26111 (vaddlvq_p): Likewise. 26112 (vaddvaq): Likewise. 26113 (vaddvq_p): Likewise. 26114 (vcmpcsq): Likewise. 26115 (vmlsdavxq): Likewise. 26116 (vmlsdavq): Likewise. 26117 (vmladavxq): Likewise. 26118 (vmladavq): Likewise. 26119 (vminvq): Likewise. 26120 (vminavq): Likewise. 26121 (vmaxvq): Likewise. 26122 (vmaxavq): Likewise. 26123 (vmlaldavq): Likewise. 26124 (vcmphiq): Likewise. 26125 (vaddlvaq): Likewise. 26126 (vrmlaldavhq): Likewise. 26127 (vrmlaldavhxq): Likewise. 26128 (vrmlsldavhq): Likewise. 26129 (vrmlsldavhxq): Likewise. 26130 (vmlsldavxq): Likewise. 26131 (vmlsldavq): Likewise. 26132 (vabavq): Likewise. 26133 (vrmlaldavhaq): Likewise. 26134 (vcmpgeq_m_n): Likewise. 26135 (vmlsdavxq_p): Likewise. 26136 (vmlsdavq_p): Likewise. 26137 (vmlsdavaxq): Likewise. 26138 (vmlsdavaq): Likewise. 26139 (vaddvaq_p): Likewise. 26140 (vcmpcsq_m_n): Likewise. 26141 (vcmpcsq_m): Likewise. 26142 (vmladavxq_p): Likewise. 26143 (vmladavq_p): Likewise. 26144 (vmladavaxq): Likewise. 26145 (vmladavaq): Likewise. 26146 (vminvq_p): Likewise. 26147 (vminavq_p): Likewise. 26148 (vmaxvq_p): Likewise. 26149 (vmaxavq_p): Likewise. 26150 (vcmphiq_m): Likewise. 26151 (vaddlvaq_p): Likewise. 26152 (vmlaldavaq): Likewise. 26153 (vmlaldavaxq): Likewise. 26154 (vmlaldavq_p): Likewise. 26155 (vmlaldavxq_p): Likewise. 26156 (vmlsldavaq): Likewise. 26157 (vmlsldavaxq): Likewise. 26158 (vmlsldavq_p): Likewise. 26159 (vmlsldavxq_p): Likewise. 26160 (vrmlaldavhaxq): Likewise. 26161 (vrmlaldavhq_p): Likewise. 26162 (vrmlaldavhxq_p): Likewise. 26163 (vrmlsldavhaq): Likewise. 26164 (vrmlsldavhaxq): Likewise. 26165 (vrmlsldavhq_p): Likewise. 26166 (vrmlsldavhxq_p): Likewise. 26167 (vabavq_p): Likewise. 26168 (vmladavaq_p): Likewise. 26169 (vstrbq_scatter_offset): Likewise. 26170 (vstrbq_p): Likewise. 26171 (vstrbq_scatter_offset_p): Likewise. 26172 (vstrdq_scatter_base_p): Likewise. 26173 (vstrdq_scatter_base): Likewise. 26174 (vstrdq_scatter_offset_p): Likewise. 26175 (vstrdq_scatter_offset): Likewise. 26176 (vstrdq_scatter_shifted_offset_p): Likewise. 26177 (vstrdq_scatter_shifted_offset): Likewise. 26178 (vmaxq_x): Likewise. 26179 (vminq_x): Likewise. 26180 (vmovlbq_x): Likewise. 26181 (vmovltq_x): Likewise. 26182 (vmulhq_x): Likewise. 26183 (vmullbq_int_x): Likewise. 26184 (vmullbq_poly_x): Likewise. 26185 (vmulltq_int_x): Likewise. 26186 (vmulltq_poly_x): Likewise. 26187 (vstrbq): Likewise. 26188 261892020-03-31 Jakub Jelinek <jakub@redhat.com> 26190 26191 PR target/94368 26192 * config/aarch64/constraints.md (Uph): New constraint. 26193 * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr. 26194 (@aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's 26195 constraint. 26196 261972020-03-31 Marc Glisse <marc.glisse@inria.fr> 26198 Jakub Jelinek <jakub@redhat.com> 26199 26200 PR middle-end/94412 26201 * fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use 26202 ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P. 26203 262042020-03-31 Jakub Jelinek <jakub@redhat.com> 26205 26206 PR tree-optimization/94403 26207 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Allow also 26208 ENUMERAL_TYPE lhs_type. 26209 26210 PR rtl-optimization/94344 26211 * tree-ssa-forwprop.c (simplify_rotate): Handle also same precision 26212 conversions, either on both operands of |^+ or just one. Handle 26213 also extra same precision conversion on RSHIFT_EXPR first operand 26214 provided RSHIFT_EXPR is performed in unsigned type. 26215 262162020-03-30 David Malcolm <dmalcolm@redhat.com> 26217 26218 * lra.c (finish_insn_code_data_once): Set the array elements 26219 to NULL after freeing them. 26220 262212020-03-30 Andreas Schwab <schwab@suse.de> 26222 26223 * config/host-linux.c (TRY_EMPTY_VM_SPACE) [__riscv && __LP64__]: 26224 Define. 26225 262262020-03-30 Will Schmidt <will_schmidt@vnet.ibm.com> 26227 26228 * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code 26229 to skip defining builtins based on builtin_mask. 26230 262312020-03-30 Jakub Jelinek <jakub@redhat.com> 26232 26233 PR target/94343 26234 * config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>): If 26235 !TARGET_AVX512VL, use 512-bit vpternlog and make sure the input 26236 operand is a register. Don't enable masked variants for V*[QH]Imode. 26237 26238 PR target/93069 26239 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use 26240 <store_mask_constraint> instead of m in output operand constraint. 26241 (vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of 26242 %{%3%}. 26243 262442020-03-30 Alan Modra <amodra@gmail.com> 26245 26246 * config/rs6000/rs6000.c (rs6000_call_aix): Emit cookie to pattern. 26247 (rs6000_indirect_call_template_1): Adjust to suit. 26248 * config/rs6000/rs6000.md (call_local): Merge call_local32, 26249 call_local64, and call_local_aix. 26250 (call_value_local): Simlarly. 26251 (call_nonlocal_aix, call_value_nonlocal_aix): Adjust rtl to suit, 26252 and disable pattern when CALL_LONG. 26253 (call_indirect_aix, call_value_indirect_aix): Adjust rtl. 26254 (call_indirect_elfv2, call_indirect_pcrel): Likewise. 26255 (call_value_indirect_elfv2, call_value_indirect_pcrel): Likewise. 26256 262572020-03-29 H.J. Lu <hongjiu.lu@intel.com> 26258 26259 PR driver/94381 26260 * doc/invoke.texi: Update -falign-functions, -falign-loops and 26261 -falign-jumps documentation. 26262 262632020-03-29 Martin Liska <mliska@suse.cz> 26264 26265 PR ipa/94363 26266 * cgraphunit.c (process_function_and_variable_attributes): Remove 26267 double 'attribute' words. 26268 262692020-03-29 John David Anglin <dave.anglin@bell.net> 26270 26271 * config/pa/pa.c (pa_asm_output_aligned_bss): Delete duplicate 26272 .align output. 26273 262742020-03-28 Jakub Jelinek <jakub@redhat.com> 26275 26276 PR c/93573 26277 * c-decl.c (grokdeclarator): After issuing errors, set size_int_const 26278 to true after setting size to integer_one_node. 26279 26280 PR tree-optimization/94329 26281 * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt 26282 on the last stmt in a bb, make sure gsi_prev isn't done immediately 26283 after gsi_last_bb. 26284 262852020-03-27 Alan Modra <amodra@gmail.com> 26286 26287 PR target/94145 26288 * config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile 26289 for PLT16_LO and PLT_PCREL. 26290 * config/rs6000/rs6000.md (UNSPEC_PLT16_LO, UNSPEC_PLT_PCREL): Remove. 26291 (UNSPECV_PLT16_LO, UNSPECV_PLT_PCREL): Define. 26292 (pltseq_plt16_lo_, pltseq_plt_pcrel): Use unspec_volatile. 26293 262942020-03-27 Martin Sebor <msebor@redhat.com> 26295 26296 PR c++/94098 26297 * calls.c (init_attr_rdwr_indices): Iterate over all access attributes. 26298 262992020-03-27 Andrew Stubbs <ams@codesourcery.com> 26300 26301 * config/gcn/gcn-valu.md: 26302 (VEC_SUBDWORD_MODE): Rename to V_QIHI throughout. 26303 (VEC_1REG_MODE): Delete. 26304 (VEC_1REG_ALT): Delete. 26305 (VEC_ALL1REG_MODE): Rename to V_1REG throughout. 26306 (VEC_1REG_INT_MODE): Delete. 26307 (VEC_ALL1REG_INT_MODE): Rename to V_INT_1REG throughout. 26308 (VEC_ALL1REG_INT_ALT): Rename to V_INT_1REG_ALT throughout. 26309 (VEC_2REG_MODE): Rename to V_2REG throughout. 26310 (VEC_REG_MODE): Rename to V_noHI throughout. 26311 (VEC_ALLREG_MODE): Rename to V_ALL throughout. 26312 (VEC_ALLREG_ALT): Rename to V_ALL_ALT throughout. 26313 (VEC_ALLREG_INT_MODE): Rename to V_INT throughout. 26314 (VEC_INT_MODE): Delete. 26315 (VEC_FP_MODE): Rename to V_FP throughout and move to top. 26316 (VEC_FP_1REG_MODE): Rename to V_FP_1REG throughout and move to top. 26317 (FP_MODE): Delete and replace with FP throughout. 26318 (FP_1REG_MODE): Delete and replace with FP_1REG throughout. 26319 (VCMP_MODE): Rename to V_noQI throughout and move to top. 26320 (VCMP_MODE_INT): Rename to V_INT_noQI throughout and move to top. 26321 * config/gcn/gcn.md (FP): New mode iterator. 26322 (FP_1REG): New mode iterator. 26323 263242020-03-27 David Malcolm <dmalcolm@redhat.com> 26325 26326 * doc/invoke.texi (-fdump-analyzer-supergraph): Document that this 26327 now emits two .dot files. 26328 * graphviz.cc (graphviz_out::begin_tr): Only emit a TR, not a TD. 26329 (graphviz_out::end_tr): Only close a TR, not a TD. 26330 (graphviz_out::begin_td): New. 26331 (graphviz_out::end_td): New. 26332 (graphviz_out::begin_trtd): New, replacing the old implementation 26333 of graphviz_out::begin_tr. 26334 (graphviz_out::end_tdtr): New, replacing the old implementation 26335 of graphviz_out::end_tr. 26336 * graphviz.h (graphviz_out::begin_td): New decl. 26337 (graphviz_out::end_td): New decl. 26338 (graphviz_out::begin_trtd): New decl. 26339 (graphviz_out::end_tdtr): New decl. 26340 263412020-03-27 Richard Biener <rguenther@suse.de> 26342 26343 PR debug/94273 26344 * dwarf2out.c (should_emit_struct_debug): Return false for 26345 DINFO_LEVEL_TERSE. 26346 263472020-03-27 Richard Biener <rguenther@suse.de> 26348 26349 PR tree-optimization/94352 26350 * tree-ssa-propagate.c (ssa_prop_init): Move seeding of the 26351 worklist ... 26352 (ssa_propagation_engine::ssa_propagate): ... here after 26353 initializing curr_order. 26354 263552020-03-27 Kewen Lin <linkw@gcc.gnu.org> 26356 26357 PR tree-optimization/90332 26358 * tree-vect-stmts.c (vector_vector_composition_type): New function. 26359 (get_group_load_store_type): Adjust to call 26360 vector_vector_composition_type, extend it to construct with scalar 26361 types. 26362 (vectorizable_load): Likewise. 26363 263642020-03-27 Roman Zhuykov <zhroma@ispras.ru> 26365 26366 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove assertions. 26367 (create_ddg_dep_no_link): Likewise. 26368 (add_cross_iteration_register_deps): Move debug instruction check. 26369 Other minor refactoring. 26370 (add_intra_loop_mem_dep): Do not check for debug instructions. 26371 (add_inter_loop_mem_dep): Likewise. 26372 (build_intra_loop_deps): Likewise. 26373 (create_ddg): Do not include debug insns into the graph. 26374 * ddg.h (struct ddg): Remove num_debug field. 26375 * modulo-sched.c (doloop_register_get): Adjust condition. 26376 (res_MII): Remove DDG num_debug field usage. 26377 (sms_schedule_by_order): Use assertion against debug insns. 26378 (ps_has_conflicts): Drop debug insn check. 26379 263802020-03-26 Jakub Jelinek <jakub@redhat.com> 26381 26382 PR debug/94323 26383 * tree.c (protected_set_expr_location): Recurse on STATEMENT_LIST 26384 that contains exactly one non-DEBUG_BEGIN_STMT statement. 26385 26386 PR debug/94281 26387 * gimple.h (gimple_seq_first_nondebug_stmt): New function. 26388 (gimple_seq_last_nondebug_stmt): Don't return NULL if seq contains 26389 a single non-debug stmt followed by one or more debug stmts. 26390 * gimplify.c (gimplify_body): Use gimple_seq_first_nondebug_stmt 26391 instead of gimple_seq_first_stmt, use gimple_seq_first_nondebug_stmt 26392 and gimple_seq_last_nondebug_stmt instead of gimple_seq_first and 26393 gimple_seq_last to check if outer_stmt gbind could be reused and 26394 if yes and it is surrounded by any debug stmts, move them into the 26395 gbind body. 26396 26397 PR rtl-optimization/92264 26398 * var-tracking.c (add_stores): Call cselib_set_value_sp_based even 26399 for sp based values in !frame_pointer_needed 26400 && !ACCUMULATE_OUTGOING_ARGS functions. 26401 264022020-03-26 Felix Yang <felix.yang@huawei.com> 26403 26404 PR tree-optimization/94269 26405 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict 26406 this 26407 operation to single basic block. 26408 264092020-03-25 Jeff Law <law@redhat.com> 26410 26411 PR rtl-optimization/90275 26412 * config/sh/sh.md (mov_neg_si_t): Clobber the T register in the 26413 pattern. 26414 264152020-03-25 Jakub Jelinek <jakub@redhat.com> 26416 26417 PR target/94292 26418 * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to 26419 mode rather than VOIDmode. 26420 264212020-03-25 Martin Sebor <msebor@redhat.com> 26422 26423 PR middle-end/94004 26424 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Issue warnings 26425 even for alloca calls resulting from system macro expansion. 26426 Include inlining context in all warnings. 26427 264282020-03-25 Richard Sandiford <richard.sandiford@arm.com> 26429 26430 PR target/94254 26431 * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow 26432 FPRs to change between SDmode and DDmode. 26433 264342020-03-25 Martin Sebor <msebor@redhat.com> 26435 26436 PR tree-optimization/94131 26437 * gimple-fold.c (get_range_strlen_tree): Fail for variable-length 26438 types and decls. 26439 * tree-ssa-strlen.c (get_range_strlen_dynamic): Avoid assuming 26440 types have constant sizes. 26441 264422020-03-25 Martin Liska <mliska@suse.cz> 26443 26444 PR lto/94259 26445 * configure.ac: Report error only when --with-zstd 26446 is used. 26447 * configure: Regenerate. 26448 264492020-03-25 Jakub Jelinek <jakub@redhat.com> 26450 26451 PR target/94308 26452 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set 26453 INSN_CODE (insn) to -1 when changing the pattern. 26454 264552020-03-25 Martin Liska <mliska@suse.cz> 26456 26457 PR target/93274 26458 PR ipa/94271 26459 * config/i386/i386-features.c (make_resolver_func): Drop 26460 public flag for resolver. 26461 * config/rs6000/rs6000.c (make_resolver_func): Add comdat 26462 group for resolver and drop public flag if possible. 26463 * multiple_target.c (create_dispatcher_calls): Drop unique_name 26464 and resolution as we want to enable LTO privatization of the default 26465 symbol. 26466 264672020-03-25 Martin Liska <mliska@suse.cz> 26468 26469 PR lto/94259 26470 * configure.ac: Respect --without-zstd and report 26471 error when we can't find header file with --with-zstd. 26472 * configure: Regenerate. 26473 264742020-03-25 Jakub Jelinek <jakub@redhat.com> 26475 26476 PR middle-end/94303 26477 * varasm.c (output_constructor_array_range): If local->index 26478 RANGE_EXPR doesn't start at the current location in the constructor, 26479 skip needed number of bytes using assemble_zeros or assert we don't 26480 go backwards. 26481 26482 PR c++/94223 26483 * langhooks.c (lhd_set_decl_assembler_name): Use a static ulong 26484 counter instead of DECL_UID. 26485 26486 PR tree-optimization/94300 26487 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): If pd.offset 26488 is positive, make sure that off + size isn't larger than needed_len. 26489 264902020-03-25 Richard Biener <rguenther@suse.de> 26491 Jakub Jelinek <jakub@redhat.com> 26492 26493 PR debug/94283 26494 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards. 26495 264962020-03-24 Christophe Lyon <christophe.lyon@linaro.org> 26497 26498 * doc/sourcebuild.texi (ARM-specific attributes): Add 26499 arm_fp_dp_ok. 26500 (Features for dg-add-options): Add arm_fp_dp. 26501 265022020-03-24 John David Anglin <danglin@gcc.gnu.org> 26503 26504 PR lto/94249 26505 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__. 26506 265072020-03-24 Tobias Burnus <tobias@codesourcery.com> 26508 26509 PR libgomp/81689 26510 * omp-offload.c (omp_finish_file): Fix target-link handling if 26511 targetm_common.have_named_sections is false. 26512 265132020-03-24 Jakub Jelinek <jakub@redhat.com> 26514 26515 PR target/94286 26516 * config/arm/arm.md (subvdi4, usubvsi4, usubvdi4): Use gen_int_mode 26517 instead of GEN_INT. 26518 26519 PR debug/94285 26520 * tree-ssa-loop-manip.c (create_iv): If after, set stmt location to 26521 e->goto_locus even if gsi_bb (*incr_pos) contains only debug stmts. 26522 If not after and at *incr_pos is a debug stmt, set stmt location to 26523 location of next non-debug stmt after it if any. 26524 26525 PR debug/94283 26526 * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set 26527 GF_PLF_2, but don't add them to worklist. Don't add an assigment to 26528 worklist or set GF_PLF_2 just because it is used in a debug stmt in 26529 another bb. Formatting improvements. 26530 26531 PR debug/94277 26532 * cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and 26533 non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC 26534 regardless of whether TREE_NO_WARNING is set on it or whether 26535 warn_unused_function is true or not. 26536 265372020-03-23 Jeff Law <law@redhat.com> 26538 26539 PR rtl-optimization/90275 26540 PR target/94238 26541 PR target/94144 26542 * simplify-rtx.c (comparison_code_valid_for_mode): New function. 26543 (simplify_logical_relational_operation): Use it. 26544 265452020-03-23 Jakub Jelinek <jakub@redhat.com> 26546 26547 PR c++/91993 26548 * tree.c (get_narrower): Handle COMPOUND_EXPR by recursing on 26549 ultimate rhs and if returned something different, reconstructing 26550 the COMPOUND_EXPRs. 26551 265522020-03-23 Lewis Hyatt <lhyatt@gmail.com> 26553 26554 * opts.c (print_filtered_help): Improve the help text for alias options. 26555 265562020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26557 Andre Vieira <andre.simoesdiasvieira@arm.com> 26558 Mihail Ionescu <mihail.ionescu@arm.com> 26559 26560 * config/arm/arm_mve.h (vshlcq_m_s8): Define macro. 26561 (vshlcq_m_u8): Likewise. 26562 (vshlcq_m_s16): Likewise. 26563 (vshlcq_m_u16): Likewise. 26564 (vshlcq_m_s32): Likewise. 26565 (vshlcq_m_u32): Likewise. 26566 (__arm_vshlcq_m_s8): Define intrinsic. 26567 (__arm_vshlcq_m_u8): Likewise. 26568 (__arm_vshlcq_m_s16): Likewise. 26569 (__arm_vshlcq_m_u16): Likewise. 26570 (__arm_vshlcq_m_s32): Likewise. 26571 (__arm_vshlcq_m_u32): Likewise. 26572 (vshlcq_m): Define polymorphic variant. 26573 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_UNONE_IMM_UNONE): 26574 Use builtin qualifier. 26575 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise. 26576 * config/arm/mve.md (mve_vshlcq_m_vec_<supf><mode>): Define RTL pattern. 26577 (mve_vshlcq_m_carry_<supf><mode>): Likewise. 26578 (mve_vshlcq_m_<supf><mode>): Likewise. 26579 265802020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26581 26582 * config/arm/arm-builtins.c (LSLL_QUALIFIERS): Define builtin qualifier. 26583 (UQSHL_QUALIFIERS): Likewise. 26584 (ASRL_QUALIFIERS): Likewise. 26585 (SQSHL_QUALIFIERS): Likewise. 26586 * config/arm/arm_mve.h (__ARM_BIG_ENDIAN): Check to not support MVE in 26587 Big-Endian Mode. 26588 (sqrshr): Define macro. 26589 (sqrshrl): Likewise. 26590 (sqrshrl_sat48): Likewise. 26591 (sqshl): Likewise. 26592 (sqshll): Likewise. 26593 (srshr): Likewise. 26594 (srshrl): Likewise. 26595 (uqrshl): Likewise. 26596 (uqrshll): Likewise. 26597 (uqrshll_sat48): Likewise. 26598 (uqshl): Likewise. 26599 (uqshll): Likewise. 26600 (urshr): Likewise. 26601 (urshrl): Likewise. 26602 (lsll): Likewise. 26603 (asrl): Likewise. 26604 (__arm_lsll): Define intrinsic. 26605 (__arm_asrl): Likewise. 26606 (__arm_uqrshll): Likewise. 26607 (__arm_uqrshll_sat48): Likewise. 26608 (__arm_sqrshrl): Likewise. 26609 (__arm_sqrshrl_sat48): Likewise. 26610 (__arm_uqshll): Likewise. 26611 (__arm_urshrl): Likewise. 26612 (__arm_srshrl): Likewise. 26613 (__arm_sqshll): Likewise. 26614 (__arm_uqrshl): Likewise. 26615 (__arm_sqrshr): Likewise. 26616 (__arm_uqshl): Likewise. 26617 (__arm_urshr): Likewise. 26618 (__arm_sqshl): Likewise. 26619 (__arm_srshr): Likewise. 26620 * config/arm/arm_mve_builtins.def (LSLL_QUALIFIERS): Use builtin 26621 qualifier. 26622 (UQSHL_QUALIFIERS): Likewise. 26623 (ASRL_QUALIFIERS): Likewise. 26624 (SQSHL_QUALIFIERS): Likewise. 26625 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Define RTL pattern. 26626 (mve_sqrshrl_sat<supf>_di): Likewise. 26627 (mve_uqrshl_si): Likewise. 26628 (mve_sqrshr_si): Likewise. 26629 (mve_uqshll_di): Likewise. 26630 (mve_urshrl_di): Likewise. 26631 (mve_uqshl_si): Likewise. 26632 (mve_urshr_si): Likewise. 26633 (mve_sqshl_si): Likewise. 26634 (mve_srshr_si): Likewise. 26635 (mve_srshrl_di): Likewise. 26636 (mve_sqshll_di): Likewise. 26637 266382020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26639 Andre Vieira <andre.simoesdiasvieira@arm.com> 26640 Mihail Ionescu <mihail.ionescu@arm.com> 26641 26642 * config/arm/arm_mve.h (vsetq_lane_f16): Define macro. 26643 (vsetq_lane_f32): Likewise. 26644 (vsetq_lane_s16): Likewise. 26645 (vsetq_lane_s32): Likewise. 26646 (vsetq_lane_s8): Likewise. 26647 (vsetq_lane_s64): Likewise. 26648 (vsetq_lane_u8): Likewise. 26649 (vsetq_lane_u16): Likewise. 26650 (vsetq_lane_u32): Likewise. 26651 (vsetq_lane_u64): Likewise. 26652 (vgetq_lane_f16): Likewise. 26653 (vgetq_lane_f32): Likewise. 26654 (vgetq_lane_s16): Likewise. 26655 (vgetq_lane_s32): Likewise. 26656 (vgetq_lane_s8): Likewise. 26657 (vgetq_lane_s64): Likewise. 26658 (vgetq_lane_u8): Likewise. 26659 (vgetq_lane_u16): Likewise. 26660 (vgetq_lane_u32): Likewise. 26661 (vgetq_lane_u64): Likewise. 26662 (__ARM_NUM_LANES): Likewise. 26663 (__ARM_LANEQ): Likewise. 26664 (__ARM_CHECK_LANEQ): Likewise. 26665 (__arm_vsetq_lane_s16): Define intrinsic. 26666 (__arm_vsetq_lane_s32): Likewise. 26667 (__arm_vsetq_lane_s8): Likewise. 26668 (__arm_vsetq_lane_s64): Likewise. 26669 (__arm_vsetq_lane_u8): Likewise. 26670 (__arm_vsetq_lane_u16): Likewise. 26671 (__arm_vsetq_lane_u32): Likewise. 26672 (__arm_vsetq_lane_u64): Likewise. 26673 (__arm_vgetq_lane_s16): Likewise. 26674 (__arm_vgetq_lane_s32): Likewise. 26675 (__arm_vgetq_lane_s8): Likewise. 26676 (__arm_vgetq_lane_s64): Likewise. 26677 (__arm_vgetq_lane_u8): Likewise. 26678 (__arm_vgetq_lane_u16): Likewise. 26679 (__arm_vgetq_lane_u32): Likewise. 26680 (__arm_vgetq_lane_u64): Likewise. 26681 (__arm_vsetq_lane_f16): Likewise. 26682 (__arm_vsetq_lane_f32): Likewise. 26683 (__arm_vgetq_lane_f16): Likewise. 26684 (__arm_vgetq_lane_f32): Likewise. 26685 (vgetq_lane): Define polymorphic variant. 26686 (vsetq_lane): Likewise. 26687 * config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Define RTL 26688 pattern. 26689 (mve_vec_extractv2didi): Likewise. 26690 (mve_vec_extract_sext_internal<mode>): Likewise. 26691 (mve_vec_extract_zext_internal<mode>): Likewise. 26692 (mve_vec_set<mode>_internal): Likewise. 26693 (mve_vec_setv2di_internal): Likewise. 26694 * config/arm/neon.md (vec_set<mode>): Move RTL pattern to vec-common.md 26695 file. 26696 (vec_extract<mode><V_elem_l>): Rename to 26697 "neon_vec_extract<mode><V_elem_l>". 26698 (vec_extractv2didi): Rename to "neon_vec_extractv2didi". 26699 * config/arm/vec-common.md (vec_extract<mode><V_elem_l>): Define RTL 26700 pattern common for MVE and NEON. 26701 (vec_set<mode>): Move RTL pattern from neon.md and modify to accept both 26702 MVE and NEON. 26703 267042020-03-23 Andre Vieira <andre.simoesdiasvieira@arm.com> 26705 26706 * config/arm/mve.md (earlyclobber_32): New mode attribute. 26707 (mve_vrev64q_*, mve_vcaddq*, mve_vhcaddq_*, mve_vcmulq_*, 26708 mve_vmull[bt]q_*, mve_vqdmull[bt]q_*): Add appropriate early clobbers. 26709 267102020-03-23 Richard Biener <rguenther@suse.de> 26711 26712 PR tree-optimization/94261 26713 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove 26714 IL operand swapping code. 26715 (vect_slp_rearrange_stmts): Do not arrange isomorphic 26716 nodes that would need operation code adjustments. 26717 267182020-03-23 Tobias Burnus <tobias@codesourcery.com> 26719 26720 * doc/install.texi (amdgcn-*-amdhsa): Renamed 26721 from amdgcn-unknown-amdhsa; change 26722 amdgcn-unknown-amdhsa to amdgcn-amdhsa. 26723 267242020-03-23 Richard Biener <rguenther@suse.de> 26725 26726 PR ipa/94245 26727 * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP 26728 directly rather than also folding it via build_fold_addr_expr. 26729 267302020-03-23 Richard Biener <rguenther@suse.de> 26731 26732 PR tree-optimization/94266 26733 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate 26734 addresses of TARGET_MEM_REFs. 26735 267362020-03-23 Martin Liska <mliska@suse.cz> 26737 26738 PR ipa/94250 26739 * symtab.c (symtab_node::clone_references): Save speculative_id 26740 as ref may be overwritten by create_reference. 26741 (symtab_node::clone_referring): Likewise. 26742 (symtab_node::clone_reference): Likewise. 26743 267442020-03-22 Iain Sandoe <iain@sandoe.co.uk> 26745 26746 * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove 26747 references to Darwin. 26748 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this 26749 unconditionally and comment on why. 26750 267512020-03-21 Iain Sandoe <iain@sandoe.co.uk> 26752 26753 * config/darwin.c (darwin_mergeable_constant_section): Collect 26754 section anchor checks into the caller. 26755 (machopic_select_section): Collect section anchor checks into 26756 the determination of 'effective zero-size' objects. When the 26757 size is unknown, assume it is non-zero, and thus return the 26758 'generic' section for the DECL. 26759 267602020-03-21 Iain Sandoe <iain@sandoe.co.uk> 26761 26762 PR target/93694 26763 * config/darwin.opt: Amend options descriptions. 26764 267652020-03-21 Richard Sandiford <richard.sandiford@arm.com> 26766 26767 PR rtl-optimization/94052 26768 * lra-constraints.c (simplify_operand_subreg): Reload the inner 26769 register of a paradoxical subreg if simplify_subreg_regno fails 26770 to give a valid hard register for the outer mode. 26771 267722020-03-20 Martin Jambor <mjambor@suse.cz> 26773 26774 PR tree-optimization/93435 26775 * params.opt (sra-max-propagations): New parameter. 26776 * tree-sra.c (propagation_budget): New variable. 26777 (budget_for_propagation_access): New function. 26778 (propagate_subaccesses_from_rhs): Use it. 26779 (propagate_subaccesses_from_lhs): Likewise. 26780 (propagate_all_subaccesses): Set up and destroy propagation_budget. 26781 267822020-03-20 Carl Love <cel@us.ibm.com> 26783 26784 PR/target 87583 26785 * config/rs6000/rs6000.c (rs6000_option_override_internal): 26786 Add check for TARGET_FPRND for Power 7 or newer. 26787 267882020-03-20 Jan Hubicka <hubicka@ucw.cz> 26789 26790 PR ipa/93347 26791 * cgraph.c (symbol_table::create_edge): Update calls_comdat_local flag. 26792 (cgraph_edge::redirect_callee): Move here; likewise. 26793 (cgraph_node::remove_callees): Update calls_comdat_local flag. 26794 (cgraph_node::verify_node): Verify that calls_comdat_local flag match 26795 reality. 26796 (cgraph_node::check_calls_comdat_local_p): New member function. 26797 * cgraph.h (cgraph_node::check_calls_comdat_local_p): Declare. 26798 (cgraph_edge::redirect_callee): Move offline. 26799 * ipa-fnsummary.c (compute_fn_summary): Do not compute 26800 calls_comdat_local flag here. 26801 * ipa-inline-transform.c (inline_call): Fix updating of 26802 calls_comdat_local flag. 26803 * ipa-split.c (split_function): Use true instead of 1 to set the flag. 26804 * symtab.c (symtab_node::add_to_same_comdat_group): Update 26805 calls_comdat_local flag. 26806 268072020-03-20 Richard Biener <rguenther@suse.de> 26808 26809 * tree-vect-slp.c (vect_analyze_slp_instance): Dump SLP tree 26810 from the possibly modified root. 26811 268122020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26813 Andre Vieira <andre.simoesdiasvieira@arm.com> 26814 Mihail Ionescu <mihail.ionescu@arm.com> 26815 26816 * config/arm/arm_mve.h (vst1q_p_u8): Define macro. 26817 (vst1q_p_s8): Likewise. 26818 (vst2q_s8): Likewise. 26819 (vst2q_u8): Likewise. 26820 (vld1q_z_u8): Likewise. 26821 (vld1q_z_s8): Likewise. 26822 (vld2q_s8): Likewise. 26823 (vld2q_u8): Likewise. 26824 (vld4q_s8): Likewise. 26825 (vld4q_u8): Likewise. 26826 (vst1q_p_u16): Likewise. 26827 (vst1q_p_s16): Likewise. 26828 (vst2q_s16): Likewise. 26829 (vst2q_u16): Likewise. 26830 (vld1q_z_u16): Likewise. 26831 (vld1q_z_s16): Likewise. 26832 (vld2q_s16): Likewise. 26833 (vld2q_u16): Likewise. 26834 (vld4q_s16): Likewise. 26835 (vld4q_u16): Likewise. 26836 (vst1q_p_u32): Likewise. 26837 (vst1q_p_s32): Likewise. 26838 (vst2q_s32): Likewise. 26839 (vst2q_u32): Likewise. 26840 (vld1q_z_u32): Likewise. 26841 (vld1q_z_s32): Likewise. 26842 (vld2q_s32): Likewise. 26843 (vld2q_u32): Likewise. 26844 (vld4q_s32): Likewise. 26845 (vld4q_u32): Likewise. 26846 (vld4q_f16): Likewise. 26847 (vld2q_f16): Likewise. 26848 (vld1q_z_f16): Likewise. 26849 (vst2q_f16): Likewise. 26850 (vst1q_p_f16): Likewise. 26851 (vld4q_f32): Likewise. 26852 (vld2q_f32): Likewise. 26853 (vld1q_z_f32): Likewise. 26854 (vst2q_f32): Likewise. 26855 (vst1q_p_f32): Likewise. 26856 (__arm_vst1q_p_u8): Define intrinsic. 26857 (__arm_vst1q_p_s8): Likewise. 26858 (__arm_vst2q_s8): Likewise. 26859 (__arm_vst2q_u8): Likewise. 26860 (__arm_vld1q_z_u8): Likewise. 26861 (__arm_vld1q_z_s8): Likewise. 26862 (__arm_vld2q_s8): Likewise. 26863 (__arm_vld2q_u8): Likewise. 26864 (__arm_vld4q_s8): Likewise. 26865 (__arm_vld4q_u8): Likewise. 26866 (__arm_vst1q_p_u16): Likewise. 26867 (__arm_vst1q_p_s16): Likewise. 26868 (__arm_vst2q_s16): Likewise. 26869 (__arm_vst2q_u16): Likewise. 26870 (__arm_vld1q_z_u16): Likewise. 26871 (__arm_vld1q_z_s16): Likewise. 26872 (__arm_vld2q_s16): Likewise. 26873 (__arm_vld2q_u16): Likewise. 26874 (__arm_vld4q_s16): Likewise. 26875 (__arm_vld4q_u16): Likewise. 26876 (__arm_vst1q_p_u32): Likewise. 26877 (__arm_vst1q_p_s32): Likewise. 26878 (__arm_vst2q_s32): Likewise. 26879 (__arm_vst2q_u32): Likewise. 26880 (__arm_vld1q_z_u32): Likewise. 26881 (__arm_vld1q_z_s32): Likewise. 26882 (__arm_vld2q_s32): Likewise. 26883 (__arm_vld2q_u32): Likewise. 26884 (__arm_vld4q_s32): Likewise. 26885 (__arm_vld4q_u32): Likewise. 26886 (__arm_vld4q_f16): Likewise. 26887 (__arm_vld2q_f16): Likewise. 26888 (__arm_vld1q_z_f16): Likewise. 26889 (__arm_vst2q_f16): Likewise. 26890 (__arm_vst1q_p_f16): Likewise. 26891 (__arm_vld4q_f32): Likewise. 26892 (__arm_vld2q_f32): Likewise. 26893 (__arm_vld1q_z_f32): Likewise. 26894 (__arm_vst2q_f32): Likewise. 26895 (__arm_vst1q_p_f32): Likewise. 26896 (vld1q_z): Define polymorphic variant. 26897 (vld2q): Likewise. 26898 (vld4q): Likewise. 26899 (vst1q_p): Likewise. 26900 (vst2q): Likewise. 26901 * config/arm/arm_mve_builtins.def (STORE1): Use builtin qualifier. 26902 (LOAD1): Likewise. 26903 * config/arm/mve.md (mve_vst2q<mode>): Define RTL pattern. 26904 (mve_vld2q<mode>): Likewise. 26905 (mve_vld4q<mode>): Likewise. 26906 269072020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26908 Andre Vieira <andre.simoesdiasvieira@arm.com> 26909 Mihail Ionescu <mihail.ionescu@arm.com> 26910 26911 * config/arm/arm-builtins.c (ARM_BUILTIN_GET_FPSCR_NZCVQC): Define. 26912 (ARM_BUILTIN_SET_FPSCR_NZCVQC): Likewise. 26913 (arm_init_mve_builtins): Add "__builtin_arm_get_fpscr_nzcvqc" and 26914 "__builtin_arm_set_fpscr_nzcvqc" to arm_builtin_decls array. 26915 (arm_expand_builtin): Define case ARM_BUILTIN_GET_FPSCR_NZCVQC 26916 and ARM_BUILTIN_SET_FPSCR_NZCVQC. 26917 * config/arm/arm_mve.h (vadciq_s32): Define macro. 26918 (vadciq_u32): Likewise. 26919 (vadciq_m_s32): Likewise. 26920 (vadciq_m_u32): Likewise. 26921 (vadcq_s32): Likewise. 26922 (vadcq_u32): Likewise. 26923 (vadcq_m_s32): Likewise. 26924 (vadcq_m_u32): Likewise. 26925 (vsbciq_s32): Likewise. 26926 (vsbciq_u32): Likewise. 26927 (vsbciq_m_s32): Likewise. 26928 (vsbciq_m_u32): Likewise. 26929 (vsbcq_s32): Likewise. 26930 (vsbcq_u32): Likewise. 26931 (vsbcq_m_s32): Likewise. 26932 (vsbcq_m_u32): Likewise. 26933 (__arm_vadciq_s32): Define intrinsic. 26934 (__arm_vadciq_u32): Likewise. 26935 (__arm_vadciq_m_s32): Likewise. 26936 (__arm_vadciq_m_u32): Likewise. 26937 (__arm_vadcq_s32): Likewise. 26938 (__arm_vadcq_u32): Likewise. 26939 (__arm_vadcq_m_s32): Likewise. 26940 (__arm_vadcq_m_u32): Likewise. 26941 (__arm_vsbciq_s32): Likewise. 26942 (__arm_vsbciq_u32): Likewise. 26943 (__arm_vsbciq_m_s32): Likewise. 26944 (__arm_vsbciq_m_u32): Likewise. 26945 (__arm_vsbcq_s32): Likewise. 26946 (__arm_vsbcq_u32): Likewise. 26947 (__arm_vsbcq_m_s32): Likewise. 26948 (__arm_vsbcq_m_u32): Likewise. 26949 (vadciq_m): Define polymorphic variant. 26950 (vadciq): Likewise. 26951 (vadcq_m): Likewise. 26952 (vadcq): Likewise. 26953 (vsbciq_m): Likewise. 26954 (vsbciq): Likewise. 26955 (vsbcq_m): Likewise. 26956 (vsbcq): Likewise. 26957 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE): Use builtin 26958 qualifier. 26959 (BINOP_UNONE_UNONE_UNONE): Likewise. 26960 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise. 26961 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise. 26962 * config/arm/mve.md (VADCIQ): Define iterator. 26963 (VADCIQ_M): Likewise. 26964 (VSBCQ): Likewise. 26965 (VSBCQ_M): Likewise. 26966 (VSBCIQ): Likewise. 26967 (VSBCIQ_M): Likewise. 26968 (VADCQ): Likewise. 26969 (VADCQ_M): Likewise. 26970 (mve_vadciq_m_<supf>v4si): Define RTL pattern. 26971 (mve_vadciq_<supf>v4si): Likewise. 26972 (mve_vadcq_m_<supf>v4si): Likewise. 26973 (mve_vadcq_<supf>v4si): Likewise. 26974 (mve_vsbciq_m_<supf>v4si): Likewise. 26975 (mve_vsbciq_<supf>v4si): Likewise. 26976 (mve_vsbcq_m_<supf>v4si): Likewise. 26977 (mve_vsbcq_<supf>v4si): Likewise. 26978 (get_fpscr_nzcvqc): Define isns. 26979 (set_fpscr_nzcvqc): Define isns. 26980 * config/arm/unspecs.md (UNSPEC_GET_FPSCR_NZCVQC): Define. 26981 (UNSPEC_SET_FPSCR_NZCVQC): Define. 26982 269832020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26984 26985 * config/arm/arm_mve.h (vddupq_x_n_u8): Define macro. 26986 (vddupq_x_n_u16): Likewise. 26987 (vddupq_x_n_u32): Likewise. 26988 (vddupq_x_wb_u8): Likewise. 26989 (vddupq_x_wb_u16): Likewise. 26990 (vddupq_x_wb_u32): Likewise. 26991 (vdwdupq_x_n_u8): Likewise. 26992 (vdwdupq_x_n_u16): Likewise. 26993 (vdwdupq_x_n_u32): Likewise. 26994 (vdwdupq_x_wb_u8): Likewise. 26995 (vdwdupq_x_wb_u16): Likewise. 26996 (vdwdupq_x_wb_u32): Likewise. 26997 (vidupq_x_n_u8): Likewise. 26998 (vidupq_x_n_u16): Likewise. 26999 (vidupq_x_n_u32): Likewise. 27000 (vidupq_x_wb_u8): Likewise. 27001 (vidupq_x_wb_u16): Likewise. 27002 (vidupq_x_wb_u32): Likewise. 27003 (viwdupq_x_n_u8): Likewise. 27004 (viwdupq_x_n_u16): Likewise. 27005 (viwdupq_x_n_u32): Likewise. 27006 (viwdupq_x_wb_u8): Likewise. 27007 (viwdupq_x_wb_u16): Likewise. 27008 (viwdupq_x_wb_u32): Likewise. 27009 (vdupq_x_n_s8): Likewise. 27010 (vdupq_x_n_s16): Likewise. 27011 (vdupq_x_n_s32): Likewise. 27012 (vdupq_x_n_u8): Likewise. 27013 (vdupq_x_n_u16): Likewise. 27014 (vdupq_x_n_u32): Likewise. 27015 (vminq_x_s8): Likewise. 27016 (vminq_x_s16): Likewise. 27017 (vminq_x_s32): Likewise. 27018 (vminq_x_u8): Likewise. 27019 (vminq_x_u16): Likewise. 27020 (vminq_x_u32): Likewise. 27021 (vmaxq_x_s8): Likewise. 27022 (vmaxq_x_s16): Likewise. 27023 (vmaxq_x_s32): Likewise. 27024 (vmaxq_x_u8): Likewise. 27025 (vmaxq_x_u16): Likewise. 27026 (vmaxq_x_u32): Likewise. 27027 (vabdq_x_s8): Likewise. 27028 (vabdq_x_s16): Likewise. 27029 (vabdq_x_s32): Likewise. 27030 (vabdq_x_u8): Likewise. 27031 (vabdq_x_u16): Likewise. 27032 (vabdq_x_u32): Likewise. 27033 (vabsq_x_s8): Likewise. 27034 (vabsq_x_s16): Likewise. 27035 (vabsq_x_s32): Likewise. 27036 (vaddq_x_s8): Likewise. 27037 (vaddq_x_s16): Likewise. 27038 (vaddq_x_s32): Likewise. 27039 (vaddq_x_n_s8): Likewise. 27040 (vaddq_x_n_s16): Likewise. 27041 (vaddq_x_n_s32): Likewise. 27042 (vaddq_x_u8): Likewise. 27043 (vaddq_x_u16): Likewise. 27044 (vaddq_x_u32): Likewise. 27045 (vaddq_x_n_u8): Likewise. 27046 (vaddq_x_n_u16): Likewise. 27047 (vaddq_x_n_u32): Likewise. 27048 (vclsq_x_s8): Likewise. 27049 (vclsq_x_s16): Likewise. 27050 (vclsq_x_s32): Likewise. 27051 (vclzq_x_s8): Likewise. 27052 (vclzq_x_s16): Likewise. 27053 (vclzq_x_s32): Likewise. 27054 (vclzq_x_u8): Likewise. 27055 (vclzq_x_u16): Likewise. 27056 (vclzq_x_u32): Likewise. 27057 (vnegq_x_s8): Likewise. 27058 (vnegq_x_s16): Likewise. 27059 (vnegq_x_s32): Likewise. 27060 (vmulhq_x_s8): Likewise. 27061 (vmulhq_x_s16): Likewise. 27062 (vmulhq_x_s32): Likewise. 27063 (vmulhq_x_u8): Likewise. 27064 (vmulhq_x_u16): Likewise. 27065 (vmulhq_x_u32): Likewise. 27066 (vmullbq_poly_x_p8): Likewise. 27067 (vmullbq_poly_x_p16): Likewise. 27068 (vmullbq_int_x_s8): Likewise. 27069 (vmullbq_int_x_s16): Likewise. 27070 (vmullbq_int_x_s32): Likewise. 27071 (vmullbq_int_x_u8): Likewise. 27072 (vmullbq_int_x_u16): Likewise. 27073 (vmullbq_int_x_u32): Likewise. 27074 (vmulltq_poly_x_p8): Likewise. 27075 (vmulltq_poly_x_p16): Likewise. 27076 (vmulltq_int_x_s8): Likewise. 27077 (vmulltq_int_x_s16): Likewise. 27078 (vmulltq_int_x_s32): Likewise. 27079 (vmulltq_int_x_u8): Likewise. 27080 (vmulltq_int_x_u16): Likewise. 27081 (vmulltq_int_x_u32): Likewise. 27082 (vmulq_x_s8): Likewise. 27083 (vmulq_x_s16): Likewise. 27084 (vmulq_x_s32): Likewise. 27085 (vmulq_x_n_s8): Likewise. 27086 (vmulq_x_n_s16): Likewise. 27087 (vmulq_x_n_s32): Likewise. 27088 (vmulq_x_u8): Likewise. 27089 (vmulq_x_u16): Likewise. 27090 (vmulq_x_u32): Likewise. 27091 (vmulq_x_n_u8): Likewise. 27092 (vmulq_x_n_u16): Likewise. 27093 (vmulq_x_n_u32): Likewise. 27094 (vsubq_x_s8): Likewise. 27095 (vsubq_x_s16): Likewise. 27096 (vsubq_x_s32): Likewise. 27097 (vsubq_x_n_s8): Likewise. 27098 (vsubq_x_n_s16): Likewise. 27099 (vsubq_x_n_s32): Likewise. 27100 (vsubq_x_u8): Likewise. 27101 (vsubq_x_u16): Likewise. 27102 (vsubq_x_u32): Likewise. 27103 (vsubq_x_n_u8): Likewise. 27104 (vsubq_x_n_u16): Likewise. 27105 (vsubq_x_n_u32): Likewise. 27106 (vcaddq_rot90_x_s8): Likewise. 27107 (vcaddq_rot90_x_s16): Likewise. 27108 (vcaddq_rot90_x_s32): Likewise. 27109 (vcaddq_rot90_x_u8): Likewise. 27110 (vcaddq_rot90_x_u16): Likewise. 27111 (vcaddq_rot90_x_u32): Likewise. 27112 (vcaddq_rot270_x_s8): Likewise. 27113 (vcaddq_rot270_x_s16): Likewise. 27114 (vcaddq_rot270_x_s32): Likewise. 27115 (vcaddq_rot270_x_u8): Likewise. 27116 (vcaddq_rot270_x_u16): Likewise. 27117 (vcaddq_rot270_x_u32): Likewise. 27118 (vhaddq_x_n_s8): Likewise. 27119 (vhaddq_x_n_s16): Likewise. 27120 (vhaddq_x_n_s32): Likewise. 27121 (vhaddq_x_n_u8): Likewise. 27122 (vhaddq_x_n_u16): Likewise. 27123 (vhaddq_x_n_u32): Likewise. 27124 (vhaddq_x_s8): Likewise. 27125 (vhaddq_x_s16): Likewise. 27126 (vhaddq_x_s32): Likewise. 27127 (vhaddq_x_u8): Likewise. 27128 (vhaddq_x_u16): Likewise. 27129 (vhaddq_x_u32): Likewise. 27130 (vhcaddq_rot90_x_s8): Likewise. 27131 (vhcaddq_rot90_x_s16): Likewise. 27132 (vhcaddq_rot90_x_s32): Likewise. 27133 (vhcaddq_rot270_x_s8): Likewise. 27134 (vhcaddq_rot270_x_s16): Likewise. 27135 (vhcaddq_rot270_x_s32): Likewise. 27136 (vhsubq_x_n_s8): Likewise. 27137 (vhsubq_x_n_s16): Likewise. 27138 (vhsubq_x_n_s32): Likewise. 27139 (vhsubq_x_n_u8): Likewise. 27140 (vhsubq_x_n_u16): Likewise. 27141 (vhsubq_x_n_u32): Likewise. 27142 (vhsubq_x_s8): Likewise. 27143 (vhsubq_x_s16): Likewise. 27144 (vhsubq_x_s32): Likewise. 27145 (vhsubq_x_u8): Likewise. 27146 (vhsubq_x_u16): Likewise. 27147 (vhsubq_x_u32): Likewise. 27148 (vrhaddq_x_s8): Likewise. 27149 (vrhaddq_x_s16): Likewise. 27150 (vrhaddq_x_s32): Likewise. 27151 (vrhaddq_x_u8): Likewise. 27152 (vrhaddq_x_u16): Likewise. 27153 (vrhaddq_x_u32): Likewise. 27154 (vrmulhq_x_s8): Likewise. 27155 (vrmulhq_x_s16): Likewise. 27156 (vrmulhq_x_s32): Likewise. 27157 (vrmulhq_x_u8): Likewise. 27158 (vrmulhq_x_u16): Likewise. 27159 (vrmulhq_x_u32): Likewise. 27160 (vandq_x_s8): Likewise. 27161 (vandq_x_s16): Likewise. 27162 (vandq_x_s32): Likewise. 27163 (vandq_x_u8): Likewise. 27164 (vandq_x_u16): Likewise. 27165 (vandq_x_u32): Likewise. 27166 (vbicq_x_s8): Likewise. 27167 (vbicq_x_s16): Likewise. 27168 (vbicq_x_s32): Likewise. 27169 (vbicq_x_u8): Likewise. 27170 (vbicq_x_u16): Likewise. 27171 (vbicq_x_u32): Likewise. 27172 (vbrsrq_x_n_s8): Likewise. 27173 (vbrsrq_x_n_s16): Likewise. 27174 (vbrsrq_x_n_s32): Likewise. 27175 (vbrsrq_x_n_u8): Likewise. 27176 (vbrsrq_x_n_u16): Likewise. 27177 (vbrsrq_x_n_u32): Likewise. 27178 (veorq_x_s8): Likewise. 27179 (veorq_x_s16): Likewise. 27180 (veorq_x_s32): Likewise. 27181 (veorq_x_u8): Likewise. 27182 (veorq_x_u16): Likewise. 27183 (veorq_x_u32): Likewise. 27184 (vmovlbq_x_s8): Likewise. 27185 (vmovlbq_x_s16): Likewise. 27186 (vmovlbq_x_u8): Likewise. 27187 (vmovlbq_x_u16): Likewise. 27188 (vmovltq_x_s8): Likewise. 27189 (vmovltq_x_s16): Likewise. 27190 (vmovltq_x_u8): Likewise. 27191 (vmovltq_x_u16): Likewise. 27192 (vmvnq_x_s8): Likewise. 27193 (vmvnq_x_s16): Likewise. 27194 (vmvnq_x_s32): Likewise. 27195 (vmvnq_x_u8): Likewise. 27196 (vmvnq_x_u16): Likewise. 27197 (vmvnq_x_u32): Likewise. 27198 (vmvnq_x_n_s16): Likewise. 27199 (vmvnq_x_n_s32): Likewise. 27200 (vmvnq_x_n_u16): Likewise. 27201 (vmvnq_x_n_u32): Likewise. 27202 (vornq_x_s8): Likewise. 27203 (vornq_x_s16): Likewise. 27204 (vornq_x_s32): Likewise. 27205 (vornq_x_u8): Likewise. 27206 (vornq_x_u16): Likewise. 27207 (vornq_x_u32): Likewise. 27208 (vorrq_x_s8): Likewise. 27209 (vorrq_x_s16): Likewise. 27210 (vorrq_x_s32): Likewise. 27211 (vorrq_x_u8): Likewise. 27212 (vorrq_x_u16): Likewise. 27213 (vorrq_x_u32): Likewise. 27214 (vrev16q_x_s8): Likewise. 27215 (vrev16q_x_u8): Likewise. 27216 (vrev32q_x_s8): Likewise. 27217 (vrev32q_x_s16): Likewise. 27218 (vrev32q_x_u8): Likewise. 27219 (vrev32q_x_u16): Likewise. 27220 (vrev64q_x_s8): Likewise. 27221 (vrev64q_x_s16): Likewise. 27222 (vrev64q_x_s32): Likewise. 27223 (vrev64q_x_u8): Likewise. 27224 (vrev64q_x_u16): Likewise. 27225 (vrev64q_x_u32): Likewise. 27226 (vrshlq_x_s8): Likewise. 27227 (vrshlq_x_s16): Likewise. 27228 (vrshlq_x_s32): Likewise. 27229 (vrshlq_x_u8): Likewise. 27230 (vrshlq_x_u16): Likewise. 27231 (vrshlq_x_u32): Likewise. 27232 (vshllbq_x_n_s8): Likewise. 27233 (vshllbq_x_n_s16): Likewise. 27234 (vshllbq_x_n_u8): Likewise. 27235 (vshllbq_x_n_u16): Likewise. 27236 (vshlltq_x_n_s8): Likewise. 27237 (vshlltq_x_n_s16): Likewise. 27238 (vshlltq_x_n_u8): Likewise. 27239 (vshlltq_x_n_u16): Likewise. 27240 (vshlq_x_s8): Likewise. 27241 (vshlq_x_s16): Likewise. 27242 (vshlq_x_s32): Likewise. 27243 (vshlq_x_u8): Likewise. 27244 (vshlq_x_u16): Likewise. 27245 (vshlq_x_u32): Likewise. 27246 (vshlq_x_n_s8): Likewise. 27247 (vshlq_x_n_s16): Likewise. 27248 (vshlq_x_n_s32): Likewise. 27249 (vshlq_x_n_u8): Likewise. 27250 (vshlq_x_n_u16): Likewise. 27251 (vshlq_x_n_u32): Likewise. 27252 (vrshrq_x_n_s8): Likewise. 27253 (vrshrq_x_n_s16): Likewise. 27254 (vrshrq_x_n_s32): Likewise. 27255 (vrshrq_x_n_u8): Likewise. 27256 (vrshrq_x_n_u16): Likewise. 27257 (vrshrq_x_n_u32): Likewise. 27258 (vshrq_x_n_s8): Likewise. 27259 (vshrq_x_n_s16): Likewise. 27260 (vshrq_x_n_s32): Likewise. 27261 (vshrq_x_n_u8): Likewise. 27262 (vshrq_x_n_u16): Likewise. 27263 (vshrq_x_n_u32): Likewise. 27264 (vdupq_x_n_f16): Likewise. 27265 (vdupq_x_n_f32): Likewise. 27266 (vminnmq_x_f16): Likewise. 27267 (vminnmq_x_f32): Likewise. 27268 (vmaxnmq_x_f16): Likewise. 27269 (vmaxnmq_x_f32): Likewise. 27270 (vabdq_x_f16): Likewise. 27271 (vabdq_x_f32): Likewise. 27272 (vabsq_x_f16): Likewise. 27273 (vabsq_x_f32): Likewise. 27274 (vaddq_x_f16): Likewise. 27275 (vaddq_x_f32): Likewise. 27276 (vaddq_x_n_f16): Likewise. 27277 (vaddq_x_n_f32): Likewise. 27278 (vnegq_x_f16): Likewise. 27279 (vnegq_x_f32): Likewise. 27280 (vmulq_x_f16): Likewise. 27281 (vmulq_x_f32): Likewise. 27282 (vmulq_x_n_f16): Likewise. 27283 (vmulq_x_n_f32): Likewise. 27284 (vsubq_x_f16): Likewise. 27285 (vsubq_x_f32): Likewise. 27286 (vsubq_x_n_f16): Likewise. 27287 (vsubq_x_n_f32): Likewise. 27288 (vcaddq_rot90_x_f16): Likewise. 27289 (vcaddq_rot90_x_f32): Likewise. 27290 (vcaddq_rot270_x_f16): Likewise. 27291 (vcaddq_rot270_x_f32): Likewise. 27292 (vcmulq_x_f16): Likewise. 27293 (vcmulq_x_f32): Likewise. 27294 (vcmulq_rot90_x_f16): Likewise. 27295 (vcmulq_rot90_x_f32): Likewise. 27296 (vcmulq_rot180_x_f16): Likewise. 27297 (vcmulq_rot180_x_f32): Likewise. 27298 (vcmulq_rot270_x_f16): Likewise. 27299 (vcmulq_rot270_x_f32): Likewise. 27300 (vcvtaq_x_s16_f16): Likewise. 27301 (vcvtaq_x_s32_f32): Likewise. 27302 (vcvtaq_x_u16_f16): Likewise. 27303 (vcvtaq_x_u32_f32): Likewise. 27304 (vcvtnq_x_s16_f16): Likewise. 27305 (vcvtnq_x_s32_f32): Likewise. 27306 (vcvtnq_x_u16_f16): Likewise. 27307 (vcvtnq_x_u32_f32): Likewise. 27308 (vcvtpq_x_s16_f16): Likewise. 27309 (vcvtpq_x_s32_f32): Likewise. 27310 (vcvtpq_x_u16_f16): Likewise. 27311 (vcvtpq_x_u32_f32): Likewise. 27312 (vcvtmq_x_s16_f16): Likewise. 27313 (vcvtmq_x_s32_f32): Likewise. 27314 (vcvtmq_x_u16_f16): Likewise. 27315 (vcvtmq_x_u32_f32): Likewise. 27316 (vcvtbq_x_f32_f16): Likewise. 27317 (vcvttq_x_f32_f16): Likewise. 27318 (vcvtq_x_f16_u16): Likewise. 27319 (vcvtq_x_f16_s16): Likewise. 27320 (vcvtq_x_f32_s32): Likewise. 27321 (vcvtq_x_f32_u32): Likewise. 27322 (vcvtq_x_n_f16_s16): Likewise. 27323 (vcvtq_x_n_f16_u16): Likewise. 27324 (vcvtq_x_n_f32_s32): Likewise. 27325 (vcvtq_x_n_f32_u32): Likewise. 27326 (vcvtq_x_s16_f16): Likewise. 27327 (vcvtq_x_s32_f32): Likewise. 27328 (vcvtq_x_u16_f16): Likewise. 27329 (vcvtq_x_u32_f32): Likewise. 27330 (vcvtq_x_n_s16_f16): Likewise. 27331 (vcvtq_x_n_s32_f32): Likewise. 27332 (vcvtq_x_n_u16_f16): Likewise. 27333 (vcvtq_x_n_u32_f32): Likewise. 27334 (vrndq_x_f16): Likewise. 27335 (vrndq_x_f32): Likewise. 27336 (vrndnq_x_f16): Likewise. 27337 (vrndnq_x_f32): Likewise. 27338 (vrndmq_x_f16): Likewise. 27339 (vrndmq_x_f32): Likewise. 27340 (vrndpq_x_f16): Likewise. 27341 (vrndpq_x_f32): Likewise. 27342 (vrndaq_x_f16): Likewise. 27343 (vrndaq_x_f32): Likewise. 27344 (vrndxq_x_f16): Likewise. 27345 (vrndxq_x_f32): Likewise. 27346 (vandq_x_f16): Likewise. 27347 (vandq_x_f32): Likewise. 27348 (vbicq_x_f16): Likewise. 27349 (vbicq_x_f32): Likewise. 27350 (vbrsrq_x_n_f16): Likewise. 27351 (vbrsrq_x_n_f32): Likewise. 27352 (veorq_x_f16): Likewise. 27353 (veorq_x_f32): Likewise. 27354 (vornq_x_f16): Likewise. 27355 (vornq_x_f32): Likewise. 27356 (vorrq_x_f16): Likewise. 27357 (vorrq_x_f32): Likewise. 27358 (vrev32q_x_f16): Likewise. 27359 (vrev64q_x_f16): Likewise. 27360 (vrev64q_x_f32): Likewise. 27361 (__arm_vddupq_x_n_u8): Define intrinsic. 27362 (__arm_vddupq_x_n_u16): Likewise. 27363 (__arm_vddupq_x_n_u32): Likewise. 27364 (__arm_vddupq_x_wb_u8): Likewise. 27365 (__arm_vddupq_x_wb_u16): Likewise. 27366 (__arm_vddupq_x_wb_u32): Likewise. 27367 (__arm_vdwdupq_x_n_u8): Likewise. 27368 (__arm_vdwdupq_x_n_u16): Likewise. 27369 (__arm_vdwdupq_x_n_u32): Likewise. 27370 (__arm_vdwdupq_x_wb_u8): Likewise. 27371 (__arm_vdwdupq_x_wb_u16): Likewise. 27372 (__arm_vdwdupq_x_wb_u32): Likewise. 27373 (__arm_vidupq_x_n_u8): Likewise. 27374 (__arm_vidupq_x_n_u16): Likewise. 27375 (__arm_vidupq_x_n_u32): Likewise. 27376 (__arm_vidupq_x_wb_u8): Likewise. 27377 (__arm_vidupq_x_wb_u16): Likewise. 27378 (__arm_vidupq_x_wb_u32): Likewise. 27379 (__arm_viwdupq_x_n_u8): Likewise. 27380 (__arm_viwdupq_x_n_u16): Likewise. 27381 (__arm_viwdupq_x_n_u32): Likewise. 27382 (__arm_viwdupq_x_wb_u8): Likewise. 27383 (__arm_viwdupq_x_wb_u16): Likewise. 27384 (__arm_viwdupq_x_wb_u32): Likewise. 27385 (__arm_vdupq_x_n_s8): Likewise. 27386 (__arm_vdupq_x_n_s16): Likewise. 27387 (__arm_vdupq_x_n_s32): Likewise. 27388 (__arm_vdupq_x_n_u8): Likewise. 27389 (__arm_vdupq_x_n_u16): Likewise. 27390 (__arm_vdupq_x_n_u32): Likewise. 27391 (__arm_vminq_x_s8): Likewise. 27392 (__arm_vminq_x_s16): Likewise. 27393 (__arm_vminq_x_s32): Likewise. 27394 (__arm_vminq_x_u8): Likewise. 27395 (__arm_vminq_x_u16): Likewise. 27396 (__arm_vminq_x_u32): Likewise. 27397 (__arm_vmaxq_x_s8): Likewise. 27398 (__arm_vmaxq_x_s16): Likewise. 27399 (__arm_vmaxq_x_s32): Likewise. 27400 (__arm_vmaxq_x_u8): Likewise. 27401 (__arm_vmaxq_x_u16): Likewise. 27402 (__arm_vmaxq_x_u32): Likewise. 27403 (__arm_vabdq_x_s8): Likewise. 27404 (__arm_vabdq_x_s16): Likewise. 27405 (__arm_vabdq_x_s32): Likewise. 27406 (__arm_vabdq_x_u8): Likewise. 27407 (__arm_vabdq_x_u16): Likewise. 27408 (__arm_vabdq_x_u32): Likewise. 27409 (__arm_vabsq_x_s8): Likewise. 27410 (__arm_vabsq_x_s16): Likewise. 27411 (__arm_vabsq_x_s32): Likewise. 27412 (__arm_vaddq_x_s8): Likewise. 27413 (__arm_vaddq_x_s16): Likewise. 27414 (__arm_vaddq_x_s32): Likewise. 27415 (__arm_vaddq_x_n_s8): Likewise. 27416 (__arm_vaddq_x_n_s16): Likewise. 27417 (__arm_vaddq_x_n_s32): Likewise. 27418 (__arm_vaddq_x_u8): Likewise. 27419 (__arm_vaddq_x_u16): Likewise. 27420 (__arm_vaddq_x_u32): Likewise. 27421 (__arm_vaddq_x_n_u8): Likewise. 27422 (__arm_vaddq_x_n_u16): Likewise. 27423 (__arm_vaddq_x_n_u32): Likewise. 27424 (__arm_vclsq_x_s8): Likewise. 27425 (__arm_vclsq_x_s16): Likewise. 27426 (__arm_vclsq_x_s32): Likewise. 27427 (__arm_vclzq_x_s8): Likewise. 27428 (__arm_vclzq_x_s16): Likewise. 27429 (__arm_vclzq_x_s32): Likewise. 27430 (__arm_vclzq_x_u8): Likewise. 27431 (__arm_vclzq_x_u16): Likewise. 27432 (__arm_vclzq_x_u32): Likewise. 27433 (__arm_vnegq_x_s8): Likewise. 27434 (__arm_vnegq_x_s16): Likewise. 27435 (__arm_vnegq_x_s32): Likewise. 27436 (__arm_vmulhq_x_s8): Likewise. 27437 (__arm_vmulhq_x_s16): Likewise. 27438 (__arm_vmulhq_x_s32): Likewise. 27439 (__arm_vmulhq_x_u8): Likewise. 27440 (__arm_vmulhq_x_u16): Likewise. 27441 (__arm_vmulhq_x_u32): Likewise. 27442 (__arm_vmullbq_poly_x_p8): Likewise. 27443 (__arm_vmullbq_poly_x_p16): Likewise. 27444 (__arm_vmullbq_int_x_s8): Likewise. 27445 (__arm_vmullbq_int_x_s16): Likewise. 27446 (__arm_vmullbq_int_x_s32): Likewise. 27447 (__arm_vmullbq_int_x_u8): Likewise. 27448 (__arm_vmullbq_int_x_u16): Likewise. 27449 (__arm_vmullbq_int_x_u32): Likewise. 27450 (__arm_vmulltq_poly_x_p8): Likewise. 27451 (__arm_vmulltq_poly_x_p16): Likewise. 27452 (__arm_vmulltq_int_x_s8): Likewise. 27453 (__arm_vmulltq_int_x_s16): Likewise. 27454 (__arm_vmulltq_int_x_s32): Likewise. 27455 (__arm_vmulltq_int_x_u8): Likewise. 27456 (__arm_vmulltq_int_x_u16): Likewise. 27457 (__arm_vmulltq_int_x_u32): Likewise. 27458 (__arm_vmulq_x_s8): Likewise. 27459 (__arm_vmulq_x_s16): Likewise. 27460 (__arm_vmulq_x_s32): Likewise. 27461 (__arm_vmulq_x_n_s8): Likewise. 27462 (__arm_vmulq_x_n_s16): Likewise. 27463 (__arm_vmulq_x_n_s32): Likewise. 27464 (__arm_vmulq_x_u8): Likewise. 27465 (__arm_vmulq_x_u16): Likewise. 27466 (__arm_vmulq_x_u32): Likewise. 27467 (__arm_vmulq_x_n_u8): Likewise. 27468 (__arm_vmulq_x_n_u16): Likewise. 27469 (__arm_vmulq_x_n_u32): Likewise. 27470 (__arm_vsubq_x_s8): Likewise. 27471 (__arm_vsubq_x_s16): Likewise. 27472 (__arm_vsubq_x_s32): Likewise. 27473 (__arm_vsubq_x_n_s8): Likewise. 27474 (__arm_vsubq_x_n_s16): Likewise. 27475 (__arm_vsubq_x_n_s32): Likewise. 27476 (__arm_vsubq_x_u8): Likewise. 27477 (__arm_vsubq_x_u16): Likewise. 27478 (__arm_vsubq_x_u32): Likewise. 27479 (__arm_vsubq_x_n_u8): Likewise. 27480 (__arm_vsubq_x_n_u16): Likewise. 27481 (__arm_vsubq_x_n_u32): Likewise. 27482 (__arm_vcaddq_rot90_x_s8): Likewise. 27483 (__arm_vcaddq_rot90_x_s16): Likewise. 27484 (__arm_vcaddq_rot90_x_s32): Likewise. 27485 (__arm_vcaddq_rot90_x_u8): Likewise. 27486 (__arm_vcaddq_rot90_x_u16): Likewise. 27487 (__arm_vcaddq_rot90_x_u32): Likewise. 27488 (__arm_vcaddq_rot270_x_s8): Likewise. 27489 (__arm_vcaddq_rot270_x_s16): Likewise. 27490 (__arm_vcaddq_rot270_x_s32): Likewise. 27491 (__arm_vcaddq_rot270_x_u8): Likewise. 27492 (__arm_vcaddq_rot270_x_u16): Likewise. 27493 (__arm_vcaddq_rot270_x_u32): Likewise. 27494 (__arm_vhaddq_x_n_s8): Likewise. 27495 (__arm_vhaddq_x_n_s16): Likewise. 27496 (__arm_vhaddq_x_n_s32): Likewise. 27497 (__arm_vhaddq_x_n_u8): Likewise. 27498 (__arm_vhaddq_x_n_u16): Likewise. 27499 (__arm_vhaddq_x_n_u32): Likewise. 27500 (__arm_vhaddq_x_s8): Likewise. 27501 (__arm_vhaddq_x_s16): Likewise. 27502 (__arm_vhaddq_x_s32): Likewise. 27503 (__arm_vhaddq_x_u8): Likewise. 27504 (__arm_vhaddq_x_u16): Likewise. 27505 (__arm_vhaddq_x_u32): Likewise. 27506 (__arm_vhcaddq_rot90_x_s8): Likewise. 27507 (__arm_vhcaddq_rot90_x_s16): Likewise. 27508 (__arm_vhcaddq_rot90_x_s32): Likewise. 27509 (__arm_vhcaddq_rot270_x_s8): Likewise. 27510 (__arm_vhcaddq_rot270_x_s16): Likewise. 27511 (__arm_vhcaddq_rot270_x_s32): Likewise. 27512 (__arm_vhsubq_x_n_s8): Likewise. 27513 (__arm_vhsubq_x_n_s16): Likewise. 27514 (__arm_vhsubq_x_n_s32): Likewise. 27515 (__arm_vhsubq_x_n_u8): Likewise. 27516 (__arm_vhsubq_x_n_u16): Likewise. 27517 (__arm_vhsubq_x_n_u32): Likewise. 27518 (__arm_vhsubq_x_s8): Likewise. 27519 (__arm_vhsubq_x_s16): Likewise. 27520 (__arm_vhsubq_x_s32): Likewise. 27521 (__arm_vhsubq_x_u8): Likewise. 27522 (__arm_vhsubq_x_u16): Likewise. 27523 (__arm_vhsubq_x_u32): Likewise. 27524 (__arm_vrhaddq_x_s8): Likewise. 27525 (__arm_vrhaddq_x_s16): Likewise. 27526 (__arm_vrhaddq_x_s32): Likewise. 27527 (__arm_vrhaddq_x_u8): Likewise. 27528 (__arm_vrhaddq_x_u16): Likewise. 27529 (__arm_vrhaddq_x_u32): Likewise. 27530 (__arm_vrmulhq_x_s8): Likewise. 27531 (__arm_vrmulhq_x_s16): Likewise. 27532 (__arm_vrmulhq_x_s32): Likewise. 27533 (__arm_vrmulhq_x_u8): Likewise. 27534 (__arm_vrmulhq_x_u16): Likewise. 27535 (__arm_vrmulhq_x_u32): Likewise. 27536 (__arm_vandq_x_s8): Likewise. 27537 (__arm_vandq_x_s16): Likewise. 27538 (__arm_vandq_x_s32): Likewise. 27539 (__arm_vandq_x_u8): Likewise. 27540 (__arm_vandq_x_u16): Likewise. 27541 (__arm_vandq_x_u32): Likewise. 27542 (__arm_vbicq_x_s8): Likewise. 27543 (__arm_vbicq_x_s16): Likewise. 27544 (__arm_vbicq_x_s32): Likewise. 27545 (__arm_vbicq_x_u8): Likewise. 27546 (__arm_vbicq_x_u16): Likewise. 27547 (__arm_vbicq_x_u32): Likewise. 27548 (__arm_vbrsrq_x_n_s8): Likewise. 27549 (__arm_vbrsrq_x_n_s16): Likewise. 27550 (__arm_vbrsrq_x_n_s32): Likewise. 27551 (__arm_vbrsrq_x_n_u8): Likewise. 27552 (__arm_vbrsrq_x_n_u16): Likewise. 27553 (__arm_vbrsrq_x_n_u32): Likewise. 27554 (__arm_veorq_x_s8): Likewise. 27555 (__arm_veorq_x_s16): Likewise. 27556 (__arm_veorq_x_s32): Likewise. 27557 (__arm_veorq_x_u8): Likewise. 27558 (__arm_veorq_x_u16): Likewise. 27559 (__arm_veorq_x_u32): Likewise. 27560 (__arm_vmovlbq_x_s8): Likewise. 27561 (__arm_vmovlbq_x_s16): Likewise. 27562 (__arm_vmovlbq_x_u8): Likewise. 27563 (__arm_vmovlbq_x_u16): Likewise. 27564 (__arm_vmovltq_x_s8): Likewise. 27565 (__arm_vmovltq_x_s16): Likewise. 27566 (__arm_vmovltq_x_u8): Likewise. 27567 (__arm_vmovltq_x_u16): Likewise. 27568 (__arm_vmvnq_x_s8): Likewise. 27569 (__arm_vmvnq_x_s16): Likewise. 27570 (__arm_vmvnq_x_s32): Likewise. 27571 (__arm_vmvnq_x_u8): Likewise. 27572 (__arm_vmvnq_x_u16): Likewise. 27573 (__arm_vmvnq_x_u32): Likewise. 27574 (__arm_vmvnq_x_n_s16): Likewise. 27575 (__arm_vmvnq_x_n_s32): Likewise. 27576 (__arm_vmvnq_x_n_u16): Likewise. 27577 (__arm_vmvnq_x_n_u32): Likewise. 27578 (__arm_vornq_x_s8): Likewise. 27579 (__arm_vornq_x_s16): Likewise. 27580 (__arm_vornq_x_s32): Likewise. 27581 (__arm_vornq_x_u8): Likewise. 27582 (__arm_vornq_x_u16): Likewise. 27583 (__arm_vornq_x_u32): Likewise. 27584 (__arm_vorrq_x_s8): Likewise. 27585 (__arm_vorrq_x_s16): Likewise. 27586 (__arm_vorrq_x_s32): Likewise. 27587 (__arm_vorrq_x_u8): Likewise. 27588 (__arm_vorrq_x_u16): Likewise. 27589 (__arm_vorrq_x_u32): Likewise. 27590 (__arm_vrev16q_x_s8): Likewise. 27591 (__arm_vrev16q_x_u8): Likewise. 27592 (__arm_vrev32q_x_s8): Likewise. 27593 (__arm_vrev32q_x_s16): Likewise. 27594 (__arm_vrev32q_x_u8): Likewise. 27595 (__arm_vrev32q_x_u16): Likewise. 27596 (__arm_vrev64q_x_s8): Likewise. 27597 (__arm_vrev64q_x_s16): Likewise. 27598 (__arm_vrev64q_x_s32): Likewise. 27599 (__arm_vrev64q_x_u8): Likewise. 27600 (__arm_vrev64q_x_u16): Likewise. 27601 (__arm_vrev64q_x_u32): Likewise. 27602 (__arm_vrshlq_x_s8): Likewise. 27603 (__arm_vrshlq_x_s16): Likewise. 27604 (__arm_vrshlq_x_s32): Likewise. 27605 (__arm_vrshlq_x_u8): Likewise. 27606 (__arm_vrshlq_x_u16): Likewise. 27607 (__arm_vrshlq_x_u32): Likewise. 27608 (__arm_vshllbq_x_n_s8): Likewise. 27609 (__arm_vshllbq_x_n_s16): Likewise. 27610 (__arm_vshllbq_x_n_u8): Likewise. 27611 (__arm_vshllbq_x_n_u16): Likewise. 27612 (__arm_vshlltq_x_n_s8): Likewise. 27613 (__arm_vshlltq_x_n_s16): Likewise. 27614 (__arm_vshlltq_x_n_u8): Likewise. 27615 (__arm_vshlltq_x_n_u16): Likewise. 27616 (__arm_vshlq_x_s8): Likewise. 27617 (__arm_vshlq_x_s16): Likewise. 27618 (__arm_vshlq_x_s32): Likewise. 27619 (__arm_vshlq_x_u8): Likewise. 27620 (__arm_vshlq_x_u16): Likewise. 27621 (__arm_vshlq_x_u32): Likewise. 27622 (__arm_vshlq_x_n_s8): Likewise. 27623 (__arm_vshlq_x_n_s16): Likewise. 27624 (__arm_vshlq_x_n_s32): Likewise. 27625 (__arm_vshlq_x_n_u8): Likewise. 27626 (__arm_vshlq_x_n_u16): Likewise. 27627 (__arm_vshlq_x_n_u32): Likewise. 27628 (__arm_vrshrq_x_n_s8): Likewise. 27629 (__arm_vrshrq_x_n_s16): Likewise. 27630 (__arm_vrshrq_x_n_s32): Likewise. 27631 (__arm_vrshrq_x_n_u8): Likewise. 27632 (__arm_vrshrq_x_n_u16): Likewise. 27633 (__arm_vrshrq_x_n_u32): Likewise. 27634 (__arm_vshrq_x_n_s8): Likewise. 27635 (__arm_vshrq_x_n_s16): Likewise. 27636 (__arm_vshrq_x_n_s32): Likewise. 27637 (__arm_vshrq_x_n_u8): Likewise. 27638 (__arm_vshrq_x_n_u16): Likewise. 27639 (__arm_vshrq_x_n_u32): Likewise. 27640 (__arm_vdupq_x_n_f16): Likewise. 27641 (__arm_vdupq_x_n_f32): Likewise. 27642 (__arm_vminnmq_x_f16): Likewise. 27643 (__arm_vminnmq_x_f32): Likewise. 27644 (__arm_vmaxnmq_x_f16): Likewise. 27645 (__arm_vmaxnmq_x_f32): Likewise. 27646 (__arm_vabdq_x_f16): Likewise. 27647 (__arm_vabdq_x_f32): Likewise. 27648 (__arm_vabsq_x_f16): Likewise. 27649 (__arm_vabsq_x_f32): Likewise. 27650 (__arm_vaddq_x_f16): Likewise. 27651 (__arm_vaddq_x_f32): Likewise. 27652 (__arm_vaddq_x_n_f16): Likewise. 27653 (__arm_vaddq_x_n_f32): Likewise. 27654 (__arm_vnegq_x_f16): Likewise. 27655 (__arm_vnegq_x_f32): Likewise. 27656 (__arm_vmulq_x_f16): Likewise. 27657 (__arm_vmulq_x_f32): Likewise. 27658 (__arm_vmulq_x_n_f16): Likewise. 27659 (__arm_vmulq_x_n_f32): Likewise. 27660 (__arm_vsubq_x_f16): Likewise. 27661 (__arm_vsubq_x_f32): Likewise. 27662 (__arm_vsubq_x_n_f16): Likewise. 27663 (__arm_vsubq_x_n_f32): Likewise. 27664 (__arm_vcaddq_rot90_x_f16): Likewise. 27665 (__arm_vcaddq_rot90_x_f32): Likewise. 27666 (__arm_vcaddq_rot270_x_f16): Likewise. 27667 (__arm_vcaddq_rot270_x_f32): Likewise. 27668 (__arm_vcmulq_x_f16): Likewise. 27669 (__arm_vcmulq_x_f32): Likewise. 27670 (__arm_vcmulq_rot90_x_f16): Likewise. 27671 (__arm_vcmulq_rot90_x_f32): Likewise. 27672 (__arm_vcmulq_rot180_x_f16): Likewise. 27673 (__arm_vcmulq_rot180_x_f32): Likewise. 27674 (__arm_vcmulq_rot270_x_f16): Likewise. 27675 (__arm_vcmulq_rot270_x_f32): Likewise. 27676 (__arm_vcvtaq_x_s16_f16): Likewise. 27677 (__arm_vcvtaq_x_s32_f32): Likewise. 27678 (__arm_vcvtaq_x_u16_f16): Likewise. 27679 (__arm_vcvtaq_x_u32_f32): Likewise. 27680 (__arm_vcvtnq_x_s16_f16): Likewise. 27681 (__arm_vcvtnq_x_s32_f32): Likewise. 27682 (__arm_vcvtnq_x_u16_f16): Likewise. 27683 (__arm_vcvtnq_x_u32_f32): Likewise. 27684 (__arm_vcvtpq_x_s16_f16): Likewise. 27685 (__arm_vcvtpq_x_s32_f32): Likewise. 27686 (__arm_vcvtpq_x_u16_f16): Likewise. 27687 (__arm_vcvtpq_x_u32_f32): Likewise. 27688 (__arm_vcvtmq_x_s16_f16): Likewise. 27689 (__arm_vcvtmq_x_s32_f32): Likewise. 27690 (__arm_vcvtmq_x_u16_f16): Likewise. 27691 (__arm_vcvtmq_x_u32_f32): Likewise. 27692 (__arm_vcvtbq_x_f32_f16): Likewise. 27693 (__arm_vcvttq_x_f32_f16): Likewise. 27694 (__arm_vcvtq_x_f16_u16): Likewise. 27695 (__arm_vcvtq_x_f16_s16): Likewise. 27696 (__arm_vcvtq_x_f32_s32): Likewise. 27697 (__arm_vcvtq_x_f32_u32): Likewise. 27698 (__arm_vcvtq_x_n_f16_s16): Likewise. 27699 (__arm_vcvtq_x_n_f16_u16): Likewise. 27700 (__arm_vcvtq_x_n_f32_s32): Likewise. 27701 (__arm_vcvtq_x_n_f32_u32): Likewise. 27702 (__arm_vcvtq_x_s16_f16): Likewise. 27703 (__arm_vcvtq_x_s32_f32): Likewise. 27704 (__arm_vcvtq_x_u16_f16): Likewise. 27705 (__arm_vcvtq_x_u32_f32): Likewise. 27706 (__arm_vcvtq_x_n_s16_f16): Likewise. 27707 (__arm_vcvtq_x_n_s32_f32): Likewise. 27708 (__arm_vcvtq_x_n_u16_f16): Likewise. 27709 (__arm_vcvtq_x_n_u32_f32): Likewise. 27710 (__arm_vrndq_x_f16): Likewise. 27711 (__arm_vrndq_x_f32): Likewise. 27712 (__arm_vrndnq_x_f16): Likewise. 27713 (__arm_vrndnq_x_f32): Likewise. 27714 (__arm_vrndmq_x_f16): Likewise. 27715 (__arm_vrndmq_x_f32): Likewise. 27716 (__arm_vrndpq_x_f16): Likewise. 27717 (__arm_vrndpq_x_f32): Likewise. 27718 (__arm_vrndaq_x_f16): Likewise. 27719 (__arm_vrndaq_x_f32): Likewise. 27720 (__arm_vrndxq_x_f16): Likewise. 27721 (__arm_vrndxq_x_f32): Likewise. 27722 (__arm_vandq_x_f16): Likewise. 27723 (__arm_vandq_x_f32): Likewise. 27724 (__arm_vbicq_x_f16): Likewise. 27725 (__arm_vbicq_x_f32): Likewise. 27726 (__arm_vbrsrq_x_n_f16): Likewise. 27727 (__arm_vbrsrq_x_n_f32): Likewise. 27728 (__arm_veorq_x_f16): Likewise. 27729 (__arm_veorq_x_f32): Likewise. 27730 (__arm_vornq_x_f16): Likewise. 27731 (__arm_vornq_x_f32): Likewise. 27732 (__arm_vorrq_x_f16): Likewise. 27733 (__arm_vorrq_x_f32): Likewise. 27734 (__arm_vrev32q_x_f16): Likewise. 27735 (__arm_vrev64q_x_f16): Likewise. 27736 (__arm_vrev64q_x_f32): Likewise. 27737 (vabdq_x): Define polymorphic variant. 27738 (vabsq_x): Likewise. 27739 (vaddq_x): Likewise. 27740 (vandq_x): Likewise. 27741 (vbicq_x): Likewise. 27742 (vbrsrq_x): Likewise. 27743 (vcaddq_rot270_x): Likewise. 27744 (vcaddq_rot90_x): Likewise. 27745 (vcmulq_rot180_x): Likewise. 27746 (vcmulq_rot270_x): Likewise. 27747 (vcmulq_x): Likewise. 27748 (vcvtq_x): Likewise. 27749 (vcvtq_x_n): Likewise. 27750 (vcvtnq_m): Likewise. 27751 (veorq_x): Likewise. 27752 (vmaxnmq_x): Likewise. 27753 (vminnmq_x): Likewise. 27754 (vmulq_x): Likewise. 27755 (vnegq_x): Likewise. 27756 (vornq_x): Likewise. 27757 (vorrq_x): Likewise. 27758 (vrev32q_x): Likewise. 27759 (vrev64q_x): Likewise. 27760 (vrndaq_x): Likewise. 27761 (vrndmq_x): Likewise. 27762 (vrndnq_x): Likewise. 27763 (vrndpq_x): Likewise. 27764 (vrndq_x): Likewise. 27765 (vrndxq_x): Likewise. 27766 (vsubq_x): Likewise. 27767 (vcmulq_rot90_x): Likewise. 27768 (vadciq): Likewise. 27769 (vclsq_x): Likewise. 27770 (vclzq_x): Likewise. 27771 (vhaddq_x): Likewise. 27772 (vhcaddq_rot270_x): Likewise. 27773 (vhcaddq_rot90_x): Likewise. 27774 (vhsubq_x): Likewise. 27775 (vmaxq_x): Likewise. 27776 (vminq_x): Likewise. 27777 (vmovlbq_x): Likewise. 27778 (vmovltq_x): Likewise. 27779 (vmulhq_x): Likewise. 27780 (vmullbq_int_x): Likewise. 27781 (vmullbq_poly_x): Likewise. 27782 (vmulltq_int_x): Likewise. 27783 (vmulltq_poly_x): Likewise. 27784 (vmvnq_x): Likewise. 27785 (vrev16q_x): Likewise. 27786 (vrhaddq_x): Likewise. 27787 (vrmulhq_x): Likewise. 27788 (vrshlq_x): Likewise. 27789 (vrshrq_x): Likewise. 27790 (vshllbq_x): Likewise. 27791 (vshlltq_x): Likewise. 27792 (vshlq_x_n): Likewise. 27793 (vshlq_x): Likewise. 27794 (vdwdupq_x_u8): Likewise. 27795 (vdwdupq_x_u16): Likewise. 27796 (vdwdupq_x_u32): Likewise. 27797 (viwdupq_x_u8): Likewise. 27798 (viwdupq_x_u16): Likewise. 27799 (viwdupq_x_u32): Likewise. 27800 (vidupq_x_u8): Likewise. 27801 (vddupq_x_u8): Likewise. 27802 (vidupq_x_u16): Likewise. 27803 (vddupq_x_u16): Likewise. 27804 (vidupq_x_u32): Likewise. 27805 (vddupq_x_u32): Likewise. 27806 (vshrq_x): Likewise. 27807 278082020-03-20 Richard Biener <rguenther@suse.de> 27809 27810 * tree-vect-slp.c (vect_analyze_slp_instance): Push the stmts 27811 to vectorize for CTOR defs. 27812 278132020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 27814 Andre Vieira <andre.simoesdiasvieira@arm.com> 27815 Mihail Ionescu <mihail.ionescu@arm.com> 27816 27817 * config/arm/arm-builtins.c (LDRGBWBS_QUALIFIERS): Define builtin 27818 qualifier. 27819 (LDRGBWBU_QUALIFIERS): Likewise. 27820 (LDRGBWBS_Z_QUALIFIERS): Likewise. 27821 (LDRGBWBU_Z_QUALIFIERS): Likewise. 27822 (STRSBWBS_QUALIFIERS): Likewise. 27823 (STRSBWBU_QUALIFIERS): Likewise. 27824 (STRSBWBS_P_QUALIFIERS): Likewise. 27825 (STRSBWBU_P_QUALIFIERS): Likewise. 27826 * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Define macro. 27827 (vldrdq_gather_base_wb_u64): Likewise. 27828 (vldrdq_gather_base_wb_z_s64): Likewise. 27829 (vldrdq_gather_base_wb_z_u64): Likewise. 27830 (vldrwq_gather_base_wb_f32): Likewise. 27831 (vldrwq_gather_base_wb_s32): Likewise. 27832 (vldrwq_gather_base_wb_u32): Likewise. 27833 (vldrwq_gather_base_wb_z_f32): Likewise. 27834 (vldrwq_gather_base_wb_z_s32): Likewise. 27835 (vldrwq_gather_base_wb_z_u32): Likewise. 27836 (vstrdq_scatter_base_wb_p_s64): Likewise. 27837 (vstrdq_scatter_base_wb_p_u64): Likewise. 27838 (vstrdq_scatter_base_wb_s64): Likewise. 27839 (vstrdq_scatter_base_wb_u64): Likewise. 27840 (vstrwq_scatter_base_wb_p_s32): Likewise. 27841 (vstrwq_scatter_base_wb_p_f32): Likewise. 27842 (vstrwq_scatter_base_wb_p_u32): Likewise. 27843 (vstrwq_scatter_base_wb_s32): Likewise. 27844 (vstrwq_scatter_base_wb_u32): Likewise. 27845 (vstrwq_scatter_base_wb_f32): Likewise. 27846 (__arm_vldrdq_gather_base_wb_s64): Define intrinsic. 27847 (__arm_vldrdq_gather_base_wb_u64): Likewise. 27848 (__arm_vldrdq_gather_base_wb_z_s64): Likewise. 27849 (__arm_vldrdq_gather_base_wb_z_u64): Likewise. 27850 (__arm_vldrwq_gather_base_wb_s32): Likewise. 27851 (__arm_vldrwq_gather_base_wb_u32): Likewise. 27852 (__arm_vldrwq_gather_base_wb_z_s32): Likewise. 27853 (__arm_vldrwq_gather_base_wb_z_u32): Likewise. 27854 (__arm_vstrdq_scatter_base_wb_s64): Likewise. 27855 (__arm_vstrdq_scatter_base_wb_u64): Likewise. 27856 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise. 27857 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise. 27858 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise. 27859 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise. 27860 (__arm_vstrwq_scatter_base_wb_s32): Likewise. 27861 (__arm_vstrwq_scatter_base_wb_u32): Likewise. 27862 (__arm_vldrwq_gather_base_wb_f32): Likewise. 27863 (__arm_vldrwq_gather_base_wb_z_f32): Likewise. 27864 (__arm_vstrwq_scatter_base_wb_f32): Likewise. 27865 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise. 27866 (vstrwq_scatter_base_wb): Define polymorphic variant. 27867 (vstrwq_scatter_base_wb_p): Likewise. 27868 (vstrdq_scatter_base_wb_p): Likewise. 27869 (vstrdq_scatter_base_wb): Likewise. 27870 * config/arm/arm_mve_builtins.def (LDRGBWBS_QUALIFIERS): Use builtin 27871 qualifier. 27872 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Define RTL 27873 pattern. 27874 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise. 27875 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Likewise. 27876 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise. 27877 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise. 27878 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Likewise. 27879 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise. 27880 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise. 27881 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Likewise. 27882 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise. 27883 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise. 27884 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Likewise. 27885 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise. 27886 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise. 27887 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Likewise. 27888 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise. 27889 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise. 27890 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Likewise. 27891 (mve_vldrwq_gather_base_wb_<supf>v4si): Likewise. 27892 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise. 27893 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Likewise. 27894 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise. 27895 (mve_vldrwq_gather_base_wb_fv4sf): Likewise. 27896 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise. 27897 (mve_vldrwq_gather_base_wb_z_fv4sf): Likewise. 27898 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise. 27899 (mve_vldrdq_gather_base_wb_<supf>v2di): Likewise. 27900 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise. 27901 (mve_vldrdq_gather_base_wb_z_<supf>v2di): Likewise. 27902 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise. 27903 279042020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 27905 Andre Vieira <andre.simoesdiasvieira@arm.com> 27906 Mihail Ionescu <mihail.ionescu@arm.com> 27907 27908 * config/arm/arm-builtins.c 27909 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Define quinary 27910 builtin qualifier. 27911 * config/arm/arm_mve.h (vddupq_m_n_u8): Define macro. 27912 (vddupq_m_n_u32): Likewise. 27913 (vddupq_m_n_u16): Likewise. 27914 (vddupq_m_wb_u8): Likewise. 27915 (vddupq_m_wb_u16): Likewise. 27916 (vddupq_m_wb_u32): Likewise. 27917 (vddupq_n_u8): Likewise. 27918 (vddupq_n_u32): Likewise. 27919 (vddupq_n_u16): Likewise. 27920 (vddupq_wb_u8): Likewise. 27921 (vddupq_wb_u16): Likewise. 27922 (vddupq_wb_u32): Likewise. 27923 (vdwdupq_m_n_u8): Likewise. 27924 (vdwdupq_m_n_u32): Likewise. 27925 (vdwdupq_m_n_u16): Likewise. 27926 (vdwdupq_m_wb_u8): Likewise. 27927 (vdwdupq_m_wb_u32): Likewise. 27928 (vdwdupq_m_wb_u16): Likewise. 27929 (vdwdupq_n_u8): Likewise. 27930 (vdwdupq_n_u32): Likewise. 27931 (vdwdupq_n_u16): Likewise. 27932 (vdwdupq_wb_u8): Likewise. 27933 (vdwdupq_wb_u32): Likewise. 27934 (vdwdupq_wb_u16): Likewise. 27935 (vidupq_m_n_u8): Likewise. 27936 (vidupq_m_n_u32): Likewise. 27937 (vidupq_m_n_u16): Likewise. 27938 (vidupq_m_wb_u8): Likewise. 27939 (vidupq_m_wb_u16): Likewise. 27940 (vidupq_m_wb_u32): Likewise. 27941 (vidupq_n_u8): Likewise. 27942 (vidupq_n_u32): Likewise. 27943 (vidupq_n_u16): Likewise. 27944 (vidupq_wb_u8): Likewise. 27945 (vidupq_wb_u16): Likewise. 27946 (vidupq_wb_u32): Likewise. 27947 (viwdupq_m_n_u8): Likewise. 27948 (viwdupq_m_n_u32): Likewise. 27949 (viwdupq_m_n_u16): Likewise. 27950 (viwdupq_m_wb_u8): Likewise. 27951 (viwdupq_m_wb_u32): Likewise. 27952 (viwdupq_m_wb_u16): Likewise. 27953 (viwdupq_n_u8): Likewise. 27954 (viwdupq_n_u32): Likewise. 27955 (viwdupq_n_u16): Likewise. 27956 (viwdupq_wb_u8): Likewise. 27957 (viwdupq_wb_u32): Likewise. 27958 (viwdupq_wb_u16): Likewise. 27959 (__arm_vddupq_m_n_u8): Define intrinsic. 27960 (__arm_vddupq_m_n_u32): Likewise. 27961 (__arm_vddupq_m_n_u16): Likewise. 27962 (__arm_vddupq_m_wb_u8): Likewise. 27963 (__arm_vddupq_m_wb_u16): Likewise. 27964 (__arm_vddupq_m_wb_u32): Likewise. 27965 (__arm_vddupq_n_u8): Likewise. 27966 (__arm_vddupq_n_u32): Likewise. 27967 (__arm_vddupq_n_u16): Likewise. 27968 (__arm_vdwdupq_m_n_u8): Likewise. 27969 (__arm_vdwdupq_m_n_u32): Likewise. 27970 (__arm_vdwdupq_m_n_u16): Likewise. 27971 (__arm_vdwdupq_m_wb_u8): Likewise. 27972 (__arm_vdwdupq_m_wb_u32): Likewise. 27973 (__arm_vdwdupq_m_wb_u16): Likewise. 27974 (__arm_vdwdupq_n_u8): Likewise. 27975 (__arm_vdwdupq_n_u32): Likewise. 27976 (__arm_vdwdupq_n_u16): Likewise. 27977 (__arm_vdwdupq_wb_u8): Likewise. 27978 (__arm_vdwdupq_wb_u32): Likewise. 27979 (__arm_vdwdupq_wb_u16): Likewise. 27980 (__arm_vidupq_m_n_u8): Likewise. 27981 (__arm_vidupq_m_n_u32): Likewise. 27982 (__arm_vidupq_m_n_u16): Likewise. 27983 (__arm_vidupq_n_u8): Likewise. 27984 (__arm_vidupq_m_wb_u8): Likewise. 27985 (__arm_vidupq_m_wb_u16): Likewise. 27986 (__arm_vidupq_m_wb_u32): Likewise. 27987 (__arm_vidupq_n_u32): Likewise. 27988 (__arm_vidupq_n_u16): Likewise. 27989 (__arm_vidupq_wb_u8): Likewise. 27990 (__arm_vidupq_wb_u16): Likewise. 27991 (__arm_vidupq_wb_u32): Likewise. 27992 (__arm_vddupq_wb_u8): Likewise. 27993 (__arm_vddupq_wb_u16): Likewise. 27994 (__arm_vddupq_wb_u32): Likewise. 27995 (__arm_viwdupq_m_n_u8): Likewise. 27996 (__arm_viwdupq_m_n_u32): Likewise. 27997 (__arm_viwdupq_m_n_u16): Likewise. 27998 (__arm_viwdupq_m_wb_u8): Likewise. 27999 (__arm_viwdupq_m_wb_u32): Likewise. 28000 (__arm_viwdupq_m_wb_u16): Likewise. 28001 (__arm_viwdupq_n_u8): Likewise. 28002 (__arm_viwdupq_n_u32): Likewise. 28003 (__arm_viwdupq_n_u16): Likewise. 28004 (__arm_viwdupq_wb_u8): Likewise. 28005 (__arm_viwdupq_wb_u32): Likewise. 28006 (__arm_viwdupq_wb_u16): Likewise. 28007 (vidupq_m): Define polymorphic variant. 28008 (vddupq_m): Likewise. 28009 (vidupq_u16): Likewise. 28010 (vidupq_u32): Likewise. 28011 (vidupq_u8): Likewise. 28012 (vddupq_u16): Likewise. 28013 (vddupq_u32): Likewise. 28014 (vddupq_u8): Likewise. 28015 (viwdupq_m): Likewise. 28016 (viwdupq_u16): Likewise. 28017 (viwdupq_u32): Likewise. 28018 (viwdupq_u8): Likewise. 28019 (vdwdupq_m): Likewise. 28020 (vdwdupq_u16): Likewise. 28021 (vdwdupq_u32): Likewise. 28022 (vdwdupq_u8): Likewise. 28023 * config/arm/arm_mve_builtins.def 28024 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Use builtin 28025 qualifier. 28026 * config/arm/mve.md (mve_vidupq_n_u<mode>): Define RTL pattern. 28027 (mve_vidupq_u<mode>_insn): Likewise. 28028 (mve_vidupq_m_n_u<mode>): Likewise. 28029 (mve_vidupq_m_wb_u<mode>_insn): Likewise. 28030 (mve_vddupq_n_u<mode>): Likewise. 28031 (mve_vddupq_u<mode>_insn): Likewise. 28032 (mve_vddupq_m_n_u<mode>): Likewise. 28033 (mve_vddupq_m_wb_u<mode>_insn): Likewise. 28034 (mve_vdwdupq_n_u<mode>): Likewise. 28035 (mve_vdwdupq_wb_u<mode>): Likewise. 28036 (mve_vdwdupq_wb_u<mode>_insn): Likewise. 28037 (mve_vdwdupq_m_n_u<mode>): Likewise. 28038 (mve_vdwdupq_m_wb_u<mode>): Likewise. 28039 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise. 28040 (mve_viwdupq_n_u<mode>): Likewise. 28041 (mve_viwdupq_wb_u<mode>): Likewise. 28042 (mve_viwdupq_wb_u<mode>_insn): Likewise. 28043 (mve_viwdupq_m_n_u<mode>): Likewise. 28044 (mve_viwdupq_m_wb_u<mode>): Likewise. 28045 (mve_viwdupq_m_wb_u<mode>_insn): Likewise. 28046 280472020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28048 28049 * config/arm/arm_mve.h (vreinterpretq_s16_s32): Define macro. 28050 (vreinterpretq_s16_s64): Likewise. 28051 (vreinterpretq_s16_s8): Likewise. 28052 (vreinterpretq_s16_u16): Likewise. 28053 (vreinterpretq_s16_u32): Likewise. 28054 (vreinterpretq_s16_u64): Likewise. 28055 (vreinterpretq_s16_u8): Likewise. 28056 (vreinterpretq_s32_s16): Likewise. 28057 (vreinterpretq_s32_s64): Likewise. 28058 (vreinterpretq_s32_s8): Likewise. 28059 (vreinterpretq_s32_u16): Likewise. 28060 (vreinterpretq_s32_u32): Likewise. 28061 (vreinterpretq_s32_u64): Likewise. 28062 (vreinterpretq_s32_u8): Likewise. 28063 (vreinterpretq_s64_s16): Likewise. 28064 (vreinterpretq_s64_s32): Likewise. 28065 (vreinterpretq_s64_s8): Likewise. 28066 (vreinterpretq_s64_u16): Likewise. 28067 (vreinterpretq_s64_u32): Likewise. 28068 (vreinterpretq_s64_u64): Likewise. 28069 (vreinterpretq_s64_u8): Likewise. 28070 (vreinterpretq_s8_s16): Likewise. 28071 (vreinterpretq_s8_s32): Likewise. 28072 (vreinterpretq_s8_s64): Likewise. 28073 (vreinterpretq_s8_u16): Likewise. 28074 (vreinterpretq_s8_u32): Likewise. 28075 (vreinterpretq_s8_u64): Likewise. 28076 (vreinterpretq_s8_u8): Likewise. 28077 (vreinterpretq_u16_s16): Likewise. 28078 (vreinterpretq_u16_s32): Likewise. 28079 (vreinterpretq_u16_s64): Likewise. 28080 (vreinterpretq_u16_s8): Likewise. 28081 (vreinterpretq_u16_u32): Likewise. 28082 (vreinterpretq_u16_u64): Likewise. 28083 (vreinterpretq_u16_u8): Likewise. 28084 (vreinterpretq_u32_s16): Likewise. 28085 (vreinterpretq_u32_s32): Likewise. 28086 (vreinterpretq_u32_s64): Likewise. 28087 (vreinterpretq_u32_s8): Likewise. 28088 (vreinterpretq_u32_u16): Likewise. 28089 (vreinterpretq_u32_u64): Likewise. 28090 (vreinterpretq_u32_u8): Likewise. 28091 (vreinterpretq_u64_s16): Likewise. 28092 (vreinterpretq_u64_s32): Likewise. 28093 (vreinterpretq_u64_s64): Likewise. 28094 (vreinterpretq_u64_s8): Likewise. 28095 (vreinterpretq_u64_u16): Likewise. 28096 (vreinterpretq_u64_u32): Likewise. 28097 (vreinterpretq_u64_u8): Likewise. 28098 (vreinterpretq_u8_s16): Likewise. 28099 (vreinterpretq_u8_s32): Likewise. 28100 (vreinterpretq_u8_s64): Likewise. 28101 (vreinterpretq_u8_s8): Likewise. 28102 (vreinterpretq_u8_u16): Likewise. 28103 (vreinterpretq_u8_u32): Likewise. 28104 (vreinterpretq_u8_u64): Likewise. 28105 (vreinterpretq_s32_f16): Likewise. 28106 (vreinterpretq_s32_f32): Likewise. 28107 (vreinterpretq_u16_f16): Likewise. 28108 (vreinterpretq_u16_f32): Likewise. 28109 (vreinterpretq_u32_f16): Likewise. 28110 (vreinterpretq_u32_f32): Likewise. 28111 (vreinterpretq_u64_f16): Likewise. 28112 (vreinterpretq_u64_f32): Likewise. 28113 (vreinterpretq_u8_f16): Likewise. 28114 (vreinterpretq_u8_f32): Likewise. 28115 (vreinterpretq_f16_f32): Likewise. 28116 (vreinterpretq_f16_s16): Likewise. 28117 (vreinterpretq_f16_s32): Likewise. 28118 (vreinterpretq_f16_s64): Likewise. 28119 (vreinterpretq_f16_s8): Likewise. 28120 (vreinterpretq_f16_u16): Likewise. 28121 (vreinterpretq_f16_u32): Likewise. 28122 (vreinterpretq_f16_u64): Likewise. 28123 (vreinterpretq_f16_u8): Likewise. 28124 (vreinterpretq_f32_f16): Likewise. 28125 (vreinterpretq_f32_s16): Likewise. 28126 (vreinterpretq_f32_s32): Likewise. 28127 (vreinterpretq_f32_s64): Likewise. 28128 (vreinterpretq_f32_s8): Likewise. 28129 (vreinterpretq_f32_u16): Likewise. 28130 (vreinterpretq_f32_u32): Likewise. 28131 (vreinterpretq_f32_u64): Likewise. 28132 (vreinterpretq_f32_u8): Likewise. 28133 (vreinterpretq_s16_f16): Likewise. 28134 (vreinterpretq_s16_f32): Likewise. 28135 (vreinterpretq_s64_f16): Likewise. 28136 (vreinterpretq_s64_f32): Likewise. 28137 (vreinterpretq_s8_f16): Likewise. 28138 (vreinterpretq_s8_f32): Likewise. 28139 (vuninitializedq_u8): Likewise. 28140 (vuninitializedq_u16): Likewise. 28141 (vuninitializedq_u32): Likewise. 28142 (vuninitializedq_u64): Likewise. 28143 (vuninitializedq_s8): Likewise. 28144 (vuninitializedq_s16): Likewise. 28145 (vuninitializedq_s32): Likewise. 28146 (vuninitializedq_s64): Likewise. 28147 (vuninitializedq_f16): Likewise. 28148 (vuninitializedq_f32): Likewise. 28149 (__arm_vuninitializedq_u8): Define intrinsic. 28150 (__arm_vuninitializedq_u16): Likewise. 28151 (__arm_vuninitializedq_u32): Likewise. 28152 (__arm_vuninitializedq_u64): Likewise. 28153 (__arm_vuninitializedq_s8): Likewise. 28154 (__arm_vuninitializedq_s16): Likewise. 28155 (__arm_vuninitializedq_s32): Likewise. 28156 (__arm_vuninitializedq_s64): Likewise. 28157 (__arm_vreinterpretq_s16_s32): Likewise. 28158 (__arm_vreinterpretq_s16_s64): Likewise. 28159 (__arm_vreinterpretq_s16_s8): Likewise. 28160 (__arm_vreinterpretq_s16_u16): Likewise. 28161 (__arm_vreinterpretq_s16_u32): Likewise. 28162 (__arm_vreinterpretq_s16_u64): Likewise. 28163 (__arm_vreinterpretq_s16_u8): Likewise. 28164 (__arm_vreinterpretq_s32_s16): Likewise. 28165 (__arm_vreinterpretq_s32_s64): Likewise. 28166 (__arm_vreinterpretq_s32_s8): Likewise. 28167 (__arm_vreinterpretq_s32_u16): Likewise. 28168 (__arm_vreinterpretq_s32_u32): Likewise. 28169 (__arm_vreinterpretq_s32_u64): Likewise. 28170 (__arm_vreinterpretq_s32_u8): Likewise. 28171 (__arm_vreinterpretq_s64_s16): Likewise. 28172 (__arm_vreinterpretq_s64_s32): Likewise. 28173 (__arm_vreinterpretq_s64_s8): Likewise. 28174 (__arm_vreinterpretq_s64_u16): Likewise. 28175 (__arm_vreinterpretq_s64_u32): Likewise. 28176 (__arm_vreinterpretq_s64_u64): Likewise. 28177 (__arm_vreinterpretq_s64_u8): Likewise. 28178 (__arm_vreinterpretq_s8_s16): Likewise. 28179 (__arm_vreinterpretq_s8_s32): Likewise. 28180 (__arm_vreinterpretq_s8_s64): Likewise. 28181 (__arm_vreinterpretq_s8_u16): Likewise. 28182 (__arm_vreinterpretq_s8_u32): Likewise. 28183 (__arm_vreinterpretq_s8_u64): Likewise. 28184 (__arm_vreinterpretq_s8_u8): Likewise. 28185 (__arm_vreinterpretq_u16_s16): Likewise. 28186 (__arm_vreinterpretq_u16_s32): Likewise. 28187 (__arm_vreinterpretq_u16_s64): Likewise. 28188 (__arm_vreinterpretq_u16_s8): Likewise. 28189 (__arm_vreinterpretq_u16_u32): Likewise. 28190 (__arm_vreinterpretq_u16_u64): Likewise. 28191 (__arm_vreinterpretq_u16_u8): Likewise. 28192 (__arm_vreinterpretq_u32_s16): Likewise. 28193 (__arm_vreinterpretq_u32_s32): Likewise. 28194 (__arm_vreinterpretq_u32_s64): Likewise. 28195 (__arm_vreinterpretq_u32_s8): Likewise. 28196 (__arm_vreinterpretq_u32_u16): Likewise. 28197 (__arm_vreinterpretq_u32_u64): Likewise. 28198 (__arm_vreinterpretq_u32_u8): Likewise. 28199 (__arm_vreinterpretq_u64_s16): Likewise. 28200 (__arm_vreinterpretq_u64_s32): Likewise. 28201 (__arm_vreinterpretq_u64_s64): Likewise. 28202 (__arm_vreinterpretq_u64_s8): Likewise. 28203 (__arm_vreinterpretq_u64_u16): Likewise. 28204 (__arm_vreinterpretq_u64_u32): Likewise. 28205 (__arm_vreinterpretq_u64_u8): Likewise. 28206 (__arm_vreinterpretq_u8_s16): Likewise. 28207 (__arm_vreinterpretq_u8_s32): Likewise. 28208 (__arm_vreinterpretq_u8_s64): Likewise. 28209 (__arm_vreinterpretq_u8_s8): Likewise. 28210 (__arm_vreinterpretq_u8_u16): Likewise. 28211 (__arm_vreinterpretq_u8_u32): Likewise. 28212 (__arm_vreinterpretq_u8_u64): Likewise. 28213 (__arm_vuninitializedq_f16): Likewise. 28214 (__arm_vuninitializedq_f32): Likewise. 28215 (__arm_vreinterpretq_s32_f16): Likewise. 28216 (__arm_vreinterpretq_s32_f32): Likewise. 28217 (__arm_vreinterpretq_s16_f16): Likewise. 28218 (__arm_vreinterpretq_s16_f32): Likewise. 28219 (__arm_vreinterpretq_s64_f16): Likewise. 28220 (__arm_vreinterpretq_s64_f32): Likewise. 28221 (__arm_vreinterpretq_s8_f16): Likewise. 28222 (__arm_vreinterpretq_s8_f32): Likewise. 28223 (__arm_vreinterpretq_u16_f16): Likewise. 28224 (__arm_vreinterpretq_u16_f32): Likewise. 28225 (__arm_vreinterpretq_u32_f16): Likewise. 28226 (__arm_vreinterpretq_u32_f32): Likewise. 28227 (__arm_vreinterpretq_u64_f16): Likewise. 28228 (__arm_vreinterpretq_u64_f32): Likewise. 28229 (__arm_vreinterpretq_u8_f16): Likewise. 28230 (__arm_vreinterpretq_u8_f32): Likewise. 28231 (__arm_vreinterpretq_f16_f32): Likewise. 28232 (__arm_vreinterpretq_f16_s16): Likewise. 28233 (__arm_vreinterpretq_f16_s32): Likewise. 28234 (__arm_vreinterpretq_f16_s64): Likewise. 28235 (__arm_vreinterpretq_f16_s8): Likewise. 28236 (__arm_vreinterpretq_f16_u16): Likewise. 28237 (__arm_vreinterpretq_f16_u32): Likewise. 28238 (__arm_vreinterpretq_f16_u64): Likewise. 28239 (__arm_vreinterpretq_f16_u8): Likewise. 28240 (__arm_vreinterpretq_f32_f16): Likewise. 28241 (__arm_vreinterpretq_f32_s16): Likewise. 28242 (__arm_vreinterpretq_f32_s32): Likewise. 28243 (__arm_vreinterpretq_f32_s64): Likewise. 28244 (__arm_vreinterpretq_f32_s8): Likewise. 28245 (__arm_vreinterpretq_f32_u16): Likewise. 28246 (__arm_vreinterpretq_f32_u32): Likewise. 28247 (__arm_vreinterpretq_f32_u64): Likewise. 28248 (__arm_vreinterpretq_f32_u8): Likewise. 28249 (vuninitializedq): Define polymorphic variant. 28250 (vreinterpretq_f16): Likewise. 28251 (vreinterpretq_f32): Likewise. 28252 (vreinterpretq_s16): Likewise. 28253 (vreinterpretq_s32): Likewise. 28254 (vreinterpretq_s64): Likewise. 28255 (vreinterpretq_s8): Likewise. 28256 (vreinterpretq_u16): Likewise. 28257 (vreinterpretq_u32): Likewise. 28258 (vreinterpretq_u64): Likewise. 28259 (vreinterpretq_u8): Likewise. 28260 282612020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28262 Andre Vieira <andre.simoesdiasvieira@arm.com> 28263 Mihail Ionescu <mihail.ionescu@arm.com> 28264 28265 * config/arm/arm_mve.h (vaddq_s8): Define macro. 28266 (vaddq_s16): Likewise. 28267 (vaddq_s32): Likewise. 28268 (vaddq_u8): Likewise. 28269 (vaddq_u16): Likewise. 28270 (vaddq_u32): Likewise. 28271 (vaddq_f16): Likewise. 28272 (vaddq_f32): Likewise. 28273 (__arm_vaddq_s8): Define intrinsic. 28274 (__arm_vaddq_s16): Likewise. 28275 (__arm_vaddq_s32): Likewise. 28276 (__arm_vaddq_u8): Likewise. 28277 (__arm_vaddq_u16): Likewise. 28278 (__arm_vaddq_u32): Likewise. 28279 (__arm_vaddq_f16): Likewise. 28280 (__arm_vaddq_f32): Likewise. 28281 (vaddq): Define polymorphic variant. 28282 * config/arm/iterators.md (VNIM): Define mode iterator for common types 28283 Neon, IWMMXT and MVE. 28284 (VNINOTM): Likewise. 28285 * config/arm/mve.md (mve_vaddq<mode>): Define RTL pattern. 28286 (mve_vaddq_f<mode>): Define RTL pattern. 28287 * config/arm/neon.md (add<mode>3): Rename to addv4hf3 RTL pattern. 28288 (addv8hf3_neon): Define RTL pattern. 28289 * config/arm/vec-common.md (add<mode>3): Modify standard add RTL pattern 28290 to support MVE. 28291 (addv8hf3): Define standard RTL pattern for MVE and Neon. 28292 (add<mode>3): Modify existing standard add RTL pattern for Neon and IWMMXT. 28293 282942020-03-20 Martin Liska <mliska@suse.cz> 28295 28296 PR ipa/94232 28297 * ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously 28298 build_ref_for_offset function was used and it transforms off to bytes 28299 from bits. 28300 283012020-03-20 Richard Biener <rguenther@suse.de> 28302 28303 PR tree-optimization/94266 28304 * gimple-ssa-sprintf.c (get_origin_and_offset): Use the 28305 type of the underlying object to adjust for the containing 28306 field if available. 28307 283082020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com> 28309 28310 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Rename this to ... 28311 (VUNSPEC_GET_FPSCR): ... this, and move it to vunspec. 28312 * config/arm/vfp.md: (get_fpscr, set_fpscr): Revert to old patterns. 28313 283142020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com> 28315 28316 * config/arm/mve.md (mve_mov<mode>): Fix R->R case. 28317 283182020-03-20 Jakub Jelinek <jakub@redhat.com> 28319 28320 PR tree-optimization/94224 28321 * gimple-ssa-store-merging.c 28322 (imm_store_chain_info::coalesce_immediate): Don't consider overlapping 28323 or adjacent INTEGER_CST rhs_code stores as mergeable if they have 28324 different lp_nr. 28325 283262020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com> 28327 28328 * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve. 28329 283302020-03-19 Jan Hubicka <hubicka@ucw.cz> 28331 28332 PR ipa/94202 28333 * cgraph.c (cgraph_node::function_symbol): Fix availability computation. 28334 (cgraph_node::function_or_virtual_thunk_symbol): Likewise. 28335 283362020-03-19 Jan Hubicka <hubicka@ucw.cz> 28337 28338 PR ipa/92372 28339 * cgraphunit.c (process_function_and_variable_attributes): warn 28340 for flatten attribute on alias. 28341 * ipa-inline.c (ipa_inline): Do not ICE on flatten attribute on alias. 28342 283432020-03-19 Martin Liska <mliska@suse.cz> 28344 28345 * lto-section-in.c: Add ext_symtab. 28346 * lto-streamer-out.c (write_symbol_extension_info): New. 28347 (produce_symtab_extension): New. 28348 (produce_asm_for_decls): Stream also produce_symtab_extension. 28349 * lto-streamer.h (enum lto_section_type): New section. 28350 283512020-03-19 Jakub Jelinek <jakub@redhat.com> 28352 28353 PR tree-optimization/94211 28354 * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq 28355 instead of estimate_num_insns for bb_seq (middle_bb). Rename 28356 emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust 28357 all uses. 28358 283592020-03-19 Richard Biener <rguenther@suse.de> 28360 28361 PR ipa/94217 28362 * ipa-cp.c (ipa_get_jf_ancestor_result): Avoid build_fold_addr_expr 28363 and build_ref_for_offset. 28364 283652020-03-19 Richard Biener <rguenther@suse.de> 28366 28367 PR middle-end/94216 28368 * fold-const.c (fold_binary_loc): Avoid using 28369 build_fold_addr_expr when we really want an ADDR_EXPR. 28370 283712020-03-18 Segher Boessenkool <segher@kernel.crashing.org> 28372 28373 * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented 28374 aliases for "wa". 28375 283762020-03-12 Richard Sandiford <richard.sandiford@arm.com> 28377 28378 PR rtl-optimization/90275 28379 * cse.c (cse_insn): Delete no-op register moves too. 28380 283812020-03-18 Martin Sebor <msebor@redhat.com> 28382 28383 PR ipa/92799 28384 * cgraphunit.c (process_function_and_variable_attributes): Also 28385 complain about weakref function definitions and drop all effects 28386 of the attribute. 28387 283882020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 28389 Mihail Ionescu <mihail.ionescu@arm.com> 28390 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28391 28392 * config/arm/arm_mve.h (vstrdq_scatter_base_p_s64): Define macro. 28393 (vstrdq_scatter_base_p_u64): Likewise. 28394 (vstrdq_scatter_base_s64): Likewise. 28395 (vstrdq_scatter_base_u64): Likewise. 28396 (vstrdq_scatter_offset_p_s64): Likewise. 28397 (vstrdq_scatter_offset_p_u64): Likewise. 28398 (vstrdq_scatter_offset_s64): Likewise. 28399 (vstrdq_scatter_offset_u64): Likewise. 28400 (vstrdq_scatter_shifted_offset_p_s64): Likewise. 28401 (vstrdq_scatter_shifted_offset_p_u64): Likewise. 28402 (vstrdq_scatter_shifted_offset_s64): Likewise. 28403 (vstrdq_scatter_shifted_offset_u64): Likewise. 28404 (vstrhq_scatter_offset_f16): Likewise. 28405 (vstrhq_scatter_offset_p_f16): Likewise. 28406 (vstrhq_scatter_shifted_offset_f16): Likewise. 28407 (vstrhq_scatter_shifted_offset_p_f16): Likewise. 28408 (vstrwq_scatter_base_f32): Likewise. 28409 (vstrwq_scatter_base_p_f32): Likewise. 28410 (vstrwq_scatter_offset_f32): Likewise. 28411 (vstrwq_scatter_offset_p_f32): Likewise. 28412 (vstrwq_scatter_offset_p_s32): Likewise. 28413 (vstrwq_scatter_offset_p_u32): Likewise. 28414 (vstrwq_scatter_offset_s32): Likewise. 28415 (vstrwq_scatter_offset_u32): Likewise. 28416 (vstrwq_scatter_shifted_offset_f32): Likewise. 28417 (vstrwq_scatter_shifted_offset_p_f32): Likewise. 28418 (vstrwq_scatter_shifted_offset_p_s32): Likewise. 28419 (vstrwq_scatter_shifted_offset_p_u32): Likewise. 28420 (vstrwq_scatter_shifted_offset_s32): Likewise. 28421 (vstrwq_scatter_shifted_offset_u32): Likewise. 28422 (__arm_vstrdq_scatter_base_p_s64): Define intrinsic. 28423 (__arm_vstrdq_scatter_base_p_u64): Likewise. 28424 (__arm_vstrdq_scatter_base_s64): Likewise. 28425 (__arm_vstrdq_scatter_base_u64): Likewise. 28426 (__arm_vstrdq_scatter_offset_p_s64): Likewise. 28427 (__arm_vstrdq_scatter_offset_p_u64): Likewise. 28428 (__arm_vstrdq_scatter_offset_s64): Likewise. 28429 (__arm_vstrdq_scatter_offset_u64): Likewise. 28430 (__arm_vstrdq_scatter_shifted_offset_p_s64): Likewise. 28431 (__arm_vstrdq_scatter_shifted_offset_p_u64): Likewise. 28432 (__arm_vstrdq_scatter_shifted_offset_s64): Likewise. 28433 (__arm_vstrdq_scatter_shifted_offset_u64): Likewise. 28434 (__arm_vstrwq_scatter_offset_p_s32): Likewise. 28435 (__arm_vstrwq_scatter_offset_p_u32): Likewise. 28436 (__arm_vstrwq_scatter_offset_s32): Likewise. 28437 (__arm_vstrwq_scatter_offset_u32): Likewise. 28438 (__arm_vstrwq_scatter_shifted_offset_p_s32): Likewise. 28439 (__arm_vstrwq_scatter_shifted_offset_p_u32): Likewise. 28440 (__arm_vstrwq_scatter_shifted_offset_s32): Likewise. 28441 (__arm_vstrwq_scatter_shifted_offset_u32): Likewise. 28442 (__arm_vstrhq_scatter_offset_f16): Likewise. 28443 (__arm_vstrhq_scatter_offset_p_f16): Likewise. 28444 (__arm_vstrhq_scatter_shifted_offset_f16): Likewise. 28445 (__arm_vstrhq_scatter_shifted_offset_p_f16): Likewise. 28446 (__arm_vstrwq_scatter_base_f32): Likewise. 28447 (__arm_vstrwq_scatter_base_p_f32): Likewise. 28448 (__arm_vstrwq_scatter_offset_f32): Likewise. 28449 (__arm_vstrwq_scatter_offset_p_f32): Likewise. 28450 (__arm_vstrwq_scatter_shifted_offset_f32): Likewise. 28451 (__arm_vstrwq_scatter_shifted_offset_p_f32): Likewise. 28452 (vstrhq_scatter_offset): Define polymorphic variant. 28453 (vstrhq_scatter_offset_p): Likewise. 28454 (vstrhq_scatter_shifted_offset): Likewise. 28455 (vstrhq_scatter_shifted_offset_p): Likewise. 28456 (vstrwq_scatter_base): Likewise. 28457 (vstrwq_scatter_base_p): Likewise. 28458 (vstrwq_scatter_offset): Likewise. 28459 (vstrwq_scatter_offset_p): Likewise. 28460 (vstrwq_scatter_shifted_offset): Likewise. 28461 (vstrwq_scatter_shifted_offset_p): Likewise. 28462 (vstrdq_scatter_base_p): Likewise. 28463 (vstrdq_scatter_base): Likewise. 28464 (vstrdq_scatter_offset_p): Likewise. 28465 (vstrdq_scatter_offset): Likewise. 28466 (vstrdq_scatter_shifted_offset_p): Likewise. 28467 (vstrdq_scatter_shifted_offset): Likewise. 28468 * config/arm/arm_mve_builtins.def (STRSBS): Use builtin qualifier. 28469 (STRSBS_P): Likewise. 28470 (STRSBU): Likewise. 28471 (STRSBU_P): Likewise. 28472 (STRSS): Likewise. 28473 (STRSS_P): Likewise. 28474 (STRSU): Likewise. 28475 (STRSU_P): Likewise. 28476 * config/arm/constraints.md (Ri): Define. 28477 * config/arm/mve.md (VSTRDSBQ): Define iterator. 28478 (VSTRDSOQ): Likewise. 28479 (VSTRDSSOQ): Likewise. 28480 (VSTRWSOQ): Likewise. 28481 (VSTRWSSOQ): Likewise. 28482 (mve_vstrdq_scatter_base_p_<supf>v2di): Define RTL pattern. 28483 (mve_vstrdq_scatter_base_<supf>v2di): Likewise. 28484 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise. 28485 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise. 28486 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise. 28487 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise. 28488 (mve_vstrhq_scatter_offset_fv8hf): Likewise. 28489 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise. 28490 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise. 28491 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise. 28492 (mve_vstrwq_scatter_base_fv4sf): Likewise. 28493 (mve_vstrwq_scatter_base_p_fv4sf): Likewise. 28494 (mve_vstrwq_scatter_offset_fv4sf): Likewise. 28495 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise. 28496 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise. 28497 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise. 28498 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise. 28499 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise. 28500 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise. 28501 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise. 28502 * config/arm/predicates.md (Ri): Define predicate to check immediate 28503 is the range +/-1016 and multiple of 8. 28504 285052020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 28506 Mihail Ionescu <mihail.ionescu@arm.com> 28507 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28508 28509 * config/arm/arm_mve.h (vst1q_f32): Define macro. 28510 (vst1q_f16): Likewise. 28511 (vst1q_s8): Likewise. 28512 (vst1q_s32): Likewise. 28513 (vst1q_s16): Likewise. 28514 (vst1q_u8): Likewise. 28515 (vst1q_u32): Likewise. 28516 (vst1q_u16): Likewise. 28517 (vstrhq_f16): Likewise. 28518 (vstrhq_scatter_offset_s32): Likewise. 28519 (vstrhq_scatter_offset_s16): Likewise. 28520 (vstrhq_scatter_offset_u32): Likewise. 28521 (vstrhq_scatter_offset_u16): Likewise. 28522 (vstrhq_scatter_offset_p_s32): Likewise. 28523 (vstrhq_scatter_offset_p_s16): Likewise. 28524 (vstrhq_scatter_offset_p_u32): Likewise. 28525 (vstrhq_scatter_offset_p_u16): Likewise. 28526 (vstrhq_scatter_shifted_offset_s32): Likewise. 28527 (vstrhq_scatter_shifted_offset_s16): Likewise. 28528 (vstrhq_scatter_shifted_offset_u32): Likewise. 28529 (vstrhq_scatter_shifted_offset_u16): Likewise. 28530 (vstrhq_scatter_shifted_offset_p_s32): Likewise. 28531 (vstrhq_scatter_shifted_offset_p_s16): Likewise. 28532 (vstrhq_scatter_shifted_offset_p_u32): Likewise. 28533 (vstrhq_scatter_shifted_offset_p_u16): Likewise. 28534 (vstrhq_s32): Likewise. 28535 (vstrhq_s16): Likewise. 28536 (vstrhq_u32): Likewise. 28537 (vstrhq_u16): Likewise. 28538 (vstrhq_p_f16): Likewise. 28539 (vstrhq_p_s32): Likewise. 28540 (vstrhq_p_s16): Likewise. 28541 (vstrhq_p_u32): Likewise. 28542 (vstrhq_p_u16): Likewise. 28543 (vstrwq_f32): Likewise. 28544 (vstrwq_s32): Likewise. 28545 (vstrwq_u32): Likewise. 28546 (vstrwq_p_f32): Likewise. 28547 (vstrwq_p_s32): Likewise. 28548 (vstrwq_p_u32): Likewise. 28549 (__arm_vst1q_s8): Define intrinsic. 28550 (__arm_vst1q_s32): Likewise. 28551 (__arm_vst1q_s16): Likewise. 28552 (__arm_vst1q_u8): Likewise. 28553 (__arm_vst1q_u32): Likewise. 28554 (__arm_vst1q_u16): Likewise. 28555 (__arm_vstrhq_scatter_offset_s32): Likewise. 28556 (__arm_vstrhq_scatter_offset_s16): Likewise. 28557 (__arm_vstrhq_scatter_offset_u32): Likewise. 28558 (__arm_vstrhq_scatter_offset_u16): Likewise. 28559 (__arm_vstrhq_scatter_offset_p_s32): Likewise. 28560 (__arm_vstrhq_scatter_offset_p_s16): Likewise. 28561 (__arm_vstrhq_scatter_offset_p_u32): Likewise. 28562 (__arm_vstrhq_scatter_offset_p_u16): Likewise. 28563 (__arm_vstrhq_scatter_shifted_offset_s32): Likewise. 28564 (__arm_vstrhq_scatter_shifted_offset_s16): Likewise. 28565 (__arm_vstrhq_scatter_shifted_offset_u32): Likewise. 28566 (__arm_vstrhq_scatter_shifted_offset_u16): Likewise. 28567 (__arm_vstrhq_scatter_shifted_offset_p_s32): Likewise. 28568 (__arm_vstrhq_scatter_shifted_offset_p_s16): Likewise. 28569 (__arm_vstrhq_scatter_shifted_offset_p_u32): Likewise. 28570 (__arm_vstrhq_scatter_shifted_offset_p_u16): Likewise. 28571 (__arm_vstrhq_s32): Likewise. 28572 (__arm_vstrhq_s16): Likewise. 28573 (__arm_vstrhq_u32): Likewise. 28574 (__arm_vstrhq_u16): Likewise. 28575 (__arm_vstrhq_p_s32): Likewise. 28576 (__arm_vstrhq_p_s16): Likewise. 28577 (__arm_vstrhq_p_u32): Likewise. 28578 (__arm_vstrhq_p_u16): Likewise. 28579 (__arm_vstrwq_s32): Likewise. 28580 (__arm_vstrwq_u32): Likewise. 28581 (__arm_vstrwq_p_s32): Likewise. 28582 (__arm_vstrwq_p_u32): Likewise. 28583 (__arm_vstrwq_p_f32): Likewise. 28584 (__arm_vstrwq_f32): Likewise. 28585 (__arm_vst1q_f32): Likewise. 28586 (__arm_vst1q_f16): Likewise. 28587 (__arm_vstrhq_f16): Likewise. 28588 (__arm_vstrhq_p_f16): Likewise. 28589 (vst1q): Define polymorphic variant. 28590 (vstrhq): Likewise. 28591 (vstrhq_p): Likewise. 28592 (vstrhq_scatter_offset_p): Likewise. 28593 (vstrhq_scatter_offset): Likewise. 28594 (vstrhq_scatter_shifted_offset_p): Likewise. 28595 (vstrhq_scatter_shifted_offset): Likewise. 28596 (vstrwq_p): Likewise. 28597 (vstrwq): Likewise. 28598 * config/arm/arm_mve_builtins.def (STRS): Use builtin qualifier. 28599 (STRS_P): Likewise. 28600 (STRSS): Likewise. 28601 (STRSS_P): Likewise. 28602 (STRSU): Likewise. 28603 (STRSU_P): Likewise. 28604 (STRU): Likewise. 28605 (STRU_P): Likewise. 28606 * config/arm/mve.md (VST1Q): Define iterator. 28607 (VSTRHSOQ): Likewise. 28608 (VSTRHSSOQ): Likewise. 28609 (VSTRHQ): Likewise. 28610 (VSTRWQ): Likewise. 28611 (mve_vstrhq_fv8hf): Define RTL pattern. 28612 (mve_vstrhq_p_fv8hf): Likewise. 28613 (mve_vstrhq_p_<supf><mode>): Likewise. 28614 (mve_vstrhq_scatter_offset_p_<supf><mode>): Likewise. 28615 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise. 28616 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise. 28617 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise. 28618 (mve_vstrhq_<supf><mode>): Likewise. 28619 (mve_vstrwq_fv4sf): Likewise. 28620 (mve_vstrwq_p_fv4sf): Likewise. 28621 (mve_vstrwq_p_<supf>v4si): Likewise. 28622 (mve_vstrwq_<supf>v4si): Likewise. 28623 (mve_vst1q_f<mode>): Define expand. 28624 (mve_vst1q_<supf><mode>): Likewise. 28625 286262020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 28627 Mihail Ionescu <mihail.ionescu@arm.com> 28628 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28629 28630 * config/arm/arm_mve.h (vld1q_s8): Define macro. 28631 (vld1q_s32): Likewise. 28632 (vld1q_s16): Likewise. 28633 (vld1q_u8): Likewise. 28634 (vld1q_u32): Likewise. 28635 (vld1q_u16): Likewise. 28636 (vldrhq_gather_offset_s32): Likewise. 28637 (vldrhq_gather_offset_s16): Likewise. 28638 (vldrhq_gather_offset_u32): Likewise. 28639 (vldrhq_gather_offset_u16): Likewise. 28640 (vldrhq_gather_offset_z_s32): Likewise. 28641 (vldrhq_gather_offset_z_s16): Likewise. 28642 (vldrhq_gather_offset_z_u32): Likewise. 28643 (vldrhq_gather_offset_z_u16): Likewise. 28644 (vldrhq_gather_shifted_offset_s32): Likewise. 28645 (vldrhq_gather_shifted_offset_s16): Likewise. 28646 (vldrhq_gather_shifted_offset_u32): Likewise. 28647 (vldrhq_gather_shifted_offset_u16): Likewise. 28648 (vldrhq_gather_shifted_offset_z_s32): Likewise. 28649 (vldrhq_gather_shifted_offset_z_s16): Likewise. 28650 (vldrhq_gather_shifted_offset_z_u32): Likewise. 28651 (vldrhq_gather_shifted_offset_z_u16): Likewise. 28652 (vldrhq_s32): Likewise. 28653 (vldrhq_s16): Likewise. 28654 (vldrhq_u32): Likewise. 28655 (vldrhq_u16): Likewise. 28656 (vldrhq_z_s32): Likewise. 28657 (vldrhq_z_s16): Likewise. 28658 (vldrhq_z_u32): Likewise. 28659 (vldrhq_z_u16): Likewise. 28660 (vldrwq_s32): Likewise. 28661 (vldrwq_u32): Likewise. 28662 (vldrwq_z_s32): Likewise. 28663 (vldrwq_z_u32): Likewise. 28664 (vld1q_f32): Likewise. 28665 (vld1q_f16): Likewise. 28666 (vldrhq_f16): Likewise. 28667 (vldrhq_z_f16): Likewise. 28668 (vldrwq_f32): Likewise. 28669 (vldrwq_z_f32): Likewise. 28670 (__arm_vld1q_s8): Define intrinsic. 28671 (__arm_vld1q_s32): Likewise. 28672 (__arm_vld1q_s16): Likewise. 28673 (__arm_vld1q_u8): Likewise. 28674 (__arm_vld1q_u32): Likewise. 28675 (__arm_vld1q_u16): Likewise. 28676 (__arm_vldrhq_gather_offset_s32): Likewise. 28677 (__arm_vldrhq_gather_offset_s16): Likewise. 28678 (__arm_vldrhq_gather_offset_u32): Likewise. 28679 (__arm_vldrhq_gather_offset_u16): Likewise. 28680 (__arm_vldrhq_gather_offset_z_s32): Likewise. 28681 (__arm_vldrhq_gather_offset_z_s16): Likewise. 28682 (__arm_vldrhq_gather_offset_z_u32): Likewise. 28683 (__arm_vldrhq_gather_offset_z_u16): Likewise. 28684 (__arm_vldrhq_gather_shifted_offset_s32): Likewise. 28685 (__arm_vldrhq_gather_shifted_offset_s16): Likewise. 28686 (__arm_vldrhq_gather_shifted_offset_u32): Likewise. 28687 (__arm_vldrhq_gather_shifted_offset_u16): Likewise. 28688 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise. 28689 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise. 28690 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise. 28691 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise. 28692 (__arm_vldrhq_s32): Likewise. 28693 (__arm_vldrhq_s16): Likewise. 28694 (__arm_vldrhq_u32): Likewise. 28695 (__arm_vldrhq_u16): Likewise. 28696 (__arm_vldrhq_z_s32): Likewise. 28697 (__arm_vldrhq_z_s16): Likewise. 28698 (__arm_vldrhq_z_u32): Likewise. 28699 (__arm_vldrhq_z_u16): Likewise. 28700 (__arm_vldrwq_s32): Likewise. 28701 (__arm_vldrwq_u32): Likewise. 28702 (__arm_vldrwq_z_s32): Likewise. 28703 (__arm_vldrwq_z_u32): Likewise. 28704 (__arm_vld1q_f32): Likewise. 28705 (__arm_vld1q_f16): Likewise. 28706 (__arm_vldrwq_f32): Likewise. 28707 (__arm_vldrwq_z_f32): Likewise. 28708 (__arm_vldrhq_z_f16): Likewise. 28709 (__arm_vldrhq_f16): Likewise. 28710 (vld1q): Define polymorphic variant. 28711 (vldrhq_gather_offset): Likewise. 28712 (vldrhq_gather_offset_z): Likewise. 28713 (vldrhq_gather_shifted_offset): Likewise. 28714 (vldrhq_gather_shifted_offset_z): Likewise. 28715 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier. 28716 (LDRS): Likewise. 28717 (LDRU_Z): Likewise. 28718 (LDRS_Z): Likewise. 28719 (LDRGU_Z): Likewise. 28720 (LDRGU): Likewise. 28721 (LDRGS_Z): Likewise. 28722 (LDRGS): Likewise. 28723 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator. 28724 (V_sz_elem1): Likewise. 28725 (VLD1Q): Define iterator. 28726 (VLDRHGOQ): Likewise. 28727 (VLDRHGSOQ): Likewise. 28728 (VLDRHQ): Likewise. 28729 (VLDRWQ): Likewise. 28730 (mve_vldrhq_fv8hf): Define RTL pattern. 28731 (mve_vldrhq_gather_offset_<supf><mode>): Likewise. 28732 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise. 28733 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise. 28734 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise. 28735 (mve_vldrhq_<supf><mode>): Likewise. 28736 (mve_vldrhq_z_fv8hf): Likewise. 28737 (mve_vldrhq_z_<supf><mode>): Likewise. 28738 (mve_vldrwq_fv4sf): Likewise. 28739 (mve_vldrwq_<supf>v4si): Likewise. 28740 (mve_vldrwq_z_fv4sf): Likewise. 28741 (mve_vldrwq_z_<supf>v4si): Likewise. 28742 (mve_vld1q_f<mode>): Define RTL expand pattern. 28743 (mve_vld1q_<supf><mode>): Likewise. 28744 287452020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 28746 Mihail Ionescu <mihail.ionescu@arm.com> 28747 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28748 28749 * config/arm/arm_mve.h (vld1q_s8): Define macro. 28750 (vld1q_s32): Likewise. 28751 (vld1q_s16): Likewise. 28752 (vld1q_u8): Likewise. 28753 (vld1q_u32): Likewise. 28754 (vld1q_u16): Likewise. 28755 (vldrhq_gather_offset_s32): Likewise. 28756 (vldrhq_gather_offset_s16): Likewise. 28757 (vldrhq_gather_offset_u32): Likewise. 28758 (vldrhq_gather_offset_u16): Likewise. 28759 (vldrhq_gather_offset_z_s32): Likewise. 28760 (vldrhq_gather_offset_z_s16): Likewise. 28761 (vldrhq_gather_offset_z_u32): Likewise. 28762 (vldrhq_gather_offset_z_u16): Likewise. 28763 (vldrhq_gather_shifted_offset_s32): Likewise. 28764 (vldrhq_gather_shifted_offset_s16): Likewise. 28765 (vldrhq_gather_shifted_offset_u32): Likewise. 28766 (vldrhq_gather_shifted_offset_u16): Likewise. 28767 (vldrhq_gather_shifted_offset_z_s32): Likewise. 28768 (vldrhq_gather_shifted_offset_z_s16): Likewise. 28769 (vldrhq_gather_shifted_offset_z_u32): Likewise. 28770 (vldrhq_gather_shifted_offset_z_u16): Likewise. 28771 (vldrhq_s32): Likewise. 28772 (vldrhq_s16): Likewise. 28773 (vldrhq_u32): Likewise. 28774 (vldrhq_u16): Likewise. 28775 (vldrhq_z_s32): Likewise. 28776 (vldrhq_z_s16): Likewise. 28777 (vldrhq_z_u32): Likewise. 28778 (vldrhq_z_u16): Likewise. 28779 (vldrwq_s32): Likewise. 28780 (vldrwq_u32): Likewise. 28781 (vldrwq_z_s32): Likewise. 28782 (vldrwq_z_u32): Likewise. 28783 (vld1q_f32): Likewise. 28784 (vld1q_f16): Likewise. 28785 (vldrhq_f16): Likewise. 28786 (vldrhq_z_f16): Likewise. 28787 (vldrwq_f32): Likewise. 28788 (vldrwq_z_f32): Likewise. 28789 (__arm_vld1q_s8): Define intrinsic. 28790 (__arm_vld1q_s32): Likewise. 28791 (__arm_vld1q_s16): Likewise. 28792 (__arm_vld1q_u8): Likewise. 28793 (__arm_vld1q_u32): Likewise. 28794 (__arm_vld1q_u16): Likewise. 28795 (__arm_vldrhq_gather_offset_s32): Likewise. 28796 (__arm_vldrhq_gather_offset_s16): Likewise. 28797 (__arm_vldrhq_gather_offset_u32): Likewise. 28798 (__arm_vldrhq_gather_offset_u16): Likewise. 28799 (__arm_vldrhq_gather_offset_z_s32): Likewise. 28800 (__arm_vldrhq_gather_offset_z_s16): Likewise. 28801 (__arm_vldrhq_gather_offset_z_u32): Likewise. 28802 (__arm_vldrhq_gather_offset_z_u16): Likewise. 28803 (__arm_vldrhq_gather_shifted_offset_s32): Likewise. 28804 (__arm_vldrhq_gather_shifted_offset_s16): Likewise. 28805 (__arm_vldrhq_gather_shifted_offset_u32): Likewise. 28806 (__arm_vldrhq_gather_shifted_offset_u16): Likewise. 28807 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise. 28808 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise. 28809 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise. 28810 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise. 28811 (__arm_vldrhq_s32): Likewise. 28812 (__arm_vldrhq_s16): Likewise. 28813 (__arm_vldrhq_u32): Likewise. 28814 (__arm_vldrhq_u16): Likewise. 28815 (__arm_vldrhq_z_s32): Likewise. 28816 (__arm_vldrhq_z_s16): Likewise. 28817 (__arm_vldrhq_z_u32): Likewise. 28818 (__arm_vldrhq_z_u16): Likewise. 28819 (__arm_vldrwq_s32): Likewise. 28820 (__arm_vldrwq_u32): Likewise. 28821 (__arm_vldrwq_z_s32): Likewise. 28822 (__arm_vldrwq_z_u32): Likewise. 28823 (__arm_vld1q_f32): Likewise. 28824 (__arm_vld1q_f16): Likewise. 28825 (__arm_vldrwq_f32): Likewise. 28826 (__arm_vldrwq_z_f32): Likewise. 28827 (__arm_vldrhq_z_f16): Likewise. 28828 (__arm_vldrhq_f16): Likewise. 28829 (vld1q): Define polymorphic variant. 28830 (vldrhq_gather_offset): Likewise. 28831 (vldrhq_gather_offset_z): Likewise. 28832 (vldrhq_gather_shifted_offset): Likewise. 28833 (vldrhq_gather_shifted_offset_z): Likewise. 28834 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier. 28835 (LDRS): Likewise. 28836 (LDRU_Z): Likewise. 28837 (LDRS_Z): Likewise. 28838 (LDRGU_Z): Likewise. 28839 (LDRGU): Likewise. 28840 (LDRGS_Z): Likewise. 28841 (LDRGS): Likewise. 28842 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator. 28843 (V_sz_elem1): Likewise. 28844 (VLD1Q): Define iterator. 28845 (VLDRHGOQ): Likewise. 28846 (VLDRHGSOQ): Likewise. 28847 (VLDRHQ): Likewise. 28848 (VLDRWQ): Likewise. 28849 (mve_vldrhq_fv8hf): Define RTL pattern. 28850 (mve_vldrhq_gather_offset_<supf><mode>): Likewise. 28851 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise. 28852 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise. 28853 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise. 28854 (mve_vldrhq_<supf><mode>): Likewise. 28855 (mve_vldrhq_z_fv8hf): Likewise. 28856 (mve_vldrhq_z_<supf><mode>): Likewise. 28857 (mve_vldrwq_fv4sf): Likewise. 28858 (mve_vldrwq_<supf>v4si): Likewise. 28859 (mve_vldrwq_z_fv4sf): Likewise. 28860 (mve_vldrwq_z_<supf>v4si): Likewise. 28861 (mve_vld1q_f<mode>): Define RTL expand pattern. 28862 (mve_vld1q_<supf><mode>): Likewise. 28863 288642020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 28865 Mihail Ionescu <mihail.ionescu@arm.com> 28866 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28867 28868 * config/arm/arm-builtins.c (LDRGBS_Z_QUALIFIERS): Define builtin 28869 qualifier. 28870 (LDRGBU_Z_QUALIFIERS): Likewise. 28871 (LDRGS_Z_QUALIFIERS): Likewise. 28872 (LDRGU_Z_QUALIFIERS): Likewise. 28873 (LDRS_Z_QUALIFIERS): Likewise. 28874 (LDRU_Z_QUALIFIERS): Likewise. 28875 * config/arm/arm_mve.h (vldrbq_gather_offset_z_s16): Define macro. 28876 (vldrbq_gather_offset_z_u8): Likewise. 28877 (vldrbq_gather_offset_z_s32): Likewise. 28878 (vldrbq_gather_offset_z_u16): Likewise. 28879 (vldrbq_gather_offset_z_u32): Likewise. 28880 (vldrbq_gather_offset_z_s8): Likewise. 28881 (vldrbq_z_s16): Likewise. 28882 (vldrbq_z_u8): Likewise. 28883 (vldrbq_z_s8): Likewise. 28884 (vldrbq_z_s32): Likewise. 28885 (vldrbq_z_u16): Likewise. 28886 (vldrbq_z_u32): Likewise. 28887 (vldrwq_gather_base_z_u32): Likewise. 28888 (vldrwq_gather_base_z_s32): Likewise. 28889 (__arm_vldrbq_gather_offset_z_s8): Define intrinsic. 28890 (__arm_vldrbq_gather_offset_z_s32): Likewise. 28891 (__arm_vldrbq_gather_offset_z_s16): Likewise. 28892 (__arm_vldrbq_gather_offset_z_u8): Likewise. 28893 (__arm_vldrbq_gather_offset_z_u32): Likewise. 28894 (__arm_vldrbq_gather_offset_z_u16): Likewise. 28895 (__arm_vldrbq_z_s8): Likewise. 28896 (__arm_vldrbq_z_s32): Likewise. 28897 (__arm_vldrbq_z_s16): Likewise. 28898 (__arm_vldrbq_z_u8): Likewise. 28899 (__arm_vldrbq_z_u32): Likewise. 28900 (__arm_vldrbq_z_u16): Likewise. 28901 (__arm_vldrwq_gather_base_z_s32): Likewise. 28902 (__arm_vldrwq_gather_base_z_u32): Likewise. 28903 (vldrbq_gather_offset_z): Define polymorphic variant. 28904 * config/arm/arm_mve_builtins.def (LDRGBS_Z_QUALIFIERS): Use builtin 28905 qualifier. 28906 (LDRGBU_Z_QUALIFIERS): Likewise. 28907 (LDRGS_Z_QUALIFIERS): Likewise. 28908 (LDRGU_Z_QUALIFIERS): Likewise. 28909 (LDRS_Z_QUALIFIERS): Likewise. 28910 (LDRU_Z_QUALIFIERS): Likewise. 28911 * config/arm/mve.md (mve_vldrbq_gather_offset_z_<supf><mode>): Define 28912 RTL pattern. 28913 (mve_vldrbq_z_<supf><mode>): Likewise. 28914 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise. 28915 289162020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 28917 Mihail Ionescu <mihail.ionescu@arm.com> 28918 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28919 28920 * config/arm/arm-builtins.c (STRS_P_QUALIFIERS): Define builtin 28921 qualifier. 28922 (STRU_P_QUALIFIERS): Likewise. 28923 (STRSU_P_QUALIFIERS): Likewise. 28924 (STRSS_P_QUALIFIERS): Likewise. 28925 (STRSBS_P_QUALIFIERS): Likewise. 28926 (STRSBU_P_QUALIFIERS): Likewise. 28927 * config/arm/arm_mve.h (vstrbq_p_s8): Define macro. 28928 (vstrbq_p_s32): Likewise. 28929 (vstrbq_p_s16): Likewise. 28930 (vstrbq_p_u8): Likewise. 28931 (vstrbq_p_u32): Likewise. 28932 (vstrbq_p_u16): Likewise. 28933 (vstrbq_scatter_offset_p_s8): Likewise. 28934 (vstrbq_scatter_offset_p_s32): Likewise. 28935 (vstrbq_scatter_offset_p_s16): Likewise. 28936 (vstrbq_scatter_offset_p_u8): Likewise. 28937 (vstrbq_scatter_offset_p_u32): Likewise. 28938 (vstrbq_scatter_offset_p_u16): Likewise. 28939 (vstrwq_scatter_base_p_s32): Likewise. 28940 (vstrwq_scatter_base_p_u32): Likewise. 28941 (__arm_vstrbq_p_s8): Define intrinsic. 28942 (__arm_vstrbq_p_s32): Likewise. 28943 (__arm_vstrbq_p_s16): Likewise. 28944 (__arm_vstrbq_p_u8): Likewise. 28945 (__arm_vstrbq_p_u32): Likewise. 28946 (__arm_vstrbq_p_u16): Likewise. 28947 (__arm_vstrbq_scatter_offset_p_s8): Likewise. 28948 (__arm_vstrbq_scatter_offset_p_s32): Likewise. 28949 (__arm_vstrbq_scatter_offset_p_s16): Likewise. 28950 (__arm_vstrbq_scatter_offset_p_u8): Likewise. 28951 (__arm_vstrbq_scatter_offset_p_u32): Likewise. 28952 (__arm_vstrbq_scatter_offset_p_u16): Likewise. 28953 (__arm_vstrwq_scatter_base_p_s32): Likewise. 28954 (__arm_vstrwq_scatter_base_p_u32): Likewise. 28955 (vstrbq_p): Define polymorphic variant. 28956 (vstrbq_scatter_offset_p): Likewise. 28957 (vstrwq_scatter_base_p): Likewise. 28958 * config/arm/arm_mve_builtins.def (STRS_P_QUALIFIERS): Use builtin 28959 qualifier. 28960 (STRU_P_QUALIFIERS): Likewise. 28961 (STRSU_P_QUALIFIERS): Likewise. 28962 (STRSS_P_QUALIFIERS): Likewise. 28963 (STRSBS_P_QUALIFIERS): Likewise. 28964 (STRSBU_P_QUALIFIERS): Likewise. 28965 * config/arm/mve.md (mve_vstrbq_scatter_offset_p_<supf><mode>): Define 28966 RTL pattern. 28967 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise. 28968 (mve_vstrbq_p_<supf><mode>): Likewise. 28969 289702020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 28971 Mihail Ionescu <mihail.ionescu@arm.com> 28972 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 28973 28974 * config/arm/arm-builtins.c (LDRGU_QUALIFIERS): Define builtin 28975 qualifier. 28976 (LDRGS_QUALIFIERS): Likewise. 28977 (LDRS_QUALIFIERS): Likewise. 28978 (LDRU_QUALIFIERS): Likewise. 28979 (LDRGBS_QUALIFIERS): Likewise. 28980 (LDRGBU_QUALIFIERS): Likewise. 28981 * config/arm/arm_mve.h (vldrbq_gather_offset_u8): Define macro. 28982 (vldrbq_gather_offset_s8): Likewise. 28983 (vldrbq_s8): Likewise. 28984 (vldrbq_u8): Likewise. 28985 (vldrbq_gather_offset_u16): Likewise. 28986 (vldrbq_gather_offset_s16): Likewise. 28987 (vldrbq_s16): Likewise. 28988 (vldrbq_u16): Likewise. 28989 (vldrbq_gather_offset_u32): Likewise. 28990 (vldrbq_gather_offset_s32): Likewise. 28991 (vldrbq_s32): Likewise. 28992 (vldrbq_u32): Likewise. 28993 (vldrwq_gather_base_s32): Likewise. 28994 (vldrwq_gather_base_u32): Likewise. 28995 (__arm_vldrbq_gather_offset_u8): Define intrinsic. 28996 (__arm_vldrbq_gather_offset_s8): Likewise. 28997 (__arm_vldrbq_s8): Likewise. 28998 (__arm_vldrbq_u8): Likewise. 28999 (__arm_vldrbq_gather_offset_u16): Likewise. 29000 (__arm_vldrbq_gather_offset_s16): Likewise. 29001 (__arm_vldrbq_s16): Likewise. 29002 (__arm_vldrbq_u16): Likewise. 29003 (__arm_vldrbq_gather_offset_u32): Likewise. 29004 (__arm_vldrbq_gather_offset_s32): Likewise. 29005 (__arm_vldrbq_s32): Likewise. 29006 (__arm_vldrbq_u32): Likewise. 29007 (__arm_vldrwq_gather_base_s32): Likewise. 29008 (__arm_vldrwq_gather_base_u32): Likewise. 29009 (vldrbq_gather_offset): Define polymorphic variant. 29010 * config/arm/arm_mve_builtins.def (LDRGU_QUALIFIERS): Use builtin 29011 qualifier. 29012 (LDRGS_QUALIFIERS): Likewise. 29013 (LDRS_QUALIFIERS): Likewise. 29014 (LDRU_QUALIFIERS): Likewise. 29015 (LDRGBS_QUALIFIERS): Likewise. 29016 (LDRGBU_QUALIFIERS): Likewise. 29017 * config/arm/mve.md (VLDRBGOQ): Define iterator. 29018 (VLDRBQ): Likewise. 29019 (VLDRWGBQ): Likewise. 29020 (mve_vldrbq_gather_offset_<supf><mode>): Define RTL pattern. 29021 (mve_vldrbq_<supf><mode>): Likewise. 29022 (mve_vldrwq_gather_base_<supf>v4si): Likewise. 29023 290242020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 29025 Mihail Ionescu <mihail.ionescu@arm.com> 29026 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 29027 29028 * config/arm/arm-builtins.c (STRS_QUALIFIERS): Define builtin qualifier. 29029 (STRU_QUALIFIERS): Likewise. 29030 (STRSS_QUALIFIERS): Likewise. 29031 (STRSU_QUALIFIERS): Likewise. 29032 (STRSBS_QUALIFIERS): Likewise. 29033 (STRSBU_QUALIFIERS): Likewise. 29034 * config/arm/arm_mve.h (vstrbq_s8): Define macro. 29035 (vstrbq_u8): Likewise. 29036 (vstrbq_u16): Likewise. 29037 (vstrbq_scatter_offset_s8): Likewise. 29038 (vstrbq_scatter_offset_u8): Likewise. 29039 (vstrbq_scatter_offset_u16): Likewise. 29040 (vstrbq_s16): Likewise. 29041 (vstrbq_u32): Likewise. 29042 (vstrbq_scatter_offset_s16): Likewise. 29043 (vstrbq_scatter_offset_u32): Likewise. 29044 (vstrbq_s32): Likewise. 29045 (vstrbq_scatter_offset_s32): Likewise. 29046 (vstrwq_scatter_base_s32): Likewise. 29047 (vstrwq_scatter_base_u32): Likewise. 29048 (__arm_vstrbq_scatter_offset_s8): Define intrinsic. 29049 (__arm_vstrbq_scatter_offset_s32): Likewise. 29050 (__arm_vstrbq_scatter_offset_s16): Likewise. 29051 (__arm_vstrbq_scatter_offset_u8): Likewise. 29052 (__arm_vstrbq_scatter_offset_u32): Likewise. 29053 (__arm_vstrbq_scatter_offset_u16): Likewise. 29054 (__arm_vstrbq_s8): Likewise. 29055 (__arm_vstrbq_s32): Likewise. 29056 (__arm_vstrbq_s16): Likewise. 29057 (__arm_vstrbq_u8): Likewise. 29058 (__arm_vstrbq_u32): Likewise. 29059 (__arm_vstrbq_u16): Likewise. 29060 (__arm_vstrwq_scatter_base_s32): Likewise. 29061 (__arm_vstrwq_scatter_base_u32): Likewise. 29062 (vstrbq): Define polymorphic variant. 29063 (vstrbq_scatter_offset): Likewise. 29064 (vstrwq_scatter_base): Likewise. 29065 * config/arm/arm_mve_builtins.def (STRS_QUALIFIERS): Use builtin 29066 qualifier. 29067 (STRU_QUALIFIERS): Likewise. 29068 (STRSS_QUALIFIERS): Likewise. 29069 (STRSU_QUALIFIERS): Likewise. 29070 (STRSBS_QUALIFIERS): Likewise. 29071 (STRSBU_QUALIFIERS): Likewise. 29072 * config/arm/mve.md (MVE_B_ELEM): Define mode attribute iterator. 29073 (VSTRWSBQ): Define iterators. 29074 (VSTRBSOQ): Likewise. 29075 (VSTRBQ): Likewise. 29076 (mve_vstrbq_<supf><mode>): Define RTL pattern. 29077 (mve_vstrbq_scatter_offset_<supf><mode>): Likewise. 29078 (mve_vstrwq_scatter_base_<supf>v4si): Likewise. 29079 290802020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 29081 Mihail Ionescu <mihail.ionescu@arm.com> 29082 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 29083 29084 * config/arm/arm_mve.h (vabdq_m_f32): Define macro. 29085 (vabdq_m_f16): Likewise. 29086 (vaddq_m_f32): Likewise. 29087 (vaddq_m_f16): Likewise. 29088 (vaddq_m_n_f32): Likewise. 29089 (vaddq_m_n_f16): Likewise. 29090 (vandq_m_f32): Likewise. 29091 (vandq_m_f16): Likewise. 29092 (vbicq_m_f32): Likewise. 29093 (vbicq_m_f16): Likewise. 29094 (vbrsrq_m_n_f32): Likewise. 29095 (vbrsrq_m_n_f16): Likewise. 29096 (vcaddq_rot270_m_f32): Likewise. 29097 (vcaddq_rot270_m_f16): Likewise. 29098 (vcaddq_rot90_m_f32): Likewise. 29099 (vcaddq_rot90_m_f16): Likewise. 29100 (vcmlaq_m_f32): Likewise. 29101 (vcmlaq_m_f16): Likewise. 29102 (vcmlaq_rot180_m_f32): Likewise. 29103 (vcmlaq_rot180_m_f16): Likewise. 29104 (vcmlaq_rot270_m_f32): Likewise. 29105 (vcmlaq_rot270_m_f16): Likewise. 29106 (vcmlaq_rot90_m_f32): Likewise. 29107 (vcmlaq_rot90_m_f16): Likewise. 29108 (vcmulq_m_f32): Likewise. 29109 (vcmulq_m_f16): Likewise. 29110 (vcmulq_rot180_m_f32): Likewise. 29111 (vcmulq_rot180_m_f16): Likewise. 29112 (vcmulq_rot270_m_f32): Likewise. 29113 (vcmulq_rot270_m_f16): Likewise. 29114 (vcmulq_rot90_m_f32): Likewise. 29115 (vcmulq_rot90_m_f16): Likewise. 29116 (vcvtq_m_n_s32_f32): Likewise. 29117 (vcvtq_m_n_s16_f16): Likewise. 29118 (vcvtq_m_n_u32_f32): Likewise. 29119 (vcvtq_m_n_u16_f16): Likewise. 29120 (veorq_m_f32): Likewise. 29121 (veorq_m_f16): Likewise. 29122 (vfmaq_m_f32): Likewise. 29123 (vfmaq_m_f16): Likewise. 29124 (vfmaq_m_n_f32): Likewise. 29125 (vfmaq_m_n_f16): Likewise. 29126 (vfmasq_m_n_f32): Likewise. 29127 (vfmasq_m_n_f16): Likewise. 29128 (vfmsq_m_f32): Likewise. 29129 (vfmsq_m_f16): Likewise. 29130 (vmaxnmq_m_f32): Likewise. 29131 (vmaxnmq_m_f16): Likewise. 29132 (vminnmq_m_f32): Likewise. 29133 (vminnmq_m_f16): Likewise. 29134 (vmulq_m_f32): Likewise. 29135 (vmulq_m_f16): Likewise. 29136 (vmulq_m_n_f32): Likewise. 29137 (vmulq_m_n_f16): Likewise. 29138 (vornq_m_f32): Likewise. 29139 (vornq_m_f16): Likewise. 29140 (vorrq_m_f32): Likewise. 29141 (vorrq_m_f16): Likewise. 29142 (vsubq_m_f32): Likewise. 29143 (vsubq_m_f16): Likewise. 29144 (vsubq_m_n_f32): Likewise. 29145 (vsubq_m_n_f16): Likewise. 29146 (__attribute__): Likewise. 29147 (__arm_vabdq_m_f32): Likewise. 29148 (__arm_vabdq_m_f16): Likewise. 29149 (__arm_vaddq_m_f32): Likewise. 29150 (__arm_vaddq_m_f16): Likewise. 29151 (__arm_vaddq_m_n_f32): Likewise. 29152 (__arm_vaddq_m_n_f16): Likewise. 29153 (__arm_vandq_m_f32): Likewise. 29154 (__arm_vandq_m_f16): Likewise. 29155 (__arm_vbicq_m_f32): Likewise. 29156 (__arm_vbicq_m_f16): Likewise. 29157 (__arm_vbrsrq_m_n_f32): Likewise. 29158 (__arm_vbrsrq_m_n_f16): Likewise. 29159 (__arm_vcaddq_rot270_m_f32): Likewise. 29160 (__arm_vcaddq_rot270_m_f16): Likewise. 29161 (__arm_vcaddq_rot90_m_f32): Likewise. 29162 (__arm_vcaddq_rot90_m_f16): Likewise. 29163 (__arm_vcmlaq_m_f32): Likewise. 29164 (__arm_vcmlaq_m_f16): Likewise. 29165 (__arm_vcmlaq_rot180_m_f32): Likewise. 29166 (__arm_vcmlaq_rot180_m_f16): Likewise. 29167 (__arm_vcmlaq_rot270_m_f32): Likewise. 29168 (__arm_vcmlaq_rot270_m_f16): Likewise. 29169 (__arm_vcmlaq_rot90_m_f32): Likewise. 29170 (__arm_vcmlaq_rot90_m_f16): Likewise. 29171 (__arm_vcmulq_m_f32): Likewise. 29172 (__arm_vcmulq_m_f16): Likewise. 29173 (__arm_vcmulq_rot180_m_f32): Define intrinsic. 29174 (__arm_vcmulq_rot180_m_f16): Likewise. 29175 (__arm_vcmulq_rot270_m_f32): Likewise. 29176 (__arm_vcmulq_rot270_m_f16): Likewise. 29177 (__arm_vcmulq_rot90_m_f32): Likewise. 29178 (__arm_vcmulq_rot90_m_f16): Likewise. 29179 (__arm_vcvtq_m_n_s32_f32): Likewise. 29180 (__arm_vcvtq_m_n_s16_f16): Likewise. 29181 (__arm_vcvtq_m_n_u32_f32): Likewise. 29182 (__arm_vcvtq_m_n_u16_f16): Likewise. 29183 (__arm_veorq_m_f32): Likewise. 29184 (__arm_veorq_m_f16): Likewise. 29185 (__arm_vfmaq_m_f32): Likewise. 29186 (__arm_vfmaq_m_f16): Likewise. 29187 (__arm_vfmaq_m_n_f32): Likewise. 29188 (__arm_vfmaq_m_n_f16): Likewise. 29189 (__arm_vfmasq_m_n_f32): Likewise. 29190 (__arm_vfmasq_m_n_f16): Likewise. 29191 (__arm_vfmsq_m_f32): Likewise. 29192 (__arm_vfmsq_m_f16): Likewise. 29193 (__arm_vmaxnmq_m_f32): Likewise. 29194 (__arm_vmaxnmq_m_f16): Likewise. 29195 (__arm_vminnmq_m_f32): Likewise. 29196 (__arm_vminnmq_m_f16): Likewise. 29197 (__arm_vmulq_m_f32): Likewise. 29198 (__arm_vmulq_m_f16): Likewise. 29199 (__arm_vmulq_m_n_f32): Likewise. 29200 (__arm_vmulq_m_n_f16): Likewise. 29201 (__arm_vornq_m_f32): Likewise. 29202 (__arm_vornq_m_f16): Likewise. 29203 (__arm_vorrq_m_f32): Likewise. 29204 (__arm_vorrq_m_f16): Likewise. 29205 (__arm_vsubq_m_f32): Likewise. 29206 (__arm_vsubq_m_f16): Likewise. 29207 (__arm_vsubq_m_n_f32): Likewise. 29208 (__arm_vsubq_m_n_f16): Likewise. 29209 (vabdq_m): Define polymorphic variant. 29210 (vaddq_m): Likewise. 29211 (vaddq_m_n): Likewise. 29212 (vandq_m): Likewise. 29213 (vbicq_m): Likewise. 29214 (vbrsrq_m_n): Likewise. 29215 (vcaddq_rot270_m): Likewise. 29216 (vcaddq_rot90_m): Likewise. 29217 (vcmlaq_m): Likewise. 29218 (vcmlaq_rot180_m): Likewise. 29219 (vcmlaq_rot270_m): Likewise. 29220 (vcmlaq_rot90_m): Likewise. 29221 (vcmulq_m): Likewise. 29222 (vcmulq_rot180_m): Likewise. 29223 (vcmulq_rot270_m): Likewise. 29224 (vcmulq_rot90_m): Likewise. 29225 (veorq_m): Likewise. 29226 (vfmaq_m): Likewise. 29227 (vfmaq_m_n): Likewise. 29228 (vfmasq_m_n): Likewise. 29229 (vfmsq_m): Likewise. 29230 (vmaxnmq_m): Likewise. 29231 (vminnmq_m): Likewise. 29232 (vmulq_m): Likewise. 29233 (vmulq_m_n): Likewise. 29234 (vornq_m): Likewise. 29235 (vsubq_m): Likewise. 29236 (vsubq_m_n): Likewise. 29237 (vorrq_m): Likewise. 29238 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use 29239 builtin qualifier. 29240 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise. 29241 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise. 29242 * config/arm/mve.md (mve_vabdq_m_f<mode>): Define RTL pattern. 29243 (mve_vaddq_m_f<mode>): Likewise. 29244 (mve_vaddq_m_n_f<mode>): Likewise. 29245 (mve_vandq_m_f<mode>): Likewise. 29246 (mve_vbicq_m_f<mode>): Likewise. 29247 (mve_vbrsrq_m_n_f<mode>): Likewise. 29248 (mve_vcaddq_rot270_m_f<mode>): Likewise. 29249 (mve_vcaddq_rot90_m_f<mode>): Likewise. 29250 (mve_vcmlaq_m_f<mode>): Likewise. 29251 (mve_vcmlaq_rot180_m_f<mode>): Likewise. 29252 (mve_vcmlaq_rot270_m_f<mode>): Likewise. 29253 (mve_vcmlaq_rot90_m_f<mode>): Likewise. 29254 (mve_vcmulq_m_f<mode>): Likewise. 29255 (mve_vcmulq_rot180_m_f<mode>): Likewise. 29256 (mve_vcmulq_rot270_m_f<mode>): Likewise. 29257 (mve_vcmulq_rot90_m_f<mode>): Likewise. 29258 (mve_veorq_m_f<mode>): Likewise. 29259 (mve_vfmaq_m_f<mode>): Likewise. 29260 (mve_vfmaq_m_n_f<mode>): Likewise. 29261 (mve_vfmasq_m_n_f<mode>): Likewise. 29262 (mve_vfmsq_m_f<mode>): Likewise. 29263 (mve_vmaxnmq_m_f<mode>): Likewise. 29264 (mve_vminnmq_m_f<mode>): Likewise. 29265 (mve_vmulq_m_f<mode>): Likewise. 29266 (mve_vmulq_m_n_f<mode>): Likewise. 29267 (mve_vornq_m_f<mode>): Likewise. 29268 (mve_vorrq_m_f<mode>): Likewise. 29269 (mve_vsubq_m_f<mode>): Likewise. 29270 (mve_vsubq_m_n_f<mode>): Likewise. 29271 292722020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 29273 Mihail Ionescu <mihail.ionescu@arm.com> 29274 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 29275 29276 * config/arm/arm-protos.h (arm_mve_immediate_check): 29277 * config/arm/arm.c (arm_mve_immediate_check): Define fuction to check 29278 mode and interger value. 29279 * config/arm/arm_mve.h (vmlaldavaq_p_s32): Define macro. 29280 (vmlaldavaq_p_s16): Likewise. 29281 (vmlaldavaq_p_u32): Likewise. 29282 (vmlaldavaq_p_u16): Likewise. 29283 (vmlaldavaxq_p_s32): Likewise. 29284 (vmlaldavaxq_p_s16): Likewise. 29285 (vmlaldavaxq_p_u32): Likewise. 29286 (vmlaldavaxq_p_u16): Likewise. 29287 (vmlsldavaq_p_s32): Likewise. 29288 (vmlsldavaq_p_s16): Likewise. 29289 (vmlsldavaxq_p_s32): Likewise. 29290 (vmlsldavaxq_p_s16): Likewise. 29291 (vmullbq_poly_m_p8): Likewise. 29292 (vmullbq_poly_m_p16): Likewise. 29293 (vmulltq_poly_m_p8): Likewise. 29294 (vmulltq_poly_m_p16): Likewise. 29295 (vqdmullbq_m_n_s32): Likewise. 29296 (vqdmullbq_m_n_s16): Likewise. 29297 (vqdmullbq_m_s32): Likewise. 29298 (vqdmullbq_m_s16): Likewise. 29299 (vqdmulltq_m_n_s32): Likewise. 29300 (vqdmulltq_m_n_s16): Likewise. 29301 (vqdmulltq_m_s32): Likewise. 29302 (vqdmulltq_m_s16): Likewise. 29303 (vqrshrnbq_m_n_s32): Likewise. 29304 (vqrshrnbq_m_n_s16): Likewise. 29305 (vqrshrnbq_m_n_u32): Likewise. 29306 (vqrshrnbq_m_n_u16): Likewise. 29307 (vqrshrntq_m_n_s32): Likewise. 29308 (vqrshrntq_m_n_s16): Likewise. 29309 (vqrshrntq_m_n_u32): Likewise. 29310 (vqrshrntq_m_n_u16): Likewise. 29311 (vqrshrunbq_m_n_s32): Likewise. 29312 (vqrshrunbq_m_n_s16): Likewise. 29313 (vqrshruntq_m_n_s32): Likewise. 29314 (vqrshruntq_m_n_s16): Likewise. 29315 (vqshrnbq_m_n_s32): Likewise. 29316 (vqshrnbq_m_n_s16): Likewise. 29317 (vqshrnbq_m_n_u32): Likewise. 29318 (vqshrnbq_m_n_u16): Likewise. 29319 (vqshrntq_m_n_s32): Likewise. 29320 (vqshrntq_m_n_s16): Likewise. 29321 (vqshrntq_m_n_u32): Likewise. 29322 (vqshrntq_m_n_u16): Likewise. 29323 (vqshrunbq_m_n_s32): Likewise. 29324 (vqshrunbq_m_n_s16): Likewise. 29325 (vqshruntq_m_n_s32): Likewise. 29326 (vqshruntq_m_n_s16): Likewise. 29327 (vrmlaldavhaq_p_s32): Likewise. 29328 (vrmlaldavhaq_p_u32): Likewise. 29329 (vrmlaldavhaxq_p_s32): Likewise. 29330 (vrmlsldavhaq_p_s32): Likewise. 29331 (vrmlsldavhaxq_p_s32): Likewise. 29332 (vrshrnbq_m_n_s32): Likewise. 29333 (vrshrnbq_m_n_s16): Likewise. 29334 (vrshrnbq_m_n_u32): Likewise. 29335 (vrshrnbq_m_n_u16): Likewise. 29336 (vrshrntq_m_n_s32): Likewise. 29337 (vrshrntq_m_n_s16): Likewise. 29338 (vrshrntq_m_n_u32): Likewise. 29339 (vrshrntq_m_n_u16): Likewise. 29340 (vshllbq_m_n_s8): Likewise. 29341 (vshllbq_m_n_s16): Likewise. 29342 (vshllbq_m_n_u8): Likewise. 29343 (vshllbq_m_n_u16): Likewise. 29344 (vshlltq_m_n_s8): Likewise. 29345 (vshlltq_m_n_s16): Likewise. 29346 (vshlltq_m_n_u8): Likewise. 29347 (vshlltq_m_n_u16): Likewise. 29348 (vshrnbq_m_n_s32): Likewise. 29349 (vshrnbq_m_n_s16): Likewise. 29350 (vshrnbq_m_n_u32): Likewise. 29351 (vshrnbq_m_n_u16): Likewise. 29352 (vshrntq_m_n_s32): Likewise. 29353 (vshrntq_m_n_s16): Likewise. 29354 (vshrntq_m_n_u32): Likewise. 29355 (vshrntq_m_n_u16): Likewise. 29356 (__arm_vmlaldavaq_p_s32): Define intrinsic. 29357 (__arm_vmlaldavaq_p_s16): Likewise. 29358 (__arm_vmlaldavaq_p_u32): Likewise. 29359 (__arm_vmlaldavaq_p_u16): Likewise. 29360 (__arm_vmlaldavaxq_p_s32): Likewise. 29361 (__arm_vmlaldavaxq_p_s16): Likewise. 29362 (__arm_vmlaldavaxq_p_u32): Likewise. 29363 (__arm_vmlaldavaxq_p_u16): Likewise. 29364 (__arm_vmlsldavaq_p_s32): Likewise. 29365 (__arm_vmlsldavaq_p_s16): Likewise. 29366 (__arm_vmlsldavaxq_p_s32): Likewise. 29367 (__arm_vmlsldavaxq_p_s16): Likewise. 29368 (__arm_vmullbq_poly_m_p8): Likewise. 29369 (__arm_vmullbq_poly_m_p16): Likewise. 29370 (__arm_vmulltq_poly_m_p8): Likewise. 29371 (__arm_vmulltq_poly_m_p16): Likewise. 29372 (__arm_vqdmullbq_m_n_s32): Likewise. 29373 (__arm_vqdmullbq_m_n_s16): Likewise. 29374 (__arm_vqdmullbq_m_s32): Likewise. 29375 (__arm_vqdmullbq_m_s16): Likewise. 29376 (__arm_vqdmulltq_m_n_s32): Likewise. 29377 (__arm_vqdmulltq_m_n_s16): Likewise. 29378 (__arm_vqdmulltq_m_s32): Likewise. 29379 (__arm_vqdmulltq_m_s16): Likewise. 29380 (__arm_vqrshrnbq_m_n_s32): Likewise. 29381 (__arm_vqrshrnbq_m_n_s16): Likewise. 29382 (__arm_vqrshrnbq_m_n_u32): Likewise. 29383 (__arm_vqrshrnbq_m_n_u16): Likewise. 29384 (__arm_vqrshrntq_m_n_s32): Likewise. 29385 (__arm_vqrshrntq_m_n_s16): Likewise. 29386 (__arm_vqrshrntq_m_n_u32): Likewise. 29387 (__arm_vqrshrntq_m_n_u16): Likewise. 29388 (__arm_vqrshrunbq_m_n_s32): Likewise. 29389 (__arm_vqrshrunbq_m_n_s16): Likewise. 29390 (__arm_vqrshruntq_m_n_s32): Likewise. 29391 (__arm_vqrshruntq_m_n_s16): Likewise. 29392 (__arm_vqshrnbq_m_n_s32): Likewise. 29393 (__arm_vqshrnbq_m_n_s16): Likewise. 29394 (__arm_vqshrnbq_m_n_u32): Likewise. 29395 (__arm_vqshrnbq_m_n_u16): Likewise. 29396 (__arm_vqshrntq_m_n_s32): Likewise. 29397 (__arm_vqshrntq_m_n_s16): Likewise. 29398 (__arm_vqshrntq_m_n_u32): Likewise. 29399 (__arm_vqshrntq_m_n_u16): Likewise. 29400 (__arm_vqshrunbq_m_n_s32): Likewise. 29401 (__arm_vqshrunbq_m_n_s16): Likewise. 29402 (__arm_vqshruntq_m_n_s32): Likewise. 29403 (__arm_vqshruntq_m_n_s16): Likewise. 29404 (__arm_vrmlaldavhaq_p_s32): Likewise. 29405 (__arm_vrmlaldavhaq_p_u32): Likewise. 29406 (__arm_vrmlaldavhaxq_p_s32): Likewise. 29407 (__arm_vrmlsldavhaq_p_s32): Likewise. 29408 (__arm_vrmlsldavhaxq_p_s32): Likewise. 29409 (__arm_vrshrnbq_m_n_s32): Likewise. 29410 (__arm_vrshrnbq_m_n_s16): Likewise. 29411 (__arm_vrshrnbq_m_n_u32): Likewise. 29412 (__arm_vrshrnbq_m_n_u16): Likewise. 29413 (__arm_vrshrntq_m_n_s32): Likewise. 29414 (__arm_vrshrntq_m_n_s16): Likewise. 29415 (__arm_vrshrntq_m_n_u32): Likewise. 29416 (__arm_vrshrntq_m_n_u16): Likewise. 29417 (__arm_vshllbq_m_n_s8): Likewise. 29418 (__arm_vshllbq_m_n_s16): Likewise. 29419 (__arm_vshllbq_m_n_u8): Likewise. 29420 (__arm_vshllbq_m_n_u16): Likewise. 29421 (__arm_vshlltq_m_n_s8): Likewise. 29422 (__arm_vshlltq_m_n_s16): Likewise. 29423 (__arm_vshlltq_m_n_u8): Likewise. 29424 (__arm_vshlltq_m_n_u16): Likewise. 29425 (__arm_vshrnbq_m_n_s32): Likewise. 29426 (__arm_vshrnbq_m_n_s16): Likewise. 29427 (__arm_vshrnbq_m_n_u32): Likewise. 29428 (__arm_vshrnbq_m_n_u16): Likewise. 29429 (__arm_vshrntq_m_n_s32): Likewise. 29430 (__arm_vshrntq_m_n_s16): Likewise. 29431 (__arm_vshrntq_m_n_u32): Likewise. 29432 (__arm_vshrntq_m_n_u16): Likewise. 29433 (vmullbq_poly_m): Define polymorphic variant. 29434 (vmulltq_poly_m): Likewise. 29435 (vshllbq_m): Likewise. 29436 (vshrntq_m_n): Likewise. 29437 (vshrnbq_m_n): Likewise. 29438 (vshlltq_m_n): Likewise. 29439 (vshllbq_m_n): Likewise. 29440 (vrshrntq_m_n): Likewise. 29441 (vrshrnbq_m_n): Likewise. 29442 (vqshruntq_m_n): Likewise. 29443 (vqshrunbq_m_n): Likewise. 29444 (vqdmullbq_m_n): Likewise. 29445 (vqdmullbq_m): Likewise. 29446 (vqdmulltq_m_n): Likewise. 29447 (vqdmulltq_m): Likewise. 29448 (vqrshrnbq_m_n): Likewise. 29449 (vqrshrntq_m_n): Likewise. 29450 (vqrshrunbq_m_n): Likewise. 29451 (vqrshruntq_m_n): Likewise. 29452 (vqshrnbq_m_n): Likewise. 29453 (vqshrntq_m_n): Likewise. 29454 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use 29455 builtin qualifiers. 29456 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise. 29457 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise. 29458 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise. 29459 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise. 29460 * config/arm/mve.md (VMLALDAVAQ_P): Define iterator. 29461 (VMLALDAVAXQ_P): Likewise. 29462 (VQRSHRNBQ_M_N): Likewise. 29463 (VQRSHRNTQ_M_N): Likewise. 29464 (VQSHRNBQ_M_N): Likewise. 29465 (VQSHRNTQ_M_N): Likewise. 29466 (VRSHRNBQ_M_N): Likewise. 29467 (VRSHRNTQ_M_N): Likewise. 29468 (VSHLLBQ_M_N): Likewise. 29469 (VSHLLTQ_M_N): Likewise. 29470 (VSHRNBQ_M_N): Likewise. 29471 (VSHRNTQ_M_N): Likewise. 29472 (mve_vmlaldavaq_p_<supf><mode>): Define RTL pattern. 29473 (mve_vmlaldavaxq_p_<supf><mode>): Likewise. 29474 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise. 29475 (mve_vqrshrntq_m_n_<supf><mode>): Likewise. 29476 (mve_vqshrnbq_m_n_<supf><mode>): Likewise. 29477 (mve_vqshrntq_m_n_<supf><mode>): Likewise. 29478 (mve_vrmlaldavhaq_p_sv4si): Likewise. 29479 (mve_vrshrnbq_m_n_<supf><mode>): Likewise. 29480 (mve_vrshrntq_m_n_<supf><mode>): Likewise. 29481 (mve_vshllbq_m_n_<supf><mode>): Likewise. 29482 (mve_vshlltq_m_n_<supf><mode>): Likewise. 29483 (mve_vshrnbq_m_n_<supf><mode>): Likewise. 29484 (mve_vshrntq_m_n_<supf><mode>): Likewise. 29485 (mve_vmlsldavaq_p_s<mode>): Likewise. 29486 (mve_vmlsldavaxq_p_s<mode>): Likewise. 29487 (mve_vmullbq_poly_m_p<mode>): Likewise. 29488 (mve_vmulltq_poly_m_p<mode>): Likewise. 29489 (mve_vqdmullbq_m_n_s<mode>): Likewise. 29490 (mve_vqdmullbq_m_s<mode>): Likewise. 29491 (mve_vqdmulltq_m_n_s<mode>): Likewise. 29492 (mve_vqdmulltq_m_s<mode>): Likewise. 29493 (mve_vqrshrunbq_m_n_s<mode>): Likewise. 29494 (mve_vqrshruntq_m_n_s<mode>): Likewise. 29495 (mve_vqshrunbq_m_n_s<mode>): Likewise. 29496 (mve_vqshruntq_m_n_s<mode>): Likewise. 29497 (mve_vrmlaldavhaq_p_uv4si): Likewise. 29498 (mve_vrmlaldavhaxq_p_sv4si): Likewise. 29499 (mve_vrmlsldavhaq_p_sv4si): Likewise. 29500 (mve_vrmlsldavhaxq_p_sv4si): Likewise. 29501 295022020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 29503 Mihail Ionescu <mihail.ionescu@arm.com> 29504 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 29505 29506 * config/arm/arm_mve.h (vabdq_m_s8): Define macro. 29507 (vabdq_m_s32): Likewise. 29508 (vabdq_m_s16): Likewise. 29509 (vabdq_m_u8): Likewise. 29510 (vabdq_m_u32): Likewise. 29511 (vabdq_m_u16): Likewise. 29512 (vaddq_m_n_s8): Likewise. 29513 (vaddq_m_n_s32): Likewise. 29514 (vaddq_m_n_s16): Likewise. 29515 (vaddq_m_n_u8): Likewise. 29516 (vaddq_m_n_u32): Likewise. 29517 (vaddq_m_n_u16): Likewise. 29518 (vaddq_m_s8): Likewise. 29519 (vaddq_m_s32): Likewise. 29520 (vaddq_m_s16): Likewise. 29521 (vaddq_m_u8): Likewise. 29522 (vaddq_m_u32): Likewise. 29523 (vaddq_m_u16): Likewise. 29524 (vandq_m_s8): Likewise. 29525 (vandq_m_s32): Likewise. 29526 (vandq_m_s16): Likewise. 29527 (vandq_m_u8): Likewise. 29528 (vandq_m_u32): Likewise. 29529 (vandq_m_u16): Likewise. 29530 (vbicq_m_s8): Likewise. 29531 (vbicq_m_s32): Likewise. 29532 (vbicq_m_s16): Likewise. 29533 (vbicq_m_u8): Likewise. 29534 (vbicq_m_u32): Likewise. 29535 (vbicq_m_u16): Likewise. 29536 (vbrsrq_m_n_s8): Likewise. 29537 (vbrsrq_m_n_s32): Likewise. 29538 (vbrsrq_m_n_s16): Likewise. 29539 (vbrsrq_m_n_u8): Likewise. 29540 (vbrsrq_m_n_u32): Likewise. 29541 (vbrsrq_m_n_u16): Likewise. 29542 (vcaddq_rot270_m_s8): Likewise. 29543 (vcaddq_rot270_m_s32): Likewise. 29544 (vcaddq_rot270_m_s16): Likewise. 29545 (vcaddq_rot270_m_u8): Likewise. 29546 (vcaddq_rot270_m_u32): Likewise. 29547 (vcaddq_rot270_m_u16): Likewise. 29548 (vcaddq_rot90_m_s8): Likewise. 29549 (vcaddq_rot90_m_s32): Likewise. 29550 (vcaddq_rot90_m_s16): Likewise. 29551 (vcaddq_rot90_m_u8): Likewise. 29552 (vcaddq_rot90_m_u32): Likewise. 29553 (vcaddq_rot90_m_u16): Likewise. 29554 (veorq_m_s8): Likewise. 29555 (veorq_m_s32): Likewise. 29556 (veorq_m_s16): Likewise. 29557 (veorq_m_u8): Likewise. 29558 (veorq_m_u32): Likewise. 29559 (veorq_m_u16): Likewise. 29560 (vhaddq_m_n_s8): Likewise. 29561 (vhaddq_m_n_s32): Likewise. 29562 (vhaddq_m_n_s16): Likewise. 29563 (vhaddq_m_n_u8): Likewise. 29564 (vhaddq_m_n_u32): Likewise. 29565 (vhaddq_m_n_u16): Likewise. 29566 (vhaddq_m_s8): Likewise. 29567 (vhaddq_m_s32): Likewise. 29568 (vhaddq_m_s16): Likewise. 29569 (vhaddq_m_u8): Likewise. 29570 (vhaddq_m_u32): Likewise. 29571 (vhaddq_m_u16): Likewise. 29572 (vhcaddq_rot270_m_s8): Likewise. 29573 (vhcaddq_rot270_m_s32): Likewise. 29574 (vhcaddq_rot270_m_s16): Likewise. 29575 (vhcaddq_rot90_m_s8): Likewise. 29576 (vhcaddq_rot90_m_s32): Likewise. 29577 (vhcaddq_rot90_m_s16): Likewise. 29578 (vhsubq_m_n_s8): Likewise. 29579 (vhsubq_m_n_s32): Likewise. 29580 (vhsubq_m_n_s16): Likewise. 29581 (vhsubq_m_n_u8): Likewise. 29582 (vhsubq_m_n_u32): Likewise. 29583 (vhsubq_m_n_u16): Likewise. 29584 (vhsubq_m_s8): Likewise. 29585 (vhsubq_m_s32): Likewise. 29586 (vhsubq_m_s16): Likewise. 29587 (vhsubq_m_u8): Likewise. 29588 (vhsubq_m_u32): Likewise. 29589 (vhsubq_m_u16): Likewise. 29590 (vmaxq_m_s8): Likewise. 29591 (vmaxq_m_s32): Likewise. 29592 (vmaxq_m_s16): Likewise. 29593 (vmaxq_m_u8): Likewise. 29594 (vmaxq_m_u32): Likewise. 29595 (vmaxq_m_u16): Likewise. 29596 (vminq_m_s8): Likewise. 29597 (vminq_m_s32): Likewise. 29598 (vminq_m_s16): Likewise. 29599 (vminq_m_u8): Likewise. 29600 (vminq_m_u32): Likewise. 29601 (vminq_m_u16): Likewise. 29602 (vmladavaq_p_s8): Likewise. 29603 (vmladavaq_p_s32): Likewise. 29604 (vmladavaq_p_s16): Likewise. 29605 (vmladavaq_p_u8): Likewise. 29606 (vmladavaq_p_u32): Likewise. 29607 (vmladavaq_p_u16): Likewise. 29608 (vmladavaxq_p_s8): Likewise. 29609 (vmladavaxq_p_s32): Likewise. 29610 (vmladavaxq_p_s16): Likewise. 29611 (vmlaq_m_n_s8): Likewise. 29612 (vmlaq_m_n_s32): Likewise. 29613 (vmlaq_m_n_s16): Likewise. 29614 (vmlaq_m_n_u8): Likewise. 29615 (vmlaq_m_n_u32): Likewise. 29616 (vmlaq_m_n_u16): Likewise. 29617 (vmlasq_m_n_s8): Likewise. 29618 (vmlasq_m_n_s32): Likewise. 29619 (vmlasq_m_n_s16): Likewise. 29620 (vmlasq_m_n_u8): Likewise. 29621 (vmlasq_m_n_u32): Likewise. 29622 (vmlasq_m_n_u16): Likewise. 29623 (vmlsdavaq_p_s8): Likewise. 29624 (vmlsdavaq_p_s32): Likewise. 29625 (vmlsdavaq_p_s16): Likewise. 29626 (vmlsdavaxq_p_s8): Likewise. 29627 (vmlsdavaxq_p_s32): Likewise. 29628 (vmlsdavaxq_p_s16): Likewise. 29629 (vmulhq_m_s8): Likewise. 29630 (vmulhq_m_s32): Likewise. 29631 (vmulhq_m_s16): Likewise. 29632 (vmulhq_m_u8): Likewise. 29633 (vmulhq_m_u32): Likewise. 29634 (vmulhq_m_u16): Likewise. 29635 (vmullbq_int_m_s8): Likewise. 29636 (vmullbq_int_m_s32): Likewise. 29637 (vmullbq_int_m_s16): Likewise. 29638 (vmullbq_int_m_u8): Likewise. 29639 (vmullbq_int_m_u32): Likewise. 29640 (vmullbq_int_m_u16): Likewise. 29641 (vmulltq_int_m_s8): Likewise. 29642 (vmulltq_int_m_s32): Likewise. 29643 (vmulltq_int_m_s16): Likewise. 29644 (vmulltq_int_m_u8): Likewise. 29645 (vmulltq_int_m_u32): Likewise. 29646 (vmulltq_int_m_u16): Likewise. 29647 (vmulq_m_n_s8): Likewise. 29648 (vmulq_m_n_s32): Likewise. 29649 (vmulq_m_n_s16): Likewise. 29650 (vmulq_m_n_u8): Likewise. 29651 (vmulq_m_n_u32): Likewise. 29652 (vmulq_m_n_u16): Likewise. 29653 (vmulq_m_s8): Likewise. 29654 (vmulq_m_s32): Likewise. 29655 (vmulq_m_s16): Likewise. 29656 (vmulq_m_u8): Likewise. 29657 (vmulq_m_u32): Likewise. 29658 (vmulq_m_u16): Likewise. 29659 (vornq_m_s8): Likewise. 29660 (vornq_m_s32): Likewise. 29661 (vornq_m_s16): Likewise. 29662 (vornq_m_u8): Likewise. 29663 (vornq_m_u32): Likewise. 29664 (vornq_m_u16): Likewise. 29665 (vorrq_m_s8): Likewise. 29666 (vorrq_m_s32): Likewise. 29667 (vorrq_m_s16): Likewise. 29668 (vorrq_m_u8): Likewise. 29669 (vorrq_m_u32): Likewise. 29670 (vorrq_m_u16): Likewise. 29671 (vqaddq_m_n_s8): Likewise. 29672 (vqaddq_m_n_s32): Likewise. 29673 (vqaddq_m_n_s16): Likewise. 29674 (vqaddq_m_n_u8): Likewise. 29675 (vqaddq_m_n_u32): Likewise. 29676 (vqaddq_m_n_u16): Likewise. 29677 (vqaddq_m_s8): Likewise. 29678 (vqaddq_m_s32): Likewise. 29679 (vqaddq_m_s16): Likewise. 29680 (vqaddq_m_u8): Likewise. 29681 (vqaddq_m_u32): Likewise. 29682 (vqaddq_m_u16): Likewise. 29683 (vqdmladhq_m_s8): Likewise. 29684 (vqdmladhq_m_s32): Likewise. 29685 (vqdmladhq_m_s16): Likewise. 29686 (vqdmladhxq_m_s8): Likewise. 29687 (vqdmladhxq_m_s32): Likewise. 29688 (vqdmladhxq_m_s16): Likewise. 29689 (vqdmlahq_m_n_s8): Likewise. 29690 (vqdmlahq_m_n_s32): Likewise. 29691 (vqdmlahq_m_n_s16): Likewise. 29692 (vqdmlahq_m_n_u8): Likewise. 29693 (vqdmlahq_m_n_u32): Likewise. 29694 (vqdmlahq_m_n_u16): Likewise. 29695 (vqdmlsdhq_m_s8): Likewise. 29696 (vqdmlsdhq_m_s32): Likewise. 29697 (vqdmlsdhq_m_s16): Likewise. 29698 (vqdmlsdhxq_m_s8): Likewise. 29699 (vqdmlsdhxq_m_s32): Likewise. 29700 (vqdmlsdhxq_m_s16): Likewise. 29701 (vqdmulhq_m_n_s8): Likewise. 29702 (vqdmulhq_m_n_s32): Likewise. 29703 (vqdmulhq_m_n_s16): Likewise. 29704 (vqdmulhq_m_s8): Likewise. 29705 (vqdmulhq_m_s32): Likewise. 29706 (vqdmulhq_m_s16): Likewise. 29707 (vqrdmladhq_m_s8): Likewise. 29708 (vqrdmladhq_m_s32): Likewise. 29709 (vqrdmladhq_m_s16): Likewise. 29710 (vqrdmladhxq_m_s8): Likewise. 29711 (vqrdmladhxq_m_s32): Likewise. 29712 (vqrdmladhxq_m_s16): Likewise. 29713 (vqrdmlahq_m_n_s8): Likewise. 29714 (vqrdmlahq_m_n_s32): Likewise. 29715 (vqrdmlahq_m_n_s16): Likewise. 29716 (vqrdmlahq_m_n_u8): Likewise. 29717 (vqrdmlahq_m_n_u32): Likewise. 29718 (vqrdmlahq_m_n_u16): Likewise. 29719 (vqrdmlashq_m_n_s8): Likewise. 29720 (vqrdmlashq_m_n_s32): Likewise. 29721 (vqrdmlashq_m_n_s16): Likewise. 29722 (vqrdmlashq_m_n_u8): Likewise. 29723 (vqrdmlashq_m_n_u32): Likewise. 29724 (vqrdmlashq_m_n_u16): Likewise. 29725 (vqrdmlsdhq_m_s8): Likewise. 29726 (vqrdmlsdhq_m_s32): Likewise. 29727 (vqrdmlsdhq_m_s16): Likewise. 29728 (vqrdmlsdhxq_m_s8): Likewise. 29729 (vqrdmlsdhxq_m_s32): Likewise. 29730 (vqrdmlsdhxq_m_s16): Likewise. 29731 (vqrdmulhq_m_n_s8): Likewise. 29732 (vqrdmulhq_m_n_s32): Likewise. 29733 (vqrdmulhq_m_n_s16): Likewise. 29734 (vqrdmulhq_m_s8): Likewise. 29735 (vqrdmulhq_m_s32): Likewise. 29736 (vqrdmulhq_m_s16): Likewise. 29737 (vqrshlq_m_s8): Likewise. 29738 (vqrshlq_m_s32): Likewise. 29739 (vqrshlq_m_s16): Likewise. 29740 (vqrshlq_m_u8): Likewise. 29741 (vqrshlq_m_u32): Likewise. 29742 (vqrshlq_m_u16): Likewise. 29743 (vqshlq_m_n_s8): Likewise. 29744 (vqshlq_m_n_s32): Likewise. 29745 (vqshlq_m_n_s16): Likewise. 29746 (vqshlq_m_n_u8): Likewise. 29747 (vqshlq_m_n_u32): Likewise. 29748 (vqshlq_m_n_u16): Likewise. 29749 (vqshlq_m_s8): Likewise. 29750 (vqshlq_m_s32): Likewise. 29751 (vqshlq_m_s16): Likewise. 29752 (vqshlq_m_u8): Likewise. 29753 (vqshlq_m_u32): Likewise. 29754 (vqshlq_m_u16): Likewise. 29755 (vqsubq_m_n_s8): Likewise. 29756 (vqsubq_m_n_s32): Likewise. 29757 (vqsubq_m_n_s16): Likewise. 29758 (vqsubq_m_n_u8): Likewise. 29759 (vqsubq_m_n_u32): Likewise. 29760 (vqsubq_m_n_u16): Likewise. 29761 (vqsubq_m_s8): Likewise. 29762 (vqsubq_m_s32): Likewise. 29763 (vqsubq_m_s16): Likewise. 29764 (vqsubq_m_u8): Likewise. 29765 (vqsubq_m_u32): Likewise. 29766 (vqsubq_m_u16): Likewise. 29767 (vrhaddq_m_s8): Likewise. 29768 (vrhaddq_m_s32): Likewise. 29769 (vrhaddq_m_s16): Likewise. 29770 (vrhaddq_m_u8): Likewise. 29771 (vrhaddq_m_u32): Likewise. 29772 (vrhaddq_m_u16): Likewise. 29773 (vrmulhq_m_s8): Likewise. 29774 (vrmulhq_m_s32): Likewise. 29775 (vrmulhq_m_s16): Likewise. 29776 (vrmulhq_m_u8): Likewise. 29777 (vrmulhq_m_u32): Likewise. 29778 (vrmulhq_m_u16): Likewise. 29779 (vrshlq_m_s8): Likewise. 29780 (vrshlq_m_s32): Likewise. 29781 (vrshlq_m_s16): Likewise. 29782 (vrshlq_m_u8): Likewise. 29783 (vrshlq_m_u32): Likewise. 29784 (vrshlq_m_u16): Likewise. 29785 (vrshrq_m_n_s8): Likewise. 29786 (vrshrq_m_n_s32): Likewise. 29787 (vrshrq_m_n_s16): Likewise. 29788 (vrshrq_m_n_u8): Likewise. 29789 (vrshrq_m_n_u32): Likewise. 29790 (vrshrq_m_n_u16): Likewise. 29791 (vshlq_m_n_s8): Likewise. 29792 (vshlq_m_n_s32): Likewise. 29793 (vshlq_m_n_s16): Likewise. 29794 (vshlq_m_n_u8): Likewise. 29795 (vshlq_m_n_u32): Likewise. 29796 (vshlq_m_n_u16): Likewise. 29797 (vshrq_m_n_s8): Likewise. 29798 (vshrq_m_n_s32): Likewise. 29799 (vshrq_m_n_s16): Likewise. 29800 (vshrq_m_n_u8): Likewise. 29801 (vshrq_m_n_u32): Likewise. 29802 (vshrq_m_n_u16): Likewise. 29803 (vsliq_m_n_s8): Likewise. 29804 (vsliq_m_n_s32): Likewise. 29805 (vsliq_m_n_s16): Likewise. 29806 (vsliq_m_n_u8): Likewise. 29807 (vsliq_m_n_u32): Likewise. 29808 (vsliq_m_n_u16): Likewise. 29809 (vsubq_m_n_s8): Likewise. 29810 (vsubq_m_n_s32): Likewise. 29811 (vsubq_m_n_s16): Likewise. 29812 (vsubq_m_n_u8): Likewise. 29813 (vsubq_m_n_u32): Likewise. 29814 (vsubq_m_n_u16): Likewise. 29815 (__arm_vabdq_m_s8): Define intrinsic. 29816 (__arm_vabdq_m_s32): Likewise. 29817 (__arm_vabdq_m_s16): Likewise. 29818 (__arm_vabdq_m_u8): Likewise. 29819 (__arm_vabdq_m_u32): Likewise. 29820 (__arm_vabdq_m_u16): Likewise. 29821 (__arm_vaddq_m_n_s8): Likewise. 29822 (__arm_vaddq_m_n_s32): Likewise. 29823 (__arm_vaddq_m_n_s16): Likewise. 29824 (__arm_vaddq_m_n_u8): Likewise. 29825 (__arm_vaddq_m_n_u32): Likewise. 29826 (__arm_vaddq_m_n_u16): Likewise. 29827 (__arm_vaddq_m_s8): Likewise. 29828 (__arm_vaddq_m_s32): Likewise. 29829 (__arm_vaddq_m_s16): Likewise. 29830 (__arm_vaddq_m_u8): Likewise. 29831 (__arm_vaddq_m_u32): Likewise. 29832 (__arm_vaddq_m_u16): Likewise. 29833 (__arm_vandq_m_s8): Likewise. 29834 (__arm_vandq_m_s32): Likewise. 29835 (__arm_vandq_m_s16): Likewise. 29836 (__arm_vandq_m_u8): Likewise. 29837 (__arm_vandq_m_u32): Likewise. 29838 (__arm_vandq_m_u16): Likewise. 29839 (__arm_vbicq_m_s8): Likewise. 29840 (__arm_vbicq_m_s32): Likewise. 29841 (__arm_vbicq_m_s16): Likewise. 29842 (__arm_vbicq_m_u8): Likewise. 29843 (__arm_vbicq_m_u32): Likewise. 29844 (__arm_vbicq_m_u16): Likewise. 29845 (__arm_vbrsrq_m_n_s8): Likewise. 29846 (__arm_vbrsrq_m_n_s32): Likewise. 29847 (__arm_vbrsrq_m_n_s16): Likewise. 29848 (__arm_vbrsrq_m_n_u8): Likewise. 29849 (__arm_vbrsrq_m_n_u32): Likewise. 29850 (__arm_vbrsrq_m_n_u16): Likewise. 29851 (__arm_vcaddq_rot270_m_s8): Likewise. 29852 (__arm_vcaddq_rot270_m_s32): Likewise. 29853 (__arm_vcaddq_rot270_m_s16): Likewise. 29854 (__arm_vcaddq_rot270_m_u8): Likewise. 29855 (__arm_vcaddq_rot270_m_u32): Likewise. 29856 (__arm_vcaddq_rot270_m_u16): Likewise. 29857 (__arm_vcaddq_rot90_m_s8): Likewise. 29858 (__arm_vcaddq_rot90_m_s32): Likewise. 29859 (__arm_vcaddq_rot90_m_s16): Likewise. 29860 (__arm_vcaddq_rot90_m_u8): Likewise. 29861 (__arm_vcaddq_rot90_m_u32): Likewise. 29862 (__arm_vcaddq_rot90_m_u16): Likewise. 29863 (__arm_veorq_m_s8): Likewise. 29864 (__arm_veorq_m_s32): Likewise. 29865 (__arm_veorq_m_s16): Likewise. 29866 (__arm_veorq_m_u8): Likewise. 29867 (__arm_veorq_m_u32): Likewise. 29868 (__arm_veorq_m_u16): Likewise. 29869 (__arm_vhaddq_m_n_s8): Likewise. 29870 (__arm_vhaddq_m_n_s32): Likewise. 29871 (__arm_vhaddq_m_n_s16): Likewise. 29872 (__arm_vhaddq_m_n_u8): Likewise. 29873 (__arm_vhaddq_m_n_u32): Likewise. 29874 (__arm_vhaddq_m_n_u16): Likewise. 29875 (__arm_vhaddq_m_s8): Likewise. 29876 (__arm_vhaddq_m_s32): Likewise. 29877 (__arm_vhaddq_m_s16): Likewise. 29878 (__arm_vhaddq_m_u8): Likewise. 29879 (__arm_vhaddq_m_u32): Likewise. 29880 (__arm_vhaddq_m_u16): Likewise. 29881 (__arm_vhcaddq_rot270_m_s8): Likewise. 29882 (__arm_vhcaddq_rot270_m_s32): Likewise. 29883 (__arm_vhcaddq_rot270_m_s16): Likewise. 29884 (__arm_vhcaddq_rot90_m_s8): Likewise. 29885 (__arm_vhcaddq_rot90_m_s32): Likewise. 29886 (__arm_vhcaddq_rot90_m_s16): Likewise. 29887 (__arm_vhsubq_m_n_s8): Likewise. 29888 (__arm_vhsubq_m_n_s32): Likewise. 29889 (__arm_vhsubq_m_n_s16): Likewise. 29890 (__arm_vhsubq_m_n_u8): Likewise. 29891 (__arm_vhsubq_m_n_u32): Likewise. 29892 (__arm_vhsubq_m_n_u16): Likewise. 29893 (__arm_vhsubq_m_s8): Likewise. 29894 (__arm_vhsubq_m_s32): Likewise. 29895 (__arm_vhsubq_m_s16): Likewise. 29896 (__arm_vhsubq_m_u8): Likewise. 29897 (__arm_vhsubq_m_u32): Likewise. 29898 (__arm_vhsubq_m_u16): Likewise. 29899 (__arm_vmaxq_m_s8): Likewise. 29900 (__arm_vmaxq_m_s32): Likewise. 29901 (__arm_vmaxq_m_s16): Likewise. 29902 (__arm_vmaxq_m_u8): Likewise. 29903 (__arm_vmaxq_m_u32): Likewise. 29904 (__arm_vmaxq_m_u16): Likewise. 29905 (__arm_vminq_m_s8): Likewise. 29906 (__arm_vminq_m_s32): Likewise. 29907 (__arm_vminq_m_s16): Likewise. 29908 (__arm_vminq_m_u8): Likewise. 29909 (__arm_vminq_m_u32): Likewise. 29910 (__arm_vminq_m_u16): Likewise. 29911 (__arm_vmladavaq_p_s8): Likewise. 29912 (__arm_vmladavaq_p_s32): Likewise. 29913 (__arm_vmladavaq_p_s16): Likewise. 29914 (__arm_vmladavaq_p_u8): Likewise. 29915 (__arm_vmladavaq_p_u32): Likewise. 29916 (__arm_vmladavaq_p_u16): Likewise. 29917 (__arm_vmladavaxq_p_s8): Likewise. 29918 (__arm_vmladavaxq_p_s32): Likewise. 29919 (__arm_vmladavaxq_p_s16): Likewise. 29920 (__arm_vmlaq_m_n_s8): Likewise. 29921 (__arm_vmlaq_m_n_s32): Likewise. 29922 (__arm_vmlaq_m_n_s16): Likewise. 29923 (__arm_vmlaq_m_n_u8): Likewise. 29924 (__arm_vmlaq_m_n_u32): Likewise. 29925 (__arm_vmlaq_m_n_u16): Likewise. 29926 (__arm_vmlasq_m_n_s8): Likewise. 29927 (__arm_vmlasq_m_n_s32): Likewise. 29928 (__arm_vmlasq_m_n_s16): Likewise. 29929 (__arm_vmlasq_m_n_u8): Likewise. 29930 (__arm_vmlasq_m_n_u32): Likewise. 29931 (__arm_vmlasq_m_n_u16): Likewise. 29932 (__arm_vmlsdavaq_p_s8): Likewise. 29933 (__arm_vmlsdavaq_p_s32): Likewise. 29934 (__arm_vmlsdavaq_p_s16): Likewise. 29935 (__arm_vmlsdavaxq_p_s8): Likewise. 29936 (__arm_vmlsdavaxq_p_s32): Likewise. 29937 (__arm_vmlsdavaxq_p_s16): Likewise. 29938 (__arm_vmulhq_m_s8): Likewise. 29939 (__arm_vmulhq_m_s32): Likewise. 29940 (__arm_vmulhq_m_s16): Likewise. 29941 (__arm_vmulhq_m_u8): Likewise. 29942 (__arm_vmulhq_m_u32): Likewise. 29943 (__arm_vmulhq_m_u16): Likewise. 29944 (__arm_vmullbq_int_m_s8): Likewise. 29945 (__arm_vmullbq_int_m_s32): Likewise. 29946 (__arm_vmullbq_int_m_s16): Likewise. 29947 (__arm_vmullbq_int_m_u8): Likewise. 29948 (__arm_vmullbq_int_m_u32): Likewise. 29949 (__arm_vmullbq_int_m_u16): Likewise. 29950 (__arm_vmulltq_int_m_s8): Likewise. 29951 (__arm_vmulltq_int_m_s32): Likewise. 29952 (__arm_vmulltq_int_m_s16): Likewise. 29953 (__arm_vmulltq_int_m_u8): Likewise. 29954 (__arm_vmulltq_int_m_u32): Likewise. 29955 (__arm_vmulltq_int_m_u16): Likewise. 29956 (__arm_vmulq_m_n_s8): Likewise. 29957 (__arm_vmulq_m_n_s32): Likewise. 29958 (__arm_vmulq_m_n_s16): Likewise. 29959 (__arm_vmulq_m_n_u8): Likewise. 29960 (__arm_vmulq_m_n_u32): Likewise. 29961 (__arm_vmulq_m_n_u16): Likewise. 29962 (__arm_vmulq_m_s8): Likewise. 29963 (__arm_vmulq_m_s32): Likewise. 29964 (__arm_vmulq_m_s16): Likewise. 29965 (__arm_vmulq_m_u8): Likewise. 29966 (__arm_vmulq_m_u32): Likewise. 29967 (__arm_vmulq_m_u16): Likewise. 29968 (__arm_vornq_m_s8): Likewise. 29969 (__arm_vornq_m_s32): Likewise. 29970 (__arm_vornq_m_s16): Likewise. 29971 (__arm_vornq_m_u8): Likewise. 29972 (__arm_vornq_m_u32): Likewise. 29973 (__arm_vornq_m_u16): Likewise. 29974 (__arm_vorrq_m_s8): Likewise. 29975 (__arm_vorrq_m_s32): Likewise. 29976 (__arm_vorrq_m_s16): Likewise. 29977 (__arm_vorrq_m_u8): Likewise. 29978 (__arm_vorrq_m_u32): Likewise. 29979 (__arm_vorrq_m_u16): Likewise. 29980 (__arm_vqaddq_m_n_s8): Likewise. 29981 (__arm_vqaddq_m_n_s32): Likewise. 29982 (__arm_vqaddq_m_n_s16): Likewise. 29983 (__arm_vqaddq_m_n_u8): Likewise. 29984 (__arm_vqaddq_m_n_u32): Likewise. 29985 (__arm_vqaddq_m_n_u16): Likewise. 29986 (__arm_vqaddq_m_s8): Likewise. 29987 (__arm_vqaddq_m_s32): Likewise. 29988 (__arm_vqaddq_m_s16): Likewise. 29989 (__arm_vqaddq_m_u8): Likewise. 29990 (__arm_vqaddq_m_u32): Likewise. 29991 (__arm_vqaddq_m_u16): Likewise. 29992 (__arm_vqdmladhq_m_s8): Likewise. 29993 (__arm_vqdmladhq_m_s32): Likewise. 29994 (__arm_vqdmladhq_m_s16): Likewise. 29995 (__arm_vqdmladhxq_m_s8): Likewise. 29996 (__arm_vqdmladhxq_m_s32): Likewise. 29997 (__arm_vqdmladhxq_m_s16): Likewise. 29998 (__arm_vqdmlahq_m_n_s8): Likewise. 29999 (__arm_vqdmlahq_m_n_s32): Likewise. 30000 (__arm_vqdmlahq_m_n_s16): Likewise. 30001 (__arm_vqdmlahq_m_n_u8): Likewise. 30002 (__arm_vqdmlahq_m_n_u32): Likewise. 30003 (__arm_vqdmlahq_m_n_u16): Likewise. 30004 (__arm_vqdmlsdhq_m_s8): Likewise. 30005 (__arm_vqdmlsdhq_m_s32): Likewise. 30006 (__arm_vqdmlsdhq_m_s16): Likewise. 30007 (__arm_vqdmlsdhxq_m_s8): Likewise. 30008 (__arm_vqdmlsdhxq_m_s32): Likewise. 30009 (__arm_vqdmlsdhxq_m_s16): Likewise. 30010 (__arm_vqdmulhq_m_n_s8): Likewise. 30011 (__arm_vqdmulhq_m_n_s32): Likewise. 30012 (__arm_vqdmulhq_m_n_s16): Likewise. 30013 (__arm_vqdmulhq_m_s8): Likewise. 30014 (__arm_vqdmulhq_m_s32): Likewise. 30015 (__arm_vqdmulhq_m_s16): Likewise. 30016 (__arm_vqrdmladhq_m_s8): Likewise. 30017 (__arm_vqrdmladhq_m_s32): Likewise. 30018 (__arm_vqrdmladhq_m_s16): Likewise. 30019 (__arm_vqrdmladhxq_m_s8): Likewise. 30020 (__arm_vqrdmladhxq_m_s32): Likewise. 30021 (__arm_vqrdmladhxq_m_s16): Likewise. 30022 (__arm_vqrdmlahq_m_n_s8): Likewise. 30023 (__arm_vqrdmlahq_m_n_s32): Likewise. 30024 (__arm_vqrdmlahq_m_n_s16): Likewise. 30025 (__arm_vqrdmlahq_m_n_u8): Likewise. 30026 (__arm_vqrdmlahq_m_n_u32): Likewise. 30027 (__arm_vqrdmlahq_m_n_u16): Likewise. 30028 (__arm_vqrdmlashq_m_n_s8): Likewise. 30029 (__arm_vqrdmlashq_m_n_s32): Likewise. 30030 (__arm_vqrdmlashq_m_n_s16): Likewise. 30031 (__arm_vqrdmlashq_m_n_u8): Likewise. 30032 (__arm_vqrdmlashq_m_n_u32): Likewise. 30033 (__arm_vqrdmlashq_m_n_u16): Likewise. 30034 (__arm_vqrdmlsdhq_m_s8): Likewise. 30035 (__arm_vqrdmlsdhq_m_s32): Likewise. 30036 (__arm_vqrdmlsdhq_m_s16): Likewise. 30037 (__arm_vqrdmlsdhxq_m_s8): Likewise. 30038 (__arm_vqrdmlsdhxq_m_s32): Likewise. 30039 (__arm_vqrdmlsdhxq_m_s16): Likewise. 30040 (__arm_vqrdmulhq_m_n_s8): Likewise. 30041 (__arm_vqrdmulhq_m_n_s32): Likewise. 30042 (__arm_vqrdmulhq_m_n_s16): Likewise. 30043 (__arm_vqrdmulhq_m_s8): Likewise. 30044 (__arm_vqrdmulhq_m_s32): Likewise. 30045 (__arm_vqrdmulhq_m_s16): Likewise. 30046 (__arm_vqrshlq_m_s8): Likewise. 30047 (__arm_vqrshlq_m_s32): Likewise. 30048 (__arm_vqrshlq_m_s16): Likewise. 30049 (__arm_vqrshlq_m_u8): Likewise. 30050 (__arm_vqrshlq_m_u32): Likewise. 30051 (__arm_vqrshlq_m_u16): Likewise. 30052 (__arm_vqshlq_m_n_s8): Likewise. 30053 (__arm_vqshlq_m_n_s32): Likewise. 30054 (__arm_vqshlq_m_n_s16): Likewise. 30055 (__arm_vqshlq_m_n_u8): Likewise. 30056 (__arm_vqshlq_m_n_u32): Likewise. 30057 (__arm_vqshlq_m_n_u16): Likewise. 30058 (__arm_vqshlq_m_s8): Likewise. 30059 (__arm_vqshlq_m_s32): Likewise. 30060 (__arm_vqshlq_m_s16): Likewise. 30061 (__arm_vqshlq_m_u8): Likewise. 30062 (__arm_vqshlq_m_u32): Likewise. 30063 (__arm_vqshlq_m_u16): Likewise. 30064 (__arm_vqsubq_m_n_s8): Likewise. 30065 (__arm_vqsubq_m_n_s32): Likewise. 30066 (__arm_vqsubq_m_n_s16): Likewise. 30067 (__arm_vqsubq_m_n_u8): Likewise. 30068 (__arm_vqsubq_m_n_u32): Likewise. 30069 (__arm_vqsubq_m_n_u16): Likewise. 30070 (__arm_vqsubq_m_s8): Likewise. 30071 (__arm_vqsubq_m_s32): Likewise. 30072 (__arm_vqsubq_m_s16): Likewise. 30073 (__arm_vqsubq_m_u8): Likewise. 30074 (__arm_vqsubq_m_u32): Likewise. 30075 (__arm_vqsubq_m_u16): Likewise. 30076 (__arm_vrhaddq_m_s8): Likewise. 30077 (__arm_vrhaddq_m_s32): Likewise. 30078 (__arm_vrhaddq_m_s16): Likewise. 30079 (__arm_vrhaddq_m_u8): Likewise. 30080 (__arm_vrhaddq_m_u32): Likewise. 30081 (__arm_vrhaddq_m_u16): Likewise. 30082 (__arm_vrmulhq_m_s8): Likewise. 30083 (__arm_vrmulhq_m_s32): Likewise. 30084 (__arm_vrmulhq_m_s16): Likewise. 30085 (__arm_vrmulhq_m_u8): Likewise. 30086 (__arm_vrmulhq_m_u32): Likewise. 30087 (__arm_vrmulhq_m_u16): Likewise. 30088 (__arm_vrshlq_m_s8): Likewise. 30089 (__arm_vrshlq_m_s32): Likewise. 30090 (__arm_vrshlq_m_s16): Likewise. 30091 (__arm_vrshlq_m_u8): Likewise. 30092 (__arm_vrshlq_m_u32): Likewise. 30093 (__arm_vrshlq_m_u16): Likewise. 30094 (__arm_vrshrq_m_n_s8): Likewise. 30095 (__arm_vrshrq_m_n_s32): Likewise. 30096 (__arm_vrshrq_m_n_s16): Likewise. 30097 (__arm_vrshrq_m_n_u8): Likewise. 30098 (__arm_vrshrq_m_n_u32): Likewise. 30099 (__arm_vrshrq_m_n_u16): Likewise. 30100 (__arm_vshlq_m_n_s8): Likewise. 30101 (__arm_vshlq_m_n_s32): Likewise. 30102 (__arm_vshlq_m_n_s16): Likewise. 30103 (__arm_vshlq_m_n_u8): Likewise. 30104 (__arm_vshlq_m_n_u32): Likewise. 30105 (__arm_vshlq_m_n_u16): Likewise. 30106 (__arm_vshrq_m_n_s8): Likewise. 30107 (__arm_vshrq_m_n_s32): Likewise. 30108 (__arm_vshrq_m_n_s16): Likewise. 30109 (__arm_vshrq_m_n_u8): Likewise. 30110 (__arm_vshrq_m_n_u32): Likewise. 30111 (__arm_vshrq_m_n_u16): Likewise. 30112 (__arm_vsliq_m_n_s8): Likewise. 30113 (__arm_vsliq_m_n_s32): Likewise. 30114 (__arm_vsliq_m_n_s16): Likewise. 30115 (__arm_vsliq_m_n_u8): Likewise. 30116 (__arm_vsliq_m_n_u32): Likewise. 30117 (__arm_vsliq_m_n_u16): Likewise. 30118 (__arm_vsubq_m_n_s8): Likewise. 30119 (__arm_vsubq_m_n_s32): Likewise. 30120 (__arm_vsubq_m_n_s16): Likewise. 30121 (__arm_vsubq_m_n_u8): Likewise. 30122 (__arm_vsubq_m_n_u32): Likewise. 30123 (__arm_vsubq_m_n_u16): Likewise. 30124 (vqdmladhq_m): Define polymorphic variant. 30125 (vqdmladhxq_m): Likewise. 30126 (vqdmlsdhq_m): Likewise. 30127 (vqdmlsdhxq_m): Likewise. 30128 (vabdq_m): Likewise. 30129 (vandq_m): Likewise. 30130 (vbicq_m): Likewise. 30131 (vbrsrq_m_n): Likewise. 30132 (vcaddq_rot270_m): Likewise. 30133 (vcaddq_rot90_m): Likewise. 30134 (veorq_m): Likewise. 30135 (vmaxq_m): Likewise. 30136 (vminq_m): Likewise. 30137 (vmladavaq_p): Likewise. 30138 (vmlaq_m_n): Likewise. 30139 (vmlasq_m_n): Likewise. 30140 (vmulhq_m): Likewise. 30141 (vmullbq_int_m): Likewise. 30142 (vmulltq_int_m): Likewise. 30143 (vornq_m): Likewise. 30144 (vorrq_m): Likewise. 30145 (vqdmlahq_m_n): Likewise. 30146 (vqrdmlahq_m_n): Likewise. 30147 (vqrdmlashq_m_n): Likewise. 30148 (vqrshlq_m): Likewise. 30149 (vqshlq_m_n): Likewise. 30150 (vqshlq_m): Likewise. 30151 (vrhaddq_m): Likewise. 30152 (vrmulhq_m): Likewise. 30153 (vrshlq_m): Likewise. 30154 (vrshrq_m_n): Likewise. 30155 (vshlq_m_n): Likewise. 30156 (vshrq_m_n): Likewise. 30157 (vsliq_m): Likewise. 30158 (vaddq_m_n): Likewise. 30159 (vaddq_m): Likewise. 30160 (vhaddq_m_n): Likewise. 30161 (vhaddq_m): Likewise. 30162 (vhcaddq_rot270_m): Likewise. 30163 (vhcaddq_rot90_m): Likewise. 30164 (vhsubq_m): Likewise. 30165 (vhsubq_m_n): Likewise. 30166 (vmulq_m_n): Likewise. 30167 (vmulq_m): Likewise. 30168 (vqaddq_m_n): Likewise. 30169 (vqaddq_m): Likewise. 30170 (vqdmulhq_m_n): Likewise. 30171 (vqdmulhq_m): Likewise. 30172 (vsubq_m_n): Likewise. 30173 (vsliq_m_n): Likewise. 30174 (vqsubq_m_n): Likewise. 30175 (vqsubq_m): Likewise. 30176 (vqrdmulhq_m): Likewise. 30177 (vqrdmulhq_m_n): Likewise. 30178 (vqrdmlsdhxq_m): Likewise. 30179 (vqrdmlsdhq_m): Likewise. 30180 (vqrdmladhq_m): Likewise. 30181 (vqrdmladhxq_m): Likewise. 30182 (vmlsdavaxq_p): Likewise. 30183 (vmlsdavaq_p): Likewise. 30184 (vmladavaxq_p): Likewise. 30185 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use 30186 builtin qualifier. 30187 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise. 30188 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise. 30189 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE): Likewise. 30190 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise. 30191 * config/arm/mve.md (VHSUBQ_M): Define iterators. 30192 (VSLIQ_M_N): Likewise. 30193 (VQRDMLAHQ_M_N): Likewise. 30194 (VRSHLQ_M): Likewise. 30195 (VMINQ_M): Likewise. 30196 (VMULLBQ_INT_M): Likewise. 30197 (VMULHQ_M): Likewise. 30198 (VMULQ_M): Likewise. 30199 (VHSUBQ_M_N): Likewise. 30200 (VHADDQ_M_N): Likewise. 30201 (VORRQ_M): Likewise. 30202 (VRMULHQ_M): Likewise. 30203 (VQADDQ_M): Likewise. 30204 (VRSHRQ_M_N): Likewise. 30205 (VQSUBQ_M_N): Likewise. 30206 (VADDQ_M): Likewise. 30207 (VORNQ_M): Likewise. 30208 (VQDMLAHQ_M_N): Likewise. 30209 (VRHADDQ_M): Likewise. 30210 (VQSHLQ_M): Likewise. 30211 (VANDQ_M): Likewise. 30212 (VBICQ_M): Likewise. 30213 (VSHLQ_M_N): Likewise. 30214 (VCADDQ_ROT270_M): Likewise. 30215 (VQRSHLQ_M): Likewise. 30216 (VQADDQ_M_N): Likewise. 30217 (VADDQ_M_N): Likewise. 30218 (VMAXQ_M): Likewise. 30219 (VQSUBQ_M): Likewise. 30220 (VMLASQ_M_N): Likewise. 30221 (VMLADAVAQ_P): Likewise. 30222 (VBRSRQ_M_N): Likewise. 30223 (VMULQ_M_N): Likewise. 30224 (VCADDQ_ROT90_M): Likewise. 30225 (VMULLTQ_INT_M): Likewise. 30226 (VEORQ_M): Likewise. 30227 (VSHRQ_M_N): Likewise. 30228 (VSUBQ_M_N): Likewise. 30229 (VHADDQ_M): Likewise. 30230 (VABDQ_M): Likewise. 30231 (VQRDMLASHQ_M_N): Likewise. 30232 (VMLAQ_M_N): Likewise. 30233 (VQSHLQ_M_N): Likewise. 30234 (mve_vabdq_m_<supf><mode>): Define RTL pattern. 30235 (mve_vaddq_m_n_<supf><mode>): Likewise. 30236 (mve_vaddq_m_<supf><mode>): Likewise. 30237 (mve_vandq_m_<supf><mode>): Likewise. 30238 (mve_vbicq_m_<supf><mode>): Likewise. 30239 (mve_vbrsrq_m_n_<supf><mode>): Likewise. 30240 (mve_vcaddq_rot270_m_<supf><mode>): Likewise. 30241 (mve_vcaddq_rot90_m_<supf><mode>): Likewise. 30242 (mve_veorq_m_<supf><mode>): Likewise. 30243 (mve_vhaddq_m_n_<supf><mode>): Likewise. 30244 (mve_vhaddq_m_<supf><mode>): Likewise. 30245 (mve_vhsubq_m_n_<supf><mode>): Likewise. 30246 (mve_vhsubq_m_<supf><mode>): Likewise. 30247 (mve_vmaxq_m_<supf><mode>): Likewise. 30248 (mve_vminq_m_<supf><mode>): Likewise. 30249 (mve_vmladavaq_p_<supf><mode>): Likewise. 30250 (mve_vmlaq_m_n_<supf><mode>): Likewise. 30251 (mve_vmlasq_m_n_<supf><mode>): Likewise. 30252 (mve_vmulhq_m_<supf><mode>): Likewise. 30253 (mve_vmullbq_int_m_<supf><mode>): Likewise. 30254 (mve_vmulltq_int_m_<supf><mode>): Likewise. 30255 (mve_vmulq_m_n_<supf><mode>): Likewise. 30256 (mve_vmulq_m_<supf><mode>): Likewise. 30257 (mve_vornq_m_<supf><mode>): Likewise. 30258 (mve_vorrq_m_<supf><mode>): Likewise. 30259 (mve_vqaddq_m_n_<supf><mode>): Likewise. 30260 (mve_vqaddq_m_<supf><mode>): Likewise. 30261 (mve_vqdmlahq_m_n_<supf><mode>): Likewise. 30262 (mve_vqrdmlahq_m_n_<supf><mode>): Likewise. 30263 (mve_vqrdmlashq_m_n_<supf><mode>): Likewise. 30264 (mve_vqrshlq_m_<supf><mode>): Likewise. 30265 (mve_vqshlq_m_n_<supf><mode>): Likewise. 30266 (mve_vqshlq_m_<supf><mode>): Likewise. 30267 (mve_vqsubq_m_n_<supf><mode>): Likewise. 30268 (mve_vqsubq_m_<supf><mode>): Likewise. 30269 (mve_vrhaddq_m_<supf><mode>): Likewise. 30270 (mve_vrmulhq_m_<supf><mode>): Likewise. 30271 (mve_vrshlq_m_<supf><mode>): Likewise. 30272 (mve_vrshrq_m_n_<supf><mode>): Likewise. 30273 (mve_vshlq_m_n_<supf><mode>): Likewise. 30274 (mve_vshrq_m_n_<supf><mode>): Likewise. 30275 (mve_vsliq_m_n_<supf><mode>): Likewise. 30276 (mve_vsubq_m_n_<supf><mode>): Likewise. 30277 (mve_vhcaddq_rot270_m_s<mode>): Likewise. 30278 (mve_vhcaddq_rot90_m_s<mode>): Likewise. 30279 (mve_vmladavaxq_p_s<mode>): Likewise. 30280 (mve_vmlsdavaq_p_s<mode>): Likewise. 30281 (mve_vmlsdavaxq_p_s<mode>): Likewise. 30282 (mve_vqdmladhq_m_s<mode>): Likewise. 30283 (mve_vqdmladhxq_m_s<mode>): Likewise. 30284 (mve_vqdmlsdhq_m_s<mode>): Likewise. 30285 (mve_vqdmlsdhxq_m_s<mode>): Likewise. 30286 (mve_vqdmulhq_m_n_s<mode>): Likewise. 30287 (mve_vqdmulhq_m_s<mode>): Likewise. 30288 (mve_vqrdmladhq_m_s<mode>): Likewise. 30289 (mve_vqrdmladhxq_m_s<mode>): Likewise. 30290 (mve_vqrdmlsdhq_m_s<mode>): Likewise. 30291 (mve_vqrdmlsdhxq_m_s<mode>): Likewise. 30292 (mve_vqrdmulhq_m_n_s<mode>): Likewise. 30293 (mve_vqrdmulhq_m_s<mode>): Likewise. 30294 302952020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 30296 Mihail Ionescu <mihail.ionescu@arm.com> 30297 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 30298 30299 * config/arm/arm-builtins.c (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): 30300 Define builtin qualifier. 30301 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. 30302 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. 30303 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. 30304 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. 30305 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. 30306 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. 30307 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise. 30308 * config/arm/arm_mve.h (vsriq_m_n_s8): Define macro. 30309 (vsubq_m_s8): Likewise. 30310 (vcvtq_m_n_f16_u16): Likewise. 30311 (vqshluq_m_n_s8): Likewise. 30312 (vabavq_p_s8): Likewise. 30313 (vsriq_m_n_u8): Likewise. 30314 (vshlq_m_u8): Likewise. 30315 (vsubq_m_u8): Likewise. 30316 (vabavq_p_u8): Likewise. 30317 (vshlq_m_s8): Likewise. 30318 (vcvtq_m_n_f16_s16): Likewise. 30319 (vsriq_m_n_s16): Likewise. 30320 (vsubq_m_s16): Likewise. 30321 (vcvtq_m_n_f32_u32): Likewise. 30322 (vqshluq_m_n_s16): Likewise. 30323 (vabavq_p_s16): Likewise. 30324 (vsriq_m_n_u16): Likewise. 30325 (vshlq_m_u16): Likewise. 30326 (vsubq_m_u16): Likewise. 30327 (vabavq_p_u16): Likewise. 30328 (vshlq_m_s16): Likewise. 30329 (vcvtq_m_n_f32_s32): Likewise. 30330 (vsriq_m_n_s32): Likewise. 30331 (vsubq_m_s32): Likewise. 30332 (vqshluq_m_n_s32): Likewise. 30333 (vabavq_p_s32): Likewise. 30334 (vsriq_m_n_u32): Likewise. 30335 (vshlq_m_u32): Likewise. 30336 (vsubq_m_u32): Likewise. 30337 (vabavq_p_u32): Likewise. 30338 (vshlq_m_s32): Likewise. 30339 (__arm_vsriq_m_n_s8): Define intrinsic. 30340 (__arm_vsubq_m_s8): Likewise. 30341 (__arm_vqshluq_m_n_s8): Likewise. 30342 (__arm_vabavq_p_s8): Likewise. 30343 (__arm_vsriq_m_n_u8): Likewise. 30344 (__arm_vshlq_m_u8): Likewise. 30345 (__arm_vsubq_m_u8): Likewise. 30346 (__arm_vabavq_p_u8): Likewise. 30347 (__arm_vshlq_m_s8): Likewise. 30348 (__arm_vsriq_m_n_s16): Likewise. 30349 (__arm_vsubq_m_s16): Likewise. 30350 (__arm_vqshluq_m_n_s16): Likewise. 30351 (__arm_vabavq_p_s16): Likewise. 30352 (__arm_vsriq_m_n_u16): Likewise. 30353 (__arm_vshlq_m_u16): Likewise. 30354 (__arm_vsubq_m_u16): Likewise. 30355 (__arm_vabavq_p_u16): Likewise. 30356 (__arm_vshlq_m_s16): Likewise. 30357 (__arm_vsriq_m_n_s32): Likewise. 30358 (__arm_vsubq_m_s32): Likewise. 30359 (__arm_vqshluq_m_n_s32): Likewise. 30360 (__arm_vabavq_p_s32): Likewise. 30361 (__arm_vsriq_m_n_u32): Likewise. 30362 (__arm_vshlq_m_u32): Likewise. 30363 (__arm_vsubq_m_u32): Likewise. 30364 (__arm_vabavq_p_u32): Likewise. 30365 (__arm_vshlq_m_s32): Likewise. 30366 (__arm_vcvtq_m_n_f16_u16): Likewise. 30367 (__arm_vcvtq_m_n_f16_s16): Likewise. 30368 (__arm_vcvtq_m_n_f32_u32): Likewise. 30369 (__arm_vcvtq_m_n_f32_s32): Likewise. 30370 (vcvtq_m_n): Define polymorphic variant. 30371 (vqshluq_m_n): Likewise. 30372 (vshlq_m): Likewise. 30373 (vsriq_m_n): Likewise. 30374 (vsubq_m): Likewise. 30375 (vabavq_p): Likewise. 30376 * config/arm/arm_mve_builtins.def 30377 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Use builtin qualifier. 30378 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. 30379 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. 30380 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. 30381 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. 30382 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. 30383 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. 30384 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise. 30385 * config/arm/mve.md (VABAVQ_P): Define iterator. 30386 (VSHLQ_M): Likewise. 30387 (VSRIQ_M_N): Likewise. 30388 (VSUBQ_M): Likewise. 30389 (VCVTQ_M_N_TO_F): Likewise. 30390 (mve_vabavq_p_<supf><mode>): Define RTL pattern. 30391 (mve_vqshluq_m_n_s<mode>): Likewise. 30392 (mve_vshlq_m_<supf><mode>): Likewise. 30393 (mve_vsriq_m_n_<supf><mode>): Likewise. 30394 (mve_vsubq_m_<supf><mode>): Likewise. 30395 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise. 30396 303972020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 30398 Mihail Ionescu <mihail.ionescu@arm.com> 30399 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 30400 30401 * config/arm/arm_mve.h (vrmlaldavhaxq_s32): Define macro. 30402 (vrmlsldavhaq_s32): Likewise. 30403 (vrmlsldavhaxq_s32): Likewise. 30404 (vaddlvaq_p_s32): Likewise. 30405 (vcvtbq_m_f16_f32): Likewise. 30406 (vcvtbq_m_f32_f16): Likewise. 30407 (vcvttq_m_f16_f32): Likewise. 30408 (vcvttq_m_f32_f16): Likewise. 30409 (vrev16q_m_s8): Likewise. 30410 (vrev32q_m_f16): Likewise. 30411 (vrmlaldavhq_p_s32): Likewise. 30412 (vrmlaldavhxq_p_s32): Likewise. 30413 (vrmlsldavhq_p_s32): Likewise. 30414 (vrmlsldavhxq_p_s32): Likewise. 30415 (vaddlvaq_p_u32): Likewise. 30416 (vrev16q_m_u8): Likewise. 30417 (vrmlaldavhq_p_u32): Likewise. 30418 (vmvnq_m_n_s16): Likewise. 30419 (vorrq_m_n_s16): Likewise. 30420 (vqrshrntq_n_s16): Likewise. 30421 (vqshrnbq_n_s16): Likewise. 30422 (vqshrntq_n_s16): Likewise. 30423 (vrshrnbq_n_s16): Likewise. 30424 (vrshrntq_n_s16): Likewise. 30425 (vshrnbq_n_s16): Likewise. 30426 (vshrntq_n_s16): Likewise. 30427 (vcmlaq_f16): Likewise. 30428 (vcmlaq_rot180_f16): Likewise. 30429 (vcmlaq_rot270_f16): Likewise. 30430 (vcmlaq_rot90_f16): Likewise. 30431 (vfmaq_f16): Likewise. 30432 (vfmaq_n_f16): Likewise. 30433 (vfmasq_n_f16): Likewise. 30434 (vfmsq_f16): Likewise. 30435 (vmlaldavaq_s16): Likewise. 30436 (vmlaldavaxq_s16): Likewise. 30437 (vmlsldavaq_s16): Likewise. 30438 (vmlsldavaxq_s16): Likewise. 30439 (vabsq_m_f16): Likewise. 30440 (vcvtmq_m_s16_f16): Likewise. 30441 (vcvtnq_m_s16_f16): Likewise. 30442 (vcvtpq_m_s16_f16): Likewise. 30443 (vcvtq_m_s16_f16): Likewise. 30444 (vdupq_m_n_f16): Likewise. 30445 (vmaxnmaq_m_f16): Likewise. 30446 (vmaxnmavq_p_f16): Likewise. 30447 (vmaxnmvq_p_f16): Likewise. 30448 (vminnmaq_m_f16): Likewise. 30449 (vminnmavq_p_f16): Likewise. 30450 (vminnmvq_p_f16): Likewise. 30451 (vmlaldavq_p_s16): Likewise. 30452 (vmlaldavxq_p_s16): Likewise. 30453 (vmlsldavq_p_s16): Likewise. 30454 (vmlsldavxq_p_s16): Likewise. 30455 (vmovlbq_m_s8): Likewise. 30456 (vmovltq_m_s8): Likewise. 30457 (vmovnbq_m_s16): Likewise. 30458 (vmovntq_m_s16): Likewise. 30459 (vnegq_m_f16): Likewise. 30460 (vpselq_f16): Likewise. 30461 (vqmovnbq_m_s16): Likewise. 30462 (vqmovntq_m_s16): Likewise. 30463 (vrev32q_m_s8): Likewise. 30464 (vrev64q_m_f16): Likewise. 30465 (vrndaq_m_f16): Likewise. 30466 (vrndmq_m_f16): Likewise. 30467 (vrndnq_m_f16): Likewise. 30468 (vrndpq_m_f16): Likewise. 30469 (vrndq_m_f16): Likewise. 30470 (vrndxq_m_f16): Likewise. 30471 (vcmpeqq_m_n_f16): Likewise. 30472 (vcmpgeq_m_f16): Likewise. 30473 (vcmpgeq_m_n_f16): Likewise. 30474 (vcmpgtq_m_f16): Likewise. 30475 (vcmpgtq_m_n_f16): Likewise. 30476 (vcmpleq_m_f16): Likewise. 30477 (vcmpleq_m_n_f16): Likewise. 30478 (vcmpltq_m_f16): Likewise. 30479 (vcmpltq_m_n_f16): Likewise. 30480 (vcmpneq_m_f16): Likewise. 30481 (vcmpneq_m_n_f16): Likewise. 30482 (vmvnq_m_n_u16): Likewise. 30483 (vorrq_m_n_u16): Likewise. 30484 (vqrshruntq_n_s16): Likewise. 30485 (vqshrunbq_n_s16): Likewise. 30486 (vqshruntq_n_s16): Likewise. 30487 (vcvtmq_m_u16_f16): Likewise. 30488 (vcvtnq_m_u16_f16): Likewise. 30489 (vcvtpq_m_u16_f16): Likewise. 30490 (vcvtq_m_u16_f16): Likewise. 30491 (vqmovunbq_m_s16): Likewise. 30492 (vqmovuntq_m_s16): Likewise. 30493 (vqrshrntq_n_u16): Likewise. 30494 (vqshrnbq_n_u16): Likewise. 30495 (vqshrntq_n_u16): Likewise. 30496 (vrshrnbq_n_u16): Likewise. 30497 (vrshrntq_n_u16): Likewise. 30498 (vshrnbq_n_u16): Likewise. 30499 (vshrntq_n_u16): Likewise. 30500 (vmlaldavaq_u16): Likewise. 30501 (vmlaldavaxq_u16): Likewise. 30502 (vmlaldavq_p_u16): Likewise. 30503 (vmlaldavxq_p_u16): Likewise. 30504 (vmovlbq_m_u8): Likewise. 30505 (vmovltq_m_u8): Likewise. 30506 (vmovnbq_m_u16): Likewise. 30507 (vmovntq_m_u16): Likewise. 30508 (vqmovnbq_m_u16): Likewise. 30509 (vqmovntq_m_u16): Likewise. 30510 (vrev32q_m_u8): Likewise. 30511 (vmvnq_m_n_s32): Likewise. 30512 (vorrq_m_n_s32): Likewise. 30513 (vqrshrntq_n_s32): Likewise. 30514 (vqshrnbq_n_s32): Likewise. 30515 (vqshrntq_n_s32): Likewise. 30516 (vrshrnbq_n_s32): Likewise. 30517 (vrshrntq_n_s32): Likewise. 30518 (vshrnbq_n_s32): Likewise. 30519 (vshrntq_n_s32): Likewise. 30520 (vcmlaq_f32): Likewise. 30521 (vcmlaq_rot180_f32): Likewise. 30522 (vcmlaq_rot270_f32): Likewise. 30523 (vcmlaq_rot90_f32): Likewise. 30524 (vfmaq_f32): Likewise. 30525 (vfmaq_n_f32): Likewise. 30526 (vfmasq_n_f32): Likewise. 30527 (vfmsq_f32): Likewise. 30528 (vmlaldavaq_s32): Likewise. 30529 (vmlaldavaxq_s32): Likewise. 30530 (vmlsldavaq_s32): Likewise. 30531 (vmlsldavaxq_s32): Likewise. 30532 (vabsq_m_f32): Likewise. 30533 (vcvtmq_m_s32_f32): Likewise. 30534 (vcvtnq_m_s32_f32): Likewise. 30535 (vcvtpq_m_s32_f32): Likewise. 30536 (vcvtq_m_s32_f32): Likewise. 30537 (vdupq_m_n_f32): Likewise. 30538 (vmaxnmaq_m_f32): Likewise. 30539 (vmaxnmavq_p_f32): Likewise. 30540 (vmaxnmvq_p_f32): Likewise. 30541 (vminnmaq_m_f32): Likewise. 30542 (vminnmavq_p_f32): Likewise. 30543 (vminnmvq_p_f32): Likewise. 30544 (vmlaldavq_p_s32): Likewise. 30545 (vmlaldavxq_p_s32): Likewise. 30546 (vmlsldavq_p_s32): Likewise. 30547 (vmlsldavxq_p_s32): Likewise. 30548 (vmovlbq_m_s16): Likewise. 30549 (vmovltq_m_s16): Likewise. 30550 (vmovnbq_m_s32): Likewise. 30551 (vmovntq_m_s32): Likewise. 30552 (vnegq_m_f32): Likewise. 30553 (vpselq_f32): Likewise. 30554 (vqmovnbq_m_s32): Likewise. 30555 (vqmovntq_m_s32): Likewise. 30556 (vrev32q_m_s16): Likewise. 30557 (vrev64q_m_f32): Likewise. 30558 (vrndaq_m_f32): Likewise. 30559 (vrndmq_m_f32): Likewise. 30560 (vrndnq_m_f32): Likewise. 30561 (vrndpq_m_f32): Likewise. 30562 (vrndq_m_f32): Likewise. 30563 (vrndxq_m_f32): Likewise. 30564 (vcmpeqq_m_n_f32): Likewise. 30565 (vcmpgeq_m_f32): Likewise. 30566 (vcmpgeq_m_n_f32): Likewise. 30567 (vcmpgtq_m_f32): Likewise. 30568 (vcmpgtq_m_n_f32): Likewise. 30569 (vcmpleq_m_f32): Likewise. 30570 (vcmpleq_m_n_f32): Likewise. 30571 (vcmpltq_m_f32): Likewise. 30572 (vcmpltq_m_n_f32): Likewise. 30573 (vcmpneq_m_f32): Likewise. 30574 (vcmpneq_m_n_f32): Likewise. 30575 (vmvnq_m_n_u32): Likewise. 30576 (vorrq_m_n_u32): Likewise. 30577 (vqrshruntq_n_s32): Likewise. 30578 (vqshrunbq_n_s32): Likewise. 30579 (vqshruntq_n_s32): Likewise. 30580 (vcvtmq_m_u32_f32): Likewise. 30581 (vcvtnq_m_u32_f32): Likewise. 30582 (vcvtpq_m_u32_f32): Likewise. 30583 (vcvtq_m_u32_f32): Likewise. 30584 (vqmovunbq_m_s32): Likewise. 30585 (vqmovuntq_m_s32): Likewise. 30586 (vqrshrntq_n_u32): Likewise. 30587 (vqshrnbq_n_u32): Likewise. 30588 (vqshrntq_n_u32): Likewise. 30589 (vrshrnbq_n_u32): Likewise. 30590 (vrshrntq_n_u32): Likewise. 30591 (vshrnbq_n_u32): Likewise. 30592 (vshrntq_n_u32): Likewise. 30593 (vmlaldavaq_u32): Likewise. 30594 (vmlaldavaxq_u32): Likewise. 30595 (vmlaldavq_p_u32): Likewise. 30596 (vmlaldavxq_p_u32): Likewise. 30597 (vmovlbq_m_u16): Likewise. 30598 (vmovltq_m_u16): Likewise. 30599 (vmovnbq_m_u32): Likewise. 30600 (vmovntq_m_u32): Likewise. 30601 (vqmovnbq_m_u32): Likewise. 30602 (vqmovntq_m_u32): Likewise. 30603 (vrev32q_m_u16): Likewise. 30604 (__arm_vrmlaldavhaxq_s32): Define intrinsic. 30605 (__arm_vrmlsldavhaq_s32): Likewise. 30606 (__arm_vrmlsldavhaxq_s32): Likewise. 30607 (__arm_vaddlvaq_p_s32): Likewise. 30608 (__arm_vrev16q_m_s8): Likewise. 30609 (__arm_vrmlaldavhq_p_s32): Likewise. 30610 (__arm_vrmlaldavhxq_p_s32): Likewise. 30611 (__arm_vrmlsldavhq_p_s32): Likewise. 30612 (__arm_vrmlsldavhxq_p_s32): Likewise. 30613 (__arm_vaddlvaq_p_u32): Likewise. 30614 (__arm_vrev16q_m_u8): Likewise. 30615 (__arm_vrmlaldavhq_p_u32): Likewise. 30616 (__arm_vmvnq_m_n_s16): Likewise. 30617 (__arm_vorrq_m_n_s16): Likewise. 30618 (__arm_vqrshrntq_n_s16): Likewise. 30619 (__arm_vqshrnbq_n_s16): Likewise. 30620 (__arm_vqshrntq_n_s16): Likewise. 30621 (__arm_vrshrnbq_n_s16): Likewise. 30622 (__arm_vrshrntq_n_s16): Likewise. 30623 (__arm_vshrnbq_n_s16): Likewise. 30624 (__arm_vshrntq_n_s16): Likewise. 30625 (__arm_vmlaldavaq_s16): Likewise. 30626 (__arm_vmlaldavaxq_s16): Likewise. 30627 (__arm_vmlsldavaq_s16): Likewise. 30628 (__arm_vmlsldavaxq_s16): Likewise. 30629 (__arm_vmlaldavq_p_s16): Likewise. 30630 (__arm_vmlaldavxq_p_s16): Likewise. 30631 (__arm_vmlsldavq_p_s16): Likewise. 30632 (__arm_vmlsldavxq_p_s16): Likewise. 30633 (__arm_vmovlbq_m_s8): Likewise. 30634 (__arm_vmovltq_m_s8): Likewise. 30635 (__arm_vmovnbq_m_s16): Likewise. 30636 (__arm_vmovntq_m_s16): Likewise. 30637 (__arm_vqmovnbq_m_s16): Likewise. 30638 (__arm_vqmovntq_m_s16): Likewise. 30639 (__arm_vrev32q_m_s8): Likewise. 30640 (__arm_vmvnq_m_n_u16): Likewise. 30641 (__arm_vorrq_m_n_u16): Likewise. 30642 (__arm_vqrshruntq_n_s16): Likewise. 30643 (__arm_vqshrunbq_n_s16): Likewise. 30644 (__arm_vqshruntq_n_s16): Likewise. 30645 (__arm_vqmovunbq_m_s16): Likewise. 30646 (__arm_vqmovuntq_m_s16): Likewise. 30647 (__arm_vqrshrntq_n_u16): Likewise. 30648 (__arm_vqshrnbq_n_u16): Likewise. 30649 (__arm_vqshrntq_n_u16): Likewise. 30650 (__arm_vrshrnbq_n_u16): Likewise. 30651 (__arm_vrshrntq_n_u16): Likewise. 30652 (__arm_vshrnbq_n_u16): Likewise. 30653 (__arm_vshrntq_n_u16): Likewise. 30654 (__arm_vmlaldavaq_u16): Likewise. 30655 (__arm_vmlaldavaxq_u16): Likewise. 30656 (__arm_vmlaldavq_p_u16): Likewise. 30657 (__arm_vmlaldavxq_p_u16): Likewise. 30658 (__arm_vmovlbq_m_u8): Likewise. 30659 (__arm_vmovltq_m_u8): Likewise. 30660 (__arm_vmovnbq_m_u16): Likewise. 30661 (__arm_vmovntq_m_u16): Likewise. 30662 (__arm_vqmovnbq_m_u16): Likewise. 30663 (__arm_vqmovntq_m_u16): Likewise. 30664 (__arm_vrev32q_m_u8): Likewise. 30665 (__arm_vmvnq_m_n_s32): Likewise. 30666 (__arm_vorrq_m_n_s32): Likewise. 30667 (__arm_vqrshrntq_n_s32): Likewise. 30668 (__arm_vqshrnbq_n_s32): Likewise. 30669 (__arm_vqshrntq_n_s32): Likewise. 30670 (__arm_vrshrnbq_n_s32): Likewise. 30671 (__arm_vrshrntq_n_s32): Likewise. 30672 (__arm_vshrnbq_n_s32): Likewise. 30673 (__arm_vshrntq_n_s32): Likewise. 30674 (__arm_vmlaldavaq_s32): Likewise. 30675 (__arm_vmlaldavaxq_s32): Likewise. 30676 (__arm_vmlsldavaq_s32): Likewise. 30677 (__arm_vmlsldavaxq_s32): Likewise. 30678 (__arm_vmlaldavq_p_s32): Likewise. 30679 (__arm_vmlaldavxq_p_s32): Likewise. 30680 (__arm_vmlsldavq_p_s32): Likewise. 30681 (__arm_vmlsldavxq_p_s32): Likewise. 30682 (__arm_vmovlbq_m_s16): Likewise. 30683 (__arm_vmovltq_m_s16): Likewise. 30684 (__arm_vmovnbq_m_s32): Likewise. 30685 (__arm_vmovntq_m_s32): Likewise. 30686 (__arm_vqmovnbq_m_s32): Likewise. 30687 (__arm_vqmovntq_m_s32): Likewise. 30688 (__arm_vrev32q_m_s16): Likewise. 30689 (__arm_vmvnq_m_n_u32): Likewise. 30690 (__arm_vorrq_m_n_u32): Likewise. 30691 (__arm_vqrshruntq_n_s32): Likewise. 30692 (__arm_vqshrunbq_n_s32): Likewise. 30693 (__arm_vqshruntq_n_s32): Likewise. 30694 (__arm_vqmovunbq_m_s32): Likewise. 30695 (__arm_vqmovuntq_m_s32): Likewise. 30696 (__arm_vqrshrntq_n_u32): Likewise. 30697 (__arm_vqshrnbq_n_u32): Likewise. 30698 (__arm_vqshrntq_n_u32): Likewise. 30699 (__arm_vrshrnbq_n_u32): Likewise. 30700 (__arm_vrshrntq_n_u32): Likewise. 30701 (__arm_vshrnbq_n_u32): Likewise. 30702 (__arm_vshrntq_n_u32): Likewise. 30703 (__arm_vmlaldavaq_u32): Likewise. 30704 (__arm_vmlaldavaxq_u32): Likewise. 30705 (__arm_vmlaldavq_p_u32): Likewise. 30706 (__arm_vmlaldavxq_p_u32): Likewise. 30707 (__arm_vmovlbq_m_u16): Likewise. 30708 (__arm_vmovltq_m_u16): Likewise. 30709 (__arm_vmovnbq_m_u32): Likewise. 30710 (__arm_vmovntq_m_u32): Likewise. 30711 (__arm_vqmovnbq_m_u32): Likewise. 30712 (__arm_vqmovntq_m_u32): Likewise. 30713 (__arm_vrev32q_m_u16): Likewise. 30714 (__arm_vcvtbq_m_f16_f32): Likewise. 30715 (__arm_vcvtbq_m_f32_f16): Likewise. 30716 (__arm_vcvttq_m_f16_f32): Likewise. 30717 (__arm_vcvttq_m_f32_f16): Likewise. 30718 (__arm_vrev32q_m_f16): Likewise. 30719 (__arm_vcmlaq_f16): Likewise. 30720 (__arm_vcmlaq_rot180_f16): Likewise. 30721 (__arm_vcmlaq_rot270_f16): Likewise. 30722 (__arm_vcmlaq_rot90_f16): Likewise. 30723 (__arm_vfmaq_f16): Likewise. 30724 (__arm_vfmaq_n_f16): Likewise. 30725 (__arm_vfmasq_n_f16): Likewise. 30726 (__arm_vfmsq_f16): Likewise. 30727 (__arm_vabsq_m_f16): Likewise. 30728 (__arm_vcvtmq_m_s16_f16): Likewise. 30729 (__arm_vcvtnq_m_s16_f16): Likewise. 30730 (__arm_vcvtpq_m_s16_f16): Likewise. 30731 (__arm_vcvtq_m_s16_f16): Likewise. 30732 (__arm_vdupq_m_n_f16): Likewise. 30733 (__arm_vmaxnmaq_m_f16): Likewise. 30734 (__arm_vmaxnmavq_p_f16): Likewise. 30735 (__arm_vmaxnmvq_p_f16): Likewise. 30736 (__arm_vminnmaq_m_f16): Likewise. 30737 (__arm_vminnmavq_p_f16): Likewise. 30738 (__arm_vminnmvq_p_f16): Likewise. 30739 (__arm_vnegq_m_f16): Likewise. 30740 (__arm_vpselq_f16): Likewise. 30741 (__arm_vrev64q_m_f16): Likewise. 30742 (__arm_vrndaq_m_f16): Likewise. 30743 (__arm_vrndmq_m_f16): Likewise. 30744 (__arm_vrndnq_m_f16): Likewise. 30745 (__arm_vrndpq_m_f16): Likewise. 30746 (__arm_vrndq_m_f16): Likewise. 30747 (__arm_vrndxq_m_f16): Likewise. 30748 (__arm_vcmpeqq_m_n_f16): Likewise. 30749 (__arm_vcmpgeq_m_f16): Likewise. 30750 (__arm_vcmpgeq_m_n_f16): Likewise. 30751 (__arm_vcmpgtq_m_f16): Likewise. 30752 (__arm_vcmpgtq_m_n_f16): Likewise. 30753 (__arm_vcmpleq_m_f16): Likewise. 30754 (__arm_vcmpleq_m_n_f16): Likewise. 30755 (__arm_vcmpltq_m_f16): Likewise. 30756 (__arm_vcmpltq_m_n_f16): Likewise. 30757 (__arm_vcmpneq_m_f16): Likewise. 30758 (__arm_vcmpneq_m_n_f16): Likewise. 30759 (__arm_vcvtmq_m_u16_f16): Likewise. 30760 (__arm_vcvtnq_m_u16_f16): Likewise. 30761 (__arm_vcvtpq_m_u16_f16): Likewise. 30762 (__arm_vcvtq_m_u16_f16): Likewise. 30763 (__arm_vcmlaq_f32): Likewise. 30764 (__arm_vcmlaq_rot180_f32): Likewise. 30765 (__arm_vcmlaq_rot270_f32): Likewise. 30766 (__arm_vcmlaq_rot90_f32): Likewise. 30767 (__arm_vfmaq_f32): Likewise. 30768 (__arm_vfmaq_n_f32): Likewise. 30769 (__arm_vfmasq_n_f32): Likewise. 30770 (__arm_vfmsq_f32): Likewise. 30771 (__arm_vabsq_m_f32): Likewise. 30772 (__arm_vcvtmq_m_s32_f32): Likewise. 30773 (__arm_vcvtnq_m_s32_f32): Likewise. 30774 (__arm_vcvtpq_m_s32_f32): Likewise. 30775 (__arm_vcvtq_m_s32_f32): Likewise. 30776 (__arm_vdupq_m_n_f32): Likewise. 30777 (__arm_vmaxnmaq_m_f32): Likewise. 30778 (__arm_vmaxnmavq_p_f32): Likewise. 30779 (__arm_vmaxnmvq_p_f32): Likewise. 30780 (__arm_vminnmaq_m_f32): Likewise. 30781 (__arm_vminnmavq_p_f32): Likewise. 30782 (__arm_vminnmvq_p_f32): Likewise. 30783 (__arm_vnegq_m_f32): Likewise. 30784 (__arm_vpselq_f32): Likewise. 30785 (__arm_vrev64q_m_f32): Likewise. 30786 (__arm_vrndaq_m_f32): Likewise. 30787 (__arm_vrndmq_m_f32): Likewise. 30788 (__arm_vrndnq_m_f32): Likewise. 30789 (__arm_vrndpq_m_f32): Likewise. 30790 (__arm_vrndq_m_f32): Likewise. 30791 (__arm_vrndxq_m_f32): Likewise. 30792 (__arm_vcmpeqq_m_n_f32): Likewise. 30793 (__arm_vcmpgeq_m_f32): Likewise. 30794 (__arm_vcmpgeq_m_n_f32): Likewise. 30795 (__arm_vcmpgtq_m_f32): Likewise. 30796 (__arm_vcmpgtq_m_n_f32): Likewise. 30797 (__arm_vcmpleq_m_f32): Likewise. 30798 (__arm_vcmpleq_m_n_f32): Likewise. 30799 (__arm_vcmpltq_m_f32): Likewise. 30800 (__arm_vcmpltq_m_n_f32): Likewise. 30801 (__arm_vcmpneq_m_f32): Likewise. 30802 (__arm_vcmpneq_m_n_f32): Likewise. 30803 (__arm_vcvtmq_m_u32_f32): Likewise. 30804 (__arm_vcvtnq_m_u32_f32): Likewise. 30805 (__arm_vcvtpq_m_u32_f32): Likewise. 30806 (__arm_vcvtq_m_u32_f32): Likewise. 30807 (vcvtq_m): Define polymorphic variant. 30808 (vabsq_m): Likewise. 30809 (vcmlaq): Likewise. 30810 (vcmlaq_rot180): Likewise. 30811 (vcmlaq_rot270): Likewise. 30812 (vcmlaq_rot90): Likewise. 30813 (vcmpeqq_m_n): Likewise. 30814 (vcmpgeq_m_n): Likewise. 30815 (vrndxq_m): Likewise. 30816 (vrndq_m): Likewise. 30817 (vrndpq_m): Likewise. 30818 (vcmpgtq_m_n): Likewise. 30819 (vcmpgtq_m): Likewise. 30820 (vcmpleq_m): Likewise. 30821 (vcmpleq_m_n): Likewise. 30822 (vcmpltq_m_n): Likewise. 30823 (vcmpltq_m): Likewise. 30824 (vcmpneq_m): Likewise. 30825 (vcmpneq_m_n): Likewise. 30826 (vcvtbq_m): Likewise. 30827 (vcvttq_m): Likewise. 30828 (vcvtmq_m): Likewise. 30829 (vcvtnq_m): Likewise. 30830 (vcvtpq_m): Likewise. 30831 (vdupq_m_n): Likewise. 30832 (vfmaq_n): Likewise. 30833 (vfmaq): Likewise. 30834 (vfmasq_n): Likewise. 30835 (vfmsq): Likewise. 30836 (vmaxnmaq_m): Likewise. 30837 (vmaxnmavq_m): Likewise. 30838 (vmaxnmvq_m): Likewise. 30839 (vmaxnmavq_p): Likewise. 30840 (vmaxnmvq_p): Likewise. 30841 (vminnmaq_m): Likewise. 30842 (vminnmavq_p): Likewise. 30843 (vminnmvq_p): Likewise. 30844 (vrndnq_m): Likewise. 30845 (vrndaq_m): Likewise. 30846 (vrndmq_m): Likewise. 30847 (vrev64q_m): Likewise. 30848 (vrev32q_m): Likewise. 30849 (vpselq): Likewise. 30850 (vnegq_m): Likewise. 30851 (vcmpgeq_m): Likewise. 30852 (vshrntq_n): Likewise. 30853 (vrshrntq_n): Likewise. 30854 (vmovlbq_m): Likewise. 30855 (vmovnbq_m): Likewise. 30856 (vmovntq_m): Likewise. 30857 (vmvnq_m_n): Likewise. 30858 (vmvnq_m): Likewise. 30859 (vshrnbq_n): Likewise. 30860 (vrshrnbq_n): Likewise. 30861 (vqshruntq_n): Likewise. 30862 (vrev16q_m): Likewise. 30863 (vqshrunbq_n): Likewise. 30864 (vqshrntq_n): Likewise. 30865 (vqrshruntq_n): Likewise. 30866 (vqrshrntq_n): Likewise. 30867 (vqshrnbq_n): Likewise. 30868 (vqmovuntq_m): Likewise. 30869 (vqmovntq_m): Likewise. 30870 (vqmovnbq_m): Likewise. 30871 (vorrq_m_n): Likewise. 30872 (vmovltq_m): Likewise. 30873 (vqmovunbq_m): Likewise. 30874 (vaddlvaq_p): Likewise. 30875 (vmlaldavaq): Likewise. 30876 (vmlaldavaxq): Likewise. 30877 (vmlaldavq_p): Likewise. 30878 (vmlaldavxq_p): Likewise. 30879 (vmlsldavaq): Likewise. 30880 (vmlsldavaxq): Likewise. 30881 (vmlsldavq_p): Likewise. 30882 (vmlsldavxq_p): Likewise. 30883 (vrmlaldavhaxq): Likewise. 30884 (vrmlaldavhq_p): Likewise. 30885 (vrmlaldavhxq_p): Likewise. 30886 (vrmlsldavhaq): Likewise. 30887 (vrmlsldavhaxq): Likewise. 30888 (vrmlsldavhq_p): Likewise. 30889 (vrmlsldavhxq_p): Likewise. 30890 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_IMM_UNONE): Use 30891 builtin qualifier. 30892 (TERNOP_NONE_NONE_NONE_IMM): Likewise. 30893 (TERNOP_NONE_NONE_NONE_NONE): Likewise. 30894 (TERNOP_NONE_NONE_NONE_UNONE): Likewise. 30895 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise. 30896 (TERNOP_UNONE_UNONE_IMM_UNONE): Likewise. 30897 (TERNOP_UNONE_UNONE_NONE_IMM): Likewise. 30898 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise. 30899 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise. 30900 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise. 30901 * config/arm/mve.md (MVE_constraint3): Define mode attribute iterator. 30902 (MVE_pred3): Likewise. 30903 (MVE_constraint1): Likewise. 30904 (MVE_pred1): Likewise. 30905 (VMLALDAVQ_P): Define iterator. 30906 (VQMOVNBQ_M): Likewise. 30907 (VMOVLTQ_M): Likewise. 30908 (VMOVNBQ_M): Likewise. 30909 (VRSHRNTQ_N): Likewise. 30910 (VORRQ_M_N): Likewise. 30911 (VREV32Q_M): Likewise. 30912 (VREV16Q_M): Likewise. 30913 (VQRSHRNTQ_N): Likewise. 30914 (VMOVNTQ_M): Likewise. 30915 (VMOVLBQ_M): Likewise. 30916 (VMLALDAVAQ): Likewise. 30917 (VQSHRNBQ_N): Likewise. 30918 (VSHRNBQ_N): Likewise. 30919 (VRSHRNBQ_N): Likewise. 30920 (VMLALDAVXQ_P): Likewise. 30921 (VQMOVNTQ_M): Likewise. 30922 (VMVNQ_M_N): Likewise. 30923 (VQSHRNTQ_N): Likewise. 30924 (VMLALDAVAXQ): Likewise. 30925 (VSHRNTQ_N): Likewise. 30926 (VCVTMQ_M): Likewise. 30927 (VCVTNQ_M): Likewise. 30928 (VCVTPQ_M): Likewise. 30929 (VCVTQ_M_N_FROM_F): Likewise. 30930 (VCVTQ_M_FROM_F): Likewise. 30931 (VRMLALDAVHQ_P): Likewise. 30932 (VADDLVAQ_P): Likewise. 30933 (mve_vrndq_m_f<mode>): Define RTL pattern. 30934 (mve_vabsq_m_f<mode>): Likewise. 30935 (mve_vaddlvaq_p_<supf>v4si): Likewise. 30936 (mve_vcmlaq_f<mode>): Likewise. 30937 (mve_vcmlaq_rot180_f<mode>): Likewise. 30938 (mve_vcmlaq_rot270_f<mode>): Likewise. 30939 (mve_vcmlaq_rot90_f<mode>): Likewise. 30940 (mve_vcmpeqq_m_n_f<mode>): Likewise. 30941 (mve_vcmpgeq_m_f<mode>): Likewise. 30942 (mve_vcmpgeq_m_n_f<mode>): Likewise. 30943 (mve_vcmpgtq_m_f<mode>): Likewise. 30944 (mve_vcmpgtq_m_n_f<mode>): Likewise. 30945 (mve_vcmpleq_m_f<mode>): Likewise. 30946 (mve_vcmpleq_m_n_f<mode>): Likewise. 30947 (mve_vcmpltq_m_f<mode>): Likewise. 30948 (mve_vcmpltq_m_n_f<mode>): Likewise. 30949 (mve_vcmpneq_m_f<mode>): Likewise. 30950 (mve_vcmpneq_m_n_f<mode>): Likewise. 30951 (mve_vcvtbq_m_f16_f32v8hf): Likewise. 30952 (mve_vcvtbq_m_f32_f16v4sf): Likewise. 30953 (mve_vcvttq_m_f16_f32v8hf): Likewise. 30954 (mve_vcvttq_m_f32_f16v4sf): Likewise. 30955 (mve_vdupq_m_n_f<mode>): Likewise. 30956 (mve_vfmaq_f<mode>): Likewise. 30957 (mve_vfmaq_n_f<mode>): Likewise. 30958 (mve_vfmasq_n_f<mode>): Likewise. 30959 (mve_vfmsq_f<mode>): Likewise. 30960 (mve_vmaxnmaq_m_f<mode>): Likewise. 30961 (mve_vmaxnmavq_p_f<mode>): Likewise. 30962 (mve_vmaxnmvq_p_f<mode>): Likewise. 30963 (mve_vminnmaq_m_f<mode>): Likewise. 30964 (mve_vminnmavq_p_f<mode>): Likewise. 30965 (mve_vminnmvq_p_f<mode>): Likewise. 30966 (mve_vmlaldavaq_<supf><mode>): Likewise. 30967 (mve_vmlaldavaxq_<supf><mode>): Likewise. 30968 (mve_vmlaldavq_p_<supf><mode>): Likewise. 30969 (mve_vmlaldavxq_p_<supf><mode>): Likewise. 30970 (mve_vmlsldavaq_s<mode>): Likewise. 30971 (mve_vmlsldavaxq_s<mode>): Likewise. 30972 (mve_vmlsldavq_p_s<mode>): Likewise. 30973 (mve_vmlsldavxq_p_s<mode>): Likewise. 30974 (mve_vmovlbq_m_<supf><mode>): Likewise. 30975 (mve_vmovltq_m_<supf><mode>): Likewise. 30976 (mve_vmovnbq_m_<supf><mode>): Likewise. 30977 (mve_vmovntq_m_<supf><mode>): Likewise. 30978 (mve_vmvnq_m_n_<supf><mode>): Likewise. 30979 (mve_vnegq_m_f<mode>): Likewise. 30980 (mve_vorrq_m_n_<supf><mode>): Likewise. 30981 (mve_vpselq_f<mode>): Likewise. 30982 (mve_vqmovnbq_m_<supf><mode>): Likewise. 30983 (mve_vqmovntq_m_<supf><mode>): Likewise. 30984 (mve_vqmovunbq_m_s<mode>): Likewise. 30985 (mve_vqmovuntq_m_s<mode>): Likewise. 30986 (mve_vqrshrntq_n_<supf><mode>): Likewise. 30987 (mve_vqrshruntq_n_s<mode>): Likewise. 30988 (mve_vqshrnbq_n_<supf><mode>): Likewise. 30989 (mve_vqshrntq_n_<supf><mode>): Likewise. 30990 (mve_vqshrunbq_n_s<mode>): Likewise. 30991 (mve_vqshruntq_n_s<mode>): Likewise. 30992 (mve_vrev32q_m_fv8hf): Likewise. 30993 (mve_vrev32q_m_<supf><mode>): Likewise. 30994 (mve_vrev64q_m_f<mode>): Likewise. 30995 (mve_vrmlaldavhaxq_sv4si): Likewise. 30996 (mve_vrmlaldavhxq_p_sv4si): Likewise. 30997 (mve_vrmlsldavhaxq_sv4si): Likewise. 30998 (mve_vrmlsldavhq_p_sv4si): Likewise. 30999 (mve_vrmlsldavhxq_p_sv4si): Likewise. 31000 (mve_vrndaq_m_f<mode>): Likewise. 31001 (mve_vrndmq_m_f<mode>): Likewise. 31002 (mve_vrndnq_m_f<mode>): Likewise. 31003 (mve_vrndpq_m_f<mode>): Likewise. 31004 (mve_vrndxq_m_f<mode>): Likewise. 31005 (mve_vrshrnbq_n_<supf><mode>): Likewise. 31006 (mve_vrshrntq_n_<supf><mode>): Likewise. 31007 (mve_vshrnbq_n_<supf><mode>): Likewise. 31008 (mve_vshrntq_n_<supf><mode>): Likewise. 31009 (mve_vcvtmq_m_<supf><mode>): Likewise. 31010 (mve_vcvtpq_m_<supf><mode>): Likewise. 31011 (mve_vcvtnq_m_<supf><mode>): Likewise. 31012 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise. 31013 (mve_vrev16q_m_<supf>v16qi): Likewise. 31014 (mve_vcvtq_m_from_f_<supf><mode>): Likewise. 31015 (mve_vrmlaldavhq_p_<supf>v4si): Likewise. 31016 (mve_vrmlsldavhaq_sv4si): Likewise. 31017 310182020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 31019 Mihail Ionescu <mihail.ionescu@arm.com> 31020 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 31021 31022 * config/arm/arm_mve.h (vpselq_u8): Define macro. 31023 (vpselq_s8): Likewise. 31024 (vrev64q_m_u8): Likewise. 31025 (vqrdmlashq_n_u8): Likewise. 31026 (vqrdmlahq_n_u8): Likewise. 31027 (vqdmlahq_n_u8): Likewise. 31028 (vmvnq_m_u8): Likewise. 31029 (vmlasq_n_u8): Likewise. 31030 (vmlaq_n_u8): Likewise. 31031 (vmladavq_p_u8): Likewise. 31032 (vmladavaq_u8): Likewise. 31033 (vminvq_p_u8): Likewise. 31034 (vmaxvq_p_u8): Likewise. 31035 (vdupq_m_n_u8): Likewise. 31036 (vcmpneq_m_u8): Likewise. 31037 (vcmpneq_m_n_u8): Likewise. 31038 (vcmphiq_m_u8): Likewise. 31039 (vcmphiq_m_n_u8): Likewise. 31040 (vcmpeqq_m_u8): Likewise. 31041 (vcmpeqq_m_n_u8): Likewise. 31042 (vcmpcsq_m_u8): Likewise. 31043 (vcmpcsq_m_n_u8): Likewise. 31044 (vclzq_m_u8): Likewise. 31045 (vaddvaq_p_u8): Likewise. 31046 (vsriq_n_u8): Likewise. 31047 (vsliq_n_u8): Likewise. 31048 (vshlq_m_r_u8): Likewise. 31049 (vrshlq_m_n_u8): Likewise. 31050 (vqshlq_m_r_u8): Likewise. 31051 (vqrshlq_m_n_u8): Likewise. 31052 (vminavq_p_s8): Likewise. 31053 (vminaq_m_s8): Likewise. 31054 (vmaxavq_p_s8): Likewise. 31055 (vmaxaq_m_s8): Likewise. 31056 (vcmpneq_m_s8): Likewise. 31057 (vcmpneq_m_n_s8): Likewise. 31058 (vcmpltq_m_s8): Likewise. 31059 (vcmpltq_m_n_s8): Likewise. 31060 (vcmpleq_m_s8): Likewise. 31061 (vcmpleq_m_n_s8): Likewise. 31062 (vcmpgtq_m_s8): Likewise. 31063 (vcmpgtq_m_n_s8): Likewise. 31064 (vcmpgeq_m_s8): Likewise. 31065 (vcmpgeq_m_n_s8): Likewise. 31066 (vcmpeqq_m_s8): Likewise. 31067 (vcmpeqq_m_n_s8): Likewise. 31068 (vshlq_m_r_s8): Likewise. 31069 (vrshlq_m_n_s8): Likewise. 31070 (vrev64q_m_s8): Likewise. 31071 (vqshlq_m_r_s8): Likewise. 31072 (vqrshlq_m_n_s8): Likewise. 31073 (vqnegq_m_s8): Likewise. 31074 (vqabsq_m_s8): Likewise. 31075 (vnegq_m_s8): Likewise. 31076 (vmvnq_m_s8): Likewise. 31077 (vmlsdavxq_p_s8): Likewise. 31078 (vmlsdavq_p_s8): Likewise. 31079 (vmladavxq_p_s8): Likewise. 31080 (vmladavq_p_s8): Likewise. 31081 (vminvq_p_s8): Likewise. 31082 (vmaxvq_p_s8): Likewise. 31083 (vdupq_m_n_s8): Likewise. 31084 (vclzq_m_s8): Likewise. 31085 (vclsq_m_s8): Likewise. 31086 (vaddvaq_p_s8): Likewise. 31087 (vabsq_m_s8): Likewise. 31088 (vqrdmlsdhxq_s8): Likewise. 31089 (vqrdmlsdhq_s8): Likewise. 31090 (vqrdmlashq_n_s8): Likewise. 31091 (vqrdmlahq_n_s8): Likewise. 31092 (vqrdmladhxq_s8): Likewise. 31093 (vqrdmladhq_s8): Likewise. 31094 (vqdmlsdhxq_s8): Likewise. 31095 (vqdmlsdhq_s8): Likewise. 31096 (vqdmlahq_n_s8): Likewise. 31097 (vqdmladhxq_s8): Likewise. 31098 (vqdmladhq_s8): Likewise. 31099 (vmlsdavaxq_s8): Likewise. 31100 (vmlsdavaq_s8): Likewise. 31101 (vmlasq_n_s8): Likewise. 31102 (vmlaq_n_s8): Likewise. 31103 (vmladavaxq_s8): Likewise. 31104 (vmladavaq_s8): Likewise. 31105 (vsriq_n_s8): Likewise. 31106 (vsliq_n_s8): Likewise. 31107 (vpselq_u16): Likewise. 31108 (vpselq_s16): Likewise. 31109 (vrev64q_m_u16): Likewise. 31110 (vqrdmlashq_n_u16): Likewise. 31111 (vqrdmlahq_n_u16): Likewise. 31112 (vqdmlahq_n_u16): Likewise. 31113 (vmvnq_m_u16): Likewise. 31114 (vmlasq_n_u16): Likewise. 31115 (vmlaq_n_u16): Likewise. 31116 (vmladavq_p_u16): Likewise. 31117 (vmladavaq_u16): Likewise. 31118 (vminvq_p_u16): Likewise. 31119 (vmaxvq_p_u16): Likewise. 31120 (vdupq_m_n_u16): Likewise. 31121 (vcmpneq_m_u16): Likewise. 31122 (vcmpneq_m_n_u16): Likewise. 31123 (vcmphiq_m_u16): Likewise. 31124 (vcmphiq_m_n_u16): Likewise. 31125 (vcmpeqq_m_u16): Likewise. 31126 (vcmpeqq_m_n_u16): Likewise. 31127 (vcmpcsq_m_u16): Likewise. 31128 (vcmpcsq_m_n_u16): Likewise. 31129 (vclzq_m_u16): Likewise. 31130 (vaddvaq_p_u16): Likewise. 31131 (vsriq_n_u16): Likewise. 31132 (vsliq_n_u16): Likewise. 31133 (vshlq_m_r_u16): Likewise. 31134 (vrshlq_m_n_u16): Likewise. 31135 (vqshlq_m_r_u16): Likewise. 31136 (vqrshlq_m_n_u16): Likewise. 31137 (vminavq_p_s16): Likewise. 31138 (vminaq_m_s16): Likewise. 31139 (vmaxavq_p_s16): Likewise. 31140 (vmaxaq_m_s16): Likewise. 31141 (vcmpneq_m_s16): Likewise. 31142 (vcmpneq_m_n_s16): Likewise. 31143 (vcmpltq_m_s16): Likewise. 31144 (vcmpltq_m_n_s16): Likewise. 31145 (vcmpleq_m_s16): Likewise. 31146 (vcmpleq_m_n_s16): Likewise. 31147 (vcmpgtq_m_s16): Likewise. 31148 (vcmpgtq_m_n_s16): Likewise. 31149 (vcmpgeq_m_s16): Likewise. 31150 (vcmpgeq_m_n_s16): Likewise. 31151 (vcmpeqq_m_s16): Likewise. 31152 (vcmpeqq_m_n_s16): Likewise. 31153 (vshlq_m_r_s16): Likewise. 31154 (vrshlq_m_n_s16): Likewise. 31155 (vrev64q_m_s16): Likewise. 31156 (vqshlq_m_r_s16): Likewise. 31157 (vqrshlq_m_n_s16): Likewise. 31158 (vqnegq_m_s16): Likewise. 31159 (vqabsq_m_s16): Likewise. 31160 (vnegq_m_s16): Likewise. 31161 (vmvnq_m_s16): Likewise. 31162 (vmlsdavxq_p_s16): Likewise. 31163 (vmlsdavq_p_s16): Likewise. 31164 (vmladavxq_p_s16): Likewise. 31165 (vmladavq_p_s16): Likewise. 31166 (vminvq_p_s16): Likewise. 31167 (vmaxvq_p_s16): Likewise. 31168 (vdupq_m_n_s16): Likewise. 31169 (vclzq_m_s16): Likewise. 31170 (vclsq_m_s16): Likewise. 31171 (vaddvaq_p_s16): Likewise. 31172 (vabsq_m_s16): Likewise. 31173 (vqrdmlsdhxq_s16): Likewise. 31174 (vqrdmlsdhq_s16): Likewise. 31175 (vqrdmlashq_n_s16): Likewise. 31176 (vqrdmlahq_n_s16): Likewise. 31177 (vqrdmladhxq_s16): Likewise. 31178 (vqrdmladhq_s16): Likewise. 31179 (vqdmlsdhxq_s16): Likewise. 31180 (vqdmlsdhq_s16): Likewise. 31181 (vqdmlahq_n_s16): Likewise. 31182 (vqdmladhxq_s16): Likewise. 31183 (vqdmladhq_s16): Likewise. 31184 (vmlsdavaxq_s16): Likewise. 31185 (vmlsdavaq_s16): Likewise. 31186 (vmlasq_n_s16): Likewise. 31187 (vmlaq_n_s16): Likewise. 31188 (vmladavaxq_s16): Likewise. 31189 (vmladavaq_s16): Likewise. 31190 (vsriq_n_s16): Likewise. 31191 (vsliq_n_s16): Likewise. 31192 (vpselq_u32): Likewise. 31193 (vpselq_s32): Likewise. 31194 (vrev64q_m_u32): Likewise. 31195 (vqrdmlashq_n_u32): Likewise. 31196 (vqrdmlahq_n_u32): Likewise. 31197 (vqdmlahq_n_u32): Likewise. 31198 (vmvnq_m_u32): Likewise. 31199 (vmlasq_n_u32): Likewise. 31200 (vmlaq_n_u32): Likewise. 31201 (vmladavq_p_u32): Likewise. 31202 (vmladavaq_u32): Likewise. 31203 (vminvq_p_u32): Likewise. 31204 (vmaxvq_p_u32): Likewise. 31205 (vdupq_m_n_u32): Likewise. 31206 (vcmpneq_m_u32): Likewise. 31207 (vcmpneq_m_n_u32): Likewise. 31208 (vcmphiq_m_u32): Likewise. 31209 (vcmphiq_m_n_u32): Likewise. 31210 (vcmpeqq_m_u32): Likewise. 31211 (vcmpeqq_m_n_u32): Likewise. 31212 (vcmpcsq_m_u32): Likewise. 31213 (vcmpcsq_m_n_u32): Likewise. 31214 (vclzq_m_u32): Likewise. 31215 (vaddvaq_p_u32): Likewise. 31216 (vsriq_n_u32): Likewise. 31217 (vsliq_n_u32): Likewise. 31218 (vshlq_m_r_u32): Likewise. 31219 (vrshlq_m_n_u32): Likewise. 31220 (vqshlq_m_r_u32): Likewise. 31221 (vqrshlq_m_n_u32): Likewise. 31222 (vminavq_p_s32): Likewise. 31223 (vminaq_m_s32): Likewise. 31224 (vmaxavq_p_s32): Likewise. 31225 (vmaxaq_m_s32): Likewise. 31226 (vcmpneq_m_s32): Likewise. 31227 (vcmpneq_m_n_s32): Likewise. 31228 (vcmpltq_m_s32): Likewise. 31229 (vcmpltq_m_n_s32): Likewise. 31230 (vcmpleq_m_s32): Likewise. 31231 (vcmpleq_m_n_s32): Likewise. 31232 (vcmpgtq_m_s32): Likewise. 31233 (vcmpgtq_m_n_s32): Likewise. 31234 (vcmpgeq_m_s32): Likewise. 31235 (vcmpgeq_m_n_s32): Likewise. 31236 (vcmpeqq_m_s32): Likewise. 31237 (vcmpeqq_m_n_s32): Likewise. 31238 (vshlq_m_r_s32): Likewise. 31239 (vrshlq_m_n_s32): Likewise. 31240 (vrev64q_m_s32): Likewise. 31241 (vqshlq_m_r_s32): Likewise. 31242 (vqrshlq_m_n_s32): Likewise. 31243 (vqnegq_m_s32): Likewise. 31244 (vqabsq_m_s32): Likewise. 31245 (vnegq_m_s32): Likewise. 31246 (vmvnq_m_s32): Likewise. 31247 (vmlsdavxq_p_s32): Likewise. 31248 (vmlsdavq_p_s32): Likewise. 31249 (vmladavxq_p_s32): Likewise. 31250 (vmladavq_p_s32): Likewise. 31251 (vminvq_p_s32): Likewise. 31252 (vmaxvq_p_s32): Likewise. 31253 (vdupq_m_n_s32): Likewise. 31254 (vclzq_m_s32): Likewise. 31255 (vclsq_m_s32): Likewise. 31256 (vaddvaq_p_s32): Likewise. 31257 (vabsq_m_s32): Likewise. 31258 (vqrdmlsdhxq_s32): Likewise. 31259 (vqrdmlsdhq_s32): Likewise. 31260 (vqrdmlashq_n_s32): Likewise. 31261 (vqrdmlahq_n_s32): Likewise. 31262 (vqrdmladhxq_s32): Likewise. 31263 (vqrdmladhq_s32): Likewise. 31264 (vqdmlsdhxq_s32): Likewise. 31265 (vqdmlsdhq_s32): Likewise. 31266 (vqdmlahq_n_s32): Likewise. 31267 (vqdmladhxq_s32): Likewise. 31268 (vqdmladhq_s32): Likewise. 31269 (vmlsdavaxq_s32): Likewise. 31270 (vmlsdavaq_s32): Likewise. 31271 (vmlasq_n_s32): Likewise. 31272 (vmlaq_n_s32): Likewise. 31273 (vmladavaxq_s32): Likewise. 31274 (vmladavaq_s32): Likewise. 31275 (vsriq_n_s32): Likewise. 31276 (vsliq_n_s32): Likewise. 31277 (vpselq_u64): Likewise. 31278 (vpselq_s64): Likewise. 31279 (__arm_vpselq_u8): Define intrinsic. 31280 (__arm_vpselq_s8): Likewise. 31281 (__arm_vrev64q_m_u8): Likewise. 31282 (__arm_vqrdmlashq_n_u8): Likewise. 31283 (__arm_vqrdmlahq_n_u8): Likewise. 31284 (__arm_vqdmlahq_n_u8): Likewise. 31285 (__arm_vmvnq_m_u8): Likewise. 31286 (__arm_vmlasq_n_u8): Likewise. 31287 (__arm_vmlaq_n_u8): Likewise. 31288 (__arm_vmladavq_p_u8): Likewise. 31289 (__arm_vmladavaq_u8): Likewise. 31290 (__arm_vminvq_p_u8): Likewise. 31291 (__arm_vmaxvq_p_u8): Likewise. 31292 (__arm_vdupq_m_n_u8): Likewise. 31293 (__arm_vcmpneq_m_u8): Likewise. 31294 (__arm_vcmpneq_m_n_u8): Likewise. 31295 (__arm_vcmphiq_m_u8): Likewise. 31296 (__arm_vcmphiq_m_n_u8): Likewise. 31297 (__arm_vcmpeqq_m_u8): Likewise. 31298 (__arm_vcmpeqq_m_n_u8): Likewise. 31299 (__arm_vcmpcsq_m_u8): Likewise. 31300 (__arm_vcmpcsq_m_n_u8): Likewise. 31301 (__arm_vclzq_m_u8): Likewise. 31302 (__arm_vaddvaq_p_u8): Likewise. 31303 (__arm_vsriq_n_u8): Likewise. 31304 (__arm_vsliq_n_u8): Likewise. 31305 (__arm_vshlq_m_r_u8): Likewise. 31306 (__arm_vrshlq_m_n_u8): Likewise. 31307 (__arm_vqshlq_m_r_u8): Likewise. 31308 (__arm_vqrshlq_m_n_u8): Likewise. 31309 (__arm_vminavq_p_s8): Likewise. 31310 (__arm_vminaq_m_s8): Likewise. 31311 (__arm_vmaxavq_p_s8): Likewise. 31312 (__arm_vmaxaq_m_s8): Likewise. 31313 (__arm_vcmpneq_m_s8): Likewise. 31314 (__arm_vcmpneq_m_n_s8): Likewise. 31315 (__arm_vcmpltq_m_s8): Likewise. 31316 (__arm_vcmpltq_m_n_s8): Likewise. 31317 (__arm_vcmpleq_m_s8): Likewise. 31318 (__arm_vcmpleq_m_n_s8): Likewise. 31319 (__arm_vcmpgtq_m_s8): Likewise. 31320 (__arm_vcmpgtq_m_n_s8): Likewise. 31321 (__arm_vcmpgeq_m_s8): Likewise. 31322 (__arm_vcmpgeq_m_n_s8): Likewise. 31323 (__arm_vcmpeqq_m_s8): Likewise. 31324 (__arm_vcmpeqq_m_n_s8): Likewise. 31325 (__arm_vshlq_m_r_s8): Likewise. 31326 (__arm_vrshlq_m_n_s8): Likewise. 31327 (__arm_vrev64q_m_s8): Likewise. 31328 (__arm_vqshlq_m_r_s8): Likewise. 31329 (__arm_vqrshlq_m_n_s8): Likewise. 31330 (__arm_vqnegq_m_s8): Likewise. 31331 (__arm_vqabsq_m_s8): Likewise. 31332 (__arm_vnegq_m_s8): Likewise. 31333 (__arm_vmvnq_m_s8): Likewise. 31334 (__arm_vmlsdavxq_p_s8): Likewise. 31335 (__arm_vmlsdavq_p_s8): Likewise. 31336 (__arm_vmladavxq_p_s8): Likewise. 31337 (__arm_vmladavq_p_s8): Likewise. 31338 (__arm_vminvq_p_s8): Likewise. 31339 (__arm_vmaxvq_p_s8): Likewise. 31340 (__arm_vdupq_m_n_s8): Likewise. 31341 (__arm_vclzq_m_s8): Likewise. 31342 (__arm_vclsq_m_s8): Likewise. 31343 (__arm_vaddvaq_p_s8): Likewise. 31344 (__arm_vabsq_m_s8): Likewise. 31345 (__arm_vqrdmlsdhxq_s8): Likewise. 31346 (__arm_vqrdmlsdhq_s8): Likewise. 31347 (__arm_vqrdmlashq_n_s8): Likewise. 31348 (__arm_vqrdmlahq_n_s8): Likewise. 31349 (__arm_vqrdmladhxq_s8): Likewise. 31350 (__arm_vqrdmladhq_s8): Likewise. 31351 (__arm_vqdmlsdhxq_s8): Likewise. 31352 (__arm_vqdmlsdhq_s8): Likewise. 31353 (__arm_vqdmlahq_n_s8): Likewise. 31354 (__arm_vqdmladhxq_s8): Likewise. 31355 (__arm_vqdmladhq_s8): Likewise. 31356 (__arm_vmlsdavaxq_s8): Likewise. 31357 (__arm_vmlsdavaq_s8): Likewise. 31358 (__arm_vmlasq_n_s8): Likewise. 31359 (__arm_vmlaq_n_s8): Likewise. 31360 (__arm_vmladavaxq_s8): Likewise. 31361 (__arm_vmladavaq_s8): Likewise. 31362 (__arm_vsriq_n_s8): Likewise. 31363 (__arm_vsliq_n_s8): Likewise. 31364 (__arm_vpselq_u16): Likewise. 31365 (__arm_vpselq_s16): Likewise. 31366 (__arm_vrev64q_m_u16): Likewise. 31367 (__arm_vqrdmlashq_n_u16): Likewise. 31368 (__arm_vqrdmlahq_n_u16): Likewise. 31369 (__arm_vqdmlahq_n_u16): Likewise. 31370 (__arm_vmvnq_m_u16): Likewise. 31371 (__arm_vmlasq_n_u16): Likewise. 31372 (__arm_vmlaq_n_u16): Likewise. 31373 (__arm_vmladavq_p_u16): Likewise. 31374 (__arm_vmladavaq_u16): Likewise. 31375 (__arm_vminvq_p_u16): Likewise. 31376 (__arm_vmaxvq_p_u16): Likewise. 31377 (__arm_vdupq_m_n_u16): Likewise. 31378 (__arm_vcmpneq_m_u16): Likewise. 31379 (__arm_vcmpneq_m_n_u16): Likewise. 31380 (__arm_vcmphiq_m_u16): Likewise. 31381 (__arm_vcmphiq_m_n_u16): Likewise. 31382 (__arm_vcmpeqq_m_u16): Likewise. 31383 (__arm_vcmpeqq_m_n_u16): Likewise. 31384 (__arm_vcmpcsq_m_u16): Likewise. 31385 (__arm_vcmpcsq_m_n_u16): Likewise. 31386 (__arm_vclzq_m_u16): Likewise. 31387 (__arm_vaddvaq_p_u16): Likewise. 31388 (__arm_vsriq_n_u16): Likewise. 31389 (__arm_vsliq_n_u16): Likewise. 31390 (__arm_vshlq_m_r_u16): Likewise. 31391 (__arm_vrshlq_m_n_u16): Likewise. 31392 (__arm_vqshlq_m_r_u16): Likewise. 31393 (__arm_vqrshlq_m_n_u16): Likewise. 31394 (__arm_vminavq_p_s16): Likewise. 31395 (__arm_vminaq_m_s16): Likewise. 31396 (__arm_vmaxavq_p_s16): Likewise. 31397 (__arm_vmaxaq_m_s16): Likewise. 31398 (__arm_vcmpneq_m_s16): Likewise. 31399 (__arm_vcmpneq_m_n_s16): Likewise. 31400 (__arm_vcmpltq_m_s16): Likewise. 31401 (__arm_vcmpltq_m_n_s16): Likewise. 31402 (__arm_vcmpleq_m_s16): Likewise. 31403 (__arm_vcmpleq_m_n_s16): Likewise. 31404 (__arm_vcmpgtq_m_s16): Likewise. 31405 (__arm_vcmpgtq_m_n_s16): Likewise. 31406 (__arm_vcmpgeq_m_s16): Likewise. 31407 (__arm_vcmpgeq_m_n_s16): Likewise. 31408 (__arm_vcmpeqq_m_s16): Likewise. 31409 (__arm_vcmpeqq_m_n_s16): Likewise. 31410 (__arm_vshlq_m_r_s16): Likewise. 31411 (__arm_vrshlq_m_n_s16): Likewise. 31412 (__arm_vrev64q_m_s16): Likewise. 31413 (__arm_vqshlq_m_r_s16): Likewise. 31414 (__arm_vqrshlq_m_n_s16): Likewise. 31415 (__arm_vqnegq_m_s16): Likewise. 31416 (__arm_vqabsq_m_s16): Likewise. 31417 (__arm_vnegq_m_s16): Likewise. 31418 (__arm_vmvnq_m_s16): Likewise. 31419 (__arm_vmlsdavxq_p_s16): Likewise. 31420 (__arm_vmlsdavq_p_s16): Likewise. 31421 (__arm_vmladavxq_p_s16): Likewise. 31422 (__arm_vmladavq_p_s16): Likewise. 31423 (__arm_vminvq_p_s16): Likewise. 31424 (__arm_vmaxvq_p_s16): Likewise. 31425 (__arm_vdupq_m_n_s16): Likewise. 31426 (__arm_vclzq_m_s16): Likewise. 31427 (__arm_vclsq_m_s16): Likewise. 31428 (__arm_vaddvaq_p_s16): Likewise. 31429 (__arm_vabsq_m_s16): Likewise. 31430 (__arm_vqrdmlsdhxq_s16): Likewise. 31431 (__arm_vqrdmlsdhq_s16): Likewise. 31432 (__arm_vqrdmlashq_n_s16): Likewise. 31433 (__arm_vqrdmlahq_n_s16): Likewise. 31434 (__arm_vqrdmladhxq_s16): Likewise. 31435 (__arm_vqrdmladhq_s16): Likewise. 31436 (__arm_vqdmlsdhxq_s16): Likewise. 31437 (__arm_vqdmlsdhq_s16): Likewise. 31438 (__arm_vqdmlahq_n_s16): Likewise. 31439 (__arm_vqdmladhxq_s16): Likewise. 31440 (__arm_vqdmladhq_s16): Likewise. 31441 (__arm_vmlsdavaxq_s16): Likewise. 31442 (__arm_vmlsdavaq_s16): Likewise. 31443 (__arm_vmlasq_n_s16): Likewise. 31444 (__arm_vmlaq_n_s16): Likewise. 31445 (__arm_vmladavaxq_s16): Likewise. 31446 (__arm_vmladavaq_s16): Likewise. 31447 (__arm_vsriq_n_s16): Likewise. 31448 (__arm_vsliq_n_s16): Likewise. 31449 (__arm_vpselq_u32): Likewise. 31450 (__arm_vpselq_s32): Likewise. 31451 (__arm_vrev64q_m_u32): Likewise. 31452 (__arm_vqrdmlashq_n_u32): Likewise. 31453 (__arm_vqrdmlahq_n_u32): Likewise. 31454 (__arm_vqdmlahq_n_u32): Likewise. 31455 (__arm_vmvnq_m_u32): Likewise. 31456 (__arm_vmlasq_n_u32): Likewise. 31457 (__arm_vmlaq_n_u32): Likewise. 31458 (__arm_vmladavq_p_u32): Likewise. 31459 (__arm_vmladavaq_u32): Likewise. 31460 (__arm_vminvq_p_u32): Likewise. 31461 (__arm_vmaxvq_p_u32): Likewise. 31462 (__arm_vdupq_m_n_u32): Likewise. 31463 (__arm_vcmpneq_m_u32): Likewise. 31464 (__arm_vcmpneq_m_n_u32): Likewise. 31465 (__arm_vcmphiq_m_u32): Likewise. 31466 (__arm_vcmphiq_m_n_u32): Likewise. 31467 (__arm_vcmpeqq_m_u32): Likewise. 31468 (__arm_vcmpeqq_m_n_u32): Likewise. 31469 (__arm_vcmpcsq_m_u32): Likewise. 31470 (__arm_vcmpcsq_m_n_u32): Likewise. 31471 (__arm_vclzq_m_u32): Likewise. 31472 (__arm_vaddvaq_p_u32): Likewise. 31473 (__arm_vsriq_n_u32): Likewise. 31474 (__arm_vsliq_n_u32): Likewise. 31475 (__arm_vshlq_m_r_u32): Likewise. 31476 (__arm_vrshlq_m_n_u32): Likewise. 31477 (__arm_vqshlq_m_r_u32): Likewise. 31478 (__arm_vqrshlq_m_n_u32): Likewise. 31479 (__arm_vminavq_p_s32): Likewise. 31480 (__arm_vminaq_m_s32): Likewise. 31481 (__arm_vmaxavq_p_s32): Likewise. 31482 (__arm_vmaxaq_m_s32): Likewise. 31483 (__arm_vcmpneq_m_s32): Likewise. 31484 (__arm_vcmpneq_m_n_s32): Likewise. 31485 (__arm_vcmpltq_m_s32): Likewise. 31486 (__arm_vcmpltq_m_n_s32): Likewise. 31487 (__arm_vcmpleq_m_s32): Likewise. 31488 (__arm_vcmpleq_m_n_s32): Likewise. 31489 (__arm_vcmpgtq_m_s32): Likewise. 31490 (__arm_vcmpgtq_m_n_s32): Likewise. 31491 (__arm_vcmpgeq_m_s32): Likewise. 31492 (__arm_vcmpgeq_m_n_s32): Likewise. 31493 (__arm_vcmpeqq_m_s32): Likewise. 31494 (__arm_vcmpeqq_m_n_s32): Likewise. 31495 (__arm_vshlq_m_r_s32): Likewise. 31496 (__arm_vrshlq_m_n_s32): Likewise. 31497 (__arm_vrev64q_m_s32): Likewise. 31498 (__arm_vqshlq_m_r_s32): Likewise. 31499 (__arm_vqrshlq_m_n_s32): Likewise. 31500 (__arm_vqnegq_m_s32): Likewise. 31501 (__arm_vqabsq_m_s32): Likewise. 31502 (__arm_vnegq_m_s32): Likewise. 31503 (__arm_vmvnq_m_s32): Likewise. 31504 (__arm_vmlsdavxq_p_s32): Likewise. 31505 (__arm_vmlsdavq_p_s32): Likewise. 31506 (__arm_vmladavxq_p_s32): Likewise. 31507 (__arm_vmladavq_p_s32): Likewise. 31508 (__arm_vminvq_p_s32): Likewise. 31509 (__arm_vmaxvq_p_s32): Likewise. 31510 (__arm_vdupq_m_n_s32): Likewise. 31511 (__arm_vclzq_m_s32): Likewise. 31512 (__arm_vclsq_m_s32): Likewise. 31513 (__arm_vaddvaq_p_s32): Likewise. 31514 (__arm_vabsq_m_s32): Likewise. 31515 (__arm_vqrdmlsdhxq_s32): Likewise. 31516 (__arm_vqrdmlsdhq_s32): Likewise. 31517 (__arm_vqrdmlashq_n_s32): Likewise. 31518 (__arm_vqrdmlahq_n_s32): Likewise. 31519 (__arm_vqrdmladhxq_s32): Likewise. 31520 (__arm_vqrdmladhq_s32): Likewise. 31521 (__arm_vqdmlsdhxq_s32): Likewise. 31522 (__arm_vqdmlsdhq_s32): Likewise. 31523 (__arm_vqdmlahq_n_s32): Likewise. 31524 (__arm_vqdmladhxq_s32): Likewise. 31525 (__arm_vqdmladhq_s32): Likewise. 31526 (__arm_vmlsdavaxq_s32): Likewise. 31527 (__arm_vmlsdavaq_s32): Likewise. 31528 (__arm_vmlasq_n_s32): Likewise. 31529 (__arm_vmlaq_n_s32): Likewise. 31530 (__arm_vmladavaxq_s32): Likewise. 31531 (__arm_vmladavaq_s32): Likewise. 31532 (__arm_vsriq_n_s32): Likewise. 31533 (__arm_vsliq_n_s32): Likewise. 31534 (__arm_vpselq_u64): Likewise. 31535 (__arm_vpselq_s64): Likewise. 31536 (vcmpneq_m_n): Define polymorphic variant. 31537 (vcmpneq_m): Likewise. 31538 (vqrdmlsdhq): Likewise. 31539 (vqrdmlsdhxq): Likewise. 31540 (vqrshlq_m_n): Likewise. 31541 (vqshlq_m_r): Likewise. 31542 (vrev64q_m): Likewise. 31543 (vrshlq_m_n): Likewise. 31544 (vshlq_m_r): Likewise. 31545 (vsliq_n): Likewise. 31546 (vsriq_n): Likewise. 31547 (vqrdmlashq_n): Likewise. 31548 (vqrdmlahq): Likewise. 31549 (vqrdmladhxq): Likewise. 31550 (vqrdmladhq): Likewise. 31551 (vqnegq_m): Likewise. 31552 (vqdmlsdhxq): Likewise. 31553 (vabsq_m): Likewise. 31554 (vclsq_m): Likewise. 31555 (vclzq_m): Likewise. 31556 (vcmpgeq_m): Likewise. 31557 (vcmpgeq_m_n): Likewise. 31558 (vdupq_m_n): Likewise. 31559 (vmaxaq_m): Likewise. 31560 (vmlaq_n): Likewise. 31561 (vmlasq_n): Likewise. 31562 (vmvnq_m): Likewise. 31563 (vnegq_m): Likewise. 31564 (vpselq): Likewise. 31565 (vqdmlahq_n): Likewise. 31566 (vqrdmlahq_n): Likewise. 31567 (vqdmlsdhq): Likewise. 31568 (vqdmladhq): Likewise. 31569 (vqabsq_m): Likewise. 31570 (vminaq_m): Likewise. 31571 (vrmlaldavhaq): Likewise. 31572 (vmlsdavxq_p): Likewise. 31573 (vmlsdavq_p): Likewise. 31574 (vmlsdavaxq): Likewise. 31575 (vmlsdavaq): Likewise. 31576 (vaddvaq_p): Likewise. 31577 (vcmpcsq_m_n): Likewise. 31578 (vcmpcsq_m): Likewise. 31579 (vcmpeqq_m_n): Likewise. 31580 (vcmpeqq_m): Likewise. 31581 (vmladavxq_p): Likewise. 31582 (vmladavq_p): Likewise. 31583 (vmladavaxq): Likewise. 31584 (vmladavaq): Likewise. 31585 (vminvq_p): Likewise. 31586 (vminavq_p): Likewise. 31587 (vmaxvq_p): Likewise. 31588 (vmaxavq_p): Likewise. 31589 (vcmpltq_m_n): Likewise. 31590 (vcmpltq_m): Likewise. 31591 (vcmpleq_m): Likewise. 31592 (vcmpleq_m_n): Likewise. 31593 (vcmphiq_m_n): Likewise. 31594 (vcmphiq_m): Likewise. 31595 (vcmpgtq_m_n): Likewise. 31596 (vcmpgtq_m): Likewise. 31597 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_NONE_IMM): Use 31598 builtin qualifier. 31599 (TERNOP_NONE_NONE_NONE_NONE): Likewise. 31600 (TERNOP_NONE_NONE_NONE_UNONE): Likewise. 31601 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise. 31602 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise. 31603 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise. 31604 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise. 31605 * config/arm/constraints.md (Rc): Define constraint to check constant is 31606 in the range of 0 to 15. 31607 (Re): Define constraint to check constant is in the range of 0 to 31. 31608 * config/arm/mve.md (VADDVAQ_P): Define iterator. 31609 (VCLZQ_M): Likewise. 31610 (VCMPEQQ_M_N): Likewise. 31611 (VCMPEQQ_M): Likewise. 31612 (VCMPNEQ_M_N): Likewise. 31613 (VCMPNEQ_M): Likewise. 31614 (VDUPQ_M_N): Likewise. 31615 (VMAXVQ_P): Likewise. 31616 (VMINVQ_P): Likewise. 31617 (VMLADAVAQ): Likewise. 31618 (VMLADAVQ_P): Likewise. 31619 (VMLAQ_N): Likewise. 31620 (VMLASQ_N): Likewise. 31621 (VMVNQ_M): Likewise. 31622 (VPSELQ): Likewise. 31623 (VQDMLAHQ_N): Likewise. 31624 (VQRDMLAHQ_N): Likewise. 31625 (VQRDMLASHQ_N): Likewise. 31626 (VQRSHLQ_M_N): Likewise. 31627 (VQSHLQ_M_R): Likewise. 31628 (VREV64Q_M): Likewise. 31629 (VRSHLQ_M_N): Likewise. 31630 (VSHLQ_M_R): Likewise. 31631 (VSLIQ_N): Likewise. 31632 (VSRIQ_N): Likewise. 31633 (mve_vabsq_m_s<mode>): Define RTL pattern. 31634 (mve_vaddvaq_p_<supf><mode>): Likewise. 31635 (mve_vclsq_m_s<mode>): Likewise. 31636 (mve_vclzq_m_<supf><mode>): Likewise. 31637 (mve_vcmpcsq_m_n_u<mode>): Likewise. 31638 (mve_vcmpcsq_m_u<mode>): Likewise. 31639 (mve_vcmpeqq_m_n_<supf><mode>): Likewise. 31640 (mve_vcmpeqq_m_<supf><mode>): Likewise. 31641 (mve_vcmpgeq_m_n_s<mode>): Likewise. 31642 (mve_vcmpgeq_m_s<mode>): Likewise. 31643 (mve_vcmpgtq_m_n_s<mode>): Likewise. 31644 (mve_vcmpgtq_m_s<mode>): Likewise. 31645 (mve_vcmphiq_m_n_u<mode>): Likewise. 31646 (mve_vcmphiq_m_u<mode>): Likewise. 31647 (mve_vcmpleq_m_n_s<mode>): Likewise. 31648 (mve_vcmpleq_m_s<mode>): Likewise. 31649 (mve_vcmpltq_m_n_s<mode>): Likewise. 31650 (mve_vcmpltq_m_s<mode>): Likewise. 31651 (mve_vcmpneq_m_n_<supf><mode>): Likewise. 31652 (mve_vcmpneq_m_<supf><mode>): Likewise. 31653 (mve_vdupq_m_n_<supf><mode>): Likewise. 31654 (mve_vmaxaq_m_s<mode>): Likewise. 31655 (mve_vmaxavq_p_s<mode>): Likewise. 31656 (mve_vmaxvq_p_<supf><mode>): Likewise. 31657 (mve_vminaq_m_s<mode>): Likewise. 31658 (mve_vminavq_p_s<mode>): Likewise. 31659 (mve_vminvq_p_<supf><mode>): Likewise. 31660 (mve_vmladavaq_<supf><mode>): Likewise. 31661 (mve_vmladavq_p_<supf><mode>): Likewise. 31662 (mve_vmladavxq_p_s<mode>): Likewise. 31663 (mve_vmlaq_n_<supf><mode>): Likewise. 31664 (mve_vmlasq_n_<supf><mode>): Likewise. 31665 (mve_vmlsdavq_p_s<mode>): Likewise. 31666 (mve_vmlsdavxq_p_s<mode>): Likewise. 31667 (mve_vmvnq_m_<supf><mode>): Likewise. 31668 (mve_vnegq_m_s<mode>): Likewise. 31669 (mve_vpselq_<supf><mode>): Likewise. 31670 (mve_vqabsq_m_s<mode>): Likewise. 31671 (mve_vqdmlahq_n_<supf><mode>): Likewise. 31672 (mve_vqnegq_m_s<mode>): Likewise. 31673 (mve_vqrdmladhq_s<mode>): Likewise. 31674 (mve_vqrdmladhxq_s<mode>): Likewise. 31675 (mve_vqrdmlahq_n_<supf><mode>): Likewise. 31676 (mve_vqrdmlashq_n_<supf><mode>): Likewise. 31677 (mve_vqrdmlsdhq_s<mode>): Likewise. 31678 (mve_vqrdmlsdhxq_s<mode>): Likewise. 31679 (mve_vqrshlq_m_n_<supf><mode>): Likewise. 31680 (mve_vqshlq_m_r_<supf><mode>): Likewise. 31681 (mve_vrev64q_m_<supf><mode>): Likewise. 31682 (mve_vrshlq_m_n_<supf><mode>): Likewise. 31683 (mve_vshlq_m_r_<supf><mode>): Likewise. 31684 (mve_vsliq_n_<supf><mode>): Likewise. 31685 (mve_vsriq_n_<supf><mode>): Likewise. 31686 (mve_vqdmlsdhxq_s<mode>): Likewise. 31687 (mve_vqdmlsdhq_s<mode>): Likewise. 31688 (mve_vqdmladhxq_s<mode>): Likewise. 31689 (mve_vqdmladhq_s<mode>): Likewise. 31690 (mve_vmlsdavaxq_s<mode>): Likewise. 31691 (mve_vmlsdavaq_s<mode>): Likewise. 31692 (mve_vmladavaxq_s<mode>): Likewise. 31693 * config/arm/predicates.md (mve_imm_15):Define predicate to check the 31694 matching constraint Rc. 31695 (mve_imm_31): Define predicate to check the matching constraint Re. 31696 316972020-03-18 Andrew Stubbs <ams@codesourcery.com> 31698 31699 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Set operand 1 to DImode. 31700 (vec_cmp<mode>di_dup): Likewise. 31701 * config/gcn/gcn.h (STORE_FLAG_VALUE): Set to -1. 31702 317032020-03-18 Andrew Stubbs <ams@codesourcery.com> 31704 31705 * config/gcn/gcn-valu.md (COND_MODE): Delete. 31706 (COND_INT_MODE): Delete. 31707 (cond_op): Add "mult". 31708 (cond_<expander><mode>): Use VEC_ALLREG_MODE. 31709 (cond_<expander><mode>): Use VEC_ALLREG_INT_MODE. 31710 317112020-03-18 Richard Biener <rguenther@suse.de> 31712 31713 PR middle-end/94206 31714 * gimple-fold.c (gimple_fold_builtin_memset): Avoid using 31715 partial int modes or not mode-precision integer types for 31716 the store. 31717 317182020-03-18 Jakub Jelinek <jakub@redhat.com> 31719 31720 * asan.c (get_mem_refs_of_builtin_call): Fix up duplicated word issue 31721 in a comment. 31722 * config/arc/arc.c (frame_stack_add): Likewise. 31723 * gimple-loop-versioning.cc (loop_versioning::analyze_arbitrary_term): 31724 Likewise. 31725 * ipa-predicate.c (predicate::remap_after_inlining): Likewise. 31726 * tree-ssa-strlen.h (handle_printf_call): Likewise. 31727 * tree-ssa-strlen.c (is_strlen_related_p): Likewise. 31728 * optinfo-emit-json.cc (optrecord_json_writer::add_record): Likewise. 31729 317302020-03-18 Duan bo <duanbo3@huawei.com> 31731 31732 PR target/94201 31733 * config/aarch64/aarch64.md (ldr_got_tiny): Delete. 31734 (@ldr_got_tiny_<mode>): New pattern. 31735 (ldr_got_tiny_sidi): Likewise. 31736 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Use 31737 them to handle SYMBOL_TINY_GOT for ILP32. 31738 317392020-03-18 Richard Sandiford <richard.sandiford@arm.com> 31740 31741 * config/aarch64/aarch64.c (aarch64_sve_abi): Treat p12-p15 as 31742 call-preserved for SVE PCS functions. 31743 (aarch64_layout_frame): Cope with up to 12 predicate save slots. 31744 Optimize the case in which there are no following vector save slots. 31745 317462020-03-18 Richard Biener <rguenther@suse.de> 31747 31748 PR middle-end/94188 31749 * fold-const.c (build_fold_addr_expr): Convert address to 31750 correct type. 31751 * asan.c (maybe_create_ssa_name): Strip useless type conversions. 31752 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use build1 31753 to build the ADDR_EXPR which we don't really want to simplify. 31754 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise. 31755 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Likewise. 31756 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. 31757 (simplify_builtin_call): Strip useless type conversions. 31758 * tree-ssa-strlen.c (new_strinfo): Likewise. 31759 317602020-03-17 Alexey Neyman <stilor@att.net> 31761 31762 PR debug/93751 31763 * dwarf2out.c (gen_decl_die): Proceed to generating the DIE if 31764 the debug level is terse and the declaration is public. Do not 31765 generate type info. 31766 (dwarf2out_decl): Same. 31767 (add_type_attribute): Return immediately if debug level is 31768 terse. 31769 317702020-03-17 Richard Sandiford <richard.sandiford@arm.com> 31771 31772 * config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF. 31773 317742020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 31775 Mihail Ionescu <mihail.ionescu@arm.com> 31776 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 31777 31778 * config/arm/arm-builtins.c (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): 31779 Define qualifier for ternary operands. 31780 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise. 31781 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise. 31782 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise. 31783 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise. 31784 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise. 31785 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. 31786 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. 31787 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise. 31788 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. 31789 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. 31790 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise. 31791 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. 31792 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise. 31793 * config/arm/arm_mve.h (vabavq_s8): Define macro. 31794 (vabavq_s16): Likewise. 31795 (vabavq_s32): Likewise. 31796 (vbicq_m_n_s16): Likewise. 31797 (vbicq_m_n_s32): Likewise. 31798 (vbicq_m_n_u16): Likewise. 31799 (vbicq_m_n_u32): Likewise. 31800 (vcmpeqq_m_f16): Likewise. 31801 (vcmpeqq_m_f32): Likewise. 31802 (vcvtaq_m_s16_f16): Likewise. 31803 (vcvtaq_m_u16_f16): Likewise. 31804 (vcvtaq_m_s32_f32): Likewise. 31805 (vcvtaq_m_u32_f32): Likewise. 31806 (vcvtq_m_f16_s16): Likewise. 31807 (vcvtq_m_f16_u16): Likewise. 31808 (vcvtq_m_f32_s32): Likewise. 31809 (vcvtq_m_f32_u32): Likewise. 31810 (vqrshrnbq_n_s16): Likewise. 31811 (vqrshrnbq_n_u16): Likewise. 31812 (vqrshrnbq_n_s32): Likewise. 31813 (vqrshrnbq_n_u32): Likewise. 31814 (vqrshrunbq_n_s16): Likewise. 31815 (vqrshrunbq_n_s32): Likewise. 31816 (vrmlaldavhaq_s32): Likewise. 31817 (vrmlaldavhaq_u32): Likewise. 31818 (vshlcq_s8): Likewise. 31819 (vshlcq_u8): Likewise. 31820 (vshlcq_s16): Likewise. 31821 (vshlcq_u16): Likewise. 31822 (vshlcq_s32): Likewise. 31823 (vshlcq_u32): Likewise. 31824 (vabavq_u8): Likewise. 31825 (vabavq_u16): Likewise. 31826 (vabavq_u32): Likewise. 31827 (__arm_vabavq_s8): Define intrinsic. 31828 (__arm_vabavq_s16): Likewise. 31829 (__arm_vabavq_s32): Likewise. 31830 (__arm_vabavq_u8): Likewise. 31831 (__arm_vabavq_u16): Likewise. 31832 (__arm_vabavq_u32): Likewise. 31833 (__arm_vbicq_m_n_s16): Likewise. 31834 (__arm_vbicq_m_n_s32): Likewise. 31835 (__arm_vbicq_m_n_u16): Likewise. 31836 (__arm_vbicq_m_n_u32): Likewise. 31837 (__arm_vqrshrnbq_n_s16): Likewise. 31838 (__arm_vqrshrnbq_n_u16): Likewise. 31839 (__arm_vqrshrnbq_n_s32): Likewise. 31840 (__arm_vqrshrnbq_n_u32): Likewise. 31841 (__arm_vqrshrunbq_n_s16): Likewise. 31842 (__arm_vqrshrunbq_n_s32): Likewise. 31843 (__arm_vrmlaldavhaq_s32): Likewise. 31844 (__arm_vrmlaldavhaq_u32): Likewise. 31845 (__arm_vshlcq_s8): Likewise. 31846 (__arm_vshlcq_u8): Likewise. 31847 (__arm_vshlcq_s16): Likewise. 31848 (__arm_vshlcq_u16): Likewise. 31849 (__arm_vshlcq_s32): Likewise. 31850 (__arm_vshlcq_u32): Likewise. 31851 (__arm_vcmpeqq_m_f16): Likewise. 31852 (__arm_vcmpeqq_m_f32): Likewise. 31853 (__arm_vcvtaq_m_s16_f16): Likewise. 31854 (__arm_vcvtaq_m_u16_f16): Likewise. 31855 (__arm_vcvtaq_m_s32_f32): Likewise. 31856 (__arm_vcvtaq_m_u32_f32): Likewise. 31857 (__arm_vcvtq_m_f16_s16): Likewise. 31858 (__arm_vcvtq_m_f16_u16): Likewise. 31859 (__arm_vcvtq_m_f32_s32): Likewise. 31860 (__arm_vcvtq_m_f32_u32): Likewise. 31861 (vcvtaq_m): Define polymorphic variant. 31862 (vcvtq_m): Likewise. 31863 (vabavq): Likewise. 31864 (vshlcq): Likewise. 31865 (vbicq_m_n): Likewise. 31866 (vqrshrnbq_n): Likewise. 31867 (vqrshrunbq_n): Likewise. 31868 * config/arm/arm_mve_builtins.def 31869 (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): Use the builtin qualifer. 31870 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise. 31871 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise. 31872 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise. 31873 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise. 31874 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise. 31875 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. 31876 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. 31877 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise. 31878 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. 31879 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. 31880 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise. 31881 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. 31882 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise. 31883 * config/arm/mve.md (VBICQ_M_N): Define iterator. 31884 (VCVTAQ_M): Likewise. 31885 (VCVTQ_M_TO_F): Likewise. 31886 (VQRSHRNBQ_N): Likewise. 31887 (VABAVQ): Likewise. 31888 (VSHLCQ): Likewise. 31889 (VRMLALDAVHAQ): Likewise. 31890 (mve_vbicq_m_n_<supf><mode>): Define RTL pattern. 31891 (mve_vcmpeqq_m_f<mode>): Likewise. 31892 (mve_vcvtaq_m_<supf><mode>): Likewise. 31893 (mve_vcvtq_m_to_f_<supf><mode>): Likewise. 31894 (mve_vqrshrnbq_n_<supf><mode>): Likewise. 31895 (mve_vqrshrunbq_n_s<mode>): Likewise. 31896 (mve_vrmlaldavhaq_<supf>v4si): Likewise. 31897 (mve_vabavq_<supf><mode>): Likewise. 31898 (mve_vshlcq_<supf><mode>): Likewise. 31899 (mve_vshlcq_<supf><mode>): Likewise. 31900 (mve_vshlcq_vec_<supf><mode>): Define RTL expand. 31901 (mve_vshlcq_carry_<supf><mode>): Likewise. 31902 319032020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 31904 Mihail Ionescu <mihail.ionescu@arm.com> 31905 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 31906 31907 * config/arm/arm_mve.h (vqmovntq_u16): Define macro. 31908 (vqmovnbq_u16): Likewise. 31909 (vmulltq_poly_p8): Likewise. 31910 (vmullbq_poly_p8): Likewise. 31911 (vmovntq_u16): Likewise. 31912 (vmovnbq_u16): Likewise. 31913 (vmlaldavxq_u16): Likewise. 31914 (vmlaldavq_u16): Likewise. 31915 (vqmovuntq_s16): Likewise. 31916 (vqmovunbq_s16): Likewise. 31917 (vshlltq_n_u8): Likewise. 31918 (vshllbq_n_u8): Likewise. 31919 (vorrq_n_u16): Likewise. 31920 (vbicq_n_u16): Likewise. 31921 (vcmpneq_n_f16): Likewise. 31922 (vcmpneq_f16): Likewise. 31923 (vcmpltq_n_f16): Likewise. 31924 (vcmpltq_f16): Likewise. 31925 (vcmpleq_n_f16): Likewise. 31926 (vcmpleq_f16): Likewise. 31927 (vcmpgtq_n_f16): Likewise. 31928 (vcmpgtq_f16): Likewise. 31929 (vcmpgeq_n_f16): Likewise. 31930 (vcmpgeq_f16): Likewise. 31931 (vcmpeqq_n_f16): Likewise. 31932 (vcmpeqq_f16): Likewise. 31933 (vsubq_f16): Likewise. 31934 (vqmovntq_s16): Likewise. 31935 (vqmovnbq_s16): Likewise. 31936 (vqdmulltq_s16): Likewise. 31937 (vqdmulltq_n_s16): Likewise. 31938 (vqdmullbq_s16): Likewise. 31939 (vqdmullbq_n_s16): Likewise. 31940 (vorrq_f16): Likewise. 31941 (vornq_f16): Likewise. 31942 (vmulq_n_f16): Likewise. 31943 (vmulq_f16): Likewise. 31944 (vmovntq_s16): Likewise. 31945 (vmovnbq_s16): Likewise. 31946 (vmlsldavxq_s16): Likewise. 31947 (vmlsldavq_s16): Likewise. 31948 (vmlaldavxq_s16): Likewise. 31949 (vmlaldavq_s16): Likewise. 31950 (vminnmvq_f16): Likewise. 31951 (vminnmq_f16): Likewise. 31952 (vminnmavq_f16): Likewise. 31953 (vminnmaq_f16): Likewise. 31954 (vmaxnmvq_f16): Likewise. 31955 (vmaxnmq_f16): Likewise. 31956 (vmaxnmavq_f16): Likewise. 31957 (vmaxnmaq_f16): Likewise. 31958 (veorq_f16): Likewise. 31959 (vcmulq_rot90_f16): Likewise. 31960 (vcmulq_rot270_f16): Likewise. 31961 (vcmulq_rot180_f16): Likewise. 31962 (vcmulq_f16): Likewise. 31963 (vcaddq_rot90_f16): Likewise. 31964 (vcaddq_rot270_f16): Likewise. 31965 (vbicq_f16): Likewise. 31966 (vandq_f16): Likewise. 31967 (vaddq_n_f16): Likewise. 31968 (vabdq_f16): Likewise. 31969 (vshlltq_n_s8): Likewise. 31970 (vshllbq_n_s8): Likewise. 31971 (vorrq_n_s16): Likewise. 31972 (vbicq_n_s16): Likewise. 31973 (vqmovntq_u32): Likewise. 31974 (vqmovnbq_u32): Likewise. 31975 (vmulltq_poly_p16): Likewise. 31976 (vmullbq_poly_p16): Likewise. 31977 (vmovntq_u32): Likewise. 31978 (vmovnbq_u32): Likewise. 31979 (vmlaldavxq_u32): Likewise. 31980 (vmlaldavq_u32): Likewise. 31981 (vqmovuntq_s32): Likewise. 31982 (vqmovunbq_s32): Likewise. 31983 (vshlltq_n_u16): Likewise. 31984 (vshllbq_n_u16): Likewise. 31985 (vorrq_n_u32): Likewise. 31986 (vbicq_n_u32): Likewise. 31987 (vcmpneq_n_f32): Likewise. 31988 (vcmpneq_f32): Likewise. 31989 (vcmpltq_n_f32): Likewise. 31990 (vcmpltq_f32): Likewise. 31991 (vcmpleq_n_f32): Likewise. 31992 (vcmpleq_f32): Likewise. 31993 (vcmpgtq_n_f32): Likewise. 31994 (vcmpgtq_f32): Likewise. 31995 (vcmpgeq_n_f32): Likewise. 31996 (vcmpgeq_f32): Likewise. 31997 (vcmpeqq_n_f32): Likewise. 31998 (vcmpeqq_f32): Likewise. 31999 (vsubq_f32): Likewise. 32000 (vqmovntq_s32): Likewise. 32001 (vqmovnbq_s32): Likewise. 32002 (vqdmulltq_s32): Likewise. 32003 (vqdmulltq_n_s32): Likewise. 32004 (vqdmullbq_s32): Likewise. 32005 (vqdmullbq_n_s32): Likewise. 32006 (vorrq_f32): Likewise. 32007 (vornq_f32): Likewise. 32008 (vmulq_n_f32): Likewise. 32009 (vmulq_f32): Likewise. 32010 (vmovntq_s32): Likewise. 32011 (vmovnbq_s32): Likewise. 32012 (vmlsldavxq_s32): Likewise. 32013 (vmlsldavq_s32): Likewise. 32014 (vmlaldavxq_s32): Likewise. 32015 (vmlaldavq_s32): Likewise. 32016 (vminnmvq_f32): Likewise. 32017 (vminnmq_f32): Likewise. 32018 (vminnmavq_f32): Likewise. 32019 (vminnmaq_f32): Likewise. 32020 (vmaxnmvq_f32): Likewise. 32021 (vmaxnmq_f32): Likewise. 32022 (vmaxnmavq_f32): Likewise. 32023 (vmaxnmaq_f32): Likewise. 32024 (veorq_f32): Likewise. 32025 (vcmulq_rot90_f32): Likewise. 32026 (vcmulq_rot270_f32): Likewise. 32027 (vcmulq_rot180_f32): Likewise. 32028 (vcmulq_f32): Likewise. 32029 (vcaddq_rot90_f32): Likewise. 32030 (vcaddq_rot270_f32): Likewise. 32031 (vbicq_f32): Likewise. 32032 (vandq_f32): Likewise. 32033 (vaddq_n_f32): Likewise. 32034 (vabdq_f32): Likewise. 32035 (vshlltq_n_s16): Likewise. 32036 (vshllbq_n_s16): Likewise. 32037 (vorrq_n_s32): Likewise. 32038 (vbicq_n_s32): Likewise. 32039 (vrmlaldavhq_u32): Likewise. 32040 (vctp8q_m): Likewise. 32041 (vctp64q_m): Likewise. 32042 (vctp32q_m): Likewise. 32043 (vctp16q_m): Likewise. 32044 (vaddlvaq_u32): Likewise. 32045 (vrmlsldavhxq_s32): Likewise. 32046 (vrmlsldavhq_s32): Likewise. 32047 (vrmlaldavhxq_s32): Likewise. 32048 (vrmlaldavhq_s32): Likewise. 32049 (vcvttq_f16_f32): Likewise. 32050 (vcvtbq_f16_f32): Likewise. 32051 (vaddlvaq_s32): Likewise. 32052 (__arm_vqmovntq_u16): Define intrinsic. 32053 (__arm_vqmovnbq_u16): Likewise. 32054 (__arm_vmulltq_poly_p8): Likewise. 32055 (__arm_vmullbq_poly_p8): Likewise. 32056 (__arm_vmovntq_u16): Likewise. 32057 (__arm_vmovnbq_u16): Likewise. 32058 (__arm_vmlaldavxq_u16): Likewise. 32059 (__arm_vmlaldavq_u16): Likewise. 32060 (__arm_vqmovuntq_s16): Likewise. 32061 (__arm_vqmovunbq_s16): Likewise. 32062 (__arm_vshlltq_n_u8): Likewise. 32063 (__arm_vshllbq_n_u8): Likewise. 32064 (__arm_vorrq_n_u16): Likewise. 32065 (__arm_vbicq_n_u16): Likewise. 32066 (__arm_vcmpneq_n_f16): Likewise. 32067 (__arm_vcmpneq_f16): Likewise. 32068 (__arm_vcmpltq_n_f16): Likewise. 32069 (__arm_vcmpltq_f16): Likewise. 32070 (__arm_vcmpleq_n_f16): Likewise. 32071 (__arm_vcmpleq_f16): Likewise. 32072 (__arm_vcmpgtq_n_f16): Likewise. 32073 (__arm_vcmpgtq_f16): Likewise. 32074 (__arm_vcmpgeq_n_f16): Likewise. 32075 (__arm_vcmpgeq_f16): Likewise. 32076 (__arm_vcmpeqq_n_f16): Likewise. 32077 (__arm_vcmpeqq_f16): Likewise. 32078 (__arm_vsubq_f16): Likewise. 32079 (__arm_vqmovntq_s16): Likewise. 32080 (__arm_vqmovnbq_s16): Likewise. 32081 (__arm_vqdmulltq_s16): Likewise. 32082 (__arm_vqdmulltq_n_s16): Likewise. 32083 (__arm_vqdmullbq_s16): Likewise. 32084 (__arm_vqdmullbq_n_s16): Likewise. 32085 (__arm_vorrq_f16): Likewise. 32086 (__arm_vornq_f16): Likewise. 32087 (__arm_vmulq_n_f16): Likewise. 32088 (__arm_vmulq_f16): Likewise. 32089 (__arm_vmovntq_s16): Likewise. 32090 (__arm_vmovnbq_s16): Likewise. 32091 (__arm_vmlsldavxq_s16): Likewise. 32092 (__arm_vmlsldavq_s16): Likewise. 32093 (__arm_vmlaldavxq_s16): Likewise. 32094 (__arm_vmlaldavq_s16): Likewise. 32095 (__arm_vminnmvq_f16): Likewise. 32096 (__arm_vminnmq_f16): Likewise. 32097 (__arm_vminnmavq_f16): Likewise. 32098 (__arm_vminnmaq_f16): Likewise. 32099 (__arm_vmaxnmvq_f16): Likewise. 32100 (__arm_vmaxnmq_f16): Likewise. 32101 (__arm_vmaxnmavq_f16): Likewise. 32102 (__arm_vmaxnmaq_f16): Likewise. 32103 (__arm_veorq_f16): Likewise. 32104 (__arm_vcmulq_rot90_f16): Likewise. 32105 (__arm_vcmulq_rot270_f16): Likewise. 32106 (__arm_vcmulq_rot180_f16): Likewise. 32107 (__arm_vcmulq_f16): Likewise. 32108 (__arm_vcaddq_rot90_f16): Likewise. 32109 (__arm_vcaddq_rot270_f16): Likewise. 32110 (__arm_vbicq_f16): Likewise. 32111 (__arm_vandq_f16): Likewise. 32112 (__arm_vaddq_n_f16): Likewise. 32113 (__arm_vabdq_f16): Likewise. 32114 (__arm_vshlltq_n_s8): Likewise. 32115 (__arm_vshllbq_n_s8): Likewise. 32116 (__arm_vorrq_n_s16): Likewise. 32117 (__arm_vbicq_n_s16): Likewise. 32118 (__arm_vqmovntq_u32): Likewise. 32119 (__arm_vqmovnbq_u32): Likewise. 32120 (__arm_vmulltq_poly_p16): Likewise. 32121 (__arm_vmullbq_poly_p16): Likewise. 32122 (__arm_vmovntq_u32): Likewise. 32123 (__arm_vmovnbq_u32): Likewise. 32124 (__arm_vmlaldavxq_u32): Likewise. 32125 (__arm_vmlaldavq_u32): Likewise. 32126 (__arm_vqmovuntq_s32): Likewise. 32127 (__arm_vqmovunbq_s32): Likewise. 32128 (__arm_vshlltq_n_u16): Likewise. 32129 (__arm_vshllbq_n_u16): Likewise. 32130 (__arm_vorrq_n_u32): Likewise. 32131 (__arm_vbicq_n_u32): Likewise. 32132 (__arm_vcmpneq_n_f32): Likewise. 32133 (__arm_vcmpneq_f32): Likewise. 32134 (__arm_vcmpltq_n_f32): Likewise. 32135 (__arm_vcmpltq_f32): Likewise. 32136 (__arm_vcmpleq_n_f32): Likewise. 32137 (__arm_vcmpleq_f32): Likewise. 32138 (__arm_vcmpgtq_n_f32): Likewise. 32139 (__arm_vcmpgtq_f32): Likewise. 32140 (__arm_vcmpgeq_n_f32): Likewise. 32141 (__arm_vcmpgeq_f32): Likewise. 32142 (__arm_vcmpeqq_n_f32): Likewise. 32143 (__arm_vcmpeqq_f32): Likewise. 32144 (__arm_vsubq_f32): Likewise. 32145 (__arm_vqmovntq_s32): Likewise. 32146 (__arm_vqmovnbq_s32): Likewise. 32147 (__arm_vqdmulltq_s32): Likewise. 32148 (__arm_vqdmulltq_n_s32): Likewise. 32149 (__arm_vqdmullbq_s32): Likewise. 32150 (__arm_vqdmullbq_n_s32): Likewise. 32151 (__arm_vorrq_f32): Likewise. 32152 (__arm_vornq_f32): Likewise. 32153 (__arm_vmulq_n_f32): Likewise. 32154 (__arm_vmulq_f32): Likewise. 32155 (__arm_vmovntq_s32): Likewise. 32156 (__arm_vmovnbq_s32): Likewise. 32157 (__arm_vmlsldavxq_s32): Likewise. 32158 (__arm_vmlsldavq_s32): Likewise. 32159 (__arm_vmlaldavxq_s32): Likewise. 32160 (__arm_vmlaldavq_s32): Likewise. 32161 (__arm_vminnmvq_f32): Likewise. 32162 (__arm_vminnmq_f32): Likewise. 32163 (__arm_vminnmavq_f32): Likewise. 32164 (__arm_vminnmaq_f32): Likewise. 32165 (__arm_vmaxnmvq_f32): Likewise. 32166 (__arm_vmaxnmq_f32): Likewise. 32167 (__arm_vmaxnmavq_f32): Likewise. 32168 (__arm_vmaxnmaq_f32): Likewise. 32169 (__arm_veorq_f32): Likewise. 32170 (__arm_vcmulq_rot90_f32): Likewise. 32171 (__arm_vcmulq_rot270_f32): Likewise. 32172 (__arm_vcmulq_rot180_f32): Likewise. 32173 (__arm_vcmulq_f32): Likewise. 32174 (__arm_vcaddq_rot90_f32): Likewise. 32175 (__arm_vcaddq_rot270_f32): Likewise. 32176 (__arm_vbicq_f32): Likewise. 32177 (__arm_vandq_f32): Likewise. 32178 (__arm_vaddq_n_f32): Likewise. 32179 (__arm_vabdq_f32): Likewise. 32180 (__arm_vshlltq_n_s16): Likewise. 32181 (__arm_vshllbq_n_s16): Likewise. 32182 (__arm_vorrq_n_s32): Likewise. 32183 (__arm_vbicq_n_s32): Likewise. 32184 (__arm_vrmlaldavhq_u32): Likewise. 32185 (__arm_vctp8q_m): Likewise. 32186 (__arm_vctp64q_m): Likewise. 32187 (__arm_vctp32q_m): Likewise. 32188 (__arm_vctp16q_m): Likewise. 32189 (__arm_vaddlvaq_u32): Likewise. 32190 (__arm_vrmlsldavhxq_s32): Likewise. 32191 (__arm_vrmlsldavhq_s32): Likewise. 32192 (__arm_vrmlaldavhxq_s32): Likewise. 32193 (__arm_vrmlaldavhq_s32): Likewise. 32194 (__arm_vcvttq_f16_f32): Likewise. 32195 (__arm_vcvtbq_f16_f32): Likewise. 32196 (__arm_vaddlvaq_s32): Likewise. 32197 (vst4q): Define polymorphic variant. 32198 (vrndxq): Likewise. 32199 (vrndq): Likewise. 32200 (vrndpq): Likewise. 32201 (vrndnq): Likewise. 32202 (vrndmq): Likewise. 32203 (vrndaq): Likewise. 32204 (vrev64q): Likewise. 32205 (vnegq): Likewise. 32206 (vdupq_n): Likewise. 32207 (vabsq): Likewise. 32208 (vrev32q): Likewise. 32209 (vcvtbq_f32): Likewise. 32210 (vcvttq_f32): Likewise. 32211 (vcvtq): Likewise. 32212 (vsubq_n): Likewise. 32213 (vbrsrq_n): Likewise. 32214 (vcvtq_n): Likewise. 32215 (vsubq): Likewise. 32216 (vorrq): Likewise. 32217 (vabdq): Likewise. 32218 (vaddq_n): Likewise. 32219 (vandq): Likewise. 32220 (vbicq): Likewise. 32221 (vornq): Likewise. 32222 (vmulq_n): Likewise. 32223 (vmulq): Likewise. 32224 (vcaddq_rot270): Likewise. 32225 (vcmpeqq_n): Likewise. 32226 (vcmpeqq): Likewise. 32227 (vcaddq_rot90): Likewise. 32228 (vcmpgeq_n): Likewise. 32229 (vcmpgeq): Likewise. 32230 (vcmpgtq_n): Likewise. 32231 (vcmpgtq): Likewise. 32232 (vcmpgtq): Likewise. 32233 (vcmpleq_n): Likewise. 32234 (vcmpleq_n): Likewise. 32235 (vcmpleq): Likewise. 32236 (vcmpleq): Likewise. 32237 (vcmpltq_n): Likewise. 32238 (vcmpltq_n): Likewise. 32239 (vcmpltq): Likewise. 32240 (vcmpltq): Likewise. 32241 (vcmpneq_n): Likewise. 32242 (vcmpneq_n): Likewise. 32243 (vcmpneq): Likewise. 32244 (vcmpneq): Likewise. 32245 (vcmulq): Likewise. 32246 (vcmulq): Likewise. 32247 (vcmulq_rot180): Likewise. 32248 (vcmulq_rot180): Likewise. 32249 (vcmulq_rot270): Likewise. 32250 (vcmulq_rot270): Likewise. 32251 (vcmulq_rot90): Likewise. 32252 (vcmulq_rot90): Likewise. 32253 (veorq): Likewise. 32254 (veorq): Likewise. 32255 (vmaxnmaq): Likewise. 32256 (vmaxnmaq): Likewise. 32257 (vmaxnmavq): Likewise. 32258 (vmaxnmavq): Likewise. 32259 (vmaxnmq): Likewise. 32260 (vmaxnmq): Likewise. 32261 (vmaxnmvq): Likewise. 32262 (vmaxnmvq): Likewise. 32263 (vminnmaq): Likewise. 32264 (vminnmaq): Likewise. 32265 (vminnmavq): Likewise. 32266 (vminnmavq): Likewise. 32267 (vminnmq): Likewise. 32268 (vminnmq): Likewise. 32269 (vminnmvq): Likewise. 32270 (vminnmvq): Likewise. 32271 (vbicq_n): Likewise. 32272 (vqmovntq): Likewise. 32273 (vqmovntq): Likewise. 32274 (vqmovnbq): Likewise. 32275 (vqmovnbq): Likewise. 32276 (vmulltq_poly): Likewise. 32277 (vmulltq_poly): Likewise. 32278 (vmullbq_poly): Likewise. 32279 (vmullbq_poly): Likewise. 32280 (vmovntq): Likewise. 32281 (vmovntq): Likewise. 32282 (vmovnbq): Likewise. 32283 (vmovnbq): Likewise. 32284 (vmlaldavxq): Likewise. 32285 (vmlaldavxq): Likewise. 32286 (vqmovuntq): Likewise. 32287 (vqmovuntq): Likewise. 32288 (vshlltq_n): Likewise. 32289 (vshlltq_n): Likewise. 32290 (vshllbq_n): Likewise. 32291 (vshllbq_n): Likewise. 32292 (vorrq_n): Likewise. 32293 (vorrq_n): Likewise. 32294 (vmlaldavq): Likewise. 32295 (vmlaldavq): Likewise. 32296 (vqmovunbq): Likewise. 32297 (vqmovunbq): Likewise. 32298 (vqdmulltq_n): Likewise. 32299 (vqdmulltq_n): Likewise. 32300 (vqdmulltq): Likewise. 32301 (vqdmulltq): Likewise. 32302 (vqdmullbq_n): Likewise. 32303 (vqdmullbq_n): Likewise. 32304 (vqdmullbq): Likewise. 32305 (vqdmullbq): Likewise. 32306 (vaddlvaq): Likewise. 32307 (vaddlvaq): Likewise. 32308 (vrmlaldavhq): Likewise. 32309 (vrmlaldavhq): Likewise. 32310 (vrmlaldavhxq): Likewise. 32311 (vrmlaldavhxq): Likewise. 32312 (vrmlsldavhq): Likewise. 32313 (vrmlsldavhq): Likewise. 32314 (vrmlsldavhxq): Likewise. 32315 (vrmlsldavhxq): Likewise. 32316 (vmlsldavxq): Likewise. 32317 (vmlsldavxq): Likewise. 32318 (vmlsldavq): Likewise. 32319 (vmlsldavq): Likewise. 32320 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it. 32321 (BINOP_NONE_NONE_NONE): Likewise. 32322 (BINOP_UNONE_NONE_NONE): Likewise. 32323 (BINOP_UNONE_UNONE_IMM): Likewise. 32324 (BINOP_UNONE_UNONE_NONE): Likewise. 32325 (BINOP_UNONE_UNONE_UNONE): Likewise. 32326 * config/arm/mve.md (mve_vabdq_f<mode>): Define RTL pattern. 32327 (mve_vaddlvaq_<supf>v4si): Likewise. 32328 (mve_vaddq_n_f<mode>): Likewise. 32329 (mve_vandq_f<mode>): Likewise. 32330 (mve_vbicq_f<mode>): Likewise. 32331 (mve_vbicq_n_<supf><mode>): Likewise. 32332 (mve_vcaddq_rot270_f<mode>): Likewise. 32333 (mve_vcaddq_rot90_f<mode>): Likewise. 32334 (mve_vcmpeqq_f<mode>): Likewise. 32335 (mve_vcmpeqq_n_f<mode>): Likewise. 32336 (mve_vcmpgeq_f<mode>): Likewise. 32337 (mve_vcmpgeq_n_f<mode>): Likewise. 32338 (mve_vcmpgtq_f<mode>): Likewise. 32339 (mve_vcmpgtq_n_f<mode>): Likewise. 32340 (mve_vcmpleq_f<mode>): Likewise. 32341 (mve_vcmpleq_n_f<mode>): Likewise. 32342 (mve_vcmpltq_f<mode>): Likewise. 32343 (mve_vcmpltq_n_f<mode>): Likewise. 32344 (mve_vcmpneq_f<mode>): Likewise. 32345 (mve_vcmpneq_n_f<mode>): Likewise. 32346 (mve_vcmulq_f<mode>): Likewise. 32347 (mve_vcmulq_rot180_f<mode>): Likewise. 32348 (mve_vcmulq_rot270_f<mode>): Likewise. 32349 (mve_vcmulq_rot90_f<mode>): Likewise. 32350 (mve_vctp<mode1>q_mhi): Likewise. 32351 (mve_vcvtbq_f16_f32v8hf): Likewise. 32352 (mve_vcvttq_f16_f32v8hf): Likewise. 32353 (mve_veorq_f<mode>): Likewise. 32354 (mve_vmaxnmaq_f<mode>): Likewise. 32355 (mve_vmaxnmavq_f<mode>): Likewise. 32356 (mve_vmaxnmq_f<mode>): Likewise. 32357 (mve_vmaxnmvq_f<mode>): Likewise. 32358 (mve_vminnmaq_f<mode>): Likewise. 32359 (mve_vminnmavq_f<mode>): Likewise. 32360 (mve_vminnmq_f<mode>): Likewise. 32361 (mve_vminnmvq_f<mode>): Likewise. 32362 (mve_vmlaldavq_<supf><mode>): Likewise. 32363 (mve_vmlaldavxq_<supf><mode>): Likewise. 32364 (mve_vmlsldavq_s<mode>): Likewise. 32365 (mve_vmlsldavxq_s<mode>): Likewise. 32366 (mve_vmovnbq_<supf><mode>): Likewise. 32367 (mve_vmovntq_<supf><mode>): Likewise. 32368 (mve_vmulq_f<mode>): Likewise. 32369 (mve_vmulq_n_f<mode>): Likewise. 32370 (mve_vornq_f<mode>): Likewise. 32371 (mve_vorrq_f<mode>): Likewise. 32372 (mve_vorrq_n_<supf><mode>): Likewise. 32373 (mve_vqdmullbq_n_s<mode>): Likewise. 32374 (mve_vqdmullbq_s<mode>): Likewise. 32375 (mve_vqdmulltq_n_s<mode>): Likewise. 32376 (mve_vqdmulltq_s<mode>): Likewise. 32377 (mve_vqmovnbq_<supf><mode>): Likewise. 32378 (mve_vqmovntq_<supf><mode>): Likewise. 32379 (mve_vqmovunbq_s<mode>): Likewise. 32380 (mve_vqmovuntq_s<mode>): Likewise. 32381 (mve_vrmlaldavhxq_sv4si): Likewise. 32382 (mve_vrmlsldavhq_sv4si): Likewise. 32383 (mve_vrmlsldavhxq_sv4si): Likewise. 32384 (mve_vshllbq_n_<supf><mode>): Likewise. 32385 (mve_vshlltq_n_<supf><mode>): Likewise. 32386 (mve_vsubq_f<mode>): Likewise. 32387 (mve_vmulltq_poly_p<mode>): Likewise. 32388 (mve_vmullbq_poly_p<mode>): Likewise. 32389 (mve_vrmlaldavhq_<supf>v4si): Likewise. 32390 323912020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 32392 Mihail Ionescu <mihail.ionescu@arm.com> 32393 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 32394 32395 * config/arm/arm_mve.h (vsubq_u8): Define macro. 32396 (vsubq_n_u8): Likewise. 32397 (vrmulhq_u8): Likewise. 32398 (vrhaddq_u8): Likewise. 32399 (vqsubq_u8): Likewise. 32400 (vqsubq_n_u8): Likewise. 32401 (vqaddq_u8): Likewise. 32402 (vqaddq_n_u8): Likewise. 32403 (vorrq_u8): Likewise. 32404 (vornq_u8): Likewise. 32405 (vmulq_u8): Likewise. 32406 (vmulq_n_u8): Likewise. 32407 (vmulltq_int_u8): Likewise. 32408 (vmullbq_int_u8): Likewise. 32409 (vmulhq_u8): Likewise. 32410 (vmladavq_u8): Likewise. 32411 (vminvq_u8): Likewise. 32412 (vminq_u8): Likewise. 32413 (vmaxvq_u8): Likewise. 32414 (vmaxq_u8): Likewise. 32415 (vhsubq_u8): Likewise. 32416 (vhsubq_n_u8): Likewise. 32417 (vhaddq_u8): Likewise. 32418 (vhaddq_n_u8): Likewise. 32419 (veorq_u8): Likewise. 32420 (vcmpneq_n_u8): Likewise. 32421 (vcmphiq_u8): Likewise. 32422 (vcmphiq_n_u8): Likewise. 32423 (vcmpeqq_u8): Likewise. 32424 (vcmpeqq_n_u8): Likewise. 32425 (vcmpcsq_u8): Likewise. 32426 (vcmpcsq_n_u8): Likewise. 32427 (vcaddq_rot90_u8): Likewise. 32428 (vcaddq_rot270_u8): Likewise. 32429 (vbicq_u8): Likewise. 32430 (vandq_u8): Likewise. 32431 (vaddvq_p_u8): Likewise. 32432 (vaddvaq_u8): Likewise. 32433 (vaddq_n_u8): Likewise. 32434 (vabdq_u8): Likewise. 32435 (vshlq_r_u8): Likewise. 32436 (vrshlq_u8): Likewise. 32437 (vrshlq_n_u8): Likewise. 32438 (vqshlq_u8): Likewise. 32439 (vqshlq_r_u8): Likewise. 32440 (vqrshlq_u8): Likewise. 32441 (vqrshlq_n_u8): Likewise. 32442 (vminavq_s8): Likewise. 32443 (vminaq_s8): Likewise. 32444 (vmaxavq_s8): Likewise. 32445 (vmaxaq_s8): Likewise. 32446 (vbrsrq_n_u8): Likewise. 32447 (vshlq_n_u8): Likewise. 32448 (vrshrq_n_u8): Likewise. 32449 (vqshlq_n_u8): Likewise. 32450 (vcmpneq_n_s8): Likewise. 32451 (vcmpltq_s8): Likewise. 32452 (vcmpltq_n_s8): Likewise. 32453 (vcmpleq_s8): Likewise. 32454 (vcmpleq_n_s8): Likewise. 32455 (vcmpgtq_s8): Likewise. 32456 (vcmpgtq_n_s8): Likewise. 32457 (vcmpgeq_s8): Likewise. 32458 (vcmpgeq_n_s8): Likewise. 32459 (vcmpeqq_s8): Likewise. 32460 (vcmpeqq_n_s8): Likewise. 32461 (vqshluq_n_s8): Likewise. 32462 (vaddvq_p_s8): Likewise. 32463 (vsubq_s8): Likewise. 32464 (vsubq_n_s8): Likewise. 32465 (vshlq_r_s8): Likewise. 32466 (vrshlq_s8): Likewise. 32467 (vrshlq_n_s8): Likewise. 32468 (vrmulhq_s8): Likewise. 32469 (vrhaddq_s8): Likewise. 32470 (vqsubq_s8): Likewise. 32471 (vqsubq_n_s8): Likewise. 32472 (vqshlq_s8): Likewise. 32473 (vqshlq_r_s8): Likewise. 32474 (vqrshlq_s8): Likewise. 32475 (vqrshlq_n_s8): Likewise. 32476 (vqrdmulhq_s8): Likewise. 32477 (vqrdmulhq_n_s8): Likewise. 32478 (vqdmulhq_s8): Likewise. 32479 (vqdmulhq_n_s8): Likewise. 32480 (vqaddq_s8): Likewise. 32481 (vqaddq_n_s8): Likewise. 32482 (vorrq_s8): Likewise. 32483 (vornq_s8): Likewise. 32484 (vmulq_s8): Likewise. 32485 (vmulq_n_s8): Likewise. 32486 (vmulltq_int_s8): Likewise. 32487 (vmullbq_int_s8): Likewise. 32488 (vmulhq_s8): Likewise. 32489 (vmlsdavxq_s8): Likewise. 32490 (vmlsdavq_s8): Likewise. 32491 (vmladavxq_s8): Likewise. 32492 (vmladavq_s8): Likewise. 32493 (vminvq_s8): Likewise. 32494 (vminq_s8): Likewise. 32495 (vmaxvq_s8): Likewise. 32496 (vmaxq_s8): Likewise. 32497 (vhsubq_s8): Likewise. 32498 (vhsubq_n_s8): Likewise. 32499 (vhcaddq_rot90_s8): Likewise. 32500 (vhcaddq_rot270_s8): Likewise. 32501 (vhaddq_s8): Likewise. 32502 (vhaddq_n_s8): Likewise. 32503 (veorq_s8): Likewise. 32504 (vcaddq_rot90_s8): Likewise. 32505 (vcaddq_rot270_s8): Likewise. 32506 (vbrsrq_n_s8): Likewise. 32507 (vbicq_s8): Likewise. 32508 (vandq_s8): Likewise. 32509 (vaddvaq_s8): Likewise. 32510 (vaddq_n_s8): Likewise. 32511 (vabdq_s8): Likewise. 32512 (vshlq_n_s8): Likewise. 32513 (vrshrq_n_s8): Likewise. 32514 (vqshlq_n_s8): Likewise. 32515 (vsubq_u16): Likewise. 32516 (vsubq_n_u16): Likewise. 32517 (vrmulhq_u16): Likewise. 32518 (vrhaddq_u16): Likewise. 32519 (vqsubq_u16): Likewise. 32520 (vqsubq_n_u16): Likewise. 32521 (vqaddq_u16): Likewise. 32522 (vqaddq_n_u16): Likewise. 32523 (vorrq_u16): Likewise. 32524 (vornq_u16): Likewise. 32525 (vmulq_u16): Likewise. 32526 (vmulq_n_u16): Likewise. 32527 (vmulltq_int_u16): Likewise. 32528 (vmullbq_int_u16): Likewise. 32529 (vmulhq_u16): Likewise. 32530 (vmladavq_u16): Likewise. 32531 (vminvq_u16): Likewise. 32532 (vminq_u16): Likewise. 32533 (vmaxvq_u16): Likewise. 32534 (vmaxq_u16): Likewise. 32535 (vhsubq_u16): Likewise. 32536 (vhsubq_n_u16): Likewise. 32537 (vhaddq_u16): Likewise. 32538 (vhaddq_n_u16): Likewise. 32539 (veorq_u16): Likewise. 32540 (vcmpneq_n_u16): Likewise. 32541 (vcmphiq_u16): Likewise. 32542 (vcmphiq_n_u16): Likewise. 32543 (vcmpeqq_u16): Likewise. 32544 (vcmpeqq_n_u16): Likewise. 32545 (vcmpcsq_u16): Likewise. 32546 (vcmpcsq_n_u16): Likewise. 32547 (vcaddq_rot90_u16): Likewise. 32548 (vcaddq_rot270_u16): Likewise. 32549 (vbicq_u16): Likewise. 32550 (vandq_u16): Likewise. 32551 (vaddvq_p_u16): Likewise. 32552 (vaddvaq_u16): Likewise. 32553 (vaddq_n_u16): Likewise. 32554 (vabdq_u16): Likewise. 32555 (vshlq_r_u16): Likewise. 32556 (vrshlq_u16): Likewise. 32557 (vrshlq_n_u16): Likewise. 32558 (vqshlq_u16): Likewise. 32559 (vqshlq_r_u16): Likewise. 32560 (vqrshlq_u16): Likewise. 32561 (vqrshlq_n_u16): Likewise. 32562 (vminavq_s16): Likewise. 32563 (vminaq_s16): Likewise. 32564 (vmaxavq_s16): Likewise. 32565 (vmaxaq_s16): Likewise. 32566 (vbrsrq_n_u16): Likewise. 32567 (vshlq_n_u16): Likewise. 32568 (vrshrq_n_u16): Likewise. 32569 (vqshlq_n_u16): Likewise. 32570 (vcmpneq_n_s16): Likewise. 32571 (vcmpltq_s16): Likewise. 32572 (vcmpltq_n_s16): Likewise. 32573 (vcmpleq_s16): Likewise. 32574 (vcmpleq_n_s16): Likewise. 32575 (vcmpgtq_s16): Likewise. 32576 (vcmpgtq_n_s16): Likewise. 32577 (vcmpgeq_s16): Likewise. 32578 (vcmpgeq_n_s16): Likewise. 32579 (vcmpeqq_s16): Likewise. 32580 (vcmpeqq_n_s16): Likewise. 32581 (vqshluq_n_s16): Likewise. 32582 (vaddvq_p_s16): Likewise. 32583 (vsubq_s16): Likewise. 32584 (vsubq_n_s16): Likewise. 32585 (vshlq_r_s16): Likewise. 32586 (vrshlq_s16): Likewise. 32587 (vrshlq_n_s16): Likewise. 32588 (vrmulhq_s16): Likewise. 32589 (vrhaddq_s16): Likewise. 32590 (vqsubq_s16): Likewise. 32591 (vqsubq_n_s16): Likewise. 32592 (vqshlq_s16): Likewise. 32593 (vqshlq_r_s16): Likewise. 32594 (vqrshlq_s16): Likewise. 32595 (vqrshlq_n_s16): Likewise. 32596 (vqrdmulhq_s16): Likewise. 32597 (vqrdmulhq_n_s16): Likewise. 32598 (vqdmulhq_s16): Likewise. 32599 (vqdmulhq_n_s16): Likewise. 32600 (vqaddq_s16): Likewise. 32601 (vqaddq_n_s16): Likewise. 32602 (vorrq_s16): Likewise. 32603 (vornq_s16): Likewise. 32604 (vmulq_s16): Likewise. 32605 (vmulq_n_s16): Likewise. 32606 (vmulltq_int_s16): Likewise. 32607 (vmullbq_int_s16): Likewise. 32608 (vmulhq_s16): Likewise. 32609 (vmlsdavxq_s16): Likewise. 32610 (vmlsdavq_s16): Likewise. 32611 (vmladavxq_s16): Likewise. 32612 (vmladavq_s16): Likewise. 32613 (vminvq_s16): Likewise. 32614 (vminq_s16): Likewise. 32615 (vmaxvq_s16): Likewise. 32616 (vmaxq_s16): Likewise. 32617 (vhsubq_s16): Likewise. 32618 (vhsubq_n_s16): Likewise. 32619 (vhcaddq_rot90_s16): Likewise. 32620 (vhcaddq_rot270_s16): Likewise. 32621 (vhaddq_s16): Likewise. 32622 (vhaddq_n_s16): Likewise. 32623 (veorq_s16): Likewise. 32624 (vcaddq_rot90_s16): Likewise. 32625 (vcaddq_rot270_s16): Likewise. 32626 (vbrsrq_n_s16): Likewise. 32627 (vbicq_s16): Likewise. 32628 (vandq_s16): Likewise. 32629 (vaddvaq_s16): Likewise. 32630 (vaddq_n_s16): Likewise. 32631 (vabdq_s16): Likewise. 32632 (vshlq_n_s16): Likewise. 32633 (vrshrq_n_s16): Likewise. 32634 (vqshlq_n_s16): Likewise. 32635 (vsubq_u32): Likewise. 32636 (vsubq_n_u32): Likewise. 32637 (vrmulhq_u32): Likewise. 32638 (vrhaddq_u32): Likewise. 32639 (vqsubq_u32): Likewise. 32640 (vqsubq_n_u32): Likewise. 32641 (vqaddq_u32): Likewise. 32642 (vqaddq_n_u32): Likewise. 32643 (vorrq_u32): Likewise. 32644 (vornq_u32): Likewise. 32645 (vmulq_u32): Likewise. 32646 (vmulq_n_u32): Likewise. 32647 (vmulltq_int_u32): Likewise. 32648 (vmullbq_int_u32): Likewise. 32649 (vmulhq_u32): Likewise. 32650 (vmladavq_u32): Likewise. 32651 (vminvq_u32): Likewise. 32652 (vminq_u32): Likewise. 32653 (vmaxvq_u32): Likewise. 32654 (vmaxq_u32): Likewise. 32655 (vhsubq_u32): Likewise. 32656 (vhsubq_n_u32): Likewise. 32657 (vhaddq_u32): Likewise. 32658 (vhaddq_n_u32): Likewise. 32659 (veorq_u32): Likewise. 32660 (vcmpneq_n_u32): Likewise. 32661 (vcmphiq_u32): Likewise. 32662 (vcmphiq_n_u32): Likewise. 32663 (vcmpeqq_u32): Likewise. 32664 (vcmpeqq_n_u32): Likewise. 32665 (vcmpcsq_u32): Likewise. 32666 (vcmpcsq_n_u32): Likewise. 32667 (vcaddq_rot90_u32): Likewise. 32668 (vcaddq_rot270_u32): Likewise. 32669 (vbicq_u32): Likewise. 32670 (vandq_u32): Likewise. 32671 (vaddvq_p_u32): Likewise. 32672 (vaddvaq_u32): Likewise. 32673 (vaddq_n_u32): Likewise. 32674 (vabdq_u32): Likewise. 32675 (vshlq_r_u32): Likewise. 32676 (vrshlq_u32): Likewise. 32677 (vrshlq_n_u32): Likewise. 32678 (vqshlq_u32): Likewise. 32679 (vqshlq_r_u32): Likewise. 32680 (vqrshlq_u32): Likewise. 32681 (vqrshlq_n_u32): Likewise. 32682 (vminavq_s32): Likewise. 32683 (vminaq_s32): Likewise. 32684 (vmaxavq_s32): Likewise. 32685 (vmaxaq_s32): Likewise. 32686 (vbrsrq_n_u32): Likewise. 32687 (vshlq_n_u32): Likewise. 32688 (vrshrq_n_u32): Likewise. 32689 (vqshlq_n_u32): Likewise. 32690 (vcmpneq_n_s32): Likewise. 32691 (vcmpltq_s32): Likewise. 32692 (vcmpltq_n_s32): Likewise. 32693 (vcmpleq_s32): Likewise. 32694 (vcmpleq_n_s32): Likewise. 32695 (vcmpgtq_s32): Likewise. 32696 (vcmpgtq_n_s32): Likewise. 32697 (vcmpgeq_s32): Likewise. 32698 (vcmpgeq_n_s32): Likewise. 32699 (vcmpeqq_s32): Likewise. 32700 (vcmpeqq_n_s32): Likewise. 32701 (vqshluq_n_s32): Likewise. 32702 (vaddvq_p_s32): Likewise. 32703 (vsubq_s32): Likewise. 32704 (vsubq_n_s32): Likewise. 32705 (vshlq_r_s32): Likewise. 32706 (vrshlq_s32): Likewise. 32707 (vrshlq_n_s32): Likewise. 32708 (vrmulhq_s32): Likewise. 32709 (vrhaddq_s32): Likewise. 32710 (vqsubq_s32): Likewise. 32711 (vqsubq_n_s32): Likewise. 32712 (vqshlq_s32): Likewise. 32713 (vqshlq_r_s32): Likewise. 32714 (vqrshlq_s32): Likewise. 32715 (vqrshlq_n_s32): Likewise. 32716 (vqrdmulhq_s32): Likewise. 32717 (vqrdmulhq_n_s32): Likewise. 32718 (vqdmulhq_s32): Likewise. 32719 (vqdmulhq_n_s32): Likewise. 32720 (vqaddq_s32): Likewise. 32721 (vqaddq_n_s32): Likewise. 32722 (vorrq_s32): Likewise. 32723 (vornq_s32): Likewise. 32724 (vmulq_s32): Likewise. 32725 (vmulq_n_s32): Likewise. 32726 (vmulltq_int_s32): Likewise. 32727 (vmullbq_int_s32): Likewise. 32728 (vmulhq_s32): Likewise. 32729 (vmlsdavxq_s32): Likewise. 32730 (vmlsdavq_s32): Likewise. 32731 (vmladavxq_s32): Likewise. 32732 (vmladavq_s32): Likewise. 32733 (vminvq_s32): Likewise. 32734 (vminq_s32): Likewise. 32735 (vmaxvq_s32): Likewise. 32736 (vmaxq_s32): Likewise. 32737 (vhsubq_s32): Likewise. 32738 (vhsubq_n_s32): Likewise. 32739 (vhcaddq_rot90_s32): Likewise. 32740 (vhcaddq_rot270_s32): Likewise. 32741 (vhaddq_s32): Likewise. 32742 (vhaddq_n_s32): Likewise. 32743 (veorq_s32): Likewise. 32744 (vcaddq_rot90_s32): Likewise. 32745 (vcaddq_rot270_s32): Likewise. 32746 (vbrsrq_n_s32): Likewise. 32747 (vbicq_s32): Likewise. 32748 (vandq_s32): Likewise. 32749 (vaddvaq_s32): Likewise. 32750 (vaddq_n_s32): Likewise. 32751 (vabdq_s32): Likewise. 32752 (vshlq_n_s32): Likewise. 32753 (vrshrq_n_s32): Likewise. 32754 (vqshlq_n_s32): Likewise. 32755 (__arm_vsubq_u8): Define intrinsic. 32756 (__arm_vsubq_n_u8): Likewise. 32757 (__arm_vrmulhq_u8): Likewise. 32758 (__arm_vrhaddq_u8): Likewise. 32759 (__arm_vqsubq_u8): Likewise. 32760 (__arm_vqsubq_n_u8): Likewise. 32761 (__arm_vqaddq_u8): Likewise. 32762 (__arm_vqaddq_n_u8): Likewise. 32763 (__arm_vorrq_u8): Likewise. 32764 (__arm_vornq_u8): Likewise. 32765 (__arm_vmulq_u8): Likewise. 32766 (__arm_vmulq_n_u8): Likewise. 32767 (__arm_vmulltq_int_u8): Likewise. 32768 (__arm_vmullbq_int_u8): Likewise. 32769 (__arm_vmulhq_u8): Likewise. 32770 (__arm_vmladavq_u8): Likewise. 32771 (__arm_vminvq_u8): Likewise. 32772 (__arm_vminq_u8): Likewise. 32773 (__arm_vmaxvq_u8): Likewise. 32774 (__arm_vmaxq_u8): Likewise. 32775 (__arm_vhsubq_u8): Likewise. 32776 (__arm_vhsubq_n_u8): Likewise. 32777 (__arm_vhaddq_u8): Likewise. 32778 (__arm_vhaddq_n_u8): Likewise. 32779 (__arm_veorq_u8): Likewise. 32780 (__arm_vcmpneq_n_u8): Likewise. 32781 (__arm_vcmphiq_u8): Likewise. 32782 (__arm_vcmphiq_n_u8): Likewise. 32783 (__arm_vcmpeqq_u8): Likewise. 32784 (__arm_vcmpeqq_n_u8): Likewise. 32785 (__arm_vcmpcsq_u8): Likewise. 32786 (__arm_vcmpcsq_n_u8): Likewise. 32787 (__arm_vcaddq_rot90_u8): Likewise. 32788 (__arm_vcaddq_rot270_u8): Likewise. 32789 (__arm_vbicq_u8): Likewise. 32790 (__arm_vandq_u8): Likewise. 32791 (__arm_vaddvq_p_u8): Likewise. 32792 (__arm_vaddvaq_u8): Likewise. 32793 (__arm_vaddq_n_u8): Likewise. 32794 (__arm_vabdq_u8): Likewise. 32795 (__arm_vshlq_r_u8): Likewise. 32796 (__arm_vrshlq_u8): Likewise. 32797 (__arm_vrshlq_n_u8): Likewise. 32798 (__arm_vqshlq_u8): Likewise. 32799 (__arm_vqshlq_r_u8): Likewise. 32800 (__arm_vqrshlq_u8): Likewise. 32801 (__arm_vqrshlq_n_u8): Likewise. 32802 (__arm_vminavq_s8): Likewise. 32803 (__arm_vminaq_s8): Likewise. 32804 (__arm_vmaxavq_s8): Likewise. 32805 (__arm_vmaxaq_s8): Likewise. 32806 (__arm_vbrsrq_n_u8): Likewise. 32807 (__arm_vshlq_n_u8): Likewise. 32808 (__arm_vrshrq_n_u8): Likewise. 32809 (__arm_vqshlq_n_u8): Likewise. 32810 (__arm_vcmpneq_n_s8): Likewise. 32811 (__arm_vcmpltq_s8): Likewise. 32812 (__arm_vcmpltq_n_s8): Likewise. 32813 (__arm_vcmpleq_s8): Likewise. 32814 (__arm_vcmpleq_n_s8): Likewise. 32815 (__arm_vcmpgtq_s8): Likewise. 32816 (__arm_vcmpgtq_n_s8): Likewise. 32817 (__arm_vcmpgeq_s8): Likewise. 32818 (__arm_vcmpgeq_n_s8): Likewise. 32819 (__arm_vcmpeqq_s8): Likewise. 32820 (__arm_vcmpeqq_n_s8): Likewise. 32821 (__arm_vqshluq_n_s8): Likewise. 32822 (__arm_vaddvq_p_s8): Likewise. 32823 (__arm_vsubq_s8): Likewise. 32824 (__arm_vsubq_n_s8): Likewise. 32825 (__arm_vshlq_r_s8): Likewise. 32826 (__arm_vrshlq_s8): Likewise. 32827 (__arm_vrshlq_n_s8): Likewise. 32828 (__arm_vrmulhq_s8): Likewise. 32829 (__arm_vrhaddq_s8): Likewise. 32830 (__arm_vqsubq_s8): Likewise. 32831 (__arm_vqsubq_n_s8): Likewise. 32832 (__arm_vqshlq_s8): Likewise. 32833 (__arm_vqshlq_r_s8): Likewise. 32834 (__arm_vqrshlq_s8): Likewise. 32835 (__arm_vqrshlq_n_s8): Likewise. 32836 (__arm_vqrdmulhq_s8): Likewise. 32837 (__arm_vqrdmulhq_n_s8): Likewise. 32838 (__arm_vqdmulhq_s8): Likewise. 32839 (__arm_vqdmulhq_n_s8): Likewise. 32840 (__arm_vqaddq_s8): Likewise. 32841 (__arm_vqaddq_n_s8): Likewise. 32842 (__arm_vorrq_s8): Likewise. 32843 (__arm_vornq_s8): Likewise. 32844 (__arm_vmulq_s8): Likewise. 32845 (__arm_vmulq_n_s8): Likewise. 32846 (__arm_vmulltq_int_s8): Likewise. 32847 (__arm_vmullbq_int_s8): Likewise. 32848 (__arm_vmulhq_s8): Likewise. 32849 (__arm_vmlsdavxq_s8): Likewise. 32850 (__arm_vmlsdavq_s8): Likewise. 32851 (__arm_vmladavxq_s8): Likewise. 32852 (__arm_vmladavq_s8): Likewise. 32853 (__arm_vminvq_s8): Likewise. 32854 (__arm_vminq_s8): Likewise. 32855 (__arm_vmaxvq_s8): Likewise. 32856 (__arm_vmaxq_s8): Likewise. 32857 (__arm_vhsubq_s8): Likewise. 32858 (__arm_vhsubq_n_s8): Likewise. 32859 (__arm_vhcaddq_rot90_s8): Likewise. 32860 (__arm_vhcaddq_rot270_s8): Likewise. 32861 (__arm_vhaddq_s8): Likewise. 32862 (__arm_vhaddq_n_s8): Likewise. 32863 (__arm_veorq_s8): Likewise. 32864 (__arm_vcaddq_rot90_s8): Likewise. 32865 (__arm_vcaddq_rot270_s8): Likewise. 32866 (__arm_vbrsrq_n_s8): Likewise. 32867 (__arm_vbicq_s8): Likewise. 32868 (__arm_vandq_s8): Likewise. 32869 (__arm_vaddvaq_s8): Likewise. 32870 (__arm_vaddq_n_s8): Likewise. 32871 (__arm_vabdq_s8): Likewise. 32872 (__arm_vshlq_n_s8): Likewise. 32873 (__arm_vrshrq_n_s8): Likewise. 32874 (__arm_vqshlq_n_s8): Likewise. 32875 (__arm_vsubq_u16): Likewise. 32876 (__arm_vsubq_n_u16): Likewise. 32877 (__arm_vrmulhq_u16): Likewise. 32878 (__arm_vrhaddq_u16): Likewise. 32879 (__arm_vqsubq_u16): Likewise. 32880 (__arm_vqsubq_n_u16): Likewise. 32881 (__arm_vqaddq_u16): Likewise. 32882 (__arm_vqaddq_n_u16): Likewise. 32883 (__arm_vorrq_u16): Likewise. 32884 (__arm_vornq_u16): Likewise. 32885 (__arm_vmulq_u16): Likewise. 32886 (__arm_vmulq_n_u16): Likewise. 32887 (__arm_vmulltq_int_u16): Likewise. 32888 (__arm_vmullbq_int_u16): Likewise. 32889 (__arm_vmulhq_u16): Likewise. 32890 (__arm_vmladavq_u16): Likewise. 32891 (__arm_vminvq_u16): Likewise. 32892 (__arm_vminq_u16): Likewise. 32893 (__arm_vmaxvq_u16): Likewise. 32894 (__arm_vmaxq_u16): Likewise. 32895 (__arm_vhsubq_u16): Likewise. 32896 (__arm_vhsubq_n_u16): Likewise. 32897 (__arm_vhaddq_u16): Likewise. 32898 (__arm_vhaddq_n_u16): Likewise. 32899 (__arm_veorq_u16): Likewise. 32900 (__arm_vcmpneq_n_u16): Likewise. 32901 (__arm_vcmphiq_u16): Likewise. 32902 (__arm_vcmphiq_n_u16): Likewise. 32903 (__arm_vcmpeqq_u16): Likewise. 32904 (__arm_vcmpeqq_n_u16): Likewise. 32905 (__arm_vcmpcsq_u16): Likewise. 32906 (__arm_vcmpcsq_n_u16): Likewise. 32907 (__arm_vcaddq_rot90_u16): Likewise. 32908 (__arm_vcaddq_rot270_u16): Likewise. 32909 (__arm_vbicq_u16): Likewise. 32910 (__arm_vandq_u16): Likewise. 32911 (__arm_vaddvq_p_u16): Likewise. 32912 (__arm_vaddvaq_u16): Likewise. 32913 (__arm_vaddq_n_u16): Likewise. 32914 (__arm_vabdq_u16): Likewise. 32915 (__arm_vshlq_r_u16): Likewise. 32916 (__arm_vrshlq_u16): Likewise. 32917 (__arm_vrshlq_n_u16): Likewise. 32918 (__arm_vqshlq_u16): Likewise. 32919 (__arm_vqshlq_r_u16): Likewise. 32920 (__arm_vqrshlq_u16): Likewise. 32921 (__arm_vqrshlq_n_u16): Likewise. 32922 (__arm_vminavq_s16): Likewise. 32923 (__arm_vminaq_s16): Likewise. 32924 (__arm_vmaxavq_s16): Likewise. 32925 (__arm_vmaxaq_s16): Likewise. 32926 (__arm_vbrsrq_n_u16): Likewise. 32927 (__arm_vshlq_n_u16): Likewise. 32928 (__arm_vrshrq_n_u16): Likewise. 32929 (__arm_vqshlq_n_u16): Likewise. 32930 (__arm_vcmpneq_n_s16): Likewise. 32931 (__arm_vcmpltq_s16): Likewise. 32932 (__arm_vcmpltq_n_s16): Likewise. 32933 (__arm_vcmpleq_s16): Likewise. 32934 (__arm_vcmpleq_n_s16): Likewise. 32935 (__arm_vcmpgtq_s16): Likewise. 32936 (__arm_vcmpgtq_n_s16): Likewise. 32937 (__arm_vcmpgeq_s16): Likewise. 32938 (__arm_vcmpgeq_n_s16): Likewise. 32939 (__arm_vcmpeqq_s16): Likewise. 32940 (__arm_vcmpeqq_n_s16): Likewise. 32941 (__arm_vqshluq_n_s16): Likewise. 32942 (__arm_vaddvq_p_s16): Likewise. 32943 (__arm_vsubq_s16): Likewise. 32944 (__arm_vsubq_n_s16): Likewise. 32945 (__arm_vshlq_r_s16): Likewise. 32946 (__arm_vrshlq_s16): Likewise. 32947 (__arm_vrshlq_n_s16): Likewise. 32948 (__arm_vrmulhq_s16): Likewise. 32949 (__arm_vrhaddq_s16): Likewise. 32950 (__arm_vqsubq_s16): Likewise. 32951 (__arm_vqsubq_n_s16): Likewise. 32952 (__arm_vqshlq_s16): Likewise. 32953 (__arm_vqshlq_r_s16): Likewise. 32954 (__arm_vqrshlq_s16): Likewise. 32955 (__arm_vqrshlq_n_s16): Likewise. 32956 (__arm_vqrdmulhq_s16): Likewise. 32957 (__arm_vqrdmulhq_n_s16): Likewise. 32958 (__arm_vqdmulhq_s16): Likewise. 32959 (__arm_vqdmulhq_n_s16): Likewise. 32960 (__arm_vqaddq_s16): Likewise. 32961 (__arm_vqaddq_n_s16): Likewise. 32962 (__arm_vorrq_s16): Likewise. 32963 (__arm_vornq_s16): Likewise. 32964 (__arm_vmulq_s16): Likewise. 32965 (__arm_vmulq_n_s16): Likewise. 32966 (__arm_vmulltq_int_s16): Likewise. 32967 (__arm_vmullbq_int_s16): Likewise. 32968 (__arm_vmulhq_s16): Likewise. 32969 (__arm_vmlsdavxq_s16): Likewise. 32970 (__arm_vmlsdavq_s16): Likewise. 32971 (__arm_vmladavxq_s16): Likewise. 32972 (__arm_vmladavq_s16): Likewise. 32973 (__arm_vminvq_s16): Likewise. 32974 (__arm_vminq_s16): Likewise. 32975 (__arm_vmaxvq_s16): Likewise. 32976 (__arm_vmaxq_s16): Likewise. 32977 (__arm_vhsubq_s16): Likewise. 32978 (__arm_vhsubq_n_s16): Likewise. 32979 (__arm_vhcaddq_rot90_s16): Likewise. 32980 (__arm_vhcaddq_rot270_s16): Likewise. 32981 (__arm_vhaddq_s16): Likewise. 32982 (__arm_vhaddq_n_s16): Likewise. 32983 (__arm_veorq_s16): Likewise. 32984 (__arm_vcaddq_rot90_s16): Likewise. 32985 (__arm_vcaddq_rot270_s16): Likewise. 32986 (__arm_vbrsrq_n_s16): Likewise. 32987 (__arm_vbicq_s16): Likewise. 32988 (__arm_vandq_s16): Likewise. 32989 (__arm_vaddvaq_s16): Likewise. 32990 (__arm_vaddq_n_s16): Likewise. 32991 (__arm_vabdq_s16): Likewise. 32992 (__arm_vshlq_n_s16): Likewise. 32993 (__arm_vrshrq_n_s16): Likewise. 32994 (__arm_vqshlq_n_s16): Likewise. 32995 (__arm_vsubq_u32): Likewise. 32996 (__arm_vsubq_n_u32): Likewise. 32997 (__arm_vrmulhq_u32): Likewise. 32998 (__arm_vrhaddq_u32): Likewise. 32999 (__arm_vqsubq_u32): Likewise. 33000 (__arm_vqsubq_n_u32): Likewise. 33001 (__arm_vqaddq_u32): Likewise. 33002 (__arm_vqaddq_n_u32): Likewise. 33003 (__arm_vorrq_u32): Likewise. 33004 (__arm_vornq_u32): Likewise. 33005 (__arm_vmulq_u32): Likewise. 33006 (__arm_vmulq_n_u32): Likewise. 33007 (__arm_vmulltq_int_u32): Likewise. 33008 (__arm_vmullbq_int_u32): Likewise. 33009 (__arm_vmulhq_u32): Likewise. 33010 (__arm_vmladavq_u32): Likewise. 33011 (__arm_vminvq_u32): Likewise. 33012 (__arm_vminq_u32): Likewise. 33013 (__arm_vmaxvq_u32): Likewise. 33014 (__arm_vmaxq_u32): Likewise. 33015 (__arm_vhsubq_u32): Likewise. 33016 (__arm_vhsubq_n_u32): Likewise. 33017 (__arm_vhaddq_u32): Likewise. 33018 (__arm_vhaddq_n_u32): Likewise. 33019 (__arm_veorq_u32): Likewise. 33020 (__arm_vcmpneq_n_u32): Likewise. 33021 (__arm_vcmphiq_u32): Likewise. 33022 (__arm_vcmphiq_n_u32): Likewise. 33023 (__arm_vcmpeqq_u32): Likewise. 33024 (__arm_vcmpeqq_n_u32): Likewise. 33025 (__arm_vcmpcsq_u32): Likewise. 33026 (__arm_vcmpcsq_n_u32): Likewise. 33027 (__arm_vcaddq_rot90_u32): Likewise. 33028 (__arm_vcaddq_rot270_u32): Likewise. 33029 (__arm_vbicq_u32): Likewise. 33030 (__arm_vandq_u32): Likewise. 33031 (__arm_vaddvq_p_u32): Likewise. 33032 (__arm_vaddvaq_u32): Likewise. 33033 (__arm_vaddq_n_u32): Likewise. 33034 (__arm_vabdq_u32): Likewise. 33035 (__arm_vshlq_r_u32): Likewise. 33036 (__arm_vrshlq_u32): Likewise. 33037 (__arm_vrshlq_n_u32): Likewise. 33038 (__arm_vqshlq_u32): Likewise. 33039 (__arm_vqshlq_r_u32): Likewise. 33040 (__arm_vqrshlq_u32): Likewise. 33041 (__arm_vqrshlq_n_u32): Likewise. 33042 (__arm_vminavq_s32): Likewise. 33043 (__arm_vminaq_s32): Likewise. 33044 (__arm_vmaxavq_s32): Likewise. 33045 (__arm_vmaxaq_s32): Likewise. 33046 (__arm_vbrsrq_n_u32): Likewise. 33047 (__arm_vshlq_n_u32): Likewise. 33048 (__arm_vrshrq_n_u32): Likewise. 33049 (__arm_vqshlq_n_u32): Likewise. 33050 (__arm_vcmpneq_n_s32): Likewise. 33051 (__arm_vcmpltq_s32): Likewise. 33052 (__arm_vcmpltq_n_s32): Likewise. 33053 (__arm_vcmpleq_s32): Likewise. 33054 (__arm_vcmpleq_n_s32): Likewise. 33055 (__arm_vcmpgtq_s32): Likewise. 33056 (__arm_vcmpgtq_n_s32): Likewise. 33057 (__arm_vcmpgeq_s32): Likewise. 33058 (__arm_vcmpgeq_n_s32): Likewise. 33059 (__arm_vcmpeqq_s32): Likewise. 33060 (__arm_vcmpeqq_n_s32): Likewise. 33061 (__arm_vqshluq_n_s32): Likewise. 33062 (__arm_vaddvq_p_s32): Likewise. 33063 (__arm_vsubq_s32): Likewise. 33064 (__arm_vsubq_n_s32): Likewise. 33065 (__arm_vshlq_r_s32): Likewise. 33066 (__arm_vrshlq_s32): Likewise. 33067 (__arm_vrshlq_n_s32): Likewise. 33068 (__arm_vrmulhq_s32): Likewise. 33069 (__arm_vrhaddq_s32): Likewise. 33070 (__arm_vqsubq_s32): Likewise. 33071 (__arm_vqsubq_n_s32): Likewise. 33072 (__arm_vqshlq_s32): Likewise. 33073 (__arm_vqshlq_r_s32): Likewise. 33074 (__arm_vqrshlq_s32): Likewise. 33075 (__arm_vqrshlq_n_s32): Likewise. 33076 (__arm_vqrdmulhq_s32): Likewise. 33077 (__arm_vqrdmulhq_n_s32): Likewise. 33078 (__arm_vqdmulhq_s32): Likewise. 33079 (__arm_vqdmulhq_n_s32): Likewise. 33080 (__arm_vqaddq_s32): Likewise. 33081 (__arm_vqaddq_n_s32): Likewise. 33082 (__arm_vorrq_s32): Likewise. 33083 (__arm_vornq_s32): Likewise. 33084 (__arm_vmulq_s32): Likewise. 33085 (__arm_vmulq_n_s32): Likewise. 33086 (__arm_vmulltq_int_s32): Likewise. 33087 (__arm_vmullbq_int_s32): Likewise. 33088 (__arm_vmulhq_s32): Likewise. 33089 (__arm_vmlsdavxq_s32): Likewise. 33090 (__arm_vmlsdavq_s32): Likewise. 33091 (__arm_vmladavxq_s32): Likewise. 33092 (__arm_vmladavq_s32): Likewise. 33093 (__arm_vminvq_s32): Likewise. 33094 (__arm_vminq_s32): Likewise. 33095 (__arm_vmaxvq_s32): Likewise. 33096 (__arm_vmaxq_s32): Likewise. 33097 (__arm_vhsubq_s32): Likewise. 33098 (__arm_vhsubq_n_s32): Likewise. 33099 (__arm_vhcaddq_rot90_s32): Likewise. 33100 (__arm_vhcaddq_rot270_s32): Likewise. 33101 (__arm_vhaddq_s32): Likewise. 33102 (__arm_vhaddq_n_s32): Likewise. 33103 (__arm_veorq_s32): Likewise. 33104 (__arm_vcaddq_rot90_s32): Likewise. 33105 (__arm_vcaddq_rot270_s32): Likewise. 33106 (__arm_vbrsrq_n_s32): Likewise. 33107 (__arm_vbicq_s32): Likewise. 33108 (__arm_vandq_s32): Likewise. 33109 (__arm_vaddvaq_s32): Likewise. 33110 (__arm_vaddq_n_s32): Likewise. 33111 (__arm_vabdq_s32): Likewise. 33112 (__arm_vshlq_n_s32): Likewise. 33113 (__arm_vrshrq_n_s32): Likewise. 33114 (__arm_vqshlq_n_s32): Likewise. 33115 (vsubq): Define polymorphic variant. 33116 (vsubq_n): Likewise. 33117 (vshlq_r): Likewise. 33118 (vrshlq_n): Likewise. 33119 (vrshlq): Likewise. 33120 (vrmulhq): Likewise. 33121 (vrhaddq): Likewise. 33122 (vqsubq_n): Likewise. 33123 (vqsubq): Likewise. 33124 (vqshlq): Likewise. 33125 (vqshlq_r): Likewise. 33126 (vqshluq): Likewise. 33127 (vrshrq_n): Likewise. 33128 (vshlq_n): Likewise. 33129 (vqshluq_n): Likewise. 33130 (vqshlq_n): Likewise. 33131 (vqrshlq_n): Likewise. 33132 (vqrshlq): Likewise. 33133 (vqrdmulhq_n): Likewise. 33134 (vqrdmulhq): Likewise. 33135 (vqdmulhq_n): Likewise. 33136 (vqdmulhq): Likewise. 33137 (vqaddq_n): Likewise. 33138 (vqaddq): Likewise. 33139 (vorrq_n): Likewise. 33140 (vorrq): Likewise. 33141 (vornq): Likewise. 33142 (vmulq_n): Likewise. 33143 (vmulq): Likewise. 33144 (vmulltq_int): Likewise. 33145 (vmullbq_int): Likewise. 33146 (vmulhq): Likewise. 33147 (vminq): Likewise. 33148 (vminaq): Likewise. 33149 (vmaxq): Likewise. 33150 (vmaxaq): Likewise. 33151 (vhsubq_n): Likewise. 33152 (vhsubq): Likewise. 33153 (vhcaddq_rot90): Likewise. 33154 (vhcaddq_rot270): Likewise. 33155 (vhaddq_n): Likewise. 33156 (vhaddq): Likewise. 33157 (veorq): Likewise. 33158 (vcaddq_rot90): Likewise. 33159 (vcaddq_rot270): Likewise. 33160 (vbrsrq_n): Likewise. 33161 (vbicq_n): Likewise. 33162 (vbicq): Likewise. 33163 (vaddq): Likewise. 33164 (vaddq_n): Likewise. 33165 (vandq): Likewise. 33166 (vabdq): Likewise. 33167 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it. 33168 (BINOP_NONE_NONE_NONE): Likewise. 33169 (BINOP_NONE_NONE_UNONE): Likewise. 33170 (BINOP_UNONE_NONE_IMM): Likewise. 33171 (BINOP_UNONE_NONE_NONE): Likewise. 33172 (BINOP_UNONE_UNONE_IMM): Likewise. 33173 (BINOP_UNONE_UNONE_NONE): Likewise. 33174 (BINOP_UNONE_UNONE_UNONE): Likewise. 33175 * config/arm/constraints.md (Ra): Define constraint to check constant is 33176 in the range of 0 to 7. 33177 (Rg): Define constriant to check the constant is one among 1, 2, 4 33178 and 8. 33179 * config/arm/mve.md (mve_vabdq_<supf>): Define RTL pattern. 33180 (mve_vaddq_n_<supf>): Likewise. 33181 (mve_vaddvaq_<supf>): Likewise. 33182 (mve_vaddvq_p_<supf>): Likewise. 33183 (mve_vandq_<supf>): Likewise. 33184 (mve_vbicq_<supf>): Likewise. 33185 (mve_vbrsrq_n_<supf>): Likewise. 33186 (mve_vcaddq_rot270_<supf>): Likewise. 33187 (mve_vcaddq_rot90_<supf>): Likewise. 33188 (mve_vcmpcsq_n_u): Likewise. 33189 (mve_vcmpcsq_u): Likewise. 33190 (mve_vcmpeqq_n_<supf>): Likewise. 33191 (mve_vcmpeqq_<supf>): Likewise. 33192 (mve_vcmpgeq_n_s): Likewise. 33193 (mve_vcmpgeq_s): Likewise. 33194 (mve_vcmpgtq_n_s): Likewise. 33195 (mve_vcmpgtq_s): Likewise. 33196 (mve_vcmphiq_n_u): Likewise. 33197 (mve_vcmphiq_u): Likewise. 33198 (mve_vcmpleq_n_s): Likewise. 33199 (mve_vcmpleq_s): Likewise. 33200 (mve_vcmpltq_n_s): Likewise. 33201 (mve_vcmpltq_s): Likewise. 33202 (mve_vcmpneq_n_<supf>): Likewise. 33203 (mve_vddupq_n_u): Likewise. 33204 (mve_veorq_<supf>): Likewise. 33205 (mve_vhaddq_n_<supf>): Likewise. 33206 (mve_vhaddq_<supf>): Likewise. 33207 (mve_vhcaddq_rot270_s): Likewise. 33208 (mve_vhcaddq_rot90_s): Likewise. 33209 (mve_vhsubq_n_<supf>): Likewise. 33210 (mve_vhsubq_<supf>): Likewise. 33211 (mve_vidupq_n_u): Likewise. 33212 (mve_vmaxaq_s): Likewise. 33213 (mve_vmaxavq_s): Likewise. 33214 (mve_vmaxq_<supf>): Likewise. 33215 (mve_vmaxvq_<supf>): Likewise. 33216 (mve_vminaq_s): Likewise. 33217 (mve_vminavq_s): Likewise. 33218 (mve_vminq_<supf>): Likewise. 33219 (mve_vminvq_<supf>): Likewise. 33220 (mve_vmladavq_<supf>): Likewise. 33221 (mve_vmladavxq_s): Likewise. 33222 (mve_vmlsdavq_s): Likewise. 33223 (mve_vmlsdavxq_s): Likewise. 33224 (mve_vmulhq_<supf>): Likewise. 33225 (mve_vmullbq_int_<supf>): Likewise. 33226 (mve_vmulltq_int_<supf>): Likewise. 33227 (mve_vmulq_n_<supf>): Likewise. 33228 (mve_vmulq_<supf>): Likewise. 33229 (mve_vornq_<supf>): Likewise. 33230 (mve_vorrq_<supf>): Likewise. 33231 (mve_vqaddq_n_<supf>): Likewise. 33232 (mve_vqaddq_<supf>): Likewise. 33233 (mve_vqdmulhq_n_s): Likewise. 33234 (mve_vqdmulhq_s): Likewise. 33235 (mve_vqrdmulhq_n_s): Likewise. 33236 (mve_vqrdmulhq_s): Likewise. 33237 (mve_vqrshlq_n_<supf>): Likewise. 33238 (mve_vqrshlq_<supf>): Likewise. 33239 (mve_vqshlq_n_<supf>): Likewise. 33240 (mve_vqshlq_r_<supf>): Likewise. 33241 (mve_vqshlq_<supf>): Likewise. 33242 (mve_vqshluq_n_s): Likewise. 33243 (mve_vqsubq_n_<supf>): Likewise. 33244 (mve_vqsubq_<supf>): Likewise. 33245 (mve_vrhaddq_<supf>): Likewise. 33246 (mve_vrmulhq_<supf>): Likewise. 33247 (mve_vrshlq_n_<supf>): Likewise. 33248 (mve_vrshlq_<supf>): Likewise. 33249 (mve_vrshrq_n_<supf>): Likewise. 33250 (mve_vshlq_n_<supf>): Likewise. 33251 (mve_vshlq_r_<supf>): Likewise. 33252 (mve_vsubq_n_<supf>): Likewise. 33253 (mve_vsubq_<supf>): Likewise. 33254 * config/arm/predicates.md (mve_imm_7): Define predicate to check 33255 the matching constraint Ra. 33256 (mve_imm_selective_upto_8): Define predicate to check the matching 33257 constraint Rg. 33258 332592020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 33260 Mihail Ionescu <mihail.ionescu@arm.com> 33261 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33262 33263 * config/arm/arm-builtins.c (BINOP_NONE_NONE_UNONE_QUALIFIERS): Define 33264 qualifier for binary operands. 33265 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise. 33266 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise. 33267 * config/arm/arm_mve.h (vaddlvq_p_s32): Define macro. 33268 (vaddlvq_p_u32): Likewise. 33269 (vcmpneq_s8): Likewise. 33270 (vcmpneq_s16): Likewise. 33271 (vcmpneq_s32): Likewise. 33272 (vcmpneq_u8): Likewise. 33273 (vcmpneq_u16): Likewise. 33274 (vcmpneq_u32): Likewise. 33275 (vshlq_s8): Likewise. 33276 (vshlq_s16): Likewise. 33277 (vshlq_s32): Likewise. 33278 (vshlq_u8): Likewise. 33279 (vshlq_u16): Likewise. 33280 (vshlq_u32): Likewise. 33281 (__arm_vaddlvq_p_s32): Define intrinsic. 33282 (__arm_vaddlvq_p_u32): Likewise. 33283 (__arm_vcmpneq_s8): Likewise. 33284 (__arm_vcmpneq_s16): Likewise. 33285 (__arm_vcmpneq_s32): Likewise. 33286 (__arm_vcmpneq_u8): Likewise. 33287 (__arm_vcmpneq_u16): Likewise. 33288 (__arm_vcmpneq_u32): Likewise. 33289 (__arm_vshlq_s8): Likewise. 33290 (__arm_vshlq_s16): Likewise. 33291 (__arm_vshlq_s32): Likewise. 33292 (__arm_vshlq_u8): Likewise. 33293 (__arm_vshlq_u16): Likewise. 33294 (__arm_vshlq_u32): Likewise. 33295 (vaddlvq_p): Define polymorphic variant. 33296 (vcmpneq): Likewise. 33297 (vshlq): Likewise. 33298 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_UNONE_QUALIFIERS): 33299 Use it. 33300 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise. 33301 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise. 33302 * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si): Define RTL pattern. 33303 (mve_vcmpneq_<supf><mode>): Likewise. 33304 (mve_vshlq_<supf><mode>): Likewise. 33305 333062020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 33307 Mihail Ionescu <mihail.ionescu@arm.com> 33308 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33309 33310 * config/arm/arm-builtins.c (BINOP_UNONE_UNONE_IMM_QUALIFIERS): Define 33311 qualifier for binary operands. 33312 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. 33313 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise. 33314 * config/arm/arm_mve.h (vcvtq_n_s16_f16): Define macro. 33315 (vcvtq_n_s32_f32): Likewise. 33316 (vcvtq_n_u16_f16): Likewise. 33317 (vcvtq_n_u32_f32): Likewise. 33318 (vcreateq_u8): Likewise. 33319 (vcreateq_u16): Likewise. 33320 (vcreateq_u32): Likewise. 33321 (vcreateq_u64): Likewise. 33322 (vcreateq_s8): Likewise. 33323 (vcreateq_s16): Likewise. 33324 (vcreateq_s32): Likewise. 33325 (vcreateq_s64): Likewise. 33326 (vshrq_n_s8): Likewise. 33327 (vshrq_n_s16): Likewise. 33328 (vshrq_n_s32): Likewise. 33329 (vshrq_n_u8): Likewise. 33330 (vshrq_n_u16): Likewise. 33331 (vshrq_n_u32): Likewise. 33332 (__arm_vcreateq_u8): Define intrinsic. 33333 (__arm_vcreateq_u16): Likewise. 33334 (__arm_vcreateq_u32): Likewise. 33335 (__arm_vcreateq_u64): Likewise. 33336 (__arm_vcreateq_s8): Likewise. 33337 (__arm_vcreateq_s16): Likewise. 33338 (__arm_vcreateq_s32): Likewise. 33339 (__arm_vcreateq_s64): Likewise. 33340 (__arm_vshrq_n_s8): Likewise. 33341 (__arm_vshrq_n_s16): Likewise. 33342 (__arm_vshrq_n_s32): Likewise. 33343 (__arm_vshrq_n_u8): Likewise. 33344 (__arm_vshrq_n_u16): Likewise. 33345 (__arm_vshrq_n_u32): Likewise. 33346 (__arm_vcvtq_n_s16_f16): Likewise. 33347 (__arm_vcvtq_n_s32_f32): Likewise. 33348 (__arm_vcvtq_n_u16_f16): Likewise. 33349 (__arm_vcvtq_n_u32_f32): Likewise. 33350 (vshrq_n): Define polymorphic variant. 33351 * config/arm/arm_mve_builtins.def (BINOP_UNONE_UNONE_IMM_QUALIFIERS): 33352 Use it. 33353 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. 33354 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise. 33355 * config/arm/constraints.md (Rb): Define constraint to check constant is 33356 in the range of 1 to 8. 33357 (Rf): Define constraint to check constant is in the range of 1 to 32. 33358 * config/arm/mve.md (mve_vcreateq_<supf><mode>): Define RTL pattern. 33359 (mve_vshrq_n_<supf><mode>): Likewise. 33360 (mve_vcvtq_n_from_f_<supf><mode>): Likewise. 33361 * config/arm/predicates.md (mve_imm_8): Define predicate to check 33362 the matching constraint Rb. 33363 (mve_imm_32): Define predicate to check the matching constraint Rf. 33364 333652020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 33366 Mihail Ionescu <mihail.ionescu@arm.com> 33367 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33368 33369 * config/arm/arm-builtins.c (BINOP_NONE_NONE_NONE_QUALIFIERS): Define 33370 qualifier for binary operands. 33371 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise. 33372 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise. 33373 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise. 33374 * config/arm/arm_mve.h (vsubq_n_f16): Define macro. 33375 (vsubq_n_f32): Likewise. 33376 (vbrsrq_n_f16): Likewise. 33377 (vbrsrq_n_f32): Likewise. 33378 (vcvtq_n_f16_s16): Likewise. 33379 (vcvtq_n_f32_s32): Likewise. 33380 (vcvtq_n_f16_u16): Likewise. 33381 (vcvtq_n_f32_u32): Likewise. 33382 (vcreateq_f16): Likewise. 33383 (vcreateq_f32): Likewise. 33384 (__arm_vsubq_n_f16): Define intrinsic. 33385 (__arm_vsubq_n_f32): Likewise. 33386 (__arm_vbrsrq_n_f16): Likewise. 33387 (__arm_vbrsrq_n_f32): Likewise. 33388 (__arm_vcvtq_n_f16_s16): Likewise. 33389 (__arm_vcvtq_n_f32_s32): Likewise. 33390 (__arm_vcvtq_n_f16_u16): Likewise. 33391 (__arm_vcvtq_n_f32_u32): Likewise. 33392 (__arm_vcreateq_f16): Likewise. 33393 (__arm_vcreateq_f32): Likewise. 33394 (vsubq): Define polymorphic variant. 33395 (vbrsrq): Likewise. 33396 (vcvtq_n): Likewise. 33397 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE_QUALIFIERS): Use 33398 it. 33399 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise. 33400 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise. 33401 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise. 33402 * config/arm/constraints.md (Rd): Define constraint to check constant is 33403 in the range of 1 to 16. 33404 * config/arm/mve.md (mve_vsubq_n_f<mode>): Define RTL pattern. 33405 mve_vbrsrq_n_f<mode>: Likewise. 33406 mve_vcvtq_n_to_f_<supf><mode>: Likewise. 33407 mve_vcreateq_f<mode>: Likewise. 33408 * config/arm/predicates.md (mve_imm_16): Define predicate to check 33409 the matching constraint Rd. 33410 334112020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 33412 Mihail Ionescu <mihail.ionescu@arm.com> 33413 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33414 33415 * config/arm/arm-builtins.c (hi_UP): Define mode. 33416 * config/arm/arm.h (IS_VPR_REGNUM): Move. 33417 * config/arm/arm.md (VPR_REGNUM): Define before APSRQ_REGNUM. 33418 (APSRQ_REGNUM): Modify. 33419 (APSRGE_REGNUM): Modify. 33420 * config/arm/arm_mve.h (vctp16q): Define macro. 33421 (vctp32q): Likewise. 33422 (vctp64q): Likewise. 33423 (vctp8q): Likewise. 33424 (vpnot): Likewise. 33425 (__arm_vctp16q): Define intrinsic. 33426 (__arm_vctp32q): Likewise. 33427 (__arm_vctp64q): Likewise. 33428 (__arm_vctp8q): Likewise. 33429 (__arm_vpnot): Likewise. 33430 * config/arm/arm_mve_builtins.def (UNOP_UNONE_UNONE): Use builtin 33431 qualifier. 33432 * config/arm/mve.md (mve_vctp<mode1>qhi): Define RTL pattern. 33433 (mve_vpnothi): Likewise. 33434 334352020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 33436 Mihail Ionescu <mihail.ionescu@arm.com> 33437 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33438 33439 * config/arm/arm.h (enum reg_class): Define new class EVEN_REGS. 33440 * config/arm/arm_mve.h (vdupq_n_s8): Define macro. 33441 (vdupq_n_s16): Likewise. 33442 (vdupq_n_s32): Likewise. 33443 (vabsq_s8): Likewise. 33444 (vabsq_s16): Likewise. 33445 (vabsq_s32): Likewise. 33446 (vclsq_s8): Likewise. 33447 (vclsq_s16): Likewise. 33448 (vclsq_s32): Likewise. 33449 (vclzq_s8): Likewise. 33450 (vclzq_s16): Likewise. 33451 (vclzq_s32): Likewise. 33452 (vnegq_s8): Likewise. 33453 (vnegq_s16): Likewise. 33454 (vnegq_s32): Likewise. 33455 (vaddlvq_s32): Likewise. 33456 (vaddvq_s8): Likewise. 33457 (vaddvq_s16): Likewise. 33458 (vaddvq_s32): Likewise. 33459 (vmovlbq_s8): Likewise. 33460 (vmovlbq_s16): Likewise. 33461 (vmovltq_s8): Likewise. 33462 (vmovltq_s16): Likewise. 33463 (vmvnq_s8): Likewise. 33464 (vmvnq_s16): Likewise. 33465 (vmvnq_s32): Likewise. 33466 (vrev16q_s8): Likewise. 33467 (vrev32q_s8): Likewise. 33468 (vrev32q_s16): Likewise. 33469 (vqabsq_s8): Likewise. 33470 (vqabsq_s16): Likewise. 33471 (vqabsq_s32): Likewise. 33472 (vqnegq_s8): Likewise. 33473 (vqnegq_s16): Likewise. 33474 (vqnegq_s32): Likewise. 33475 (vcvtaq_s16_f16): Likewise. 33476 (vcvtaq_s32_f32): Likewise. 33477 (vcvtnq_s16_f16): Likewise. 33478 (vcvtnq_s32_f32): Likewise. 33479 (vcvtpq_s16_f16): Likewise. 33480 (vcvtpq_s32_f32): Likewise. 33481 (vcvtmq_s16_f16): Likewise. 33482 (vcvtmq_s32_f32): Likewise. 33483 (vmvnq_u8): Likewise. 33484 (vmvnq_u16): Likewise. 33485 (vmvnq_u32): Likewise. 33486 (vdupq_n_u8): Likewise. 33487 (vdupq_n_u16): Likewise. 33488 (vdupq_n_u32): Likewise. 33489 (vclzq_u8): Likewise. 33490 (vclzq_u16): Likewise. 33491 (vclzq_u32): Likewise. 33492 (vaddvq_u8): Likewise. 33493 (vaddvq_u16): Likewise. 33494 (vaddvq_u32): Likewise. 33495 (vrev32q_u8): Likewise. 33496 (vrev32q_u16): Likewise. 33497 (vmovltq_u8): Likewise. 33498 (vmovltq_u16): Likewise. 33499 (vmovlbq_u8): Likewise. 33500 (vmovlbq_u16): Likewise. 33501 (vrev16q_u8): Likewise. 33502 (vaddlvq_u32): Likewise. 33503 (vcvtpq_u16_f16): Likewise. 33504 (vcvtpq_u32_f32): Likewise. 33505 (vcvtnq_u16_f16): Likewise. 33506 (vcvtmq_u16_f16): Likewise. 33507 (vcvtmq_u32_f32): Likewise. 33508 (vcvtaq_u16_f16): Likewise. 33509 (vcvtaq_u32_f32): Likewise. 33510 (__arm_vdupq_n_s8): Define intrinsic. 33511 (__arm_vdupq_n_s16): Likewise. 33512 (__arm_vdupq_n_s32): Likewise. 33513 (__arm_vabsq_s8): Likewise. 33514 (__arm_vabsq_s16): Likewise. 33515 (__arm_vabsq_s32): Likewise. 33516 (__arm_vclsq_s8): Likewise. 33517 (__arm_vclsq_s16): Likewise. 33518 (__arm_vclsq_s32): Likewise. 33519 (__arm_vclzq_s8): Likewise. 33520 (__arm_vclzq_s16): Likewise. 33521 (__arm_vclzq_s32): Likewise. 33522 (__arm_vnegq_s8): Likewise. 33523 (__arm_vnegq_s16): Likewise. 33524 (__arm_vnegq_s32): Likewise. 33525 (__arm_vaddlvq_s32): Likewise. 33526 (__arm_vaddvq_s8): Likewise. 33527 (__arm_vaddvq_s16): Likewise. 33528 (__arm_vaddvq_s32): Likewise. 33529 (__arm_vmovlbq_s8): Likewise. 33530 (__arm_vmovlbq_s16): Likewise. 33531 (__arm_vmovltq_s8): Likewise. 33532 (__arm_vmovltq_s16): Likewise. 33533 (__arm_vmvnq_s8): Likewise. 33534 (__arm_vmvnq_s16): Likewise. 33535 (__arm_vmvnq_s32): Likewise. 33536 (__arm_vrev16q_s8): Likewise. 33537 (__arm_vrev32q_s8): Likewise. 33538 (__arm_vrev32q_s16): Likewise. 33539 (__arm_vqabsq_s8): Likewise. 33540 (__arm_vqabsq_s16): Likewise. 33541 (__arm_vqabsq_s32): Likewise. 33542 (__arm_vqnegq_s8): Likewise. 33543 (__arm_vqnegq_s16): Likewise. 33544 (__arm_vqnegq_s32): Likewise. 33545 (__arm_vmvnq_u8): Likewise. 33546 (__arm_vmvnq_u16): Likewise. 33547 (__arm_vmvnq_u32): Likewise. 33548 (__arm_vdupq_n_u8): Likewise. 33549 (__arm_vdupq_n_u16): Likewise. 33550 (__arm_vdupq_n_u32): Likewise. 33551 (__arm_vclzq_u8): Likewise. 33552 (__arm_vclzq_u16): Likewise. 33553 (__arm_vclzq_u32): Likewise. 33554 (__arm_vaddvq_u8): Likewise. 33555 (__arm_vaddvq_u16): Likewise. 33556 (__arm_vaddvq_u32): Likewise. 33557 (__arm_vrev32q_u8): Likewise. 33558 (__arm_vrev32q_u16): Likewise. 33559 (__arm_vmovltq_u8): Likewise. 33560 (__arm_vmovltq_u16): Likewise. 33561 (__arm_vmovlbq_u8): Likewise. 33562 (__arm_vmovlbq_u16): Likewise. 33563 (__arm_vrev16q_u8): Likewise. 33564 (__arm_vaddlvq_u32): Likewise. 33565 (__arm_vcvtpq_u16_f16): Likewise. 33566 (__arm_vcvtpq_u32_f32): Likewise. 33567 (__arm_vcvtnq_u16_f16): Likewise. 33568 (__arm_vcvtmq_u16_f16): Likewise. 33569 (__arm_vcvtmq_u32_f32): Likewise. 33570 (__arm_vcvtaq_u16_f16): Likewise. 33571 (__arm_vcvtaq_u32_f32): Likewise. 33572 (__arm_vcvtaq_s16_f16): Likewise. 33573 (__arm_vcvtaq_s32_f32): Likewise. 33574 (__arm_vcvtnq_s16_f16): Likewise. 33575 (__arm_vcvtnq_s32_f32): Likewise. 33576 (__arm_vcvtpq_s16_f16): Likewise. 33577 (__arm_vcvtpq_s32_f32): Likewise. 33578 (__arm_vcvtmq_s16_f16): Likewise. 33579 (__arm_vcvtmq_s32_f32): Likewise. 33580 (vdupq_n): Define polymorphic variant. 33581 (vabsq): Likewise. 33582 (vclsq): Likewise. 33583 (vclzq): Likewise. 33584 (vnegq): Likewise. 33585 (vaddlvq): Likewise. 33586 (vaddvq): Likewise. 33587 (vmovlbq): Likewise. 33588 (vmovltq): Likewise. 33589 (vmvnq): Likewise. 33590 (vrev16q): Likewise. 33591 (vrev32q): Likewise. 33592 (vqabsq): Likewise. 33593 (vqnegq): Likewise. 33594 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it. 33595 (UNOP_SNONE_NONE): Likewise. 33596 (UNOP_UNONE_UNONE): Likewise. 33597 (UNOP_UNONE_NONE): Likewise. 33598 * config/arm/constraints.md (e): Define new constriant to allow only 33599 even registers. 33600 * config/arm/mve.md (mve_vqabsq_s<mode>): Define RTL pattern. 33601 (mve_vnegq_s<mode>): Likewise. 33602 (mve_vmvnq_<supf><mode>): Likewise. 33603 (mve_vdupq_n_<supf><mode>): Likewise. 33604 (mve_vclzq_<supf><mode>): Likewise. 33605 (mve_vclsq_s<mode>): Likewise. 33606 (mve_vaddvq_<supf><mode>): Likewise. 33607 (mve_vabsq_s<mode>): Likewise. 33608 (mve_vrev32q_<supf><mode>): Likewise. 33609 (mve_vmovltq_<supf><mode>): Likewise. 33610 (mve_vmovlbq_<supf><mode>): Likewise. 33611 (mve_vcvtpq_<supf><mode>): Likewise. 33612 (mve_vcvtnq_<supf><mode>): Likewise. 33613 (mve_vcvtmq_<supf><mode>): Likewise. 33614 (mve_vcvtaq_<supf><mode>): Likewise. 33615 (mve_vrev16q_<supf>v16qi): Likewise. 33616 (mve_vaddlvq_<supf>v4si): Likewise. 33617 336182020-03-17 Jakub Jelinek <jakub@redhat.com> 33619 33620 * lra-spills.c (remove_pseudos): Fix up duplicated word issue in 33621 a dump message. 33622 * tree-sra.c (create_access_replacement): Fix up duplicated word issue 33623 in a comment. 33624 * read-rtl-function.c (find_param_by_name, 33625 function_reader::parse_enum_value, function_reader::get_insn_by_uid): 33626 Likewise. 33627 * spellcheck.c (get_edit_distance_cutoff): Likewise. 33628 * tree-data-ref.c (create_ifn_alias_checks): Likewise. 33629 * tree.def (SWITCH_EXPR): Likewise. 33630 * selftest.c (assert_str_contains): Likewise. 33631 * ipa-param-manipulation.h (class ipa_param_body_adjustments): 33632 Likewise. 33633 * tree-ssa-math-opts.c (convert_expand_mult_copysign): Likewise. 33634 * tree-ssa-loop-split.c (find_vdef_in_loop): Likewise. 33635 * langhooks.h (struct lang_hooks_for_decls): Likewise. 33636 * ipa-prop.h (struct ipa_param_descriptor): Likewise. 33637 * tree-ssa-strlen.c (handle_builtin_string_cmp, handle_store): 33638 Likewise. 33639 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise. 33640 * tree-ssa-reassoc.c (reassociate_bb): Likewise. 33641 * tree.c (component_ref_size): Likewise. 33642 * hsa-common.c (hsa_init_compilation_unit_data): Likewise. 33643 * gimple-ssa-sprintf.c (get_string_length, format_string, 33644 format_directive): Likewise. 33645 * omp-grid.c (grid_process_kernel_body_copy): Likewise. 33646 * input.c (string_concat_db::get_string_concatenation, 33647 test_lexer_string_locations_ucn4): Likewise. 33648 * cfgexpand.c (pass_expand::execute): Likewise. 33649 * gimple-ssa-warn-restrict.c (builtin_memref::offset_out_of_bounds, 33650 maybe_diag_overlap): Likewise. 33651 * rtl.c (RTX_CODE_HWINT_P_1): Likewise. 33652 * shrink-wrap.c (spread_components): Likewise. 33653 * tree-ssa-dse.c (initialize_ao_ref_for_dse, valid_ao_ref_for_dse): 33654 Likewise. 33655 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): 33656 Likewise. 33657 * dwarf2out.c (dwarf2out_early_finish): Likewise. 33658 * gimple-ssa-store-merging.c: Likewise. 33659 * ira-costs.c (record_operand_costs): Likewise. 33660 * tree-vect-loop.c (vectorizable_reduction): Likewise. 33661 * target.def (dispatch): Likewise. 33662 (validate_dims, gen_ccmp_first): Fix up duplicated word issue 33663 in documentation text. 33664 * doc/tm.texi: Regenerated. 33665 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_FLAG_REG_STALL): Fix up 33666 duplicated word issue in a comment. 33667 * config/i386/i386.c (ix86_test_loading_unspec): Likewise. 33668 * config/i386/i386-features.c (remove_partial_avx_dependency): 33669 Likewise. 33670 * config/msp430/msp430.c (msp430_select_section): Likewise. 33671 * config/gcn/gcn-run.c (load_image): Likewise. 33672 * config/aarch64/aarch64-sve.md (sve_ld1r<mode>): Likewise. 33673 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Likewise. 33674 * config/aarch64/falkor-tag-collision-avoidance.c 33675 (single_dest_per_chain): Likewise. 33676 * config/nvptx/nvptx.c (nvptx_record_fndecl): Likewise. 33677 * config/fr30/fr30.c (fr30_arg_partial_bytes): Likewise. 33678 * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Likewise. 33679 * config/rs6000/rs6000-p8swap.c (replace_swapped_load_constant): 33680 Likewise. 33681 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise. 33682 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. 33683 * config/rs6000/rs6000-logue.c 33684 (rs6000_emit_probe_stack_range_stack_clash): Likewise. 33685 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Likewise. 33686 Fix various other issues in the comment. 33687 336882020-03-17 Mihail Ionescu <mihail.ionescu@arm.com> 33689 33690 * config/arm/t-rmprofile: create new multilib for 33691 armv8.1-m.main+mve hard float and reuse v8-m.main ones for 33692 v8.1-m.main+mve. 33693 336942020-03-17 Jakub Jelinek <jakub@redhat.com> 33695 33696 PR tree-optimization/94015 33697 * tree-ssa-strlen.c (count_nonzero_bytes): Split portions of the 33698 function where EXP is address of the bytes being stored rather than 33699 the bytes themselves into count_nonzero_bytes_addr. Punt on zero 33700 sized MEM_REF. Use VAR_P macro and handle CONST_DECL like VAR_DECLs. 33701 Use ctor_for_folding instead of looking at DECL_INITIAL. Punt before 33702 calling native_encode_expr if host or target doesn't have 8-bit 33703 chars. Formatting fixes. 33704 (count_nonzero_bytes_addr): New function. 33705 337062020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 33707 Mihail Ionescu <mihail.ionescu@arm.com> 33708 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33709 33710 * config/arm/arm-builtins.c (UNOP_SNONE_SNONE_QUALIFIERS): Define. 33711 (UNOP_SNONE_NONE_QUALIFIERS): Likewise. 33712 (UNOP_SNONE_IMM_QUALIFIERS): Likewise. 33713 (UNOP_UNONE_NONE_QUALIFIERS): Likewise. 33714 (UNOP_UNONE_UNONE_QUALIFIERS): Likewise. 33715 (UNOP_UNONE_IMM_QUALIFIERS): Likewise. 33716 * config/arm/arm_mve.h (vmvnq_n_s16): Define macro. 33717 (vmvnq_n_s32): Likewise. 33718 (vrev64q_s8): Likewise. 33719 (vrev64q_s16): Likewise. 33720 (vrev64q_s32): Likewise. 33721 (vcvtq_s16_f16): Likewise. 33722 (vcvtq_s32_f32): Likewise. 33723 (vrev64q_u8): Likewise. 33724 (vrev64q_u16): Likewise. 33725 (vrev64q_u32): Likewise. 33726 (vmvnq_n_u16): Likewise. 33727 (vmvnq_n_u32): Likewise. 33728 (vcvtq_u16_f16): Likewise. 33729 (vcvtq_u32_f32): Likewise. 33730 (__arm_vmvnq_n_s16): Define intrinsic. 33731 (__arm_vmvnq_n_s32): Likewise. 33732 (__arm_vrev64q_s8): Likewise. 33733 (__arm_vrev64q_s16): Likewise. 33734 (__arm_vrev64q_s32): Likewise. 33735 (__arm_vrev64q_u8): Likewise. 33736 (__arm_vrev64q_u16): Likewise. 33737 (__arm_vrev64q_u32): Likewise. 33738 (__arm_vmvnq_n_u16): Likewise. 33739 (__arm_vmvnq_n_u32): Likewise. 33740 (__arm_vcvtq_s16_f16): Likewise. 33741 (__arm_vcvtq_s32_f32): Likewise. 33742 (__arm_vcvtq_u16_f16): Likewise. 33743 (__arm_vcvtq_u32_f32): Likewise. 33744 (vrev64q): Define polymorphic variant. 33745 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it. 33746 (UNOP_SNONE_NONE): Likewise. 33747 (UNOP_SNONE_IMM): Likewise. 33748 (UNOP_UNONE_UNONE): Likewise. 33749 (UNOP_UNONE_NONE): Likewise. 33750 (UNOP_UNONE_IMM): Likewise. 33751 * config/arm/mve.md (mve_vrev64q_<supf><mode>): Define RTL pattern. 33752 (mve_vcvtq_from_f_<supf><mode>): Likewise. 33753 (mve_vmvnq_n_<supf><mode>): Likewise. 33754 337552020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 33756 Mihail Ionescu <mihail.ionescu@arm.com> 33757 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33758 33759 * config/arm/arm-builtins.c (UNOP_NONE_NONE_QUALIFIERS): Define macro. 33760 (UNOP_NONE_SNONE_QUALIFIERS): Likewise. 33761 (UNOP_NONE_UNONE_QUALIFIERS): Likewise. 33762 * config/arm/arm_mve.h (vrndxq_f16): Define macro. 33763 (vrndxq_f32): Likewise. 33764 (vrndq_f16) Likewise. 33765 (vrndq_f32): Likewise. 33766 (vrndpq_f16): Likewise. 33767 (vrndpq_f32): Likewise. 33768 (vrndnq_f16): Likewise. 33769 (vrndnq_f32): Likewise. 33770 (vrndmq_f16): Likewise. 33771 (vrndmq_f32): Likewise. 33772 (vrndaq_f16): Likewise. 33773 (vrndaq_f32): Likewise. 33774 (vrev64q_f16): Likewise. 33775 (vrev64q_f32): Likewise. 33776 (vnegq_f16): Likewise. 33777 (vnegq_f32): Likewise. 33778 (vdupq_n_f16): Likewise. 33779 (vdupq_n_f32): Likewise. 33780 (vabsq_f16): Likewise. 33781 (vabsq_f32): Likewise. 33782 (vrev32q_f16): Likewise. 33783 (vcvttq_f32_f16): Likewise. 33784 (vcvtbq_f32_f16): Likewise. 33785 (vcvtq_f16_s16): Likewise. 33786 (vcvtq_f32_s32): Likewise. 33787 (vcvtq_f16_u16): Likewise. 33788 (vcvtq_f32_u32): Likewise. 33789 (__arm_vrndxq_f16): Define intrinsic. 33790 (__arm_vrndxq_f32): Likewise. 33791 (__arm_vrndq_f16): Likewise. 33792 (__arm_vrndq_f32): Likewise. 33793 (__arm_vrndpq_f16): Likewise. 33794 (__arm_vrndpq_f32): Likewise. 33795 (__arm_vrndnq_f16): Likewise. 33796 (__arm_vrndnq_f32): Likewise. 33797 (__arm_vrndmq_f16): Likewise. 33798 (__arm_vrndmq_f32): Likewise. 33799 (__arm_vrndaq_f16): Likewise. 33800 (__arm_vrndaq_f32): Likewise. 33801 (__arm_vrev64q_f16): Likewise. 33802 (__arm_vrev64q_f32): Likewise. 33803 (__arm_vnegq_f16): Likewise. 33804 (__arm_vnegq_f32): Likewise. 33805 (__arm_vdupq_n_f16): Likewise. 33806 (__arm_vdupq_n_f32): Likewise. 33807 (__arm_vabsq_f16): Likewise. 33808 (__arm_vabsq_f32): Likewise. 33809 (__arm_vrev32q_f16): Likewise. 33810 (__arm_vcvttq_f32_f16): Likewise. 33811 (__arm_vcvtbq_f32_f16): Likewise. 33812 (__arm_vcvtq_f16_s16): Likewise. 33813 (__arm_vcvtq_f32_s32): Likewise. 33814 (__arm_vcvtq_f16_u16): Likewise. 33815 (__arm_vcvtq_f32_u32): Likewise. 33816 (vrndxq): Define polymorphic variants. 33817 (vrndq): Likewise. 33818 (vrndpq): Likewise. 33819 (vrndnq): Likewise. 33820 (vrndmq): Likewise. 33821 (vrndaq): Likewise. 33822 (vrev64q): Likewise. 33823 (vnegq): Likewise. 33824 (vabsq): Likewise. 33825 (vrev32q): Likewise. 33826 (vcvtbq_f32): Likewise. 33827 (vcvttq_f32): Likewise. 33828 (vcvtq): Likewise. 33829 * config/arm/arm_mve_builtins.def (VAR2): Define. 33830 (VAR1): Define. 33831 * config/arm/mve.md (mve_vrndxq_f<mode>): Add RTL pattern. 33832 (mve_vrndq_f<mode>): Likewise. 33833 (mve_vrndpq_f<mode>): Likewise. 33834 (mve_vrndnq_f<mode>): Likewise. 33835 (mve_vrndmq_f<mode>): Likewise. 33836 (mve_vrndaq_f<mode>): Likewise. 33837 (mve_vrev64q_f<mode>): Likewise. 33838 (mve_vnegq_f<mode>): Likewise. 33839 (mve_vdupq_n_f<mode>): Likewise. 33840 (mve_vabsq_f<mode>): Likewise. 33841 (mve_vrev32q_fv8hf): Likewise. 33842 (mve_vcvttq_f32_f16v4sf): Likewise. 33843 (mve_vcvtbq_f32_f16v4sf): Likewise. 33844 (mve_vcvtq_to_f_<supf><mode>): Likewise. 33845 338462020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 33847 Mihail Ionescu <mihail.ionescu@arm.com> 33848 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33849 33850 * config/arm/arm-builtins.c (CF): Define mve_builtin_data. 33851 (VAR1): Define. 33852 (ARM_BUILTIN_MVE_PATTERN_START): Define. 33853 (arm_init_mve_builtins): Define function. 33854 (arm_init_builtins): Add TARGET_HAVE_MVE check. 33855 (arm_expand_builtin_1): Check the range of fcode. 33856 (arm_expand_mve_builtin): Define function to expand MVE builtins. 33857 (arm_expand_builtin): Check the range of fcode. 33858 * config/arm/arm_mve.h (__ARM_FEATURE_MVE): Define MVE floating point 33859 types. 33860 (__ARM_MVE_PRESERVE_USER_NAMESPACE): Define to protect user namespace. 33861 (vst4q_s8): Define macro. 33862 (vst4q_s16): Likewise. 33863 (vst4q_s32): Likewise. 33864 (vst4q_u8): Likewise. 33865 (vst4q_u16): Likewise. 33866 (vst4q_u32): Likewise. 33867 (vst4q_f16): Likewise. 33868 (vst4q_f32): Likewise. 33869 (__arm_vst4q_s8): Define inline builtin. 33870 (__arm_vst4q_s16): Likewise. 33871 (__arm_vst4q_s32): Likewise. 33872 (__arm_vst4q_u8): Likewise. 33873 (__arm_vst4q_u16): Likewise. 33874 (__arm_vst4q_u32): Likewise. 33875 (__arm_vst4q_f16): Likewise. 33876 (__arm_vst4q_f32): Likewise. 33877 (__ARM_mve_typeid): Define macro with MVE types. 33878 (__ARM_mve_coerce): Define macro with _Generic feature. 33879 (vst4q): Define polymorphic variant for different vst4q builtins. 33880 * config/arm/arm_mve_builtins.def: New file. 33881 * config/arm/iterators.md (VSTRUCT): Modify to allow XI and OI 33882 modes in MVE. 33883 * config/arm/mve.md (MVE_VLD_ST): Define iterator. 33884 (unspec): Define unspec. 33885 (mve_vst4q<mode>): Define RTL pattern. 33886 * config/arm/neon.md (mov<mode>): Modify expand to allow XI and OI 33887 modes in MVE. 33888 (neon_mov<mode>): Modify RTL define_insn to allow XI and OI modes 33889 in MVE. 33890 (define_split): Allow OI mode split for MVE after reload. 33891 (define_split): Allow XI mode split for MVE after reload. 33892 * config/arm/t-arm (arm.o): Add entry for arm_mve_builtins.def. 33893 (arm-builtins.o): Likewise. 33894 338952020-03-17 Christophe Lyon <christophe.lyon@linaro.org> 33896 33897 * c-typeck.c (process_init_element): Handle constructor_type with 33898 type size represented by POLY_INT_CST. 33899 339002020-03-17 Jakub Jelinek <jakub@redhat.com> 33901 33902 PR tree-optimization/94187 33903 * tree-ssa-strlen.c (count_nonzero_bytes): Punt if 33904 nchars - offset < nbytes. 33905 33906 PR middle-end/94189 33907 * builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would 33908 emit a warning if it was enabled and don't depend on TREE_NO_WARNING 33909 for code-generation. 33910 339112020-03-16 Vladimir Makarov <vmakarov@redhat.com> 33912 33913 PR target/94185 33914 * lra-spills.c (remove_pseudos): Do not reuse insn alternative 33915 after changing memory subreg. 33916 339172020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 33918 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33919 33920 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Modify function to add 33921 emulator calls for dobule precision arithmetic operations for MVE. 33922 339232020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 33924 Mihail Ionescu <mihail.ionescu@arm.com> 33925 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 33926 33927 * common/config/arm/arm-common.c (arm_asm_auto_mfpu): When vfp_base 33928 feature bit is on and -mfpu=auto is passed as compiler option, do not 33929 generate error on not finding any matching fpu. Because in this case 33930 fpu is not required. 33931 * config/arm/arm-cpus.in (vfp_base): Define feature bit, this bit is 33932 enabled for MVE and also for all VFP extensions. 33933 (VFPv2): Modify fgroup to enable vfp_base feature bit when ever VFPv2 33934 is enabled. 33935 (MVE): Define fgroup to enable feature bits mve, vfp_base and armv7em. 33936 (MVE_FP): Define fgroup to enable feature bits is fgroup MVE and FPv5 33937 along with feature bits mve_float. 33938 (mve): Modify add options in armv8.1-m.main arch for MVE. 33939 (mve.fp): Modify add options in armv8.1-m.main arch for MVE with 33940 floating point. 33941 * config/arm/arm.c (use_return_insn): Replace the 33942 check with TARGET_VFP_BASE. 33943 (thumb2_legitimate_index_p): Replace TARGET_HARD_FLOAT with 33944 TARGET_VFP_BASE. 33945 (arm_rtx_costs_internal): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE" 33946 with TARGET_VFP_BASE, to allow cost calculations for copies in MVE as 33947 well. 33948 (arm_get_vfp_saved_size): Replace TARGET_HARD_FLOAT with 33949 TARGET_VFP_BASE, to allow space calculation for VFP registers in MVE 33950 as well. 33951 (arm_compute_frame_layout): Likewise. 33952 (arm_save_coproc_regs): Likewise. 33953 (arm_fixed_condition_code_regs): Modify to enable using VFPCC_REGNUM 33954 in MVE as well. 33955 (arm_hard_regno_mode_ok): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE" 33956 with equivalent macro TARGET_VFP_BASE. 33957 (arm_expand_epilogue_apcs_frame): Likewise. 33958 (arm_expand_epilogue): Likewise. 33959 (arm_conditional_register_usage): Likewise. 33960 (arm_declare_function_name): Add check to skip printing .fpu directive 33961 in assembly file when TARGET_VFP_BASE is enabled and fpu_to_print is 33962 "softvfp". 33963 * config/arm/arm.h (TARGET_VFP_BASE): Define. 33964 * config/arm/arm.md (arch): Add "mve" to arch. 33965 (eq_attr "arch" "mve"): Enable on TARGET_HAVE_MVE is true. 33966 (vfp_pop_multiple_with_writeback): Replace "TARGET_HARD_FLOAT 33967 || TARGET_HAVE_MVE" with equivalent macro TARGET_VFP_BASE. 33968 * config/arm/constraints.md (Uf): Define to allow modification to FPCCR 33969 in MVE. 33970 * config/arm/thumb2.md (thumb2_movsfcc_soft_insn): Modify target guard 33971 to not allow for MVE. 33972 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Move to volatile unspecs 33973 enum. 33974 (VUNSPEC_GET_FPSCR): Define. 33975 * config/arm/vfp.md (thumb2_movhi_vfp): Add support for VMSR and VMRS 33976 instructions which move to general-purpose Register from Floating-point 33977 Special register and vice-versa. 33978 (thumb2_movhi_fp16): Likewise. 33979 (thumb2_movsi_vfp): Add support for VMSR and VMRS instructions along 33980 with MCR and MRC instructions which set and get Floating-point Status 33981 and Control Register (FPSCR). 33982 (movdi_vfp): Modify pattern to enable Single-precision scalar float move 33983 in MVE. 33984 (thumb2_movdf_vfp): Modify pattern to enable Double-precision scalar 33985 float move patterns in MVE. 33986 (thumb2_movsfcc_vfp): Modify pattern to enable single float conditional 33987 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check. 33988 (thumb2_movdfcc_vfp): Modify pattern to enable double float conditional 33989 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check. 33990 (push_multi_vfp): Add support to use VFP VPUSH pattern for MVE by adding 33991 TARGET_VFP_BASE check. 33992 (set_fpscr): Add support to set FPSCR register for MVE. Modify pattern 33993 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR 33994 register. 33995 (get_fpscr): Add support to get FPSCR register for MVE. Modify pattern 33996 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR 33997 register. 33998 33999 340002020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 34001 Mihail Ionescu <mihail.ionescu@arm.com> 34002 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 34003 34004 * config.gcc (arm_mve.h): Include mve intrinsics header file. 34005 * config/arm/aout.h (p0): Add new register name for MVE predicated 34006 cases. 34007 * config/arm-builtins.c (ARM_BUILTIN_SIMD_LANE_CHECK): Define macro 34008 common to Neon and MVE. 34009 (ARM_BUILTIN_NEON_LANE_CHECK): Renamed to ARM_BUILTIN_SIMD_LANE_CHECK. 34010 (arm_init_simd_builtin_types): Disable poly types for MVE. 34011 (arm_init_neon_builtins): Move a check to arm_init_builtins function. 34012 (arm_init_builtins): Use ARM_BUILTIN_SIMD_LANE_CHECK instead of 34013 ARM_BUILTIN_NEON_LANE_CHECK. 34014 (mve_dereference_pointer): Add function. 34015 (arm_expand_builtin_args): Call to mve_dereference_pointer when MVE is 34016 enabled. 34017 (arm_expand_neon_builtin): Moved to arm_expand_builtin function. 34018 (arm_expand_builtin): Moved from arm_expand_neon_builtin function. 34019 * config/arm/arm-c.c (__ARM_FEATURE_MVE): Define macro for MVE and MVE 34020 with floating point enabled. 34021 * config/arm/arm-protos.h (neon_immediate_valid_for_move): Renamed to 34022 simd_immediate_valid_for_move. 34023 (simd_immediate_valid_for_move): Renamed from 34024 neon_immediate_valid_for_move function. 34025 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Generate 34026 error if vfpv2 feature bit is disabled and mve feature bit is also 34027 disabled for HARD_FLOAT_ABI. 34028 (use_return_insn): Check to not push VFP regs for MVE. 34029 (aapcs_vfp_allocate): Add MVE check to have same Procedure Call Standard 34030 as Neon. 34031 (aapcs_vfp_allocate_return_reg): Likewise. 34032 (thumb2_legitimate_address_p): Check to return 0 on valid Thumb-2 34033 address operand for MVE. 34034 (arm_rtx_costs_internal): MVE check to determine cost of rtx. 34035 (neon_valid_immediate): Rename to simd_valid_immediate. 34036 (simd_valid_immediate): Rename from neon_valid_immediate. 34037 (simd_valid_immediate): MVE check on size of vector is 128 bits. 34038 (neon_immediate_valid_for_move): Rename to 34039 simd_immediate_valid_for_move. 34040 (simd_immediate_valid_for_move): Rename from 34041 neon_immediate_valid_for_move. 34042 (neon_immediate_valid_for_logic): Modify call to neon_valid_immediate 34043 function. 34044 (neon_make_constant): Modify call to neon_valid_immediate function. 34045 (neon_vector_mem_operand): Return VFP register for POST_INC or PRE_DEC 34046 for MVE. 34047 (output_move_neon): Add MVE check to generate vldm/vstm instrcutions. 34048 (arm_compute_frame_layout): Calculate space for saved VFP registers for 34049 MVE. 34050 (arm_save_coproc_regs): Save coproc registers for MVE. 34051 (arm_print_operand): Add case 'E' to print memory operands for MVE. 34052 (arm_print_operand_address): Check to print register number for MVE. 34053 (arm_hard_regno_mode_ok): Check for arm hard regno mode ok for MVE. 34054 (arm_modes_tieable_p): Check to allow structure mode for MVE. 34055 (arm_regno_class): Add VPR_REGNUM check. 34056 (arm_expand_epilogue_apcs_frame): MVE check to calculate epilogue code 34057 for APCS frame. 34058 (arm_expand_epilogue): MVE check for enabling pop instructions in 34059 epilogue. 34060 (arm_print_asm_arch_directives): Modify function to disable print of 34061 .arch_extension "mve" and "fp" for cases where MVE is enabled with 34062 "SOFT FLOAT ABI". 34063 (arm_vector_mode_supported_p): Check for modes available in MVE interger 34064 and MVE floating point. 34065 (arm_array_mode_supported_p): Add TARGET_HAVE_MVE check for array mode 34066 pointer support. 34067 (arm_conditional_register_usage): Enable usage of conditional regsiter 34068 for MVE. 34069 (fixed_regs[VPR_REGNUM]): Enable VPR_REG for MVE. 34070 (arm_declare_function_name): Modify function to disable print of 34071 .arch_extension "mve" and "fp" for cases where MVE is enabled with 34072 "SOFT FLOAT ABI". 34073 * config/arm/arm.h (TARGET_HAVE_MVE): Disable for soft float abi and 34074 when target general registers are required. 34075 (TARGET_HAVE_MVE_FLOAT): Likewise. 34076 (FIXED_REGISTERS): Add bit for VFP_REG class which is enabled in arm.c 34077 for MVE. 34078 (CALL_USED_REGISTERS): Set bit for VFP_REG class in CALL_USED_REGISTERS 34079 which indicate this is not available for across function calls. 34080 (FIRST_PSEUDO_REGISTER): Modify. 34081 (VALID_MVE_MODE): Define valid MVE mode. 34082 (VALID_MVE_SI_MODE): Define valid MVE SI mode. 34083 (VALID_MVE_SF_MODE): Define valid MVE SF mode. 34084 (VALID_MVE_STRUCT_MODE): Define valid MVE struct mode. 34085 (VPR_REGNUM): Add Vector Predication Register in arm_regs_in_sequence 34086 for MVE. 34087 (IS_VPR_REGNUM): Macro to check for VPR_REG register. 34088 (REG_ALLOC_ORDER): Add VPR_REGNUM entry. 34089 (enum reg_class): Add VPR_REG entry. 34090 (REG_CLASS_NAMES): Add VPR_REG entry. 34091 * config/arm/arm.md (VPR_REGNUM): Define. 34092 (conds): Check is_mve_type attrbiute to differentiate "conditional" and 34093 "unconditional" instructions. 34094 (arm_movsf_soft_insn): Modify RTL to not allow for MVE. 34095 (movdf_soft_insn): Modify RTL to not allow for MVE. 34096 (vfp_pop_multiple_with_writeback): Enable for MVE. 34097 (include "mve.md"): Include mve.md file. 34098 * config/arm/arm_mve.h: Add MVE intrinsics head file. 34099 * config/arm/constraints.md (Up): Constraint to enable "p0" register in MVE 34100 for vector predicated operands. 34101 * config/arm/iterators.md (VNIM1): Define. 34102 (VNINOTM1): Define. 34103 (VHFBF_split): Define 34104 * config/arm/mve.md: New file. 34105 (mve_mov<mode>): Define RTL for move, store and load in MVE. 34106 (mve_mov<mode>): Define move RTL pattern with vec_duplicate operator for 34107 second operand. 34108 * config/arm/neon.md (neon_immediate_valid_for_move): Rename with 34109 simd_immediate_valid_for_move. 34110 (neon_mov<mode>): Split pattern and move expand pattern "movv8hf" which 34111 is common to MVE and NEON to vec-common.md file. 34112 (vec_init<mode><V_elem_l>): Add TARGET_HAVE_MVE check. 34113 * config/arm/predicates.md (vpr_register_operand): Define. 34114 * config/arm/t-arm: Add mve.md file. 34115 * config/arm/types.md (mve_move): Add MVE instructions mve_move to 34116 attribute "type". 34117 (mve_store): Add MVE instructions mve_store to attribute "type". 34118 (mve_load): Add MVE instructions mve_load to attribute "type". 34119 (is_mve_type): Define attribute. 34120 * config/arm/vec-common.md (mov<mode>): Modify RTL expand to support 34121 standard move patterns in MVE along with NEON and IWMMXT with mode 34122 iterator VNIM1. 34123 (mov<mode>): Modify RTL expand to support standard move patterns in NEON 34124 and IWMMXT with mode iterator V8HF. 34125 (movv8hf): Define RTL expand to support standard "movv8hf" pattern in 34126 NEON and MVE. 34127 * config/arm/vfp.md (neon_immediate_valid_for_move): Rename to 34128 simd_immediate_valid_for_move. 34129 34130 341312020-03-16 H.J. Lu <hongjiu.lu@intel.com> 34132 34133 PR target/89229 34134 * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov 34135 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL 34136 check. 34137 * config/i386/predicates.md (ext_sse_reg_operand): Removed. 34138 341392020-03-16 Jakub Jelinek <jakub@redhat.com> 34140 34141 PR debug/94167 34142 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands 34143 DEBUG_STMTs. 34144 34145 PR tree-optimization/94166 34146 * tree-ssa-reassoc.c (sort_by_mach_mode): Use SSA_NAME_VERSION 34147 as secondary comparison key. 34148 341492020-03-16 Bin Cheng <bin.cheng@linux.alibaba.com> 34150 34151 PR tree-optimization/94125 34152 * tree-loop-distribution.c 34153 (loop_distribution::break_alias_scc_partitions): Update post order 34154 number for merged scc. 34155 341562020-03-15 H.J. Lu <hongjiu.lu@intel.com> 34157 34158 PR target/89229 34159 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_SI and 34160 MODE_SF. 34161 * config/i386/i386.md (*movsf_internal): Call ix86_output_ssemov 34162 for TYPE_SSEMOV. Remove TARGET_PREFER_AVX256, TARGET_AVX512VL 34163 and ext_sse_reg_operand check. 34164 341652020-03-15 Lewis Hyatt <lhyatt@gmail.com> 34166 34167 * common.opt: Avoid redundancy in the help text. 34168 * config/arc/arc.opt: Likewise. 34169 * config/cr16/cr16.opt: Likewise. 34170 341712020-03-14 Jakub Jelinek <jakub@redhat.com> 34172 34173 PR middle-end/93566 34174 * tree-nested.c (convert_nonlocal_omp_clauses, 34175 convert_local_omp_clauses): Handle {,in_,task_}reduction clauses 34176 with C/C++ array sections. 34177 341782020-03-14 H.J. Lu <hongjiu.lu@intel.com> 34179 34180 PR target/89229 34181 * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov 34182 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL 34183 check. 34184 341852020-03-14 Jakub Jelinek <jakub@redhat.com> 34186 34187 * gimple-fold.c (gimple_fold_builtin_strncpy): Change 34188 "a an" to "an" in a comment. 34189 * hsa-common.h (is_a_helper): Likewise. 34190 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. 34191 * config/arc/arc.c (arc600_corereg_hazard): Likewise. 34192 * config/s390/s390.c (s390_indirect_branch_via_thunk): Likewise. 34193 341942020-03-13 Aaron Sawdey <acsawdey@linux.ibm.com> 34195 34196 PR target/92379 34197 * config/rs6000/rs6000.c (num_insns_constant_multi): Don't shift a 34198 64-bit value by 64 bits (UB). 34199 342002020-03-13 Vladimir Makarov <vmakarov@redhat.com> 34201 34202 PR rtl-optimization/92303 34203 * lra-spills.c (remove_pseudos): Try to simplify memory subreg. 34204 342052020-03-13 Segher Boessenkool <segher@kernel.crashing.org> 34206 34207 PR rtl-optimization/94148 34208 PR rtl-optimization/94042 34209 * df-core.c (BB_LAST_CHANGE_AGE): Delete. 34210 (df_worklist_propagate_forward): New parameter last_change_age, use 34211 that instead of bb->aux. 34212 (df_worklist_propagate_backward): Ditto. 34213 (df_worklist_dataflow_doublequeue): Use a local array last_change_age. 34214 342152020-03-13 Richard Biener <rguenther@suse.de> 34216 34217 PR tree-optimization/94163 34218 * tree-ssa-pre.c (create_expression_by_pieces): Check 34219 whether alignment would be zero. 34220 342212020-03-13 Martin Liska <mliska@suse.cz> 34222 34223 PR lto/94157 34224 * lto-wrapper.c (run_gcc): Use concat for appending 34225 to collect_gcc_options. 34226 342272020-03-13 Jakub Jelinek <jakub@redhat.com> 34228 34229 PR target/94121 34230 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode 34231 instead of GEN_INT. 34232 342332020-03-13 H.J. Lu <hongjiu.lu@intel.com> 34234 34235 PR target/89229 34236 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF. 34237 * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov 34238 for TYPE_SSEMOV. Remove TARGET_AVX512F, TARGET_PREFER_AVX256, 34239 TARGET_AVX512VL and ext_sse_reg_operand check. 34240 342412020-03-13 Bu Le <bule1@huawei.com> 34242 34243 PR target/94154 34244 * config/aarch64/aarch64.opt (-param=aarch64-float-recp-precision=) 34245 (-param=aarch64-double-recp-precision=): New options. 34246 * doc/invoke.texi: Document them. 34247 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Use them 34248 instead of hard-coding the choice of 1 for float and 2 for double. 34249 342502020-03-13 Eric Botcazou <ebotcazou@adacore.com> 34251 34252 PR rtl-optimization/94119 34253 * resource.h (clear_hashed_info_until_next_barrier): Declare. 34254 * resource.c (clear_hashed_info_until_next_barrier): New function. 34255 * reorg.c (add_to_delay_list): Fix formatting. 34256 (relax_delay_slots): Call clear_hashed_info_until_next_barrier on 34257 the next instruction after removing a BARRIER. 34258 342592020-03-13 Eric Botcazou <ebotcazou@adacore.com> 34260 34261 PR middle-end/92071 34262 * expmed.c (store_integral_bit_field): For fields larger than a word, 34263 call extract_bit_field on the value if the mode is BLKmode. Remove 34264 specific path for big-endian targets and tidy things up a little bit. 34265 342662020-03-12 Richard Sandiford <richard.sandiford@arm.com> 34267 34268 PR rtl-optimization/90275 34269 * cse.c (cse_insn): Delete no-op register moves too. 34270 342712020-03-12 Darius Galis <darius.galis@cyberthorstudios.com> 34272 34273 * config/rx/rx.md (CTRLREG_CPEN): Remove. 34274 * config/rx/rx.c (rx_print_operand): Remove CTRLREG_CPEN support. 34275 342762020-03-12 Richard Biener <rguenther@suse.de> 34277 34278 PR tree-optimization/94103 34279 * tree-ssa-sccvn.c (visit_reference_op_load): Avoid type 34280 punning when the mode precision is not sufficient. 34281 342822020-03-12 H.J. Lu <hongjiu.lu@intel.com> 34283 34284 PR target/89229 34285 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DI, 34286 MODE_V1DF and MODE_V2SF. 34287 * config/i386/mmx.md (MMXMODE:*mov<mode>_internal): Call 34288 ix86_output_ssemov for TYPE_SSEMOV. Remove ext_sse_reg_operand 34289 check. 34290 342912020-03-12 Jakub Jelinek <jakub@redhat.com> 34292 34293 * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change 34294 ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL 34295 and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL. 34296 * doc/tm.texi: Regenerated. 34297 34298 PR tree-optimization/94130 34299 * tree-ssa-dse.c: Include gimplify.h. 34300 (increment_start_addr): If stmt has lhs, drop the lhs from call and 34301 set it after the call to the original value of the first argument. 34302 Formatting fixes. 34303 (decrement_count): Formatting fix. 34304 343052020-03-11 Delia Burduv <delia.burduv@arm.com> 34306 34307 * config/arm/arm-builtins.c 34308 (arm_init_simd_builtin_scalar_types): New. 34309 * config/arm/arm_neon.h (vld2_bf16): Used new builtin type. 34310 (vld2q_bf16): Used new builtin type. 34311 (vld3_bf16): Used new builtin type. 34312 (vld3q_bf16): Used new builtin type. 34313 (vld4_bf16): Used new builtin type. 34314 (vld4q_bf16): Used new builtin type. 34315 (vld2_dup_bf16): Used new builtin type. 34316 (vld2q_dup_bf16): Used new builtin type. 34317 (vld3_dup_bf16): Used new builtin type. 34318 (vld3q_dup_bf16): Used new builtin type. 34319 (vld4_dup_bf16): Used new builtin type. 34320 (vld4q_dup_bf16): Used new builtin type. 34321 343222020-03-11 Jakub Jelinek <jakub@redhat.com> 34323 34324 PR target/94134 34325 * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section 34326 at the start to switch to data section. Don't print extra newline if 34327 .globl directive has not been emitted. 34328 343292020-03-11 Richard Biener <rguenther@suse.de> 34330 34331 * match.pd ((T *)(ptr - ptr-cst) -> &MEM[ptr + -ptr-cst]): 34332 New pattern. 34333 343342020-03-11 Eric Botcazou <ebotcazou@adacore.com> 34335 34336 PR middle-end/93961 34337 * tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into fields 34338 whose type is a qualified union. 34339 343402020-03-11 Jakub Jelinek <jakub@redhat.com> 34341 34342 PR target/94121 34343 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi 34344 instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT. 34345 34346 PR bootstrap/93962 34347 * value-prof.c (dump_histogram_value): Use abs_hwi instead of 34348 std::abs. 34349 (get_nth_most_common_value): Use abs_hwi instead of abs. 34350 34351 PR middle-end/94111 34352 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl 34353 is rvc_normal, otherwise use real_to_decimal to print the number to 34354 string. 34355 34356 PR tree-optimization/94114 34357 * tree-loop-distribution.c (generate_memset_builtin): Call 34358 rewrite_to_non_trapping_overflow even on mem. 34359 (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even 34360 on dest and src. 34361 343622020-03-10 Jeff Law <law@redhat.com> 34363 34364 * config/bfin/bfin.md (movsi_insv): Add length attribute. 34365 343662020-03-10 Jiufu Guo <guojiufu@linux.ibm.com> 34367 34368 PR target/93709 34369 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check 34370 NAN and SIGNED_ZEROR for smax/smin. 34371 343722020-03-10 Will Schmidt <will_schmidt@vnet.ibm.com> 34373 34374 PR target/90763 34375 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add 34376 clause to handle P9V_BUILTIN_VEC_LXVL with const arguments. 34377 343782020-03-10 Roman Zhuykov <zhroma@ispras.ru> 34379 34380 * loop-iv.c (find_simple_exit): Make it static. 34381 * cfgloop.h: Remove the corresponding prototype. 34382 343832020-03-10 Roman Zhuykov <zhroma@ispras.ru> 34384 34385 * ddg.c (create_ddg): Fix intendation. 34386 (set_recurrence_length): Likewise. 34387 (create_ddg_all_sccs): Likewise. 34388 343892020-03-10 Jakub Jelinek <jakub@redhat.com> 34390 34391 PR target/94088 34392 * config/i386/i386.md (*testqi_ext_3): Call ix86_match_ccmode with 34393 CCZmode instead of CCNOmode if operands[2] has DImode and pos + len 34394 is 32. 34395 343962020-03-09 Jason Merrill <jason@redhat.com> 34397 34398 * gdbinit.in (pgs): Fix typo in documentation. 34399 344002020-03-09 Vladimir Makarov <vmakarov@redhat.com> 34401 34402 Revert: 34403 34404 2020-02-28 Vladimir Makarov <vmakarov@redhat.com> 34405 34406 PR rtl-optimization/93564 34407 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we 34408 do not honor reg alloc order. 34409 344102020-03-09 Andrew Pinski <apinski@marvell.com> 34411 34412 PR inline-asm/94095 34413 * doc/extend.texi (x86 Operand Modifiers): Fix column 34414 for 'A' modifier. 34415 344162020-03-09 Martin Liska <mliska@suse.cz> 34417 34418 PR target/93800 34419 * config/rs6000/rs6000.c (rs6000_option_override_internal): 34420 Remove set of str_align_loops and str_align_jumps as these 34421 should be set in previous 2 conditions in the function. 34422 344232020-03-09 Jakub Jelinek <jakub@redhat.com> 34424 34425 PR rtl-optimization/94045 34426 * params.opt (-param=max-find-base-term-values=): New option. 34427 * alias.c (find_base_term): Add cut-off for number of visited VALUEs 34428 in a single toplevel find_base_term call. 34429 344302020-03-06 Wilco Dijkstra <wdijkstr@arm.com> 34431 34432 PR target/91598 34433 * config/aarch64/aarch64-builtins.c (TYPES_TERNOPU_LANE): Add define. 34434 * config/aarch64/aarch64-simd.md 34435 (aarch64_vec_<su>mult_lane<Qlane>): Add new insn for widening lane mul. 34436 (aarch64_vec_<su>mlal_lane<Qlane>): Likewise. 34437 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics. 34438 * config/aarch64/arm_neon.h: 34439 (vmlal_lane_s16): Expand using intrinsics rather than inline asm. 34440 (vmlal_lane_u16): Likewise. 34441 (vmlal_lane_s32): Likewise. 34442 (vmlal_lane_u32): Likewise. 34443 (vmlal_laneq_s16): Likewise. 34444 (vmlal_laneq_u16): Likewise. 34445 (vmlal_laneq_s32): Likewise. 34446 (vmlal_laneq_u32): Likewise. 34447 (vmull_lane_s16): Likewise. 34448 (vmull_lane_u16): Likewise. 34449 (vmull_lane_s32): Likewise. 34450 (vmull_lane_u32): Likewise. 34451 (vmull_laneq_s16): Likewise. 34452 (vmull_laneq_u16): Likewise. 34453 (vmull_laneq_s32): Likewise. 34454 (vmull_laneq_u32): Likewise. 34455 * config/aarch64/iterators.md (Vcondtype): New iterator for lane mul. 34456 (Qlane): Likewise. 34457 344582020-03-06 Wilco Dijkstra <wdijkstr@arm.com> 34459 34460 * aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): Correct lane syntax. 34461 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise. 34462 (aarch64_mls_elt<mode>): Likewise. 34463 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise. 34464 (aarch64_fma4_elt<mode>): Likewise. 34465 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise. 34466 (aarch64_fma4_elt_to_64v2df): Likewise. 34467 (aarch64_fnma4_elt<mode>): Likewise. 34468 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. 34469 (aarch64_fnma4_elt_to_64v2df): Likewise. 34470 344712020-03-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34472 34473 * config/aarch64/aarch64-sve2.md (@aarch64_sve_<sve_int_op><mode>: 34474 Specify movprfx attribute. 34475 (@aarch64_sve_<sve_int_op>_lane_<mode>): Likewise. 34476 344772020-03-06 David Edelsohn <dje.gcc@gmail.com> 34478 34479 PR target/94065 34480 * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for 34481 cmodel=large. 34482 (TARGET_NO_FP_IN_TOC): Same. 34483 * config/rs6000/aix71.h: Same. 34484 * config/rs6000/aix72.h: Same. 34485 344862020-03-06 Andrew Pinski <apinski@marvell.com> 34487 Jeff Law <law@redhat.com> 34488 34489 PR rtl-optimization/93996 34490 * haifa-sched.c (remove_notes): Be more careful when adding 34491 REG_SAVE_NOTE. 34492 344932020-03-06 Delia Burduv <delia.burduv@arm.com> 34494 34495 * config/arm/arm_neon.h (vld2_bf16): New. 34496 (vld2q_bf16): New. 34497 (vld3_bf16): New. 34498 (vld3q_bf16): New. 34499 (vld4_bf16): New. 34500 (vld4q_bf16): New. 34501 (vld2_dup_bf16): New. 34502 (vld2q_dup_bf16): New. 34503 (vld3_dup_bf16): New. 34504 (vld3q_dup_bf16): New. 34505 (vld4_dup_bf16): New. 34506 (vld4q_dup_bf16): New. 34507 * config/arm/arm_neon_builtins.def 34508 (vld2): Changed to VAR13 and added v4bf, v8bf 34509 (vld2_dup): Changed to VAR8 and added v4bf, v8bf 34510 (vld3): Changed to VAR13 and added v4bf, v8bf 34511 (vld3_dup): Changed to VAR8 and added v4bf, v8bf 34512 (vld4): Changed to VAR13 and added v4bf, v8bf 34513 (vld4_dup): Changed to VAR8 and added v4bf, v8bf 34514 * config/arm/iterators.md (VDXBF2): New iterator. 34515 *config/arm/neon.md (neon_vld2): Use new iterators. 34516 (neon_vld2_dup<mode): Use new iterators. 34517 (neon_vld3<mode>): Likewise. 34518 (neon_vld3qa<mode>): Likewise. 34519 (neon_vld3qb<mode>): Likewise. 34520 (neon_vld3_dup<mode>): Likewise. 34521 (neon_vld4<mode>): Likewise. 34522 (neon_vld4qa<mode>): Likewise. 34523 (neon_vld4qb<mode>): Likewise. 34524 (neon_vld4_dup<mode>): Likewise. 34525 (neon_vld2_dupv8bf): New. 34526 (neon_vld3_dupv8bf): Likewise. 34527 (neon_vld4_dupv8bf): Likewise. 34528 345292020-03-06 Delia Burduv <delia.burduv@arm.com> 34530 34531 * config/arm/arm_neon.h (bfloat16x4x2_t): New typedef. 34532 (bfloat16x8x2_t): New typedef. 34533 (bfloat16x4x3_t): New typedef. 34534 (bfloat16x8x3_t): New typedef. 34535 (bfloat16x4x4_t): New typedef. 34536 (bfloat16x8x4_t): New typedef. 34537 (vst2_bf16): New. 34538 (vst2q_bf16): New. 34539 (vst3_bf16): New. 34540 (vst3q_bf16): New. 34541 (vst4_bf16): New. 34542 (vst4q_bf16): New. 34543 * config/arm/arm-builtins.c (v2bf_UP): Define. 34544 (VAR13): New. 34545 (arm_init_simd_builtin_types): Init Bfloat16x2_t eltype. 34546 * config/arm/arm-modes.def (V2BF): New mode. 34547 * config/arm/arm-simd-builtin-types.def 34548 (Bfloat16x2_t): New entry. 34549 * config/arm/arm_neon_builtins.def 34550 (vst2): Changed to VAR13 and added v4bf, v8bf 34551 (vst3): Changed to VAR13 and added v4bf, v8bf 34552 (vst4): Changed to VAR13 and added v4bf, v8bf 34553 * config/arm/iterators.md (VDXBF): New iterator. 34554 (VQ2BF): New iterator. 34555 *config/arm/neon.md (neon_vst2<mode>): Used new iterators. 34556 (neon_vst2<mode>): Used new iterators. 34557 (neon_vst3<mode>): Used new iterators. 34558 (neon_vst3<mode>): Used new iterators. 34559 (neon_vst3qa<mode>): Used new iterators. 34560 (neon_vst3qb<mode>): Used new iterators. 34561 (neon_vst4<mode>): Used new iterators. 34562 (neon_vst4<mode>): Used new iterators. 34563 (neon_vst4qa<mode>): Used new iterators. 34564 (neon_vst4qb<mode>): Used new iterators. 34565 345662020-03-06 Delia Burduv <delia.burduv@arm.com> 34567 34568 * config/aarch64/aarch64-simd-builtins.def 34569 (bfcvtn): New built-in function. 34570 (bfcvtn_q): New built-in function. 34571 (bfcvtn2): New built-in function. 34572 (bfcvt): New built-in function. 34573 * config/aarch64/aarch64-simd.md 34574 (aarch64_bfcvtn<q><mode>): New pattern. 34575 (aarch64_bfcvtn2v8bf): New pattern. 34576 (aarch64_bfcvtbf): New pattern. 34577 * config/aarch64/arm_bf16.h (float32_t): New typedef. 34578 (vcvth_bf16_f32): New intrinsic. 34579 * config/aarch64/arm_bf16.h (vcvt_bf16_f32): New intrinsic. 34580 (vcvtq_low_bf16_f32): New intrinsic. 34581 (vcvtq_high_bf16_f32): New intrinsic. 34582 * config/aarch64/iterators.md (V4SF_TO_BF): New mode iterator. 34583 (UNSPEC_BFCVTN): New UNSPEC. 34584 (UNSPEC_BFCVTN2): New UNSPEC. 34585 (UNSPEC_BFCVT): New UNSPEC. 34586 * config/arm/types.md (bf_cvt): New type. 34587 345882020-03-06 Andreas Krebbel <krebbel@linux.ibm.com> 34589 34590 * config/s390/s390.md ("tabort"): Get rid of two consecutive 34591 blanks in format string. 34592 345932020-03-05 H.J. Lu <hongjiu.lu@intel.com> 34594 34595 PR target/89229 34596 PR target/89346 34597 * config/i386/i386-protos.h (ix86_output_ssemov): New prototype. 34598 * config/i386/i386.c (ix86_get_ssemov): New function. 34599 (ix86_output_ssemov): Likewise. 34600 * config/i386/sse.md (VMOVE:mov<mode>_internal): Call 34601 ix86_output_ssemov for TYPE_SSEMOV. Remove TARGET_AVX512VL 34602 check. 34603 (*movxi_internal_avx512f): Call ix86_output_ssemov for TYPE_SSEMOV. 34604 (*movoi_internal_avx): Call ix86_output_ssemov for TYPE_SSEMOV. 34605 Remove ext_sse_reg_operand and TARGET_AVX512VL check. 34606 (*movti_internal): Likewise. 34607 (*movtf_internal): Call ix86_output_ssemov for TYPE_SSEMOV. 34608 346092020-03-05 Jeff Law <law@redhat.com> 34610 34611 PR tree-optimization/91890 34612 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Remove LOC argument. 34613 Use gimple_or_expr_nonartificial_location. 34614 (check_bounds_overlap): Drop LOC argument to maybe_diag_access_bounds. 34615 Use gimple_or_expr_nonartificial_location. 34616 * gimple.c (gimple_or_expr_nonartificial_location): New function. 34617 * gimple.h (gimple_or_expr_nonartificial_location): Declare it. 34618 * tree-ssa-strlen.c (maybe_warn_overflow): Use 34619 gimple_or_expr_nonartificial_location. 34620 (maybe_diag_stxncpy_trunc, handle_builtin_stxncpy_strncat): Likewise. 34621 (maybe_warn_pointless_strcmp): Likewise. 34622 346232020-03-05 Jakub Jelinek <jakub@redhat.com> 34624 34625 PR target/94046 34626 * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of 34627 SRC and MASK arguments to __m128 from __m128d. 34628 (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256 34629 from __m256d. 34630 (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128 34631 from __m128d. 34632 * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C 34633 argument to __m128i from __m128d. 34634 (_mm256_permute2_pd): Fix first cast of C argument to __m256i from 34635 __m256d. 34636 (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128. 34637 (_mm256_permute2_ps): Fix first cast of C argument to __m256i from 34638 __m256. 34639 346402020-03-05 Delia Burduv <delia.burduv@arm.com> 34641 34642 * config/arm/arm_neon.h (vbfmmlaq_f32): New. 34643 (vbfmlalbq_f32): New. 34644 (vbfmlaltq_f32): New. 34645 (vbfmlalbq_lane_f32): New. 34646 (vbfmlaltq_lane_f32): New. 34647 (vbfmlalbq_laneq_f32): New. 34648 (vbfmlaltq_laneq_f32): New. 34649 * config/arm/arm_neon_builtins.def (vmmla): New. 34650 (vfmab): New. 34651 (vfmat): New. 34652 (vfmab_lane): New. 34653 (vfmat_lane): New. 34654 (vfmab_laneq): New. 34655 (vfmat_laneq): New. 34656 * config/arm/iterators.md (BF_MA): New int iterator. 34657 (bt): New int attribute. 34658 (VQXBF): Copy of VQX with V8BF. 34659 * config/arm/neon.md (neon_vmmlav8bf): New insn. 34660 (neon_vfma<bt>v8bf): New insn. 34661 (neon_vfma<bt>_lanev8bf): New insn. 34662 (neon_vfma<bt>_laneqv8bf): New expand. 34663 (neon_vget_high<mode>): Changed iterator to VQXBF. 34664 * config/arm/unspecs.md (UNSPEC_BFMMLA): New UNSPEC. 34665 (UNSPEC_BFMAB): New UNSPEC. 34666 (UNSPEC_BFMAT): New UNSPEC. 34667 346682020-03-05 Jakub Jelinek <jakub@redhat.com> 34669 34670 PR middle-end/93399 34671 * tree-pretty-print.h (pretty_print_string): Declare. 34672 * tree-pretty-print.c (pretty_print_string): Remove forward 34673 declaration, no longer static. Change nbytes parameter type 34674 from unsigned to size_t. 34675 * print-rtl.c (print_value) <case CONST_STRING>: Use 34676 pretty_print_string and for shrink way too long strings. 34677 346782020-03-05 Richard Biener <rguenther@suse.de> 34679 Jakub Jelinek <jakub@redhat.com> 34680 34681 PR tree-optimization/93582 34682 * tree-ssa-sccvn.c (vn_reference_lookup_3): Treat POINTER_PLUS_EXPR 34683 last operand as signed when looking for memset offset. Formatting 34684 fix. 34685 346862020-03-04 Andrew Pinski <apinski@marvell.com> 34687 34688 PR bootstrap/93962 34689 * value-prof.c (dump_histogram_value): Use std::abs. 34690 346912020-03-04 Martin Sebor <msebor@redhat.com> 34692 34693 PR tree-optimization/93986 34694 * tree-ssa-strlen.c (maybe_warn_overflow): Convert all wide_int 34695 operands to the same precision widest_int to avoid ICEs. 34696 346972020-03-04 Bill Schmidt <wschmidt@linux.ibm.com> 34698 34699 PR target/87560 34700 * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define. 34701 * rs6000.c (rs6000_disable_incompatible_switches): Add table entry 34702 for OPTION_MASK_ALTIVEC. 34703 347042020-03-04 Andreas Krebbel <krebbel@linux.ibm.com> 34705 34706 * config.gcc: Include the glibc-stdint.h header for zTPF. 34707 347082020-03-04 Andreas Krebbel <krebbel@linux.ibm.com> 34709 34710 * config/s390/s390.c (s390_secondary_memory_needed): Disallow 34711 direct FPR-GPR copies. 34712 (s390_register_info_gprtofpr): Disallow GPR content to be saved in 34713 FPRs. 34714 347152020-03-04 Andreas Krebbel <krebbel@linux.ibm.com> 34716 34717 * config/s390/s390.c (s390_emit_prologue): Specify the 2 new 34718 operands to the prologue_tpf expander. 34719 (s390_emit_epilogue): Likewise. 34720 (s390_option_override_internal): Do error checking and setup for 34721 the new options. 34722 * config/s390/tpf.h (TPF_TRACE_PROLOGUE_CHECK) 34723 (TPF_TRACE_EPILOGUE_CHECK, TPF_TRACE_PROLOGUE_TARGET) 34724 (TPF_TRACE_EPILOGUE_TARGET, TPF_TRACE_PROLOGUE_SKIP_TARGET) 34725 (TPF_TRACE_EPILOGUE_SKIP_TARGET): New macro definitions. 34726 * config/s390/tpf.md ("prologue_tpf", "epilogue_tpf"): Add two new 34727 operands for the check flag and the branch target. 34728 * config/s390/tpf.opt ("mtpf-trace-hook-prologue-check") 34729 ("mtpf-trace-hook-prologue-target") 34730 ("mtpf-trace-hook-epilogue-check") 34731 ("mtpf-trace-hook-epilogue-target", "mtpf-trace-skip"): New 34732 options. 34733 * doc/invoke.texi: Document -mtpf-trace-skip option. The other 34734 options are for debugging purposes and will not be documented 34735 here. 34736 347372020-03-04 Jakub Jelinek <jakub@redhat.com> 34738 34739 PR debug/93888 34740 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag. 34741 34742 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Add offseti 34743 argument. Change pd argument so that it can be modified. Turn 34744 constant non-CONSTRUCTOR store into non-constant if it is too large. 34745 Adjust offset and size of CONSTRUCTOR or non-constant store to avoid 34746 overflows. 34747 (vn_walk_cb_data::vn_walk_cb_data, vn_reference_lookup_3): Adjust 34748 callers. 34749 347502020-02-04 Richard Biener <rguenther@suse.de> 34751 34752 PR tree-optimization/93964 34753 * graphite-isl-ast-to-gimple.c 34754 (gcc_expression_from_isl_ast_expr_id): Add intermediate 34755 conversion for pointer to integer converts. 34756 * graphite-scop-detection.c (assign_parameter_index_in_region): 34757 Relax assert. 34758 347592020-03-04 Martin Liska <mliska@suse.cz> 34760 34761 PR c/93886 34762 PR c/93887 34763 * doc/invoke.texi: Clarify --help=language and --help=common 34764 interaction. 34765 347662020-03-04 Jakub Jelinek <jakub@redhat.com> 34767 34768 PR tree-optimization/94001 34769 * tree-tailcall.c (process_assignment): Before comparing op1 to 34770 *ass_var, verify *ass_var is non-NULL. 34771 347722020-03-04 Kito Cheng <kito.cheng@sifive.com> 34773 34774 PR target/93995 34775 * config/riscv/riscv.c (riscv_emit_float_compare): Using NE to compare 34776 the result of IOR. 34777 347782020-03-03 Dennis Zhang <dennis.zhang@arm.com> 34779 34780 * config/arm/arm_bf16.h (vcvtah_f32_bf16, vcvth_bf16_f32): New. 34781 * config/arm/arm_neon.h (vcvt_f32_bf16, vcvtq_low_f32_bf16): New. 34782 (vcvtq_high_f32_bf16, vcvt_bf16_f32): New. 34783 (vcvtq_low_bf16_f32, vcvtq_high_bf16_f32): New. 34784 * config/arm/arm_neon_builtins.def (vbfcvt, vbfcvt_high): New entries. 34785 (vbfcvtv4sf, vbfcvtv4sf_high): Likewise. 34786 * config/arm/iterators.md (VBFCVT, VBFCVTM): New mode iterators. 34787 (V_bf_low, V_bf_cvt_m): New mode attributes. 34788 * config/arm/neon.md (neon_vbfcvtv4sf<VBFCVT:mode>): New. 34789 (neon_vbfcvtv4sf_highv8bf, neon_vbfcvtsf): New. 34790 (neon_vbfcvt<VBFCVT:mode>, neon_vbfcvt_highv8bf): New. 34791 (neon_vbfcvtbf_cvtmode<mode>, neon_vbfcvtbf): New 34792 * config/arm/unspecs.md (UNSPEC_BFCVT, UNSPEC_BFCVT_HIG): New. 34793 347942020-03-03 Jakub Jelinek <jakub@redhat.com> 34795 34796 PR tree-optimization/93582 34797 * tree-ssa-sccvn.h (vn_reference_lookup): Add mask argument. 34798 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add mask and masked_result 34799 members, initialize them in the constructor and if mask is non-NULL, 34800 artificially push_partial_def {} for the portions of the mask that 34801 contain zeros. 34802 (vn_walk_cb_data::finish): If mask is non-NULL, set masked_result to 34803 val and return (void *)-1. Formatting fix. 34804 (vn_reference_lookup_pieces): Adjust vn_walk_cb_data initialization. 34805 Formatting fix. 34806 (vn_reference_lookup): Add mask argument. If non-NULL, don't call 34807 fully_constant_vn_reference_p nor vn_reference_lookup_1 and return 34808 data.mask_result. 34809 (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST 34810 mask. 34811 (visit_stmt): Formatting fix. 34812 348132020-03-03 Richard Biener <rguenther@suse.de> 34814 34815 PR tree-optimization/93946 34816 * alias.h (refs_same_for_tbaa_p): Declare. 34817 * alias.c (refs_same_for_tbaa_p): New function. 34818 * tree-ssa-alias.c (ao_ref_alias_set): For a NULL ref return 34819 zero. 34820 * tree-ssa-scopedtables.h 34821 (avail_exprs_stack::lookup_avail_expr): Add output argument 34822 giving access to the hashtable entry. 34823 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): 34824 Likewise. 34825 * tree-ssa-dom.c: Include alias.h. 34826 (dom_opt_dom_walker::optimize_stmt): Validate TBAA state before 34827 removing redundant store. 34828 * tree-ssa-sccvn.h (vn_reference_s::base_set): New member. 34829 (ao_ref_init_from_vn_reference): Adjust prototype. 34830 (vn_reference_lookup_pieces): Likewise. 34831 (vn_reference_insert_pieces): Likewise. 34832 * tree-ssa-sccvn.c: Track base alias set in addition to alias 34833 set everywhere. 34834 (eliminate_dom_walker::eliminate_stmt): Also check base alias 34835 set when removing redundant stores. 34836 (visit_reference_op_store): Likewise. 34837 * dse.c (record_store): Adjust valdity check for redundant 34838 store removal. 34839 348402020-03-03 Jakub Jelinek <jakub@redhat.com> 34841 34842 PR target/26877 34843 * config/s390/s390.h (OPTION_DEFAULT_SPECS): Reorder. 34844 34845 PR rtl-optimization/94002 34846 * explow.c (plus_constant): Punt if cst has VOIDmode and 34847 get_pool_mode is different from mode. 34848 348492020-03-03 Claudiu Zissulescu <claziss@synopsys.com> 34850 34851 * config/arc/arc.c (leigitimate_small_data_address_p): Check if an 34852 address has an offset which fits the scalling constraint for a 34853 load/store operation. 34854 (legitimate_scaled_address_p): Update use 34855 leigitimate_small_data_address_p. 34856 (arc_print_operand): Likewise. 34857 (arc_legitimate_address_p): Likewise. 34858 (legitimate_small_data_address_p): Likewise. 34859 348602020-03-03 Claudiu Zissulescu <claziss@synopsys.com> 34861 34862 * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate. 34863 (fnmasf4_fpu): Likewise. 34864 348652020-03-03 Claudiu Zissulescu <claziss@synopsys.com> 34866 34867 * config/arc/arc.md (adddi3): Early expand the 64bit operation into 34868 32bit ops. 34869 (subdi3): Likewise. 34870 (adddi3_i): Remove pattern. 34871 (subdi3_i): Likewise. 34872 348732020-03-03 Claudiu Zissulescu <claziss@synopsys.com> 34874 34875 * config/arc/arc.md (eh_return): Add length info. 34876 348772020-03-02 David Malcolm <dmalcolm@redhat.com> 34878 34879 * doc/invoke.texi (-fanalyzer-show-duplicate-count): New. 34880 348812020-03-02 David Malcolm <dmalcolm@redhat.com> 34882 34883 * doc/invoke.texi (Static Analyzer Options): Add 34884 -Wanalyzer-stale-setjmp-buffer to the list of options enabled 34885 by -fanalyzer. 34886 348872020-03-02 Uroš Bizjak <ubizjak@gmail.com> 34888 34889 PR target/93997 34890 * config/i386/i386.md (movstrict<mode>): Allow only 34891 registers with VALID_INT_MODE_P modes. 34892 348932020-03-02 Andrew Stubbs <ams@codesourcery.com> 34894 34895 * config/gcn/gcn-valu.md (dpp_move<mode>): New. 34896 (reduc_insn): Use 'U' and 'B' operand codes. 34897 (reduc_<reduc_op>_scal_<mode>): Allow all types. 34898 (reduc_<reduc_op>_scal_v64di): Delete. 34899 (*<reduc_op>_dpp_shr_<mode>): Allow all 1reg types. 34900 (*plus_carry_dpp_shr_v64si): Change to ... 34901 (*plus_carry_dpp_shr_<mode>): ... this and allow all 1reg int types. 34902 (mov_from_lane63_v64di): Change to ... 34903 (mov_from_lane63_<mode>): ... this, and allow all 64-bit modes. 34904 * config/gcn/gcn.c (gcn_expand_dpp_shr_insn): Increase buffer size. 34905 Support UNSPEC_MOV_DPP_SHR output formats. 34906 (gcn_expand_reduc_scalar): Add "use_moves" reductions. 34907 Add "use_extends" reductions. 34908 (print_operand_address): Add 'I' and 'U' codes. 34909 * config/gcn/gcn.md (unspec): Add UNSPEC_MOV_DPP_SHR. 34910 349112020-03-02 Martin Liska <mliska@suse.cz> 34912 34913 * lto-wrapper.c: Fix typo in comment about 34914 C++ standard version. 34915 349162020-03-01 Martin Sebor <msebor@redhat.com> 34917 34918 PR c++/92721 34919 * calls.c (init_attr_rdwr_indices): Correctly handle attribute. 34920 349212020-03-01 Martin Sebor <msebor@redhat.com> 34922 34923 PR middle-end/93829 34924 * tree-ssa-strlen.c (count_nonzero_bytes): Set the size to that 34925 of a pointer in the outermost ADDR_EXPRs. 34926 349272020-02-28 Jeff Law <law@redhat.com> 34928 34929 * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19. 34930 * config/v850/v850.c (v850_asm_trampoline_template): Update 34931 accordingly. 34932 349332020-02-28 Michael Meissner <meissner@linux.ibm.com> 34934 34935 PR target/93937 34936 * config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var): 34937 Delete insn. 34938 349392020-02-28 Martin Liska <mliska@suse.cz> 34940 34941 PR other/93965 34942 * configure.ac: Improve detection of ld_date by requiring 34943 either two dashes or none. 34944 * configure: Regenerate. 34945 349462020-02-28 Vladimir Makarov <vmakarov@redhat.com> 34947 34948 PR rtl-optimization/93564 34949 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we 34950 do not honor reg alloc order. 34951 349522020-02-27 Joel Hutton <Joel.Hutton@arm.com> 34953 34954 PR target/87612 34955 * config/aarch64/aarch64.c (aarch64_override_options): Fix 34956 misleading warning string. 34957 349582020-02-27 Martin Sebor <msebor@redhat.com> 34959 34960 * doc/invoke.texi (-Wbuiltin-declaration-mismatch): Fix a typo. 34961 349622020-02-27 Michael Meissner <meissner@linux.ibm.com> 34963 34964 PR target/93932 34965 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): 34966 Split the insn into two parts. This insn only does variable 34967 extract from a register. 34968 (vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do 34969 variable extract from memory. 34970 (vsx_extract_v4sf_var): Split the insn into two parts. This insn 34971 only does variable extract from a register. 34972 (vsx_extract_v4sf_var_load): New insn, do variable extract from 34973 memory. 34974 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn 34975 into two parts. This insn only does variable extract from a 34976 register. 34977 (vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn, 34978 do variable extract from memory. 34979 349802020-02-27 Martin Jambor <mjambor@suse.cz> 34981 Feng Xue <fxue@os.amperecomputing.com> 34982 34983 PR ipa/93707 34984 * ipa-cp.c (same_node_or_its_all_contexts_clone_p): Replaced with 34985 new function calls_same_node_or_its_all_contexts_clone_p. 34986 (cgraph_edge_brings_value_p): Use it. 34987 (cgraph_edge_brings_value_p): Likewise. 34988 (self_recursive_pass_through_p): Return false if caller is a clone. 34989 (self_recursive_agg_pass_through_p): Likewise. 34990 349912020-02-27 Jan Hubicka <hubicka@ucw.cz> 34992 34993 PR middle-end/92152 34994 * alias.c (ends_tbaa_access_path_p): Break out from ... 34995 (component_uses_parent_alias_set_from): ... here. 34996 * alias.h (ends_tbaa_access_path_p): Declare. 34997 * tree-ssa-alias.c (access_path_may_continue_p): Break out from ...; 34998 handle trailing arrays past end of tbaa access path. 34999 (aliasing_component_refs_p): ... here; likewise. 35000 (nonoverlapping_refs_since_match_p): Track TBAA segment of the access 35001 path; disambiguate also past end of it. 35002 (nonoverlapping_component_refs_p): Use only TBAA segment of the access 35003 path. 35004 350052020-02-27 Mihail Ionescu <mihail.ionescu@arm.com> 35006 35007 * (__ARM_NUM_LANES, __arm_lane, __arm_lane_q): Move to the 35008 beginning of the file. 35009 (vcreate_bf16, vcombine_bf16): New. 35010 (vdup_n_bf16, vdupq_n_bf16): New. 35011 (vdup_lane_bf16, vdup_laneq_bf16): New. 35012 (vdupq_lane_bf16, vdupq_laneq_bf16): New. 35013 (vduph_lane_bf16, vduph_laneq_bf16): New. 35014 (vset_lane_bf16, vsetq_lane_bf16): New. 35015 (vget_lane_bf16, vgetq_lane_bf16): New. 35016 (vget_high_bf16, vget_low_bf16): New. 35017 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New. 35018 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New. 35019 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New. 35020 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New. 35021 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New. 35022 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New. 35023 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New. 35024 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New. 35025 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New. 35026 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New. 35027 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New. 35028 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New. 35029 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New. 35030 (vreinterpretq_bf16_p128): New. 35031 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New. 35032 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New. 35033 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New. 35034 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New. 35035 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New. 35036 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New. 35037 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New. 35038 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New. 35039 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New. 35040 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New. 35041 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New. 35042 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New. 35043 (vreinterpretq_p128_bf16): New. 35044 * config/arm/arm_neon_builtins.def (VDX): Add V4BF. 35045 (V_elem): Likewise. 35046 (V_elem_l): Likewise. 35047 (VD_LANE): Likewise. 35048 (VQX) Add V8BF. 35049 (V_DOUBLE): Likewise. 35050 (VDQX): Add V4BF and V8BF. 35051 (V_two_elem, V_three_elem, V_four_elem): Likewise. 35052 (V_reg): Likewise. 35053 (V_HALF): Likewise. 35054 (V_double_vector_mode): Likewise. 35055 (V_cmp_result): Likewise. 35056 (V_uf_sclr): Likewise. 35057 (V_sz_elem): Likewise. 35058 (Is_d_reg): Likewise. 35059 (V_mode_nunits): Likewise. 35060 * config/arm/neon.md (neon_vdup_lane): Enable for BFloat16. 35061 350622020-02-27 Andrew Stubbs <ams@codesourcery.com> 35063 35064 * config/gcn/gcn-valu.md (VEC_SUBDWORD_MODE): New mode iterator. 35065 (<expander><mode>2<exec>): Change modes to VEC_ALL1REG_INT_MODE. 35066 (<expander><mode>3<exec>): Likewise. 35067 (<expander><mode>3): New. 35068 (v<expander><mode>3): New. 35069 (<expander><mode>3): New. 35070 (<expander><mode>3<exec>): Rename to ... 35071 (<expander>v64si3<exec>): ... this, and change modes to V64SI. 35072 * config/gcn/gcn.md (mnemonic): Use '%B' for not. 35073 350742020-02-27 Alexandre Oliva <oliva@adacore.com> 35075 35076 * config/vx-common.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Leave 35077 them alone on vx7. 35078 350792020-02-27 Richard Biener <rguenther@suse.de> 35080 35081 PR tree-optimization/93508 35082 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle _CHK like 35083 non-_CHK variants. Valueize their length arguments. 35084 350852020-02-27 Richard Biener <rguenther@suse.de> 35086 35087 PR tree-optimization/93953 35088 * tree-vect-slp.c (slp_copy_subtree): Avoid keeping a reference 35089 to the hash-map entry. 35090 350912020-02-27 Andrew Stubbs <ams@codesourcery.com> 35092 35093 * config/gcn/gcn.md (mov<mode>): Add transformations for BI subregs. 35094 350952020-02-27 Mark Williams <mwilliams@fb.com> 35096 35097 * dwarf2out.c (file_name_acquire): Call remap_debug_filename. 35098 * lto-opts.c (lto_write_options): Drop -fdebug-prefix-map, 35099 -ffile-prefix-map and -fmacro-prefix-map. 35100 * lto-streamer-out.c: Include file-prefix-map.h. 35101 (lto_output_location): Remap the file part of locations. 35102 351032020-02-27 Jakub Jelinek <jakub@redhat.com> 35104 35105 PR c/93949 35106 * gimplify.c (gimplify_init_constructor): Don't promote readonly 35107 DECL_REGISTER variables to TREE_STATIC. 35108 35109 PR tree-optimization/93582 35110 PR tree-optimization/93945 35111 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle memset with 35112 non-zero INTEGER_CST second argument and ref->offset or ref->size 35113 not a multiple of BITS_PER_UNIT. 35114 351152020-02-27 Jonathan Wakely <jwakely@redhat.com> 35116 35117 * doc/install.texi (Binaries): Update description of BullFreeware. 35118 351192020-02-26 Sandra Loosemore <sandra@codesourcery.com> 35120 35121 PR c++/90467 35122 35123 * doc/invoke.texi (Option Summary): Re-alphabetize warnings in 35124 C++ Language Options, Warning Options, and Static Analyzer 35125 Options lists. Document negative form of options enabled by 35126 default. Move some things around to more accurately sort 35127 warnings by category. 35128 (C++ Dialect Options, Warning Options, Static Analyzer 35129 Options): Document negative form of options when enabled by 35130 default. Move some things around to more accurately sort 35131 warnings by category. Add some missing index entries. 35132 Light copy-editing. 35133 351342020-02-26 Carl Love <cel@us.ibm.com> 35135 35136 PR target/91276 35137 * doc/extend.texi (PowerPC AltiVec Built-in Functions available on 35138 ISA 2.07): The builtin-function name __builtin_crypto_vpmsumb is only 35139 for the vector unsigned short arguments. It is also listed as the 35140 name of the built-in for arguments vector unsigned short, 35141 vector unsigned int and vector unsigned long long built-ins. The 35142 name of the builtins for these arguments should be: 35143 __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and 35144 __builtin_crypto_vpmsumd respectively. 35145 351462020-02-26 Richard Biener <rguenther@suse.de> 35147 35148 * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count 35149 and load permutation. 35150 351512020-02-26 Richard Sandiford <richard.sandiford@arm.com> 35152 35153 PR middle-end/93843 35154 * optabs-tree.c (supportable_convert_operation): Reject types with 35155 scalar modes. 35156 351572020-02-26 David Malcolm <dmalcolm@redhat.com> 35158 35159 * Makefile.in (ANALYZER_OBJS): Add analyzer/bar-chart.o. 35160 351612020-02-26 Jakub Jelinek <jakub@redhat.com> 35162 35163 PR tree-optimization/93820 35164 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE 35165 argument to ALL_INTEGER_CST_P boolean. 35166 (imm_store_chain_info::try_coalesce_bswap): Adjust caller. 35167 (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle 35168 adjacent INTEGER_CST store into merged_store->only_constants like 35169 overlapping one. 35170 351712020-02-25 Jakub Jelinek <jakub@redhat.com> 35172 35173 PR other/93912 35174 * config/sh/sh.c (expand_cbranchdi4): Fix comment typo, probablity 35175 -> probability. 35176 * cfghooks.c (verify_flow_info): Likewise. 35177 * predict.c (combine_predictions_for_bb): Likewise. 35178 * bb-reorder.c (connect_better_edge_p): Likewise. Fix comment typo, 35179 sucessor -> successor. 35180 (find_traces_1_round): Fix comment typo, destinarion -> destination. 35181 * omp-expand.c (expand_oacc_for): Fix comment typo, sucessors -> 35182 successors. 35183 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Fix dump 35184 message typo, sucessors -> successors. 35185 351862020-02-25 Martin Sebor <msebor@redhat.com> 35187 35188 * doc/extend.texi (attribute access): Correct an example. 35189 351902020-02-25 Mihail Ionescu <mihail.ionescu@arm.com> 35191 35192 * config/aarch64/aarch64-builtins.c (aarch64_scalar_builtin_types): 35193 Add simd_bf. 35194 (aarch64_init_simd_builtin_scalar_types): Register simd_bf. 35195 (VAR15, VAR16): New. 35196 * config/aarch64/iterators.md (VALLDIF): Enable for V4BF and V8BF. 35197 (VD): Enable for V4BF. 35198 (VDC): Likewise. 35199 (VQ): Enable for V8BF. 35200 (VQ2): Likewise. 35201 (VQ_NO2E): Likewise. 35202 (VDBL, Vdbl): Add V4BF. 35203 (V_INT_EQUIV, v_int_equiv): Add V4BF and V8BF. 35204 * config/aarch64/arm_neon.h (bfloat16x4x2_t): New typedef. 35205 (bfloat16x8x2_t): Likewise. 35206 (bfloat16x4x3_t): Likewise. 35207 (bfloat16x8x3_t): Likewise. 35208 (bfloat16x4x4_t): Likewise. 35209 (bfloat16x8x4_t): Likewise. 35210 (vcombine_bf16): New. 35211 (vld1_bf16, vld1_bf16_x2): New. 35212 (vld1_bf16_x3, vld1_bf16_x4): New. 35213 (vld1q_bf16, vld1q_bf16_x2): New. 35214 (vld1q_bf16_x3, vld1q_bf16_x4): New. 35215 (vld1_lane_bf16): New. 35216 (vld1q_lane_bf16): New. 35217 (vld1_dup_bf16): New. 35218 (vld1q_dup_bf16): New. 35219 (vld2_bf16): New. 35220 (vld2q_bf16): New. 35221 (vld2_dup_bf16): New. 35222 (vld2q_dup_bf16): New. 35223 (vld3_bf16): New. 35224 (vld3q_bf16): New. 35225 (vld3_dup_bf16): New. 35226 (vld3q_dup_bf16): New. 35227 (vld4_bf16): New. 35228 (vld4q_bf16): New. 35229 (vld4_dup_bf16): New. 35230 (vld4q_dup_bf16): New. 35231 (vst1_bf16, vst1_bf16_x2): New. 35232 (vst1_bf16_x3, vst1_bf16_x4): New. 35233 (vst1q_bf16, vst1q_bf16_x2): New. 35234 (vst1q_bf16_x3, vst1q_bf16_x4): New. 35235 (vst1_lane_bf16): New. 35236 (vst1q_lane_bf16): New. 35237 (vst2_bf16): New. 35238 (vst2q_bf16): New. 35239 (vst3_bf16): New. 35240 (vst3q_bf16): New. 35241 (vst4_bf16): New. 35242 (vst4q_bf16): New. 35243 352442020-02-25 Mihail Ionescu <mihail.ionescu@arm.com> 35245 35246 * config/aarch64/iterators.md (VDQF_F16) Add V4BF and V8BF. 35247 (VALL_F16): Likewise. 35248 (VALLDI_F16): Likewise. 35249 (Vtype): Likewise. 35250 (Vetype): Likewise. 35251 (vswap_width_name): Likewise. 35252 (VSWAP_WIDTH): Likewise. 35253 (Vel): Likewise. 35254 (VEL): Likewise. 35255 (q): Likewise. 35256 * config/aarch64/arm_neon.h (vset_lane_bf16, vsetq_lane_bf16): New. 35257 (vget_lane_bf16, vgetq_lane_bf16): New. 35258 (vcreate_bf16): New. 35259 (vdup_n_bf16, vdupq_n_bf16): New. 35260 (vdup_lane_bf16, vdup_laneq_bf16): New. 35261 (vdupq_lane_bf16, vdupq_laneq_bf16): New. 35262 (vduph_lane_bf16, vduph_laneq_bf16): New. 35263 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New. 35264 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New. 35265 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New. 35266 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New. 35267 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New. 35268 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New. 35269 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New. 35270 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New. 35271 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New. 35272 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New. 35273 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New 35274 (vreinterpret_bf16_f16, vreinterpretq_bf16_f16): New 35275 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New. 35276 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New. 35277 (vreinterpretq_bf16_p128): New. 35278 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New. 35279 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New. 35280 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New. 35281 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New. 35282 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New. 35283 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New. 35284 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New. 35285 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New. 35286 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New. 35287 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New. 35288 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New. 35289 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New. 35290 (vreinterpret_f64_bf16,vreinterpretq_f64_bf16): New. 35291 (vreinterpret_f16_bf16,vreinterpretq_f16_bf16): New. 35292 (vreinterpretq_p128_bf16): New. 35293 352942020-02-25 Dennis Zhang <dennis.zhang@arm.com> 35295 35296 * config/arm/arm_neon.h (vbfdot_f32, vbfdotq_f32): New 35297 (vbfdot_lane_f32, vbfdotq_laneq_f32): New. 35298 (vbfdot_laneq_f32, vbfdotq_lane_f32): New. 35299 * config/arm/arm_neon_builtins.def (vbfdot): New entry. 35300 (vbfdot_lanev4bf, vbfdot_lanev8bf): Likewise. 35301 * config/arm/iterators.md (VSF2BF): New attribute. 35302 * config/arm/neon.md (neon_vbfdot<VCVTF:mode>): New entry. 35303 (neon_vbfdot_lanev4bf<VCVTF:mode>): Likewise. 35304 (neon_vbfdot_lanev8bf<VCVTF:mode>): Likewise. 35305 353062020-02-25 Christophe Lyon <christophe.lyon@linaro.org> 35307 35308 * config/arm/arm.md (required_for_purecode): New attribute. 35309 (enabled): Handle required_for_purecode. 35310 * config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to 35311 work with -mpure-code. 35312 353132020-02-25 Jakub Jelinek <jakub@redhat.com> 35314 35315 PR rtl-optimization/93908 35316 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src 35317 with mask. 35318 353192019-02-25 Eric Botcazou <ebotcazou@adacore.com> 35320 35321 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode. 35322 353232020-02-25 Roman Zhuykov <zhroma@ispras.ru> 35324 35325 * doc/install.texi (--enable-checking): Adjust wording. 35326 353272020-02-25 Richard Biener <rguenther@suse.de> 35328 35329 PR tree-optimization/93868 35330 * tree-vect-slp.c (slp_copy_subtree): New function. 35331 (vect_attempt_slp_rearrange_stmts): Copy the SLP tree before 35332 re-arranging stmts in it. 35333 353342020-02-25 Jakub Jelinek <jakub@redhat.com> 35335 35336 PR middle-end/93874 35337 * passes.c (pass_manager::dump_passes): Create a cgraph node for the 35338 dummy function and remove it at the end. 35339 35340 PR translation/93864 35341 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Fix comment typo 35342 paramter -> parameter. 35343 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Likewise. 35344 * ipa-prop.h (struct ipa_agg_replacement_value): Likewise. 35345 353462020-02-24 Roman Zhuykov <zhroma@ispras.ru> 35347 35348 * doc/install.texi (--enable-checking): Properly document current 35349 behavior. 35350 (--enable-stage1-checking): Minor clarification about bootstrap. 35351 353522020-02-24 David Malcolm <dmalcolm@redhat.com> 35353 35354 PR analyzer/93032 35355 * doc/invoke.texi (-Wnanalyzer-tainted-array-index): Note that 35356 -fanalyzer-checker=taint is also required. 35357 (-fanalyzer-checker=): Note that providing this option enables the 35358 given checker, and doing so may be required for checkers that are 35359 disabled by default. 35360 353612020-02-24 David Malcolm <dmalcolm@redhat.com> 35362 35363 * doc/invoke.texi (-fanalyzer-verbosity=): "2" only shows 35364 significant control flow events; add a "3" which shows all 35365 control flow events; the old "3" becomes "4". 35366 353672020-02-24 Jakub Jelinek <jakub@redhat.com> 35368 35369 PR tree-optimization/93582 35370 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Consider 35371 pd.offset and pd.size to be counted in bits rather than bytes, add 35372 support for maxsizei that is not a multiple of BITS_PER_UNIT and 35373 handle bitfield stores and loads. 35374 (vn_reference_lookup_3): Don't call ranges_known_overlap_p with 35375 uncomparable quantities - bytes vs. bits. Allow push_partial_def 35376 on offsets/sizes that aren't multiple of BITS_PER_UNIT and adjust 35377 pd.offset/pd.size to be counted in bits rather than bytes. 35378 Formatting fix. Rename shadowed len variable to buflen. 35379 353802020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 35381 Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org> 35382 35383 PR driver/47785 35384 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function. 35385 (driver::main): Call putenv_COLLECT_AS_OPTIONS. 35386 * opts-common.c (parse_options_from_collect_gcc_options): New function. 35387 (prepend_xassembler_to_collect_as_options): Likewise. 35388 * opts.h (parse_options_from_collect_gcc_options): Declare prototype. 35389 (prepend_xassembler_to_collect_as_options): Likewise. 35390 * lto-opts.c (lto_write_options): Stream assembler options 35391 in COLLECT_AS_OPTIONS. 35392 * lto-wrapper.c (xassembler_options_error): New static variable. 35393 (get_options_from_collect_gcc_options): Move parsing options code to 35394 parse_options_from_collect_gcc_options and call it. 35395 (merge_and_complain): Validate -Xassembler options. 35396 (append_compiler_options): Handle OPT_Xassembler. 35397 (run_gcc): Append command line -Xassembler options to 35398 collect_gcc_options. 35399 * doc/invoke.texi: Add documentation about using Xassembler 35400 options with LTO. 35401 354022020-02-24 Kito Cheng <kito.cheng@sifive.com> 35403 35404 * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen 35405 for LTGT. 35406 (riscv_rtx_costs): Update cost model for LTGT. 35407 354082020-02-23 Vladimir Makarov <vmakarov@redhat.com> 35409 35410 PR rtl-optimization/93564 35411 * ira-color.c (struct update_cost_queue_elem): New member start. 35412 (queue_update_cost, get_next_update_cost): Add new arg start. 35413 (allocnos_conflict_p): New function. 35414 (update_costs_from_allocno): Add new arg conflict_cost_update_p. 35415 Add checking conflicts with allocnos_conflict_p. 35416 (update_costs_from_prefs, restore_costs_from_copies): Adjust 35417 update_costs_from_allocno calls. 35418 (update_conflict_hard_regno_costs): Add checking conflicts with 35419 allocnos_conflict_p. Adjust calls of queue_update_cost and 35420 get_next_update_cost. 35421 (assign_hard_reg): Adjust calls of queue_update_cost. Add 35422 debugging print. 35423 (bucket_allocno_compare_func): Restore previous version. 35424 354252020-02-21 John David Anglin <danglin@gcc.gnu.org> 35426 35427 * config/pa/pa.c (pa_function_value): Fix check for word and 35428 double-word size when handling aggregate return values. 35429 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate 35430 that homogeneous SFmode and DFmode aggregates are passed and returned 35431 in general registers. 35432 354332020-02-21 Jakub Jelinek <jakub@redhat.com> 35434 35435 PR translation/93759 35436 * opts.c (print_filtered_help): Translate help before appending 35437 messages to it rather than after that. 35438 354392020-02-19 Richard Sandiford <richard.sandiford@arm.com> 35440 35441 PR rtl-optimization/PR92989 35442 * lra-lives.c (process_bb_lives): Restore the original order 35443 of the bb liveness update. Call make_hard_regno_dead for each 35444 register clobbered at the start of an EH receiver. 35445 354462020-02-18 Feng Xue <fxue@os.amperecomputing.com> 35447 35448 PR ipa/93763 35449 * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as 35450 self-recursively generated. 35451 354522020-02-21 Iain Sandoe <iain@sandoe.co.uk> 35453 35454 PR target/93860 35455 * config/darwin-c.c (pop_field_alignment): Adjust quoting of 35456 error string. 35457 354582020-02-21 Mihail Ionescu <mihail.ionescu@arm.com> 35459 35460 * doc/sourcebuild.texi (arm_v8_1m_mve_ok): 35461 Document new target supports option. 35462 354632020-02-21 Dennis Zhang <dennis.zhang@arm.com> 35464 35465 * config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New. 35466 * config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New. 35467 * config/arm/iterators.md (MATMUL): New iterator. 35468 (sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US. 35469 (mmla_sfx): New attribute. 35470 * config/arm/neon.md (neon_<sup>mmlav16qi): New. 35471 * config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New. 35472 (UNSPEC_MATMUL_US): New. 35473 354742020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 35475 35476 * config/arm/arm.md: Prevent scalar shifts from being used when big 35477 endian is enabled. 35478 354792020-02-21 Jan Hubicka <hubicka@ucw.cz> 35480 Richard Biener <rguenther@suse.de> 35481 35482 PR tree-optimization/93586 35483 * tree-ssa-alias.c (nonoverlapping_array_refs_p): Finish array walk 35484 after mismatched array refs; do not sure type size information to 35485 recover from unmatched referneces with !flag_strict_aliasing_p. 35486 354872020-02-21 Andrew Stubbs <ams@codesourcery.com> 35488 35489 * config/gcn/gcn-valu.md (gather_load<mode>): Rename to ... 35490 (gather_load<mode>v64si): ... this and set operand 2 to V64SI. 35491 (scatter_store<mode>): Rename to ... 35492 (scatter_store<mode>v64si): ... this and set operand 1 to V64SI. 35493 (scatter<mode>_exec): Delete. Move contents ... 35494 (mask_scatter_store<mode>): ... here, and rename that to ... 35495 (mask_gather_load<mode>v64si): ... this. Set operand 2 to V64SI. 35496 Remove mode conversion. 35497 (mask_gather_load<mode>): Rename to ... 35498 (mask_scatter_store<mode>v64si): ... this. Set operand 1 to V64SI. 35499 Remove mode conversion. 35500 * config/gcn/gcn.c (gcn_expand_scaled_offsets): Remove mode conversion. 35501 355022020-02-21 Martin Jambor <mjambor@suse.cz> 35503 35504 PR tree-optimization/93845 35505 * tree-sra.c (verify_sra_access_forest): Only test access size of 35506 scalar types. 35507 355082020-02-21 Andrew Stubbs <ams@codesourcery.com> 35509 35510 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align VGPR pairs. 35511 * config/gcn/gcn-valu.md (addv64di3): Remove early-clobber. 35512 (addv64di3_exec): Likewise. 35513 (subv64di3): Likewise. 35514 (subv64di3_exec): Likewise. 35515 (addv64di3_zext): Likewise. 35516 (addv64di3_zext_exec): Likewise. 35517 (addv64di3_zext_dup): Likewise. 35518 (addv64di3_zext_dup_exec): Likewise. 35519 (addv64di3_zext_dup2): Likewise. 35520 (addv64di3_zext_dup2_exec): Likewise. 35521 (addv64di3_sext_dup2): Likewise. 35522 (addv64di3_sext_dup2_exec): Likewise. 35523 (<expander>v64di3): Likewise. 35524 (<expander>v64di3_exec): Likewise. 35525 (*<reduc_op>_dpp_shr_v64di): Likewise. 35526 (*plus_carry_dpp_shr_v64di): Likewise. 35527 * config/gcn/gcn.md (adddi3): Likewise. 35528 (addptrdi3): Likewise. 35529 (<expander>di3): Likewise. 35530 355312020-02-21 Andrew Stubbs <ams@codesourcery.com> 35532 35533 * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di. 35534 355352020-02-21 Richard Sandiford <richard.sandiford@arm.com> 35536 35537 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Add SVE 35538 support. Use aarch64_emit_mult instead of emitting multiplication 35539 instructions directly. 35540 * config/aarch64/aarch64-sve.md (sqrt<mode>2, rsqrt<mode>2) 35541 (@aarch64_rsqrte<mode>, @aarch64_rsqrts<mode>): New expanders. 35542 355432020-02-21 Richard Sandiford <richard.sandiford@arm.com> 35544 35545 * config/aarch64/aarch64.c (aarch64_emit_mult): New function. 35546 (aarch64_emit_approx_div): Add SVE support. Use aarch64_emit_mult 35547 instead of emitting multiplication instructions directly. 35548 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_OPTAB): New iterator. 35549 * config/aarch64/aarch64-sve.md (div<mode>3, @aarch64_frecpe<mode>) 35550 (@aarch64_frecps<mode>): New expanders. 35551 355522020-02-21 Richard Sandiford <richard.sandiford@arm.com> 35553 35554 * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate 35555 on and produce uint64_ts rather than ints. 35556 (AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts. 35557 (cpu_approx_modes): Change the fields from unsigned int to uint64_t. 35558 355592020-02-21 Richard Sandiford <richard.sandiford@arm.com> 35560 35561 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create 35562 an unused xmsk register when handling approximate rsqrt. 35563 355642020-02-21 Richard Sandiford <richard.sandiford@arm.com> 35565 35566 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted 35567 flag_finite_math_only condition. 35568 355692020-02-20 Uroš Bizjak <ubizjak@gmail.com> 35570 35571 PR target/93828 35572 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand 35573 to destination operand for shufps alternative. 35574 (*vec_extractv2si_1): Ditto. 35575 355762020-02-20 Peter Bergner <bergner@linux.ibm.com> 35577 35578 PR target/93658 35579 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX 35580 vector modes. 35581 355822020-02-20 Martin Liska <mliska@suse.cz> 35583 35584 PR translation/93831 35585 * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode. 35586 355872020-02-20 Martin Liska <mliska@suse.cz> 35588 35589 PR translation/93830 35590 * common/config/avr/avr-common.c: Remote trailing "|". 35591 355922020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de> 35593 35594 * collect2.c (maybe_run_lto_and_relink): Fix typo in 35595 comment. 35596 355972020-02-19 Richard Sandiford <richard.sandiford@arm.com> 35598 35599 PR tree-optimization/93767 35600 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the 35601 access-size bias from the offset calculations for negative strides. 35602 356032020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de> 35604 35605 * collect2.c (c_file, o_file): Make const again. 35606 (ldout,lderrout, dump_ld_file): Remove. 35607 (tool_cleanup): Avoid calling not signal-safe functions. 35608 (maybe_run_lto_and_relink): Avoid possible signal handler 35609 access to unintialzed memory (lto_o_files). 35610 (main): Avoid leaking temp files in $TMPDIR. 35611 Initialize c_file/o_file with concat, which avoids exposing 35612 uninitialized memory to signal handler, which calls unlink(!). 35613 Avoid calling maybe_unlink when the main function returns, 35614 since the atexit handler is already doing this. 35615 * collect2.h (dump_ld_file, ldout, lderrout): Remove. 35616 356172020-02-19 Martin Jambor <mjambor@suse.cz> 35618 35619 PR tree-optimization/93776 35620 * tree-sra.c (create_access): Do not create zero size accesses. 35621 (get_access_for_expr): Do not search for zero sized accesses. 35622 356232020-02-19 Martin Jambor <mjambor@suse.cz> 35624 35625 PR tree-optimization/93667 35626 * tree-sra.c (scalarizable_type_p): Return false if record fields 35627 do not follow wach other. 35628 356292020-01-21 Kito Cheng <kito.cheng@sifive.com> 35630 35631 * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x 35632 rather than fmv.x.s/fmv.s.x. 35633 356342020-02-18 James Greenhalgh <james.greenhalgh@arm.com> 35635 35636 * config/aarch64/aarch64-simd-builtins.def 35637 (intrinsic_vec_smult_lo_): New. 35638 (intrinsic_vec_umult_lo_): Likewise. 35639 (vec_widen_smult_hi_): Likewise. 35640 (vec_widen_umult_hi_): Likewise. 35641 * config/aarch64/aarch64-simd.md 35642 (aarch64_intrinsic_vec_<su>mult_lo_<mode>): New. 35643 * config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics. 35644 (vmull_high_s16): Likewise. 35645 (vmull_high_s32): Likewise. 35646 (vmull_high_u8): Likewise. 35647 (vmull_high_u16): Likewise. 35648 (vmull_high_u32): Likewise. 35649 (vmull_s8): Likewise. 35650 (vmull_s16): Likewise. 35651 (vmull_s32): Likewise. 35652 (vmull_u8): Likewise. 35653 (vmull_u16): Likewise. 35654 (vmull_u32): Likewise. 35655 356562020-02-18 Martin Liska <mliska@suse.cz> 35657 35658 * value-prof.c (stream_out_histogram_value): Restore LTO PGO 35659 bootstrap by missing removal of invalid sanity check. 35660 356612020-02-18 Martin Liska <mliska@suse.cz> 35662 35663 PR ipa/92518 35664 * ipa-icf-gimple.c (func_checker::compare_gimple_assign): 35665 Always compare LHS of gimple_assign. 35666 356672020-02-18 Martin Liska <mliska@suse.cz> 35668 35669 PR ipa/93583 35670 * cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute 35671 and return type of functions. 35672 * ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl): 35673 Drop MALLOC attribute for void functions. 35674 * ipa-pure-const.c (funct_state_summary_t::duplicate): Drop 35675 malloc_state for a new VOID clone. 35676 356772020-02-18 Martin Liska <mliska@suse.cz> 35678 35679 PR ipa/92924 35680 * common.opt: Add -fprofile-reproducibility. 35681 * doc/invoke.texi: Document it. 35682 * value-prof.c (dump_histogram_value): 35683 Document and support behavior for counters[0] 35684 being a negative value. 35685 (get_nth_most_common_value): Handle negative 35686 counters[0] in respect to flag_profile_reproducible. 35687 356882020-02-18 Jakub Jelinek <jakub@redhat.com> 35689 35690 PR ipa/93797 35691 * cgraph.c (verify_speculative_call): Use speculative_id instead of 35692 speculative_uid in messages. Remove trailing whitespace from error 35693 message. Use num_speculative_call_targets instead of 35694 num_speculative_targets in a message. 35695 (cgraph_node::verify_node): Use call_stmt instead of cal_stmt in 35696 edge messages and stmt instead of cal_stmt in reference message. 35697 35698 PR tree-optimization/93780 35699 * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p 35700 before calling build_vector_type. 35701 (execute_update_addresses_taken): Likewise. 35702 35703 PR driver/93796 35704 * params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help 35705 typo, functoin -> function. 35706 * tree.c (free_lang_data_in_decl): Fix comment typo, 35707 functoin -> function. 35708 * ipa-visibility.c (cgraph_externally_visible_p): Likewise. 35709 357102020-02-17 David Malcolm <dmalcolm@redhat.com> 35711 35712 * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs 35713 won't be printed. 35714 (print_option_information): Don't call get_option_url if URLs 35715 won't be printed. 35716 357172020-02-17 Alexandre Oliva <oliva@adacore.com> 35718 35719 * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete 35720 handling of register_common-less targets. 35721 357222020-02-17 Martin Liska <mliska@suse.cz> 35723 35724 PR ipa/93760 35725 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar. 35726 357272020-02-17 Martin Liska <mliska@suse.cz> 35728 35729 PR translation/93755 35730 * config/rs6000/rs6000.c (rs6000_option_override_internal): 35731 Fix double quotes. 35732 357332020-02-17 Martin Liska <mliska@suse.cz> 35734 35735 PR other/93756 35736 * config/rx/elf.opt: Fix typo. 35737 357382020-02-17 Richard Biener <rguenther@suse.de> 35739 35740 PR c/86134 35741 * opts-global.c (print_ignored_options): Use inform and 35742 amend message. 35743 357442020-02-17 Jiufu Guo <guojiufu@linux.ibm.com> 35745 35746 PR target/93047 35747 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber. 35748 357492020-02-16 Uroš Bizjak <ubizjak@gmail.com> 35750 35751 PR target/93743 35752 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2. 35753 (atan2<mode>3): Update operand order in the call to gen_atan2xf3. 35754 357552020-02-15 Jason Merrill <jason@redhat.com> 35756 35757 * doc/invoke.texi (C Dialect Options): Add -std=c++20. 35758 357592020-02-15 Jakub Jelinek <jakub@redhat.com> 35760 35761 PR tree-optimization/93744 35762 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0, 35763 A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A, 35764 A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make 35765 sure @2 in the first and @1 in the other patterns has no side-effects. 35766 357672020-02-15 David Malcolm <dmalcolm@redhat.com> 35768 Bernd Edlinger <bernd.edlinger@hotmail.de> 35769 35770 PR 87488 35771 PR other/93168 35772 * config.in (DIAGNOSTICS_URLS_DEFAULT): New define. 35773 * configure.ac (--with-diagnostics-urls): New configuration 35774 option, based on --with-diagnostics-color. 35775 (DIAGNOSTICS_URLS_DEFAULT): New define. 35776 * config.h: Regenerate. 35777 * configure: Regenerate. 35778 * diagnostic.c (diagnostic_urls_init): Handle -1 for 35779 DIAGNOSTICS_URLS_DEFAULT from configure-time 35780 --with-diagnostics-urls=auto-if-env by querying for a GCC_URLS 35781 and TERM_URLS environment variable. 35782 * diagnostic-url.h (diagnostic_url_format): New enum type. 35783 (diagnostic_urls_enabled_p): rename to... 35784 (determine_url_format): ... this, and change return type. 35785 * diagnostic-color.c (parse_env_vars_for_urls): New helper function. 35786 (auto_enable_urls): Disable URLs on xfce4-terminal, gnome-terminal, 35787 the linux console, and mingw. 35788 (diagnostic_urls_enabled_p): rename to... 35789 (determine_url_format): ... this, and adjust. 35790 * pretty-print.h (pretty_printer::show_urls): rename to... 35791 (pretty_printer::url_format): ... this, and change to enum. 35792 * pretty-print.c (pretty_printer::pretty_printer, 35793 pp_begin_url, pp_end_url, test_urls): Adjust. 35794 * doc/install.texi (--with-diagnostics-urls): Document the new 35795 configuration option. 35796 (--with-diagnostics-color): Document the existing interaction 35797 with GCC_COLORS better. 35798 * doc/invoke.texi (-fdiagnostics-urls): Add GCC_URLS and TERM_URLS 35799 vindex reference. Update description of defaults based on the above. 35800 (-fdiagnostics-color): Update description of how -fdiagnostics-color 35801 interacts with GCC_COLORS. 35802 358032020-02-14 Eric Botcazou <ebotcazou@adacore.com> 35804 35805 PR target/93704 35806 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in 35807 conjunction with TARGET_GNU_TLS in early return. 35808 358092020-02-14 Alexander Monakov <amonakov@ispras.ru> 35810 35811 * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if 35812 the mode is not wider than UNITS_PER_WORD. 35813 358142020-02-14 Martin Jambor <mjambor@suse.cz> 35815 35816 PR tree-optimization/93516 35817 * tree-sra.c (propagate_subaccesses_from_rhs): Do not create 35818 access of the same type as the parent. 35819 (propagate_subaccesses_from_lhs): Likewise. 35820 358212020-02-14 Hongtao Liu <hongtao.liu@intel.com> 35822 35823 PR target/93724 35824 * config/i386/avx512vbmi2intrin.h 35825 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16, 35826 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, 35827 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, 35828 _m512_shrdi_epi64, _m512_mask_shrdi_epi64, 35829 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16, 35830 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, 35831 _mm512_shldi_epi32, _mm512_mask_shldi_epi32, 35832 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, 35833 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo 35834 of lacking a closing parenthesis. 35835 * config/i386/avx512vbmi2vlintrin.h 35836 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16, 35837 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32, 35838 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, 35839 _m256_shrdi_epi64, _m256_mask_shrdi_epi64, 35840 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16, 35841 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, 35842 _mm256_shldi_epi32, _mm256_mask_shldi_epi32, 35843 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64, 35844 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, 35845 _mm_shrdi_epi16, _mm_mask_shrdi_epi16, 35846 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32, 35847 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, 35848 _mm_shrdi_epi64, _mm_mask_shrdi_epi64, 35849 _m_maskz_shrdi_epi64, _mm_shldi_epi16, 35850 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, 35851 _mm_shldi_epi32, _mm_mask_shldi_epi32, 35852 _mm_maskz_shldi_epi32, _mm_shldi_epi64, 35853 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto. 35854 358552020-02-13 H.J. Lu <hongjiu.lu@intel.com> 35856 35857 PR target/93656 35858 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at 35859 the target function entry. 35860 358612020-02-13 Claudiu Zissulescu <claziss@synopsys.com> 35862 35863 * common/config/arc/arc-common.c (arc_option_optimization_table): 35864 Disable if-conversion step when optimized for size. 35865 358662020-02-13 Claudiu Zissulescu <claziss@synopsys.com> 35867 35868 * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and 35869 R12-R15 are always in ARCOMPACT16_REGS register class. 35870 * config/arc/arc.opt (mq-class): Deprecate. 35871 * config/arc/constraint.md ("q"): Remove dependency on mq-class 35872 option. 35873 * doc/invoke.texi (mq-class): Update text. 35874 * common/config/arc/arc-common.c (arc_option_optimization_table): 35875 Update list. 35876 358772020-02-13 Claudiu Zissulescu <claziss@synopsys.com> 35878 35879 * config/arc/arc.c (arc_insn_cost): New function. 35880 (TARGET_INSN_COST): Define. 35881 * config/arc/arc.md (cost): New attribute. 35882 (add_n): Use arc_nonmemory_operand. 35883 (ashlsi3_insn): Likewise, also update constraints. 35884 (ashrsi3_insn): Likewise. 35885 (rotrsi3): Likewise. 35886 (add_shift): Likewise. 35887 * config/arc/predicates.md (arc_nonmemory_operand): New predicate. 35888 358892020-02-13 Claudiu Zissulescu <claziss@synopsys.com> 35890 35891 * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi 35892 registers. 35893 (umulsidi_600): Likewise. 35894 358952020-02-13 Jakub Jelinek <jakub@redhat.com> 35896 35897 PR target/93696 35898 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8, 35899 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8, 35900 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8, 35901 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W, 35902 pass __A to the builtin followed by __W instead of __A followed by 35903 __B. 35904 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32, 35905 _mm512_mask_popcnt_epi64): Likewise. 35906 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32, 35907 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64, 35908 _mm256_mask_popcnt_epi64): Likewise. 35909 35910 PR tree-optimization/93582 35911 * fold-const.h (shift_bytes_in_array_left, 35912 shift_bytes_in_array_right): Declare. 35913 * fold-const.c (shift_bytes_in_array_left, 35914 shift_bytes_in_array_right): New function, moved from 35915 gimple-ssa-store-merging.c, no longer static. 35916 * gimple-ssa-store-merging.c (shift_bytes_in_array): Move 35917 to gimple-ssa-store-merging.c and rename to shift_bytes_in_array_left. 35918 (shift_bytes_in_array_right): Move to gimple-ssa-store-merging.c. 35919 (encode_tree_to_bitpos): Use shift_bytes_in_array_left instead of 35920 shift_bytes_in_array. 35921 (verify_shift_bytes_in_array): Rename to ... 35922 (verify_shift_bytes_in_array_left): ... this. Use 35923 shift_bytes_in_array_left instead of shift_bytes_in_array. 35924 (store_merging_c_tests): Call verify_shift_bytes_in_array_left 35925 instead of verify_shift_bytes_in_array. 35926 * tree-ssa-sccvn.c (vn_reference_lookup_3): For native_encode_expr 35927 / native_interpret_expr where the store covers all needed bits, 35928 punt on PDP-endian, otherwise allow all involved offsets and sizes 35929 not to be byte-aligned. 35930 35931 PR target/93673 35932 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and 35933 use const_0_to_255_operand predicate instead of immediate_operand. 35934 (avx512dq_fpclass<mode><mask_scalar_merge_name>, 35935 avx512dq_vmfpclass<mode><mask_scalar_merge_name>, 35936 vgf2p8affineinvqb_<mode><mask_name>, 35937 vgf2p8affineqb_<mode><mask_name>): Drop mode from 35938 const_0_to_255_operand predicated operands. 35939 359402020-02-12 Jeff Law <law@redhat.com> 35941 35942 * config/h8300/h8300.md (comparison shortening peepholes): Use 35943 a mode iterator to merge the HImode and SImode peepholes. 35944 359452020-02-12 Jakub Jelinek <jakub@redhat.com> 35946 35947 PR middle-end/93663 35948 * real.c (is_even): Make static. Function comment fix. 35949 (is_halfway_below): Make static, don't assert R is not inf/nan, 35950 instead return false for those. Small formatting fixes. 35951 359522020-02-12 Martin Sebor <msebor@redhat.com> 35953 35954 PR middle-end/93646 35955 * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename... 35956 (handle_builtin_stxncpy_strncat): ...to this. Change first argument. 35957 Issue only -Wstringop-overflow strncat, never -Wstringop-truncation. 35958 (strlen_check_and_optimize_call): Adjust callee name. 35959 359602020-02-12 Jeff Law <law@redhat.com> 35961 35962 * config/h8300/h8300.md (comparison shortening peepholes): Drop 35963 (and (xor)) variant. Combine other two into single peephole. 35964 359652020-02-12 Wilco Dijkstra <wdijkstr@arm.com> 35966 35967 PR rtl-optimization/93565 35968 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs. 35969 359702020-02-12 Wilco Dijkstra <wdijkstr@arm.com> 35971 35972 * config/aarch64/aarch64-simd.md 35973 (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern. 35974 * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of 35975 generating separate ADDV and zero_extend patterns. 35976 * config/aarch64/iterators.md (VDQV_E): New iterator. 35977 359782020-02-12 Jeff Law <law@redhat.com> 35979 35980 * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns, 35981 expanders, splits, etc. 35982 (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise. 35983 (stpcpy_internal_<mode>, stpcpy splitter): Likewise. 35984 (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise. 35985 * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function. 35986 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise 35987 * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused 35988 function prototype. 35989 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise. 35990 359912020-02-12 Jakub Jelinek <jakub@redhat.com> 35992 35993 PR target/93670 35994 * config/i386/sse.md (VI48F_256_DQ): New mode iterator. 35995 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove 35996 TARGET_AVX512DQ from condition. 35997 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition> 35998 instead of <mask_mode512bit_condition> in condition. If 35999 TARGET_AVX512DQ is false, emit vextract*64x4 instead of 36000 vextract*32x8. 36001 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition> 36002 from condition. 36003 360042020-02-12 Kewen Lin <linkw@gcc.gnu.org> 36005 36006 PR target/91052 36007 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn. 36008 360092020-02-12 Segher Boessenkool <segher@kernel.crashing.org> 36010 36011 * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof 36012 where strlen is more legible. 36013 (rs6000_builtin_vectorized_libmass): Ditto. 36014 (rs6000_print_options_internal): Ditto. 36015 360162020-02-11 Martin Sebor <msebor@redhat.com> 36017 36018 PR tree-optimization/93683 36019 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set. 36020 360212020-02-11 Michael Meissner <meissner@linux.ibm.com> 36022 36023 * config/rs6000/predicates.md (cint34_operand): Rename the 36024 -mprefixed-addr option to be -mprefixed. 36025 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename 36026 the -mprefixed-addr option to be -mprefixed. 36027 (OTHER_FUTURE_MASKS): Likewise. 36028 (POWERPC_MASKS): Likewise. 36029 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename 36030 the -mprefixed-addr option to be -mprefixed. Change error 36031 messages to refer to -mprefixed. 36032 (num_insns_constant_gpr): Rename the -mprefixed-addr option to be 36033 -mprefixed. 36034 (rs6000_legitimate_offset_address_p): Likewise. 36035 (rs6000_mode_dependent_address): Likewise. 36036 (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be 36037 "-mprefixed" for target attributes and pragmas. 36038 (address_to_insn_form): Rename the -mprefixed-addr option to be 36039 -mprefixed. 36040 (rs6000_adjust_insn_length): Likewise. 36041 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the 36042 -mprefixed-addr option to be -mprefixed. 36043 (ASM_OUTPUT_OPCODE): Likewise. 36044 * config/rs6000/rs6000.md (prefixed insn attribute): Rename the 36045 -mprefixed-addr option to be -mprefixed. 36046 * config/rs6000/rs6000.opt (-mprefixed): Rename the 36047 -mprefixed-addr option to be prefixed. Change the option from 36048 being undocumented to being documented. 36049 * doc/invoke.texi (RS/6000 and PowerPC Options): Document the 36050 -mprefixed option. Update the -mpcrel documentation to mention 36051 -mprefixed. 36052 360532020-02-11 Hans-Peter Nilsson <hp@axis.com> 36054 36055 * ira-conflicts.c (print_hard_reg_set): Correct output for sets 36056 including FIRST_PSEUDO_REGISTER - 1. 36057 * ira-color.c (print_hard_reg_set): Ditto. 36058 360592020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com> 36060 36061 * config/arm/arm-builtins.c (enum arm_type_qualifiers): 36062 (USTERNOP_QUALIFIERS): New define. 36063 (USMAC_LANE_QUADTUP_QUALIFIERS): New define. 36064 (SUMAC_LANE_QUADTUP_QUALIFIERS): New define. 36065 (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX. 36066 (arm_expand_builtin_1): Add qualifier_lane_quadtup_index. 36067 * config/arm/arm_neon.h (vusdot_s32): New. 36068 (vusdot_lane_s32): New. 36069 (vusdotq_lane_s32): New. 36070 (vsudot_lane_s32): New. 36071 (vsudotq_lane_s32): New. 36072 * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New. 36073 * config/arm/iterators.md (DOTPROD_I8MM): New. 36074 (sup, opsuffix): Add <us/su>. 36075 * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New. 36076 * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New. 36077 360782020-02-11 Richard Biener <rguenther@suse.de> 36079 36080 PR tree-optimization/93661 36081 PR tree-optimization/93662 36082 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard 36083 tree_to_poly_int64. 36084 * tree-sra.c (get_access_for_expr): Likewise. 36085 360862020-02-10 Jakub Jelinek <jakub@redhat.com> 36087 36088 PR target/93637 36089 * config/i386/sse.md (VI_256_AVX2): New mode iterator. 36090 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256. 36091 Change condition from TARGET_AVX2 to TARGET_AVX. 36092 360932020-02-10 Iain Sandoe <iain@sandoe.co.uk> 36094 36095 PR other/93641 36096 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last 36097 argument of strncmp. 36098 360992020-02-10 Hans-Peter Nilsson <hp@axis.com> 36100 36101 Try to generate zero-based comparisons. 36102 * config/cris/cris.c (cris_reduce_compare): New function. 36103 * config/cris/cris-protos.h (cris_reduce_compare): Add prototype. 36104 * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4") 36105 (cstore<mode>4"): Apply cris_reduce_compare in expanders. 36106 361072020-02-10 Richard Earnshaw <rearnsha@arm.com> 36108 36109 PR target/91913 36110 * config/arm/arm.md (movsi_compare0): Allow SP as a source register 36111 in Thumb state and also as a destination in Arm state. Add T16 36112 variants. 36113 361142020-02-10 Hans-Peter Nilsson <hp@axis.com> 36115 36116 * md.texi (Define Subst): Match closing paren in example. 36117 361182020-02-10 Jakub Jelinek <jakub@redhat.com> 36119 36120 PR target/58218 36121 PR other/93641 36122 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last 36123 arguments of strncmp. 36124 361252020-02-10 Feng Xue <fxue@os.amperecomputing.com> 36126 36127 PR ipa/93203 36128 * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge 36129 but different source value. 36130 (adjust_callers_for_value_intersection): New function. 36131 (gather_edges_for_value): Adjust order of callers to let a 36132 non-self-recursive caller be the first element. 36133 (self_recursive_pass_through_p): Add a new parameter "simple", and 36134 check generalized self-recursive pass-through jump function. 36135 (self_recursive_agg_pass_through_p): Likewise. 36136 (find_more_scalar_values_for_callers_subset): Compute value from 36137 pass-through jump function for self-recursive. 36138 (intersect_with_plats): Cleanup previous implementation code for value 36139 itersection with self-recursive call edge. 36140 (intersect_with_agg_replacements): Likewise. 36141 (intersect_aggregates_with_edge): Deduce value from pass-through jump 36142 function for self-recursive call edge. Cleanup previous implementation 36143 code for value intersection with self-recursive call edge. 36144 (decide_whether_version_node): Remove dead callers and adjust order 36145 to let a non-self-recursive caller be the first element. 36146 361472020-02-09 Uroš Bizjak <ubizjak@gmail.com> 36148 36149 * recog.c: Move pass_split_before_sched2 code in front of 36150 pass_split_before_regstack. 36151 (pass_data_split_before_sched2): Rename pass to split3 from split4. 36152 (pass_data_split_before_regstack): Rename pass to split4 from split3. 36153 (rest_of_handle_split_before_sched2): Remove. 36154 (pass_split_before_sched2::execute): Unconditionally call 36155 split_all_insns. 36156 (enable_split_before_sched2): New function. 36157 (pass_split_before_sched2::gate): Use enable_split_before_sched2. 36158 (pass_split_before_regstack::gate): Ditto. 36159 * config/nds32/nds32.c (nds32_split_double_word_load_store_p): 36160 Update name check for renamed split4 pass. 36161 * config/sh/sh.c (register_sh_passes): Update pass insertion 36162 point for renamed split4 pass. 36163 361642020-02-09 Jakub Jelinek <jakub@redhat.com> 36165 36166 * gimplify.c (gimplify_adjust_omp_clauses_1): Promote 36167 DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid 36168 copying them around between host and target. 36169 361702020-02-08 Andrew Pinski <apinski@marvell.com> 36171 36172 PR target/91927 36173 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check 36174 STRICT_ALIGNMENT also. 36175 361762020-02-08 Jim Wilson <jimw@sifive.com> 36177 36178 PR target/93532 36179 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define. 36180 361812020-02-08 Uroš Bizjak <ubizjak@gmail.com> 36182 Jakub Jelinek <jakub@redhat.com> 36183 36184 PR target/65782 36185 * config/i386/i386.h (CALL_USED_REGISTERS): Make 36186 xmm16-xmm31 call-used even in 64-bit ms-abi. 36187 361882020-02-07 Dennis Zhang <dennis.zhang@arm.com> 36189 36190 * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry. 36191 (simd_ummla, simd_usmmla): Likewise. 36192 * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New. 36193 * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New. 36194 (vusmmlaq_s32): New. 36195 361962020-02-07 Richard Biener <rguenther@suse.de> 36197 36198 PR middle-end/93519 36199 * tree-inline.c (fold_marked_statements): Do a PRE walk, 36200 skipping unreachable regions. 36201 (optimize_inline_calls): Skip folding stmts when we didn't 36202 inline. 36203 362042020-02-07 H.J. Lu <hongjiu.lu@intel.com> 36205 36206 PR target/85667 36207 * config/i386/i386.c (function_arg_ms_64): Add a type argument. 36208 Don't return aggregates with only SFmode and DFmode in SSE 36209 register. 36210 (ix86_function_arg): Pass arg.type to function_arg_ms_64. 36211 362122020-02-07 Jakub Jelinek <jakub@redhat.com> 36213 36214 PR target/93122 36215 * config/rs6000/rs6000-logue.c 36216 (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn, 36217 if it fails, move rs into end_addr and retry. Add 36218 REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or 36219 the insn pattern doesn't describe well what exactly happens to 36220 dwarf2cfi.c. 36221 36222 PR target/93594 36223 * config/i386/predicates.md (avx_identity_operand): Remove. 36224 * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove. 36225 (avx_<castmode><avxsizesuffix>_<castmode>, 36226 avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to 36227 a VEC_CONCAT of the operand and UNSPEC_CAST. 36228 (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to 36229 a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with 36230 UNSPEC_CAST. 36231 36232 PR target/93611 36233 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear 36234 recog_data.insn if distance_non_agu_define changed it. 36235 362362020-02-06 Michael Meissner <meissner@linux.ibm.com> 36237 36238 PR target/93569 36239 * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0 36240 we only had X-FORM (reg+reg) addressing for vectors. Also before 36241 ISA 3.0, we only had X-FORM addressing for scalars in the 36242 traditional Altivec registers. 36243 362442020-02-06 <zhongyunde@huawei.com> 36245 Vladimir Makarov <vmakarov@redhat.com> 36246 36247 PR rtl-optimization/93561 36248 * lra-assigns.c (spill_for): Check that tested hard regno is not out of 36249 hard register range. 36250 362512020-02-06 Richard Sandiford <richard.sandiford@arm.com> 36252 36253 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type 36254 attribute. 36255 362562020-02-06 Segher Boessenkool <segher@kernel.crashing.org> 36257 36258 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case 36259 where the low and the high 32 bits are equal to each other specially, 36260 with an rldimi instruction. 36261 362622020-02-06 Mihail Ionescu <mihail.ionescu@arm.com> 36263 36264 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main. 36265 362662020-02-06 Mihail Ionescu <mihail.ionescu@arm.com> 36267 36268 * config/arm/arm-tables.opt: Regenerate. 36269 362702020-02-06 Richard Sandiford <richard.sandiford@arm.com> 36271 36272 PR target/87763 36273 * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare. 36274 * config/aarch64/aarch64.c (aarch64_movk_shift): New function. 36275 * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern. 36276 362772020-02-06 Richard Sandiford <richard.sandiford@arm.com> 36278 36279 PR rtl-optimization/87763 36280 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern. 36281 362822020-02-06 Delia Burduv <delia.burduv@arm.com> 36283 36284 * config/aarch64/aarch64-simd-builtins.def 36285 (bfmlaq): New built-in function. 36286 (bfmlalb): New built-in function. 36287 (bfmlalt): New built-in function. 36288 (bfmlalb_lane): New built-in function. 36289 (bfmlalt_lane): New built-in function. 36290 * config/aarch64/aarch64-simd.md 36291 (aarch64_bfmmlaqv4sf): New pattern. 36292 (aarch64_bfmlal<bt>v4sf): New pattern. 36293 (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern. 36294 * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic. 36295 (vbfmlalbq_f32): New intrinsic. 36296 (vbfmlaltq_f32): New intrinsic. 36297 (vbfmlalbq_lane_f32): New intrinsic. 36298 (vbfmlaltq_lane_f32): New intrinsic. 36299 (vbfmlalbq_laneq_f32): New intrinsic. 36300 (vbfmlaltq_laneq_f32): New intrinsic. 36301 * config/aarch64/iterators.md (BF_MLA): New int iterator. 36302 (bt): New int attribute. 36303 363042020-02-06 Uroš Bizjak <ubizjak@gmail.com> 36305 36306 * config/i386/i386.md (*pushtf): Emit "#" instead of 36307 calling gcc_unreachable in insn output. 36308 (*pushxf): Ditto. 36309 (*pushdf): Ditto. 36310 (*pushsf_rex64): Ditto for alternatives other than 1. 36311 (*pushsf): Ditto for alternatives other than 1. 36312 363132020-02-06 Martin Liska <mliska@suse.cz> 36314 36315 PR gcov-profile/91971 36316 PR gcov-profile/93466 36317 * coverage.c (coverage_init): Revert mangling of 36318 path into filename. It can lead to huge filename length. 36319 Creation of subfolders seem more natural. 36320 363212020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com> 36322 36323 PR target/93300 36324 * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New. 36325 (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs. 36326 Use arm_block_arith_comp_libfuncs_for_mode for HFmode. 36327 363282020-02-06 Jakub Jelinek <jakub@redhat.com> 36329 36330 PR target/93594 36331 * config/i386/predicates.md (avx_identity_operand): New predicate. 36332 * config/i386/sse.md (*avx_vec_concat<mode>_1): New 36333 define_insn_and_split. 36334 36335 PR libgomp/93515 36336 * omp-low.c (use_pointer_for_field): For nested constructs, also 36337 look for map clauses on target construct. 36338 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily 36339 taskreg_nesting_level. 36340 36341 PR libgomp/93515 36342 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding 36343 shared clause, call omp_notice_variable on outer context if any. 36344 363452020-02-05 Jason Merrill <jason@redhat.com> 36346 36347 PR c++/92003 36348 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has 36349 non-zero address even if weak and not yet defined. 36350 363512020-02-05 Martin Sebor <msebor@redhat.com> 36352 36353 PR tree-optimization/92765 36354 * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL. 36355 * tree-ssa-strlen.c (compute_string_length): Remove. 36356 (determine_min_objsize): Remove. 36357 (get_len_or_size): Add an argument. Call get_range_strlen_dynamic. 36358 Avoid using type size as the upper bound on string length. 36359 (handle_builtin_string_cmp): Add an argument. Adjust. 36360 (strlen_check_and_optimize_call): Pass additional argument to 36361 handle_builtin_string_cmp. 36362 363632020-02-05 Uroš Bizjak <ubizjak@gmail.com> 36364 36365 * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove. 36366 (*pushdi2_rex64 peephole2): Unconditionally split after 36367 epilogue_completed. 36368 (*ashl<mode>3_doubleword): Ditto. 36369 (*<shift_insn><mode>3_doubleword): Ditto. 36370 363712020-02-05 Michael Meissner <meissner@linux.ibm.com> 36372 36373 PR target/93568 36374 * config/rs6000/rs6000.c (get_vector_offset): Fix 36375 363762020-02-05 Andrew Stubbs <ams@codesourcery.com> 36377 36378 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space. 36379 363802020-02-05 David Malcolm <dmalcolm@redhat.com> 36381 36382 * doc/analyzer.texi 36383 (Special Functions for Debugging the Analyzer): Update description 36384 of __analyzer_dump_exploded_nodes. 36385 363862020-02-05 Jakub Jelinek <jakub@redhat.com> 36387 36388 PR target/92190 36389 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only 36390 include sets and not clobbers in the vzeroupper pattern. 36391 * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that 36392 the parallel has 17 (64-bit) or 9 (32-bit) elts. 36393 (*avx_vzeroupper_1): New define_insn_and_split. 36394 36395 PR target/92190 36396 * recog.c (pass_split_after_reload::gate): For STACK_REGS targets, 36397 don't run when !optimize. 36398 (pass_split_before_regstack::gate): For STACK_REGS targets, run even 36399 when !optimize. 36400 364012020-02-05 Richard Biener <rguenther@suse.de> 36402 36403 PR middle-end/90648 36404 * genmatch.c (dt_node::gen_kids_1): Emit number of argument 36405 checks before matching calls. 36406 364072020-02-05 Jakub Jelinek <jakub@redhat.com> 36408 36409 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up 36410 function comment typo. 36411 36412 PR middle-end/93555 36413 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or 36414 simd_clone_create failed when i == 0, adjust clone->nargs by 36415 clone->inbranch. 36416 364172020-02-05 Martin Liska <mliska@suse.cz> 36418 36419 PR c++/92717 36420 * doc/invoke.texi: Document that one should 36421 not combine ASLR and -fpch. 36422 364232020-02-04 Richard Biener <rguenther@suse.de> 36424 36425 PR tree-optimization/93538 36426 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr. 36427 364282020-02-04 Richard Biener <rguenther@suse.de> 36429 36430 PR tree-optimization/91123 36431 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method. 36432 (vn_walk_cb_data::last_vuse): New member. 36433 (vn_walk_cb_data::saved_operands): Likewsie. 36434 (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands. 36435 (vn_walk_cb_data::push_partial_def): Use finish. 36436 (vn_reference_lookup_2): Update last_vuse and use finish if 36437 we've saved operands. 36438 (vn_reference_lookup_3): Use finish and update calls to 36439 push_partial_defs everywhere. When translating through 36440 memcpy or aggregate copies save off operands and alias-set. 36441 (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE 36442 operation for redundant store removal. 36443 364442020-02-04 Richard Biener <rguenther@suse.de> 36445 36446 PR tree-optimization/92819 36447 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid 36448 generating more stmts than before. 36449 364502020-02-04 Martin Liska <mliska@suse.cz> 36451 36452 * config/arm/arm.c (arm_gen_far_branch): Move the function 36453 outside of selftests. 36454 364552020-02-03 Michael Meissner <meissner@linux.ibm.com> 36456 36457 * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper 36458 function to adjust PC-relative vector addresses. 36459 (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to 36460 handle vectors with PC-relative addresses. 36461 364622020-02-03 Michael Meissner <meissner@linux.ibm.com> 36463 36464 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward 36465 reference. 36466 (hard_reg_and_mode_to_addr_mask): Delete. 36467 (rs6000_adjust_vec_address): If the original vector address 36468 was REG+REG or REG+OFFSET and the element is not zero, do the add 36469 of the elements in the original address before adding the offset 36470 for the vector element. Use address_to_insn_form to validate the 36471 address using the register being loaded, rather than guessing 36472 whether the address is a DS-FORM or DQ-FORM address. 36473 364742020-02-03 Michael Meissner <meissner@linux.ibm.com> 36475 36476 * config/rs6000/rs6000.c (get_vector_offset): New helper function 36477 to calculate the offset in memory from the start of a vector of a 36478 particular element. Add code to keep the element number in 36479 bounds if the element number is variable. 36480 (rs6000_adjust_vec_address): Move calculation of offset of the 36481 vector element to get_vector_offset. 36482 (rs6000_split_vec_extract_var): Do not do the initial AND of 36483 element here, move the code to get_vector_offset. 36484 364852020-02-03 Michael Meissner <meissner@linux.ibm.com> 36486 36487 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some 36488 gcc_asserts. 36489 364902020-02-03 Segher Boessenkool <segher@kernel.crashing.org> 36491 36492 * config/rs6000/constraints.md: Improve documentation. 36493 364942020-02-03 Richard Earnshaw <rearnsha@arm.com> 36495 36496 PR target/93548 36497 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md) 36498 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change. 36499 365002020-02-03 Andrew Stubbs <ams@codesourcery.com> 36501 36502 * config.gcc: Remove "carrizo" support. 36503 * config/gcn/gcn-opts.h (processor_type): Likewise. 36504 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise. 36505 * config/gcn/gcn.opt (gpu_type): Likewise. 36506 * config/gcn/t-omp-device: Likewise. 36507 365082020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com> 36509 36510 PR target/91816 36511 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype. 36512 * config/arm/arm.c (arm_gen_far_branch): New function 36513 arm_gen_far_branch. 36514 * config/arm/arm.md: Update b<cond> for Thumb2 range checks. 36515 365162020-02-03 Julian Brown <julian@codesourcery.com> 36517 Tobias Burnus <tobias@codesourcery.com> 36518 36519 * doc/invoke.texi: Update mention of OpenACC version to 2.6. 36520 365212020-02-03 Jakub Jelinek <jakub@redhat.com> 36522 36523 PR target/93533 36524 * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit 36525 valid RTL to sum up the lowest and second lowest bytes of the popcnt 36526 result. 36527 365282020-02-02 Vladimir Makarov <vmakarov@redhat.com> 36529 36530 PR rtl-optimization/91333 36531 * ira-color.c (struct allocno_color_data): Add member 36532 hard_reg_prefs. 36533 (init_allocno_threads): Set the member up. 36534 (bucket_allocno_compare_func): Add compare hard reg 36535 prefs. 36536 365372020-01-31 Sandra Loosemore <sandra@codesourcery.com> 36538 36539 nios2: Support for GOT-relative DW_EH_PE_datarel encoding. 36540 36541 * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION. 36542 * config.in: Regenerated. 36543 * configure: Regenerated. 36544 * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling 36545 for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION. 36546 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. 36547 365482020-02-01 Andrew Burgess <andrew.burgess@embecosm.com> 36549 36550 * configure: Regenerate. 36551 365522020-01-31 Vladimir Makarov <vmakarov@redhat.com> 36553 36554 PR rtl-optimization/91333 36555 * ira-color.c (bucket_allocno_compare_func): Move conflict hard 36556 reg preferences comparison up. 36557 365582020-01-31 Richard Sandiford <richard.sandiford@arm.com> 36559 36560 * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro. 36561 * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to 36562 aarch64-sve-builtins-base.h. 36563 * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to 36564 aarch64-sve-builtins-base.cc. 36565 * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane) 36566 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) 36567 (svcvtnt): Declare. 36568 * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane) 36569 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) 36570 (svcvtnt): New functions. 36571 * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane) 36572 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) 36573 (svcvtnt): New functions. 36574 (svcvt): Add a form that converts f32 to bf16. 36575 * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat) 36576 (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n): 36577 Declare. 36578 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type): 36579 Treat B as bfloat16_t. 36580 (ternary_bfloat_lane_base): New class. 36581 (ternary_bfloat_def): Likewise. 36582 (ternary_bfloat): New shape. 36583 (ternary_bfloat_lane_def): New class. 36584 (ternary_bfloat_lane): New shape. 36585 (ternary_bfloat_lanex2_def): New class. 36586 (ternary_bfloat_lanex2): New shape. 36587 (ternary_bfloat_opt_n_def): New class. 36588 (ternary_bfloat_opt_n): New shape. 36589 * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro. 36590 * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf) 36591 (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns. 36592 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>) 36593 (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise. 36594 (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise. 36595 (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise. 36596 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key 36597 the pattern off the narrow mode instead of the wider one. 36598 * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator. 36599 (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs. 36600 (sve_fp_op): Handle them. 36601 (SVE_BFLOAT_TERNARY_LONG): New int itertor. 36602 (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise. 36603 366042020-01-31 Richard Sandiford <richard.sandiford@arm.com> 36605 36606 * config/aarch64/arm_sve.h: Include arm_bf16.h. 36607 * config/aarch64/aarch64-modes.def (BF): Move definition before 36608 VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF. 36609 (SVE_MODES): Handle BF modes. 36610 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle 36611 BF modes. 36612 (aarch64_full_sve_mode): Likewise. 36613 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF 36614 and VNx32BF. 36615 (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF. 36616 (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore) 36617 (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count) 36618 (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the 36619 new SVE BF modes. 36620 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New 36621 type_class_index. 36622 * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro. 36623 (TYPES_all_data): Add bf16. 36624 (TYPES_reinterpret1, TYPES_reinterpret): Likewise. 36625 (register_tuple_type): Increase buffer size. 36626 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type. 36627 (bf16): New type suffix. 36628 * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv) 36629 (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax) 36630 (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr): 36631 Change type from all_data to all_arith. 36632 * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp) 36633 (svminp): Likewise. 36634 366352020-01-31 Dennis Zhang <dennis.zhang@arm.com> 36636 Matthew Malcomson <matthew.malcomson@arm.com> 36637 Richard Sandiford <richard.sandiford@arm.com> 36638 36639 * doc/invoke.texi (f32mm): Document new AArch64 -march= extension. 36640 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 36641 __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and 36642 __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define 36643 __ARM_FEATURE_MATMUL_FP64. 36644 * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16) 36645 (sve): Add AARCH64_FL_F32MM to the list of extensions that should 36646 be disabled at the same time. 36647 (f32mm): New extension. 36648 * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro. 36649 (AARCH64_FL_F64MM): Bump to the next bit up. 36650 (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM) 36651 (TARGET_SVE_F64MM): New macros. 36652 * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator. 36653 (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL) 36654 (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q) 36655 (UNSPEC_ZIP2Q): New unspeccs. 36656 (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators. 36657 (optab, sur, perm_insn): Handle the new unspecs. 36658 (sve_fp_op): Handle UNSPEC_FMMLA. Resort. 36659 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use 36660 TARGET_SVE_F64MM instead of separate tests. 36661 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern. 36662 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise. 36663 (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise. 36664 (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise. 36665 (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise. 36666 * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro. 36667 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it. 36668 (TYPES_s_signed): New macro. 36669 (TYPES_s_integer): Use it. 36670 (TYPES_d_float): New macro. 36671 (TYPES_d_data): Use it. 36672 * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare. 36673 (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq) 36674 (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise. 36675 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class. 36676 (svmmla): New shape. 36677 (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3 36678 template parameters. 36679 (ternary_resize2_lane_base): Likewise. 36680 (ternary_resize2_base): New class. 36681 (ternary_qq_lane_base): Likewise. 36682 (ternary_intq_uintq_lane_def): Likewise. 36683 (ternary_intq_uintq_lane): New shape. 36684 (ternary_intq_uintq_opt_n_def): New class 36685 (ternary_intq_uintq_opt_n): New shape. 36686 (ternary_qq_lane_def): Inherit from ternary_qq_lane_base. 36687 (ternary_uintq_intq_def): New class. 36688 (ternary_uintq_intq): New shape. 36689 (ternary_uintq_intq_lane_def): New class. 36690 (ternary_uintq_intq_lane): New shape. 36691 (ternary_uintq_intq_opt_n_def): New class. 36692 (ternary_uintq_intq_opt_n): New shape. 36693 * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot) 36694 (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla) 36695 (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare. 36696 * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl): 36697 Generalize to... 36698 (svdotprod_lane_impl): ...this new class. 36699 (svmmla_impl, svusdot_impl): New classes. 36700 (svdot_lane): Update to use svdotprod_lane_impl. 36701 (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot) 36702 (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New 36703 functions. 36704 * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base 36705 function, with no types defined. 36706 (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New 36707 AARCH64_FL_I8MM functions. 36708 (svmmla): New AARCH64_FL_F32MM function. 36709 (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6. 36710 (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New 36711 AARCH64_FL_F64MM function. 36712 (REQUIRED_EXTENSIONS): 36713 367142020-01-31 Andrew Stubbs <ams@codesourcery.com> 36715 36716 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each 36717 alternative only. 36718 367192020-01-31 Uroš Bizjak <ubizjak@gmail.com> 36720 36721 * config/i386/i386.md (*movoi_internal_avx): Do not check for 36722 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling. 36723 (*movti_internal): Do not check for 36724 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. 36725 (*movtf_internal): Move check for TARGET_SSE2 and size optimization 36726 just after check for TARGET_AVX. 36727 (*movdf_internal): Ditto. 36728 * config/i386/mmx.md (*mov<mode>_internal): Do not check for 36729 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. 36730 * config/i386/sse.md (mov<mode>_internal): Only check 36731 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check 36732 for TARGET_SSE2 and size optimization just after check for TARGET_AVX. 36733 (<sse>_andnot<mode>3<mask_name>): Move check for 36734 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX. 36735 (<code><mode>3<mask_name>): Ditto. 36736 (*andnot<mode>3): Ditto. 36737 (*andnottf3): Ditto. 36738 (*<code><mode>3): Ditto. 36739 (*<code>tf3): Ditto. 36740 (*andnot<VI:mode>3): Remove 36741 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling. 36742 (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto. 36743 (*<code><VI12_AVX_AVX512F:mode>3): Ditto. 36744 (sse4_1_blendv<ssemodesuffix>): Ditto. 36745 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): 36746 Explain that tune applies to 128bit instructions only. 36747 367482020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com> 36749 36750 * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count 36751 to definition of hsa_kernel_description. Parse assembly to find SGPR 36752 and VGPR count of kernel and store in hsa_kernel_description. 36753 367542020-01-31 Tamar Christina <tamar.christina@arm.com> 36755 36756 PR rtl-optimization/91838 36757 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case 36758 to truncate if allowed or reject combination. 36759 367602020-01-31 Andrew Stubbs <ams@codesourcery.com> 36761 36762 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step. 36763 (find_inv_vars_cb): Likewise. 36764 367652020-01-31 David Malcolm <dmalcolm@redhat.com> 36766 36767 * calls.c (special_function_p): Split out the check for DECL_NAME 36768 being non-NULL and fndecl being extern at file scope into a 36769 new maybe_special_function_p and call it. Drop check for fndecl 36770 being non-NULL that was after a usage of DECL_NAME (fndecl). 36771 * tree.h (maybe_special_function_p): New inline function. 36772 367732020-01-30 Andrew Stubbs <ams@codesourcery.com> 36774 36775 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ... 36776 (mask_gather_load<mode>): ... here, and zero-initialize the 36777 destination. 36778 (maskload<mode>di): Zero-initialize the destination. 36779 * config/gcn/gcn.c: 36780 367812020-01-30 David Malcolm <dmalcolm@redhat.com> 36782 36783 PR analyzer/93356 36784 * doc/analyzer.texi (Limitations): Note that constraints on 36785 floating-point values are currently ignored. 36786 367872020-01-30 Jakub Jelinek <jakub@redhat.com> 36788 36789 PR lto/93384 36790 * symtab.c (symtab_node::noninterposable_alias): If localalias 36791 already exists, but is not usable, append numbers after it until 36792 a unique name is found. Formatting fix. 36793 36794 PR middle-end/93505 36795 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range 36796 rotate counts. 36797 367982020-01-30 Andrew Stubbs <ams@codesourcery.com> 36799 36800 * config/gcn/gcn.c (print_operand): Handle LTGT. 36801 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt. 36802 368032020-01-30 Richard Biener <rguenther@suse.de> 36804 36805 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST 36806 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE. 36807 368082020-01-30 John David Anglin <danglin@gcc.gnu.org> 36809 36810 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers 36811 without a DECL in .data.rel.ro.local. 36812 368132020-01-30 Jakub Jelinek <jakub@redhat.com> 36814 36815 PR target/93494 36816 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4 36817 returned. 36818 36819 PR target/91824 36820 * config/i386/sse.md 36821 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ... 36822 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use 36823 any_extend code iterator instead of always zero_extend. 36824 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ... 36825 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this. 36826 Use any_extend code iterator instead of always zero_extend. 36827 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ... 36828 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this. 36829 Use any_extend code iterator instead of always zero_extend. 36830 (*sse2_pmovmskb_ext): New define_insn. 36831 (*sse2_pmovmskb_ext_lt): New define_insn_and_split. 36832 36833 PR target/91824 36834 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split. 36835 (*popcountsi2_zext_falsedep): New define_insn. 36836 368372020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 36838 36839 * config.in: Regenerated. 36840 * configure: Regenerated. 36841 368422020-01-29 Tobias Burnus <tobias@codesourcery.com> 36843 36844 PR bootstrap/93409 36845 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as 36846 LLVM's assembler changed the default in version 9. 36847 368482020-01-24 Jeff Law <law@redhat.com> 36849 36850 PR tree-optimization/89689 36851 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure. 36852 368532020-01-29 Richard Sandiford <richard.sandiford@arm.com> 36854 36855 Revert: 36856 36857 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> 36858 36859 PR rtl-optimization/87763 36860 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract 36861 simplification to handle subregs as well as bare regs. 36862 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too. 36863 368642020-01-29 Joel Hutton <Joel.Hutton@arm.com> 36865 36866 PR target/93221 36867 * ira.c (ira): Revert use of simplified LRA algorithm. 36868 368692020-01-29 Martin Jambor <mjambor@suse.cz> 36870 36871 PR tree-optimization/92706 36872 * tree-sra.c (struct access): Fields first_link, last_link, 36873 next_queued and grp_queued renamed to first_rhs_link, last_rhs_link, 36874 next_rhs_queued and grp_rhs_queued respectively, new fields 36875 first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued. 36876 (struct assign_link): Field next renamed to next_rhs, new field 36877 next_lhs. Updated comment. 36878 (work_queue_head): Renamed to rhs_work_queue_head. 36879 (lhs_work_queue_head): New variable. 36880 (add_link_to_lhs): New function. 36881 (relink_to_new_repr): Also relink LHS lists. 36882 (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue. 36883 (add_access_to_lhs_work_queue): New function. 36884 (pop_access_from_work_queue): Renamed to 36885 pop_access_from_rhs_work_queue. 36886 (pop_access_from_lhs_work_queue): New function. 36887 (build_accesses_from_assign): Also add links to LHS lists and to LHS 36888 work_queue. 36889 (child_would_conflict_in_lacc): Renamed to 36890 child_would_conflict_in_acc. Adjusted parameter names. 36891 (create_artificial_child_access): New parameter set_grp_read, use it. 36892 (subtree_mark_written_and_enqueue): Renamed to 36893 subtree_mark_written_and_rhs_enqueue. 36894 (propagate_subaccesses_across_link): Renamed to 36895 propagate_subaccesses_from_rhs. 36896 (propagate_subaccesses_from_lhs): New function. 36897 (propagate_all_subaccesses): Also propagate subaccesses from LHSs to 36898 RHSs. 36899 369002020-01-29 Martin Jambor <mjambor@suse.cz> 36901 36902 PR tree-optimization/92706 36903 * tree-sra.c (struct access): Adjust comment of 36904 grp_total_scalarization. 36905 (find_access_in_subtree): Look for single children spanning an entire 36906 access. 36907 (scalarizable_type_p): Allow register accesses, adjust callers. 36908 (completely_scalarize): Remove function. 36909 (scalarize_elem): Likewise. 36910 (create_total_scalarization_access): Likewise. 36911 (sort_and_splice_var_accesses): Do not track total scalarization 36912 flags. 36913 (analyze_access_subtree): New parameter totally, adjust to new meaning 36914 of grp_total_scalarization. 36915 (analyze_access_trees): Pass new parameter to analyze_access_subtree. 36916 (can_totally_scalarize_forest_p): New function. 36917 (create_total_scalarization_access): Likewise. 36918 (create_total_access_and_reshape): Likewise. 36919 (total_should_skip_creating_access): Likewise. 36920 (totally_scalarize_subtree): Likewise. 36921 (analyze_all_variable_accesses): Perform total scalarization after 36922 subaccess propagation using the new functions above. 36923 (initialize_constant_pool_replacements): Output initializers by 36924 traversing the access tree. 36925 369262020-01-29 Martin Jambor <mjambor@suse.cz> 36927 36928 * tree-sra.c (verify_sra_access_forest): New function. 36929 (verify_all_sra_access_forests): Likewise. 36930 (create_artificial_child_access): Set parent. 36931 (analyze_all_variable_accesses): Call the verifier. 36932 369332020-01-28 Jan Hubicka <hubicka@ucw.cz> 36934 36935 * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge 36936 if called on indirect edge. 36937 (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of 36938 speculative call if needed. 36939 369402020-01-29 Richard Biener <rguenther@suse.de> 36941 36942 PR tree-optimization/93428 36943 * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load 36944 permutation when the load node is created. 36945 (vect_analyze_slp_instance): Re-use it here. 36946 369472020-01-28 Jan Hubicka <hubicka@ucw.cz> 36948 36949 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning. 36950 369512020-01-28 Vladimir Makarov <vmakarov@redhat.com> 36952 36953 PR rtl-optimization/93272 36954 * ira-lives.c (process_out_of_region_eh_regs): New function. 36955 (process_bb_node_lives): Call it. 36956 369572020-01-28 Jan Hubicka <hubicka@ucw.cz> 36958 36959 * coverage.c (read_counts_file): Make error message lowercase. 36960 369612020-01-28 Jan Hubicka <hubicka@ucw.cz> 36962 36963 * profile-count.c (profile_quality_display_names): Fix ordering. 36964 369652020-01-28 Jan Hubicka <hubicka@ucw.cz> 36966 36967 PR lto/93318 36968 * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site 36969 hash only when edge is first within the sequence. 36970 (cgraph_edge::set_call_stmt): Update handling of speculative calls. 36971 (symbol_table::create_edge): Do not set target_prob. 36972 (cgraph_edge::remove_caller): Watch for speculative calls when updating 36973 the call site hash. 36974 (cgraph_edge::make_speculative): Drop target_prob parameter. 36975 (cgraph_edge::speculative_call_info): Remove. 36976 (cgraph_edge::first_speculative_call_target): New member function. 36977 (update_call_stmt_hash_for_removing_direct_edge): New function. 36978 (cgraph_edge::resolve_speculation): Rewrite to new API. 36979 (cgraph_edge::speculative_call_for_target): New member function. 36980 (cgraph_edge::make_direct): Rewrite to new API; fix handling of 36981 multiple speculation targets. 36982 (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating 36983 of profile. 36984 (verify_speculative_call): Verify that targets form an interval. 36985 * cgraph.h (cgraph_edge::speculative_call_info): Remove. 36986 (cgraph_edge::first_speculative_call_target): New member function. 36987 (cgraph_edge::next_speculative_call_target): New member function. 36988 (cgraph_edge::speculative_call_target_ref): New member function. 36989 (cgraph_edge;:speculative_call_indirect_edge): New member funtion. 36990 (cgraph_edge): Remove target_prob. 36991 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones): 36992 Fix handling of speculative calls. 36993 * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals. 36994 * ipa-fnsummary.c (analyze_function_body): Likewise. 36995 * ipa-inline.c (speculation_useful_p): Use new speculative call API. 36996 * ipa-profile.c (dump_histogram): Fix formating. 36997 (ipa_profile_generate_summary): Watch for overflows. 36998 (ipa_profile): Do not require probablity to be 1/2; update to new API. 36999 * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API. 37000 (update_indirect_edges_after_inlining): Update to new API. 37001 * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call 37002 profiles. 37003 * profile-count.h: (profile_probability::adjusted): New. 37004 * tree-inline.c (copy_bb): Update to new speculative call API; fix 37005 updating of profile. 37006 * value-prof.c (gimple_ic_transform): Rename to ... 37007 (dump_ic_profile): ... this one; update dumping. 37008 (stream_in_histogram_value): Fix formating. 37009 (gimple_value_profile_transformations): Update. 37010 370112020-01-28 H.J. Lu <hongjiu.lu@intel.com> 37012 37013 PR target/91461 37014 * config/i386/i386.md (*movoi_internal_avx): Remove 37015 TARGET_SSE_TYPELESS_STORES check. 37016 (*movti_internal): Prefer TARGET_AVX over 37017 TARGET_SSE_TYPELESS_STORES. 37018 (*movtf_internal): Likewise. 37019 * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over 37020 TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check 37021 from TARGET_SSE_TYPELESS_STORES. 37022 370232020-01-28 David Malcolm <dmalcolm@redhat.com> 37024 37025 * diagnostic-core.h (warning_at): Rename overload to... 37026 (warning_meta): ...this. 37027 (emit_diagnostic_valist): Delete decl of overload taking 37028 diagnostic_metadata. 37029 * diagnostic.c (emit_diagnostic_valist): Likewise for defn. 37030 (warning_at): Rename overload taking diagnostic_metadata to... 37031 (warning_meta): ...this. 37032 370332020-01-28 Richard Biener <rguenther@suse.de> 37034 37035 PR tree-optimization/93439 37036 * tree-parloops.c (create_loop_fn): Move clique bookkeeping... 37037 * tree-cfg.c (move_sese_region_to_fn): ... here. 37038 (verify_types_in_gimple_reference): Verify used cliques are 37039 tracked. 37040 370412020-01-28 H.J. Lu <hongjiu.lu@intel.com> 37042 37043 PR target/91399 37044 * config/i386/i386-options.c (set_ix86_tune_features): Add an 37045 argument of a pointer to struct gcc_options and pass it to 37046 parse_mtune_ctrl_str. 37047 (ix86_function_specific_restore): Pass opts to 37048 set_ix86_tune_features. 37049 (ix86_option_override_internal): Likewise. 37050 (parse_mtune_ctrl_str): Add an argument of a pointer to struct 37051 gcc_options and use it for x_ix86_tune_ctrl_string. 37052 370532020-01-28 Richard Sandiford <richard.sandiford@arm.com> 37054 37055 PR rtl-optimization/87763 37056 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract 37057 simplification to handle subregs as well as bare regs. 37058 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too. 37059 370602020-01-28 Richard Sandiford <richard.sandiford@arm.com> 37061 37062 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully 37063 for reduction chains that (now) include a call. 37064 370652020-01-28 Richard Sandiford <richard.sandiford@arm.com> 37066 37067 PR tree-optimization/92822 37068 * tree-ssa-forwprop.c (simplify_vector_constructor): When filling 37069 out the don't-care elements of a vector whose significant elements 37070 are duplicates, make the don't-care elements duplicates too. 37071 370722020-01-28 Richard Sandiford <richard.sandiford@arm.com> 37073 37074 PR tree-optimization/93434 37075 * tree-predcom.c (split_data_refs_to_components): Record which 37076 components have had aliasing loads removed. Prevent store-store 37077 commoning for all such components. 37078 370792020-01-28 Jakub Jelinek <jakub@redhat.com> 37080 37081 PR target/93418 37082 * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not 37083 -1 or is_vshift is true, use new_vector with number of elts npatterns 37084 rather than new_unary_operation. 37085 37086 PR tree-optimization/93454 37087 * gimple-fold.c (fold_array_ctor_reference): Perform 37088 elt_size.to_uhwi () just once, instead of calling it in every 37089 iteration. Punt if that value is above size of the temporary 37090 buffer. Decrease third native_encode_expr argument when 37091 bufoff + elt_sz is above size of buf. 37092 370932020-01-27 Joseph Myers <joseph@codesourcery.com> 37094 37095 * config/mips/mips.c (mips_declare_object_name) 37096 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object. 37097 370982020-01-27 Martin Liska <mliska@suse.cz> 37099 37100 PR gcov-profile/93403 37101 * tree-profile.c (gimple_init_gcov_profiler): Generate 37102 both __gcov_indirect_call_profiler_v4 and 37103 __gcov_indirect_call_profiler_v4_atomic. 37104 371052020-01-27 Richard Sandiford <richard.sandiford@arm.com> 37106 37107 PR target/92822 37108 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New 37109 expander. 37110 (@aarch64_split_simd_mov<mode>): Use it. 37111 (aarch64_simd_mov_from_<mode>low): Add a GPR alternative. 37112 Leave the vec_extract patterns to handle 2-element vectors. 37113 (aarch64_simd_mov_from_<mode>high): Likewise. 37114 (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander. 37115 (vec_extractv2dfv1df): Likewise. 37116 371172020-01-27 Richard Sandiford <richard.sandiford@arm.com> 37118 37119 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match 37120 jump conditions for *compare_condjump<GPI:mode>. 37121 371222020-01-27 David Malcolm <dmalcolm@redhat.com> 37123 37124 PR analyzer/93276 37125 * digraph.cc (test_edge::test_edge): Specify template for base 37126 class initializer. 37127 371282020-01-27 Claudiu Zissulescu <claziss@synopsys.com> 37129 37130 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost. 37131 371322020-01-27 Claudiu Zissulescu <claziss@synopsys.com> 37133 37134 * config/arc/arc-protos.h (gen_mlo): Remove. 37135 (gen_mhi): Likewise. 37136 * config/arc/arc.c (AUX_MULHI): Define. 37137 (arc_must_save_reister): Special handling for r58/59. 37138 (arc_compute_frame_size): Consider mlo/mhi registers. 37139 (arc_save_callee_saves): Emit fp/sp move only when emit_move 37140 paramter is true. 37141 (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from 37142 mlo/mhi name selection. 37143 (arc_restore_callee_saves): Don't early restore blink when ISR. 37144 (arc_expand_prologue): Add mlo/mhi saving. 37145 (arc_expand_epilogue): Add mlo/mhi restoring. 37146 (gen_mlo): Remove. 37147 (gen_mhi): Remove. 37148 * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register 37149 numbering when MUL64 option is used. 37150 (DWARF2_FRAME_REG_OUT): Define. 37151 * config/arc/arc.md (arc600_stall): New pattern. 37152 (VUNSPEC_ARC_ARC600_STALL): Define. 37153 (mulsi64): Use correct mlo/mhi registers. 37154 (mulsi_600): Clean it up. 37155 * config/arc/predicates.md (mlo_operand): Remove any dependency on 37156 TARGET_BIG_ENDIAN. 37157 (mhi_operand): Likewise. 37158 371592020-01-27 Claudiu Zissulescu <claziss@synopsys.com> 37160 Petro Karashchenko <petro.karashchenko@ring.com> 37161 37162 * config/arc/arc.c (arc_is_uncached_mem_p): Check struct 37163 attributes if needed. 37164 (prepare_move_operands): Generate special unspec instruction for 37165 direct access. 37166 (arc_isuncached_mem_p): Propagate uncached attribute to each 37167 structure member. 37168 * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define. 37169 (VUNSPEC_ARC_STDI): Likewise. 37170 (ALLI): New mode iterator. 37171 (mALLI): New mode attribute. 37172 (lddi): New instruction pattern. 37173 (stdi): Likewise. 37174 (stdidi_split): Split instruction for architectures which are not 37175 supporting ll64 option. 37176 (lddidi_split): Likewise. 37177 371782020-01-27 Richard Sandiford <richard.sandiford@arm.com> 37179 37180 PR rtl-optimization/92989 37181 * lra-lives.c (process_bb_lives): Update the live-in set before 37182 processing additional clobbers. 37183 371842020-01-27 Richard Sandiford <richard.sandiford@arm.com> 37185 37186 PR rtl-optimization/93170 37187 * cselib.c (cselib_invalidate_regno_val): New function, split out 37188 from... 37189 (cselib_invalidate_regno): ...here. 37190 (cselib_invalidated_by_call_p): New function. 37191 (cselib_process_insn): Iterate over all the hard-register entries in 37192 REG_VALUES and invalidate any that cross call-clobbered registers. 37193 371942020-01-27 Richard Sandiford <richard.sandiford@arm.com> 37195 37196 * dojump.c (split_comparison): Use HONOR_NANS rather than 37197 HONOR_SNANS when splitting LTGT. 37198 371992020-01-27 Martin Liska <mliska@suse.cz> 37200 37201 PR driver/91220 37202 * opts.c (print_filtered_help): Exclude language-specific 37203 options from --help=common unless enabled in all FEs. 37204 372052020-01-27 Martin Liska <mliska@suse.cz> 37206 37207 * opts.c (print_help): Exclude params from 37208 all except --help=param. 37209 372102020-01-27 Martin Liska <mliska@suse.cz> 37211 37212 PR target/93274 37213 * config/i386/i386-features.c (make_resolver_func): 37214 Align the code with ppc64 target implementation. 37215 Do not generate a unique name for resolver function. 37216 372172020-01-27 Richard Biener <rguenther@suse.de> 37218 37219 PR tree-optimization/93397 37220 * tree-vect-slp.c (vect_analyze_slp_instance): Delay 37221 converted reduction chain SLP graph adjustment. 37222 372232020-01-26 Marek Polacek <polacek@redhat.com> 37224 37225 PR sanitizer/93436 37226 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on 37227 null DECL_NAME. 37228 372292020-01-26 Jason Merrill <jason@redhat.com> 37230 37231 PR c++/92601 37232 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING 37233 of complete types. 37234 372352020-01-26 Darius Galis <darius.galis@cyberthorstudios.com> 37236 37237 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint 37238 (rx_setmem): Likewise. 37239 372402020-01-26 Jakub Jelinek <jakub@redhat.com> 37241 37242 PR target/93412 37243 * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword): 37244 Use nonimmediate_operand instead of x86_64_hilo_general_operand and 37245 drop <di> from constraint of last operand. 37246 37247 PR target/93430 37248 * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for 37249 TARGET_AVX2 and V4DFmode not in the split condition, but in the 37250 pattern condition, though allow { 0, 0, 0, 0 } broadcast always. 37251 372522020-01-25 Feng Xue <fxue@os.amperecomputing.com> 37253 37254 PR ipa/93166 37255 * ipa-cp.c (get_info_about_necessary_edges): Remove value 37256 check assertion. 37257 372582020-01-24 Jeff Law <law@redhat.com> 37259 37260 PR tree-optimization/92788 37261 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX 37262 not EDGE_ABNORMAL. 37263 372642020-01-24 Jakub Jelinek <jakub@redhat.com> 37265 37266 PR target/93395 37267 * config/i386/sse.md (*avx_vperm_broadcast_v4sf, 37268 *avx_vperm_broadcast_<mode>, 37269 <sse2_avx_avx512f>_vpermil<mode><mask_name>, 37270 *<sse2_avx_avx512f>_vpermilp<mode><mask_name>): 37271 Move before avx2_perm<mode>/avx512f_perm<mode>. 37272 37273 PR target/93376 37274 * simplify-rtx.c (simplify_const_unary_operation, 37275 simplify_const_binary_operation): Punt for mode precision above 37276 MAX_BITSIZE_MODE_ANY_INT. 37277 372782020-01-24 Andrew Pinski <apinski@marvell.com> 37279 37280 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change 37281 alu.shift_reg to 0. 37282 372832020-01-24 Jeff Law <law@redhat.com> 37284 37285 PR target/13721 37286 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg 37287 for REGs. Call output_operand_lossage to get more reasonable 37288 diagnostics. 37289 372902020-01-24 Andrew Stubbs <ams@codesourcery.com> 37291 37292 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use 37293 gcn_fp_compare_operator. 37294 (vec_cmpu<mode>di): Use gcn_compare_operator. 37295 (vec_cmp<u>v64qidi): Use gcn_compare_operator. 37296 (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator. 37297 (vec_cmpu<mode>di_exec): Use gcn_compare_operator. 37298 (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator. 37299 (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator. 37300 (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator. 37301 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use 37302 gcn_fp_compare_operator. 37303 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use 37304 gcn_fp_compare_operator. 37305 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use 37306 gcn_fp_compare_operator. 37307 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use 37308 gcn_fp_compare_operator. 37309 373102020-01-24 Maciej W. Rozycki <macro@wdc.com> 37311 37312 * doc/install.texi (Cross-Compiler-Specific Options): Document 37313 `--with-toolexeclibdir' option. 37314 373152020-01-24 Hans-Peter Nilsson <hp@axis.com> 37316 37317 * target.def (flags_regnum): Also mention effect on delay slot filling. 37318 * doc/tm.texi: Regenerate. 37319 373202020-01-23 Jeff Law <law@redhat.com> 37321 37322 PR translation/90162 37323 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text. 37324 373252020-01-23 Mikael Tillenius <mti-1@tillenius.com> 37326 37327 PR target/92269 37328 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of 37329 profiling label 37330 373312020-01-23 Jakub Jelinek <jakub@redhat.com> 37332 37333 PR rtl-optimization/93402 37334 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust 37335 USE insns. 37336 373372020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 37338 37339 * config.in: Regenerated. 37340 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1 37341 for TARGET_LIBC_GNUSTACK. 37342 * configure: Regenerated. 37343 * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is 37344 found to be 2.31 or greater. 37345 373462020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 37347 37348 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 37349 TARGET_SOFT_FLOAT. 37350 * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ... 37351 (mips_asm_file_end): New function. Delegate to 37352 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true. 37353 * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0. 37354 373552020-01-23 Jakub Jelinek <jakub@redhat.com> 37356 37357 PR target/93376 37358 * config/i386/i386-modes.def (POImode): New mode. 37359 (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160. 37360 * config/i386/i386.md (DPWI): New mode attribute. 37361 (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>. 37362 (QWI): Rename to... 37363 (QPWI): ... this. Use POI instead of OI for TImode. 37364 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1, 37365 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI> 37366 instead of <QWI>. 37367 373682020-01-23 Richard Sandiford <richard.sandiford@arm.com> 37369 37370 PR target/93341 37371 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New 37372 unspec. 37373 (speculation_tracker_rev): New pattern. 37374 * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation): 37375 Use speculation_tracker_rev to track the inverse condition. 37376 373772020-01-23 Richard Biener <rguenther@suse.de> 37378 37379 PR tree-optimization/93381 37380 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take 37381 alias-set of the def as argument and record the first one. 37382 (vn_walk_cb_data::first_set): New member. 37383 (vn_reference_lookup_3): Pass the alias-set of the current def 37384 to push_partial_def. Fix alias-set used in the aggregate copy 37385 case. 37386 (vn_reference_lookup): Consistently set *last_vuse_ptr. 37387 * real.c (clear_significand_below): Fix out-of-bound access. 37388 373892020-01-23 Jakub Jelinek <jakub@redhat.com> 37390 37391 PR target/93346 37392 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3): 37393 New define_insn patterns. 37394 373952020-01-23 Richard Sandiford <richard.sandiford@arm.com> 37396 37397 * doc/sourcebuild.texi (check-function-bodies): Add an 37398 optional target/xfail selector. 37399 374002020-01-23 Richard Sandiford <richard.sandiford@arm.com> 37401 37402 PR rtl-optimization/93124 37403 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to 37404 bare USE and CLOBBER insns. 37405 374062020-01-22 Andrew Pinski <apinski@marvell.com> 37407 37408 * config/arc/arc.c (output_short_suffix): Check insn for nullness. 37409 374102020-01-22 David Malcolm <dmalcolm@redhat.com> 37411 37412 PR analyzer/93307 37413 * gdbinit.in (break-on-saved-diagnostic): Update for move of 37414 diagnostic_manager into "ana" namespace. 37415 * selftest-run-tests.c (selftest::run_tests): Update for move of 37416 selftest::run_analyzer_selftests to 37417 ana::selftest::run_analyzer_selftests. 37418 374192020-01-22 Richard Sandiford <richard.sandiford@arm.com> 37420 37421 * cfgexpand.c (union_stack_vars): Update the size. 37422 374232020-01-22 Richard Biener <rguenther@suse.de> 37424 37425 PR tree-optimization/93381 37426 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting 37427 throughout, handle all conversions the same. 37428 374292020-01-22 Jakub Jelinek <jakub@redhat.com> 37430 37431 PR target/93335 37432 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use 37433 gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate 37434 predicate, not whenever it is CONST_INT. Otherwise, force_reg it. 37435 Call force_reg on high_in2 unconditionally. 37436 374372020-01-22 Martin Liska <mliska@suse.cz> 37438 37439 PR tree-optimization/92924 37440 * profile.c (compute_value_histograms): Divide 37441 all counter values. 37442 374432020-01-22 Jakub Jelinek <jakub@redhat.com> 37444 37445 PR target/91298 37446 * output.h (assemble_name_resolve): Declare. 37447 * varasm.c (assemble_name_resolve): New function. 37448 (assemble_name): Use it. 37449 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define. 37450 374512020-01-22 Joseph Myers <joseph@codesourcery.com> 37452 37453 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to 37454 update_web_docs_git instead of update_web_docs_svn. 37455 374562020-01-21 Andrew Pinski <apinski@marvell.com> 37457 37458 PR target/9311 37459 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0 37460 as PTR mode. Have operand 1 as being modeless, it can be P mode. 37461 (*tlsgd_small_<mode>): Likewise. 37462 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately) 37463 <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode 37464 register. Convert that register back to dest using convert_mode. 37465 374662020-01-21 Jim Wilson <jimw@sifive.com> 37467 37468 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL 37469 instead of XINT. 37470 374712020-01-21 H.J. Lu <hongjiu.lu@intel.com> 37472 Uros Bizjak <ubizjak@gmail.com> 37473 37474 PR target/93319 37475 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode 37476 with ptr_mode. 37477 (legitimize_tls_address): Do GNU2 TLS address computation in 37478 ptr_mode and zero-extend result to Pmode. 37479 * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace 37480 :P with :PTR and Pmode with ptr_mode. 37481 (*tls_dynamic_gnu2_lea_64_<mode>): Likewise. 37482 (*tls_dynamic_gnu2_call_64_<mode>): Likewise. 37483 (*tls_dynamic_gnu2_combine_64_<mode>): Likewise. 37484 374852020-01-21 Jakub Jelinek <jakub@redhat.com> 37486 37487 PR target/93333 37488 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify 37489 the last two operands are CONST_INT_P before using them as such. 37490 374912020-01-21 Richard Sandiford <richard.sandiford@arm.com> 37492 37493 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name 37494 to get the integer element types. 37495 374962020-01-21 Richard Sandiford <richard.sandiford@arm.com> 37497 37498 * config/aarch64/aarch64-sve-builtins.h 37499 (function_expander::convert_to_pmode): Declare. 37500 * config/aarch64/aarch64-sve-builtins.cc 37501 (function_expander::convert_to_pmode): New function. 37502 (function_expander::get_contiguous_base): Use it. 37503 (function_expander::prepare_gather_address_operands): Likewise. 37504 * config/aarch64/aarch64-sve-builtins-sve2.cc 37505 (svwhilerw_svwhilewr_impl::expand): Likewise. 37506 375072020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com> 37508 37509 PR target/92424 37510 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set 37511 cfun->machine->label_is_assembled. 37512 (aarch64_print_patchable_function_entry): New. 37513 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define. 37514 * config/aarch64/aarch64.h (struct machine_function): New field, 37515 label_is_assembled. 37516 375172020-01-21 David Malcolm <dmalcolm@redhat.com> 37518 37519 PR ipa/93315 37520 * ipa-profile.c (ipa_profile): Delete call_sums and set it to 37521 NULL on exit. 37522 375232020-01-18 Jan Hubicka <hubicka@ucw.cz> 37524 37525 PR lto/93318 37526 * cgraph.c (cgraph_edge::resolve_speculation, 37527 cgraph_edge::redirect_call_stmt_to_callee): Fix update of 37528 call_stmt_site_hash. 37529 375302020-01-21 Martin Liska <mliska@suse.cz> 37531 37532 * config/rs6000/rs6000.c (common_mode_defined): Remove 37533 unused variable. 37534 375352020-01-21 Richard Biener <rguenther@suse.de> 37536 37537 PR tree-optimization/92328 37538 * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve 37539 type when value-numbering same-sized store by inserting a 37540 VIEW_CONVERT_EXPR. 37541 (eliminate_dom_walker::eliminate_stmt): When eliminating 37542 a redundant store handle bit-reinterpretation of the same value. 37543 375442020-01-21 Andrew Pinski <apinski@marvel.com> 37545 37546 PR tree-opt/93321 37547 * tree-into-ssa.c (prepare_block_for_update_1): Split out 37548 from ... 37549 (prepare_block_for_update): This. Use a worklist instead of 37550 recursing. 37551 375522020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37553 37554 * config/arm/arm.c (clear_operation_p): 37555 Initialise last_regno, skip first iteration 37556 based on the first_set value and use ints instead 37557 of the unnecessary HOST_WIDE_INTs. 37558 375592020-01-21 Jakub Jelinek <jakub@redhat.com> 37560 37561 PR target/93073 37562 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for 37563 compare_mode other than SFmode or DFmode. 37564 375652020-01-21 Kito Cheng <kito.cheng@sifive.com> 37566 37567 PR target/93304 37568 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New. 37569 * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New. 37570 * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined. 37571 375722020-01-20 Wilco Dijkstra <wdijkstr@arm.com> 37573 37574 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4. 37575 375762020-01-20 Andrew Pinski <apinski@marvell.com> 37577 37578 PR middle-end/93242 37579 * targhooks.c (default_print_patchable_function_entry): Use 37580 output_asm_insn to emit the nop instruction. 37581 375822020-01-20 Fangrui Song <maskray@google.com> 37583 37584 PR middle-end/93194 37585 * targhooks.c (default_print_patchable_function_entry): Align to 37586 POINTER_SIZE. 37587 375882020-01-20 H.J. Lu <hongjiu.lu@intel.com> 37589 37590 PR target/93319 37591 * config/i386/i386.c (legitimize_tls_address): Pass Pmode to 37592 gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode. 37593 * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ... 37594 (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P. 37595 (*tls_dynamic_gnu2_lea_64): Renamed to ... 37596 (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P. 37597 Remove the {q} suffix from lea. 37598 (*tls_dynamic_gnu2_call_64): Renamed to ... 37599 (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P. 37600 (*tls_dynamic_gnu2_combine_64): Renamed to ... 37601 (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P. 37602 Pass Pmode to gen_tls_dynamic_gnu2_64. 37603 376042020-01-20 Wilco Dijkstra <wdijkstr@arm.com> 37605 37606 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1. 37607 376082020-01-20 Richard Sandiford <richard.sandiford@arm.com> 37609 37610 * config/aarch64/aarch64-sve-builtins-base.cc 37611 (svld1ro_impl::memory_vector_mode): Remove parameter name. 37612 376132020-01-20 Richard Biener <rguenther@suse.de> 37614 37615 PR debug/92763 37616 * dwarf2out.c (prune_unused_types): Unconditionally mark 37617 called function DIEs. 37618 376192020-01-20 Martin Liska <mliska@suse.cz> 37620 37621 PR tree-optimization/93199 37622 * tree-eh.c (struct leh_state): Add 37623 new field outer_non_cleanup. 37624 (cleanup_is_dead_in): Pass leh_state instead 37625 of eh_region. Add a checking that state->outer_non_cleanup 37626 points to outer non-clean up region. 37627 (lower_try_finally): Record outer_non_cleanup 37628 for this_state. 37629 (lower_catch): Likewise. 37630 (lower_eh_filter): Likewise. 37631 (lower_eh_must_not_throw): Likewise. 37632 (lower_cleanup): Likewise. 37633 376342020-01-20 Richard Biener <rguenther@suse.de> 37635 37636 PR tree-optimization/93094 37637 * tree-vectorizer.h (vect_loop_versioning): Adjust. 37638 (vect_transform_loop): Likewise. 37639 * tree-vectorizer.c (try_vectorize_loop_1): Pass down 37640 loop_vectorized_call to vect_transform_loop. 37641 * tree-vect-loop.c (vect_transform_loop): Pass down 37642 loop_vectorized_call to vect_loop_versioning. 37643 * tree-vect-loop-manip.c (vect_loop_versioning): Use 37644 the earlier discovered loop_vectorized_call. 37645 376462020-01-19 Eric S. Raymond <esr@thyrsus.com> 37647 37648 * doc/contribute.texi: Update for SVN -> Git transition. 37649 * doc/install.texi: Likewise. 37650 376512020-01-18 Jan Hubicka <hubicka@ucw.cz> 37652 37653 PR lto/93318 37654 * cgraph.c (cgraph_edge::make_speculative): Increase number of 37655 speculative targets. 37656 (verify_speculative_call): New function 37657 (cgraph_node::verify_node): Use it. 37658 * ipa-profile.c (ipa_profile): Fix formating; do not set number of 37659 speculations. 37660 376612020-01-18 Jan Hubicka <hubicka@ucw.cz> 37662 37663 PR lto/93318 37664 * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting. 37665 (cgraph_edge::make_direct): Remove all indirect targets. 37666 (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct.. 37667 (cgraph_node::verify_node): Verify that only one call_stmt or 37668 lto_stmt_uid is set. 37669 * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or 37670 lto_stmt_uid. 37671 * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt. 37672 (lto_output_ref): Simplify streaming of stmt. 37673 * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid. 37674 376752020-01-18 Tamar Christina <tamar.christina@arm.com> 37676 37677 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode): 37678 Mark parameter unused. 37679 376802020-01-18 Hans-Peter Nilsson <hp@axis.com> 37681 37682 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux* 37683 376842019-01-18 Gerald Pfeifer <gerald@pfeifer.com> 37685 37686 * varpool.c (ctor_useable_for_folding_p): Fix grammar. 37687 376882020-01-18 Iain Sandoe <iain@sandoe.co.uk> 37689 37690 * Makefile.in: Add coroutine-passes.o. 37691 * builtin-types.def (BT_CONST_SIZE): New. 37692 (BT_FN_BOOL_PTR): New. 37693 (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New. 37694 * builtins.def (DEF_COROUTINE_BUILTIN): New. 37695 * coroutine-builtins.def: New file. 37696 * coroutine-passes.cc: New file. 37697 * function.h (struct GTY function): Add a bit to indicate that the 37698 function is a coroutine component. 37699 * internal-fn.c (expand_CO_FRAME): New. 37700 (expand_CO_YIELD): New. 37701 (expand_CO_SUSPN): New. 37702 (expand_CO_ACTOR): New. 37703 * internal-fn.def (CO_ACTOR): New. 37704 (CO_YIELD): New. 37705 (CO_SUSPN): New. 37706 (CO_FRAME): New. 37707 * passes.def: Add pass_coroutine_lower_builtins, 37708 pass_coroutine_early_expand_ifns. 37709 * tree-pass.h (make_pass_coroutine_lower_builtins): New. 37710 (make_pass_coroutine_early_expand_ifns): New. 37711 * doc/invoke.texi: Document the fcoroutines command line 37712 switch. 37713 377142020-01-18 Jakub Jelinek <jakub@redhat.com> 37715 37716 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable. 37717 37718 PR target/93312 37719 * config/arm/arm.c (clear_operation_p): Don't use REGNO until 37720 after checking the argument is a REG. Don't use REGNO (reg) 37721 again to set last_regno, reuse regno variable instead. 37722 377232020-01-17 David Malcolm <dmalcolm@redhat.com> 37724 37725 * doc/analyzer.texi (Limitations): Add note about NaN. 37726 377272020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37728 Sudakshina Das <sudi.das@arm.com> 37729 37730 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg 37731 and valid immediate. 37732 (ashrdi3): Generate thumb2_asrl for both reg and valid immediate. 37733 (lshrdi3): Generate thumb2_lsrl for valid immediates. 37734 * config/arm/constraints.md (Pg): New. 37735 * config/arm/predicates.md (long_shift_imm): New. 37736 (arm_reg_or_long_shift_imm): Likewise. 37737 * config/arm/thumb2.md (thumb2_asrl): New immediate alternative. 37738 (thumb2_lsll): Likewise. 37739 (thumb2_lsrl): New. 37740 377412020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37742 Sudakshina Das <sudi.das@arm.com> 37743 37744 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE. 37745 (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE. 37746 * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd 37747 register pairs for doubleword quantities for ARMv8.1M-Mainline. 37748 * config/arm/thumb2.md (thumb2_asrl): New. 37749 (thumb2_lsll): Likewise. 37750 377512020-01-17 Jakub Jelinek <jakub@redhat.com> 37752 37753 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove 37754 unused variable. 37755 377562020-01-17 Alexander Monakov <amonakov@ispras.ru> 37757 37758 * gdbinit.in (help-gcc-hooks): New command. 37759 (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc, 37760 pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update 37761 documentation. 37762 377632020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> 37764 37765 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the 37766 correct target macro. 37767 377682020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> 37769 37770 * config/aarch64/aarch64-protos.h 37771 (aarch64_sve_ld1ro_operand_p): New. 37772 * config/aarch64/aarch64-sve-builtins-base.cc 37773 (class load_replicate): New. 37774 (class svld1ro_impl): New. 37775 (class svld1rq_impl): Change to inherit from load_replicate. 37776 (svld1ro): New sve intrinsic function base. 37777 * config/aarch64/aarch64-sve-builtins-base.def (svld1ro): 37778 New DEF_SVE_FUNCTION. 37779 * config/aarch64/aarch64-sve-builtins-base.h 37780 (svld1ro): New decl. 37781 * config/aarch64/aarch64-sve-builtins.cc 37782 (function_expander::add_mem_operand): Modify assert to allow 37783 OImode. 37784 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New 37785 pattern. 37786 * config/aarch64/aarch64.c 37787 (aarch64_sve_ld1rq_operand_p): Implement in terms of ... 37788 (aarch64_sve_ld1rq_ld1ro_operand_p): This. 37789 (aarch64_sve_ld1ro_operand_p): New. 37790 * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec. 37791 * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New. 37792 * config/aarch64/predicates.md 37793 (aarch64_sve_ld1ro_operand_{b,h,w,d}): New. 37794 377952020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> 37796 37797 * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64): 37798 Introduce this ACLE specified predefined macro. 37799 * config/aarch64/aarch64-option-extensions.def (f64mm): New. 37800 (fp): Disabling this disables f64mm. 37801 (simd): Disabling this disables f64mm. 37802 (fp16): Disabling this disables f64mm. 37803 (sve): Disabling this disables f64mm. 37804 * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New. 37805 (AARCH64_ISA_F64MM): New. 37806 (TARGET_F64MM): New. 37807 * doc/invoke.texi (f64mm): Document new option. 37808 378092020-01-17 Wilco Dijkstra <wdijkstr@arm.com> 37810 37811 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion. 37812 (neoversen1_tunings): Likewise. 37813 378142020-01-17 Wilco Dijkstra <wdijkstr@arm.com> 37815 37816 PR target/92692 37817 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap) 37818 Add assert to ensure prolog has been emitted. 37819 (aarch64_split_atomic_op): Likewise. 37820 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>) 37821 Use epilogue_completed rather than reload_completed. 37822 (aarch64_atomic_exchange<mode>): Likewise. 37823 (aarch64_atomic_<atomic_optab><mode>): Likewise. 37824 (atomic_nand<mode>): Likewise. 37825 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise. 37826 (atomic_fetch_nand<mode>): Likewise. 37827 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise. 37828 (atomic_nand_fetch<mode>): Likewise. 37829 378302020-01-17 Richard Sandiford <richard.sandiford@arm.com> 37831 37832 PR target/93133 37833 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false 37834 for FP modes. 37835 (REVERSE_CONDITION): Delete. 37836 * config/aarch64/iterators.md (CC_ONLY): New mode iterator. 37837 (CCFP_CCFPE): Likewise. 37838 (e): New mode attribute. 37839 * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to... 37840 (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC. 37841 (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into... 37842 (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern. 37843 (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern. 37844 (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise. 37845 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update 37846 name of generator from gen_ccmpdi to gen_ccmpccdi. 37847 (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse 37848 the previous comparison but aren't able to, use the new ccmp_rev 37849 patterns instead. 37850 378512020-01-17 Richard Sandiford <richard.sandiford@arm.com> 37852 37853 * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather 37854 than testing directly for INTEGER_CST. 37855 (gimplify_target_expr, gimplify_omp_depend): Likewise. 37856 378572020-01-17 Jakub Jelinek <jakub@redhat.com> 37858 37859 PR tree-optimization/93292 37860 * tree-vect-stmts.c (vectorizable_comparison): Punt also if 37861 get_vectype_for_scalar_type returns NULL. 37862 378632020-01-16 Jan Hubicka <hubicka@ucw.cz> 37864 37865 * params.opt (-param=max-predicted-iterations): Increase range from 0. 37866 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations. 37867 378682020-01-16 Jan Hubicka <hubicka@ucw.cz> 37869 37870 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of 37871 dump. 37872 * params.opt: (max-predicted-iterations): Set bounds. 37873 * predict.c (real_almost_one, real_br_prob_base, 37874 real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove. 37875 (propagate_freq): Add max_cyclic_prob parameter; cap cyclic 37876 probabilities; do not truncate to reg_br_prob_bases. 37877 (estimate_loops_at_level): Pass max_cyclic_prob. 37878 (estimate_loops): Compute max_cyclic_prob. 37879 (estimate_bb_frequencies): Do not initialize real_*; update calculation 37880 of back edge prob. 37881 * profile-count.c (profile_probability::to_sreal): New. 37882 * profile-count.h (class sreal): Move up in file. 37883 (profile_probability::to_sreal): Declare. 37884 378852020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> 37886 37887 * config/arm/arm.c 37888 (arm_invalid_conversion): New function for target hook. 37889 (arm_invalid_unary_op): New function for target hook. 37890 (arm_invalid_binary_op): New function for target hook. 37891 378922020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> 37893 37894 * config.gcc: Add arm_bf16.h. 37895 * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment. 37896 (arm_simd_builtin_std_type): Add BFmode. 37897 (arm_init_simd_builtin_types): Define element types for vector types. 37898 (arm_init_bf16_types): New function. 37899 (arm_init_builtins): Add arm_init_bf16_types function call. 37900 * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes. 37901 * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF. 37902 * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode. 37903 (arm_hard_regno_mode_ok): Add BFmode and tidy up statements. 37904 (arm_vector_mode_supported_p): Add V4BF, V8BF. 37905 (arm_mangle_type): Add __bf16. 37906 * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE, 37907 VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node, 37908 arm_bf16_ptr_type_node. 37909 * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and 37910 define_split between ARM registers. 37911 * config/arm/arm_bf16.h: New file. 37912 * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types. 37913 * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New. 37914 (VQXMOV): Add V8BF. 37915 * config/arm/neon.md: Add BF vector types to movhf NEON move patterns. 37916 * config/arm/vfp.md: Add BFmode to movhf patterns. 37917 379182020-01-16 Mihail Ionescu <mihail.ionescu@arm.com> 37919 Andre Vieira <andre.simoesdiasvieira@arm.com> 37920 37921 * config/arm/arm-cpus.in (mve, mve_float): New features. 37922 (dsp, mve, mve.fp): New options. 37923 * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define. 37924 * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M. 37925 * doc/invoke.texi: Document the armv8.1-m mve and dps options. 37926 379272020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37928 Thomas Preud'homme <thomas.preudhomme@arm.com> 37929 37930 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to 37931 Armv8-M Mainline. 37932 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove 37933 error for using -mcmse when targeting Armv8.1-M Mainline. 37934 379352020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37936 Thomas Preud'homme <thomas.preudhomme@arm.com> 37937 37938 * config/arm/arm.md (nonsecure_call_internal): Do not force memory 37939 address in r4 when targeting Armv8.1-M Mainline. 37940 (nonsecure_call_value_internal): Likewise. 37941 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address 37942 a register match_operand again. Emit BLXNS when targeting 37943 Armv8.1-M Mainline. 37944 (nonsecure_call_value_reg_thumb2): Likewise. 37945 379462020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37947 Thomas Preud'homme <thomas.preudhomme@arm.com> 37948 37949 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early. 37950 (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear 37951 variable as true when floating-point ABI is not hard. Replace 37952 check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear. 37953 Generate VLSTM and VLLDM instruction respectively before and 37954 after a function call to cmse_nonsecure_call function. 37955 * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec. 37956 (VUNSPEC_VLLDM): Likewise. 37957 * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn. 37958 (lazy_load_multiple_insn): Likewise. 37959 379602020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37961 Thomas Preud'homme <thomas.preudhomme@arm.com> 37962 37963 * config/arm/arm.c (vfp_emit_fstmd): Declare early. 37964 (arm_emit_vfp_multi_reg_pop): Likewise. 37965 (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP 37966 registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and 37967 restore callee-saved VFP registers. 37968 379692020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37970 Thomas Preud'homme <thomas.preudhomme@arm.com> 37971 37972 * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early. 37973 (cmse_nonsecure_call_clear_caller_saved): Rename into ... 37974 (cmse_nonsecure_call_inline_register_clear): This. Save and clear 37975 callee-saved GPRs as well as clear ip register before doing a nonsecure 37976 call then restore callee-saved GPRs after it when targeting 37977 Armv8.1-M Mainline. 37978 (arm_reorg): Adapt to function rename. 37979 379802020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37981 Thomas Preud'homme <thomas.preudhomme@arm.com> 37982 37983 * config/arm/arm-protos.h (clear_operation_p): Adapt prototype. 37984 * config/arm/arm.c (clear_operation_p): Extend to be able to check a 37985 clear_vfp_multiple pattern based on a new vfp parameter. 37986 (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when 37987 targeting Armv8.1-M Mainline. 37988 (cmse_nonsecure_entry_clear_before_return): Clear VFP registers 37989 unconditionally when targeting Armv8.1-M Mainline architecture. Check 37990 whether VFP registers are available before looking call_used_regs for a 37991 VFP register. 37992 * config/arm/predicates.md (clear_multiple_operation): Adapt to change 37993 of prototype of clear_operation_p. 37994 (clear_vfp_multiple_operation): New predicate. 37995 * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec. 37996 * config/arm/vfp.md (clear_vfp_multiple): New define_insn. 37997 379982020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 37999 Thomas Preud'homme <thomas.preudhomme@arm.com> 38000 38001 * config/arm/arm-protos.h (clear_operation_p): Declare. 38002 * config/arm/arm.c (clear_operation_p): New function. 38003 (cmse_clear_registers): Generate clear_multiple instruction pattern if 38004 targeting Armv8.1-M Mainline or successor. 38005 (output_return_instruction): Only output APSR register clearing if 38006 Armv8.1-M Mainline instructions not available. 38007 (thumb_exit): Likewise. 38008 * config/arm/predicates.md (clear_multiple_operation): New predicate. 38009 * config/arm/thumb2.md (clear_apsr): New define_insn. 38010 (clear_multiple): Likewise. 38011 * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec. 38012 380132020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 38014 Thomas Preud'homme <thomas.preudhomme@arm.com> 38015 38016 * config/arm/arm.c (fp_sysreg_names): Declare and define. 38017 (use_return_insn): Also return false for Armv8.1-M Mainline. 38018 (output_return_instruction): Skip FPSCR clearing if Armv8.1-M 38019 Mainline instructions are available. 38020 (arm_compute_frame_layout): Allocate space in frame for FPCXTNS 38021 when targeting Armv8.1-M Mainline Security Extensions. 38022 (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M 38023 Mainline entry function. 38024 (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if 38025 targeting Armv8.1-M Mainline or successor. 38026 (arm_expand_epilogue): Fix indentation of caller-saved register 38027 clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline 38028 entry function. 38029 * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro. 38030 (FP_SYSREGS): Likewise. 38031 (enum vfp_sysregs_encoding): Define enum. 38032 (fp_sysreg_names): Declare. 38033 * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec. 38034 * config/arm/vfp.md (push_fpsysreg_insn): New define_insn. 38035 (pop_fpsysreg_insn): Likewise. 38036 380372020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> 38038 Thomas Preud'homme <thomas.preudhomme@arm.com> 38039 38040 * config/arm/arm-cpus.in (armv8_1m_main): New feature. 38041 (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k, 38042 ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve, 38043 ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a, 38044 ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent. 38045 (ARMv8_1m_main): New feature group. 38046 (armv8.1-m.main): New architecture. 38047 * config/arm/arm-tables.opt: Regenerate. 38048 * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize. 38049 (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main. 38050 (arm_options_perform_arch_sanity_checks): Error out when targeting 38051 Armv8.1-M Mainline Security Extensions. 38052 * config/arm/arm.h (arm_arch8_1m_main): Declare. 38053 380542020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> 38055 38056 * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot, 38057 aarch64_bfdot_lane, aarch64_bfdot_laneq): New. 38058 * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane, 38059 aarch64_bfdot_laneq): New. 38060 * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32, 38061 vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32, 38062 vbfdotq_laneq_f32): New. 38063 * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype, 38064 VBFMLA_W, VBF): New. 38065 (isquadop): Add V4BF, V8BF. 38066 380672020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> 38068 38069 * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers): 38070 New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS, 38071 TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP. 38072 (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX. 38073 (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index. 38074 * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane, 38075 usdot_laneq, sudot_lane,sudot_laneq): New. 38076 * config/aarch64/aarch64-simd.md (aarch64_usdot): New. 38077 (aarch64_<sur>dot_lane): New. 38078 * config/aarch64/arm_neon.h (vusdot_s32): New. 38079 (vusdotq_s32): New. 38080 (vusdot_lane_s32): New. 38081 (vsudot_lane_s32): New. 38082 * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator. 38083 (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs. 38084 380852020-01-16 Martin Liska <mliska@suse.cz> 38086 38087 * value-prof.c (dump_histogram_value): Fix 38088 obvious spacing issue. 38089 380902020-01-16 Andrew Pinski <apinski@marvell.com> 38091 38092 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for 38093 !storage_order_barrier_p. 38094 380952020-01-16 Andrew Pinski <apinski@marvell.com> 38096 38097 * sched-int.h (_dep): Add unused bit-field field for the padding. 38098 * sched-deps.c (init_dep_1): Init unused field. 38099 381002020-01-16 Andrew Pinski <apinski@marvell.com> 38101 38102 * optabs.h (create_expand_operand): Initialize target field also. 38103 381042020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 38105 38106 PR tree-optimization/92429 38107 * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter. 38108 * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to 38109 control folding. 38110 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing 38111 tree. 38112 381132020-01-16 Richard Sandiford <richard.sandiford@arm.com> 38114 38115 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply 38116 aarch64_sve_int_mode to each mode. 38117 381182020-01-15 David Malcolm <dmalcolm@redhat.com> 38119 38120 * doc/analyzer.texi (Overview): Add note about 38121 -fdump-ipa-analyzer. 38122 381232020-01-15 Wilco Dijkstra <wdijkstr@arm.com> 38124 38125 PR tree-optimization/93231 38126 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check 38127 input_type is unsigned. Use tree_to_shwi for shift constant. 38128 Check CST_STRING element size is CHAR_TYPE_SIZE bits. 38129 (simplify_count_trailing_zeroes): Add test to handle known non-zero 38130 inputs more efficiently. 38131 381322020-01-15 Uroš Bizjak <ubizjak@gmail.com> 38133 38134 * config/i386/i386.md (*movsf_internal): Do not require 38135 SSE2 ISA for alternatives 14 and 15. 38136 381372020-01-15 Richard Biener <rguenther@suse.de> 38138 38139 PR middle-end/93273 38140 * tree-eh.c (sink_clobbers): If we already visited the destination 38141 block do not defer insertion. 38142 (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for 38143 the purpose of defered insertion. 38144 381452020-01-15 Jakub Jelinek <jakub@redhat.com> 38146 38147 * BASE-VER: Bump to 10.0.1. 38148 381492020-01-15 Richard Sandiford <richard.sandiford@arm.com> 38150 38151 PR tree-optimization/93247 38152 * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access 38153 type of the stmt that we're going to vectorize. 38154 381552020-01-15 Richard Sandiford <richard.sandiford@arm.com> 38156 38157 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a 38158 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent 38159 type from the lhs. 38160 381612020-01-15 Martin Liska <mliska@suse.cz> 38162 38163 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow 38164 2 calls of streamer_read_hwi in a function call. 38165 381662020-01-15 Richard Biener <rguenther@suse.de> 38167 38168 * alias.c (record_alias_subset): Avoid redundant work when 38169 subset is already recorded. 38170 381712020-01-14 David Malcolm <dmalcolm@redhat.com> 38172 38173 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of 38174 the analyzer options provide CWE identifiers. 38175 381762020-01-14 David Malcolm <dmalcolm@redhat.com> 38177 38178 * tree-diagnostic-path.cc (path_summary::event_range::print): 38179 When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers 38180 using get_pure_location. 38181 381822020-01-15 Jakub Jelinek <jakub@redhat.com> 38183 38184 PR tree-optimization/93262 38185 * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins, 38186 perform head trimming only if the last argument is constant, 38187 either all ones, or larger or equal to head trim, in the latter 38188 case decrease the last argument by head_trim. 38189 38190 PR tree-optimization/93249 38191 * tree-ssa-dse.c: Include builtins.h and gimple-fold.h. 38192 (maybe_trim_memstar_call): Move head_trim and tail_trim vars to 38193 function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't 38194 perform head trim unless we can prove there are no '\0' chars 38195 from the source among the first head_trim chars. 38196 381972020-01-14 David Malcolm <dmalcolm@redhat.com> 38198 38199 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o. 38200 382012020-01-15 Jakub Jelinek <jakub@redhat.com> 38202 38203 PR target/93009 38204 * config/i386/sse.md 38205 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1, 38206 *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1, 38207 *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1, 38208 *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use 38209 just a single alternative instead of two, make operands 1 and 2 38210 commutative. 38211 382122020-01-14 Jan Hubicka <hubicka@ucw.cz> 38213 38214 PR lto/91576 38215 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and 38216 TYPE_MODE. 38217 382182020-01-14 David Malcolm <dmalcolm@redhat.com> 38219 38220 * Makefile.in (lang_opt_files): Add analyzer.opt. 38221 (ANALYZER_OBJS): New. 38222 (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o, 38223 tristate.o and ANALYZER_OBJS. 38224 (TEXI_GCCINT_FILES): Add analyzer.texi. 38225 * common.opt (-fanalyzer): New driver option. 38226 * config.in: Regenerate. 38227 * configure: Regenerate. 38228 * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option. 38229 (gccdepdir): Also create depdir for "analyzer" subdir. 38230 * digraph.cc: New file. 38231 * digraph.h: New file. 38232 * doc/analyzer.texi: New file. 38233 * doc/gccint.texi ("Static Analyzer") New menu item. 38234 (analyzer.texi): Include it. 38235 * doc/invoke.texi ("Static Analyzer Options"): New list and new section. 38236 ("Warning Options"): Add static analysis warnings to the list. 38237 (-Wno-analyzer-double-fclose): New option. 38238 (-Wno-analyzer-double-free): New option. 38239 (-Wno-analyzer-exposure-through-output-file): New option. 38240 (-Wno-analyzer-file-leak): New option. 38241 (-Wno-analyzer-free-of-non-heap): New option. 38242 (-Wno-analyzer-malloc-leak): New option. 38243 (-Wno-analyzer-possible-null-argument): New option. 38244 (-Wno-analyzer-possible-null-dereference): New option. 38245 (-Wno-analyzer-null-argument): New option. 38246 (-Wno-analyzer-null-dereference): New option. 38247 (-Wno-analyzer-stale-setjmp-buffer): New option. 38248 (-Wno-analyzer-tainted-array-index): New option. 38249 (-Wno-analyzer-use-after-free): New option. 38250 (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option. 38251 (-Wno-analyzer-use-of-uninitialized-value): New option. 38252 (-Wanalyzer-too-complex): New option. 38253 (-fanalyzer-call-summaries): New warning. 38254 (-fanalyzer-checker=): New warning. 38255 (-fanalyzer-fine-grained): New warning. 38256 (-fno-analyzer-state-merge): New warning. 38257 (-fno-analyzer-state-purge): New warning. 38258 (-fanalyzer-transitivity): New warning. 38259 (-fanalyzer-verbose-edges): New warning. 38260 (-fanalyzer-verbose-state-changes): New warning. 38261 (-fanalyzer-verbosity=): New warning. 38262 (-fdump-analyzer): New warning. 38263 (-fdump-analyzer-callgraph): New warning. 38264 (-fdump-analyzer-exploded-graph): New warning. 38265 (-fdump-analyzer-exploded-nodes): New warning. 38266 (-fdump-analyzer-exploded-nodes-2): New warning. 38267 (-fdump-analyzer-exploded-nodes-3): New warning. 38268 (-fdump-analyzer-supergraph): New warning. 38269 * doc/sourcebuild.texi (dg-require-dot): New. 38270 (dg-check-dot): New. 38271 * gdbinit.in (break-on-saved-diagnostic): New command. 38272 * graphviz.cc: New file. 38273 * graphviz.h: New file. 38274 * ordered-hash-map-tests.cc: New file. 38275 * ordered-hash-map.h: New file. 38276 * passes.def (pass_analyzer): Add before 38277 pass_ipa_whole_program_visibility. 38278 * selftest-run-tests.c (selftest::run_tests): Call 38279 selftest::ordered_hash_map_tests_cc_tests. 38280 * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New 38281 decl. 38282 * shortest-paths.h: New file. 38283 * timevar.def (TV_ANALYZER): New timevar. 38284 (TV_ANALYZER_SUPERGRAPH): Likewise. 38285 (TV_ANALYZER_STATE_PURGE): Likewise. 38286 (TV_ANALYZER_PLAN): Likewise. 38287 (TV_ANALYZER_SCC): Likewise. 38288 (TV_ANALYZER_WORKLIST): Likewise. 38289 (TV_ANALYZER_DUMP): Likewise. 38290 (TV_ANALYZER_DIAGNOSTICS): Likewise. 38291 (TV_ANALYZER_SHORTEST_PATHS): Likewise. 38292 * tree-pass.h (make_pass_analyzer): New decl. 38293 * tristate.cc: New file. 38294 * tristate.h: New file. 38295 382962020-01-14 Uroš Bizjak <ubizjak@gmail.com> 38297 38298 PR target/93254 38299 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for 38300 alternatives 9 and 10. 38301 383022020-01-14 David Malcolm <dmalcolm@redhat.com> 38303 38304 * attribs.c (excl_hash_traits::empty_zero_p): New static constant. 38305 * gcov.c (function_start_pair_hash::empty_zero_p): Likewise. 38306 * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise. 38307 * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest. 38308 (selftest::hash_map_tests_c_tests): Call it. 38309 * hash-map-traits.h (simple_hashmap_traits::empty_zero_p): 38310 New static constant, using the value of = H::empty_zero_p. 38311 (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value 38312 from default_hash_traits <Value>. 38313 * hash-map.h (hash_map::empty_zero_p): Likewise, using the value 38314 from Traits. 38315 * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise. 38316 * hash-table.h (hash_table::alloc_entries): Guard the loop of 38317 calls to mark_empty with !Descriptor::empty_zero_p. 38318 (hash_table::empty_slow): Conditionalize the memset call with a 38319 check that Descriptor::empty_zero_p; otherwise, loop through the 38320 entries calling mark_empty on them. 38321 * hash-traits.h (int_hash::empty_zero_p): New static constant. 38322 (pointer_hash::empty_zero_p): Likewise. 38323 (pair_hash::empty_zero_p): Likewise. 38324 * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p): 38325 Likewise. 38326 * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise. 38327 (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise. 38328 * profile.c (location_triplet_hash::empty_zero_p): Likewise. 38329 * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise. 38330 (sanopt_tree_couple_hash::empty_zero_p): Likewise. 38331 * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise. 38332 * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise. 38333 * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise. 38334 * tree-vectorizer.h 38335 (default_hash_traits<scalar_cond_masked_key>::empty_zero_p): 38336 Likewise. 38337 383382020-01-14 Kewen Lin <linkw@gcc.gnu.org> 38339 38340 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return, 38341 fix typo on return value. 38342 383432020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com> 38344 38345 PR ipa/69678 38346 * cgraph.c (symbol_table::create_edge): Init speculative_id and 38347 target_prob. 38348 (cgraph_edge::make_speculative): Add param for setting speculative_id 38349 and target_prob. 38350 (cgraph_edge::speculative_call_info): Update comments and find reference 38351 by speculative_id for multiple indirect targets. 38352 (cgraph_edge::resolve_speculation): Decrease the speculations 38353 for indirect edge, drop it's speculative if not direct target 38354 left. Update comments. 38355 (cgraph_edge::redirect_call_stmt_to_callee): Likewise. 38356 (cgraph_node::dump): Print num_speculative_call_targets. 38357 (cgraph_node::verify_node): Don't report error if speculative 38358 edge not include statement. 38359 (cgraph_edge::num_speculative_call_targets_p): New function. 38360 * cgraph.h (int common_target_id): Remove. 38361 (int common_target_probability): Remove. 38362 (num_speculative_call_targets): New variable. 38363 (make_speculative): Add param for setting speculative_id. 38364 (cgraph_edge::num_speculative_call_targets_p): New declare. 38365 (target_prob): New variable. 38366 (speculative_id): New variable. 38367 * ipa-fnsummary.c (analyze_function_body): Create and duplicate 38368 call summaries for multiple speculative call targets. 38369 * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id. 38370 * ipa-profile.c (struct speculative_call_target): New struct. 38371 (class speculative_call_summary): New class. 38372 (class speculative_call_summaries): New class. 38373 (call_sums): New variable. 38374 (ipa_profile_generate_summary): Generate indirect multiple targets summaries. 38375 (ipa_profile_write_edge_summary): New function. 38376 (ipa_profile_write_summary): Stream out indirect multiple targets summaries. 38377 (ipa_profile_dump_all_summaries): New function. 38378 (ipa_profile_read_edge_summary): New function. 38379 (ipa_profile_read_summary_section): New function. 38380 (ipa_profile_read_summary): Stream in indirect multiple targets summaries. 38381 (ipa_profile): Generate num_speculative_call_targets from 38382 profile summaries. 38383 * ipa-ref.h (speculative_id): New variable. 38384 * ipa-utils.c (ipa_merge_profiles): Update with target_prob. 38385 * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and 38386 common_target_probability. Stream out speculative_id and 38387 num_speculative_call_targets. 38388 (input_edge): Likewise. 38389 * predict.c (dump_prediction): Remove edges count assert to be 38390 precise. 38391 * symtab.c (symtab_node::create_reference): Init speculative_id. 38392 (symtab_node::clone_references): Clone speculative_id. 38393 (symtab_node::clone_referring): Clone speculative_id. 38394 (symtab_node::clone_reference): Clone speculative_id. 38395 (symtab_node::clear_stmts_in_references): Clear speculative_id. 38396 * tree-inline.c (copy_bb): Duplicate all the speculative edges 38397 if indirect call contains multiple speculative targets. 38398 * value-prof.h (check_ic_target): Remove. 38399 * value-prof.c (gimple_value_profile_transformations): 38400 Use void function gimple_ic_transform. 38401 * value-prof.c (gimple_ic_transform): Handle topn case. 38402 Fix comment typos. Change it to a void function. 38403 384042020-01-13 Andrew Pinski <apinski@marvell.com> 38405 38406 * config/aarch64/aarch64-cores.def (octeontx2): New define. 38407 (octeontx2t98): New define. 38408 (octeontx2t96): New define. 38409 (octeontx2t93): New define. 38410 (octeontx2f95): New define. 38411 (octeontx2f95n): New define. 38412 (octeontx2f95mm): New define. 38413 * config/aarch64/aarch64-tune.md: Regenerate. 38414 * doc/invoke.texi (-mcpu=): Document the new cpu types. 38415 384162020-01-13 Jason Merrill <jason@redhat.com> 38417 38418 PR c++/33799 - destroy return value if local cleanup throws. 38419 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR. 38420 384212020-01-13 Martin Liska <mliska@suse.cz> 38422 38423 * ipa-cp.c (get_max_overall_size): Use newly 38424 renamed param param_ipa_cp_unit_growth. 38425 * params.opt: Remove legacy param name. 38426 384272020-01-13 Martin Sebor <msebor@redhat.com> 38428 38429 PR tree-optimization/93213 38430 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul 38431 stores to be eliminated. 38432 384332020-01-13 Martin Liska <mliska@suse.cz> 38434 38435 * opts.c (print_help): Do not print CL_PARAM 38436 and CL_WARNING for CL_OPTIMIZATION. 38437 384382020-01-13 Jonathan Wakely <jwakely@redhat.com> 38439 38440 PR driver/92757 38441 * doc/invoke.texi (Warning Options): Add caveat about some warnings 38442 depending on optimization settings. 38443 384442020-01-13 Jakub Jelinek <jakub@redhat.com> 38445 38446 PR tree-optimization/90838 38447 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use 38448 SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro 38449 argument rather than to initialize temporary for targets that 38450 don't use the mode argument at all. Initialize ctzval to avoid 38451 warning at -O0. 38452 384532020-01-10 Thomas Schwinge <thomas@codesourcery.com> 38454 38455 * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition. 38456 * tree-core.h: Document it. 38457 * gimplify.c (gimplify_omp_workshare): Set it. 38458 * omp-low.c (lower_omp_target): Use it. 38459 * tree-pretty-print.c (dump_omp_clause): Print it. 38460 38461 * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>: 38462 Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'. 38463 384642020-01-10 David Malcolm <dmalcolm@redhat.com> 38465 38466 * Makefile.in (OBJS): Add tree-diagnostic-path.o. 38467 * common.opt (fdiagnostics-path-format=): New option. 38468 (diagnostic_path_format): New enum. 38469 (fdiagnostics-show-path-depths): New option. 38470 * coretypes.h (diagnostic_event_id_t): New forward decl. 38471 * diagnostic-color.c (color_dict): Add "path". 38472 * diagnostic-event-id.h: New file. 38473 * diagnostic-format-json.cc (json_from_expanded_location): Make 38474 non-static. 38475 (json_end_diagnostic): Call context->make_json_for_path if it 38476 exists and the diagnostic has a path. 38477 (diagnostic_output_format_init): Clear context->print_path. 38478 * diagnostic-path.h: New file. 38479 * diagnostic-show-locus.c (colorizer::set_range): Special-case 38480 when printing a run of events in a diagnostic_path so that they 38481 all get the same color. 38482 (layout::m_diagnostic_path_p): New field. 38483 (layout::layout): Initialize it. 38484 (layout::print_any_labels): Don't colorize the label text for an 38485 event in a diagnostic_path. 38486 (gcc_rich_location::add_location_if_nearby): Add 38487 "restrict_to_current_line_spans" and "label" params. Pass the 38488 former to layout.maybe_add_location_range; pass the latter 38489 when calling add_range. 38490 * diagnostic.c: Include "diagnostic-path.h". 38491 (diagnostic_initialize): Initialize context->path_format and 38492 context->show_path_depths. 38493 (diagnostic_show_any_path): New function. 38494 (diagnostic_path::interprocedural_p): New function. 38495 (diagnostic_report_diagnostic): Call diagnostic_show_any_path. 38496 (simple_diagnostic_path::num_events): New function. 38497 (simple_diagnostic_path::get_event): New function. 38498 (simple_diagnostic_path::add_event): New function. 38499 (simple_diagnostic_event::simple_diagnostic_event): New ctor. 38500 (simple_diagnostic_event::~simple_diagnostic_event): New dtor. 38501 (debug): New overload taking a diagnostic_path *. 38502 * diagnostic.def (DK_DIAGNOSTIC_PATH): New. 38503 * diagnostic.h (enum diagnostic_path_format): New enum. 38504 (json::value): New forward decl. 38505 (diagnostic_context::path_format): New field. 38506 (diagnostic_context::show_path_depths): New field. 38507 (diagnostic_context::print_path): New callback field. 38508 (diagnostic_context::make_json_for_path): New callback field. 38509 (diagnostic_show_any_path): New decl. 38510 (json_from_expanded_location): New decl. 38511 * doc/invoke.texi (-fdiagnostics-path-format=): New option. 38512 (-fdiagnostics-show-path-depths): New option. 38513 (-fdiagnostics-color): Add "path" to description of default 38514 GCC_COLORS; describe it. 38515 (-fdiagnostics-format=json): Document how diagnostic paths are 38516 represented in the JSON output format. 38517 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): 38518 Add optional params "restrict_to_current_line_spans" and "label". 38519 * opts.c (common_handle_option): Handle 38520 OPT_fdiagnostics_path_format_ and 38521 OPT_fdiagnostics_show_path_depths. 38522 * pretty-print.c: Include "diagnostic-event-id.h". 38523 (pp_format): Implement "%@" format code for printing 38524 diagnostic_event_id_t *. 38525 (selftest::test_pp_format): Add tests for "%@". 38526 * selftest-run-tests.c (selftest::run_tests): Call 38527 selftest::tree_diagnostic_path_cc_tests. 38528 * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl. 38529 * toplev.c (general_init): Initialize global_dc->path_format and 38530 global_dc->show_path_depths. 38531 * tree-diagnostic-path.cc: New file. 38532 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make 38533 non-static. Drop "diagnostic" param in favor of storing the 38534 original value of "where" and re-using it. 38535 (virt_loc_aware_diagnostic_finalizer): Update for dropped param of 38536 maybe_unwind_expanded_macro_loc. 38537 (tree_diagnostics_defaults): Initialize context->print_path and 38538 context->make_json_for_path. 38539 * tree-diagnostic.h (default_tree_diagnostic_path_printer): New 38540 decl. 38541 (default_tree_make_json_for_path): New decl. 38542 (maybe_unwind_expanded_macro_loc): New decl. 38543 385442020-01-10 Jakub Jelinek <jakub@redhat.com> 38545 38546 PR tree-optimization/93210 38547 * fold-const.h (native_encode_initializer, 38548 can_native_interpret_type_p): Declare. 38549 * fold-const.c (native_encode_string): Fix up handling with off != -1, 38550 simplify. 38551 (native_encode_initializer): New function, moved from dwarf2out.c. 38552 Adjust to native_encode_expr compatible arguments, including dry-run 38553 and partial extraction modes. Don't handle STRING_CST. 38554 (can_native_interpret_type_p): No longer static. 38555 * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify 38556 offset / BITS_PER_UNIT fits into int and don't call it if 38557 can_native_interpret_type_p fails. If suboff is NULL and for 38558 CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with 38559 native_encode_initializer. 38560 (fold_const_aggregate_ref_1): Formatting fix. 38561 * dwarf2out.c (native_encode_initializer): Moved to fold-const.c. 38562 (tree_add_const_value_attribute): Adjust caller. 38563 38564 PR tree-optimization/90838 38565 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use 38566 SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of 38567 CTZ_DEFINED_VALUE_AT_ZERO. 38568 385692020-01-10 Vladimir Makarov <vmakarov@redhat.com> 38570 38571 PR inline-asm/93027 38572 * lra-constraints.c (match_reload): Permit input operands have the 38573 same mode as output while other input operands have a different 38574 mode. 38575 385762020-01-10 Wilco Dijkstra <wdijkstr@arm.com> 38577 38578 PR tree-optimization/90838 38579 * tree-ssa-forwprop.c (check_ctz_array): Add new function. 38580 (check_ctz_string): Likewise. 38581 (optimize_count_trailing_zeroes): Likewise. 38582 (simplify_count_trailing_zeroes): Likewise. 38583 (pass_forwprop::execute): Try ctz simplification. 38584 * match.pd: Add matching for ctz idioms. 38585 385862020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com> 38587 38588 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function 38589 for target hook. 38590 (aarch64_invalid_unary_op): New function for target hook. 38591 (aarch64_invalid_binary_op): New function for target hook. 38592 385932020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com> 38594 38595 * config.gcc: Add arm_bf16.h. 38596 * config/aarch64/aarch64-builtins.c 38597 (aarch64_simd_builtin_std_type): Add BFmode. 38598 (aarch64_init_simd_builtin_types): Define element types for vector 38599 types. 38600 (aarch64_init_bf16_types): New function. 38601 (aarch64_general_init_builtins): Add arm_init_bf16_types function call. 38602 * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector 38603 modes. 38604 * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types. 38605 * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move 38606 patterns. 38607 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF. 38608 (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF. 38609 * config/aarch64/aarch64.c 38610 (aarch64_classify_vector_mode): Add support for BF types. 38611 (aarch64_gimplify_va_arg_expr): Add support for BF types. 38612 (aarch64_vq_mode): Add support for BF types. 38613 (aarch64_simd_container_mode): Add support for BF types. 38614 (aarch64_mangle_type): Add support for BF scalar type. 38615 * config/aarch64/aarch64.md: Add BFmode to movhf pattern. 38616 * config/aarch64/arm_bf16.h: New file. 38617 * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types. 38618 * config/aarch64/iterators.md: Add BF types to mode attributes. 38619 (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New. 38620 386212020-01-10 Jason Merrill <jason@redhat.com> 38622 38623 PR c++/93173 - incorrect tree sharing. 38624 * gimplify.c (copy_if_shared): No longer static. 38625 * gimplify.h: Declare it. 38626 386272020-01-10 Richard Sandiford <richard.sandiford@arm.com> 38628 38629 * doc/invoke.texi (-msve-vector-bits=): Document that 38630 -msve-vector-bits=128 now generates VL-specific code for 38631 little-endian targets. 38632 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use 38633 build_vector_type_for_mode to construct the data vector types. 38634 * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate 38635 VL-specific code for -msve-vector-bits=128 on little-endian targets. 38636 (aarch64_simd_container_mode): Always prefer Advanced SIMD modes 38637 for 128-bit vectors. 38638 386392020-01-10 Richard Sandiford <richard.sandiford@arm.com> 38640 38641 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask 38642 invocation. 38643 386442020-01-10 Richard Sandiford <richard.sandiford@arm.com> 38645 38646 * config/aarch64/aarch64-builtins.c 38647 (aarch64_builtin_vectorized_function): Check for specific vector modes, 38648 rather than checking the number of elements and the element mode. 38649 386502020-01-10 Richard Sandiford <richard.sandiford@arm.com> 38651 38652 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use 38653 get_related_vectype_for_scalar_type rather than build_vector_type 38654 to create the index type for a conditional reduction. 38655 386562020-01-10 Richard Sandiford <richard.sandiford@arm.com> 38657 38658 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF 38659 for any type of gather or scatter, including strided accesses. 38660 386612020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com> 38662 38663 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function 38664 comment. 38665 386662020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com> 38667 38668 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use 38669 get_dr_vinfo_offset 38670 * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init 38671 parameter and its use to reset DR_OFFSET's. 38672 (vect_transform_loop): Remove orig_drs_init argument. 38673 * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset 38674 member of dr_vec_info rather than the offset of the associated 38675 data_reference's innermost_loop_behavior. 38676 (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference. 38677 (vect_do_peeling): Remove orig_drs_init parameter and its construction. 38678 * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with 38679 get_dr_vinfo_offset. 38680 (vectorizable_store): Likewise. 38681 (vectorizable_load): Likewise. 38682 386832020-01-10 Richard Biener <rguenther@suse.de> 38684 38685 * gimple-ssa-store-merging 38686 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info. 38687 386882020-01-10 Martin Liska <mliska@suse.cz> 38689 38690 PR ipa/93217 38691 * ipa-inline-analysis.c (offline_size): Make proper parenthesis 38692 encapsulation that was there before r280040. 38693 386942020-01-10 Richard Biener <rguenther@suse.de> 38695 38696 PR middle-end/93199 38697 * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL 38698 sequences to avoid walking them again for secondary opportunities. 38699 (pass_lower_eh_dispatch::execute): Instead actually insert 38700 them here. 38701 387022020-01-10 Richard Biener <rguenther@suse.de> 38703 38704 PR middle-end/93199 38705 * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible. 38706 (cleanup_all_empty_eh): Walk landing pads in reverse order to 38707 avoid quadraticness. 38708 387092020-01-10 Martin Jambor <mjambor@suse.cz> 38710 38711 * params.opt (param_ipa_sra_max_replacements): Mark as Optimization. 38712 * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it 38713 to get param_ipa_sra_max_replacements. 38714 (param_splitting_across_edge): Pass the caller to 38715 pull_accesses_from_callee. 38716 387172020-01-10 Martin Jambor <mjambor@suse.cz> 38718 38719 * params.opt (param_ipcp_unit_growth): Mark as Optimization. 38720 * ipa-cp.c (max_new_size): Removed. 38721 (orig_overall_size): New variable. 38722 (get_max_overall_size): New function. 38723 (estimate_local_effects): Use it. Adjust dump. 38724 (decide_about_value): Likewise. 38725 (ipcp_propagate_stage): Do not calculate max_new_size, just store 38726 orig_overall_size. Adjust dump. 38727 (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size. 38728 387292020-01-10 Martin Jambor <mjambor@suse.cz> 38730 38731 * params.opt (param_ipa_max_agg_items): Mark as Optimization 38732 * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use 38733 instead of param_ipa_max_agg_items. 38734 (merge_aggregate_lattices): Extract param_ipa_max_agg_items from 38735 optimization info for the callee. 38736 387372020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com> 38738 38739 * lto-streamer-in.c (input_function): Remove streamed-in inline debug 38740 markers if debug_inline_points is false. 38741 387422020-01-09 Richard Sandiford <richard.sandiford@arm.com> 38743 38744 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to 38745 extra_objs. 38746 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on 38747 aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and 38748 aarch64-sve-builtins-sve2.h. 38749 (aarch64-sve-builtins-sve2.o): New rule. 38750 * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro. 38751 (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise. 38752 (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise. 38753 (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise. 38754 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle 38755 TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and 38756 TARGET_SVE2_SM4. 38757 * config/aarch64/aarch64-sve.md: Update comments with SVE2 38758 instructions that are handled here. 38759 (@cond_asrd<mode>): Generalize to... 38760 (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this. 38761 (*cond_asrd<mode>_2): Generalize to... 38762 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this. 38763 (*cond_asrd<mode>_z): Generalize to... 38764 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this. 38765 * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec. 38766 (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise. 38767 (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise. 38768 * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New 38769 pattern. 38770 (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>) 38771 (@aarch64_scatter_stnt<mode>): Likewise. 38772 (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>) 38773 (@aarch64_mul_lane_<mode>): Likewise. 38774 (@aarch64_sve_suqadd<mode>_const): Likewise. 38775 (*<sur>h<addsub><mode>): Generalize to... 38776 (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this 38777 new pattern. 38778 (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander. 38779 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern. 38780 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise. 38781 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise. 38782 (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise. 38783 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise. 38784 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise. 38785 (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise. 38786 (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander. 38787 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern. 38788 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise. 38789 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise. 38790 (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise. 38791 (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>) 38792 (@aarch64_sve_add_mul_lane_<mode>): Likewise. 38793 (@aarch64_sve_sub_mul_lane_<mode>): Likewise. 38794 (@aarch64_sve2_xar<mode>): Likewise. 38795 (@aarch64_sve2_bcax<mode>): Likewise. 38796 (*aarch64_sve2_eor3<mode>): Rename to... 38797 (@aarch64_sve2_eor3<mode>): ...this. 38798 (@aarch64_sve2_bsl<mode>): New expander. 38799 (@aarch64_sve2_nbsl<mode>): Likewise. 38800 (@aarch64_sve2_bsl1n<mode>): Likewise. 38801 (@aarch64_sve2_bsl2n<mode>): Likewise. 38802 (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise. 38803 (*aarch64_sve2_sra<mode>): Add MOVPRFX support. 38804 (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern. 38805 (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise. 38806 (@aarch64_sve2_<USMAX:su>aba<mode>): New expander. 38807 (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern. 38808 (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise. 38809 (<su>mull<bt><Vwide>): Generalize to... 38810 (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new 38811 pattern. 38812 (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>) 38813 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>) 38814 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>) 38815 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) 38816 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>) 38817 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) 38818 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>) 38819 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) 38820 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>) 38821 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) 38822 (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns. 38823 (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>) 38824 (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise. 38825 (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise. 38826 (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise. 38827 (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise. 38828 (<SHRNB:r>shrnb<mode>): Generalize to... 38829 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this 38830 new pattern. 38831 (<SHRNT:r>shrnt<mode>): Generalize to... 38832 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this 38833 new pattern. 38834 (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern. 38835 (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise. 38836 (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander. 38837 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern. 38838 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise. 38839 (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise. 38840 (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise. 38841 (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise. 38842 (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise. 38843 (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise. 38844 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise. 38845 (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander. 38846 (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern. 38847 (@aarch64_sve2_cvtnt<mode>): Likewise. 38848 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise. 38849 (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander. 38850 (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern. 38851 (@aarch64_sve2_cvtxnt<mode>): Likewise. 38852 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise. 38853 (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander. 38854 (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern. 38855 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise. 38856 (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander. 38857 (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern. 38858 (@aarch64_sve2_pmul<mode>): Likewise. 38859 (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise. 38860 (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise. 38861 (@aarch64_sve2_tbl2<mode>): Likewise. 38862 (@aarch64_sve2_tbx<mode>): Likewise. 38863 (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise. 38864 (@aarch64_sve2_histcnt<mode>): Likewise. 38865 (@aarch64_sve2_histseg<mode>): Likewise. 38866 (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise. 38867 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise. 38868 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise. 38869 (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise. 38870 (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise. 38871 (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise. 38872 (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise. 38873 (<su>mulh<r>s<mode>3): Update after above pattern name changes. 38874 * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY) 38875 (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI) 38876 (SVE2_PMULL_PAIR_I): New mode iterators. 38877 (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP) 38878 (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT) 38879 (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA) 38880 (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT) 38881 (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT) 38882 (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP) 38883 (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT) 38884 (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP) 38885 (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH) 38886 (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR) 38887 (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT) 38888 (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB) 38889 (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT) 38890 (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP) 38891 (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT) 38892 (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90) 38893 (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB) 38894 (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB) 38895 (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB) 38896 (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB) 38897 (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT) 38898 (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB) 38899 (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT) 38900 (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT) 38901 (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT) 38902 (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT) 38903 (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT) 38904 (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs. 38905 (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT) 38906 (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS) 38907 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move 38908 further down file. 38909 (VNARROW, Ventype): New mode attributes. 38910 (Vewtype): Handle VNx2DI. Fix typo in comment. 38911 (VDOUBLE): New mode attribute. 38912 (sve_lane_con): Handle VNx8HI. 38913 (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2. 38914 (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus. 38915 (sve_int_op, sve_int_op_rev): Handle the above codes. 38916 (sve_pred_int_rhs2_operand): Likewise. 38917 (MULLBT, SHRNB, SHRNT): Delete. 38918 (SVE_INT_SHIFT_IMM): New int iterator. 38919 (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI 38920 and UNSPEC_WHILEHS for TARGET_SVE2. 38921 (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT) 38922 (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG) 38923 (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB) 38924 (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR) 38925 (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators. 38926 (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise. 38927 (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD) 38928 (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise. 38929 (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA) 38930 (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG) 38931 (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise. 38932 (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE) 38933 (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE) 38934 (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise. 38935 (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise. 38936 (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise. 38937 (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise. 38938 (optab): Handle the new unspecs. 38939 (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB 38940 and UNSPEC_RSHRNT. 38941 (lr): Handle the new unspecs. 38942 (bt): Delete. 38943 (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs. 38944 (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op) 38945 (sve_int_qsub_op): New int attributes. 38946 (sve_fp_op, rot): Handle the new unspecs. 38947 * config/aarch64/aarch64-sve-builtins.h 38948 (function_resolver::require_matching_pointer_type): Declare. 38949 (function_resolver::resolve_unary): Add an optional boolean argument. 38950 (function_resolver::finish_opt_n_resolution): Add an optional 38951 type_suffix_index argument. 38952 (gimple_folder::redirect_call): Declare. 38953 (gimple_expander::prepare_gather_address_operands): Add an optional 38954 bool parameter. 38955 * config/aarch64/aarch64-sve-builtins.cc: Include 38956 aarch64-sve-builtins-sve2.h. 38957 (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros. 38958 (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise. 38959 (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise. 38960 (TYPES_hsd_integer): Use TYPES_hsd_signed. 38961 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros. 38962 (TYPES_s_unsigned): Likewise. 38963 (TYPES_s_integer): Use TYPES_s_unsigned. 38964 (TYPES_sd_signed, TYPES_sd_unsigned): New macros. 38965 (TYPES_sd_integer): Use them. 38966 (TYPES_d_unsigned): New macro. 38967 (TYPES_d_integer): Use it. 38968 (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros. 38969 (TYPES_cvt_narrow): Likewise. 38970 (DEF_SVE_TYPES_ARRAY): Include the new types macros above. 38971 (preds_mx): New variable. 38972 (function_builder::add_overloaded_function): Allow the new feature 38973 set to be more restrictive than the original one. 38974 (function_resolver::infer_pointer_type): Remove qualifiers from 38975 the pointer type before printing it. 38976 (function_resolver::require_matching_pointer_type): New function. 38977 (function_resolver::resolve_sv_displacement): Handle functions 38978 that don't support 32-bit vector indices or svint32_t vector offsets. 38979 (function_resolver::finish_opt_n_resolution): Take the inferred type 38980 as a separate argument. 38981 (function_resolver::resolve_unary): Optionally treat all forms in 38982 the same way as normal merging functions. 38983 (gimple_folder::redirect_call): New function. 38984 (function_expander::prepare_gather_address_operands): Add an argument 38985 that says whether scaled forms are available. If they aren't, 38986 handle scaling of vector indices and don't add the extension and 38987 scaling operands. 38988 (function_expander::map_to_unspecs): If aarch64_sve isn't available, 38989 fall back to using cond_* instead. 38990 * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function): 38991 Split out the member variables into... 38992 (rtx_code_function_base): ...this new base class. 38993 (rtx_code_function_rotated): Inherit rtx_code_function_base. 38994 (unspec_based_function): Split out the member variables into... 38995 (unspec_based_function_base): ...this new base class. 38996 (unspec_based_function_rotated): Inherit unspec_based_function_base. 38997 (unspec_based_function_exact_insn): New class. 38998 (unspec_based_add_function, unspec_based_add_lane_function) 38999 (unspec_based_lane_function, unspec_based_pred_function) 39000 (unspec_based_qadd_function, unspec_based_qadd_lane_function) 39001 (unspec_based_qsub_function, unspec_based_qsub_lane_function) 39002 (unspec_based_sub_function, unspec_based_sub_lane_function): New 39003 typedefs. 39004 (unspec_based_fused_function): New class. 39005 (unspec_based_mla_function, unspec_based_mls_function): New typedefs. 39006 (unspec_based_fused_lane_function): New class. 39007 (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New 39008 typedefs. 39009 (CODE_FOR_MODE1): New macro. 39010 (fixed_insn_function): New class. 39011 (while_comparison): Likewise. 39012 * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane) 39013 (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n) 39014 (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr) 39015 (load_ext_gather_index_restricted, load_ext_gather_offset_restricted) 39016 (load_gather_sv_restricted, shift_left_imm_long): Declare. 39017 (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise. 39018 (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise. 39019 (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted) 39020 (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane) 39021 (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate) 39022 (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint) 39023 (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt) 39024 (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise. 39025 * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication): 39026 Also add an initial argument for unary_convert_narrowt, regardless 39027 of the predication type. 39028 (build_32_64): Allow loads and stores to specify MODE_none. 39029 (build_sv_index64, build_sv_uint_offset): New functions. 39030 (long_type_suffix): New function. 39031 (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes. 39032 (binary_imm_long_base, load_gather_sv_base): Likewise. 39033 (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise. 39034 (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise. 39035 (unary_narrowb_base, unary_narrowt_base): Likewise. 39036 (binary_long_lane_def, binary_long_lane): New shape. 39037 (binary_long_opt_n_def, binary_long_opt_n): Likewise. 39038 (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise. 39039 (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise. 39040 (binary_to_uint_def, binary_to_uint): Likewise. 39041 (binary_wide_def, binary_wide): Likewise. 39042 (binary_wide_opt_n_def, binary_wide_opt_n): Likewise. 39043 (compare_def, compare): Likewise. 39044 (compare_ptr_def, compare_ptr): Likewise. 39045 (load_ext_gather_index_restricted_def, 39046 load_ext_gather_index_restricted): Likewise. 39047 (load_ext_gather_offset_restricted_def, 39048 load_ext_gather_offset_restricted): Likewise. 39049 (load_gather_sv_def): Inherit from load_gather_sv_base. 39050 (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape. 39051 (shift_left_imm_def, shift_left_imm): Likewise. 39052 (shift_left_imm_long_def, shift_left_imm_long): Likewise. 39053 (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise. 39054 (store_scatter_index_restricted_def, 39055 store_scatter_index_restricted): Likewise. 39056 (store_scatter_offset_restricted_def, 39057 store_scatter_offset_restricted): Likewise. 39058 (tbl_tuple_def, tbl_tuple): Likewise. 39059 (ternary_long_lane_def, ternary_long_lane): Likewise. 39060 (ternary_long_opt_n_def, ternary_long_opt_n): Likewise. 39061 (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base. 39062 (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape 39063 (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base. 39064 (ternary_qq_rotate_def, ternary_qq_rotate): New shape. 39065 (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise. 39066 (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise. 39067 (ternary_uint_def, ternary_uint): Likewise. 39068 (unary_convert): Fix typo in comment. 39069 (unary_convert_narrowt_def, unary_convert_narrowt): New shape. 39070 (unary_long_def, unary_long): Likewise. 39071 (unary_narrowb_def, unary_narrowb): Likewise. 39072 (unary_narrowt_def, unary_narrowt): Likewise. 39073 (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise. 39074 (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise. 39075 (unary_to_int_def, unary_to_int): Likewise. 39076 * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla) 39077 (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions. 39078 (svasrd_impl): Delete. 39079 (svcadd_impl::expand): Handle integer operations too. 39080 (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the 39081 new functions to derive the unspec numbers. 39082 (svmla_svmls_lane_impl): Replace with... 39083 (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle 39084 integer operations too. 39085 (svwhile_impl): Rename to... 39086 (svwhilelx_impl): ...this and inherit from while_comparison. 39087 (svasrd): Use unspec_based_function. 39088 (svmla_lane): Use svmla_lane_impl. 39089 (svmls_lane): Use svmls_lane_impl. 39090 (svrecpe, svrsqrte): Handle unsigned integer operations too. 39091 (svwhilele, svwhilelt): Use svwhilelx_impl. 39092 * config/aarch64/aarch64-sve-builtins-sve2.h: New file. 39093 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. 39094 * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise. 39095 * config/aarch64/aarch64-sve-builtins.def: Include 39096 aarch64-sve-builtins-sve2.def. 39097 390982020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39099 39100 * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p) 39101 (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument. 39102 * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p) 39103 (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar 39104 immediates as well as vector ones. 39105 * config/aarch64/predicates.md (aarch64_sve_arith_immediate) 39106 (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate) 39107 (aarch64_sve_qsub_immediate): Update calls accordingly. 39108 391092020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39110 39111 * config/aarch64/aarch64-sve2.md: Add banner comments. 39112 (<su>mulh<r>s<mode>3): Move further up file. 39113 (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>) 39114 (*aarch64_sve2_sra<mode>): Move further down file. 39115 * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too. 39116 391172020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39118 39119 * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW 39120 and UNSPEC_WHILEWR. 39121 (while_optab_cmp): Handle them. 39122 * config/aarch64/aarch64-sve.md 39123 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public 39124 and add a "@" marker. 39125 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it 39126 instead of gen_aarch64_sve2_while_ptest. 39127 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete. 39128 391292020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39130 39131 * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to... 39132 (UNSPEC_WHILELE): ...this. 39133 (UNSPEC_WHILE_LO): Rename to... 39134 (UNSPEC_WHILELO): ...this. 39135 (UNSPEC_WHILE_LS): Rename to... 39136 (UNSPEC_WHILELS): ...this. 39137 (UNSPEC_WHILE_LT): Rename to... 39138 (UNSPEC_WHILELT): ...this. 39139 * config/aarch64/iterators.md (SVE_WHILE): Update accordingly. 39140 (cmp_op, while_optab_cmp): Likewise. 39141 * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise. 39142 * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise. 39143 (svwhilelt): Likewise. 39144 391452020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39146 39147 * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete. 39148 (unary_to_uint): Define. 39149 * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def) 39150 (unary_count): Rename to... 39151 (unary_to_uint_def, unary_to_uint): ...this. 39152 * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly. 39153 391542020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39155 39156 * config/aarch64/aarch64-sve-builtins-functions.h 39157 (code_for_mode_function): New class. 39158 (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros. 39159 * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl) 39160 (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete. 39161 (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0. 39162 (svmul_lane, svtmad): Use CODE_FOR_MODE0. 39163 391642020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39165 39166 * config/aarch64/iterators.md (addsub): New code attribute. 39167 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>): 39168 Re-express as... 39169 (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change 39170 in the asm string and attributes. Fix indentation. 39171 * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>): 39172 Re-express as... 39173 (@aarch64_sve_<optab><mode>): ...this. 39174 * config/aarch64/aarch64-sve-builtins.h 39175 (function_expander::expand_signed_unpred_op): Delete. 39176 * config/aarch64/aarch64-sve-builtins.cc 39177 (function_expander::expand_signed_unpred_op): Likewise. 39178 (function_expander::map_to_rtx_codes): If the optab isn't defined, 39179 try using code_for_aarch64_sve instead. 39180 * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete. 39181 (svqsub_impl): Likewise. 39182 (svqadd, svqsub): Use rtx_code_function instead. 39183 391842020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39185 39186 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete. 39187 (HADDSUB, sur, addsub): Remove them. 39188 391892020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39190 39191 * tree-nrv.c (pass_return_slot::execute): Handle all internal 39192 functions the same way, rather than singling out those that 39193 aren't mapped directly to optabs. 39194 391952020-01-09 Richard Sandiford <richard.sandiford@arm.com> 39196 39197 * target.def (compatible_vector_types_p): New target hook. 39198 * hooks.h (hook_bool_const_tree_const_tree_true): Declare. 39199 * hooks.c (hook_bool_const_tree_const_tree_true): New function. 39200 * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook. 39201 * doc/tm.texi: Regenerate. 39202 * gimple-expr.c: Include target.h. 39203 (useless_type_conversion_p): Use targetm.compatible_vector_types_p. 39204 * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New 39205 function. 39206 (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define. 39207 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred): 39208 Use the original predicate if it already has a suitable type. 39209 392102020-01-09 Martin Jambor <mjambor@suse.cz> 39211 39212 * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct, 39213 resolve_speculation and redirect_call_stmt_to_callee static. Change 39214 return type of set_call_stmt to cgraph_edge *. 39215 * auto-profile.c (afdo_indirect_call): Adjust call to 39216 redirect_call_stmt_to_callee. 39217 * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *, 39218 make the this pointer explicit, adjust self-recursive calls and the 39219 call top make_direct. Return the resulting edge. 39220 (cgraph_edge::remove): Make this pointer explicit. 39221 (cgraph_edge::resolve_speculation): Likewise, adjust call to remove. 39222 (cgraph_edge::make_direct): Likewise, adjust call to 39223 resolve_speculation. 39224 (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust 39225 call to set_call_stmt. 39226 (cgraph_update_edges_for_call_stmt_node): Update call to 39227 set_call_stmt and remove. 39228 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones): 39229 Renamed edge to master_edge. Adjusted calls to set_call_stmt. 39230 (cgraph_node::create_edge_including_clones): Moved "first" definition 39231 of edge to the block where it was used. Adjusted calls to 39232 set_call_stmt. 39233 (cgraph_node::remove_symbol_and_inline_clones): Adjust call to 39234 cgraph_edge::remove. 39235 * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to 39236 make_direct and redirect_call_stmt_to_callee. 39237 * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to 39238 resolve_speculation and make_direct. 39239 * ipa-inline-transform.c (inline_transform): Adjust call to 39240 redirect_call_stmt_to_callee. 39241 (check_speculations_1):: Adjust call to resolve_speculation. 39242 * ipa-inline.c (resolve_noninline_speculation): Adjust call to 39243 resolve-speculation. 39244 (inline_small_functions): Adjust call to resolve_speculation. 39245 (ipa_inline): Likewise. 39246 * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to 39247 make_direct. 39248 * ipa-visibility.c (function_and_variable_visibility): Make iteration 39249 safe with regards to edge removal, adjust calls to 39250 redirect_call_stmt_to_callee. 39251 * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct 39252 and redirect_call_stmt_to_callee. 39253 * multiple_target.c (create_dispatcher_calls): Adjust call to 39254 redirect_call_stmt_to_callee 39255 (redirect_to_specific_clone): Likewise. 39256 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph): 39257 Adjust calls to cgraph_edge::remove. 39258 * tree-inline.c (copy_bb): Adjust call to set_call_stmt. 39259 (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee. 39260 (expand_call_inline): Adjust call to cgraph_edge::remove. 39261 392622020-01-09 Martin Liska <mliska@suse.cz> 39263 39264 * params.opt: Set Optimization for 39265 param_max_speculative_devirt_maydefs. 39266 392672020-01-09 Martin Sebor <msebor@redhat.com> 39268 39269 PR middle-end/93200 39270 PR fortran/92956 39271 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type. 39272 392732020-01-09 Martin Liska <mliska@suse.cz> 39274 39275 * auto-profile.c (auto_profile): Use opt_for_fn 39276 for a parameter. 39277 * ipa-cp.c (ipcp_lattice::add_value): Likewise. 39278 (propagate_vals_across_arith_jfunc): Likewise. 39279 (hint_time_bonus): Likewise. 39280 (incorporate_penalties): Likewise. 39281 (good_cloning_opportunity_p): Likewise. 39282 (perform_estimation_of_a_value): Likewise. 39283 (estimate_local_effects): Likewise. 39284 (ipcp_propagate_stage): Likewise. 39285 * ipa-fnsummary.c (decompose_param_expr): Likewise. 39286 (set_switch_stmt_execution_predicate): Likewise. 39287 (analyze_function_body): Likewise. 39288 * ipa-inline-analysis.c (offline_size): Likewise. 39289 * ipa-inline.c (early_inliner): Likewise. 39290 * ipa-prop.c (ipa_analyze_node): Likewise. 39291 (ipcp_transform_function): Likewise. 39292 * ipa-sra.c (process_scan_results): Likewise. 39293 (ipa_sra_summarize_function): Likewise. 39294 * params.opt: Rename ipcp-unit-growth to 39295 ipa-cp-unit-growth. Add Optimization for various 39296 IPA-related parameters. 39297 392982020-01-09 Richard Biener <rguenther@suse.de> 39299 39300 PR middle-end/93054 39301 * gimplify.c (gimplify_expr): Deal with NOP definitions. 39302 393032020-01-09 Richard Biener <rguenther@suse.de> 39304 39305 PR tree-optimization/93040 39306 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit. 39307 393082020-01-09 Georg-Johann Lay <avr@gjlay.de> 39309 39310 * common/config/avr/avr-common.c (avr_option_optimization_table) 39311 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early. 39312 393132020-01-09 Martin Liska <mliska@suse.cz> 39314 39315 * cgraphclones.c (symbol_table::materialize_all_clones): 39316 Use cgraph_node::dump_name. 39317 393182020-01-09 Jakub Jelinek <jakub@redhat.com> 39319 39320 PR inline-asm/93202 39321 * config/riscv/riscv.c (riscv_print_operand_reloc): Use 39322 output_operand_lossage instead of gcc_unreachable. 39323 * doc/md.texi (riscv f constraint): Fix typo. 39324 39325 PR target/93141 39326 * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of 39327 SWI. Use <general_hilo_operand> instead of <general_operand>. Use 39328 CONST_SCALAR_INT_P instead of CONST_INT_P. 39329 (*subv<mode>4_1): Rename to ... 39330 (subv<mode>4_1): ... this. 39331 (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New 39332 define_insn_and_split patterns. 39333 (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn 39334 patterns. 39335 393362020-01-08 David Malcolm <dmalcolm@redhat.com> 39337 39338 * vec.c (class selftest::count_dtor): New class. 39339 (selftest::test_auto_delete_vec): New test. 39340 (selftest::vec_c_tests): Call it. 39341 * vec.h (class auto_delete_vec): New class template. 39342 (auto_delete_vec<T>::~auto_delete_vec): New dtor. 39343 393442020-01-08 David Malcolm <dmalcolm@redhat.com> 39345 39346 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap. 39347 393482020-01-08 Jim Wilson <jimw@sifive.com> 39349 39350 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out 39351 use of TLS_MODEL_LOCAL_EXEC when not pic. 39352 393532020-01-08 David Malcolm <dmalcolm@redhat.com> 39354 39355 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix 39356 memory leak. 39357 393582020-01-08 Jakub Jelinek <jakub@redhat.com> 39359 39360 PR target/93187 39361 * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2, 39362 *stack_protect_set_3 peephole2): Also check that the second 39363 insns source is general_operand. 39364 39365 PR target/93174 39366 * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand 39367 predicate for output operand instead of register_operand. 39368 (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with 39369 memory destination and non-memory operands[2]. 39370 393712020-01-08 Martin Liska <mliska@suse.cz> 39372 39373 * cgraph.c (cgraph_node::dump): Use ::dump_name or 39374 ::dump_asm_name instead of (::name or ::asm_name). 39375 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. 39376 * cgraphunit.c (walk_polymorphic_call_targets): Likewise. 39377 (analyze_functions): Likewise. 39378 (expand_all_functions): Likewise. 39379 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise. 39380 (propagate_bits_across_jump_function): Likewise. 39381 (dump_profile_updates): Likewise. 39382 (ipcp_store_bits_results): Likewise. 39383 (ipcp_store_vr_results): Likewise. 39384 * ipa-devirt.c (dump_targets): Likewise. 39385 * ipa-fnsummary.c (analyze_function_body): Likewise. 39386 * ipa-hsa.c (check_warn_node_versionable): Likewise. 39387 (process_hsa_functions): Likewise. 39388 * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise. 39389 (set_alias_uids): Likewise. 39390 * ipa-inline-transform.c (save_inline_function_body): Likewise. 39391 * ipa-inline.c (recursive_inlining): Likewise. 39392 (inline_to_all_callers_1): Likewise. 39393 (ipa_inline): Likewise. 39394 * ipa-profile.c (ipa_propagate_frequency_1): Likewise. 39395 (ipa_propagate_frequency): Likewise. 39396 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. 39397 (remove_described_reference): Likewise. 39398 * ipa-pure-const.c (worse_state): Likewise. 39399 (check_retval_uses): Likewise. 39400 (analyze_function): Likewise. 39401 (propagate_pure_const): Likewise. 39402 (propagate_nothrow): Likewise. 39403 (dump_malloc_lattice): Likewise. 39404 (propagate_malloc): Likewise. 39405 (pass_local_pure_const::execute): Likewise. 39406 * ipa-visibility.c (optimize_weakref): Likewise. 39407 (function_and_variable_visibility): Likewise. 39408 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. 39409 (ipa_discover_variable_flags): Likewise. 39410 * lto-streamer-out.c (output_function): Likewise. 39411 (output_constructor): Likewise. 39412 * tree-inline.c (copy_bb): Likewise. 39413 * tree-ssa-structalias.c (ipa_pta_execute): Likewise. 39414 * varpool.c (symbol_table::remove_unreferenced_decls): Likewise. 39415 394162020-01-08 Richard Biener <rguenther@suse.de> 39417 39418 PR middle-end/93199 39419 * tree-eh.c (sink_clobbers): Update virtual operands for 39420 the first and last stmt only. Add a dry-run capability. 39421 (pass_lower_eh_dispatch::execute): Perform clobber sinking 39422 after CFG manipulations and in RPO order to catch all 39423 secondary opportunities reliably. 39424 394252020-01-08 Georg-Johann Lay <avr@gjlay.de> 39426 39427 PR target/93182 39428 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. 39429 394302019-01-08 Richard Biener <rguenther@suse.de> 39431 39432 PR middle-end/93199 39433 * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified. 39434 * tree-ssa-loop-im.c (move_computations_worker): Properly adjust 39435 virtual operand, also updating SSA use. 39436 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction): 39437 Update stmt after resetting virtual operand. 39438 (tree_loop_interchange::move_code_to_inner_loop): Likewise. 39439 * gimple-iterator.c (gsi_remove): When not removing the stmt 39440 permanently do not delink immediate uses or mark the stmt modified. 39441 394422020-01-08 Martin Liska <mliska@suse.cz> 39443 39444 * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name. 39445 (ipa_call_context::estimate_size_and_time): Likewise. 39446 (inline_analyze_function): Likewise. 39447 394482020-01-08 Martin Liska <mliska@suse.cz> 39449 39450 * cgraph.c (cgraph_node::dump): Use systematically 39451 dump_asm_name. 39452 394532020-01-08 Georg-Johann Lay <avr@gjlay.de> 39454 39455 Add -nodevicespecs option for avr. 39456 39457 PR target/93182 39458 * config/avr/avr.opt (-nodevicespecs): New driver option. 39459 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue 39460 "-specs=device-specs/..." if that option is not set. 39461 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. 39462 394632020-01-08 Georg-Johann Lay <avr@gjlay.de> 39464 39465 Implement 64-bit double functions for avr. 39466 39467 PR target/92055 39468 * config.gcc (tm_defines) [target=avr]: Support --with-libf7, 39469 --with-double-comparison. 39470 * doc/install.texi: Document them. 39471 * config/avr/avr-c.c (avr_cpu_cpp_builtins) 39472 <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS> 39473 <WITH_DOUBLE_COMPARISON>: New built-in defines. 39474 * doc/invoke.texi (AVR Built-in Macros): Document them. 39475 * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New. 39476 * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function. 39477 * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro. 39478 394792020-01-08 Richard Earnshaw <rearnsha@arm.com> 39480 39481 PR target/93188 39482 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match 39483 armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants 39484 when only building rm-profile multilibs. 39485 394862020-01-08 Feng Xue <fxue@os.amperecomputing.com> 39487 39488 PR ipa/93084 39489 * ipa-cp.c (self_recursively_generated_p): Find matched aggregate 39490 lattice for a value to check. 39491 (propagate_vals_across_arith_jfunc): Add an assertion to ensure 39492 finite propagation in self-recursive scc. 39493 394942020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com> 39495 39496 * ipa-inline.c (caller_growth_limits): Restore the AND. 39497 394982020-01-07 Andrew Stubbs <ams@codesourcery.com> 39499 39500 * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator. 39501 (VEC_ALLREG_ALT): New iterator. 39502 (VEC_ALLREG_INT_MODE): New iterator. 39503 (VCMP_MODE): New iterator. 39504 (VCMP_MODE_INT): New iterator. 39505 (vec_cmpu<mode>di): Use VCMP_MODE_INT. 39506 (vec_cmp<u>v64qidi): New define_expand. 39507 (vec_cmp<mode>di_exec): Use VCMP_MODE. 39508 (vec_cmpu<mode>di_exec): New define_expand. 39509 (vec_cmp<u>v64qidi_exec): New define_expand. 39510 (vec_cmp<mode>di_dup): Use VCMP_MODE. 39511 (vec_cmp<mode>di_dup_exec): Use VCMP_MODE. 39512 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ... 39513 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this. 39514 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ... 39515 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this. 39516 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ... 39517 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this. 39518 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ... 39519 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to 39520 this. 39521 * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes. 39522 * config/gcn/gcn.md (expander): Add sign_extend and zero_extend. 39523 395242020-01-07 Andrew Stubbs <ams@codesourcery.com> 39525 39526 * config/gcn/constraints.md (DA): Update description and match. 39527 (DB): Likewise. 39528 (Db): New constraint. 39529 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second 39530 parameter. 39531 * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter. 39532 Implement 'Db' mixed immediate type. 39533 * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints. 39534 (addcv64si3_dup<exec_vcc>): Delete. 39535 (subcv64si3<exec_vcc>): Rework constraints. 39536 (addv64di3): Rework constraints. 39537 (addv64di3_exec): Rework constraints. 39538 (subv64di3): Rework constraints. 39539 (addv64di3_dup): Delete. 39540 (addv64di3_dup_exec): Delete. 39541 (addv64di3_zext): Rework constraints. 39542 (addv64di3_zext_exec): Rework constraints. 39543 (addv64di3_zext_dup): Rework constraints. 39544 (addv64di3_zext_dup_exec): Rework constraints. 39545 (addv64di3_zext_dup2): Rework constraints. 39546 (addv64di3_zext_dup2_exec): Rework constraints. 39547 (addv64di3_sext_dup2): Rework constraints. 39548 (addv64di3_sext_dup2_exec): Rework constraints. 39549 395502020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com> 39551 39552 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented 39553 existing target checks. 39554 395552020-01-07 Richard Biener <rguenther@suse.de> 39556 39557 * doc/install.texi: Bump minimal supported MPC version. 39558 395592020-01-07 Richard Sandiford <richard.sandiford@arm.com> 39560 39561 * langhooks-def.h (lhd_simulate_enum_decl): Declare. 39562 (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it. 39563 * langhooks.c: Include stor-layout.h. 39564 (lhd_simulate_enum_decl): New function. 39565 * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call 39566 handle_arm_sve_h for the LTO frontend. 39567 (register_vector_type): Cope with null returns from pushdecl. 39568 395692020-01-07 Richard Sandiford <richard.sandiford@arm.com> 39570 39571 * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p) 39572 (aarch64_sve::nvectors_if_data_type): Replace with... 39573 (aarch64_sve::builtin_type_p): ...this. 39574 * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h. 39575 (find_vector_type): Delete. 39576 (add_sve_type_attribute): New function. 39577 (lookup_sve_type_attribute): Likewise. 39578 (register_builtin_types): Add an "SVE type" attribute to each type. 39579 (register_tuple_type): Likewise. 39580 (svbool_type_p, nvectors_if_data_type): Delete. 39581 (mangle_builtin_type): Use lookup_sve_type_attribute. 39582 (builtin_type_p): Likewise. Add an overload that returns the 39583 number of constituent vector and predicate registers. 39584 * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete. 39585 (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p 39586 instead of aarch64_sve_argument_p. 39587 (aarch64_takes_arguments_in_sve_regs_p): Likewise. 39588 (aarch64_pass_by_reference): Likewise. 39589 (aarch64_function_value_1): Likewise. 39590 (aarch64_return_in_memory): Likewise. 39591 (aarch64_layout_arg): Likewise. 39592 395932020-01-07 Jakub Jelinek <jakub@redhat.com> 39594 39595 PR tree-optimization/93156 39596 * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second 39597 least significant bit is always clear. 39598 39599 PR tree-optimization/93118 39600 * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new 39601 simplifier with two intermediate conversions. 39602 396032020-01-07 Martin Liska <mliska@suse.cz> 39604 39605 * params.opt: Add Optimization for various parameters. 39606 396072020-01-07 Martin Liska <mliska@suse.cz> 39608 39609 PR ipa/83411 39610 * doc/extend.texi: Explain cloning for target_clone 39611 attribute. 39612 396132020-01-07 Martin Liska <mliska@suse.cz> 39614 39615 PR tree-optimization/92860 39616 * common.opt: Make in Optimization option 39617 as it is affected by -O0, which is an Optimization 39618 option. 39619 * tree-inline.c (tree_inlinable_function_p): 39620 Use opt_for_fn for warn_inline. 39621 (expand_call_inline): Likewise. 39622 396232020-01-07 Martin Liska <mliska@suse.cz> 39624 39625 PR tree-optimization/92860 39626 * common.opt: Make flag_ree as optimization 39627 attribute. 39628 396292020-01-07 Martin Liska <mliska@suse.cz> 39630 39631 PR optimization/92860 39632 * params.opt: Mark param_min_crossjump_insns with Optimization 39633 keyword. 39634 396352020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com> 39636 39637 * ipa-inline-analysis.c (estimate_growth): Fix typo. 39638 * ipa-inline.c (caller_growth_limits): Use OR instead of AND. 39639 396402020-01-06 Michael Meissner <meissner@linux.ibm.com> 39641 39642 * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New 39643 helper function to return the valid addressing formats for a given 39644 hard register and mode. 39645 (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask. 39646 39647 * config/rs6000/constraints.md (Q constraint): Update 39648 documentation. 39649 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint 39650 documentation. 39651 39652 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): 39653 Use 'Q' for doing vector extract from memory. 39654 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from 39655 memory. 39656 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for 39657 doing vector extract from memory. 39658 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector 39659 extract from memory. 39660 39661 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support 39662 for the offset being 34-bits when -mcpu=future is used. 39663 396642020-01-06 John David Anglin <danglin@gcc.gnu.org> 39665 39666 * config/pa/pa.md: Revert change to use ordered_comparison_operator 39667 instead of cmpib_comparison_operator in cmpib patterns. 39668 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal 39669 of cmpib_comparison_operator. Revise comment. 39670 396712020-01-06 Richard Sandiford <richard.sandiford@arm.com> 39672 39673 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts 39674 in an IFN_DIV_POW2 node to be equal. 39675 396762020-01-06 Richard Sandiford <richard.sandiford@arm.com> 39677 39678 * tree-vect-stmts.c (vect_check_load_store_mask): Rename to... 39679 (vect_check_scalar_mask): ...this. 39680 (vectorizable_store, vectorizable_load): Update call accordingly. 39681 (vectorizable_call): Use vect_check_scalar_mask to check the mask 39682 argument in calls to conditional internal functions. 39683 396842020-01-06 Andrew Stubbs <ams@codesourcery.com> 39685 39686 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for 39687 '0' matching inputs. 39688 (subv64di3_exec): Likewise. 39689 396902020-01-06 Bryan Stenson <bryan@siliconvortex.com> 39691 39692 * config/mips/mips.c (vr4130_align_insns): Fix typo. 39693 * doc/md.texi (movstr): Likewise. 39694 396952020-01-06 Andrew Stubbs <ams@codesourcery.com> 39696 39697 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early 39698 clobber. 39699 397002020-01-06 Richard Sandiford <richard.sandiford@arm.com> 39701 39702 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md): 39703 Depend on... 39704 (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents 39705 to a temporary file and use move-if-change to update the real 39706 file where necessary. 39707 397082020-01-06 Richard Sandiford <richard.sandiford@arm.com> 39709 39710 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl 39711 rather than Upa for CPY /M. 39712 397132020-01-06 Andrew Stubbs <ams@codesourcery.com> 39714 39715 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline 39716 immediate. 39717 397182020-01-06 Martin Liska <mliska@suse.cz> 39719 39720 PR tree-optimization/92860 39721 * params.opt: Mark param_max_combine_insns with Optimization 39722 keyword. 39723 397242020-01-05 Jakub Jelinek <jakub@redhat.com> 39725 39726 PR target/93141 39727 * config/i386/i386.md (SWIDWI): New mode iterator. 39728 (DWI, dwi): Add TImode variants. 39729 (addv<mode>4): Use SWIDWI iterator instead of SWI. Use 39730 <general_hilo_operand> instead of <general_operand>. Use 39731 CONST_SCALAR_INT_P instead of CONST_INT_P. 39732 (*addv<mode>4_1): Rename to ... 39733 (addv<mode>4_1): ... this. 39734 (QWI): New mode attribute. 39735 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New 39736 define_insn_and_split patterns. 39737 (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn 39738 patterns. 39739 (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use 39740 <general_hilo_operand> instead of <general_operand>. 39741 (*addcarry<mode>_1): New define_insn. 39742 (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split. 39743 397442020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru> 39745 39746 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm): 39747 Use "call" instead of "set". 39748 397492020-01-03 Martin Jambor <mjambor@suse.cz> 39750 39751 PR ipa/92917 39752 * ipa-cp.c (print_all_lattices): Skip functions without info. 39753 397542020-01-03 Jakub Jelinek <jakub@redhat.com> 39755 39756 PR target/93089 39757 * config/i386/i386-options.c (ix86_simd_clone_adjust): If 39758 TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd' 39759 simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512 39760 for 'e' simd clones. 39761 39762 PR target/93089 39763 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave 39764 entry. 39765 (mprefer-vector-width=): Add Save. 39766 * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print 39767 -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment. 39768 (ix86_debug_options, ix86_function_specific_print): Adjust 39769 ix86_target_string callers. 39770 (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=. 39771 (ix86_valid_target_attribute_tree): Likewise. 39772 * config/i386/i386-options.h (ix86_target_string): Add PVW argument. 39773 * config/i386/i386-expand.c (ix86_expand_builtin): Adjust 39774 ix86_target_string caller. 39775 39776 PR target/93110 39777 * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of 39778 emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode 39779 instead of gen_int_shift_amount + convert_modes. 39780 39781 PR rtl-optimization/93088 39782 * loop-iv.c (find_single_def_src): Punt after looking through 39783 128 reg copies for regs with single definitions. Move definitions 39784 to first uses. 39785 397862020-01-02 Dennis Zhang <dennis.zhang@arm.com> 39787 39788 * config/arm/arm-c.c (arm_cpu_builtins): Define 39789 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC, 39790 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and 39791 __ARM_BF16_FORMAT_ALTERNATIVE when enabled. 39792 * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features. 39793 * config/arm/arm-tables.opt: Regenerated. 39794 * config/arm/arm.c (arm_option_reconfigure_globals): Initialize 39795 arm_arch_i8mm and arm_arch_bf16 when enabled. 39796 * config/arm/arm.h (TARGET_I8MM): New macro. 39797 (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise. 39798 * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a. 39799 * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a. 39800 * config/arm/t-multilib: Add matching rules for -march=armv8.6-a. 39801 (v8_6_a_simd_variants): New. 39802 (v8_*_a_simd_variants): Add i8mm and bf16. 39803 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options. 39804 398052020-01-02 Jakub Jelinek <jakub@redhat.com> 39806 39807 PR ipa/93087 39808 * predict.c (compute_function_frequency): Don't call 39809 warn_function_cold on functions that already have cold attribute. 39810 398112020-01-01 John David Anglin <danglin@gcc.gnu.org> 39812 39813 PR target/67834 39814 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to 39815 COMDAT group function labels in .data.rel.ro.local section. 39816 * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define. 39817 39818 PR target/93111 39819 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of 39820 comparison_operator in B and S integer comparisons. Likewise, use 39821 ordered_comparison_operator instead of cmpib_comparison_operator in 39822 cmpib patterns. 39823 * config/pa/predicates.md (cmpib_comparison_operator): Remove. 39824 398252020-01-01 Jakub Jelinek <jakub@redhat.com> 39826 39827 Update copyright years. 39828 39829 * gcc.c (process_command): Update copyright notice dates. 39830 * gcov-dump.c (print_version): Ditto. 39831 * gcov.c (print_version): Ditto. 39832 * gcov-tool.c (print_version): Ditto. 39833 * gengtype.c (create_file): Ditto. 39834 * doc/cpp.texi: Bump @copying's copyright year. 39835 * doc/cppinternals.texi: Ditto. 39836 * doc/gcc.texi: Ditto. 39837 * doc/gccint.texi: Ditto. 39838 * doc/gcov.texi: Ditto. 39839 * doc/install.texi: Ditto. 39840 * doc/invoke.texi: Ditto. 39841 398422020-01-01 Jan Hubicka <hubicka@ucw.cz> 39843 39844 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall 39845 summary. 39846 398472020-01-01 Jakub Jelinek <jakub@redhat.com> 39848 39849 PR tree-optimization/93098 39850 * match.pd (popcount): For shift amounts, use integer_onep 39851 or wi::to_widest () == cst instead of tree_to_uhwi () == cst 39852 tests. Make sure that precision is power of two larger than or equal 39853 to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro 39854 instead of ULL suffixed constants. Formatting fixes. 39855 39856Copyright (C) 2020 Free Software Foundation, Inc. 39857 39858Copying and distribution of this file, with or without modification, 39859are permitted in any medium without royalty provided the copyright 39860notice and this notice are preserved. 39861