]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2023-06-07 Roger Sayle <roger@nextmovesoftware.com>
2
3 * wide-int.cc (wi::bitreverse_large): Use HOST_WIDE_INT_1U to
4 avoid sign extension/undefined behaviour when setting each bit.
5
6 2023-06-07 Roger Sayle <roger@nextmovesoftware.com>
7 Uros Bizjak <ubizjak@gmail.com>
8
9 * config/i386/i386-expand.cc (ix86_expand_builtin) <handlecarry>:
10 Use new x86_stc instruction when the carry flag must be set.
11 * config/i386/i386.cc (ix86_cc_mode): Use CCCmode for *x86_cmc.
12 (ix86_rtx_costs): Provide accurate rtx_costs for *x86_cmc.
13 * config/i386/i386.h (TARGET_SLOW_STC): New define.
14 * config/i386/i386.md (UNSPEC_STC): New UNSPEC for stc.
15 (x86_stc): New define_insn.
16 (define_peephole2): Convert x86_stc into alternate implementation
17 on pentium4 without -Os when a QImode register is available.
18 (*x86_cmc): New define_insn.
19 (define_peephole2): Convert *x86_cmc into alternate implementation
20 on pentium4 without -Os when a QImode register is available.
21 (*setccc): New define_insn_and_split for a no-op CCCmode move.
22 (*setcc_qi_negqi_ccc_1_<mode>): New define_insn_and_split to
23 recognize (and eliminate) the carry flag being copied to itself.
24 (*setcc_qi_negqi_ccc_2_<mode>): Likewise.
25 * config/i386/x86-tune.def (X86_TUNE_SLOW_STC): New tuning flag.
26
27 2023-06-07 Andrew Pinski <apinski@marvell.com>
28
29 * match.pd: Fix comment for the
30 `(zero_one ==/!= 0) ? y : z <op> y` patterns.
31
32 2023-06-07 Jeff Law <jlaw@ventanamicro.com>
33 Jeff Law <jlaw@ventanamicro.com>
34
35 * config/riscv/bitmanip.md (rotrdi3, rotrsi3, rotlsi3): New expanders.
36 (rotrsi3_sext): Expose generator.
37 (rotlsi3 pattern): Hide generator.
38 * config/riscv/riscv-protos.h (riscv_emit_binary): New function
39 declaration.
40 * config/riscv/riscv.cc (riscv_emit_binary): Removed static
41 * config/riscv/riscv.md (addsi3, subsi3, negsi2): Hide generator.
42 (mulsi3, <optab>si3): Likewise.
43 (addsi3, subsi3, negsi2, mulsi3, <optab>si3): New expanders.
44 (addv<mode>4, subv<mode>4, mulv<mode>4): Use riscv_emit_binary.
45 (<u>mulsidi3): Likewise.
46 (addsi3_extended, subsi3_extended, negsi2_extended): Expose generator.
47 (mulsi3_extended, <optab>si3_extended): Likewise.
48 (splitter for shadd feeding divison): Update RTL pattern to account
49 for changes in how 32 bit ops are expanded for TARGET_64BIT.
50 * loop-iv.cc (get_biv_step_1): Process src of extension when it PLUS.
51
52 2023-06-07 Dimitar Dimitrov <dimitar@dinux.eu>
53
54 PR target/109725
55 * config/riscv/riscv.cc (riscv_print_operand): Calculate
56 memmodel only when it is valid.
57
58 2023-06-07 Dimitar Dimitrov <dimitar@dinux.eu>
59
60 * config/riscv/riscv.cc (riscv_const_insns): Recursively call
61 for constant element of a vector.
62
63 2023-06-07 Jakub Jelinek <jakub@redhat.com>
64
65 * match.pd (zero_one_valued_p): Don't handle integer_zerop specially,
66 instead compare tree_nonzero_bits <= 1U rather than just == 1.
67
68 2023-06-07 Alex Coplan <alex.coplan@arm.com>
69
70 PR target/110132
71 * config/aarch64/aarch64-builtins.cc (aarch64_general_simulate_builtin):
72 New. Use it ...
73 (aarch64_init_ls64_builtins): ... here. Switch to declaring public ACLE
74 names for builtins.
75 (aarch64_general_init_builtins): Ensure we invoke the arm_acle.h
76 setup if in_lto_p, just like we do for SVE.
77 * config/aarch64/arm_acle.h: (__arm_ld64b): Delete.
78 (__arm_st64b): Delete.
79 (__arm_st64bv): Delete.
80 (__arm_st64bv0): Delete.
81
82 2023-06-07 Alex Coplan <alex.coplan@arm.com>
83
84 PR target/110100
85 * config/aarch64/aarch64-builtins.cc (aarch64_expand_builtin_ls64):
86 Use input operand for the destination address.
87 * config/aarch64/aarch64.md (st64b): Fix constraint on address
88 operand.
89
90 2023-06-07 Alex Coplan <alex.coplan@arm.com>
91
92 PR target/110100
93 * config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types):
94 Replace eight consecutive spaces with tabs.
95 (aarch64_init_ls64_builtins): Likewise.
96 (aarch64_expand_builtin_ls64): Likewise.
97 * config/aarch64/aarch64.md (ld64b): Likewise.
98 (st64b): Likewise.
99 (st64bv): Likewise
100 (st64bv0): Likewise.
101
102 2023-06-07 Vladimir N. Makarov <vmakarov@redhat.com>
103
104 * ira-costs.cc: (find_costs_and_classes): Constrain classes of pic
105 offset table pseudo to a general reg subset.
106
107 2023-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
108
109 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode><vczle><vczbe>):
110 Rename to...
111 (*aarch64_sqmovun<mode>_insn<vczle><vczbe>): ... This. Reimplement
112 with RTL codes.
113 (aarch64_sqmovun<mode> [SD_HSDI]): Reimplement with RTL codes.
114 (aarch64_sqxtun2<mode>_le): Likewise.
115 (aarch64_sqxtun2<mode>_be): Likewise.
116 (aarch64_sqxtun2<mode>): Adjust for the above.
117 (aarch64_sqmovun<mode>): New define_expand.
118 * config/aarch64/iterators.md (UNSPEC_SQXTUN): Delete.
119 (half_mask): New mode attribute.
120 * config/aarch64/predicates.md (aarch64_simd_umax_half_mode):
121 New predicate.
122
123 2023-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
124
125 * config/aarch64/aarch64-simd.md (aarch64_addp<mode><vczle><vczbe>):
126 Reimplement as...
127 (aarch64_addp<mode>_insn): ... This...
128 (aarch64_addp<mode><vczle><vczbe>_insn): ... And this.
129 (aarch64_addp<mode>): New define_expand.
130
131 2023-06-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
132
133 * config/riscv/riscv-protos.h (expand_vec_perm_const): New function.
134 * config/riscv/riscv-v.cc
135 (rvv_builder::can_duplicate_repeating_sequence_p): Support POLY
136 handling.
137 (rvv_builder::single_step_npatterns_p): New function.
138 (rvv_builder::npatterns_all_equal_p): Ditto.
139 (const_vec_all_in_range_p): Support POLY handling.
140 (gen_const_vector_dup): Ditto.
141 (emit_vlmax_gather_insn): Add vrgatherei16.
142 (emit_vlmax_masked_gather_mu_insn): Ditto.
143 (expand_const_vector): Add VLA SLP const vector support.
144 (expand_vec_perm): Support POLY.
145 (struct expand_vec_perm_d): New struct.
146 (shuffle_generic_patterns): New function.
147 (expand_vec_perm_const_1): Ditto.
148 (expand_vec_perm_const): Ditto.
149 * config/riscv/riscv.cc (riscv_vectorize_vec_perm_const): Ditto.
150 (TARGET_VECTORIZE_VEC_PERM_CONST): New targethook.
151
152 2023-06-07 Andrew Pinski <apinski@marvell.com>
153
154 PR middle-end/110117
155 * expr.cc (expand_single_bit_test): Handle
156 const_int from expand_expr.
157
158 2023-06-07 Andrew Pinski <apinski@marvell.com>
159
160 * expr.cc (do_store_flag): Rearrange the
161 TER code so that it overrides the nonzero bits
162 info if we had `a & POW2`.
163
164 2023-06-07 Andrew Pinski <apinski@marvell.com>
165
166 PR tree-optimization/110134
167 * match.pd (-A CMP -B -> B CMP A): Allow EQ/NE for all integer
168 types.
169 (-A CMP CST -> B CMP (-CST)): Likewise.
170
171 2023-06-07 Andrew Pinski <apinski@marvell.com>
172
173 PR tree-optimization/89263
174 PR tree-optimization/99069
175 PR tree-optimization/20083
176 PR tree-optimization/94898
177 * match.pd: Add patterns to optimize `a ? onezero : onezero` with
178 one of the operands are constant.
179
180 2023-06-07 Andrew Pinski <apinski@marvell.com>
181
182 * match.pd (zero_one_valued_p): Match 0 integer constant
183 too.
184
185 2023-06-07 Pan Li <pan2.li@intel.com>
186
187 * config/riscv/riscv-vector-builtins-types.def
188 (vfloat32mf2_t): Take RVV_REQUIRE_ELEN_FP_16 as requirement.
189 (vfloat32m1_t): Ditto.
190 (vfloat32m2_t): Ditto.
191 (vfloat32m4_t): Ditto.
192 (vfloat32m8_t): Ditto.
193 (vint16mf4_t): Ditto.
194 (vint16mf2_t): Ditto.
195 (vint16m1_t): Ditto.
196 (vint16m2_t): Ditto.
197 (vint16m4_t): Ditto.
198 (vint16m8_t): Ditto.
199 (vuint16mf4_t): Ditto.
200 (vuint16mf2_t): Ditto.
201 (vuint16m1_t): Ditto.
202 (vuint16m2_t): Ditto.
203 (vuint16m4_t): Ditto.
204 (vuint16m8_t): Ditto.
205 (vint32mf2_t): Ditto.
206 (vint32m1_t): Ditto.
207 (vint32m2_t): Ditto.
208 (vint32m4_t): Ditto.
209 (vint32m8_t): Ditto.
210 (vuint32mf2_t): Ditto.
211 (vuint32m1_t): Ditto.
212 (vuint32m2_t): Ditto.
213 (vuint32m4_t): Ditto.
214 (vuint32m8_t): Ditto.
215
216 2023-06-07 Jason Merrill <jason@redhat.com>
217
218 PR c++/58487
219 * doc/invoke.texi: Document it.
220
221 2023-06-06 Roger Sayle <roger@nextmovesoftware.com>
222
223 * doc/rtl.texi (bitreverse, copysign): Document new RTX codes.
224 * rtl.def (BITREVERSE, COPYSIGN): Define new RTX codes.
225 * simplify-rtx.cc (simplify_unary_operation_1): Optimize
226 NOT (BITREVERSE x) as BITREVERSE (NOT x).
227 Optimize POPCOUNT (BITREVERSE x) as POPCOUNT x.
228 Optimize PARITY (BITREVERSE x) as PARITY x.
229 Optimize BITREVERSE (BITREVERSE x) as x.
230 (simplify_const_unary_operation) <case BITREVERSE>: Evaluate
231 BITREVERSE of a constant integer at compile-time.
232 (simplify_binary_operation_1) <case COPYSIGN>: Optimize
233 COPY_SIGN (x, x) as x. Optimize COPYSIGN (x, C) as ABS x
234 or NEG (ABS x) for constant C. Optimize COPYSIGN (ABS x, y)
235 and COPYSIGN (NEG x, y) as COPYSIGN (x, y).
236 Optimize COPYSIGN (x, ABS y) as ABS x.
237 Optimize COPYSIGN (COPYSIGN (x, y), z) as COPYSIGN (x, z).
238 Optimize COPYSIGN (x, COPYSIGN (y, z)) as COPYSIGN (x, z).
239 (simplify_const_binary_operation): Evaluate COPYSIGN of constant
240 arguments at compile-time.
241
242 2023-06-06 Uros Bizjak <ubizjak@gmail.com>
243
244 * rtl.h (function_invariant_p): Change return type from int to bool.
245 * reload1.cc (function_invariant_p): Change return type from
246 int to bool and adjust function body accordingly.
247
248 2023-06-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
249
250 * config/riscv/autovec-opt.md (*<optab>_fma<mode>): New pattern.
251 (*single_<optab>mult_plus<mode>): Ditto.
252 (*double_<optab>mult_plus<mode>): Ditto.
253 (*sign_zero_extend_fma): Ditto.
254 (*zero_sign_extend_fma): Ditto.
255 * config/riscv/riscv-protos.h (enum insn_type): New enum.
256
257 2023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com>
258 Tobias Burnus <tobias@codesourcery.com>
259
260 * gimplify.cc (omp_notice_variable): Apply GOVD_MAP_ALLOC_ONLY flag
261 and defaultmap flags if the defaultmap has GOVD_MAP_FORCE_PRESENT flag
262 set.
263 (omp_get_attachment): Handle map clauses with 'present' modifier.
264 (omp_group_base): Likewise.
265 (gimplify_scan_omp_clauses): Reorder present maps to come first.
266 Set GOVD flags for present defaultmaps.
267 (gimplify_adjust_omp_clauses_1): Set map kind for present defaultmaps.
268 * omp-low.cc (scan_sharing_clauses): Handle 'always, present' map
269 clauses.
270 (lower_omp_target): Handle map clauses with 'present' modifier.
271 Handle 'to' and 'from' clauses with 'present'.
272 * tree-core.h (enum omp_clause_defaultmap_kind): Add
273 OMP_CLAUSE_DEFAULTMAP_PRESENT defaultmap kind.
274 * tree-pretty-print.cc (dump_omp_clause): Handle 'map', 'to' and
275 'from' clauses with 'present' modifier. Handle present defaultmap.
276 * tree.h (OMP_CLAUSE_MOTION_PRESENT): New #define.
277
278 2023-06-06 Segher Boessenkool <segher@kernel.crashing.org>
279
280 * config/rs6000/genfusion.pl: Delete some dead code.
281
282 2023-06-06 Segher Boessenkool <segher@kernel.crashing.org>
283
284 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): New, rewritten and
285 split out from...
286 (gen_ld_cmpi_p10): ... this.
287
288 2023-06-06 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
289
290 PR target/106907
291 * config/rs6000/rs6000.cc (vec_const_128bit_to_bytes): Remove
292 duplicate expression.
293
294 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
295
296 * config/aarch64/aarch64-builtins.cc (aarch64_general_gimple_fold_builtin):
297 Handle unsigned reduc_plus_scal_ builtins.
298 * config/aarch64/aarch64-simd-builtins.def (addp): Delete DImode instances.
299 * config/aarch64/aarch64-simd.md (aarch64_addpdi): Delete.
300 * config/aarch64/arm_neon.h (vpaddd_s64): Reimplement with
301 __builtin_aarch64_reduc_plus_scal_v2di.
302 (vpaddd_u64): Reimplement with __builtin_aarch64_reduc_plus_scal_v2di_uu.
303
304 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
305
306 * config/aarch64/aarch64-simd.md (aarch64_<sur>shr_n<mode>): Delete.
307 (aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): New define_insn.
308 (aarch64_<sra_op>rshr_n<mode>): New define_expand.
309
310 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
311
312 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Delete.
313 (aarch64_shrn<mode>_insn_be): Delete.
314 (*aarch64_<srn_op>shrn<mode>_vect): Rename to...
315 (*aarch64_<srn_op>shrn<mode><vczle><vczbe>): ... This.
316 (aarch64_shrn<mode>): Remove reference to the above deleted patterns.
317 (aarch64_rshrn<mode>_insn_le): Delete.
318 (aarch64_rshrn<mode>_insn_be): Delete.
319 (aarch64_rshrn<mode><vczle><vczbe>_insn): New define_insn.
320 (aarch64_rshrn<mode>): Remove references to the above deleted patterns.
321
322 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
323
324 * config/aarch64/aarch64-protos.h (aarch64_parallel_select_half_p):
325 Define prototype.
326 (aarch64_pars_overlap_p): Likewise.
327 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
328 Express in terms of UNSPEC_ADDV.
329 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): Likewise.
330 (*aarch64_<su>addlv<mode>_reduction): Define.
331 (*aarch64_uaddlv<mode>_reduction_2): Likewise.
332 * config/aarch64/aarch64.cc (aarch64_parallel_select_half_p): Define.
333 (aarch64_pars_overlap_p): Likewise.
334 * config/aarch64/iterators.md (UNSPEC_SADDLV, UNSPEC_UADDLV): Delete.
335 (VQUADW): New mode attribute.
336 (VWIDE2X_S): Likewise.
337 (USADDLV): Delete.
338 (su): Delete handling of UNSPEC_SADDLV, UNSPEC_UADDLV.
339 * config/aarch64/predicates.md (vect_par_cnst_select_half): Define.
340
341 2023-06-06 Richard Biener <rguenther@suse.de>
342
343 PR middle-end/110055
344 * gimplify.cc (gimplify_target_expr): Do not emit
345 CLOBBERs for variables which have static storage duration
346 after gimplifying their initializers.
347
348 2023-06-06 Richard Biener <rguenther@suse.de>
349
350 PR tree-optimization/109143
351 * tree-ssa-structalias.cc (solution_set_expand): Avoid
352 one bitmap iteration and optimize bit range setting.
353
354 2023-06-06 Hans-Peter Nilsson <hp@axis.com>
355
356 PR bootstrap/110120
357 * postreload.cc (reload_cse_move2add, move2add_use_add2_insn): Use
358 XVECEXP, not XEXP, to access first item of a PARALLEL.
359
360 2023-06-06 Pan Li <pan2.li@intel.com>
361
362 * config/riscv/riscv-vector-builtins-types.def
363 (vfloat16mf4_t): Add vfloat16mf4_t to WF operations.
364 (vfloat16mf2_t): Likewise.
365 (vfloat16m1_t): Likewise.
366 (vfloat16m2_t): Likewise.
367 (vfloat16m4_t): Likewise.
368 (vfloat16m8_t): Likewise.
369 * config/riscv/vector-iterators.md: Add FP=16 to VWF, VWF_ZVE64,
370 VWLMUL1, VWLMUL1_ZVE64, vwlmul1 and vwlmul1_zve64.
371
372 2023-06-06 Fei Gao <gaofei@eswincomputing.com>
373
374 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Use Pmode
375 for cfi reg/mem machmode
376 (riscv_adjust_libcall_cfi_epilogue): Use Pmode for cfi reg machmode
377
378 2023-06-06 Li Xu <xuli1@eswincomputing.com>
379
380 * config/riscv/vector-iterators.md:
381 Fix 'REQUIREMENT' for machine_mode 'MODE'.
382 * config/riscv/vector.md (@pred_indexed_<order>store<VNX16_QHS:mode>
383 <VNX16_QHSI:mode>): change VNX16_QHSI to VNX16_QHSDI.
384 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSDI:mode>): Ditto.
385
386 2023-06-06 Pan Li <pan2.li@intel.com>
387
388 * config/riscv/vector-iterators.md: Fix typo in mode attr.
389
390 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
391 Joel Hutton <joel.hutton@arm.com>
392
393 * doc/generic.texi: Remove old tree codes.
394 * expr.cc (expand_expr_real_2): Remove old tree code cases.
395 * gimple-pretty-print.cc (dump_binary_rhs): Likewise.
396 * optabs-tree.cc (optab_for_tree_code): Likewise.
397 (supportable_half_widening_operation): Likewise.
398 * tree-cfg.cc (verify_gimple_assign_binary): Likewise.
399 * tree-inline.cc (estimate_operator_cost): Likewise.
400 (op_symbol_code): Likewise.
401 * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Likewise.
402 (vect_analyze_data_ref_accesses): Likewise.
403 * tree-vect-generic.cc (expand_vector_operations_1): Likewise.
404 * cfgexpand.cc (expand_debug_expr): Likewise.
405 * tree-vect-stmts.cc (vectorizable_conversion): Likewise.
406 (supportable_widening_operation): Likewise.
407 * gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
408 Likewise.
409 * optabs.def (vec_widen_ssubl_hi_optab, vec_widen_ssubl_lo_optab,
410 vec_widen_saddl_hi_optab, vec_widen_saddl_lo_optab,
411 vec_widen_usubl_hi_optab, vec_widen_usubl_lo_optab,
412 vec_widen_uaddl_hi_optab, vec_widen_uaddl_lo_optab): Remove optabs.
413 * tree-pretty-print.cc (dump_generic_node): Remove tree code definition.
414 * tree.def (WIDEN_PLUS_EXPR, WIDEN_MINUS_EXPR, VEC_WIDEN_PLUS_HI_EXPR,
415 VEC_WIDEN_PLUS_LO_EXPR, VEC_WIDEN_MINUS_HI_EXPR,
416 VEC_WIDEN_MINUS_LO_EXPR): Likewise.
417
418 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
419 Joel Hutton <joel.hutton@arm.com>
420 Tamar Christina <tamar.christina@arm.com>
421
422 * config/aarch64/aarch64-simd.md (vec_widen_<su>addl_lo_<mode>): Rename
423 this ...
424 (vec_widen_<su>add_lo_<mode>): ... to this.
425 (vec_widen_<su>addl_hi_<mode>): Rename this ...
426 (vec_widen_<su>add_hi_<mode>): ... to this.
427 (vec_widen_<su>subl_lo_<mode>): Rename this ...
428 (vec_widen_<su>sub_lo_<mode>): ... to this.
429 (vec_widen_<su>subl_hi_<mode>): Rename this ...
430 (vec_widen_<su>sub_hi_<mode>): ...to this.
431 * doc/generic.texi: Document new IFN codes.
432 * internal-fn.cc (lookup_hilo_internal_fn): Add lookup function.
433 (commutative_binary_fn_p): Add widen_plus fn's.
434 (widening_fn_p): New function.
435 (narrowing_fn_p): New function.
436 (direct_internal_fn_optab): Change visibility.
437 * internal-fn.def (DEF_INTERNAL_WIDENING_OPTAB_FN): Macro to define an
438 internal_fn that expands into multiple internal_fns for widening.
439 (IFN_VEC_WIDEN_PLUS, IFN_VEC_WIDEN_PLUS_HI, IFN_VEC_WIDEN_PLUS_LO,
440 IFN_VEC_WIDEN_PLUS_EVEN, IFN_VEC_WIDEN_PLUS_ODD,
441 IFN_VEC_WIDEN_MINUS, IFN_VEC_WIDEN_MINUS_HI,
442 IFN_VEC_WIDEN_MINUS_LO, IFN_VEC_WIDEN_MINUS_ODD,
443 IFN_VEC_WIDEN_MINUS_EVEN): Define widening plus,minus functions.
444 * internal-fn.h (direct_internal_fn_optab): Declare new prototype.
445 (lookup_hilo_internal_fn): Likewise.
446 (widening_fn_p): Likewise.
447 (Narrowing_fn_p): Likewise.
448 * optabs.cc (commutative_optab_p): Add widening plus optabs.
449 * optabs.def (OPTAB_D): Define widen add, sub optabs.
450 * tree-vect-patterns.cc (vect_recog_widen_op_pattern): Support
451 patterns with a hi/lo or even/odd split.
452 (vect_recog_sad_pattern): Refactor to use new IFN codes.
453 (vect_recog_widen_plus_pattern): Likewise.
454 (vect_recog_widen_minus_pattern): Likewise.
455 (vect_recog_average_pattern): Likewise.
456 * tree-vect-stmts.cc (vectorizable_conversion): Add support for
457 _HILO IFNs.
458 (supportable_widening_operation): Likewise.
459 * tree.def (WIDEN_SUM_EXPR): Update example to use new IFNs.
460
461 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
462 Joel Hutton <joel.hutton@arm.com>
463
464 * tree-vect-patterns.cc: Add include for gimple-iterator.
465 (vect_recog_widen_op_pattern): Refactor to use code_helper.
466 (vect_gimple_build): New function.
467 * tree-vect-stmts.cc (simple_integer_narrowing): Refactor to use
468 code_helper.
469 (vectorizable_call): Likewise.
470 (vect_gen_widened_results_half): Likewise.
471 (vect_create_vectorized_demotion_stmts): Likewise.
472 (vect_create_vectorized_promotion_stmts): Likewise.
473 (vect_create_half_widening_stmts): Likewise.
474 (vectorizable_conversion): Likewise.
475 (supportable_widening_operation): Likewise.
476 (supportable_narrowing_operation): Likewise.
477 * tree-vectorizer.h (supportable_widening_operation): Change
478 prototype to use code_helper.
479 (supportable_narrowing_operation): Likewise.
480 (vect_gimple_build): New function prototype.
481 * tree.h (code_helper::safe_as_tree_code): New function.
482 (code_helper::safe_as_fn_code): New function.
483
484 2023-06-05 Roger Sayle <roger@nextmovesoftware.com>
485
486 * wide-int.cc (wi::bitreverse_large): New function implementing
487 bit reversal of an integer.
488 * wide-int.h (wi::bitreverse): New (template) function prototype.
489 (bitreverse_large): Prototype helper function/implementation.
490 (wi::bitreverse): New template wrapper around bitreverse_large.
491
492 2023-06-05 Uros Bizjak <ubizjak@gmail.com>
493
494 * rtl.h (print_rtl_single): Change return type from int to void.
495 (print_rtl_single_with_indent): Ditto.
496 * print-rtl.h (class rtx_writer): Ditto. Change m_sawclose to bool.
497 * print-rtl.cc (rtx_writer::rtx_writer): Update for m_sawclose change.
498 (rtx_writer::print_rtx_operand_code_0): Ditto.
499 (rtx_writer::print_rtx_operand_codes_E_and_V): Ditto.
500 (rtx_writer::print_rtx_operand_code_i): Ditto.
501 (rtx_writer::print_rtx_operand_code_u): Ditto.
502 (rtx_writer::print_rtx_operand): Ditto.
503 (rtx_writer::print_rtx): Ditto.
504 (rtx_writer::finish_directive): Ditto.
505 (print_rtl_single): Change return type from int to void
506 and adjust function body accordingly.
507 (rtx_writer::print_rtl_single_with_indent): Ditto.
508
509 2023-06-05 Uros Bizjak <ubizjak@gmail.com>
510
511 * rtl.h (reg_classes_intersect_p): Change return type from int to bool.
512 (reg_class_subset_p): Ditto.
513 * reginfo.cc (reg_classes_intersect_p): Ditto.
514 (reg_class_subset_p): Ditto.
515
516 2023-06-05 Pan Li <pan2.li@intel.com>
517
518 * config/riscv/riscv-vector-builtins-types.def
519 (vfloat32mf2_t): New type for DEF_RVV_WEXTF_OPS.
520 (vfloat32m1_t): Ditto.
521 (vfloat32m2_t): Ditto.
522 (vfloat32m4_t): Ditto.
523 (vfloat32m8_t): Ditto.
524 (vint16mf4_t): New type for DEF_RVV_CONVERT_I_OPS.
525 (vint16mf2_t): Ditto.
526 (vint16m1_t): Ditto.
527 (vint16m2_t): Ditto.
528 (vint16m4_t): Ditto.
529 (vint16m8_t): Ditto.
530 (vuint16mf4_t): New type for DEF_RVV_CONVERT_U_OPS.
531 (vuint16mf2_t): Ditto.
532 (vuint16m1_t): Ditto.
533 (vuint16m2_t): Ditto.
534 (vuint16m4_t): Ditto.
535 (vuint16m8_t): Ditto.
536 (vint32mf2_t): New type for DEF_RVV_WCONVERT_I_OPS.
537 (vint32m1_t): Ditto.
538 (vint32m2_t): Ditto.
539 (vint32m4_t): Ditto.
540 (vint32m8_t): Ditto.
541 (vuint32mf2_t): New type for DEF_RVV_WCONVERT_U_OPS.
542 (vuint32m1_t): Ditto.
543 (vuint32m2_t): Ditto.
544 (vuint32m4_t): Ditto.
545 (vuint32m8_t): Ditto.
546 * config/riscv/vector-iterators.md: Add FP=16 support for V,
547 VWCONVERTI, VCONVERT, VNCONVERT, VMUL1 and vlmul1.
548
549 2023-06-05 Andrew Pinski <apinski@marvell.com>
550
551 PR bootstrap/110085
552 * Makefile.in (clean): Remove the removing of
553 MULTILIB_DIR/MULTILIB_OPTIONS directories.
554
555 2023-06-05 YunQiang Su <yunqiang.su@cipunited.com>
556
557 * config/mips/mips-protos.h (mips_emit_speculation_barrier): New
558 prototype.
559 * config/mips/mips.cc (speculation_barrier_libfunc): New static
560 variable.
561 (mips_init_libfuncs): Initialize it.
562 (mips_emit_speculation_barrier): New function.
563 * config/mips/mips.md (speculation_barrier): Call
564 mips_emit_speculation_barrier.
565
566 2023-06-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
567
568 * config/riscv/riscv-v.cc (class rvv_builder): Reorganize functions.
569 (rvv_builder::can_duplicate_repeating_sequence_p): Ditto.
570 (rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto.
571 (rvv_builder::get_merged_repeating_sequence): Ditto.
572 (rvv_builder::get_merge_scalar_mask): Ditto.
573 (emit_scalar_move_insn): Ditto.
574 (emit_vlmax_integer_move_insn): Ditto.
575 (emit_nonvlmax_integer_move_insn): Ditto.
576 (emit_vlmax_gather_insn): Ditto.
577 (emit_vlmax_masked_gather_mu_insn): Ditto.
578 (get_repeating_sequence_dup_machine_mode): Ditto.
579
580 2023-06-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
581
582 * config/riscv/autovec.md: Split arguments.
583 * config/riscv/riscv-protos.h (expand_vec_perm): Ditto.
584 * config/riscv/riscv-v.cc (expand_vec_perm): Ditto.
585
586 2023-06-04 Andrew Pinski <apinski@marvell.com>
587
588 * expr.cc (do_store_flag): Improve for single bit testing
589 not against zero but against that single bit.
590
591 2023-06-04 Andrew Pinski <apinski@marvell.com>
592
593 * expr.cc (do_store_flag): Extend the one bit checking case
594 to handle the case where we don't have an and but rather still
595 one bit is known to be non-zero.
596
597 2023-06-04 Jeff Law <jlaw@ventanamicro.com>
598
599 * config/h8300/constraints.md (Zz): Make this a normal
600 constraint.
601 * config/h8300/h8300.cc (TARGET_LRA_P): Remove.
602 * config/h8300/logical.md (H8/SX bit patterns): Remove.
603
604 2023-06-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
605
606 * config/xtensa/xtensa.md (*btrue_INT_MIN, *eqne_INT_MIN):
607 New insn_and_split patterns.
608
609 2023-06-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
610
611 PR target/110109
612 * config/riscv/riscv-vector-builtins-bases.cc: Change expand approach.
613 * config/riscv/vector.md (@vlmul_extx2<mode>): Remove it.
614 (@vlmul_extx4<mode>): Ditto.
615 (@vlmul_extx8<mode>): Ditto.
616 (@vlmul_extx16<mode>): Ditto.
617 (@vlmul_extx32<mode>): Ditto.
618 (@vlmul_extx64<mode>): Ditto.
619 (*vlmul_extx2<mode>): Ditto.
620 (*vlmul_extx4<mode>): Ditto.
621 (*vlmul_extx8<mode>): Ditto.
622 (*vlmul_extx16<mode>): Ditto.
623 (*vlmul_extx32<mode>): Ditto.
624 (*vlmul_extx64<mode>): Ditto.
625
626 2023-06-04 Pan Li <pan2.li@intel.com>
627
628 * config/riscv/riscv-vector-builtins-types.def
629 (vfloat32mf2_t): Add vfloat32mf2_t type to vfncvt.f.f.w operations.
630 (vfloat32m1_t): Likewise.
631 (vfloat32m2_t): Likewise.
632 (vfloat32m4_t): Likewise.
633 (vfloat32m8_t): Likewise.
634 * config/riscv/riscv-vector-builtins.def: Fix typo in comments.
635 * config/riscv/vector-iterators.md: Add single to half machine
636 mode conversion.
637
638 2023-06-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
639
640 * config/riscv/autovec-opt.md (*<optab>not<mode>): Move to autovec-opt.md.
641 (*n<optab><mode>): Ditto.
642 * config/riscv/autovec.md (*<optab>not<mode>): Ditto.
643 (*n<optab><mode>): Ditto.
644 * config/riscv/vector.md: Ditto.
645
646 2023-06-04 Roger Sayle <roger@nextmovesoftware.com>
647
648 PR target/110083
649 * config/i386/i386-features.cc (scalar_chain::convert_compare):
650 Update or delete REG_EQUAL notes, converting CONST_INT and
651 CONST_WIDE_INT immediate operands to a suitable CONST_VECTOR.
652
653 2023-06-04 Jason Merrill <jason@redhat.com>
654
655 PR c++/97720
656 * tree-eh.cc (lower_resx): Pass the exception pointer to the
657 failure_decl.
658 * except.h: Tweak comment.
659
660 2023-06-04 Hans-Peter Nilsson <hp@axis.com>
661
662 * postreload.cc (move2add_use_add2_insn): Handle
663 trivial single_sets. Rename variable PAT to SET.
664 (move2add_use_add3_insn, reload_cse_move2add): Similar.
665
666 2023-06-04 Pan Li <pan2.li@intel.com>
667
668 * config/riscv/riscv-vector-builtins-types.def
669 (vfloat16mf4_t): Add the float16 type to DEF_RVV_F_OPS.
670 (vfloat16mf2_t): Likewise.
671 (vfloat16m1_t): Likewise.
672 (vfloat16m2_t): Likewise.
673 (vfloat16m4_t): Likewise.
674 (vfloat16m8_t): Likewise.
675 * config/riscv/riscv.md: Add vfloat16*_t to attr mode.
676 * config/riscv/vector-iterators.md: Add vfloat16*_t machine mode
677 to V, V_WHOLE, V_FRACT, VINDEX, VM, VEL and sew.
678 * config/riscv/vector.md: Add vfloat16*_t machine mode to sew,
679 vlmul and ratio.
680
681 2023-06-03 Fei Gao <gaofei@eswincomputing.com>
682
683 * config/riscv/riscv.cc (riscv_expand_epilogue): fix cfi issue with
684 correct offset.
685
686 2023-06-03 Die Li <lidie@eswincomputing.com>
687
688 * config/riscv/thead.md (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Delete.
689
690 2023-06-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
691
692 * config/riscv/predicates.md: Change INTVAL into UINTVAL.
693
694 2023-06-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
695
696 * config/riscv/vector.md: Add vector-opt.md.
697 * config/riscv/autovec-opt.md: New file.
698
699 2023-06-03 liuhongt <hongtao.liu@intel.com>
700
701 PR tree-optimization/110067
702 * gimple-ssa-store-merging.cc (find_bswap_or_nop): Don't try
703 bswap + rotate when TYPE_PRECISION(n->type) > n->range.
704
705 2023-06-03 liuhongt <hongtao.liu@intel.com>
706
707 PR target/92658
708 * config/i386/mmx.md (truncv2hiv2qi2): New define_insn.
709 (truncv2si<mode>2): Ditto.
710
711 2023-06-02 Andrew Pinski <apinski@marvell.com>
712
713 PR rtl-optimization/102733
714 * dse.cc (store_info): Add addrspace field.
715 (record_store): Record the address space
716 and check to make sure they are the same.
717
718 2023-06-02 Andrew Pinski <apinski@marvell.com>
719
720 PR rtl-optimization/110042
721 * ifcvt.cc (bbs_ok_for_cmove_arith): Allow paradoxical subregs.
722 (bb_valid_for_noce_process_p): Strip the subreg for the SET_DEST.
723
724 2023-06-02 Iain Sandoe <iain@sandoe.co.uk>
725
726 PR target/110044
727 * config/rs6000/rs6000.cc (darwin_rs6000_special_round_type_align):
728 Make sure that we do not have a cap on field alignment before altering
729 the struct layout based on the type alignment of the first entry.
730
731 2023-06-02 David Faust <david.faust@oracle.com>
732
733 PR debug/110073
734 * btfout.cc (btf_absolute_func_id): New function.
735 (btf_asm_func_type): Call it here. Change index parameter from
736 size_t to ctf_id_t. Use PRIu64 formatter.
737
738 2023-06-02 Alex Coplan <alex.coplan@arm.com>
739
740 * btfout.cc (btf_asm_type): Use PRIu64 instead of %lu for uint64_t.
741 (btf_asm_datasec_type): Likewise.
742
743 2023-06-02 Carl Love <cel@us.ibm.com>
744
745 * config/rs6000/rs6000-builtins.def (__builtin_altivec_tr_stxvrhx,
746 __builtin_altivec_tr_stxvrwx): Fix type of third argument.
747
748 2023-06-02 Jason Merrill <jason@redhat.com>
749
750 PR c++/110070
751 PR c++/105838
752 * tree.h (DECL_MERGEABLE): New.
753 * tree-core.h (struct tree_decl_common): Mention it.
754 * gimplify.cc (gimplify_init_constructor): Check it.
755 * cgraph.cc (symtab_node::address_can_be_compared_p): Likewise.
756 * varasm.cc (categorize_decl_for_section): Likewise.
757
758 2023-06-02 Uros Bizjak <ubizjak@gmail.com>
759
760 * rtl.h (stack_regs_mentioned): Change return type from int to bool.
761 * reg-stack.cc (struct_block_info_def): Change "done" to bool.
762 (stack_regs_mentioned_p): Change return type from int to bool
763 and adjust function body accordingly.
764 (stack_regs_mentioned): Ditto.
765 (check_asm_stack_operands): Ditto. Change "malformed_asm"
766 variable to bool.
767 (move_for_stack_reg): Recode handling of control_flow_insn_deleted.
768 (swap_rtx_condition_1): Change return type from int to bool
769 and adjust function body accordingly. Change "r" variable to bool.
770 (swap_rtx_condition): Change return type from int to bool
771 and adjust function body accordingly.
772 (subst_stack_regs_pat): Recode handling of control_flow_insn_deleted.
773 (subst_stack_regs): Ditto.
774 (convert_regs_entry): Change return type from int to bool and adjust
775 function body accordingly. Change "inserted" variable to bool.
776 (convert_regs_1): Recode handling of control_flow_insn_deleted.
777 (convert_regs_2): Recode handling of cfg_altered.
778 (convert_regs): Ditto. Change "inserted" variable to bool.
779
780 2023-06-02 Jason Merrill <jason@redhat.com>
781
782 PR c++/95226
783 * varasm.cc (output_constant) [REAL_TYPE]: Check that sizes match.
784 (initializer_constant_valid_p_1): Compare float precision.
785
786 2023-06-02 Alexander Monakov <amonakov@ispras.ru>
787
788 * doc/extend.texi (Vector Extensions): Clarify bitwise shift
789 semantics.
790
791 2023-06-02 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
792
793 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Change decrement IV flow.
794 (vect_set_loop_condition_partial_vectors): Ditto.
795
796 2023-06-02 Georg-Johann Lay <avr@gjlay.de>
797
798 PR target/110088
799 * config/avr/avr.md: Add an RTL peephole to optimize operations on
800 non-LD_REGS after a move from LD_REGS.
801 (piaop): New code iterator.
802
803 2023-06-02 Thomas Schwinge <thomas@codesourcery.com>
804
805 PR testsuite/66005
806 * doc/install.texi: Document (optional) Perl usage for parallel
807 testing of libgomp.
808
809 2023-06-02 Thomas Schwinge <thomas@codesourcery.com>
810
811 PR bootstrap/82856
812 * doc/install.texi (Perl): Back to requiring "Perl version 5.6.1 (or
813 later)".
814
815 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
816 KuanLin Chen <best124612@gmail.com>
817
818 * config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
819 * config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
820
821 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
822
823 * config/riscv/riscv-v.cc (expand_vec_series): Optimize reverse series index vector.
824
825 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
826
827 * config/riscv/predicates.md: Change INTVAL into UINTVAL.
828
829 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
830
831 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_VXRM_ENUM): Add
832 __RISCV_ prefix.
833 (DEF_RVV_FRM_ENUM): Ditto.
834
835 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
836
837 * config/riscv/riscv-vector-builtins-bases.cc: Change vwadd.wv/vwsub.wv
838 intrinsic API expander
839 * config/riscv/vector.md
840 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Remove it.
841 (@pred_single_widen_sub<any_extend:su><mode>): New pattern.
842 (@pred_single_widen_add<any_extend:su><mode>): New pattern.
843
844 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
845
846 * config/riscv/autovec.md (vec_perm<mode>): New pattern.
847 * config/riscv/predicates.md (vector_perm_operand): New predicate.
848 * config/riscv/riscv-protos.h (enum insn_type): New enum.
849 (expand_vec_perm): New function.
850 * config/riscv/riscv-v.cc (const_vec_all_in_range_p): Ditto.
851 (gen_const_vector_dup): Ditto.
852 (emit_vlmax_gather_insn): Ditto.
853 (emit_vlmax_masked_gather_mu_insn): Ditto.
854 (expand_vec_perm): Ditto.
855
856 2023-06-01 Jason Merrill <jason@redhat.com>
857
858 * doc/invoke.texi (-Wpedantic): Improve clarity.
859
860 2023-06-01 Uros Bizjak <ubizjak@gmail.com>
861
862 * rtl.h (exp_equiv_p): Change return type from int to bool.
863 * cse.cc (mention_regs): Change return type from int to bool
864 and adjust function body accordingly.
865 (exp_equiv_p): Ditto.
866 (insert_regs): Ditto. Change "modified" function argument to bool
867 and update usage accordingly.
868 (record_jump_cond): Remove always zero "reversed_nonequality"
869 function argument and update usage accordingly.
870 (fold_rtx): Change "changed" variable to bool.
871 (record_jump_equiv): Remove unneeded "reversed_nonequality" variable.
872 (is_dead_reg): Change return type from int to bool.
873
874 2023-06-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
875
876 * config/xtensa/xtensa.md (adddi3, subdi3):
877 New RTL generation patterns implemented according to the instruc-
878 tion idioms described in the Xtensa ISA reference manual (p. 600).
879
880 2023-06-01 Roger Sayle <roger@nextmovesoftware.com>
881 Uros Bizjak <ubizjak@gmail.com>
882
883 PR target/109973
884 * config/i386/i386-builtin.def (__builtin_ia32_ptestz128): Use new
885 CODE_for_sse4_1_ptestzv2di.
886 (__builtin_ia32_ptestc128): Use new CODE_for_sse4_1_ptestcv2di.
887 (__builtin_ia32_ptestz256): Use new CODE_for_avx_ptestzv4di.
888 (__builtin_ia32_ptestc256): Use new CODE_for_avx_ptestcv4di.
889 * config/i386/i386-expand.cc (ix86_expand_branch): Use CCZmode
890 when expanding UNSPEC_PTEST to compare against zero.
891 * config/i386/i386-features.cc (scalar_chain::convert_compare):
892 Likewise generate CCZmode UNSPEC_PTESTs when converting comparisons.
893 (general_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
894 (timode_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
895 * config/i386/i386-protos.h (ix86_match_ptest_ccmode): Prototype.
896 * config/i386/i386.cc (ix86_match_ptest_ccmode): New predicate to
897 check for suitable matching modes for the UNSPEC_PTEST pattern.
898 * config/i386/sse.md (define_split): When splitting UNSPEC_MOVMSK
899 to UNSPEC_PTEST, preserve the FLAG_REG mode as CCZ.
900 (*<sse4_1>_ptest<mode>): Add asterisk to hide define_insn. Remove
901 ":CC" mode of FLAGS_REG, instead use ix86_match_ptest_ccmode.
902 (<sse4_1>_ptestz<mode>): New define_expand to specify CCZ.
903 (<sse4_1>_ptestc<mode>): New define_expand to specify CCC.
904 (<sse4_1>_ptest<mode>): A define_expand using CC to preserve the
905 current behavior.
906 (*ptest<mode>_and): Specify CCZ to only perform this optimization
907 when only the Z flag is required.
908
909 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
910
911 PR target/109954
912 * doc/invoke.texi (x86 Options): Fix description of -m32 option.
913
914 2023-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
915
916 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>):
917 Add =r,m and =r,m alternatives.
918 (load_pair<DREG:mode><DREG2:mode>): Likewise.
919 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
920
921 2023-06-01 Pan Li <pan2.li@intel.com>
922
923 * common/config/riscv/riscv-common.cc: Add FP_16 mask to zvfhmin
924 and zvfh.
925 * config/riscv/genrvv-type-indexer.cc (valid_type): Allow FP16.
926 (main): Disable FP16 tuple.
927 * config/riscv/riscv-opts.h (MASK_VECTOR_ELEN_FP_16): New macro.
928 (TARGET_VECTOR_ELEN_FP_16): Ditto.
929 * config/riscv/riscv-vector-builtins.cc (check_required_extensions):
930 Add FP16.
931 * config/riscv/riscv-vector-builtins.def (vfloat16mf4_t): New type.
932 (vfloat16mf2_t): Ditto.
933 (vfloat16m1_t): Ditto.
934 (vfloat16m2_t): Ditto.
935 (vfloat16m4_t): Ditto.
936 (vfloat16m8_t): Ditto.
937 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_FP_16):
938 New macro.
939 * config/riscv/riscv-vector-switch.def (ENTRY): Allow FP16
940 machine mode based on TARGET_VECTOR_ELEN_FP_16.
941
942 2023-06-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
943
944 * config/riscv/riscv-vector-builtins.cc (register_frm): New function.
945 (DEF_RVV_FRM_ENUM): New macro.
946 (handle_pragma_vector): Add FRM enum
947 * config/riscv/riscv-vector-builtins.def (DEF_RVV_FRM_ENUM): New macro.
948 (RNE): Ditto.
949 (RTZ): Ditto.
950 (RDN): Ditto.
951 (RUP): Ditto.
952 (RMM): Ditto.
953
954 2023-05-31 Roger Sayle <roger@nextmovesoftware.com>
955 Richard Sandiford <richard.sandiford@arm.com>
956
957 * fold-const-call.cc (fold_const_call_ss) <CFN_BUILT_IN_BSWAP*>:
958 Update call to wi::bswap.
959 * simplify-rtx.cc (simplify_const_unary_operation) <case BSWAP>:
960 Update call to wi::bswap.
961 * tree-ssa-ccp.cc (evaluate_stmt) <case BUILT_IN_BSWAP*>:
962 Update calls to wi::bswap.
963 * wide-int.cc (wide_int_storage::bswap): Remove/rename to...
964 (wi::bswap_large): New function, with revised API.
965 * wide-int.h (wi::bswap): New (template) function prototype.
966 (wide_int_storage::bswap): Remove method.
967 (sext_large, zext_large): Consistent indentation/line wrapping.
968 (bswap_large): Prototype helper function containing implementation.
969 (wi::bswap): New template wrapper around bswap_large.
970
971 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
972
973 PR target/99195
974 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Rename to...
975 (<sur>dot_prod<vsi2qi><vczle><vczbe>): ... This.
976 (usdot_prod<vsi2qi>): Rename to...
977 (usdot_prod<vsi2qi><vczle><vczbe>): ... This.
978 (aarch64_<sur>dot_lane<vsi2qi>): Rename to...
979 (aarch64_<sur>dot_lane<vsi2qi><vczle><vczbe>): ... This.
980 (aarch64_<sur>dot_laneq<vsi2qi>): Rename to...
981 (aarch64_<sur>dot_laneq<vsi2qi><vczle><vczbe>): ... This.
982 (aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi>): Rename to...
983 (aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi><vczle><vczbe>):
984 ... This.
985
986 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
987
988 PR target/99195
989 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh<mode>): Rename to...
990 (aarch64_sq<r>dmulh<mode><vczle><vczbe>): ... This.
991 (aarch64_sq<r>dmulh_n<mode>): Rename to...
992 (aarch64_sq<r>dmulh_n<mode><vczle><vczbe>): ... This.
993 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
994 (aarch64_sq<r>dmulh_lane<mode><vczle><vczbe>): ... This.
995 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
996 (aarch64_sq<r>dmulh_laneq<mode><vczle><vczbe>): ... This.
997 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): Rename to...
998 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode><vczle><vczbe>): ... This.
999 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Rename to...
1000 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode><vczle><vczbe>): ... This.
1001 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Rename to...
1002 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode><vczle><vczbe>): ... This.
1003
1004 2023-05-31 David Faust <david.faust@oracle.com>
1005
1006 * btfout.cc (btf_kind_names): New.
1007 (btf_kind_name): New.
1008 (btf_absolute_var_id): New utility function.
1009 (btf_relative_var_id): Likewise.
1010 (btf_relative_func_id): Likewise.
1011 (btf_absolute_datasec_id): Likewise.
1012 (btf_asm_type_ref): New.
1013 (btf_asm_type): Update asm comments and use btf_asm_type_ref ().
1014 (btf_asm_array): Likewise. Accept ctf_container_ref parameter.
1015 (btf_asm_varent): Likewise.
1016 (btf_asm_func_arg): Likewise.
1017 (btf_asm_datasec_entry): Likewise.
1018 (btf_asm_datasec_type): Likewise.
1019 (btf_asm_func_type): Likewise. Add index parameter.
1020 (btf_asm_enum_const): Likewise.
1021 (btf_asm_sou_member): Likewise.
1022 (output_btf_vars): Update btf_asm_* call accordingly.
1023 (output_asm_btf_sou_fields): Likewise.
1024 (output_asm_btf_enum_list): Likewise.
1025 (output_asm_btf_func_args_list): Likewise.
1026 (output_asm_btf_vlen_bytes): Likewise.
1027 (output_btf_func_types): Add ctf_container_ref parameter.
1028 Pass it to btf_asm_func_type.
1029 (output_btf_datasec_types): Update btf_asm_datsec_type call similarly.
1030 (btf_output): Update output_btf_func_types call similarly.
1031
1032 2023-05-31 David Faust <david.faust@oracle.com>
1033
1034 * btfout.cc (btf_asm_type): Add dedicated cases for BTF_KIND_ARRAY
1035 and BTF_KIND_FWD which do not use the size/type field at all.
1036
1037 2023-05-31 Uros Bizjak <ubizjak@gmail.com>
1038
1039 * rtl.h (subreg_lowpart_p): Change return type from int to bool.
1040 (active_insn_p): Ditto.
1041 (in_sequence_p): Ditto.
1042 (unshare_all_rtl): Change return type from int to void.
1043 * emit-rtl.h (mem_expr_equal_p): Change return type from int to bool.
1044 * emit-rtl.cc (subreg_lowpart_p): Change return type from int to bool
1045 and adjust function body accordingly.
1046 (mem_expr_equal_p): Ditto.
1047 (unshare_all_rtl): Change return type from int to void
1048 and adjust function body accordingly.
1049 (verify_rtx_sharing): Remove unneeded return.
1050 (active_insn_p): Change return type from int to bool
1051 and adjust function body accordingly.
1052 (in_sequence_p): Ditto.
1053
1054 2023-05-31 Uros Bizjak <ubizjak@gmail.com>
1055
1056 * rtl.h (true_dependence): Change return type from int to bool.
1057 (canon_true_dependence): Ditto.
1058 (read_dependence): Ditto.
1059 (anti_dependence): Ditto.
1060 (canon_anti_dependence): Ditto.
1061 (output_dependence): Ditto.
1062 (canon_output_dependence): Ditto.
1063 (may_alias_p): Ditto.
1064 * alias.h (alias_sets_conflict_p): Ditto.
1065 (alias_sets_must_conflict_p): Ditto.
1066 (objects_must_conflict_p): Ditto.
1067 (nonoverlapping_memrefs_p): Ditto.
1068 * alias.cc (rtx_equal_for_memref_p): Remove forward declaration.
1069 (record_set): Ditto.
1070 (base_alias_check): Ditto.
1071 (find_base_value): Ditto.
1072 (mems_in_disjoint_alias_sets_p): Ditto.
1073 (get_alias_set_entry): Ditto.
1074 (decl_for_component_ref): Ditto.
1075 (write_dependence_p): Ditto.
1076 (memory_modified_1): Ditto.
1077 (mems_in_disjoint_alias_set_p): Change return type from int to bool
1078 and adjust function body accordingly.
1079 (alias_sets_conflict_p): Ditto.
1080 (alias_sets_must_conflict_p): Ditto.
1081 (objects_must_conflict_p): Ditto.
1082 (rtx_equal_for_memref_p): Ditto.
1083 (base_alias_check): Ditto.
1084 (read_dependence): Ditto.
1085 (nonoverlapping_memrefs_p): Ditto.
1086 (true_dependence_1): Ditto.
1087 (true_dependence): Ditto.
1088 (canon_true_dependence): Ditto.
1089 (write_dependence_p): Ditto.
1090 (anti_dependence): Ditto.
1091 (canon_anti_dependence): Ditto.
1092 (output_dependence): Ditto.
1093 (canon_output_dependence): Ditto.
1094 (may_alias_p): Ditto.
1095 (init_alias_analysis): Change "changed" variable to bool.
1096
1097 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1098
1099 * config/riscv/autovec.md (<optab><v_double_trunc><mode>2): Change
1100 expand into define_insn_and_split.
1101
1102 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1103
1104 * config/riscv/vector.md: Remove FRM.
1105
1106 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1107
1108 * config/riscv/vector.md: Remove FRM.
1109
1110 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1111
1112 * config/riscv/vector.md: Remove FRM.
1113
1114 2023-05-31 Christophe Lyon <christophe.lyon@linaro.org>
1115
1116 PR target/110039
1117 * config/aarch64/aarch64.md (aarch64_rev16si2_alt3): New
1118 pattern.
1119
1120 2023-05-31 Richard Biener <rguenther@suse.de>
1121
1122 PR ipa/109983
1123 PR tree-optimization/109143
1124 * tree-ssa-structalias.cc (struct topo_info): Remove.
1125 (init_topo_info): Likewise.
1126 (free_topo_info): Likewise.
1127 (compute_topo_order): Simplify API, put the component
1128 with ESCAPED last so it's processed first.
1129 (topo_visit): Adjust.
1130 (solve_graph): Likewise.
1131
1132 2023-05-31 Richard Biener <rguenther@suse.de>
1133
1134 * tree-ssa-structalias.cc (constraint_stats::num_avoided_edges):
1135 New.
1136 (add_graph_edge): Count redundant edges we avoid to create.
1137 (dump_sa_stats): Dump them.
1138 (ipa_pta_execute): Do not dump generating constraints when
1139 we are not dumping them.
1140
1141 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1142
1143 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>): Rewrite
1144 output template to avoid explicit switch on which_alternative.
1145 (*aarch64_simd_mov<VQMOV:mode>): Likewise.
1146 (and<mode>3): Likewise.
1147 (ior<mode>3): Likewise.
1148 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Likewise.
1149
1150 2023-05-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1151
1152 * config/xtensa/predicates.md (xtensa_bit_join_operator):
1153 New predicate.
1154 * config/xtensa/xtensa.md (ior_op): Remove.
1155 (*shlrd_reg): Rename from "*shlrd_reg_<code>", and add the
1156 insn_and_split pattern of the same name to express and capture
1157 the bit-combining operation with both sides swapped.
1158 In addition, replace use of code iterator with new operator
1159 predicate.
1160 (*shlrd_const, *shlrd_per_byte):
1161 Likewise regarding the code iterator.
1162
1163 2023-05-31 Cui, Lili <lili.cui@intel.com>
1164
1165 PR tree-optimization/110038
1166 * params.opt: Add a limit on tree-reassoc-width.
1167 * tree-ssa-reassoc.cc
1168 (rewrite_expr_tree_parallel): Add width limit.
1169
1170 2023-05-31 Pan Li <pan2.li@intel.com>
1171
1172 * common/config/riscv/riscv-common.cc:
1173 (riscv_implied_info): Add zvfh item.
1174 (riscv_ext_version_table): Ditto.
1175 (riscv_ext_flag_table): Ditto.
1176 * config/riscv/riscv-opts.h (MASK_ZVFH): New macro.
1177 (TARGET_ZVFH): Ditto.
1178
1179 2023-05-30 liuhongt <hongtao.liu@intel.com>
1180
1181 PR tree-optimization/108804
1182 * tree-vect-patterns.cc (vect_get_range_info): Remove static.
1183 * tree-vect-stmts.cc (vect_create_vectorized_demotion_stmts):
1184 Add new parameter narrow_src_p.
1185 (vectorizable_conversion): Enhance NARROW FLOAT_EXPR
1186 vectorization by truncating to lower precision.
1187 * tree-vectorizer.h (vect_get_range_info): New declare.
1188
1189 2023-05-30 Vladimir N. Makarov <vmakarov@redhat.com>
1190
1191 * lra-int.h (lra_update_sp_offset): Add the prototype.
1192 * lra.cc (setup_sp_offset): Change the return type. Use
1193 lra_update_sp_offset.
1194 * lra-eliminations.cc (lra_update_sp_offset): New function.
1195 (lra_process_new_insns): Push the current insn to reprocess if the
1196 input reload changes sp offset.
1197
1198 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
1199
1200 PR target/110041
1201 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
1202 Fix misleading identation.
1203
1204 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
1205
1206 * rtl.h (comparison_dominates_p): Change return type from int to bool.
1207 (condjump_p): Ditto.
1208 (any_condjump_p): Ditto.
1209 (any_uncondjump_p): Ditto.
1210 (simplejump_p): Ditto.
1211 (returnjump_p): Ditto.
1212 (eh_returnjump_p): Ditto.
1213 (onlyjump_p): Ditto.
1214 (invert_jump_1): Ditto.
1215 (invert_jump): Ditto.
1216 (rtx_renumbered_equal_p): Ditto.
1217 (redirect_jump_1): Ditto.
1218 (redirect_jump): Ditto.
1219 (condjump_in_parallel_p): Ditto.
1220 * jump.cc (invert_exp_1): Adjust forward declaration.
1221 (comparison_dominates_p): Change return type from int to bool
1222 and adjust function body accordingly.
1223 (simplejump_p): Ditto.
1224 (condjump_p): Ditto.
1225 (condjump_in_parallel_p): Ditto.
1226 (any_uncondjump_p): Ditto.
1227 (any_condjump_p): Ditto.
1228 (returnjump_p): Ditto.
1229 (eh_returnjump_p): Ditto.
1230 (onlyjump_p): Ditto.
1231 (redirect_jump_1): Ditto.
1232 (redirect_jump): Ditto.
1233 (invert_exp_1): Ditto.
1234 (invert_jump_1): Ditto.
1235 (invert_jump): Ditto.
1236 (rtx_renumbered_equal_p): Ditto.
1237
1238 2023-05-30 Andrew Pinski <apinski@marvell.com>
1239
1240 * fold-const.cc (minmax_from_comparison): Add support for NE_EXPR.
1241 * match.pd ((cond (cmp (convert1? x) c1) (convert2? x) c2) pattern):
1242 Add ne as a possible cmp.
1243 ((a CMP b) ? minmax<a, c> : minmax<b, c> pattern): Likewise.
1244
1245 2023-05-30 Andrew Pinski <apinski@marvell.com>
1246
1247 * match.pd (`(a CMP CST1) ? max<a,CST2> : a`): New
1248 pattern.
1249
1250 2023-05-30 Roger Sayle <roger@nextmovesoftware.com>
1251
1252 * simplify-rtx.cc (simplify_binary_operation_1) <AND>: Use wide-int
1253 instead of HWI_COMPUTABLE_MODE_P and UINTVAL in transformation of
1254 (and (extend X) C) as (zero_extend (and X C)), to also optimize
1255 modes wider than HOST_WIDE_INT.
1256
1257 2023-05-30 Roger Sayle <roger@nextmovesoftware.com>
1258
1259 PR target/107172
1260 * simplify-rtx.cc (simplify_const_relational_operation): Return
1261 early if we have a MODE_CC comparison that isn't a COMPARE against
1262 const0_rtx.
1263
1264 2023-05-30 Robin Dapp <rdapp@ventanamicro.com>
1265
1266 * config/riscv/riscv.cc (riscv_const_insns): Allow
1267 const_vec_duplicates.
1268
1269 2023-05-30 liuhongt <hongtao.liu@intel.com>
1270
1271 PR middle-end/108938
1272 * gimple-ssa-store-merging.cc (is_bswap_or_nop_p): New
1273 function, cut from original find_bswap_or_nop function.
1274 (find_bswap_or_nop): Add a new parameter, detect bswap +
1275 rotate and save rotate result in the new parameter.
1276 (bswap_replace): Add a new parameter to indicate rotate and
1277 generate rotate stmt if needed.
1278 (maybe_optimize_vector_constructor): Adjust for new rotate
1279 parameter in the upper 2 functions.
1280 (pass_optimize_bswap::execute): Ditto.
1281 (imm_store_chain_info::output_merged_store): Ditto.
1282
1283 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1284
1285 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>): Delete.
1286 (aarch64_<su>adalp<mode>): New define_expand.
1287 (*aarch64_<su>adalp<mode><vczle><vczbe>_insn): New define_insn.
1288 (aarch64_<su>addlp<mode>): Convert to define_expand.
1289 (*aarch64_<su>addlp<mode><vczle><vczbe>_insn): New define_insn.
1290 * config/aarch64/iterators.md (UNSPEC_SADDLP, UNSPEC_UADDLP): Delete.
1291 (ADALP): Likewise.
1292 (USADDLP): Likewise.
1293 * config/aarch64/predicates.md (vect_par_cnst_even_or_odd_half): Define.
1294
1295 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1296
1297 * config/aarch64/aarch64-builtins.cc (VAR1): Move to after inclusion of
1298 aarch64-builtin-iterators.h. Add definition to remap shadd, uhadd,
1299 srhadd, urhadd builtin codes for standard optab ones.
1300 * config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor): Rename to...
1301 (<su_optab>avg<mode>3_floor): ... This. Expand to RTL codes rather than
1302 unspec.
1303 (<u>avg<mode>3_ceil): Rename to...
1304 (<su_optab>avg<mode>3_ceil): ... This. Expand to RTL codes rather than
1305 unspec.
1306 (aarch64_<su>hsub<mode>): New define_expand.
1307 (aarch64_<sur>h<addsub><mode><vczle><vczbe>): Split into...
1308 (*aarch64_<su>h<ADDSUB:optab><mode><vczle><vczbe>_insn): ... This...
1309 (*aarch64_<su>rhadd<mode><vczle><vczbe>_insn): ... And this.
1310
1311 2023-05-30 Andreas Schwab <schwab@suse.de>
1312
1313 PR target/110036
1314 * config/riscv/riscv.cc (riscv_asan_shadow_offset): Update to
1315 match libsanitizer.
1316
1317 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1318
1319 * config/aarch64/aarch64-modes.def (V16HI, V8SI, V4DI, V2TI): New modes.
1320 * config/aarch64/aarch64-protos.h (aarch64_const_vec_rnd_cst_p):
1321 Declare prototype.
1322 (aarch64_const_vec_rsra_rnd_imm_p): Likewise.
1323 * config/aarch64/aarch64-simd.md (*aarch64_simd_sra<mode>): Rename to...
1324 (aarch64_<sra_op>sra_n<mode>_insn): ... This.
1325 (aarch64_<sra_op>rsra_n<mode>_insn): New define_insn.
1326 (aarch64_<sra_op>sra_n<mode>): New define_expand.
1327 (aarch64_<sra_op>rsra_n<mode>): Likewise.
1328 (aarch64_<sur>sra_n<mode>): Rename to...
1329 (aarch64_<sur>sra_ndi): ... This.
1330 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Add
1331 any_target_p argument.
1332 (aarch64_extract_vec_duplicate_wide_int): Define.
1333 (aarch64_const_vec_rsra_rnd_imm_p): Likewise.
1334 (aarch64_const_vec_rnd_cst_p): Likewise.
1335 (aarch64_vector_mode_supported_any_target_p): Likewise.
1336 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
1337 * config/aarch64/iterators.md (UNSPEC_SRSRA, UNSPEC_URSRA): Delete.
1338 (VSRA): Adjust for the above.
1339 (sur): Likewise.
1340 (V2XWIDE): New mode_attr.
1341 (vec_or_offset): Likewise.
1342 (SHIFTEXTEND): Likewise.
1343 * config/aarch64/predicates.md (aarch64_simd_rsra_rnd_imm_vec): New
1344 predicate.
1345 * doc/tm.texi (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
1346 clarify that it applies to current target options.
1347 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Document.
1348 * doc/tm.texi.in: Regenerate.
1349 * stor-layout.cc (mode_for_vector): Check
1350 vector_mode_supported_any_target_p when iterating through vector modes.
1351 * target.def (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
1352 clarify that it applies to current target options.
1353 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Define.
1354
1355 2023-05-30 Lili Cui <lili.cui@intel.com>
1356
1357 PR tree-optimization/98350
1358 * tree-ssa-reassoc.cc
1359 (rewrite_expr_tree_parallel): Rewrite this function.
1360 (rank_ops_for_fma): New.
1361 (reassociate_bb): Handle new function.
1362
1363 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
1364
1365 * rtl.h (rtx_addr_can_trap_p): Change return type from int to bool.
1366 (rtx_unstable_p): Ditto.
1367 (reg_mentioned_p): Ditto.
1368 (reg_referenced_p): Ditto.
1369 (reg_used_between_p): Ditto.
1370 (reg_set_between_p): Ditto.
1371 (modified_between_p): Ditto.
1372 (no_labels_between_p): Ditto.
1373 (modified_in_p): Ditto.
1374 (reg_set_p): Ditto.
1375 (multiple_sets): Ditto.
1376 (set_noop_p): Ditto.
1377 (noop_move_p): Ditto.
1378 (reg_overlap_mentioned_p): Ditto.
1379 (dead_or_set_p): Ditto.
1380 (dead_or_set_regno_p): Ditto.
1381 (find_reg_fusage): Ditto.
1382 (find_regno_fusage): Ditto.
1383 (side_effects_p): Ditto.
1384 (volatile_refs_p): Ditto.
1385 (volatile_insn_p): Ditto.
1386 (may_trap_p_1): Ditto.
1387 (may_trap_p): Ditto.
1388 (may_trap_or_fault_p): Ditto.
1389 (computed_jump_p): Ditto.
1390 (auto_inc_p): Ditto.
1391 (loc_mentioned_in_p): Ditto.
1392 * rtlanal.cc (computed_jump_p_1): Adjust forward declaration.
1393 (rtx_unstable_p): Change return type from int to bool
1394 and adjust function body accordingly.
1395 (rtx_addr_can_trap_p): Ditto.
1396 (reg_mentioned_p): Ditto.
1397 (no_labels_between_p): Ditto.
1398 (reg_used_between_p): Ditto.
1399 (reg_referenced_p): Ditto.
1400 (reg_set_between_p): Ditto.
1401 (reg_set_p): Ditto.
1402 (modified_between_p): Ditto.
1403 (modified_in_p): Ditto.
1404 (multiple_sets): Ditto.
1405 (set_noop_p): Ditto.
1406 (noop_move_p): Ditto.
1407 (reg_overlap_mentioned_p): Ditto.
1408 (dead_or_set_p): Ditto.
1409 (dead_or_set_regno_p): Ditto.
1410 (find_reg_fusage): Ditto.
1411 (find_regno_fusage): Ditto.
1412 (remove_node_from_insn_list): Ditto.
1413 (volatile_insn_p): Ditto.
1414 (volatile_refs_p): Ditto.
1415 (side_effects_p): Ditto.
1416 (may_trap_p_1): Ditto.
1417 (may_trap_p): Ditto.
1418 (may_trap_or_fault_p): Ditto.
1419 (computed_jump_p): Ditto.
1420 (auto_inc_p): Ditto.
1421 (loc_mentioned_in_p): Ditto.
1422 * combine.cc (can_combine_p): Update indirect function.
1423
1424 2023-05-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1425
1426 * config/riscv/autovec.md (<optab><mode><vconvert>2): New pattern.
1427 * config/riscv/iterators.md: New attribute.
1428 * config/riscv/vector-iterators.md: New attribute.
1429
1430 2023-05-30 From: Juzhe-Zhong <juzhe.zhong@rivai.ai>
1431
1432 * config/riscv/riscv.md: Fix signed and unsigned comparison
1433 warning.
1434
1435 2023-05-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1436
1437 * config/riscv/autovec.md (fnma<mode>4): New pattern.
1438 (*fnma<mode>): Ditto.
1439
1440 2023-05-29 Die Li <lidie@eswincomputing.com>
1441
1442 * config/riscv/riscv.cc (riscv_expand_conditional_move_onesided):
1443 Delete.
1444 (riscv_expand_conditional_move): Reuse the TARGET_SFB_ALU expand
1445 process for TARGET_XTHEADCONDMOV
1446
1447 2023-05-29 Uros Bizjak <ubizjak@gmail.com>
1448
1449 PR target/110021
1450 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also require
1451 TARGET_AVX512BW to generate truncv16hiv16qi2.
1452
1453 2023-05-29 Jivan Hakobyan <jivanhakobyan9@gmail.com>
1454
1455 * config/riscv/riscv.md (and<mode>3): New expander.
1456 (*and<mode>3) New pattern.
1457 * config/riscv/predicates.md (arith_operand_or_mode_mask): New
1458 predicate.
1459
1460 2023-05-29 Pan Li <pan2.li@intel.com>
1461
1462 * config/riscv/riscv-v.cc (emit_vlmax_insn): Remove unnecessary
1463 comments and rename local variables.
1464 (emit_nonvlmax_insn): Diito.
1465 (emit_vlmax_merge_insn): Ditto.
1466 (emit_vlmax_cmp_insn): Ditto.
1467 (emit_vlmax_cmp_mu_insn): Ditto.
1468 (emit_scalar_move_insn): Ditto.
1469
1470 2023-05-29 Pan Li <pan2.li@intel.com>
1471
1472 * config/riscv/riscv-v.cc (emit_vlmax_insn): Eliminate the
1473 magic number.
1474 (emit_nonvlmax_insn): Ditto.
1475 (emit_vlmax_merge_insn): Ditto.
1476 (emit_vlmax_cmp_insn): Ditto.
1477 (emit_vlmax_cmp_mu_insn): Ditto.
1478 (expand_vec_series): Ditto.
1479
1480 2023-05-29 Pan Li <pan2.li@intel.com>
1481
1482 * config/riscv/riscv-protos.h (enum insn_type): New type.
1483 * config/riscv/riscv-v.cc (RVV_INSN_OPERANDS_MAX): New macro.
1484 (rvv_builder::can_duplicate_repeating_sequence_p): Align the referenced
1485 class member.
1486 (rvv_builder::get_merged_repeating_sequence): Ditto.
1487 (rvv_builder::repeating_sequence_use_merge_profitable_p): New function
1488 to evaluate the optimization cost.
1489 (rvv_builder::get_merge_scalar_mask): New function to get the merge
1490 mask.
1491 (emit_scalar_move_insn): New function to emit vmv.s.x.
1492 (emit_vlmax_integer_move_insn): New function to emit vlmax vmv.v.x.
1493 (emit_nonvlmax_integer_move_insn): New function to emit nonvlmax
1494 vmv.v.x.
1495 (get_repeating_sequence_dup_machine_mode): New function to get the dup
1496 machine mode.
1497 (expand_vector_init_merge_repeating_sequence): New function to perform
1498 the optimization.
1499 (expand_vec_init): Add this vector init optimization.
1500 * config/riscv/riscv.h (BITS_PER_WORD): New macro.
1501
1502 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
1503
1504 * tree-ssa-loop-manip.cc (create_iv): Try harder to find a SLOC to
1505 put onto the increment when it is inserted after the position.
1506
1507 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
1508
1509 * match.pd ((T)P - (T)(P + A) -> -(T) A): Avoid artificial overflow
1510 on constants.
1511
1512 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1513
1514 * config/riscv/riscv-vsetvl.cc (source_equal_p): Fix ICE.
1515
1516 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1517
1518 * config/riscv/autovec.md (fma<mode>4): New pattern.
1519 (*fma<mode>): Ditto.
1520 * config/riscv/riscv-protos.h (enum insn_type): New enum.
1521 (emit_vlmax_ternary_insn): New function.
1522 * config/riscv/riscv-v.cc (emit_vlmax_ternary_insn): Ditto.
1523
1524 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1525
1526 * config/riscv/vector.md: Fix vimuladd instruction bug.
1527
1528 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1529
1530 * config/riscv/riscv.cc (global_state_unknown_p): New function.
1531 (riscv_mode_after): Fix incorrect VXM.
1532
1533 2023-05-29 Pan Li <pan2.li@intel.com>
1534
1535 * common/config/riscv/riscv-common.cc:
1536 (riscv_implied_info): Add zvfhmin item.
1537 (riscv_ext_version_table): Ditto.
1538 (riscv_ext_flag_table): Ditto.
1539 * config/riscv/riscv-opts.h (MASK_ZVFHMIN): New macro.
1540 (TARGET_ZFHMIN): Align indent.
1541 (TARGET_ZFH): Ditto.
1542 (TARGET_ZVFHMIN): New macro.
1543
1544 2023-05-27 liuhongt <hongtao.liu@intel.com>
1545
1546 PR target/100711
1547 * config/i386/sse.md (*andnot<mode>3): Extend below splitter
1548 to VI_AVX2 to cover more modes.
1549
1550 2023-05-27 liuhongt <hongtao.liu@intel.com>
1551
1552 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
1553 Remove ATOM and ICELAKE(and later) core processors.
1554
1555 2023-05-26 Robin Dapp <rdapp@ventanamicro.com>
1556
1557 * config/riscv/autovec.md (<optab><mode>2): Add vneg/vnot.
1558 (abs<mode>2): Add.
1559 * config/riscv/riscv-protos.h (emit_vlmax_masked_mu_insn):
1560 Declare.
1561 * config/riscv/riscv-v.cc (emit_vlmax_masked_mu_insn): New
1562 function.
1563
1564 2023-05-26 Robin Dapp <rdapp@ventanamicro.com>
1565 Juzhe Zhong <juzhe.zhong@rivai.ai>
1566
1567 * config/riscv/autovec.md (<optab><v_double_trunc><mode>2): New
1568 expander.
1569 (<optab><v_quad_trunc><mode>2): Dito.
1570 (<optab><v_oct_trunc><mode>2): Dito.
1571 (trunc<mode><v_double_trunc>2): Dito.
1572 (trunc<mode><v_quad_trunc>2): Dito.
1573 (trunc<mode><v_oct_trunc>2): Dito.
1574 * config/riscv/riscv-protos.h (vectorize_related_mode): Define.
1575 (autovectorize_vector_modes): Define.
1576 * config/riscv/riscv-v.cc (vectorize_related_mode): Implement
1577 hook.
1578 (autovectorize_vector_modes): Implement hook.
1579 * config/riscv/riscv.cc (riscv_autovectorize_vector_modes):
1580 Implement target hook.
1581 (riscv_vectorize_related_mode): Implement target hook.
1582 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
1583 (TARGET_VECTORIZE_RELATED_MODE): Define.
1584 * config/riscv/vector-iterators.md: Add lowercase versions of
1585 mode_attr iterators.
1586
1587 2023-05-26 Andrew Stubbs <ams@codesourcery.com>
1588 Tobias Burnus <tobias@codesourcery.com>
1589
1590 * config/gcn/gcn-hsa.h (XNACKOPT): New macro.
1591 (ASM_SPEC): Use XNACKOPT.
1592 * config/gcn/gcn-opts.h (enum sram_ecc_type): Rename to ...
1593 (enum hsaco_attr_type): ... this, and generalize the names.
1594 (TARGET_XNACK): New macro.
1595 * config/gcn/gcn.cc (gcn_option_override): Update to sorry for all
1596 but -mxnack=off.
1597 (output_file_start): Update xnack handling.
1598 (gcn_hsa_declare_function_name): Use TARGET_XNACK.
1599 * config/gcn/gcn.opt (-mxnack): Add the "on/off/any" syntax.
1600 (sram_ecc_type): Rename to ...
1601 (hsaco_attr_type: ... this.)
1602 * config/gcn/mkoffload.cc (SET_XNACK_ANY): New macro.
1603 (TEST_XNACK): Delete.
1604 (TEST_XNACK_ANY): New macro.
1605 (TEST_XNACK_ON): New macro.
1606 (main): Support the new -mxnack=on/off/any syntax.
1607 * doc/invoke.texi (-mxnack): Update for new syntax.
1608
1609 2023-05-26 Andrew Pinski <apinski@marvell.com>
1610
1611 * genmatch.cc (emit_debug_printf): New function.
1612 (dt_simplify::gen_1): Emit printf into the code
1613 before the `return true` or returning the folded result
1614 instead of emitting it always.
1615
1616 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1617
1618 * config/xtensa/xtensa-protos.h
1619 (xtensa_expand_block_set_unrolled_loop,
1620 xtensa_expand_block_set_small_loop): Remove.
1621 (xtensa_expand_block_set): New prototype.
1622 * config/xtensa/xtensa.cc
1623 (xtensa_expand_block_set_libcall): New subfunction.
1624 (xtensa_expand_block_set_unrolled_loop,
1625 xtensa_expand_block_set_small_loop): Rewrite as subfunctions.
1626 (xtensa_expand_block_set): New function that calls the above
1627 subfunctions.
1628 * config/xtensa/xtensa.md (memsetsi): Change to invoke only
1629 xtensa_expand_block_set().
1630
1631 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1632
1633 * config/xtensa/xtensa-protos.h (xtensa_m1_or_1_thru_15):
1634 New prototype.
1635 * config/xtensa/xtensa.cc (xtensa_m1_or_1_thru_15):
1636 New function.
1637 * config/xtensa/constraints.md (O):
1638 Change to use the above function.
1639 * config/xtensa/xtensa.md (*subsi3_from_const):
1640 New insn_and_split pattern.
1641
1642 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1643
1644 * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3):
1645 Retract excessive line folding, and correct the value of
1646 the "length" insn attribute related to TARGET_DENSITY.
1647 (*extzvsi-1bit_addsubx): Ditto.
1648
1649 2023-05-26 Uros Bizjak <ubizjak@gmail.com>
1650
1651 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi):
1652 Do not disable call to ix86_expand_vecop_qihi2.
1653
1654 2023-05-26 liuhongt <hongtao.liu@intel.com>
1655
1656 PR target/109610
1657 PR target/109858
1658 * ira-costs.cc (scan_one_insn): Only use NO_REGS in cost
1659 calculation when !hard_regno_mode_ok for GENERAL_REGS and
1660 mode, otherwise still use GENERAL_REGS.
1661
1662 2023-05-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1663
1664 * config/riscv/riscv.cc (vector_zero_call_used_regs): Add
1665 explict VL and drop VL in ops.
1666
1667 2023-05-25 Jin Ma <jinma@linux.alibaba.com>
1668
1669 * sched-deps.cc (sched_macro_fuse_insns): Insns should not be fusion
1670 in different BB blocks.
1671
1672 2023-05-25 Uros Bizjak <ubizjak@gmail.com>
1673
1674 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
1675 Rewrite to expand to 2x-wider (e.g. V16QI -> V16HImode)
1676 instructions when available. Emulate truncation via
1677 ix86_expand_vec_perm_const_1 when native truncate insn
1678 is not available.
1679 (ix86_expand_vecop_qihi_partial) <case MULT>: Use pmovzx
1680 when available. Trivially rename some variables.
1681 (ix86_expand_vecop_qihi): Unconditionally call ix86_expand_vecop_qihi2.
1682 * config/i386/i386.cc (ix86_multiplication_cost): Rewrite cost
1683 calculation of V*QImode emulations to account for generation of
1684 2x-wider mode instructions.
1685 (ix86_shift_rotate_cost): Update cost calculation of V*QImode
1686 emulations to account for generation of 2x-wider mode instructions.
1687
1688 2023-05-25 Georg-Johann Lay <avr@gjlay.de>
1689
1690 PR target/104327
1691 * config/avr/avr.cc (avr_can_inline_p): New static function.
1692 (TARGET_CAN_INLINE_P): Define to that function.
1693
1694 2023-05-25 Georg-Johann Lay <avr@gjlay.de>
1695
1696 PR target/82931
1697 * config/avr/avr.md (*movbitqi.0): Rename to *movbit<mode>.0-6.
1698 Handle any bit position and use mode QISI.
1699 * config/avr/avr.cc (avr_rtx_costs_1) [IOR]: Return a cost
1700 of 2 insns for bit-transfer of respective style.
1701
1702 2023-05-25 Christophe Lyon <christophe.lyon@linaro.org>
1703
1704 * config/arm/iterators.md (MVE_6): Remove.
1705 * config/arm/mve.md: Replace MVE_6 with MVE_5.
1706
1707 2023-05-25 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1708 Richard Sandiford <richard.sandiford@arm.com>
1709
1710 * tree-vect-loop-manip.cc (vect_adjust_loop_lens_control): New
1711 function.
1712 (vect_set_loop_controls_directly): Add decrement IV support.
1713 (vect_set_loop_condition_partial_vectors): Ditto.
1714 * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): New
1715 variable.
1716 * tree-vectorizer.h (LOOP_VINFO_USING_DECREMENTING_IV_P): New
1717 macro.
1718
1719 2023-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1720
1721 PR target/99195
1722 * config/aarch64/aarch64-simd.md (aarch64_fcadd<rot><mode>): Rename to...
1723 (aarch64_fcadd<rot><mode><vczle><vczbe>): ... This.
1724 Fix canonicalization of PLUS operands.
1725 (aarch64_fcmla<rot><mode>): Rename to...
1726 (aarch64_fcmla<rot><mode><vczle><vczbe>): ... This.
1727 Fix canonicalization of PLUS operands.
1728 (aarch64_fcmla_lane<rot><mode>): Rename to...
1729 (aarch64_fcmla_lane<rot><mode><vczle><vczbe>): ... This.
1730 Fix canonicalization of PLUS operands.
1731 (aarch64_fcmla_laneq<rot>v4hf): Rename to...
1732 (aarch64_fcmla_laneq<rot>v4hf<vczle><vczbe>): ... This.
1733 Fix canonicalization of PLUS operands.
1734 (aarch64_fcmlaq_lane<rot><mode>): Fix canonicalization of PLUS operands.
1735
1736 2023-05-25 Chris Sidebottom <chris.sidebottom@arm.com>
1737
1738 * config/arm/arm.md (rbitsi2): Rename to...
1739 (arm_rbit): ... This.
1740 (ctzsi2): Adjust for the above.
1741 (arm_rev16si2): Convert to define_expand.
1742 (arm_rev16si2_alt1): New pattern.
1743 (arm_rev16si2_alt): Rename to...
1744 (*arm_rev16si2_alt2): ... This.
1745 * config/arm/arm_acle.h (__ror, __rorl, __rorll, __clz, __clzl, __clzll,
1746 __cls, __clsl, __clsll, __revsh, __rev, __revl, __revll, __rev16,
1747 __rev16l, __rev16ll, __rbit, __rbitl, __rbitll): Define intrinsics.
1748 * config/arm/arm_acle_builtins.def (rbit, rev16si2): Define builtins.
1749
1750 2023-05-25 Alex Coplan <alex.coplan@arm.com>
1751
1752 PR target/109800
1753 * config/arm/arm.md (movdf): Generate temporary pseudo in DImode
1754 instead of DFmode.
1755 * config/arm/vfp.md (no_literal_pool_df_immediate): Rather than punning an
1756 lvalue DFmode pseudo into DImode, use a DImode pseudo and pun it into
1757 DFmode as an rvalue.
1758
1759 2023-05-25 Richard Biener <rguenther@suse.de>
1760
1761 PR target/109955
1762 * tree-vect-stmts.cc (vectorizable_condition): For
1763 embedded comparisons also handle the case when the target
1764 only provides vec_cmp and vcond_mask.
1765
1766 2023-05-25 Claudiu Zissulescu <claziss@gmail.com>
1767
1768 * config/arc/arc.cc (arc_call_tls_get_addr): Simplify access using
1769 TLS Local Dynamic.
1770
1771 2023-05-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1772
1773 * config/aarch64/aarch64.cc (scalar_move_insn_p): New function.
1774 (seq_cost_ignoring_scalar_moves): Likewise.
1775 (aarch64_expand_vector_init): Call seq_cost_ignoring_scalar_moves.
1776
1777 2023-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1778
1779 * config/aarch64/arm_neon.h (vcage_f64): Reimplement with builtins.
1780 (vcage_f32): Likewise.
1781 (vcages_f32): Likewise.
1782 (vcageq_f32): Likewise.
1783 (vcaged_f64): Likewise.
1784 (vcageq_f64): Likewise.
1785 (vcagts_f32): Likewise.
1786 (vcagt_f32): Likewise.
1787 (vcagt_f64): Likewise.
1788 (vcagtq_f32): Likewise.
1789 (vcagtd_f64): Likewise.
1790 (vcagtq_f64): Likewise.
1791 (vcale_f32): Likewise.
1792 (vcale_f64): Likewise.
1793 (vcaled_f64): Likewise.
1794 (vcales_f32): Likewise.
1795 (vcaleq_f32): Likewise.
1796 (vcaleq_f64): Likewise.
1797 (vcalt_f32): Likewise.
1798 (vcalt_f64): Likewise.
1799 (vcaltd_f64): Likewise.
1800 (vcaltq_f32): Likewise.
1801 (vcaltq_f64): Likewise.
1802 (vcalts_f32): Likewise.
1803
1804 2023-05-25 Hu, Lin1 <lin1.hu@intel.com>
1805
1806 PR target/109173
1807 PR target/109174
1808 * config/i386/avx512bwintrin.h (_mm512_srli_epi16): Change type from
1809 int to const int or const int to const unsigned int.
1810 (_mm512_mask_srli_epi16): Ditto.
1811 (_mm512_slli_epi16): Ditto.
1812 (_mm512_mask_slli_epi16): Ditto.
1813 (_mm512_maskz_slli_epi16): Ditto.
1814 (_mm512_srai_epi16): Ditto.
1815 (_mm512_mask_srai_epi16): Ditto.
1816 (_mm512_maskz_srai_epi16): Ditto.
1817 * config/i386/avx512fintrin.h (_mm512_slli_epi64): Ditto.
1818 (_mm512_mask_slli_epi64): Ditto.
1819 (_mm512_maskz_slli_epi64): Ditto.
1820 (_mm512_srli_epi64): Ditto.
1821 (_mm512_mask_srli_epi64): Ditto.
1822 (_mm512_maskz_srli_epi64): Ditto.
1823 (_mm512_srai_epi64): Ditto.
1824 (_mm512_mask_srai_epi64): Ditto.
1825 (_mm512_maskz_srai_epi64): Ditto.
1826 (_mm512_slli_epi32): Ditto.
1827 (_mm512_mask_slli_epi32): Ditto.
1828 (_mm512_maskz_slli_epi32): Ditto.
1829 (_mm512_srli_epi32): Ditto.
1830 (_mm512_mask_srli_epi32): Ditto.
1831 (_mm512_maskz_srli_epi32): Ditto.
1832 (_mm512_srai_epi32): Ditto.
1833 (_mm512_mask_srai_epi32): Ditto.
1834 (_mm512_maskz_srai_epi32): Ditto.
1835 * config/i386/avx512vlbwintrin.h (_mm256_mask_srai_epi16): Ditto.
1836 (_mm256_maskz_srai_epi16): Ditto.
1837 (_mm_mask_srai_epi16): Ditto.
1838 (_mm_maskz_srai_epi16): Ditto.
1839 (_mm256_mask_slli_epi16): Ditto.
1840 (_mm256_maskz_slli_epi16): Ditto.
1841 (_mm_mask_slli_epi16): Ditto.
1842 (_mm_maskz_slli_epi16): Ditto.
1843 (_mm_maskz_srli_epi16): Ditto.
1844 * config/i386/avx512vlintrin.h (_mm256_mask_srli_epi32): Ditto.
1845 (_mm256_maskz_srli_epi32): Ditto.
1846 (_mm_mask_srli_epi32): Ditto.
1847 (_mm_maskz_srli_epi32): Ditto.
1848 (_mm256_mask_srli_epi64): Ditto.
1849 (_mm256_maskz_srli_epi64): Ditto.
1850 (_mm_mask_srli_epi64): Ditto.
1851 (_mm_maskz_srli_epi64): Ditto.
1852 (_mm256_mask_srai_epi32): Ditto.
1853 (_mm256_maskz_srai_epi32): Ditto.
1854 (_mm_mask_srai_epi32): Ditto.
1855 (_mm_maskz_srai_epi32): Ditto.
1856 (_mm256_srai_epi64): Ditto.
1857 (_mm256_mask_srai_epi64): Ditto.
1858 (_mm256_maskz_srai_epi64): Ditto.
1859 (_mm_srai_epi64): Ditto.
1860 (_mm_mask_srai_epi64): Ditto.
1861 (_mm_maskz_srai_epi64): Ditto.
1862 (_mm_mask_slli_epi32): Ditto.
1863 (_mm_maskz_slli_epi32): Ditto.
1864 (_mm_mask_slli_epi64): Ditto.
1865 (_mm_maskz_slli_epi64): Ditto.
1866 (_mm256_mask_slli_epi32): Ditto.
1867 (_mm256_maskz_slli_epi32): Ditto.
1868 (_mm256_mask_slli_epi64): Ditto.
1869 (_mm256_maskz_slli_epi64): Ditto.
1870
1871 2023-05-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1872
1873 * config/riscv/vector.md: Remove FRM_REGNUM dependency in rtz
1874 instructions.
1875
1876 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
1877
1878 * data-streamer-in.cc (streamer_read_value_range): Handle NANs.
1879 * data-streamer-out.cc (streamer_write_vrange): Same.
1880 * value-range.h (class vrange): Make streamer_write_vrange a friend.
1881
1882 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
1883
1884 * value-query.cc (range_query::get_tree_range): Set NAN directly
1885 if necessary.
1886 * value-range.cc (frange::set): Assert that bounds are not NAN.
1887
1888 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
1889
1890 * value-range.cc (add_vrange): Handle known NANs.
1891
1892 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
1893
1894 * value-range.h (frange::set_nan): New.
1895
1896 2023-05-25 Alexandre Oliva <oliva@adacore.com>
1897
1898 PR target/100106
1899 * emit-rtl.cc (validate_subreg): Reject a SUBREG of a MEM that
1900 requires stricter alignment than MEM's.
1901
1902 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
1903
1904 PR tree-optimization/107822
1905 PR tree-optimization/107986
1906 * Makefile.in (OBJS): Add gimple-range-phi.o.
1907 * gimple-range-cache.h (ranger_cache::m_estimate): New
1908 phi_analyzer pointer member.
1909 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use
1910 phi_analyzer if no loop info is available.
1911 * gimple-range-phi.cc: New file.
1912 * gimple-range-phi.h: New file.
1913 * tree-vrp.cc (execute_ranger_vrp): Utililze a phi_analyzer.
1914
1915 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
1916
1917 * gimple-range-fold.cc (fur_list::fur_list): Add range_query param
1918 to contructors.
1919 (fold_range): Add range_query parameter.
1920 (fur_relation::fur_relation): New.
1921 (fur_relation::trio): New.
1922 (fur_relation::register_relation): New.
1923 (fold_relations): New.
1924 * gimple-range-fold.h (fold_range): Adjust prototypes.
1925 (fold_relations): New.
1926
1927 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
1928
1929 * gimple-range-cache.cc (ssa_cache::range_of_expr): New.
1930 * gimple-range-cache.h (class ssa_cache): Inherit from range_query.
1931 (ranger_cache::const_query): New.
1932 * gimple-range.cc (gimple_ranger::const_query): New.
1933 * gimple-range.h (gimple_ranger::const_query): New prototype.
1934
1935 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
1936
1937 * gimple-range-cache.cc (ssa_cache::dump): Use get_range.
1938 (ssa_cache::dump_range_query): Delete.
1939 (ssa_lazy_cache::dump_range_query): Delete.
1940 (ssa_lazy_cache::get_range): Move from header file.
1941 (ssa_lazy_cache::clear_range): ditto.
1942 (ssa_lazy_cache::clear): Ditto.
1943 * gimple-range-cache.h (class ssa_cache): Virtualize.
1944 (class ssa_lazy_cache): Inherit and virtualize.
1945
1946 2023-05-24 Aldy Hernandez <aldyh@redhat.com>
1947
1948 * value-range.h (vrange::kind): Remove.
1949
1950 2023-05-24 Roger Sayle <roger@nextmovesoftware.com>
1951
1952 PR middle-end/109840
1953 * match.pd <popcount optimizations>: Preserve zero-extension when
1954 optimizing popcount((T)bswap(x)) and popcount((T)rotate(x,y)) as
1955 popcount((T)x), so the popcount's argument keeps the same type.
1956 <parity optimizations>: Likewise preserve extensions when
1957 simplifying parity((T)bswap(x)) and parity((T)rotate(x,y)) as
1958 parity((T)x), so that the parity's argument type is the same.
1959
1960 2023-05-24 Aldy Hernandez <aldyh@redhat.com>
1961
1962 * ipa-cp.cc (ipa_value_range_from_jfunc): Use new ipa_vr API.
1963 (ipcp_store_vr_results): Same.
1964 * ipa-prop.cc (ipa_vr::ipa_vr): New.
1965 (ipa_vr::get_vrange): New.
1966 (ipa_vr::set_unknown): New.
1967 (ipa_vr::streamer_read): New.
1968 (ipa_vr::streamer_write): New.
1969 (write_ipcp_transformation_info): Use new ipa_vr API.
1970 (read_ipcp_transformation_info): Same.
1971 (ipa_vr::nonzero_p): Delete.
1972 (ipcp_update_vr): Use new ipa_vr API.
1973 * ipa-prop.h (class ipa_vr): Provide an API and hide internals.
1974 * ipa-sra.cc (zap_useless_ipcp_results): Use new ipa_vr API.
1975
1976 2023-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1977
1978 * config/mcore/mcore.cc (output_inline_const) Make buffer smaller to
1979 silence overflow warnings later on.
1980
1981 2023-05-24 Uros Bizjak <ubizjak@gmail.com>
1982
1983 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
1984 Remove handling of V8QImode.
1985 * config/i386/mmx.md (v<insn>v8qi3): Move from sse.md.
1986 Call ix86_expand_vecop_qihi_partial. Enable for TARGET_MMX_WITH_SSE.
1987 (v<insn>v4qi3): Ditto.
1988 * config/i386/sse.md (v<insn>v8qi3): Remove.
1989
1990 2023-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1991
1992 PR target/99195
1993 * config/aarch64/aarch64-simd.md (aarch64_simd_lshr<mode>): Rename to...
1994 (aarch64_simd_lshr<mode><vczle><vczbe>): ... This.
1995 (aarch64_simd_ashr<mode>): Rename to...
1996 (aarch64_simd_ashr<mode><vczle><vczbe>): ... This.
1997 (aarch64_simd_imm_shl<mode>): Rename to...
1998 (aarch64_simd_imm_shl<mode><vczle><vczbe>): ... This.
1999 (aarch64_simd_reg_sshl<mode>): Rename to...
2000 (aarch64_simd_reg_sshl<mode><vczle><vczbe>): ... This.
2001 (aarch64_simd_reg_shl<mode>_unsigned): Rename to...
2002 (aarch64_simd_reg_shl<mode>_unsigned<vczle><vczbe>): ... This.
2003 (aarch64_simd_reg_shl<mode>_signed): Rename to...
2004 (aarch64_simd_reg_shl<mode>_signed<vczle><vczbe>): ... This.
2005 (vec_shr_<mode>): Rename to...
2006 (vec_shr_<mode><vczle><vczbe>): ... This.
2007 (aarch64_<sur>shl<mode>): Rename to...
2008 (aarch64_<sur>shl<mode><vczle><vczbe>): ... This.
2009 (aarch64_<sur>q<r>shl<mode>): Rename to...
2010 (aarch64_<sur>q<r>shl<mode><vczle><vczbe>): ... This.
2011
2012 2023-05-24 Richard Biener <rguenther@suse.de>
2013
2014 PR target/109944
2015 * config/i386/i386-expand.cc (ix86_expand_vector_init_general):
2016 Perform final vector composition using
2017 ix86_expand_vector_init_general instead of setting
2018 the highpart and lowpart which causes spilling.
2019
2020 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2021
2022 PR tree-optimization/109695
2023 * gimple-range-cache.cc (ranger_cache::get_global_range): Add
2024 changed param.
2025 * gimple-range-cache.h (ranger_cache::get_global_range): Ditto.
2026 * gimple-range.cc (gimple_ranger::range_of_stmt): Pass changed
2027 flag to set_global_range.
2028 (gimple_ranger::prefill_stmt_dependencies): Ditto.
2029
2030 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2031
2032 PR tree-optimization/109695
2033 * gimple-range-cache.cc (temporal_cache::temporal_value): Return
2034 a positive int.
2035 (temporal_cache::current_p): Check always_current method.
2036 (temporal_cache::set_always_current): Add param and set value
2037 appropriately.
2038 (temporal_cache::always_current_p): New.
2039 (ranger_cache::get_global_range): Adjust.
2040 (ranger_cache::set_global_range): set always current first.
2041
2042 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2043
2044 PR tree-optimization/109695
2045 * gimple-range-cache.cc (ranger_cache::get_global_range): Call
2046 fold_range with global query to choose an initial value.
2047
2048 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2049
2050 * config/riscv/riscv-protos.h (enum frm_field_enum): Add FRM_
2051 prefix.
2052
2053 2023-05-24 Richard Biener <rguenther@suse.de>
2054
2055 PR tree-optimization/109849
2056 * tree-ssa-pre.cc (do_hoist_insertion): Do not intersect
2057 expressions but take the first sets.
2058
2059 2023-05-24 Gaius Mulley <gaiusmod2@gmail.com>
2060
2061 PR modula2/109952
2062 * doc/gm2.texi (High procedure function): New node.
2063 (Using): New menu entry for High procedure function.
2064
2065 2023-05-24 Richard Sandiford <richard.sandiford@arm.com>
2066
2067 PR rtl-optimization/109940
2068 * early-remat.cc (postorder_index): Rename to...
2069 (rpo_index): ...this.
2070 (compare_candidates): Sort by decreasing rpo_index rather than
2071 increasing postorder_index.
2072 (early_remat::sort_candidates): Calculate the forward RPO from
2073 DF_FORWARD.
2074 (early_remat::local_phase): Follow forward RPO using DF_FORWARD,
2075 rather than DF_BACKWARD in reverse.
2076
2077 2023-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2078
2079 PR target/109939
2080 * config/arm/arm-builtins.cc (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS): Use
2081 qualifier_none for the return operand.
2082
2083 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2084
2085 * config/riscv/autovec.md (<optab><mode>3): New pattern.
2086 (one_cmpl<mode>2): Ditto.
2087 (*<optab>not<mode>): Ditto.
2088 (*n<optab><mode>): Ditto.
2089 * config/riscv/riscv-v.cc (expand_vec_cmp_float): Change to
2090 one_cmpl.
2091
2092 2023-05-24 Kewen Lin <linkw@linux.ibm.com>
2093
2094 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Adjust the
2095 calculation on n_perms by considering nvectors_per_build.
2096
2097 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2098 Richard Sandiford <richard.sandiford@arm.com>
2099
2100 * config/riscv/autovec.md (@vcond_mask_<mode><vm>): New pattern.
2101 (vec_cmp<mode><vm>): New pattern.
2102 (vec_cmpu<mode><vm>): New pattern.
2103 (vcond<V:mode><VI:mode>): New pattern.
2104 (vcondu<V:mode><VI:mode>): New pattern.
2105 * config/riscv/riscv-protos.h (enum insn_type): Add new enum.
2106 (emit_vlmax_merge_insn): New function.
2107 (emit_vlmax_cmp_insn): Ditto.
2108 (emit_vlmax_cmp_mu_insn): Ditto.
2109 (expand_vec_cmp): Ditto.
2110 (expand_vec_cmp_float): Ditto.
2111 (expand_vcond): Ditto.
2112 * config/riscv/riscv-v.cc (emit_vlmax_merge_insn): Ditto.
2113 (emit_vlmax_cmp_insn): Ditto.
2114 (emit_vlmax_cmp_mu_insn): Ditto.
2115 (get_cmp_insn_code): Ditto.
2116 (expand_vec_cmp): Ditto.
2117 (expand_vec_cmp_float): Ditto.
2118 (expand_vcond): Ditto.
2119
2120 2023-05-24 Pan Li <pan2.li@intel.com>
2121
2122 * config/riscv/genrvv-type-indexer.cc (main): Add
2123 unsigned_eew*_lmul1_interpret for indexer.
2124 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
2125 Register vuint*m1_t interpret function.
2126 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
2127 New macro for vuint8m1_t.
2128 (DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
2129 (DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
2130 (DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
2131 (vbool1_t): Add to unsigned_eew*_interpret_ops.
2132 (vbool2_t): Likewise.
2133 (vbool4_t): Likewise.
2134 (vbool8_t): Likewise.
2135 (vbool16_t): Likewise.
2136 (vbool32_t): Likewise.
2137 (vbool64_t): Likewise.
2138 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
2139 New macro for vuint*m1_t.
2140 (DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
2141 (DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
2142 (DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
2143 (required_extensions_p): Add vuint*m1_t interpret case.
2144 * config/riscv/riscv-vector-builtins.def (unsigned_eew8_lmul1_interpret):
2145 Add vuint*m1_t interpret to base type.
2146 (unsigned_eew16_lmul1_interpret): Likewise.
2147 (unsigned_eew32_lmul1_interpret): Likewise.
2148 (unsigned_eew64_lmul1_interpret): Likewise.
2149
2150 2023-05-24 Pan Li <pan2.li@intel.com>
2151
2152 * config/riscv/genrvv-type-indexer.cc (EEW_SIZE_LIST): New macro
2153 for the eew size list.
2154 (LMUL1_LOG2): New macro for the log2 value of lmul=1.
2155 (main): Add signed_eew*_lmul1_interpret for indexer.
2156 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
2157 Register vint*m1_t interpret function.
2158 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
2159 New macro for vint8m1_t.
2160 (DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
2161 (DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
2162 (DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
2163 (vbool1_t): Add to signed_eew*_interpret_ops.
2164 (vbool2_t): Likewise.
2165 (vbool4_t): Likewise.
2166 (vbool8_t): Likewise.
2167 (vbool16_t): Likewise.
2168 (vbool32_t): Likewise.
2169 (vbool64_t): Likewise.
2170 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
2171 New macro for vint*m1_t.
2172 (DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
2173 (DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
2174 (DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
2175 (required_extensions_p): Add vint8m1_t interpret case.
2176 * config/riscv/riscv-vector-builtins.def (signed_eew8_lmul1_interpret):
2177 Add vint*m1_t interpret to base type.
2178 (signed_eew16_lmul1_interpret): Likewise.
2179 (signed_eew32_lmul1_interpret): Likewise.
2180 (signed_eew64_lmul1_interpret): Likewise.
2181
2182 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2183
2184 * config/riscv/autovec.md: Adjust for new interface.
2185 * config/riscv/riscv-protos.h (emit_vlmax_insn): Add VL operand.
2186 (emit_nonvlmax_insn): Add AVL operand.
2187 * config/riscv/riscv-v.cc (emit_vlmax_insn): Add VL operand.
2188 (emit_nonvlmax_insn): Add AVL operand.
2189 (sew64_scalar_helper): Adjust for new interface.
2190 (expand_tuple_move): Ditto.
2191 * config/riscv/vector.md: Ditto.
2192
2193 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2194
2195 * config/riscv/riscv-v.cc (expand_vec_series): Remove magic number.
2196 (expand_const_vector): Ditto.
2197 (legitimize_move): Ditto.
2198 (sew64_scalar_helper): Ditto.
2199 (expand_tuple_move): Ditto.
2200 (expand_vector_init_insert_elems): Ditto.
2201 * config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
2202
2203 2023-05-24 liuhongt <hongtao.liu@intel.com>
2204
2205 PR target/109900
2206 * config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
2207 _mm{,256,512}_abs_{epi8,epi16,epi32,epi64} and
2208 _mm_abs_{pi8,pi16,pi32} into gimple ABS_EXPR.
2209 (ix86_masked_all_ones): Handle 64-bit mask.
2210 * config/i386/i386-builtin.def: Replace icode of related
2211 non-mask simd abs builtins with CODE_FOR_nothing.
2212
2213 2023-05-23 Martin Uecker <uecker@tugraz.at>
2214
2215 PR c/109450
2216 * function.cc (gimplify_parm_type): Remove function.
2217 (gimplify_parameters): Call gimplify_type_sizes.
2218
2219 2023-05-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2220
2221 * config/xtensa/xtensa.md (*addsubx): Rename from '*addx',
2222 and change to also accept '*subx' pattern.
2223 (*subx): Remove.
2224
2225 2023-05-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2226
2227 * config/xtensa/predicates.md (addsub_operator): New.
2228 * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3,
2229 *extzvsi-1bit_addsubx): New insn_and_split patterns.
2230 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
2231 Add a special case about ifcvt 'noce_try_cmove()' to handle
2232 constant loads that do not fit into signed 12 bits in the
2233 patterns added above.
2234
2235 2023-05-23 Richard Biener <rguenther@suse.de>
2236
2237 PR tree-optimization/109747
2238 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Pass down
2239 the SLP node only once to the cost hook.
2240
2241 2023-05-23 Georg-Johann Lay <avr@gjlay.de>
2242
2243 * config/avr/avr.cc (avr_insn_cost): New static function.
2244 (TARGET_INSN_COST): Define to that function.
2245
2246 2023-05-23 Richard Biener <rguenther@suse.de>
2247
2248 PR target/109944
2249 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
2250 For vector construction or splats apply GPR->XMM move
2251 costing. QImode memory can be handled directly only
2252 with SSE4.1 pinsrb.
2253
2254 2023-05-23 Richard Biener <rguenther@suse.de>
2255
2256 PR tree-optimization/108752
2257 * tree-vect-stmts.cc (vectorizable_operation): For bit
2258 operations with generic word_mode vectors do not cost
2259 an extra stmt. For plus, minus and negate also cost the
2260 constant materialization.
2261
2262 2023-05-23 Uros Bizjak <ubizjak@gmail.com>
2263
2264 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
2265 Call ix86_expand_vec_shift_qihi_constant for shifts
2266 with constant count operand.
2267 * config/i386/i386.cc (ix86_shift_rotate_cost):
2268 Handle V4QImode and V8QImode.
2269 * config/i386/mmx.md (<insn>v8qi3): New insn pattern.
2270 (<insn>v4qi3): Ditto.
2271
2272 2023-05-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2273
2274 * config/riscv/vector.md: Add mode.
2275
2276 2023-05-23 Aldy Hernandez <aldyh@redhat.com>
2277
2278 PR tree-optimization/109934
2279 * value-range.cc (irange::invert): Remove buggy special case.
2280
2281 2023-05-23 Richard Biener <rguenther@suse.de>
2282
2283 * tree-ssa-pre.cc (compute_antic_aux): Dump the correct
2284 ANTIC_OUT.
2285
2286 2023-05-23 Richard Sandiford <richard.sandiford@arm.com>
2287
2288 PR target/109632
2289 * config/aarch64/aarch64.cc (aarch64_modes_tieable_p): Allow
2290 subregs between any scalars that are 64 bits or smaller.
2291 * config/aarch64/iterators.md (SUBDI_BITS): New int iterator.
2292 (bits_etype): New int attribute.
2293 * config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
2294 (*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>): New patterns.
2295 (*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Likewise.
2296
2297 2023-05-23 Richard Sandiford <richard.sandiford@arm.com>
2298
2299 * doc/md.texi: Document that <FOO> can be used to refer to the
2300 numerical value of an int iterator FOO. Tweak other parts of
2301 the int iterator documentation.
2302 * read-rtl.cc (iterator_group::has_self_attr): New field.
2303 (map_attr_string): When has_self_attr is true, make <FOO>
2304 expand to the current value of iterator FOO.
2305 (initialize_iterators): Set has_self_attr for int iterators.
2306
2307 2023-05-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2308
2309 * config/riscv/autovec.md: Refactor the framework of RVV auto-vectorization.
2310 * config/riscv/riscv-protos.h (RVV_MISC_OP_NUM): Ditto.
2311 (RVV_UNOP_NUM): New macro.
2312 (RVV_BINOP_NUM): Ditto.
2313 (legitimize_move): Refactor the framework of RVV auto-vectorization.
2314 (emit_vlmax_op): Ditto.
2315 (emit_vlmax_reg_op): Ditto.
2316 (emit_len_op): Ditto.
2317 (emit_len_binop): Ditto.
2318 (emit_vlmax_tany_many): Ditto.
2319 (emit_nonvlmax_tany_many): Ditto.
2320 (sew64_scalar_helper): Ditto.
2321 (expand_tuple_move): Ditto.
2322 * config/riscv/riscv-v.cc (emit_pred_op): Ditto.
2323 (emit_pred_binop): Ditto.
2324 (emit_vlmax_op): Ditto.
2325 (emit_vlmax_tany_many): New function.
2326 (emit_len_op): Remove.
2327 (emit_nonvlmax_tany_many): New function.
2328 (emit_vlmax_reg_op): Remove.
2329 (emit_len_binop): Ditto.
2330 (emit_index_op): Ditto.
2331 (expand_vec_series): Refactor the framework of RVV auto-vectorization.
2332 (expand_const_vector): Ditto.
2333 (legitimize_move): Ditto.
2334 (sew64_scalar_helper): Ditto.
2335 (expand_tuple_move): Ditto.
2336 (expand_vector_init_insert_elems): Ditto.
2337 * config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
2338 * config/riscv/vector.md: Ditto.
2339
2340 2023-05-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2341
2342 PR target/109855
2343 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Add predicate
2344 and constraint for operand 0.
2345 (add_vec_concat_subst_be): Likewise.
2346
2347 2023-05-23 Richard Biener <rguenther@suse.de>
2348
2349 PR tree-optimization/109849
2350 * tree-ssa-pre.cc (do_hoist_insertion): Compute ANTIC_OUT
2351 and use that to determine what to hoist.
2352
2353 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
2354
2355 * fold-const.cc (native_encode_initializer) <CONSTRUCTOR>: Apply the
2356 specific treatment for bit-fields only if they have an integral type
2357 and filter out non-integral bit-fields that do not start and end on
2358 a byte boundary.
2359
2360 2023-05-23 Aldy Hernandez <aldyh@redhat.com>
2361
2362 PR tree-optimization/109920
2363 * value-range.h (RESIZABLE>::~int_range): Use delete[].
2364
2365 2023-05-22 Uros Bizjak <ubizjak@gmail.com>
2366
2367 * config/i386/i386.cc (ix86_shift_rotate_cost): Correct
2368 calcuation of integer vector mode costs to reflect generated
2369 instruction sequences of different integer vector modes and
2370 different target ABIs. Remove "speed" function argument.
2371 (ix86_rtx_costs): Update call for removed function argument.
2372 (ix86_vector_costs::add_stmt_cost): Ditto.
2373
2374 2023-05-22 Aldy Hernandez <aldyh@redhat.com>
2375
2376 * value-range.h (class Value_Range): Implement set_zero,
2377 set_nonzero, and nonzero_p.
2378
2379 2023-05-22 Uros Bizjak <ubizjak@gmail.com>
2380
2381 * config/i386/i386.cc (ix86_multiplication_cost): Add
2382 the cost of a memory read to the cost of V?QImode sequences.
2383
2384 2023-05-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2385
2386 * config/riscv/riscv-v.cc: Add "m_" prefix.
2387
2388 2023-05-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2389
2390 * tree-vect-loop.cc (vect_get_loop_len): Fix issue for
2391 multiple-rgroup of length.
2392 * tree-vect-stmts.cc (vectorizable_store): Ditto.
2393 (vectorizable_load): Ditto.
2394 * tree-vectorizer.h (vect_get_loop_len): Ditto.
2395
2396 2023-05-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2397
2398 * config/riscv/riscv.cc (riscv_const_insns): Reorganize the
2399 codes.
2400
2401 2023-05-22 Kewen Lin <linkw@linux.ibm.com>
2402
2403 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Refactor the
2404 handling for the case index == count.
2405
2406 2023-05-21 Georg-Johann Lay <avr@gjlay.de>
2407
2408 PR target/90622
2409 * config/avr/avr.cc (avr_fold_builtin) [AVR_BUILTIN_INSERT_BITS]:
2410 Don't fold to XOR / AND / XOR if just one bit is copied to the
2411 same position.
2412
2413 2023-05-21 Roger Sayle <roger@nextmovesoftware.com>
2414
2415 * config/nvptx/nvptx.cc (nvptx_expand_brev): Expand target
2416 builtin for bit reversal using brev instruction.
2417 (enum nvptx_builtins): Add NVPTX_BUILTIN_BREV and
2418 NVPTX_BUILTIN_BREVLL.
2419 (nvptx_init_builtins): Define "brev" and "brevll".
2420 (nvptx_expand_builtin): Expand NVPTX_BUILTIN_BREV and
2421 NVPTX_BUILTIN_BREVLL via nvptx_expand_brev function.
2422 * doc/extend.texi (Nvidia PTX Builtin-in Functions): New
2423 section, document __builtin_nvptx_brev{,ll}.
2424
2425 2023-05-21 Jakub Jelinek <jakub@redhat.com>
2426
2427 PR tree-optimization/109505
2428 * match.pd ((x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2),
2429 Combine successive equal operations with constants,
2430 (A +- CST1) +- CST2 -> A + CST3, (CST1 - A) +- CST2 -> CST3 - A,
2431 CST1 - (CST2 - A) -> CST3 + A): Use ! on ops with 2 CONSTANT_CLASS_P
2432 operands.
2433
2434 2023-05-21 Andrew Pinski <apinski@marvell.com>
2435
2436 * expr.cc (expand_single_bit_test): Correct bitpos for big-endian.
2437
2438 2023-05-21 Pan Li <pan2.li@intel.com>
2439
2440 * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): Add the
2441 rest bool size, aka 2, 4, 8, 16, 32, 64.
2442 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
2443 Register vbool[2|4|8|16|32|64] interpret function.
2444 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_BOOL2_INTERPRET_OPS):
2445 New macro for vbool2_t.
2446 (DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
2447 (DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
2448 (DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
2449 (DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
2450 (DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
2451 (vint8m1_t): Add the type to bool[2|4|8|16|32|64]_interpret_ops.
2452 (vint16m1_t): Likewise.
2453 (vint32m1_t): Likewise.
2454 (vint64m1_t): Likewise.
2455 (vuint8m1_t): Likewise.
2456 (vuint16m1_t): Likewise.
2457 (vuint32m1_t): Likewise.
2458 (vuint64m1_t): Likewise.
2459 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_BOOL2_INTERPRET_OPS):
2460 New macro for vbool2_t.
2461 (DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
2462 (DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
2463 (DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
2464 (DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
2465 (DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
2466 (required_extensions_p): Add vbool[2|4|8|16|32|64] interpret case.
2467 * config/riscv/riscv-vector-builtins.def (bool2_interpret): Add
2468 vbool2_t interprect to base type.
2469 (bool4_interpret): Likewise.
2470 (bool8_interpret): Likewise.
2471 (bool16_interpret): Likewise.
2472 (bool32_interpret): Likewise.
2473 (bool64_interpret): Likewise.
2474
2475 2023-05-21 Andrew Pinski <apinski@marvell.com>
2476
2477 PR middle-end/109919
2478 * expr.cc (expand_single_bit_test): Don't use the
2479 target for expand_expr.
2480
2481 2023-05-20 Gerald Pfeifer <gerald@pfeifer.com>
2482
2483 * doc/install.texi (Specific): Remove de facto empty alpha*-*-*
2484 section.
2485
2486 2023-05-20 Pan Li <pan2.li@intel.com>
2487
2488 * mode-switching.cc (entity_map): Initialize the array to zero.
2489 (bb_info): Ditto.
2490
2491 2023-05-20 Triffid Hunter <triffid.hunter@gmail.com>
2492
2493 PR target/105753
2494 * config/avr/avr.md (divmodpsi, udivmodpsi, divmodsi, udivmodsi):
2495 Remove superfluous "parallel" in insn pattern.
2496 ([u]divmod<mode>4): Tidy code. Use gcc_unreachable() instead of
2497 printing error text to assembly.
2498
2499 2023-05-20 Andrew Pinski <apinski@marvell.com>
2500
2501 * expr.cc (fold_single_bit_test): Rename to ...
2502 (expand_single_bit_test): This and expand directly.
2503 (do_store_flag): Update for the rename function.
2504
2505 2023-05-20 Andrew Pinski <apinski@marvell.com>
2506
2507 * expr.cc (fold_single_bit_test): Use BIT_FIELD_REF
2508 instead of shift/and.
2509
2510 2023-05-20 Andrew Pinski <apinski@marvell.com>
2511
2512 * expr.cc (fold_single_bit_test): Add an assert
2513 and simplify based on code being NE_EXPR or EQ_EXPR.
2514
2515 2023-05-20 Andrew Pinski <apinski@marvell.com>
2516
2517 * expr.cc (fold_single_bit_test): Take inner and bitnum
2518 instead of arg0 and arg1. Update the code.
2519 (do_store_flag): Don't create a tree when calling
2520 fold_single_bit_test instead just call it with the bitnum
2521 and the inner tree.
2522
2523 2023-05-20 Andrew Pinski <apinski@marvell.com>
2524
2525 * expr.cc (fold_single_bit_test): Use get_def_for_expr
2526 instead of checking the inner's code.
2527
2528 2023-05-20 Andrew Pinski <apinski@marvell.com>
2529
2530 * expr.cc (fold_single_bit_test_into_sign_test): Inline into ...
2531 (fold_single_bit_test): This and simplify.
2532
2533 2023-05-20 Andrew Pinski <apinski@marvell.com>
2534
2535 * fold-const.cc (fold_single_bit_test_into_sign_test): Move to
2536 expr.cc.
2537 (fold_single_bit_test): Likewise.
2538 * expr.cc (fold_single_bit_test_into_sign_test): Move from fold-const.cc
2539 (fold_single_bit_test): Likewise and make static.
2540 * fold-const.h (fold_single_bit_test): Remove declaration.
2541
2542 2023-05-20 Die Li <lidie@eswincomputing.com>
2543
2544 * config/riscv/riscv.cc (riscv_expand_conditional_move): Fix mode
2545 checking.
2546
2547 2023-05-20 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
2548
2549 * config/riscv/bitmanip.md (branch<X:mode>_bext): New split pattern.
2550
2551 2023-05-20 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
2552
2553 PR target/106888
2554 * config/riscv/bitmanip.md
2555 (<bitmanip_optab>disi2): Match with any_extend.
2556 (<bitmanip_optab>disi2_sext): New pattern to match
2557 with sign extend using an ANDI instruction.
2558
2559 2023-05-19 Nathan Sidwell <nathan@acm.org>
2560
2561 PR other/99451
2562 * opts.h (handle_deferred_dump_options): Declare.
2563 * opts-global.cc (handle_common_deferred_options): Do not handle
2564 dump options here.
2565 (handle_deferred_dump_options): New.
2566 * toplev.cc (toplev::main): Call it after plugin init.
2567
2568 2023-05-19 Joern Rennecke <joern.rennecke@embecosm.com>
2569
2570 * config/riscv/constraints.md (DsS, DsD): Restore agreement
2571 with shiftm1 mode attribute.
2572
2573 2023-05-19 Andrew Pinski <apinski@marvell.com>
2574
2575 PR driver/33980
2576 * gcc.cc (default_compilers["@c-header"]): Add %w
2577 after the --output-pch.
2578
2579 2023-05-19 Vineet Gupta <vineetg@rivosinc.com>
2580
2581 * config/riscv/riscv.cc (riscv_split_integer): if loval is equal
2582 to hival, ASHIFT the corresponding regs.
2583
2584 2023-05-19 Robin Dapp <rdapp@ventanamicro.com>
2585
2586 * config/riscv/riscv.cc (riscv_const_insns): Remove else.
2587
2588 2023-05-19 Jakub Jelinek <jakub@redhat.com>
2589
2590 PR tree-optimization/105776
2591 * tree-ssa-math-opts.cc (arith_overflow_check_p): If cast_stmt is
2592 non-NULL, allow division statement to have a cast as single imm use
2593 rather than comparison/condition.
2594 (match_arith_overflow): In that case remove the cast stmt in addition
2595 to the division statement.
2596
2597 2023-05-19 Jakub Jelinek <jakub@redhat.com>
2598
2599 PR tree-optimization/101856
2600 * tree-ssa-math-opts.cc (match_arith_overflow): Pattern detect
2601 unsigned __builtin_mul_overflow_p even when umulv4_optab doesn't
2602 support it but umul_highpart_optab does.
2603
2604 2023-05-19 Eric Botcazou <ebotcazou@adacore.com>
2605
2606 * varasm.cc (output_constructor_bitfield): Call tree_to_uhwi instead
2607 of tree_to_shwi on array indices. Minor tweaks.
2608
2609 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2610
2611 * alias.cc (ref_all_alias_ptr_type_p): Use _P() defines from tree.h.
2612 * attribs.cc (diag_attr_exclusions): Ditto.
2613 (decl_attributes): Ditto.
2614 (build_type_attribute_qual_variant): Ditto.
2615 * builtins.cc (fold_builtin_carg): Ditto.
2616 (fold_builtin_next_arg): Ditto.
2617 (do_mpc_arg2): Ditto.
2618 * cfgexpand.cc (expand_return): Ditto.
2619 * cgraph.h (decl_in_symtab_p): Ditto.
2620 (symtab_node::get_create): Ditto.
2621 * dwarf2out.cc (base_type_die): Ditto.
2622 (implicit_ptr_descriptor): Ditto.
2623 (gen_array_type_die): Ditto.
2624 (gen_type_die_with_usage): Ditto.
2625 (optimize_location_into_implicit_ptr): Ditto.
2626 * expr.cc (do_store_flag): Ditto.
2627 * fold-const.cc (negate_expr_p): Ditto.
2628 (fold_negate_expr_1): Ditto.
2629 (fold_convert_const): Ditto.
2630 (fold_convert_loc): Ditto.
2631 (constant_boolean_node): Ditto.
2632 (fold_binary_op_with_conditional_arg): Ditto.
2633 (build_fold_addr_expr_with_type_loc): Ditto.
2634 (fold_comparison): Ditto.
2635 (fold_checksum_tree): Ditto.
2636 (tree_unary_nonnegative_warnv_p): Ditto.
2637 (integer_valued_real_unary_p): Ditto.
2638 (fold_read_from_constant_string): Ditto.
2639 * gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text): Ditto.
2640 * gimple-expr.cc (useless_type_conversion_p): Ditto.
2641 (is_gimple_reg): Ditto.
2642 (is_gimple_asm_val): Ditto.
2643 (mark_addressable): Ditto.
2644 * gimple-expr.h (is_gimple_variable): Ditto.
2645 (virtual_operand_p): Ditto.
2646 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores): Ditto.
2647 * gimplify.cc (gimplify_bind_expr): Ditto.
2648 (gimplify_return_expr): Ditto.
2649 (gimple_add_padding_init_for_auto_var): Ditto.
2650 (gimplify_addr_expr): Ditto.
2651 (omp_add_variable): Ditto.
2652 (omp_notice_variable): Ditto.
2653 (omp_get_base_pointer): Ditto.
2654 (omp_strip_components_and_deref): Ditto.
2655 (omp_strip_indirections): Ditto.
2656 (omp_accumulate_sibling_list): Ditto.
2657 (omp_build_struct_sibling_lists): Ditto.
2658 (gimplify_adjust_omp_clauses_1): Ditto.
2659 (gimplify_adjust_omp_clauses): Ditto.
2660 (gimplify_omp_for): Ditto.
2661 (goa_lhs_expr_p): Ditto.
2662 (gimplify_one_sizepos): Ditto.
2663 * graphite-scop-detection.cc (scop_detection::graphite_can_represent_scev): Ditto.
2664 * ipa-devirt.cc (odr_types_equivalent_p): Ditto.
2665 * ipa-prop.cc (ipa_set_jf_constant): Ditto.
2666 (propagate_controlled_uses): Ditto.
2667 * ipa-sra.cc (type_prevails_p): Ditto.
2668 (scan_expr_access): Ditto.
2669 * optabs-tree.cc (optab_for_tree_code): Ditto.
2670 * toplev.cc (wrapup_global_declaration_1): Ditto.
2671 * trans-mem.cc (transaction_invariant_address_p): Ditto.
2672 * tree-cfg.cc (verify_types_in_gimple_reference): Ditto.
2673 (verify_gimple_comparison): Ditto.
2674 (verify_gimple_assign_binary): Ditto.
2675 (verify_gimple_assign_single): Ditto.
2676 * tree-complex.cc (get_component_ssa_name): Ditto.
2677 * tree-emutls.cc (lower_emutls_2): Ditto.
2678 * tree-inline.cc (copy_tree_body_r): Ditto.
2679 (estimate_move_cost): Ditto.
2680 (copy_decl_for_dup_finish): Ditto.
2681 * tree-nested.cc (convert_nonlocal_omp_clauses): Ditto.
2682 (note_nonlocal_vla_type): Ditto.
2683 (convert_local_omp_clauses): Ditto.
2684 (remap_vla_decls): Ditto.
2685 (fixup_vla_decls): Ditto.
2686 * tree-parloops.cc (loop_has_vector_phi_nodes): Ditto.
2687 * tree-pretty-print.cc (print_declaration): Ditto.
2688 (print_call_name): Ditto.
2689 * tree-sra.cc (compare_access_positions): Ditto.
2690 * tree-ssa-alias.cc (compare_type_sizes): Ditto.
2691 * tree-ssa-ccp.cc (get_default_value): Ditto.
2692 * tree-ssa-coalesce.cc (populate_coalesce_list_for_outofssa): Ditto.
2693 * tree-ssa-dom.cc (reduce_vector_comparison_to_scalar_comparison): Ditto.
2694 * tree-ssa-forwprop.cc (can_propagate_from): Ditto.
2695 * tree-ssa-propagate.cc (may_propagate_copy): Ditto.
2696 * tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Ditto.
2697 * tree-ssa-sink.cc (statement_sink_location): Ditto.
2698 * tree-ssa-structalias.cc (type_must_have_pointers): Ditto.
2699 * tree-ssa-ter.cc (find_replaceable_in_bb): Ditto.
2700 * tree-ssa-uninit.cc (warn_uninit): Ditto.
2701 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Ditto.
2702 (non_rewritable_mem_ref_base): Ditto.
2703 * tree-streamer-in.cc (lto_input_ts_type_non_common_tree_pointers): Ditto.
2704 * tree-streamer-out.cc (write_ts_type_non_common_tree_pointers): Ditto.
2705 * tree-vect-generic.cc (do_binop): Ditto.
2706 (do_cond): Ditto.
2707 * tree-vect-stmts.cc (vect_init_vector): Ditto.
2708 * tree-vector-builder.h (tree_vector_builder::note_representative): Ditto.
2709 * tree.cc (sign_mask_for): Ditto.
2710 (verify_type_variant): Ditto.
2711 (gimple_canonical_types_compatible_p): Ditto.
2712 (verify_type): Ditto.
2713 * ubsan.cc (get_ubsan_type_info_for_type): Ditto.
2714 * var-tracking.cc (prepare_call_arguments): Ditto.
2715 (vt_add_function_parameters): Ditto.
2716 * varasm.cc (decode_addr_const): Ditto.
2717
2718 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2719
2720 * omp-low.cc (scan_sharing_clauses): Use _P() defines from tree.h.
2721 (lower_reduction_clauses): Ditto.
2722 (lower_send_clauses): Ditto.
2723 (lower_omp_task_reductions): Ditto.
2724 * omp-oacc-neuter-broadcast.cc (install_var_field): Ditto.
2725 (worker_single_copy): Ditto.
2726 * omp-offload.cc (oacc_rewrite_var_decl): Ditto.
2727 * omp-simd-clone.cc (plausible_type_for_simd_clone): Ditto.
2728
2729 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2730
2731 * lto-streamer-in.cc (lto_input_var_decl_ref): Use _P defines from
2732 tree.h.
2733 (lto_read_body_or_constructor): Ditto.
2734 * lto-streamer-out.cc (tree_is_indexable): Ditto.
2735 (lto_output_var_decl_ref): Ditto.
2736 (DFS::DFS_write_tree_body): Ditto.
2737 (wrap_refs): Ditto.
2738 (write_symbol_extension_info): Ditto.
2739
2740 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2741
2742 * config/aarch64/aarch64.cc (aarch64_short_vector_p): Use _P
2743 defines from tree.h.
2744 (aarch64_mangle_type): Ditto.
2745 * config/alpha/alpha.cc (alpha_in_small_data_p): Ditto.
2746 (alpha_gimplify_va_arg_1): Ditto.
2747 * config/arc/arc.cc (arc_encode_section_info): Ditto.
2748 (arc_is_aux_reg_p): Ditto.
2749 (arc_is_uncached_mem_p): Ditto.
2750 (arc_handle_aux_attribute): Ditto.
2751 * config/arm/arm.cc (arm_handle_isr_attribute): Ditto.
2752 (arm_handle_cmse_nonsecure_call): Ditto.
2753 (arm_set_default_type_attributes): Ditto.
2754 (arm_is_segment_info_known): Ditto.
2755 (arm_mangle_type): Ditto.
2756 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Ditto.
2757 * config/avr/avr.cc (avr_lookup_function_attribute1): Ditto.
2758 (avr_decl_absdata_p): Ditto.
2759 (avr_insert_attributes): Ditto.
2760 (avr_section_type_flags): Ditto.
2761 (avr_encode_section_info): Ditto.
2762 * config/bfin/bfin.cc (bfin_handle_l2_attribute): Ditto.
2763 * config/bpf/bpf.cc (bpf_core_compute): Ditto.
2764 * config/c6x/c6x.cc (c6x_in_small_data_p): Ditto.
2765 * config/csky/csky.cc (csky_handle_isr_attribute): Ditto.
2766 (csky_mangle_type): Ditto.
2767 * config/darwin-c.cc (darwin_pragma_unused): Ditto.
2768 * config/darwin.cc (is_objc_metadata): Ditto.
2769 * config/epiphany/epiphany.cc (epiphany_function_ok_for_sibcall): Ditto.
2770 * config/epiphany/epiphany.h (ROUND_TYPE_ALIGN): Ditto.
2771 * config/frv/frv.cc (frv_emit_movsi): Ditto.
2772 * config/gcn/gcn-tree.cc (gcn_lockless_update): Ditto.
2773 * config/gcn/gcn.cc (gcn_asm_output_symbol_ref): Ditto.
2774 * config/h8300/h8300.cc (h8300_encode_section_info): Ditto.
2775 * config/i386/i386-expand.cc: Ditto.
2776 * config/i386/i386.cc (type_natural_mode): Ditto.
2777 (ix86_function_arg): Ditto.
2778 (ix86_data_alignment): Ditto.
2779 (ix86_local_alignment): Ditto.
2780 (ix86_simd_clone_compute_vecsize_and_simdlen): Ditto.
2781 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Ditto.
2782 (i386_pe_type_dllexport_p): Ditto.
2783 (i386_pe_adjust_class_at_definition): Ditto.
2784 * config/i386/winnt.cc (i386_pe_determine_dllimport_p): Ditto.
2785 (i386_pe_binds_local_p): Ditto.
2786 (i386_pe_section_type_flags): Ditto.
2787 * config/ia64/ia64.cc (ia64_encode_section_info): Ditto.
2788 (ia64_gimplify_va_arg): Ditto.
2789 (ia64_in_small_data_p): Ditto.
2790 * config/iq2000/iq2000.cc (iq2000_function_arg): Ditto.
2791 * config/lm32/lm32.cc (lm32_in_small_data_p): Ditto.
2792 * config/loongarch/loongarch.cc (loongarch_handle_model_attribute): Ditto.
2793 * config/m32c/m32c.cc (m32c_insert_attributes): Ditto.
2794 * config/mcore/mcore.cc (mcore_mark_dllimport): Ditto.
2795 (mcore_encode_section_info): Ditto.
2796 * config/microblaze/microblaze.cc (microblaze_elf_in_small_data_p): Ditto.
2797 * config/mips/mips.cc (mips_output_aligned_decl_common): Ditto.
2798 * config/mmix/mmix.cc (mmix_encode_section_info): Ditto.
2799 * config/nvptx/nvptx.cc (nvptx_encode_section_info): Ditto.
2800 (pass_in_memory): Ditto.
2801 (nvptx_generate_vector_shuffle): Ditto.
2802 (nvptx_lockless_update): Ditto.
2803 * config/pa/pa.cc (pa_function_arg_padding): Ditto.
2804 (pa_function_value): Ditto.
2805 (pa_function_arg): Ditto.
2806 * config/pa/pa.h (IN_NAMED_SECTION_P): Ditto.
2807 (TEXT_SPACE_P): Ditto.
2808 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Ditto.
2809 * config/pdp11/pdp11.cc (pdp11_return_in_memory): Ditto.
2810 * config/riscv/riscv.cc (riscv_in_small_data_p): Ditto.
2811 (riscv_mangle_type): Ditto.
2812 * config/rl78/rl78.cc (rl78_insert_attributes): Ditto.
2813 (rl78_addsi3_internal): Ditto.
2814 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Ditto.
2815 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Ditto.
2816 * config/rs6000/freebsd64.h (ROUND_TYPE_ALIGN): Ditto.
2817 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Ditto.
2818 * config/rs6000/rs6000-call.cc (rs6000_function_arg_boundary): Ditto.
2819 (rs6000_function_arg_advance_1): Ditto.
2820 (rs6000_function_arg): Ditto.
2821 (rs6000_pass_by_reference): Ditto.
2822 * config/rs6000/rs6000-logue.cc (rs6000_function_ok_for_sibcall): Ditto.
2823 * config/rs6000/rs6000.cc (rs6000_data_alignment): Ditto.
2824 (rs6000_set_default_type_attributes): Ditto.
2825 (rs6000_elf_in_small_data_p): Ditto.
2826 (IN_NAMED_SECTION): Ditto.
2827 (rs6000_xcoff_encode_section_info): Ditto.
2828 (rs6000_function_value): Ditto.
2829 (invalid_arg_for_unprototyped_fn): Ditto.
2830 * config/s390/s390-c.cc (s390_fn_types_compatible): Ditto.
2831 (s390_vec_n_elem): Ditto.
2832 * config/s390/s390.cc (s390_check_type_for_vector_abi): Ditto.
2833 (s390_function_arg_integer): Ditto.
2834 (s390_return_in_memory): Ditto.
2835 (s390_encode_section_info): Ditto.
2836 * config/sh/sh.cc (sh_gimplify_va_arg_expr): Ditto.
2837 (sh_function_value): Ditto.
2838 * config/sol2.cc (solaris_insert_attributes): Ditto.
2839 * config/sparc/sparc.cc (function_arg_slotno): Ditto.
2840 * config/sparc/sparc.h (ROUND_TYPE_ALIGN): Ditto.
2841 * config/stormy16/stormy16.cc (xstormy16_encode_section_info): Ditto.
2842 (xstormy16_handle_below100_attribute): Ditto.
2843 * config/v850/v850.cc (v850_encode_section_info): Ditto.
2844 (v850_insert_attributes): Ditto.
2845 * config/visium/visium.cc (visium_pass_by_reference): Ditto.
2846 (visium_return_in_memory): Ditto.
2847 * config/xtensa/xtensa.cc (xtensa_multibss_section_type_flags): Ditto.
2848
2849 2023-05-18 Uros Bizjak <ubizjak@gmail.com>
2850
2851 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): New.
2852 (ix86_expand_vecop_qihi): Add op2vec bool variable.
2853 Do not set REG_EQUAL note.
2854 * config/i386/i386-protos.h (ix86_expand_vecop_qihi_partial):
2855 Add prototype.
2856 * config/i386/i386.cc (ix86_multiplication_cost): Handle
2857 V4QImode and V8QImode.
2858 * config/i386/mmx.md (mulv8qi3): New expander.
2859 (mulv4qi3): Ditto.
2860 * config/i386/sse.md (mulv8qi3): Remove.
2861
2862 2023-05-18 Georg-Johann Lay <avr@gjlay.de>
2863
2864 * config/avr/gen-avr-mmcu-specs.cc: Remove stale */ after // comment.
2865
2866 2023-05-18 Jonathan Wakely <jwakely@redhat.com>
2867
2868 PR bootstrap/105831
2869 * config.gcc: Use = operator instead of ==.
2870
2871 2023-05-18 Michael Bäuerle <micha@NetBSD.org>
2872
2873 PR bootstrap/105831
2874 * config/nvptx/gen-opt.sh: Use = operator instead of ==.
2875 * configure.ac: Likewise.
2876 * configure: Regenerate.
2877
2878 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2879
2880 * config/arm/arm_mve.h: (__ARM_mve_typeid): Add more pointer types.
2881 (__ARM_mve_coerce1): Remove.
2882 (__ARM_mve_coerce2): Remove.
2883 (__ARM_mve_coerce3): Remove.
2884 (__ARM_mve_coerce_i_scalar): New.
2885 (__ARM_mve_coerce_s8_ptr): New.
2886 (__ARM_mve_coerce_u8_ptr): New.
2887 (__ARM_mve_coerce_s16_ptr): New.
2888 (__ARM_mve_coerce_u16_ptr): New.
2889 (__ARM_mve_coerce_s32_ptr): New.
2890 (__ARM_mve_coerce_u32_ptr): New.
2891 (__ARM_mve_coerce_s64_ptr): New.
2892 (__ARM_mve_coerce_u64_ptr): New.
2893 (__ARM_mve_coerce_f_scalar): New.
2894 (__ARM_mve_coerce_f16_ptr): New.
2895 (__ARM_mve_coerce_f32_ptr): New.
2896 (__arm_vst4q): Change _coerce_ overloads.
2897 (__arm_vbicq): Change _coerce_ overloads.
2898 (__arm_vld1q): Change _coerce_ overloads.
2899 (__arm_vld1q_z): Change _coerce_ overloads.
2900 (__arm_vld2q): Change _coerce_ overloads.
2901 (__arm_vld4q): Change _coerce_ overloads.
2902 (__arm_vldrhq_gather_offset): Change _coerce_ overloads.
2903 (__arm_vldrhq_gather_offset_z): Change _coerce_ overloads.
2904 (__arm_vldrhq_gather_shifted_offset): Change _coerce_ overloads.
2905 (__arm_vldrhq_gather_shifted_offset_z): Change _coerce_ overloads.
2906 (__arm_vldrwq_gather_offset): Change _coerce_ overloads.
2907 (__arm_vldrwq_gather_offset_z): Change _coerce_ overloads.
2908 (__arm_vldrwq_gather_shifted_offset): Change _coerce_ overloads.
2909 (__arm_vldrwq_gather_shifted_offset_z): Change _coerce_ overloads.
2910 (__arm_vst1q_p): Change _coerce_ overloads.
2911 (__arm_vst2q): Change _coerce_ overloads.
2912 (__arm_vst1q): Change _coerce_ overloads.
2913 (__arm_vstrhq): Change _coerce_ overloads.
2914 (__arm_vstrhq_p): Change _coerce_ overloads.
2915 (__arm_vstrhq_scatter_offset_p): Change _coerce_ overloads.
2916 (__arm_vstrhq_scatter_offset): Change _coerce_ overloads.
2917 (__arm_vstrhq_scatter_shifted_offset_p): Change _coerce_ overloads.
2918 (__arm_vstrhq_scatter_shifted_offset): Change _coerce_ overloads.
2919 (__arm_vstrwq_p): Change _coerce_ overloads.
2920 (__arm_vstrwq): Change _coerce_ overloads.
2921 (__arm_vstrwq_scatter_offset): Change _coerce_ overloads.
2922 (__arm_vstrwq_scatter_offset_p): Change _coerce_ overloads.
2923 (__arm_vstrwq_scatter_shifted_offset): Change _coerce_ overloads.
2924 (__arm_vstrwq_scatter_shifted_offset_p): Change _coerce_ overloads.
2925 (__arm_vsetq_lane): Change _coerce_ overloads.
2926 (__arm_vldrbq_gather_offset): Change _coerce_ overloads.
2927 (__arm_vdwdupq_x_u8): Change _coerce_ overloads.
2928 (__arm_vdwdupq_x_u16): Change _coerce_ overloads.
2929 (__arm_vdwdupq_x_u32): Change _coerce_ overloads.
2930 (__arm_viwdupq_x_u8): Change _coerce_ overloads.
2931 (__arm_viwdupq_x_u16): Change _coerce_ overloads.
2932 (__arm_viwdupq_x_u32): Change _coerce_ overloads.
2933 (__arm_vidupq_x_u8): Change _coerce_ overloads.
2934 (__arm_vddupq_x_u8): Change _coerce_ overloads.
2935 (__arm_vidupq_x_u16): Change _coerce_ overloads.
2936 (__arm_vddupq_x_u16): Change _coerce_ overloads.
2937 (__arm_vidupq_x_u32): Change _coerce_ overloads.
2938 (__arm_vddupq_x_u32): Change _coerce_ overloads.
2939 (__arm_vldrdq_gather_offset): Change _coerce_ overloads.
2940 (__arm_vldrdq_gather_offset_z): Change _coerce_ overloads.
2941 (__arm_vldrdq_gather_shifted_offset): Change _coerce_ overloads.
2942 (__arm_vldrdq_gather_shifted_offset_z): Change _coerce_ overloads.
2943 (__arm_vldrbq_gather_offset_z): Change _coerce_ overloads.
2944 (__arm_vidupq_u16): Change _coerce_ overloads.
2945 (__arm_vidupq_u32): Change _coerce_ overloads.
2946 (__arm_vidupq_u8): Change _coerce_ overloads.
2947 (__arm_vddupq_u16): Change _coerce_ overloads.
2948 (__arm_vddupq_u32): Change _coerce_ overloads.
2949 (__arm_vddupq_u8): Change _coerce_ overloads.
2950 (__arm_viwdupq_m): Change _coerce_ overloads.
2951 (__arm_viwdupq_u16): Change _coerce_ overloads.
2952 (__arm_viwdupq_u32): Change _coerce_ overloads.
2953 (__arm_viwdupq_u8): Change _coerce_ overloads.
2954 (__arm_vdwdupq_m): Change _coerce_ overloads.
2955 (__arm_vdwdupq_u16): Change _coerce_ overloads.
2956 (__arm_vdwdupq_u32): Change _coerce_ overloads.
2957 (__arm_vdwdupq_u8): Change _coerce_ overloads.
2958 (__arm_vstrbq): Change _coerce_ overloads.
2959 (__arm_vstrbq_p): Change _coerce_ overloads.
2960 (__arm_vstrbq_scatter_offset_p): Change _coerce_ overloads.
2961 (__arm_vstrdq_scatter_offset_p): Change _coerce_ overloads.
2962 (__arm_vstrdq_scatter_offset): Change _coerce_ overloads.
2963 (__arm_vstrdq_scatter_shifted_offset_p): Change _coerce_ overloads.
2964 (__arm_vstrdq_scatter_shifted_offset): Change _coerce_ overloads.
2965
2966 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2967
2968 * config/arm/arm_mve.h (__arm_vbicq): Change coerce on
2969 scalar constant.
2970
2971 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2972
2973 * config/arm/arm_mve.h (__arm_vadcq_s32): Fix arithmetic.
2974 (__arm_vadcq_u32): Likewise.
2975 (__arm_vadcq_m_s32): Likewise.
2976 (__arm_vadcq_m_u32): Likewise.
2977 (__arm_vsbcq_s32): Likewise.
2978 (__arm_vsbcq_u32): Likewise.
2979 (__arm_vsbcq_m_s32): Likewise.
2980 (__arm_vsbcq_m_u32): Likewise.
2981 * config/arm/mve.md (get_fpscr_nzcvqc): Make unspec_volatile.
2982
2983 2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
2984
2985 * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrev64q_f<mode>)
2986 (mve_vrev32q_fv8hf, mve_vcvttq_f32_f16v4sf)
2987 (mve_vcvtbq_f32_f16v4sf, mve_vcvtq_to_f_<supf><mode>)
2988 (mve_vrev64q_<supf><mode>, mve_vcvtq_from_f_<supf><mode>)
2989 (mve_vmovltq_<supf><mode>, mve_vmovlbq_<supf><mode>)
2990 (mve_vcvtpq_<supf><mode>, mve_vcvtnq_<supf><mode>)
2991 (mve_vcvtmq_<supf><mode>, mve_vcvtaq_<supf><mode>)
2992 (mve_vmvnq_n_<supf><mode>, mve_vrev16q_<supf>v16qi)
2993 (mve_vctp<MVE_vctp>q<MVE_vpred>, mve_vbrsrq_n_f<mode>)
2994 (mve_vbrsrq_n_<supf><mode>, mve_vandq_f<mode>, mve_vbicq_f<mode>)
2995 (mve_vctp<MVE_vctp>q_m<MVE_vpred>, mve_vcvtbq_f16_f32v8hf)
2996 (mve_vcvttq_f16_f32v8hf, mve_veorq_f<mode>)
2997 (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
2998 (mve_vmlsldavxq_s<mode>, mve_vornq_f<mode>, mve_vorrq_f<mode>)
2999 (mve_vrmlaldavhxq_sv4si, mve_vcvtq_m_to_f_<supf><mode>)
3000 (mve_vshlcq_<supf><mode>, mve_vmvnq_m_<supf><mode>)
3001 (mve_vpselq_<supf><mode>, mve_vcvtbq_m_f16_f32v8hf)
3002 (mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f16_f32v8hf)
3003 (mve_vcvttq_m_f32_f16v4sf, mve_vmlaldavq_p_<supf><mode>)
3004 (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
3005 (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>)
3006 (mve_vmvnq_m_n_<supf><mode>, mve_vorrq_m_n_<supf><mode>)
3007 (mve_vpselq_f<mode>, mve_vrev32q_m_fv8hf)
3008 (mve_vrev32q_m_<supf><mode>, mve_vrev64q_m_f<mode>)
3009 (mve_vrmlaldavhaxq_sv4si, mve_vrmlaldavhxq_p_sv4si)
3010 (mve_vrmlsldavhaxq_sv4si, mve_vrmlsldavhq_p_sv4si)
3011 (mve_vrmlsldavhxq_p_sv4si, mve_vrev16q_m_<supf>v16qi)
3012 (mve_vrmlaldavhq_p_<supf>v4si, mve_vrmlsldavhaq_sv4si)
3013 (mve_vandq_m_<supf><mode>, mve_vbicq_m_<supf><mode>)
3014 (mve_veorq_m_<supf><mode>, mve_vornq_m_<supf><mode>)
3015 (mve_vorrq_m_<supf><mode>, mve_vandq_m_f<mode>)
3016 (mve_vbicq_m_f<mode>, mve_veorq_m_f<mode>, mve_vornq_m_f<mode>)
3017 (mve_vorrq_m_f<mode>)
3018 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn)
3019 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn)
3020 (mve_vstrdq_scatter_base_wb_p_<supf>v2di) : Fix spacing and
3021 capitalization in the emitted asm.
3022
3023 2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
3024
3025 * config/arm/constraints.md (mve_vldrd_immediate): Move it to
3026 predicates.md.
3027 (Ri): Move constraint definition from predicates.md.
3028 (Rl): Define new constraint.
3029 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Add
3030 missing constraint.
3031 (mve_vstrwq_scatter_base_wb_p_fv4sf): Add missing Up constraint
3032 for op 1, use mve_vstrw_immediate predicate and Rl constraint for
3033 op 2. Fix asm output spacing.
3034 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Add missing constraint.
3035 * config/arm/predicates.md (Ri) Move constraint to constraints.md
3036 (mve_vldrd_immediate): Move it from
3037 constraints.md.
3038 (mve_vstrw_immediate): New predicate.
3039
3040 2023-05-18 Pan Li <pan2.li@intel.com>
3041 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3042 Kito Cheng <kito.cheng@sifive.com>
3043 Richard Biener <rguenther@suse.de>
3044 Richard Sandiford <richard.sandiford@arm.com>
3045
3046 * combine.cc (struct reg_stat_type): Extend machine_mode to 16 bits.
3047 * cse.cc (struct qty_table_elem): Extend machine_mode to 16 bits
3048 (struct table_elt): Extend machine_mode to 16 bits.
3049 (struct set): Ditto.
3050 * genmodes.cc (emit_mode_wider): Extend type from char to short.
3051 (emit_mode_complex): Ditto.
3052 (emit_mode_inner): Ditto.
3053 (emit_class_narrowest_mode): Ditto.
3054 * genopinit.cc (main): Extend the machine_mode limit.
3055 * ira-int.h (struct ira_allocno): Extend machine_mode to 16 bits and
3056 re-ordered the struct fields for padding.
3057 * machmode.h (MACHINE_MODE_BITSIZE): New macro.
3058 (GET_MODE_2XWIDER_MODE): Extend type from char to short.
3059 (get_mode_alignment): Extend type from char to short.
3060 * ree.cc (struct ext_modified): Extend machine_mode to 16 bits and
3061 removed the ATTRIBUTE_PACKED.
3062 * rtl-ssa/accesses.h: Extend machine_mode to 16 bits, narrow
3063 * rtl-ssa/internals.inl (rtl_ssa::access_info): Adjust the assignment.
3064 m_kind to 2 bits and remove m_spare.
3065 * rtl.h (RTX_CODE_BITSIZE): New macro.
3066 (struct rtx_def): Swap both the bit size and location between the
3067 rtx_code and the machine_mode.
3068 (subreg_shape::unique_id): Extend the machine_mode limit.
3069 * rtlanal.h: Extend machine_mode to 16 bits.
3070 * tree-core.h (struct tree_type_common): Extend machine_mode to 16
3071 bits and re-ordered the struct fields for padding.
3072 (struct tree_decl_common): Extend machine_mode to 16 bits.
3073
3074 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
3075
3076 * genrecog.cc (print_nonbool_test): Fix type error of
3077 switch (SUBREG_BYTE (op))'.
3078
3079 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
3080
3081 * common/config/riscv/riscv-common.cc: Remove
3082 trailing spaces on lines.
3083 * config/riscv/riscv.cc (riscv_legitimize_move): Likewise.
3084 * config/riscv/riscv.h (enum reg_class): Likewise.
3085 * config/riscv/riscv.md: Likewise.
3086
3087 2023-05-17 John David Anglin <danglin@gcc.gnu.org>
3088
3089 * config/pa/pa.md (clear_cache): New.
3090
3091 2023-05-17 Arsen Arsenović <arsen@aarsen.me>
3092
3093 * doc/extend.texi (C++ Concepts) <forall>: Remove extraneous
3094 parenthesis. Fix misnamed index entry.
3095 <concept>: Fix misnamed index entry.
3096
3097 2023-05-17 Jivan Hakobyan <jivanhakobyan9@gmail.com>
3098
3099 * config/riscv/riscv.md (*<optab><GPR:mode>3_mask): New pattern,
3100 combined from ...
3101 (*<optab>si3_mask, *<optab>di3_mask): Here.
3102 (*<optab>si3_mask_1, *<optab>di3_mask_1): And here.
3103 * config/riscv/bitmanip.md (*<bitmanip_optab><GPR:mode>3_mask): New
3104 pattern.
3105 (*<bitmanip_optab>si3_sext_mask): Likewise.
3106 * config/riscv/iterators.md (shiftm1): Use const_si_mask_operand
3107 and const_di_mask_operand.
3108 (bitmanip_rotate): New iterator.
3109 (bitmanip_optab): Add rotates.
3110 * config/riscv/predicates.md (const_si_mask_operand): Renamed
3111 from const31_operand. Generalize to handle more mask constants.
3112 (const_di_mask_operand): Similarly.
3113
3114 2023-05-17 Jakub Jelinek <jakub@redhat.com>
3115
3116 PR c++/109884
3117 * config/i386/i386-builtin-types.def (FLOAT128): Use
3118 float128t_type_node rather than float128_type_node.
3119
3120 2023-05-17 Alexander Monakov <amonakov@ispras.ru>
3121
3122 * tree-ssa-math-opts.cc (convert_mult_to_fma): Enable only for
3123 FP_CONTRACT_FAST (no functional change).
3124
3125 2023-05-17 Uros Bizjak <ubizjak@gmail.com>
3126
3127 * config/i386/i386.cc (ix86_multiplication_cost): Correct
3128 calcuation of integer vector mode costs to reflect generated
3129 instruction sequences of different integer vector modes and
3130 different target ABIs.
3131
3132 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3133
3134 * config/riscv/riscv-opts.h (enum riscv_entity): New enum.
3135 * config/riscv/riscv.cc (riscv_emit_mode_set): New function.
3136 (riscv_mode_needed): Ditto.
3137 (riscv_mode_after): Ditto.
3138 (riscv_mode_entry): Ditto.
3139 (riscv_mode_exit): Ditto.
3140 (riscv_mode_priority): Ditto.
3141 (TARGET_MODE_EMIT): New target hook.
3142 (TARGET_MODE_NEEDED): Ditto.
3143 (TARGET_MODE_AFTER): Ditto.
3144 (TARGET_MODE_ENTRY): Ditto.
3145 (TARGET_MODE_EXIT): Ditto.
3146 (TARGET_MODE_PRIORITY): Ditto.
3147 * config/riscv/riscv.h (OPTIMIZE_MODE_SWITCHING): Ditto.
3148 (NUM_MODES_FOR_MODE_SWITCHING): Ditto.
3149 * config/riscv/riscv.md: Add csrwvxrm.
3150 * config/riscv/vector.md (rnu,rne,rdn,rod,none): New attribute.
3151 (vxrmsi): New pattern.
3152
3153 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3154
3155 * config/riscv/riscv-vector-builtins-bases.cc: Introduce rounding mode.
3156 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
3157 (struct narrow_alu_def): Ditto.
3158 * config/riscv/riscv-vector-builtins.cc (function_builder::apply_predication): Ditto.
3159 (function_expander::use_exact_insn): Ditto.
3160 * config/riscv/riscv-vector-builtins.h (function_checker::arg_num): New function.
3161 (function_base::has_rounding_mode_operand_p): New function.
3162
3163 2023-05-17 Andrew Pinski <apinski@marvell.com>
3164
3165 * tree-ssa-forwprop.cc (simplify_builtin_call): Check
3166 against 0 instead of calling integer_zerop.
3167
3168 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3169
3170 * config/riscv/riscv-vector-builtins.cc (register_vxrm): New function.
3171 (DEF_RVV_VXRM_ENUM): New macro.
3172 (handle_pragma_vector): Add vxrm enum register.
3173 * config/riscv/riscv-vector-builtins.def (DEF_RVV_VXRM_ENUM): New macro.
3174 (RNU): Ditto.
3175 (RNE): Ditto.
3176 (RDN): Ditto.
3177 (ROD): Ditto.
3178
3179 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
3180
3181 * value-range.h (Value_Range::operator=): New.
3182
3183 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
3184
3185 * value-range.cc (vrange::operator=): Add a stub to copy
3186 unsupported ranges.
3187 * value-range.h (is_a <unsupported_range>): New.
3188 (Value_Range::operator=): Support copying unsupported ranges.
3189
3190 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
3191
3192 * data-streamer-in.cc (streamer_read_real_value): New.
3193 (streamer_read_value_range): New.
3194 * data-streamer-out.cc (streamer_write_real_value): New.
3195 (streamer_write_vrange): New.
3196 * data-streamer.h (streamer_write_vrange): New.
3197 (streamer_read_value_range): New.
3198
3199 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
3200
3201 PR c++/109532
3202 * doc/invoke.texi (Code Gen Options): Note that -fshort-enums
3203 is ignored for a fixed underlying type.
3204 (C++ Dialect Options): Likewise for -fstrict-enums.
3205
3206 2023-05-17 Tobias Burnus <tobias@codesourcery.com>
3207
3208 * gimplify.cc (gimplify_scan_omp_clauses): Remove Fortran
3209 special case.
3210
3211 2023-05-17 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3212
3213 * config/s390/s390.cc (TARGET_ATOMIC_ALIGN_FOR_MODE):
3214 New.
3215 (s390_atomic_align_for_mode): New.
3216
3217 2023-05-17 Jakub Jelinek <jakub@redhat.com>
3218
3219 * wide-int.cc (wi::from_array): Add missing closing paren in function
3220 comment.
3221
3222 2023-05-17 Kewen Lin <linkw@linux.ibm.com>
3223
3224 * tree-vect-loop.cc (vect_analyze_loop_1): Don't retry analysis with
3225 suggested unroll factor once the previous analysis fails.
3226
3227 2023-05-17 Pan Li <pan2.li@intel.com>
3228
3229 * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): New
3230 macro.
3231 (main): Add bool1 to the type indexer.
3232 * config/riscv/riscv-vector-builtins-functions.def
3233 (vreinterpret): Register vbool1 interpret function.
3234 * config/riscv/riscv-vector-builtins-types.def
3235 (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
3236 (vint8m1_t): Add the type to bool1_interpret_ops.
3237 (vint16m1_t): Ditto.
3238 (vint32m1_t): Ditto.
3239 (vint64m1_t): Ditto.
3240 (vuint8m1_t): Ditto.
3241 (vuint16m1_t): Ditto.
3242 (vuint32m1_t): Ditto.
3243 (vuint64m1_t): Ditto.
3244 * config/riscv/riscv-vector-builtins.cc
3245 (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
3246 (required_extensions_p): Add bool1 interpret case.
3247 * config/riscv/riscv-vector-builtins.def
3248 (bool1_interpret): Add bool1 interpret to base type.
3249 * config/riscv/vector.md (@vreinterpret<mode>): Add new expand
3250 with VB dest for vreinterpret.
3251
3252 2023-05-17 Jiufu Guo <guojiufu@linux.ibm.com>
3253
3254 PR target/106708
3255 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Support building
3256 constants through "lis; xoris".
3257
3258 2023-05-16 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com>
3259
3260 * common/config/rs6000/rs6000-common.cc: Add REE pass as a
3261 default rs6000 target pass for O2 and above.
3262 * doc/invoke.texi: Document -free
3263
3264 2023-05-16 Kito Cheng <kito.cheng@sifive.com>
3265
3266 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
3267 Fix wrong select_kind...
3268
3269 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3270
3271 * config/s390/s390-protos.h (s390_expand_setmem): Change
3272 function signature.
3273 * config/s390/s390.cc (s390_expand_setmem): For memset's less
3274 than or equal to 256 byte do not perform a libc call.
3275 * config/s390/s390.md: Change expander into a version which
3276 takes 8 operands.
3277
3278 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3279
3280 * config/s390/s390-protos.h (s390_expand_movmem): New.
3281 * config/s390/s390.cc (s390_expand_movmem): New.
3282 * config/s390/s390.md (movmem<mode>): New.
3283 (*mvcrl): New.
3284 (mvcrl): New.
3285
3286 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3287
3288 * config/s390/s390-protos.h (s390_expand_cpymem): Change
3289 function signature.
3290 * config/s390/s390.cc (s390_expand_cpymem): For memcpy's less
3291 than or equal to 256 byte do not perform a libc call.
3292 (s390_expand_insv): Adapt new function signature of
3293 s390_expand_cpymem.
3294 * config/s390/s390.md: Change expander into a version which
3295 takes 8 operands.
3296
3297 2023-05-16 Andrew Pinski <apinski@marvell.com>
3298
3299 PR tree-optimization/109424
3300 * match.pd: Add patterns for min/max of zero_one_valued
3301 values to `&`/`|`.
3302
3303 2023-05-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3304
3305 * config/riscv/riscv-protos.h (enum frm_field_enum): New enum.
3306 * config/riscv/riscv-vector-builtins.cc
3307 (function_expander::use_ternop_insn): Add default rounding mode.
3308 (function_expander::use_widen_ternop_insn): Ditto.
3309 * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add FRM REGNUM.
3310 (riscv_hard_regno_mode_ok): Ditto.
3311 (riscv_conditional_register_usage): Ditto.
3312 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
3313 (FRM_REG_P): Ditto.
3314 (RISCV_DWARF_FRM): Ditto.
3315 * config/riscv/riscv.md: Ditto.
3316 * config/riscv/vector-iterators.md: split no frm and has frm operations.
3317 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
3318 (@pred_<optab><mode>): Ditto.
3319
3320 2023-05-15 Aldy Hernandez <aldyh@redhat.com>
3321
3322 PR tree-optimization/109695
3323 * value-range.cc (irange::operator=): Resize range.
3324 (irange::union_): Same.
3325 (irange::intersect): Same.
3326 (irange::invert): Same.
3327 (int_range_max): Default to 3 sub-ranges and resize as needed.
3328 * value-range.h (irange::maybe_resize): New.
3329 (~int_range): New.
3330 (int_range::int_range): Adjust for resizing.
3331 (int_range::operator=): Same.
3332
3333 2023-05-15 Aldy Hernandez <aldyh@redhat.com>
3334
3335 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Avoid unnecessary
3336 range copying
3337 * value-range.cc (irange::union_nonzero_bits): Return TRUE only
3338 when range changed.
3339
3340 2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3341
3342 * config/riscv/riscv-protos.h (enum vxrm_field_enum): New enum.
3343 * config/riscv/riscv-vector-builtins.cc
3344 (function_expander::use_exact_insn): Add default rounding mode operand.
3345 * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add VXRM_REGNUM.
3346 (riscv_hard_regno_mode_ok): Ditto.
3347 (riscv_conditional_register_usage): Ditto.
3348 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
3349 (VXRM_REG_P): Ditto.
3350 (RISCV_DWARF_VXRM): Ditto.
3351 * config/riscv/riscv.md: Ditto.
3352 * config/riscv/vector.md: Ditto
3353
3354 2023-05-15 Pan Li <pan2.li@intel.com>
3355
3356 * optabs.cc (maybe_gen_insn): Add case to generate instruction
3357 that has 11 operands.
3358
3359 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3360
3361 * config/aarch64/aarch64.cc (aarch64_rtx_costs, NEG case): Add costing
3362 logic for vector modes.
3363
3364 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3365
3366 PR target/99195
3367 * config/aarch64/aarch64-simd.md (aarch64_cm<optab><mode>): Rename to...
3368 (aarch64_cm<optab><mode><vczle><vczbe>): ... This.
3369 (aarch64_cmtst<mode>): Rename to...
3370 (aarch64_cmtst<mode><vczle><vczbe>): ... This.
3371 (*aarch64_cmtst_same_<mode>): Rename to...
3372 (*aarch64_cmtst_same_<mode><vczle><vczbe>): ... This.
3373 (*aarch64_cmtstdi): Rename to...
3374 (*aarch64_cmtstdi<vczle><vczbe>): ... This.
3375 (aarch64_fac<optab><mode>): Rename to...
3376 (aarch64_fac<optab><mode><vczle><vczbe>): ... This.
3377
3378 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3379
3380 PR target/99195
3381 * config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>): Rename to...
3382 (aarch64_s<optab><mode><vczle><vczbe>): ... This.
3383
3384 2023-05-15 Pan Li <pan2.li@intel.com>
3385 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3386 kito-cheng <kito.cheng@sifive.com>
3387
3388 * config/riscv/riscv-v.cc (const_vlmax_p): New function for
3389 deciding the mode is constant or not.
3390 (set_len_and_policy): Optimize VLS-VLMAX code gen to vsetivli.
3391
3392 2023-05-15 Richard Biener <rguenther@suse.de>
3393
3394 PR tree-optimization/109848
3395 * tree-ssa-forwprop.cc (pass_forwprop::execute): Put the
3396 TARGET_MEM_REF address preparation before the store, not
3397 before the CTOR.
3398
3399 2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3400
3401 * config/riscv/riscv.cc
3402 (riscv_vectorize_preferred_vector_alignment): New function.
3403 (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New target hook.
3404
3405 2023-05-14 Andrew Pinski <apinski@marvell.com>
3406
3407 PR tree-optimization/109829
3408 * match.pd: Add pattern for `signbit(x) !=/== 0 ? x : -x`.
3409
3410 2023-05-14 Uros Bizjak <ubizjak@gmail.com>
3411
3412 PR target/109807
3413 * config/i386/i386.cc: Revert the 2023-05-11 change.
3414 (ix86_widen_mult_cost): Return high value instead of
3415 ICEing for unsupported modes.
3416
3417 2023-05-14 Ard Biesheuvel <ardb@kernel.org>
3418
3419 * config/i386/i386.cc (x86_function_profiler): Take
3420 ix86_direct_extern_access into account when generating calls
3421 to __fentry__()
3422
3423 2023-05-14 Pan Li <pan2.li@intel.com>
3424
3425 * config/riscv/riscv-vector-builtins.cc (required_extensions_p):
3426 Refactor the or pattern to switch cases.
3427
3428 2023-05-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3429
3430 * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Rename
3431 aarch64_expand_vector_init to this, and remove interleaving case.
3432 Recursively call aarch64_expand_vector_init_fallback, instead of
3433 aarch64_expand_vector_init.
3434 (aarch64_unzip_vector_init): New function.
3435 (aarch64_expand_vector_init): Likewise.
3436
3437 2023-05-13 Kito Cheng <kito.cheng@sifive.com>
3438
3439 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns):
3440 Pull out function call from the gcc_assert.
3441
3442 2023-05-13 Kito Cheng <kito.cheng@sifive.com>
3443
3444 * config/riscv/riscv-vsetvl.cc (vlmul_to_str): New.
3445 (policy_to_str): New.
3446 (vector_insn_info::dump): Use vlmul_to_str and policy_to_str.
3447
3448 2023-05-13 Andrew Pinski <apinski@marvell.com>
3449
3450 PR tree-optimization/109834
3451 * match.pd (popcount(bswap(x))->popcount(x)): Fix up unsigned type checking.
3452 (popcount(rotate(x,y))->popcount(x)): Likewise.
3453
3454 2023-05-12 Uros Bizjak <ubizjak@gmail.com>
3455
3456 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also
3457 reject ymm instructions for TARGET_PREFER_AVX128. Use generic
3458 gen_extend_insn to generate zero/sign extension instructions.
3459 Fix comments.
3460 (ix86_expand_vecop_qihi): Initialize interleave functions
3461 for MULT code only. Fix comments.
3462
3463 2023-05-12 Uros Bizjak <ubizjak@gmail.com>
3464
3465 PR target/109797
3466 * config/i386/mmx.md (mulv2si3): Remove expander.
3467 (mulv2si3): Rename insn pattern from *mulv2si.
3468
3469 2023-05-12 Tobias Burnus <tobias@codesourcery.com>
3470
3471 PR libstdc++/109816
3472 * lto-cgraph.cc (output_symtab): Guard lto_output_toplevel_asms by
3473 '!lto_stream_offload_p'.
3474
3475 2023-05-12 Kito Cheng <kito.cheng@sifive.com>
3476 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3477
3478 PR target/109743
3479 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vsetvl_at_end): New.
3480 (local_avl_compatible_p): New.
3481 (pass_vsetvl::local_eliminate_vsetvl_insn): Enhance local optimizations
3482 for LCM, rewrite as a backward algorithm.
3483 (pass_vsetvl::cleanup_insns): Use new local_eliminate_vsetvl_insn
3484 interface, handle a BB at once.
3485
3486 2023-05-12 Richard Biener <rguenther@suse.de>
3487
3488 PR tree-optimization/64731
3489 * tree-ssa-forwprop.cc (pass_forwprop::execute): Also
3490 handle TARGET_MEM_REF destinations of stores from vector
3491 CTORs.
3492
3493 2023-05-12 Richard Biener <rguenther@suse.de>
3494
3495 PR tree-optimization/109791
3496 * match.pd (minus (convert ADDR_EXPR@0) (convert (pointer_plus @1 @2))):
3497 New pattern.
3498 (minus (convert (pointer_plus @1 @2)) (convert ADDR_EXPR@0)):
3499 Likewise.
3500
3501 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3502
3503 * config/arm/arm-mve-builtins-base.cc (vsriq): New.
3504 * config/arm/arm-mve-builtins-base.def (vsriq): New.
3505 * config/arm/arm-mve-builtins-base.h (vsriq): New.
3506 * config/arm/arm-mve-builtins.cc
3507 (function_instance::has_inactive_argument): Handle vsriq.
3508 * config/arm/arm_mve.h (vsriq): Remove.
3509 (vsriq_m): Remove.
3510 (vsriq_n_u8): Remove.
3511 (vsriq_n_s8): Remove.
3512 (vsriq_n_u16): Remove.
3513 (vsriq_n_s16): Remove.
3514 (vsriq_n_u32): Remove.
3515 (vsriq_n_s32): Remove.
3516 (vsriq_m_n_s8): Remove.
3517 (vsriq_m_n_u8): Remove.
3518 (vsriq_m_n_s16): Remove.
3519 (vsriq_m_n_u16): Remove.
3520 (vsriq_m_n_s32): Remove.
3521 (vsriq_m_n_u32): Remove.
3522 (__arm_vsriq_n_u8): Remove.
3523 (__arm_vsriq_n_s8): Remove.
3524 (__arm_vsriq_n_u16): Remove.
3525 (__arm_vsriq_n_s16): Remove.
3526 (__arm_vsriq_n_u32): Remove.
3527 (__arm_vsriq_n_s32): Remove.
3528 (__arm_vsriq_m_n_s8): Remove.
3529 (__arm_vsriq_m_n_u8): Remove.
3530 (__arm_vsriq_m_n_s16): Remove.
3531 (__arm_vsriq_m_n_u16): Remove.
3532 (__arm_vsriq_m_n_s32): Remove.
3533 (__arm_vsriq_m_n_u32): Remove.
3534 (__arm_vsriq): Remove.
3535 (__arm_vsriq_m): Remove.
3536
3537 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3538
3539 * config/arm/iterators.md (mve_insn): Add vsri.
3540 * config/arm/mve.md (mve_vsriq_n_<supf><mode>): Rename into ...
3541 (@mve_<mve_insn>q_n_<supf><mode>): .,. this.
3542 (mve_vsriq_m_n_<supf><mode>): Rename into ...
3543 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
3544
3545 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3546
3547 * config/arm/arm-mve-builtins-shapes.cc (ternary_rshift): New.
3548 * config/arm/arm-mve-builtins-shapes.h (ternary_rshift): New.
3549
3550 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3551
3552 * config/arm/arm-mve-builtins-base.cc (vsliq): New.
3553 * config/arm/arm-mve-builtins-base.def (vsliq): New.
3554 * config/arm/arm-mve-builtins-base.h (vsliq): New.
3555 * config/arm/arm-mve-builtins.cc
3556 (function_instance::has_inactive_argument): Handle vsliq.
3557 * config/arm/arm_mve.h (vsliq): Remove.
3558 (vsliq_m): Remove.
3559 (vsliq_n_u8): Remove.
3560 (vsliq_n_s8): Remove.
3561 (vsliq_n_u16): Remove.
3562 (vsliq_n_s16): Remove.
3563 (vsliq_n_u32): Remove.
3564 (vsliq_n_s32): Remove.
3565 (vsliq_m_n_s8): Remove.
3566 (vsliq_m_n_s32): Remove.
3567 (vsliq_m_n_s16): Remove.
3568 (vsliq_m_n_u8): Remove.
3569 (vsliq_m_n_u32): Remove.
3570 (vsliq_m_n_u16): Remove.
3571 (__arm_vsliq_n_u8): Remove.
3572 (__arm_vsliq_n_s8): Remove.
3573 (__arm_vsliq_n_u16): Remove.
3574 (__arm_vsliq_n_s16): Remove.
3575 (__arm_vsliq_n_u32): Remove.
3576 (__arm_vsliq_n_s32): Remove.
3577 (__arm_vsliq_m_n_s8): Remove.
3578 (__arm_vsliq_m_n_s32): Remove.
3579 (__arm_vsliq_m_n_s16): Remove.
3580 (__arm_vsliq_m_n_u8): Remove.
3581 (__arm_vsliq_m_n_u32): Remove.
3582 (__arm_vsliq_m_n_u16): Remove.
3583 (__arm_vsliq): Remove.
3584 (__arm_vsliq_m): Remove.
3585
3586 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3587
3588 * config/arm/iterators.md (mve_insn>): Add vsli.
3589 * config/arm/mve.md (mve_vsliq_n_<supf><mode>): Rename into ...
3590 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
3591 (mve_vsliq_m_n_<supf><mode>): Rename into ...
3592 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
3593
3594 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3595
3596 * config/arm/arm-mve-builtins-shapes.cc (ternary_lshift): New.
3597 * config/arm/arm-mve-builtins-shapes.h (ternary_lshift): New.
3598
3599 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3600
3601 * config/arm/arm-mve-builtins-base.cc (vpselq): New.
3602 * config/arm/arm-mve-builtins-base.def (vpselq): New.
3603 * config/arm/arm-mve-builtins-base.h (vpselq): New.
3604 * config/arm/arm_mve.h (vpselq): Remove.
3605 (vpselq_u8): Remove.
3606 (vpselq_s8): Remove.
3607 (vpselq_u16): Remove.
3608 (vpselq_s16): Remove.
3609 (vpselq_u32): Remove.
3610 (vpselq_s32): Remove.
3611 (vpselq_u64): Remove.
3612 (vpselq_s64): Remove.
3613 (vpselq_f16): Remove.
3614 (vpselq_f32): Remove.
3615 (__arm_vpselq_u8): Remove.
3616 (__arm_vpselq_s8): Remove.
3617 (__arm_vpselq_u16): Remove.
3618 (__arm_vpselq_s16): Remove.
3619 (__arm_vpselq_u32): Remove.
3620 (__arm_vpselq_s32): Remove.
3621 (__arm_vpselq_u64): Remove.
3622 (__arm_vpselq_s64): Remove.
3623 (__arm_vpselq_f16): Remove.
3624 (__arm_vpselq_f32): Remove.
3625 (__arm_vpselq): Remove.
3626
3627 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3628
3629 * config/arm/arm-mve-builtins-shapes.cc (vpsel): New.
3630 * config/arm/arm-mve-builtins-shapes.h (vpsel): New.
3631
3632 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3633
3634 * config/arm/arm.cc (arm_expand_vcond): Use gen_mve_q instead of
3635 gen_mve_vpselq.
3636 * config/arm/iterators.md (MVE_VPSELQ_F): New.
3637 (mve_insn): Add vpsel.
3638 * config/arm/mve.md (@mve_vpselq_<supf><mode>): Rename into ...
3639 (@mve_<mve_insn>q_<supf><mode>): ... this.
3640 (@mve_vpselq_f<mode>): Rename into ...
3641 (@mve_<mve_insn>q_f<mode>): ... this.
3642
3643 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3644
3645 * config/arm/arm-mve-builtins-base.cc (vfmaq, vfmasq, vfmsq): New.
3646 * config/arm/arm-mve-builtins-base.def (vfmaq, vfmasq, vfmsq): New.
3647 * config/arm/arm-mve-builtins-base.h (vfmaq, vfmasq, vfmsq): New.
3648 * config/arm/arm-mve-builtins.cc
3649 (function_instance::has_inactive_argument): Handle vfmaq, vfmasq,
3650 vfmsq.
3651 * config/arm/arm_mve.h (vfmaq): Remove.
3652 (vfmasq): Remove.
3653 (vfmsq): Remove.
3654 (vfmaq_m): Remove.
3655 (vfmasq_m): Remove.
3656 (vfmsq_m): Remove.
3657 (vfmaq_f16): Remove.
3658 (vfmaq_n_f16): Remove.
3659 (vfmasq_n_f16): Remove.
3660 (vfmsq_f16): Remove.
3661 (vfmaq_f32): Remove.
3662 (vfmaq_n_f32): Remove.
3663 (vfmasq_n_f32): Remove.
3664 (vfmsq_f32): Remove.
3665 (vfmaq_m_f32): Remove.
3666 (vfmaq_m_f16): Remove.
3667 (vfmaq_m_n_f32): Remove.
3668 (vfmaq_m_n_f16): Remove.
3669 (vfmasq_m_n_f32): Remove.
3670 (vfmasq_m_n_f16): Remove.
3671 (vfmsq_m_f32): Remove.
3672 (vfmsq_m_f16): Remove.
3673 (__arm_vfmaq_f16): Remove.
3674 (__arm_vfmaq_n_f16): Remove.
3675 (__arm_vfmasq_n_f16): Remove.
3676 (__arm_vfmsq_f16): Remove.
3677 (__arm_vfmaq_f32): Remove.
3678 (__arm_vfmaq_n_f32): Remove.
3679 (__arm_vfmasq_n_f32): Remove.
3680 (__arm_vfmsq_f32): Remove.
3681 (__arm_vfmaq_m_f32): Remove.
3682 (__arm_vfmaq_m_f16): Remove.
3683 (__arm_vfmaq_m_n_f32): Remove.
3684 (__arm_vfmaq_m_n_f16): Remove.
3685 (__arm_vfmasq_m_n_f32): Remove.
3686 (__arm_vfmasq_m_n_f16): Remove.
3687 (__arm_vfmsq_m_f32): Remove.
3688 (__arm_vfmsq_m_f16): Remove.
3689 (__arm_vfmaq): Remove.
3690 (__arm_vfmasq): Remove.
3691 (__arm_vfmsq): Remove.
3692 (__arm_vfmaq_m): Remove.
3693 (__arm_vfmasq_m): Remove.
3694 (__arm_vfmsq_m): Remove.
3695
3696 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3697
3698 * config/arm/iterators.md (MVE_FP_M_BINARY): Add VFMAQ_M_F,
3699 VFMSQ_M_F.
3700 (MVE_FP_M_N_BINARY): Add VFMAQ_M_N_F, VFMASQ_M_N_F.
3701 (MVE_VFMxQ_F, MVE_VFMAxQ_N_F): New.
3702 (mve_insn): Add vfma, vfmas, vfms.
3703 * config/arm/mve.md (mve_vfmaq_f<mode>, mve_vfmsq_f<mode>): Merge
3704 into ...
3705 (@mve_<mve_insn>q_f<mode>): ... this.
3706 (mve_vfmaq_n_f<mode>, mve_vfmasq_n_f<mode>): Merge into ...
3707 (@mve_<mve_insn>q_n_f<mode>): ... this.
3708 (mve_vfmaq_m_f<mode>, mve_vfmsq_m_f<mode>): Merge into
3709 @mve_<mve_insn>q_m_f<mode>.
3710 (mve_vfmaq_m_n_f<mode>, mve_vfmasq_m_n_f<mode>): Merge into
3711 @mve_<mve_insn>q_m_n_f<mode>.
3712
3713 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3714
3715 * config/arm/arm-mve-builtins-shapes.cc (ternary_opt_n): New.
3716 * config/arm/arm-mve-builtins-shapes.h (ternary_opt_n): New.
3717
3718 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3719
3720 * config/arm/arm-mve-builtins-base.cc
3721 (FUNCTION_WITH_RTX_M_N_NO_F): New.
3722 (vmvnq): New.
3723 * config/arm/arm-mve-builtins-base.def (vmvnq): New.
3724 * config/arm/arm-mve-builtins-base.h (vmvnq): New.
3725 * config/arm/arm_mve.h (vmvnq): Remove.
3726 (vmvnq_m): Remove.
3727 (vmvnq_x): Remove.
3728 (vmvnq_s8): Remove.
3729 (vmvnq_s16): Remove.
3730 (vmvnq_s32): Remove.
3731 (vmvnq_n_s16): Remove.
3732 (vmvnq_n_s32): Remove.
3733 (vmvnq_u8): Remove.
3734 (vmvnq_u16): Remove.
3735 (vmvnq_u32): Remove.
3736 (vmvnq_n_u16): Remove.
3737 (vmvnq_n_u32): Remove.
3738 (vmvnq_m_u8): Remove.
3739 (vmvnq_m_s8): Remove.
3740 (vmvnq_m_u16): Remove.
3741 (vmvnq_m_s16): Remove.
3742 (vmvnq_m_u32): Remove.
3743 (vmvnq_m_s32): Remove.
3744 (vmvnq_m_n_s16): Remove.
3745 (vmvnq_m_n_u16): Remove.
3746 (vmvnq_m_n_s32): Remove.
3747 (vmvnq_m_n_u32): Remove.
3748 (vmvnq_x_s8): Remove.
3749 (vmvnq_x_s16): Remove.
3750 (vmvnq_x_s32): Remove.
3751 (vmvnq_x_u8): Remove.
3752 (vmvnq_x_u16): Remove.
3753 (vmvnq_x_u32): Remove.
3754 (vmvnq_x_n_s16): Remove.
3755 (vmvnq_x_n_s32): Remove.
3756 (vmvnq_x_n_u16): Remove.
3757 (vmvnq_x_n_u32): Remove.
3758 (__arm_vmvnq_s8): Remove.
3759 (__arm_vmvnq_s16): Remove.
3760 (__arm_vmvnq_s32): Remove.
3761 (__arm_vmvnq_n_s16): Remove.
3762 (__arm_vmvnq_n_s32): Remove.
3763 (__arm_vmvnq_u8): Remove.
3764 (__arm_vmvnq_u16): Remove.
3765 (__arm_vmvnq_u32): Remove.
3766 (__arm_vmvnq_n_u16): Remove.
3767 (__arm_vmvnq_n_u32): Remove.
3768 (__arm_vmvnq_m_u8): Remove.
3769 (__arm_vmvnq_m_s8): Remove.
3770 (__arm_vmvnq_m_u16): Remove.
3771 (__arm_vmvnq_m_s16): Remove.
3772 (__arm_vmvnq_m_u32): Remove.
3773 (__arm_vmvnq_m_s32): Remove.
3774 (__arm_vmvnq_m_n_s16): Remove.
3775 (__arm_vmvnq_m_n_u16): Remove.
3776 (__arm_vmvnq_m_n_s32): Remove.
3777 (__arm_vmvnq_m_n_u32): Remove.
3778 (__arm_vmvnq_x_s8): Remove.
3779 (__arm_vmvnq_x_s16): Remove.
3780 (__arm_vmvnq_x_s32): Remove.
3781 (__arm_vmvnq_x_u8): Remove.
3782 (__arm_vmvnq_x_u16): Remove.
3783 (__arm_vmvnq_x_u32): Remove.
3784 (__arm_vmvnq_x_n_s16): Remove.
3785 (__arm_vmvnq_x_n_s32): Remove.
3786 (__arm_vmvnq_x_n_u16): Remove.
3787 (__arm_vmvnq_x_n_u32): Remove.
3788 (__arm_vmvnq): Remove.
3789 (__arm_vmvnq_m): Remove.
3790 (__arm_vmvnq_x): Remove.
3791
3792 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3793
3794 * config/arm/iterators.md (mve_insn): Add vmvn.
3795 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Rename into ...
3796 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
3797 (mve_vmvnq_m_<supf><mode>): Rename into ...
3798 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
3799 (mve_vmvnq_m_n_<supf><mode>): Rename into ...
3800 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
3801
3802 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3803
3804 * config/arm/arm-mve-builtins-shapes.cc (mvn): New.
3805 * config/arm/arm-mve-builtins-shapes.h (mvn): New.
3806
3807 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3808
3809 * config/arm/arm-mve-builtins-base.cc (vbrsrq): New.
3810 * config/arm/arm-mve-builtins-base.def (vbrsrq): New.
3811 * config/arm/arm-mve-builtins-base.h (vbrsrq): New.
3812 * config/arm/arm_mve.h (vbrsrq): Remove.
3813 (vbrsrq_m): Remove.
3814 (vbrsrq_x): Remove.
3815 (vbrsrq_n_f16): Remove.
3816 (vbrsrq_n_f32): Remove.
3817 (vbrsrq_n_u8): Remove.
3818 (vbrsrq_n_s8): Remove.
3819 (vbrsrq_n_u16): Remove.
3820 (vbrsrq_n_s16): Remove.
3821 (vbrsrq_n_u32): Remove.
3822 (vbrsrq_n_s32): Remove.
3823 (vbrsrq_m_n_s8): Remove.
3824 (vbrsrq_m_n_s32): Remove.
3825 (vbrsrq_m_n_s16): Remove.
3826 (vbrsrq_m_n_u8): Remove.
3827 (vbrsrq_m_n_u32): Remove.
3828 (vbrsrq_m_n_u16): Remove.
3829 (vbrsrq_m_n_f32): Remove.
3830 (vbrsrq_m_n_f16): Remove.
3831 (vbrsrq_x_n_s8): Remove.
3832 (vbrsrq_x_n_s16): Remove.
3833 (vbrsrq_x_n_s32): Remove.
3834 (vbrsrq_x_n_u8): Remove.
3835 (vbrsrq_x_n_u16): Remove.
3836 (vbrsrq_x_n_u32): Remove.
3837 (vbrsrq_x_n_f16): Remove.
3838 (vbrsrq_x_n_f32): Remove.
3839 (__arm_vbrsrq_n_u8): Remove.
3840 (__arm_vbrsrq_n_s8): Remove.
3841 (__arm_vbrsrq_n_u16): Remove.
3842 (__arm_vbrsrq_n_s16): Remove.
3843 (__arm_vbrsrq_n_u32): Remove.
3844 (__arm_vbrsrq_n_s32): Remove.
3845 (__arm_vbrsrq_m_n_s8): Remove.
3846 (__arm_vbrsrq_m_n_s32): Remove.
3847 (__arm_vbrsrq_m_n_s16): Remove.
3848 (__arm_vbrsrq_m_n_u8): Remove.
3849 (__arm_vbrsrq_m_n_u32): Remove.
3850 (__arm_vbrsrq_m_n_u16): Remove.
3851 (__arm_vbrsrq_x_n_s8): Remove.
3852 (__arm_vbrsrq_x_n_s16): Remove.
3853 (__arm_vbrsrq_x_n_s32): Remove.
3854 (__arm_vbrsrq_x_n_u8): Remove.
3855 (__arm_vbrsrq_x_n_u16): Remove.
3856 (__arm_vbrsrq_x_n_u32): Remove.
3857 (__arm_vbrsrq_n_f16): Remove.
3858 (__arm_vbrsrq_n_f32): Remove.
3859 (__arm_vbrsrq_m_n_f32): Remove.
3860 (__arm_vbrsrq_m_n_f16): Remove.
3861 (__arm_vbrsrq_x_n_f16): Remove.
3862 (__arm_vbrsrq_x_n_f32): Remove.
3863 (__arm_vbrsrq): Remove.
3864 (__arm_vbrsrq_m): Remove.
3865 (__arm_vbrsrq_x): Remove.
3866
3867 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3868
3869 * config/arm/iterators.md (MVE_VBRSR_M_N_FP, MVE_VBRSR_N_FP): New.
3870 (mve_insn): Add vbrsr.
3871 * config/arm/mve.md (mve_vbrsrq_n_f<mode>): Rename into ...
3872 (@mve_<mve_insn>q_n_f<mode>): ... this.
3873 (mve_vbrsrq_n_<supf><mode>): Rename into ...
3874 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
3875 (mve_vbrsrq_m_n_<supf><mode>): Rename into ...
3876 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
3877 (mve_vbrsrq_m_n_f<mode>): Rename into ...
3878 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
3879
3880 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3881
3882 * config/arm/arm-mve-builtins-shapes.cc (binary_imm32): New.
3883 * config/arm/arm-mve-builtins-shapes.h (binary_imm32): New.
3884
3885 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3886
3887 * config/arm/arm-mve-builtins-base.cc (vqshluq): New.
3888 * config/arm/arm-mve-builtins-base.def (vqshluq): New.
3889 * config/arm/arm-mve-builtins-base.h (vqshluq): New.
3890 * config/arm/arm_mve.h (vqshluq): Remove.
3891 (vqshluq_m): Remove.
3892 (vqshluq_n_s8): Remove.
3893 (vqshluq_n_s16): Remove.
3894 (vqshluq_n_s32): Remove.
3895 (vqshluq_m_n_s8): Remove.
3896 (vqshluq_m_n_s16): Remove.
3897 (vqshluq_m_n_s32): Remove.
3898 (__arm_vqshluq_n_s8): Remove.
3899 (__arm_vqshluq_n_s16): Remove.
3900 (__arm_vqshluq_n_s32): Remove.
3901 (__arm_vqshluq_m_n_s8): Remove.
3902 (__arm_vqshluq_m_n_s16): Remove.
3903 (__arm_vqshluq_m_n_s32): Remove.
3904 (__arm_vqshluq): Remove.
3905 (__arm_vqshluq_m): Remove.
3906
3907 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3908
3909 * config/arm/iterators.md (mve_insn): Add vqshlu.
3910 (supf): Add VQSHLUQ_M_N_S, VQSHLUQ_N_S.
3911 (VQSHLUQ_M_N, VQSHLUQ_N): New.
3912 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Change name into ...
3913 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
3914 (mve_vqshluq_m_n_s<mode>): Change name into ...
3915 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
3916
3917 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3918
3919 * config/arm/arm-mve-builtins-shapes.cc
3920 (binary_lshift_unsigned): New.
3921 * config/arm/arm-mve-builtins-shapes.h
3922 (binary_lshift_unsigned): New.
3923
3924 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3925
3926 * config/arm/arm-mve-builtins-base.cc (vrmlaldavhaq)
3927 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
3928 * config/arm/arm-mve-builtins-base.def (vrmlaldavhaq)
3929 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
3930 * config/arm/arm-mve-builtins-base.h (vrmlaldavhaq)
3931 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
3932 * config/arm/arm-mve-builtins-functions.h: Handle vrmlaldavhaq,
3933 vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq.
3934 * config/arm/arm_mve.h (vrmlaldavhaq): Remove.
3935 (vrmlaldavhaxq): Remove.
3936 (vrmlsldavhaq): Remove.
3937 (vrmlsldavhaxq): Remove.
3938 (vrmlaldavhaq_p): Remove.
3939 (vrmlaldavhaxq_p): Remove.
3940 (vrmlsldavhaq_p): Remove.
3941 (vrmlsldavhaxq_p): Remove.
3942 (vrmlaldavhaq_s32): Remove.
3943 (vrmlaldavhaq_u32): Remove.
3944 (vrmlaldavhaxq_s32): Remove.
3945 (vrmlsldavhaq_s32): Remove.
3946 (vrmlsldavhaxq_s32): Remove.
3947 (vrmlaldavhaq_p_s32): Remove.
3948 (vrmlaldavhaq_p_u32): Remove.
3949 (vrmlaldavhaxq_p_s32): Remove.
3950 (vrmlsldavhaq_p_s32): Remove.
3951 (vrmlsldavhaxq_p_s32): Remove.
3952 (__arm_vrmlaldavhaq_s32): Remove.
3953 (__arm_vrmlaldavhaq_u32): Remove.
3954 (__arm_vrmlaldavhaxq_s32): Remove.
3955 (__arm_vrmlsldavhaq_s32): Remove.
3956 (__arm_vrmlsldavhaxq_s32): Remove.
3957 (__arm_vrmlaldavhaq_p_s32): Remove.
3958 (__arm_vrmlaldavhaq_p_u32): Remove.
3959 (__arm_vrmlaldavhaxq_p_s32): Remove.
3960 (__arm_vrmlsldavhaq_p_s32): Remove.
3961 (__arm_vrmlsldavhaxq_p_s32): Remove.
3962 (__arm_vrmlaldavhaq): Remove.
3963 (__arm_vrmlaldavhaxq): Remove.
3964 (__arm_vrmlsldavhaq): Remove.
3965 (__arm_vrmlsldavhaxq): Remove.
3966 (__arm_vrmlaldavhaq_p): Remove.
3967 (__arm_vrmlaldavhaxq_p): Remove.
3968 (__arm_vrmlsldavhaq_p): Remove.
3969 (__arm_vrmlsldavhaxq_p): Remove.
3970
3971 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3972
3973 * config/arm/iterators.md (MVE_VRMLxLDAVHAxQ)
3974 (MVE_VRMLxLDAVHAxQ_P): New.
3975 (mve_insn): Add vrmlaldavha, vrmlaldavhax, vrmlsldavha,
3976 vrmlsldavhax.
3977 (supf): Add VRMLALDAVHAXQ_P_S, VRMLALDAVHAXQ_S, VRMLSLDAVHAQ_P_S,
3978 VRMLSLDAVHAQ_S, VRMLSLDAVHAXQ_P_S, VRMLSLDAVHAXQ_S,
3979 VRMLALDAVHAQ_P_S.
3980 * config/arm/mve.md (mve_vrmlaldavhaq_<supf>v4si)
3981 (mve_vrmlaldavhaxq_sv4si, mve_vrmlsldavhaxq_sv4si)
3982 (mve_vrmlsldavhaq_sv4si): Merge into ...
3983 (@mve_<mve_insn>q_<supf>v4si): ... this.
3984 (mve_vrmlaldavhaq_p_sv4si, mve_vrmlaldavhaq_p_uv4si)
3985 (mve_vrmlaldavhaxq_p_sv4si, mve_vrmlsldavhaq_p_sv4si)
3986 (mve_vrmlsldavhaxq_p_sv4si): Merge into ...
3987 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
3988
3989 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
3990
3991 * config/arm/arm-mve-builtins-base.cc (vqdmullbq, vqdmulltq): New.
3992 * config/arm/arm-mve-builtins-base.def (vqdmullbq, vqdmulltq):
3993 New.
3994 * config/arm/arm-mve-builtins-base.h (vqdmullbq, vqdmulltq): New.
3995 * config/arm/arm_mve.h (vqdmulltq): Remove.
3996 (vqdmullbq): Remove.
3997 (vqdmullbq_m): Remove.
3998 (vqdmulltq_m): Remove.
3999 (vqdmulltq_s16): Remove.
4000 (vqdmulltq_n_s16): Remove.
4001 (vqdmullbq_s16): Remove.
4002 (vqdmullbq_n_s16): Remove.
4003 (vqdmulltq_s32): Remove.
4004 (vqdmulltq_n_s32): Remove.
4005 (vqdmullbq_s32): Remove.
4006 (vqdmullbq_n_s32): Remove.
4007 (vqdmullbq_m_n_s32): Remove.
4008 (vqdmullbq_m_n_s16): Remove.
4009 (vqdmullbq_m_s32): Remove.
4010 (vqdmullbq_m_s16): Remove.
4011 (vqdmulltq_m_n_s32): Remove.
4012 (vqdmulltq_m_n_s16): Remove.
4013 (vqdmulltq_m_s32): Remove.
4014 (vqdmulltq_m_s16): Remove.
4015 (__arm_vqdmulltq_s16): Remove.
4016 (__arm_vqdmulltq_n_s16): Remove.
4017 (__arm_vqdmullbq_s16): Remove.
4018 (__arm_vqdmullbq_n_s16): Remove.
4019 (__arm_vqdmulltq_s32): Remove.
4020 (__arm_vqdmulltq_n_s32): Remove.
4021 (__arm_vqdmullbq_s32): Remove.
4022 (__arm_vqdmullbq_n_s32): Remove.
4023 (__arm_vqdmullbq_m_n_s32): Remove.
4024 (__arm_vqdmullbq_m_n_s16): Remove.
4025 (__arm_vqdmullbq_m_s32): Remove.
4026 (__arm_vqdmullbq_m_s16): Remove.
4027 (__arm_vqdmulltq_m_n_s32): Remove.
4028 (__arm_vqdmulltq_m_n_s16): Remove.
4029 (__arm_vqdmulltq_m_s32): Remove.
4030 (__arm_vqdmulltq_m_s16): Remove.
4031 (__arm_vqdmulltq): Remove.
4032 (__arm_vqdmullbq): Remove.
4033 (__arm_vqdmullbq_m): Remove.
4034 (__arm_vqdmulltq_m): Remove.
4035
4036 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4037
4038 * config/arm/iterators.md (MVE_VQDMULLxQ, MVE_VQDMULLxQ_M)
4039 (MVE_VQDMULLxQ_M_N, MVE_VQDMULLxQ_N): New.
4040 (mve_insn): Add vqdmullb, vqdmullt.
4041 (supf): Add VQDMULLBQ_S, VQDMULLBQ_M_S, VQDMULLBQ_M_N_S,
4042 VQDMULLBQ_N_S, VQDMULLTQ_S, VQDMULLTQ_M_S, VQDMULLTQ_M_N_S,
4043 VQDMULLTQ_N_S.
4044 * config/arm/mve.md (mve_vqdmullbq_n_s<mode>)
4045 (mve_vqdmulltq_n_s<mode>): Merge into ...
4046 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4047 (mve_vqdmullbq_s<mode>, mve_vqdmulltq_s<mode>): Merge into ...
4048 (@mve_<mve_insn>q_<supf><mode>): ... this.
4049 (mve_vqdmullbq_m_n_s<mode>, mve_vqdmulltq_m_n_s<mode>): Merge into
4050 ...
4051 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4052 (mve_vqdmullbq_m_s<mode>, mve_vqdmulltq_m_s<mode>): Merge into ...
4053 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
4054
4055 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4056
4057 * config/arm/arm-mve-builtins-shapes.cc (binary_widen_opt_n): New.
4058 * config/arm/arm-mve-builtins-shapes.h (binary_widen_opt_n): New.
4059
4060 2023-05-12 Kito Cheng <kito.cheng@sifive.com>
4061
4062 * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi):
4063 Drop unused parameter.
4064 (riscv_select_multilib): Ditto.
4065 (riscv_compute_multilib): Update call site of
4066 riscv_select_multilib_by_abi and riscv_select_multilib_by_abi.
4067
4068 2023-05-12 Juzhe Zhong <juzhe.zhong@rivai.ai>
4069
4070 * config/riscv/autovec.md (vec_init<mode><vel>): New pattern.
4071 * config/riscv/riscv-protos.h (expand_vec_init): New function.
4072 * config/riscv/riscv-v.cc (class rvv_builder): New class.
4073 (rvv_builder::can_duplicate_repeating_sequence_p): New function.
4074 (rvv_builder::get_merged_repeating_sequence): Ditto.
4075 (expand_vector_init_insert_elems): Ditto.
4076 (expand_vec_init): Ditto.
4077 * config/riscv/vector-iterators.md: New attribute.
4078
4079 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
4080
4081 * config/rs6000/rs6000-builtins.def
4082 (__builtin_vsx_scalar_insert_exp): Replace bif-pattern from xsiexpdp
4083 to xsiexpdp_di.
4084 (__builtin_vsx_scalar_insert_exp_dp): Replace bif-pattern from
4085 xsiexpdpf to xsiexpdpf_di.
4086 * config/rs6000/vsx.md (xsiexpdp): Rename to...
4087 (xsiexpdp_<mode>): ..., set the mode of second operand to GPR and
4088 replace TARGET_64BIT with TARGET_POWERPC64.
4089 (xsiexpdpf): Rename to...
4090 (xsiexpdpf_<mode>): ..., set the mode of second operand to GPR and
4091 replace TARGET_64BIT with TARGET_POWERPC64.
4092
4093 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
4094
4095 * config/rs6000/rs6000-builtins.def
4096 (__builtin_vsx_scalar_extract_sig): Set return type to const signed
4097 long long.
4098 * config/rs6000/vsx.md (xsxsigdp): Replace TARGET_64BIT with
4099 TARGET_POWERPC64.
4100
4101 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
4102
4103 * config/rs6000/rs6000-builtins.def
4104 (__builtin_vsx_scalar_extract_exp): Set return type to const signed
4105 int and set its bif-pattern to xsxexpdp_si, move it from power9-64
4106 to power9 catalog.
4107 * config/rs6000/vsx.md (xsxexpdp): Rename to ...
4108 (xsxexpdp_<mode>): ..., set mode of operand 0 to GPR and remove
4109 TARGET_64BIT check.
4110 * doc/extend.texi (scalar_extract_exp): Remove 64-bit environment
4111 requirement when it has a 64-bit argument.
4112
4113 2023-05-12 Pan Li <pan2.li@intel.com>
4114 Richard Sandiford <richard.sandiford@arm.com>
4115 Richard Biener <rguenther@suse.de>
4116 Jakub Jelinek <jakub@redhat.com>
4117
4118 * mux-utils.h: Add overload operator == and != for pointer_mux.
4119 * var-tracking.cc: Included mux-utils.h for pointer_tmux.
4120 (decl_or_value): Changed from void * to pointer_mux<tree_node, rtx_def>.
4121 (dv_is_decl_p): Reconciled to the new type, aka pointer_mux.
4122 (dv_as_decl): Ditto.
4123 (dv_as_opaque): Removed due to unnecessary.
4124 (struct variable_hasher): Take decl_or_value as compare_type.
4125 (variable_hasher::equal): Diito.
4126 (dv_from_decl): Reconciled to the new type, aka pointer_mux.
4127 (dv_from_value): Ditto.
4128 (attrs_list_member): Ditto.
4129 (vars_copy): Ditto.
4130 (var_reg_decl_set): Ditto.
4131 (var_reg_delete_and_set): Ditto.
4132 (find_loc_in_1pdv): Ditto.
4133 (canonicalize_values_star): Ditto.
4134 (variable_post_merge_new_vals): Ditto.
4135 (dump_onepart_variable_differences): Ditto.
4136 (variable_different_p): Ditto.
4137 (set_slot_part): Ditto.
4138 (clobber_slot_part): Ditto.
4139 (clobber_variable_part): Ditto.
4140
4141 2023-05-11 mtsamis <manolis.tsamis@vrull.eu>
4142
4143 * match.pd: simplify vector shift + bit_and + multiply.
4144
4145 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4146
4147 * config/arm/arm-mve-builtins-base.cc (vmlaq, vmlasq, vqdmlahq)
4148 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
4149 * config/arm/arm-mve-builtins-base.def (vmlaq, vmlasq, vqdmlahq)
4150 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
4151 * config/arm/arm-mve-builtins-base.h (vmlaq, vmlasq, vqdmlahq)
4152 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
4153 * config/arm/arm-mve-builtins.cc
4154 (function_instance::has_inactive_argument): Handle vmlaq, vmlasq,
4155 vqdmlahq, vqdmlashq, vqrdmlahq, vqrdmlashq.
4156 * config/arm/arm_mve.h (vqrdmlashq): Remove.
4157 (vqrdmlahq): Remove.
4158 (vqdmlashq): Remove.
4159 (vqdmlahq): Remove.
4160 (vmlasq): Remove.
4161 (vmlaq): Remove.
4162 (vmlaq_m): Remove.
4163 (vmlasq_m): Remove.
4164 (vqdmlashq_m): Remove.
4165 (vqdmlahq_m): Remove.
4166 (vqrdmlahq_m): Remove.
4167 (vqrdmlashq_m): Remove.
4168 (vmlasq_n_u8): Remove.
4169 (vmlaq_n_u8): Remove.
4170 (vqrdmlashq_n_s8): Remove.
4171 (vqrdmlahq_n_s8): Remove.
4172 (vqdmlahq_n_s8): Remove.
4173 (vqdmlashq_n_s8): Remove.
4174 (vmlasq_n_s8): Remove.
4175 (vmlaq_n_s8): Remove.
4176 (vmlasq_n_u16): Remove.
4177 (vmlaq_n_u16): Remove.
4178 (vqrdmlashq_n_s16): Remove.
4179 (vqrdmlahq_n_s16): Remove.
4180 (vqdmlashq_n_s16): Remove.
4181 (vqdmlahq_n_s16): Remove.
4182 (vmlasq_n_s16): Remove.
4183 (vmlaq_n_s16): Remove.
4184 (vmlasq_n_u32): Remove.
4185 (vmlaq_n_u32): Remove.
4186 (vqrdmlashq_n_s32): Remove.
4187 (vqrdmlahq_n_s32): Remove.
4188 (vqdmlashq_n_s32): Remove.
4189 (vqdmlahq_n_s32): Remove.
4190 (vmlasq_n_s32): Remove.
4191 (vmlaq_n_s32): Remove.
4192 (vmlaq_m_n_s8): Remove.
4193 (vmlaq_m_n_s32): Remove.
4194 (vmlaq_m_n_s16): Remove.
4195 (vmlaq_m_n_u8): Remove.
4196 (vmlaq_m_n_u32): Remove.
4197 (vmlaq_m_n_u16): Remove.
4198 (vmlasq_m_n_s8): Remove.
4199 (vmlasq_m_n_s32): Remove.
4200 (vmlasq_m_n_s16): Remove.
4201 (vmlasq_m_n_u8): Remove.
4202 (vmlasq_m_n_u32): Remove.
4203 (vmlasq_m_n_u16): Remove.
4204 (vqdmlashq_m_n_s8): Remove.
4205 (vqdmlashq_m_n_s32): Remove.
4206 (vqdmlashq_m_n_s16): Remove.
4207 (vqdmlahq_m_n_s8): Remove.
4208 (vqdmlahq_m_n_s32): Remove.
4209 (vqdmlahq_m_n_s16): Remove.
4210 (vqrdmlahq_m_n_s8): Remove.
4211 (vqrdmlahq_m_n_s32): Remove.
4212 (vqrdmlahq_m_n_s16): Remove.
4213 (vqrdmlashq_m_n_s8): Remove.
4214 (vqrdmlashq_m_n_s32): Remove.
4215 (vqrdmlashq_m_n_s16): Remove.
4216 (__arm_vmlasq_n_u8): Remove.
4217 (__arm_vmlaq_n_u8): Remove.
4218 (__arm_vqrdmlashq_n_s8): Remove.
4219 (__arm_vqdmlashq_n_s8): Remove.
4220 (__arm_vqrdmlahq_n_s8): Remove.
4221 (__arm_vqdmlahq_n_s8): Remove.
4222 (__arm_vmlasq_n_s8): Remove.
4223 (__arm_vmlaq_n_s8): Remove.
4224 (__arm_vmlasq_n_u16): Remove.
4225 (__arm_vmlaq_n_u16): Remove.
4226 (__arm_vqrdmlashq_n_s16): Remove.
4227 (__arm_vqdmlashq_n_s16): Remove.
4228 (__arm_vqrdmlahq_n_s16): Remove.
4229 (__arm_vqdmlahq_n_s16): Remove.
4230 (__arm_vmlasq_n_s16): Remove.
4231 (__arm_vmlaq_n_s16): Remove.
4232 (__arm_vmlasq_n_u32): Remove.
4233 (__arm_vmlaq_n_u32): Remove.
4234 (__arm_vqrdmlashq_n_s32): Remove.
4235 (__arm_vqdmlashq_n_s32): Remove.
4236 (__arm_vqrdmlahq_n_s32): Remove.
4237 (__arm_vqdmlahq_n_s32): Remove.
4238 (__arm_vmlasq_n_s32): Remove.
4239 (__arm_vmlaq_n_s32): Remove.
4240 (__arm_vmlaq_m_n_s8): Remove.
4241 (__arm_vmlaq_m_n_s32): Remove.
4242 (__arm_vmlaq_m_n_s16): Remove.
4243 (__arm_vmlaq_m_n_u8): Remove.
4244 (__arm_vmlaq_m_n_u32): Remove.
4245 (__arm_vmlaq_m_n_u16): Remove.
4246 (__arm_vmlasq_m_n_s8): Remove.
4247 (__arm_vmlasq_m_n_s32): Remove.
4248 (__arm_vmlasq_m_n_s16): Remove.
4249 (__arm_vmlasq_m_n_u8): Remove.
4250 (__arm_vmlasq_m_n_u32): Remove.
4251 (__arm_vmlasq_m_n_u16): Remove.
4252 (__arm_vqdmlahq_m_n_s8): Remove.
4253 (__arm_vqdmlahq_m_n_s32): Remove.
4254 (__arm_vqdmlahq_m_n_s16): Remove.
4255 (__arm_vqrdmlahq_m_n_s8): Remove.
4256 (__arm_vqrdmlahq_m_n_s32): Remove.
4257 (__arm_vqrdmlahq_m_n_s16): Remove.
4258 (__arm_vqrdmlashq_m_n_s8): Remove.
4259 (__arm_vqrdmlashq_m_n_s32): Remove.
4260 (__arm_vqrdmlashq_m_n_s16): Remove.
4261 (__arm_vqdmlashq_m_n_s8): Remove.
4262 (__arm_vqdmlashq_m_n_s16): Remove.
4263 (__arm_vqdmlashq_m_n_s32): Remove.
4264 (__arm_vmlasq): Remove.
4265 (__arm_vmlaq): Remove.
4266 (__arm_vqrdmlashq): Remove.
4267 (__arm_vqdmlashq): Remove.
4268 (__arm_vqrdmlahq): Remove.
4269 (__arm_vqdmlahq): Remove.
4270 (__arm_vmlaq_m): Remove.
4271 (__arm_vmlasq_m): Remove.
4272 (__arm_vqdmlahq_m): Remove.
4273 (__arm_vqrdmlahq_m): Remove.
4274 (__arm_vqrdmlashq_m): Remove.
4275 (__arm_vqdmlashq_m): Remove.
4276
4277 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4278
4279 * config/arm/iterators.md (MVE_VMLxQ_N): New.
4280 (mve_insn): Add vmla, vmlas, vqdmlah, vqdmlash, vqrdmlah,
4281 vqrdmlash.
4282 (supf): Add VQDMLAHQ_N_S, VQDMLASHQ_N_S, VQRDMLAHQ_N_S,
4283 VQRDMLASHQ_N_S.
4284 * config/arm/mve.md (mve_vmlaq_n_<supf><mode>)
4285 (mve_vmlasq_n_<supf><mode>, mve_vqdmlahq_n_<supf><mode>)
4286 (mve_vqdmlashq_n_<supf><mode>, mve_vqrdmlahq_n_<supf><mode>)
4287 (mve_vqrdmlashq_n_<supf><mode>): Merge into ...
4288 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4289
4290 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4291
4292 * config/arm/arm-mve-builtins-shapes.cc (ternary_n): New.
4293 * config/arm/arm-mve-builtins-shapes.h (ternary_n): New.
4294
4295 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4296
4297 * config/arm/arm-mve-builtins-base.cc (vqdmladhq, vqdmladhxq)
4298 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
4299 (vqrdmlsdhxq): New.
4300 * config/arm/arm-mve-builtins-base.def (vqdmladhq, vqdmladhxq)
4301 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
4302 (vqrdmlsdhxq): New.
4303 * config/arm/arm-mve-builtins-base.h (vqdmladhq, vqdmladhxq)
4304 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
4305 (vqrdmlsdhxq): New.
4306 * config/arm/arm-mve-builtins.cc
4307 (function_instance::has_inactive_argument): Handle vqrdmladhq,
4308 vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq vqdmladhq, vqdmladhxq,
4309 vqdmlsdhq, vqdmlsdhxq.
4310 * config/arm/arm_mve.h (vqrdmlsdhxq): Remove.
4311 (vqrdmlsdhq): Remove.
4312 (vqrdmladhxq): Remove.
4313 (vqrdmladhq): Remove.
4314 (vqdmlsdhxq): Remove.
4315 (vqdmlsdhq): Remove.
4316 (vqdmladhxq): Remove.
4317 (vqdmladhq): Remove.
4318 (vqdmladhq_m): Remove.
4319 (vqdmladhxq_m): Remove.
4320 (vqdmlsdhq_m): Remove.
4321 (vqdmlsdhxq_m): Remove.
4322 (vqrdmladhq_m): Remove.
4323 (vqrdmladhxq_m): Remove.
4324 (vqrdmlsdhq_m): Remove.
4325 (vqrdmlsdhxq_m): Remove.
4326 (vqrdmlsdhxq_s8): Remove.
4327 (vqrdmlsdhq_s8): Remove.
4328 (vqrdmladhxq_s8): Remove.
4329 (vqrdmladhq_s8): Remove.
4330 (vqdmlsdhxq_s8): Remove.
4331 (vqdmlsdhq_s8): Remove.
4332 (vqdmladhxq_s8): Remove.
4333 (vqdmladhq_s8): Remove.
4334 (vqrdmlsdhxq_s16): Remove.
4335 (vqrdmlsdhq_s16): Remove.
4336 (vqrdmladhxq_s16): Remove.
4337 (vqrdmladhq_s16): Remove.
4338 (vqdmlsdhxq_s16): Remove.
4339 (vqdmlsdhq_s16): Remove.
4340 (vqdmladhxq_s16): Remove.
4341 (vqdmladhq_s16): Remove.
4342 (vqrdmlsdhxq_s32): Remove.
4343 (vqrdmlsdhq_s32): Remove.
4344 (vqrdmladhxq_s32): Remove.
4345 (vqrdmladhq_s32): Remove.
4346 (vqdmlsdhxq_s32): Remove.
4347 (vqdmlsdhq_s32): Remove.
4348 (vqdmladhxq_s32): Remove.
4349 (vqdmladhq_s32): Remove.
4350 (vqdmladhq_m_s8): Remove.
4351 (vqdmladhq_m_s32): Remove.
4352 (vqdmladhq_m_s16): Remove.
4353 (vqdmladhxq_m_s8): Remove.
4354 (vqdmladhxq_m_s32): Remove.
4355 (vqdmladhxq_m_s16): Remove.
4356 (vqdmlsdhq_m_s8): Remove.
4357 (vqdmlsdhq_m_s32): Remove.
4358 (vqdmlsdhq_m_s16): Remove.
4359 (vqdmlsdhxq_m_s8): Remove.
4360 (vqdmlsdhxq_m_s32): Remove.
4361 (vqdmlsdhxq_m_s16): Remove.
4362 (vqrdmladhq_m_s8): Remove.
4363 (vqrdmladhq_m_s32): Remove.
4364 (vqrdmladhq_m_s16): Remove.
4365 (vqrdmladhxq_m_s8): Remove.
4366 (vqrdmladhxq_m_s32): Remove.
4367 (vqrdmladhxq_m_s16): Remove.
4368 (vqrdmlsdhq_m_s8): Remove.
4369 (vqrdmlsdhq_m_s32): Remove.
4370 (vqrdmlsdhq_m_s16): Remove.
4371 (vqrdmlsdhxq_m_s8): Remove.
4372 (vqrdmlsdhxq_m_s32): Remove.
4373 (vqrdmlsdhxq_m_s16): Remove.
4374 (__arm_vqrdmlsdhxq_s8): Remove.
4375 (__arm_vqrdmlsdhq_s8): Remove.
4376 (__arm_vqrdmladhxq_s8): Remove.
4377 (__arm_vqrdmladhq_s8): Remove.
4378 (__arm_vqdmlsdhxq_s8): Remove.
4379 (__arm_vqdmlsdhq_s8): Remove.
4380 (__arm_vqdmladhxq_s8): Remove.
4381 (__arm_vqdmladhq_s8): Remove.
4382 (__arm_vqrdmlsdhxq_s16): Remove.
4383 (__arm_vqrdmlsdhq_s16): Remove.
4384 (__arm_vqrdmladhxq_s16): Remove.
4385 (__arm_vqrdmladhq_s16): Remove.
4386 (__arm_vqdmlsdhxq_s16): Remove.
4387 (__arm_vqdmlsdhq_s16): Remove.
4388 (__arm_vqdmladhxq_s16): Remove.
4389 (__arm_vqdmladhq_s16): Remove.
4390 (__arm_vqrdmlsdhxq_s32): Remove.
4391 (__arm_vqrdmlsdhq_s32): Remove.
4392 (__arm_vqrdmladhxq_s32): Remove.
4393 (__arm_vqrdmladhq_s32): Remove.
4394 (__arm_vqdmlsdhxq_s32): Remove.
4395 (__arm_vqdmlsdhq_s32): Remove.
4396 (__arm_vqdmladhxq_s32): Remove.
4397 (__arm_vqdmladhq_s32): Remove.
4398 (__arm_vqdmladhq_m_s8): Remove.
4399 (__arm_vqdmladhq_m_s32): Remove.
4400 (__arm_vqdmladhq_m_s16): Remove.
4401 (__arm_vqdmladhxq_m_s8): Remove.
4402 (__arm_vqdmladhxq_m_s32): Remove.
4403 (__arm_vqdmladhxq_m_s16): Remove.
4404 (__arm_vqdmlsdhq_m_s8): Remove.
4405 (__arm_vqdmlsdhq_m_s32): Remove.
4406 (__arm_vqdmlsdhq_m_s16): Remove.
4407 (__arm_vqdmlsdhxq_m_s8): Remove.
4408 (__arm_vqdmlsdhxq_m_s32): Remove.
4409 (__arm_vqdmlsdhxq_m_s16): Remove.
4410 (__arm_vqrdmladhq_m_s8): Remove.
4411 (__arm_vqrdmladhq_m_s32): Remove.
4412 (__arm_vqrdmladhq_m_s16): Remove.
4413 (__arm_vqrdmladhxq_m_s8): Remove.
4414 (__arm_vqrdmladhxq_m_s32): Remove.
4415 (__arm_vqrdmladhxq_m_s16): Remove.
4416 (__arm_vqrdmlsdhq_m_s8): Remove.
4417 (__arm_vqrdmlsdhq_m_s32): Remove.
4418 (__arm_vqrdmlsdhq_m_s16): Remove.
4419 (__arm_vqrdmlsdhxq_m_s8): Remove.
4420 (__arm_vqrdmlsdhxq_m_s32): Remove.
4421 (__arm_vqrdmlsdhxq_m_s16): Remove.
4422 (__arm_vqrdmlsdhxq): Remove.
4423 (__arm_vqrdmlsdhq): Remove.
4424 (__arm_vqrdmladhxq): Remove.
4425 (__arm_vqrdmladhq): Remove.
4426 (__arm_vqdmlsdhxq): Remove.
4427 (__arm_vqdmlsdhq): Remove.
4428 (__arm_vqdmladhxq): Remove.
4429 (__arm_vqdmladhq): Remove.
4430 (__arm_vqdmladhq_m): Remove.
4431 (__arm_vqdmladhxq_m): Remove.
4432 (__arm_vqdmlsdhq_m): Remove.
4433 (__arm_vqdmlsdhxq_m): Remove.
4434 (__arm_vqrdmladhq_m): Remove.
4435 (__arm_vqrdmladhxq_m): Remove.
4436 (__arm_vqrdmlsdhq_m): Remove.
4437 (__arm_vqrdmlsdhxq_m): Remove.
4438
4439 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4440
4441 * config/arm/iterators.md (MVE_VQxDMLxDHxQ_S): New.
4442 (mve_insn): Add vqdmladh, vqdmladhx, vqdmlsdh, vqdmlsdhx,
4443 vqrdmladh, vqrdmladhx, vqrdmlsdh, vqrdmlsdhx.
4444 (supf): Add VQDMLADHQ_S, VQDMLADHXQ_S, VQDMLSDHQ_S, VQDMLSDHXQ_S,
4445 VQRDMLADHQ_S,VQRDMLADHXQ_S, VQRDMLSDHQ_S, VQRDMLSDHXQ_S.
4446 * config/arm/mve.md (mve_vqrdmladhq_s<mode>)
4447 (mve_vqrdmladhxq_s<mode>, mve_vqrdmlsdhq_s<mode>)
4448 (mve_vqrdmlsdhxq_s<mode>, mve_vqdmlsdhxq_s<mode>)
4449 (mve_vqdmlsdhq_s<mode>, mve_vqdmladhxq_s<mode>)
4450 (mve_vqdmladhq_s<mode>): Merge into ...
4451 (@mve_<mve_insn>q_<supf><mode>): ... this.
4452
4453 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4454
4455 * config/arm/arm-mve-builtins-shapes.cc (ternary): New.
4456 * config/arm/arm-mve-builtins-shapes.h (ternary): New.
4457
4458 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4459
4460 * config/arm/arm-mve-builtins-base.cc (vmlaldavaq, vmlaldavaxq)
4461 (vmlsldavaq, vmlsldavaxq): New.
4462 * config/arm/arm-mve-builtins-base.def (vmlaldavaq, vmlaldavaxq)
4463 (vmlsldavaq, vmlsldavaxq): New.
4464 * config/arm/arm-mve-builtins-base.h (vmlaldavaq, vmlaldavaxq)
4465 (vmlsldavaq, vmlsldavaxq): New.
4466 * config/arm/arm_mve.h (vmlaldavaq): Remove.
4467 (vmlaldavaxq): Remove.
4468 (vmlsldavaq): Remove.
4469 (vmlsldavaxq): Remove.
4470 (vmlaldavaq_p): Remove.
4471 (vmlaldavaxq_p): Remove.
4472 (vmlsldavaq_p): Remove.
4473 (vmlsldavaxq_p): Remove.
4474 (vmlaldavaq_s16): Remove.
4475 (vmlaldavaxq_s16): Remove.
4476 (vmlsldavaq_s16): Remove.
4477 (vmlsldavaxq_s16): Remove.
4478 (vmlaldavaq_u16): Remove.
4479 (vmlaldavaq_s32): Remove.
4480 (vmlaldavaxq_s32): Remove.
4481 (vmlsldavaq_s32): Remove.
4482 (vmlsldavaxq_s32): Remove.
4483 (vmlaldavaq_u32): Remove.
4484 (vmlaldavaq_p_s32): Remove.
4485 (vmlaldavaq_p_s16): Remove.
4486 (vmlaldavaq_p_u32): Remove.
4487 (vmlaldavaq_p_u16): Remove.
4488 (vmlaldavaxq_p_s32): Remove.
4489 (vmlaldavaxq_p_s16): Remove.
4490 (vmlsldavaq_p_s32): Remove.
4491 (vmlsldavaq_p_s16): Remove.
4492 (vmlsldavaxq_p_s32): Remove.
4493 (vmlsldavaxq_p_s16): Remove.
4494 (__arm_vmlaldavaq_s16): Remove.
4495 (__arm_vmlaldavaxq_s16): Remove.
4496 (__arm_vmlsldavaq_s16): Remove.
4497 (__arm_vmlsldavaxq_s16): Remove.
4498 (__arm_vmlaldavaq_u16): Remove.
4499 (__arm_vmlaldavaq_s32): Remove.
4500 (__arm_vmlaldavaxq_s32): Remove.
4501 (__arm_vmlsldavaq_s32): Remove.
4502 (__arm_vmlsldavaxq_s32): Remove.
4503 (__arm_vmlaldavaq_u32): Remove.
4504 (__arm_vmlaldavaq_p_s32): Remove.
4505 (__arm_vmlaldavaq_p_s16): Remove.
4506 (__arm_vmlaldavaq_p_u32): Remove.
4507 (__arm_vmlaldavaq_p_u16): Remove.
4508 (__arm_vmlaldavaxq_p_s32): Remove.
4509 (__arm_vmlaldavaxq_p_s16): Remove.
4510 (__arm_vmlsldavaq_p_s32): Remove.
4511 (__arm_vmlsldavaq_p_s16): Remove.
4512 (__arm_vmlsldavaxq_p_s32): Remove.
4513 (__arm_vmlsldavaxq_p_s16): Remove.
4514 (__arm_vmlaldavaq): Remove.
4515 (__arm_vmlaldavaxq): Remove.
4516 (__arm_vmlsldavaq): Remove.
4517 (__arm_vmlsldavaxq): Remove.
4518 (__arm_vmlaldavaq_p): Remove.
4519 (__arm_vmlaldavaxq_p): Remove.
4520 (__arm_vmlsldavaq_p): Remove.
4521 (__arm_vmlsldavaxq_p): Remove.
4522
4523 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4524
4525 * config/arm/iterators.md (MVE_VMLxLDAVAxQ, MVE_VMLxLDAVAxQ_P):
4526 New.
4527 (mve_insn): Add vmlaldava, vmlaldavax, vmlsldava, vmlsldavax.
4528 (supf): Add VMLALDAVAXQ_P_S, VMLALDAVAXQ_S, VMLSLDAVAQ_P_S,
4529 VMLSLDAVAQ_S, VMLSLDAVAXQ_P_S, VMLSLDAVAXQ_S.
4530 * config/arm/mve.md (mve_vmlaldavaq_<supf><mode>)
4531 (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
4532 (mve_vmlaldavaxq_s<mode>): Merge into ...
4533 (@mve_<mve_insn>q_<supf><mode>): ... this.
4534 (mve_vmlaldavaq_p_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>)
4535 (mve_vmlsldavaq_p_s<mode>, mve_vmlsldavaxq_p_s<mode>): Merge into
4536 ...
4537 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
4538
4539 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4540
4541 * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int64): New.
4542 * config/arm/arm-mve-builtins-shapes.h (binary_acca_int64): New.
4543
4544 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4545
4546 * config/arm/arm-mve-builtins-base.cc (vrmlaldavhq, vrmlaldavhxq)
4547 (vrmlsldavhq, vrmlsldavhxq): New.
4548 * config/arm/arm-mve-builtins-base.def (vrmlaldavhq, vrmlaldavhxq)
4549 (vrmlsldavhq, vrmlsldavhxq): New.
4550 * config/arm/arm-mve-builtins-base.h (vrmlaldavhq, vrmlaldavhxq)
4551 (vrmlsldavhq, vrmlsldavhxq): New.
4552 * config/arm/arm-mve-builtins-functions.h
4553 (unspec_mve_function_exact_insn_pred_p): Handle vrmlaldavhq,
4554 vrmlaldavhxq, vrmlsldavhq, vrmlsldavhxq.
4555 * config/arm/arm_mve.h (vrmlaldavhq): Remove.
4556 (vrmlsldavhxq): Remove.
4557 (vrmlsldavhq): Remove.
4558 (vrmlaldavhxq): Remove.
4559 (vrmlaldavhq_p): Remove.
4560 (vrmlaldavhxq_p): Remove.
4561 (vrmlsldavhq_p): Remove.
4562 (vrmlsldavhxq_p): Remove.
4563 (vrmlaldavhq_u32): Remove.
4564 (vrmlsldavhxq_s32): Remove.
4565 (vrmlsldavhq_s32): Remove.
4566 (vrmlaldavhxq_s32): Remove.
4567 (vrmlaldavhq_s32): Remove.
4568 (vrmlaldavhq_p_s32): Remove.
4569 (vrmlaldavhxq_p_s32): Remove.
4570 (vrmlsldavhq_p_s32): Remove.
4571 (vrmlsldavhxq_p_s32): Remove.
4572 (vrmlaldavhq_p_u32): Remove.
4573 (__arm_vrmlaldavhq_u32): Remove.
4574 (__arm_vrmlsldavhxq_s32): Remove.
4575 (__arm_vrmlsldavhq_s32): Remove.
4576 (__arm_vrmlaldavhxq_s32): Remove.
4577 (__arm_vrmlaldavhq_s32): Remove.
4578 (__arm_vrmlaldavhq_p_s32): Remove.
4579 (__arm_vrmlaldavhxq_p_s32): Remove.
4580 (__arm_vrmlsldavhq_p_s32): Remove.
4581 (__arm_vrmlsldavhxq_p_s32): Remove.
4582 (__arm_vrmlaldavhq_p_u32): Remove.
4583 (__arm_vrmlaldavhq): Remove.
4584 (__arm_vrmlsldavhxq): Remove.
4585 (__arm_vrmlsldavhq): Remove.
4586 (__arm_vrmlaldavhxq): Remove.
4587 (__arm_vrmlaldavhq_p): Remove.
4588 (__arm_vrmlaldavhxq_p): Remove.
4589 (__arm_vrmlsldavhq_p): Remove.
4590 (__arm_vrmlsldavhxq_p): Remove.
4591
4592 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4593
4594 * config/arm/iterators.md (MVE_VRMLxLDAVxQ, MVE_VRMLxLDAVHxQ_P):
4595 New.
4596 (mve_insn): Add vrmlaldavh, vrmlaldavhx, vrmlsldavh, vrmlsldavhx.
4597 (supf): Add VRMLALDAVHXQ_P_S, VRMLALDAVHXQ_S, VRMLSLDAVHQ_P_S,
4598 VRMLSLDAVHQ_S, VRMLSLDAVHXQ_P_S, VRMLSLDAVHXQ_S.
4599 * config/arm/mve.md (mve_vrmlaldavhxq_sv4si)
4600 (mve_vrmlsldavhq_sv4si, mve_vrmlsldavhxq_sv4si)
4601 (mve_vrmlaldavhq_<supf>v4si): Merge into ...
4602 (@mve_<mve_insn>q_<supf>v4si): ... this.
4603 (mve_vrmlaldavhxq_p_sv4si, mve_vrmlsldavhq_p_sv4si)
4604 (mve_vrmlsldavhxq_p_sv4si, mve_vrmlaldavhq_p_<supf>v4si): Merge
4605 into ...
4606 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
4607
4608 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4609
4610 * config/arm/arm-mve-builtins-base.cc (vmlaldavq, vmlaldavxq)
4611 (vmlsldavq, vmlsldavxq): New.
4612 * config/arm/arm-mve-builtins-base.def (vmlaldavq, vmlaldavxq)
4613 (vmlsldavq, vmlsldavxq): New.
4614 * config/arm/arm-mve-builtins-base.h (vmlaldavq, vmlaldavxq)
4615 (vmlsldavq, vmlsldavxq): New.
4616 * config/arm/arm_mve.h (vmlaldavq): Remove.
4617 (vmlsldavxq): Remove.
4618 (vmlsldavq): Remove.
4619 (vmlaldavxq): Remove.
4620 (vmlaldavq_p): Remove.
4621 (vmlaldavxq_p): Remove.
4622 (vmlsldavq_p): Remove.
4623 (vmlsldavxq_p): Remove.
4624 (vmlaldavq_u16): Remove.
4625 (vmlsldavxq_s16): Remove.
4626 (vmlsldavq_s16): Remove.
4627 (vmlaldavxq_s16): Remove.
4628 (vmlaldavq_s16): Remove.
4629 (vmlaldavq_u32): Remove.
4630 (vmlsldavxq_s32): Remove.
4631 (vmlsldavq_s32): Remove.
4632 (vmlaldavxq_s32): Remove.
4633 (vmlaldavq_s32): Remove.
4634 (vmlaldavq_p_s16): Remove.
4635 (vmlaldavxq_p_s16): Remove.
4636 (vmlsldavq_p_s16): Remove.
4637 (vmlsldavxq_p_s16): Remove.
4638 (vmlaldavq_p_u16): Remove.
4639 (vmlaldavq_p_s32): Remove.
4640 (vmlaldavxq_p_s32): Remove.
4641 (vmlsldavq_p_s32): Remove.
4642 (vmlsldavxq_p_s32): Remove.
4643 (vmlaldavq_p_u32): Remove.
4644 (__arm_vmlaldavq_u16): Remove.
4645 (__arm_vmlsldavxq_s16): Remove.
4646 (__arm_vmlsldavq_s16): Remove.
4647 (__arm_vmlaldavxq_s16): Remove.
4648 (__arm_vmlaldavq_s16): Remove.
4649 (__arm_vmlaldavq_u32): Remove.
4650 (__arm_vmlsldavxq_s32): Remove.
4651 (__arm_vmlsldavq_s32): Remove.
4652 (__arm_vmlaldavxq_s32): Remove.
4653 (__arm_vmlaldavq_s32): Remove.
4654 (__arm_vmlaldavq_p_s16): Remove.
4655 (__arm_vmlaldavxq_p_s16): Remove.
4656 (__arm_vmlsldavq_p_s16): Remove.
4657 (__arm_vmlsldavxq_p_s16): Remove.
4658 (__arm_vmlaldavq_p_u16): Remove.
4659 (__arm_vmlaldavq_p_s32): Remove.
4660 (__arm_vmlaldavxq_p_s32): Remove.
4661 (__arm_vmlsldavq_p_s32): Remove.
4662 (__arm_vmlsldavxq_p_s32): Remove.
4663 (__arm_vmlaldavq_p_u32): Remove.
4664 (__arm_vmlaldavq): Remove.
4665 (__arm_vmlsldavxq): Remove.
4666 (__arm_vmlsldavq): Remove.
4667 (__arm_vmlaldavxq): Remove.
4668 (__arm_vmlaldavq_p): Remove.
4669 (__arm_vmlaldavxq_p): Remove.
4670 (__arm_vmlsldavq_p): Remove.
4671 (__arm_vmlsldavxq_p): Remove.
4672
4673 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4674
4675 * config/arm/iterators.md (MVE_VMLxLDAVxQ, MVE_VMLxLDAVxQ_P): New.
4676 (mve_insn): Add vmlaldav, vmlaldavx, vmlsldav, vmlsldavx.
4677 (supf): Add VMLALDAVXQ_S, VMLSLDAVQ_S, VMLSLDAVXQ_S,
4678 VMLALDAVXQ_P_S, VMLSLDAVQ_P_S, VMLSLDAVXQ_P_S.
4679 * config/arm/mve.md (mve_vmlaldavq_<supf><mode>)
4680 (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
4681 (mve_vmlsldavxq_s<mode>): Merge into ...
4682 (@mve_<mve_insn>q_<supf><mode>): ... this.
4683 (mve_vmlaldavq_p_<supf><mode>, mve_vmlaldavxq_p_s<mode>)
4684 (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>): Merge into
4685 ...
4686 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
4687
4688 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4689
4690 * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int64): New.
4691 * config/arm/arm-mve-builtins-shapes.h (binary_acc_int64): New.
4692
4693 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4694
4695 * config/arm/arm-mve-builtins-base.cc (vabavq): New.
4696 * config/arm/arm-mve-builtins-base.def (vabavq): New.
4697 * config/arm/arm-mve-builtins-base.h (vabavq): New.
4698 * config/arm/arm_mve.h (vabavq): Remove.
4699 (vabavq_p): Remove.
4700 (vabavq_s8): Remove.
4701 (vabavq_s16): Remove.
4702 (vabavq_s32): Remove.
4703 (vabavq_u8): Remove.
4704 (vabavq_u16): Remove.
4705 (vabavq_u32): Remove.
4706 (vabavq_p_s8): Remove.
4707 (vabavq_p_u8): Remove.
4708 (vabavq_p_s16): Remove.
4709 (vabavq_p_u16): Remove.
4710 (vabavq_p_s32): Remove.
4711 (vabavq_p_u32): Remove.
4712 (__arm_vabavq_s8): Remove.
4713 (__arm_vabavq_s16): Remove.
4714 (__arm_vabavq_s32): Remove.
4715 (__arm_vabavq_u8): Remove.
4716 (__arm_vabavq_u16): Remove.
4717 (__arm_vabavq_u32): Remove.
4718 (__arm_vabavq_p_s8): Remove.
4719 (__arm_vabavq_p_u8): Remove.
4720 (__arm_vabavq_p_s16): Remove.
4721 (__arm_vabavq_p_u16): Remove.
4722 (__arm_vabavq_p_s32): Remove.
4723 (__arm_vabavq_p_u32): Remove.
4724 (__arm_vabavq): Remove.
4725 (__arm_vabavq_p): Remove.
4726
4727 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4728
4729 * config/arm/iterators.md (mve_insn): Add vabav.
4730 * config/arm/mve.md (mve_vabavq_<supf><mode>): Rename into ...
4731 (@mve_<mve_insn>q_<supf><mode>): ... this,.
4732 (mve_vabavq_p_<supf><mode>): Rename into ...
4733 (@mve_<mve_insn>q_p_<supf><mode>): ... this,.
4734
4735 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4736
4737 * config/arm/arm-mve-builtins-base.cc (vmladavaxq, vmladavaq)
4738 (vmlsdavaq, vmlsdavaxq): New.
4739 * config/arm/arm-mve-builtins-base.def (vmladavaxq, vmladavaq)
4740 (vmlsdavaq, vmlsdavaxq): New.
4741 * config/arm/arm-mve-builtins-base.h (vmladavaxq, vmladavaq)
4742 (vmlsdavaq, vmlsdavaxq): New.
4743 * config/arm/arm_mve.h (vmladavaq): Remove.
4744 (vmlsdavaxq): Remove.
4745 (vmlsdavaq): Remove.
4746 (vmladavaxq): Remove.
4747 (vmladavaq_p): Remove.
4748 (vmladavaxq_p): Remove.
4749 (vmlsdavaq_p): Remove.
4750 (vmlsdavaxq_p): Remove.
4751 (vmladavaq_u8): Remove.
4752 (vmlsdavaxq_s8): Remove.
4753 (vmlsdavaq_s8): Remove.
4754 (vmladavaxq_s8): Remove.
4755 (vmladavaq_s8): Remove.
4756 (vmladavaq_u16): Remove.
4757 (vmlsdavaxq_s16): Remove.
4758 (vmlsdavaq_s16): Remove.
4759 (vmladavaxq_s16): Remove.
4760 (vmladavaq_s16): Remove.
4761 (vmladavaq_u32): Remove.
4762 (vmlsdavaxq_s32): Remove.
4763 (vmlsdavaq_s32): Remove.
4764 (vmladavaxq_s32): Remove.
4765 (vmladavaq_s32): Remove.
4766 (vmladavaq_p_s8): Remove.
4767 (vmladavaq_p_s32): Remove.
4768 (vmladavaq_p_s16): Remove.
4769 (vmladavaq_p_u8): Remove.
4770 (vmladavaq_p_u32): Remove.
4771 (vmladavaq_p_u16): Remove.
4772 (vmladavaxq_p_s8): Remove.
4773 (vmladavaxq_p_s32): Remove.
4774 (vmladavaxq_p_s16): Remove.
4775 (vmlsdavaq_p_s8): Remove.
4776 (vmlsdavaq_p_s32): Remove.
4777 (vmlsdavaq_p_s16): Remove.
4778 (vmlsdavaxq_p_s8): Remove.
4779 (vmlsdavaxq_p_s32): Remove.
4780 (vmlsdavaxq_p_s16): Remove.
4781 (__arm_vmladavaq_u8): Remove.
4782 (__arm_vmlsdavaxq_s8): Remove.
4783 (__arm_vmlsdavaq_s8): Remove.
4784 (__arm_vmladavaxq_s8): Remove.
4785 (__arm_vmladavaq_s8): Remove.
4786 (__arm_vmladavaq_u16): Remove.
4787 (__arm_vmlsdavaxq_s16): Remove.
4788 (__arm_vmlsdavaq_s16): Remove.
4789 (__arm_vmladavaxq_s16): Remove.
4790 (__arm_vmladavaq_s16): Remove.
4791 (__arm_vmladavaq_u32): Remove.
4792 (__arm_vmlsdavaxq_s32): Remove.
4793 (__arm_vmlsdavaq_s32): Remove.
4794 (__arm_vmladavaxq_s32): Remove.
4795 (__arm_vmladavaq_s32): Remove.
4796 (__arm_vmladavaq_p_s8): Remove.
4797 (__arm_vmladavaq_p_s32): Remove.
4798 (__arm_vmladavaq_p_s16): Remove.
4799 (__arm_vmladavaq_p_u8): Remove.
4800 (__arm_vmladavaq_p_u32): Remove.
4801 (__arm_vmladavaq_p_u16): Remove.
4802 (__arm_vmladavaxq_p_s8): Remove.
4803 (__arm_vmladavaxq_p_s32): Remove.
4804 (__arm_vmladavaxq_p_s16): Remove.
4805 (__arm_vmlsdavaq_p_s8): Remove.
4806 (__arm_vmlsdavaq_p_s32): Remove.
4807 (__arm_vmlsdavaq_p_s16): Remove.
4808 (__arm_vmlsdavaxq_p_s8): Remove.
4809 (__arm_vmlsdavaxq_p_s32): Remove.
4810 (__arm_vmlsdavaxq_p_s16): Remove.
4811 (__arm_vmladavaq): Remove.
4812 (__arm_vmlsdavaxq): Remove.
4813 (__arm_vmlsdavaq): Remove.
4814 (__arm_vmladavaxq): Remove.
4815 (__arm_vmladavaq_p): Remove.
4816 (__arm_vmladavaxq_p): Remove.
4817 (__arm_vmlsdavaq_p): Remove.
4818 (__arm_vmlsdavaxq_p): Remove.
4819
4820 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4821
4822 * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): New.
4823 * config/arm/arm-mve-builtins-shapes.h (binary_acca_int32): New.
4824
4825 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4826
4827 * config/arm/arm-mve-builtins-base.cc (vmladavq, vmladavxq)
4828 (vmlsdavq, vmlsdavxq): New.
4829 * config/arm/arm-mve-builtins-base.def (vmladavq, vmladavxq)
4830 (vmlsdavq, vmlsdavxq): New.
4831 * config/arm/arm-mve-builtins-base.h (vmladavq, vmladavxq)
4832 (vmlsdavq, vmlsdavxq): New.
4833 * config/arm/arm_mve.h (vmladavq): Remove.
4834 (vmlsdavxq): Remove.
4835 (vmlsdavq): Remove.
4836 (vmladavxq): Remove.
4837 (vmladavq_p): Remove.
4838 (vmlsdavxq_p): Remove.
4839 (vmlsdavq_p): Remove.
4840 (vmladavxq_p): Remove.
4841 (vmladavq_u8): Remove.
4842 (vmlsdavxq_s8): Remove.
4843 (vmlsdavq_s8): Remove.
4844 (vmladavxq_s8): Remove.
4845 (vmladavq_s8): Remove.
4846 (vmladavq_u16): Remove.
4847 (vmlsdavxq_s16): Remove.
4848 (vmlsdavq_s16): Remove.
4849 (vmladavxq_s16): Remove.
4850 (vmladavq_s16): Remove.
4851 (vmladavq_u32): Remove.
4852 (vmlsdavxq_s32): Remove.
4853 (vmlsdavq_s32): Remove.
4854 (vmladavxq_s32): Remove.
4855 (vmladavq_s32): Remove.
4856 (vmladavq_p_u8): Remove.
4857 (vmlsdavxq_p_s8): Remove.
4858 (vmlsdavq_p_s8): Remove.
4859 (vmladavxq_p_s8): Remove.
4860 (vmladavq_p_s8): Remove.
4861 (vmladavq_p_u16): Remove.
4862 (vmlsdavxq_p_s16): Remove.
4863 (vmlsdavq_p_s16): Remove.
4864 (vmladavxq_p_s16): Remove.
4865 (vmladavq_p_s16): Remove.
4866 (vmladavq_p_u32): Remove.
4867 (vmlsdavxq_p_s32): Remove.
4868 (vmlsdavq_p_s32): Remove.
4869 (vmladavxq_p_s32): Remove.
4870 (vmladavq_p_s32): Remove.
4871 (__arm_vmladavq_u8): Remove.
4872 (__arm_vmlsdavxq_s8): Remove.
4873 (__arm_vmlsdavq_s8): Remove.
4874 (__arm_vmladavxq_s8): Remove.
4875 (__arm_vmladavq_s8): Remove.
4876 (__arm_vmladavq_u16): Remove.
4877 (__arm_vmlsdavxq_s16): Remove.
4878 (__arm_vmlsdavq_s16): Remove.
4879 (__arm_vmladavxq_s16): Remove.
4880 (__arm_vmladavq_s16): Remove.
4881 (__arm_vmladavq_u32): Remove.
4882 (__arm_vmlsdavxq_s32): Remove.
4883 (__arm_vmlsdavq_s32): Remove.
4884 (__arm_vmladavxq_s32): Remove.
4885 (__arm_vmladavq_s32): Remove.
4886 (__arm_vmladavq_p_u8): Remove.
4887 (__arm_vmlsdavxq_p_s8): Remove.
4888 (__arm_vmlsdavq_p_s8): Remove.
4889 (__arm_vmladavxq_p_s8): Remove.
4890 (__arm_vmladavq_p_s8): Remove.
4891 (__arm_vmladavq_p_u16): Remove.
4892 (__arm_vmlsdavxq_p_s16): Remove.
4893 (__arm_vmlsdavq_p_s16): Remove.
4894 (__arm_vmladavxq_p_s16): Remove.
4895 (__arm_vmladavq_p_s16): Remove.
4896 (__arm_vmladavq_p_u32): Remove.
4897 (__arm_vmlsdavxq_p_s32): Remove.
4898 (__arm_vmlsdavq_p_s32): Remove.
4899 (__arm_vmladavxq_p_s32): Remove.
4900 (__arm_vmladavq_p_s32): Remove.
4901 (__arm_vmladavq): Remove.
4902 (__arm_vmlsdavxq): Remove.
4903 (__arm_vmlsdavq): Remove.
4904 (__arm_vmladavxq): Remove.
4905 (__arm_vmladavq_p): Remove.
4906 (__arm_vmlsdavxq_p): Remove.
4907 (__arm_vmlsdavq_p): Remove.
4908 (__arm_vmladavxq_p): Remove.
4909
4910 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4911
4912 * config/arm/iterators.md (MVE_VMLxDAVQ, MVE_VMLxDAVQ_P)
4913 (MVE_VMLxDAVAQ, MVE_VMLxDAVAQ_P): New.
4914 (mve_insn): Add vmladava, vmladavax, vmladav, vmladavx, vmlsdava,
4915 vmlsdavax, vmlsdav, vmlsdavx.
4916 (supf): Add VMLADAVAXQ_P_S, VMLADAVAXQ_S, VMLADAVXQ_P_S,
4917 VMLADAVXQ_S, VMLSDAVAQ_P_S, VMLSDAVAQ_S, VMLSDAVAXQ_P_S,
4918 VMLSDAVAXQ_S, VMLSDAVQ_P_S, VMLSDAVQ_S, VMLSDAVXQ_P_S,
4919 VMLSDAVXQ_S.
4920 * config/arm/mve.md (mve_vmladavq_<supf><mode>)
4921 (mve_vmladavxq_s<mode>, mve_vmlsdavq_s<mode>)
4922 (mve_vmlsdavxq_s<mode>): Merge into ...
4923 (@mve_<mve_insn>q_<supf><mode>): ... this.
4924 (mve_vmlsdavaq_s<mode>, mve_vmladavaxq_s<mode>)
4925 (mve_vmlsdavaxq_s<mode>, mve_vmladavaq_<supf><mode>): Merge into
4926 ...
4927 (@mve_<mve_insn>q_<supf><mode>): ... this.
4928 (mve_vmladavq_p_<supf><mode>, mve_vmladavxq_p_s<mode>)
4929 (mve_vmlsdavq_p_s<mode>, mve_vmlsdavxq_p_s<mode>): Merge into ...
4930 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
4931 (mve_vmladavaq_p_<supf><mode>, mve_vmladavaxq_p_s<mode>)
4932 (mve_vmlsdavaq_p_s<mode>, mve_vmlsdavaxq_p_s<mode>): Merge into
4933 ...
4934 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
4935
4936 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4937
4938 * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int32): New.
4939 * config/arm/arm-mve-builtins-shapes.h (binary_acc_int32): New.
4940
4941 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4942
4943 * config/arm/arm-mve-builtins-base.cc (vaddlvaq): New.
4944 * config/arm/arm-mve-builtins-base.def (vaddlvaq): New.
4945 * config/arm/arm-mve-builtins-base.h (vaddlvaq): New.
4946 * config/arm/arm_mve.h (vaddlvaq): Remove.
4947 (vaddlvaq_p): Remove.
4948 (vaddlvaq_u32): Remove.
4949 (vaddlvaq_s32): Remove.
4950 (vaddlvaq_p_s32): Remove.
4951 (vaddlvaq_p_u32): Remove.
4952 (__arm_vaddlvaq_u32): Remove.
4953 (__arm_vaddlvaq_s32): Remove.
4954 (__arm_vaddlvaq_p_s32): Remove.
4955 (__arm_vaddlvaq_p_u32): Remove.
4956 (__arm_vaddlvaq): Remove.
4957 (__arm_vaddlvaq_p): Remove.
4958
4959 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4960
4961 * config/arm/arm-mve-builtins-shapes.cc (unary_widen_acc): New.
4962 * config/arm/arm-mve-builtins-shapes.h (unary_widen_acc): New.
4963
4964 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
4965
4966 * config/arm/iterators.md (mve_insn): Add vaddlva.
4967 * config/arm/mve.md (mve_vaddlvaq_<supf>v4si): Rename into ...
4968 (@mve_<mve_insn>q_<supf>v4si): ... this.
4969 (mve_vaddlvaq_p_<supf>v4si): Rename into ...
4970 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
4971
4972 2023-05-11 Uros Bizjak <ubizjak@gmail.com>
4973
4974 PR target/109807
4975 * config/i386/i386.cc (ix86_widen_mult_cost):
4976 Handle V4HImode and V2SImode.
4977
4978 2023-05-11 Andrew Pinski <apinski@marvell.com>
4979
4980 * tree-ssa-dce.cc (simple_dce_from_worklist): For ssa names
4981 defined by a phi node with more than one uses, allow for the
4982 only uses are in that same defining statement.
4983
4984 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
4985
4986 * config/riscv/riscv.cc (riscv_const_insns): Add permissible
4987 vector constants.
4988
4989 2023-05-11 Pan Li <pan2.li@intel.com>
4990
4991 * config/riscv/vector.md: Add comments for simplifying to vmset.
4992
4993 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
4994
4995 * config/riscv/autovec.md (<optab><mode>3): Add scalar shift
4996 pattern.
4997 (v<optab><mode>3): Add vector shift pattern.
4998 * config/riscv/vector-iterators.md: New iterator.
4999
5000 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
5001
5002 * config/riscv/autovec.md: Use renamed functions.
5003 * config/riscv/riscv-protos.h (emit_vlmax_op): Rename.
5004 (emit_vlmax_reg_op): To this.
5005 (emit_nonvlmax_op): Rename.
5006 (emit_len_op): To this.
5007 (emit_nonvlmax_binop): Rename.
5008 (emit_len_binop): To this.
5009 * config/riscv/riscv-v.cc (emit_pred_op): Add default parameter.
5010 (emit_pred_binop): Remove vlmax_p.
5011 (emit_vlmax_op): Rename.
5012 (emit_vlmax_reg_op): To this.
5013 (emit_nonvlmax_op): Rename.
5014 (emit_len_op): To this.
5015 (emit_nonvlmax_binop): Rename.
5016 (emit_len_binop): To this.
5017 (sew64_scalar_helper): Use renamed functions.
5018 (expand_tuple_move): Use renamed functions.
5019 * config/riscv/riscv.cc (vector_zero_call_used_regs): Use
5020 renamed functions.
5021 * config/riscv/vector.md: Use renamed functions.
5022
5023 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
5024 Michael Collison <collison@rivosinc.com>
5025
5026 * config/riscv/autovec.md (<optab><mode>3): Add integer binops.
5027 * config/riscv/riscv-protos.h (emit_nonvlmax_binop): Declare.
5028 * config/riscv/riscv-v.cc (emit_pred_op): New function.
5029 (set_expander_dest_and_mask): New function.
5030 (emit_pred_binop): New function.
5031 (emit_nonvlmax_binop): New function.
5032
5033 2023-05-11 Pan Li <pan2.li@intel.com>
5034
5035 * cfgloopmanip.cc (create_empty_loop_on_edge): Add PLUS_EXPR.
5036 * gimple-loop-interchange.cc
5037 (tree_loop_interchange::map_inductions_to_loop): Ditto.
5038 * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Ditto.
5039 * tree-ssa-loop-ivopts.cc (create_new_iv): Ditto.
5040 * tree-ssa-loop-manip.cc (create_iv): Ditto.
5041 (tree_transform_and_unroll_loop): Ditto.
5042 (canonicalize_loop_ivs): Ditto.
5043 * tree-ssa-loop-manip.h (create_iv): Ditto.
5044 * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Ditto.
5045 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly):
5046 Ditto.
5047 (vect_set_loop_condition_normal): Ditto.
5048 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Ditto.
5049 * tree-vect-stmts.cc (vectorizable_store): Ditto.
5050 (vectorizable_load): Ditto.
5051
5052 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5053
5054 * config/arm/arm-mve-builtins-base.cc (vmovlbq, vmovltq): New.
5055 * config/arm/arm-mve-builtins-base.def (vmovlbq, vmovltq): New.
5056 * config/arm/arm-mve-builtins-base.h (vmovlbq, vmovltq): New.
5057 * config/arm/arm_mve.h (vmovlbq): Remove.
5058 (vmovltq): Remove.
5059 (vmovlbq_m): Remove.
5060 (vmovltq_m): Remove.
5061 (vmovlbq_x): Remove.
5062 (vmovltq_x): Remove.
5063 (vmovlbq_s8): Remove.
5064 (vmovlbq_s16): Remove.
5065 (vmovltq_s8): Remove.
5066 (vmovltq_s16): Remove.
5067 (vmovltq_u8): Remove.
5068 (vmovltq_u16): Remove.
5069 (vmovlbq_u8): Remove.
5070 (vmovlbq_u16): Remove.
5071 (vmovlbq_m_s8): Remove.
5072 (vmovltq_m_s8): Remove.
5073 (vmovlbq_m_u8): Remove.
5074 (vmovltq_m_u8): Remove.
5075 (vmovlbq_m_s16): Remove.
5076 (vmovltq_m_s16): Remove.
5077 (vmovlbq_m_u16): Remove.
5078 (vmovltq_m_u16): Remove.
5079 (vmovlbq_x_s8): Remove.
5080 (vmovlbq_x_s16): Remove.
5081 (vmovlbq_x_u8): Remove.
5082 (vmovlbq_x_u16): Remove.
5083 (vmovltq_x_s8): Remove.
5084 (vmovltq_x_s16): Remove.
5085 (vmovltq_x_u8): Remove.
5086 (vmovltq_x_u16): Remove.
5087 (__arm_vmovlbq_s8): Remove.
5088 (__arm_vmovlbq_s16): Remove.
5089 (__arm_vmovltq_s8): Remove.
5090 (__arm_vmovltq_s16): Remove.
5091 (__arm_vmovltq_u8): Remove.
5092 (__arm_vmovltq_u16): Remove.
5093 (__arm_vmovlbq_u8): Remove.
5094 (__arm_vmovlbq_u16): Remove.
5095 (__arm_vmovlbq_m_s8): Remove.
5096 (__arm_vmovltq_m_s8): Remove.
5097 (__arm_vmovlbq_m_u8): Remove.
5098 (__arm_vmovltq_m_u8): Remove.
5099 (__arm_vmovlbq_m_s16): Remove.
5100 (__arm_vmovltq_m_s16): Remove.
5101 (__arm_vmovlbq_m_u16): Remove.
5102 (__arm_vmovltq_m_u16): Remove.
5103 (__arm_vmovlbq_x_s8): Remove.
5104 (__arm_vmovlbq_x_s16): Remove.
5105 (__arm_vmovlbq_x_u8): Remove.
5106 (__arm_vmovlbq_x_u16): Remove.
5107 (__arm_vmovltq_x_s8): Remove.
5108 (__arm_vmovltq_x_s16): Remove.
5109 (__arm_vmovltq_x_u8): Remove.
5110 (__arm_vmovltq_x_u16): Remove.
5111 (__arm_vmovlbq): Remove.
5112 (__arm_vmovltq): Remove.
5113 (__arm_vmovlbq_m): Remove.
5114 (__arm_vmovltq_m): Remove.
5115 (__arm_vmovlbq_x): Remove.
5116 (__arm_vmovltq_x): Remove.
5117
5118 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5119
5120 * config/arm/arm-mve-builtins-shapes.cc (unary_widen): New.
5121 * config/arm/arm-mve-builtins-shapes.h (unary_widen): New.
5122
5123 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5124
5125 * config/arm/iterators.md (mve_insn): Add vmovlb, vmovlt.
5126 (VMOVLBQ, VMOVLTQ): Merge into ...
5127 (VMOVLxQ): ... this.
5128 (VMOVLTQ_M, VMOVLBQ_M): Merge into ...
5129 (VMOVLxQ_M): ... this.
5130 * config/arm/mve.md (mve_vmovltq_<supf><mode>)
5131 (mve_vmovlbq_<supf><mode>): Merge into ...
5132 (@mve_<mve_insn>q_<supf><mode>): ... this.
5133 (mve_vmovlbq_m_<supf><mode>, mve_vmovltq_m_<supf><mode>): Merge
5134 into ...
5135 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
5136
5137 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5138
5139 * config/arm/arm-mve-builtins-base.cc (vaddlvq): New.
5140 * config/arm/arm-mve-builtins-base.def (vaddlvq): New.
5141 * config/arm/arm-mve-builtins-base.h (vaddlvq): New.
5142 * config/arm/arm-mve-builtins-functions.h
5143 (unspec_mve_function_exact_insn_pred_p): Handle vaddlvq.
5144 * config/arm/arm_mve.h (vaddlvq): Remove.
5145 (vaddlvq_p): Remove.
5146 (vaddlvq_s32): Remove.
5147 (vaddlvq_u32): Remove.
5148 (vaddlvq_p_s32): Remove.
5149 (vaddlvq_p_u32): Remove.
5150 (__arm_vaddlvq_s32): Remove.
5151 (__arm_vaddlvq_u32): Remove.
5152 (__arm_vaddlvq_p_s32): Remove.
5153 (__arm_vaddlvq_p_u32): Remove.
5154 (__arm_vaddlvq): Remove.
5155 (__arm_vaddlvq_p): Remove.
5156
5157 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5158
5159 * config/arm/iterators.md (mve_insn): Add vaddlv.
5160 * config/arm/mve.md (mve_vaddlvq_<supf>v4si): Rename into ...
5161 (@mve_<mve_insn>q_<supf>v4si): ... this.
5162 (mve_vaddlvq_p_<supf>v4si): Rename into ...
5163 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
5164
5165 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5166
5167 * config/arm/arm-mve-builtins-shapes.cc (unary_acc): New.
5168 * config/arm/arm-mve-builtins-shapes.h (unary_acc): New.
5169
5170 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5171
5172 * config/arm/arm-mve-builtins-base.cc (vaddvaq): New.
5173 * config/arm/arm-mve-builtins-base.def (vaddvaq): New.
5174 * config/arm/arm-mve-builtins-base.h (vaddvaq): New.
5175 * config/arm/arm_mve.h (vaddvaq): Remove.
5176 (vaddvaq_p): Remove.
5177 (vaddvaq_u8): Remove.
5178 (vaddvaq_s8): Remove.
5179 (vaddvaq_u16): Remove.
5180 (vaddvaq_s16): Remove.
5181 (vaddvaq_u32): Remove.
5182 (vaddvaq_s32): Remove.
5183 (vaddvaq_p_u8): Remove.
5184 (vaddvaq_p_s8): Remove.
5185 (vaddvaq_p_u16): Remove.
5186 (vaddvaq_p_s16): Remove.
5187 (vaddvaq_p_u32): Remove.
5188 (vaddvaq_p_s32): Remove.
5189 (__arm_vaddvaq_u8): Remove.
5190 (__arm_vaddvaq_s8): Remove.
5191 (__arm_vaddvaq_u16): Remove.
5192 (__arm_vaddvaq_s16): Remove.
5193 (__arm_vaddvaq_u32): Remove.
5194 (__arm_vaddvaq_s32): Remove.
5195 (__arm_vaddvaq_p_u8): Remove.
5196 (__arm_vaddvaq_p_s8): Remove.
5197 (__arm_vaddvaq_p_u16): Remove.
5198 (__arm_vaddvaq_p_s16): Remove.
5199 (__arm_vaddvaq_p_u32): Remove.
5200 (__arm_vaddvaq_p_s32): Remove.
5201 (__arm_vaddvaq): Remove.
5202 (__arm_vaddvaq_p): Remove.
5203
5204 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5205
5206 * config/arm/arm-mve-builtins-shapes.cc (unary_int32_acc): New.
5207 * config/arm/arm-mve-builtins-shapes.h (unary_int32_acc): New.
5208
5209 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5210
5211 * config/arm/iterators.md (mve_insn): Add vaddva.
5212 * config/arm/mve.md (mve_vaddvaq_<supf><mode>): Rename into ...
5213 (@mve_<mve_insn>q_<supf><mode>): ... this.
5214 (mve_vaddvaq_p_<supf><mode>): Rename into ...
5215 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
5216
5217 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5218
5219 * config/arm/arm-mve-builtins-base.cc (vaddvq): New.
5220 * config/arm/arm-mve-builtins-base.def (vaddvq): New.
5221 * config/arm/arm-mve-builtins-base.h (vaddvq): New.
5222 * config/arm/arm_mve.h (vaddvq): Remove.
5223 (vaddvq_p): Remove.
5224 (vaddvq_s8): Remove.
5225 (vaddvq_s16): Remove.
5226 (vaddvq_s32): Remove.
5227 (vaddvq_u8): Remove.
5228 (vaddvq_u16): Remove.
5229 (vaddvq_u32): Remove.
5230 (vaddvq_p_u8): Remove.
5231 (vaddvq_p_s8): Remove.
5232 (vaddvq_p_u16): Remove.
5233 (vaddvq_p_s16): Remove.
5234 (vaddvq_p_u32): Remove.
5235 (vaddvq_p_s32): Remove.
5236 (__arm_vaddvq_s8): Remove.
5237 (__arm_vaddvq_s16): Remove.
5238 (__arm_vaddvq_s32): Remove.
5239 (__arm_vaddvq_u8): Remove.
5240 (__arm_vaddvq_u16): Remove.
5241 (__arm_vaddvq_u32): Remove.
5242 (__arm_vaddvq_p_u8): Remove.
5243 (__arm_vaddvq_p_s8): Remove.
5244 (__arm_vaddvq_p_u16): Remove.
5245 (__arm_vaddvq_p_s16): Remove.
5246 (__arm_vaddvq_p_u32): Remove.
5247 (__arm_vaddvq_p_s32): Remove.
5248 (__arm_vaddvq): Remove.
5249 (__arm_vaddvq_p): Remove.
5250
5251 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5252
5253 * config/arm/arm-mve-builtins-shapes.cc (unary_int32): New.
5254 * config/arm/arm-mve-builtins-shapes.h (unary_int32): New.
5255
5256 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5257
5258 * config/arm/iterators.md (mve_insn): Add vaddv.
5259 * config/arm/mve.md (@mve_vaddvq_<supf><mode>): Rename into ...
5260 (@mve_<mve_insn>q_<supf><mode>): ... this.
5261 (mve_vaddvq_p_<supf><mode>): Rename into ...
5262 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
5263 * config/arm/vec-common.md: Use gen_mve_q instead of
5264 gen_mve_vaddvq.
5265
5266 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5267
5268 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N): New.
5269 (vdupq): New.
5270 * config/arm/arm-mve-builtins-base.def (vdupq): New.
5271 * config/arm/arm-mve-builtins-base.h: (vdupq): New.
5272 * config/arm/arm_mve.h (vdupq_n): Remove.
5273 (vdupq_m): Remove.
5274 (vdupq_n_f16): Remove.
5275 (vdupq_n_f32): Remove.
5276 (vdupq_n_s8): Remove.
5277 (vdupq_n_s16): Remove.
5278 (vdupq_n_s32): Remove.
5279 (vdupq_n_u8): Remove.
5280 (vdupq_n_u16): Remove.
5281 (vdupq_n_u32): Remove.
5282 (vdupq_m_n_u8): Remove.
5283 (vdupq_m_n_s8): Remove.
5284 (vdupq_m_n_u16): Remove.
5285 (vdupq_m_n_s16): Remove.
5286 (vdupq_m_n_u32): Remove.
5287 (vdupq_m_n_s32): Remove.
5288 (vdupq_m_n_f16): Remove.
5289 (vdupq_m_n_f32): Remove.
5290 (vdupq_x_n_s8): Remove.
5291 (vdupq_x_n_s16): Remove.
5292 (vdupq_x_n_s32): Remove.
5293 (vdupq_x_n_u8): Remove.
5294 (vdupq_x_n_u16): Remove.
5295 (vdupq_x_n_u32): Remove.
5296 (vdupq_x_n_f16): Remove.
5297 (vdupq_x_n_f32): Remove.
5298 (__arm_vdupq_n_s8): Remove.
5299 (__arm_vdupq_n_s16): Remove.
5300 (__arm_vdupq_n_s32): Remove.
5301 (__arm_vdupq_n_u8): Remove.
5302 (__arm_vdupq_n_u16): Remove.
5303 (__arm_vdupq_n_u32): Remove.
5304 (__arm_vdupq_m_n_u8): Remove.
5305 (__arm_vdupq_m_n_s8): Remove.
5306 (__arm_vdupq_m_n_u16): Remove.
5307 (__arm_vdupq_m_n_s16): Remove.
5308 (__arm_vdupq_m_n_u32): Remove.
5309 (__arm_vdupq_m_n_s32): Remove.
5310 (__arm_vdupq_x_n_s8): Remove.
5311 (__arm_vdupq_x_n_s16): Remove.
5312 (__arm_vdupq_x_n_s32): Remove.
5313 (__arm_vdupq_x_n_u8): Remove.
5314 (__arm_vdupq_x_n_u16): Remove.
5315 (__arm_vdupq_x_n_u32): Remove.
5316 (__arm_vdupq_n_f16): Remove.
5317 (__arm_vdupq_n_f32): Remove.
5318 (__arm_vdupq_m_n_f16): Remove.
5319 (__arm_vdupq_m_n_f32): Remove.
5320 (__arm_vdupq_x_n_f16): Remove.
5321 (__arm_vdupq_x_n_f32): Remove.
5322 (__arm_vdupq_n): Remove.
5323 (__arm_vdupq_m): Remove.
5324
5325 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5326
5327 * config/arm/arm-mve-builtins-shapes.cc (unary_n): New.
5328 * config/arm/arm-mve-builtins-shapes.h (unary_n): New.
5329
5330 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5331
5332 * config/arm/iterators.md (MVE_FP_M_N_VDUPQ_ONLY)
5333 (MVE_FP_N_VDUPQ_ONLY): New.
5334 (mve_insn): Add vdupq.
5335 * config/arm/mve.md (mve_vdupq_n_f<mode>): Rename into ...
5336 (@mve_<mve_insn>q_n_f<mode>): ... this.
5337 (mve_vdupq_n_<supf><mode>): Rename into ...
5338 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
5339 (mve_vdupq_m_n_<supf><mode>): Rename into ...
5340 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
5341 (mve_vdupq_m_n_f<mode>): Rename into ...
5342 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
5343
5344 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5345
5346 * config/arm/arm-mve-builtins-base.cc (vrev16q, vrev32q, vrev64q):
5347 New.
5348 * config/arm/arm-mve-builtins-base.def (vrev16q, vrev32q)
5349 (vrev64q): New.
5350 * config/arm/arm-mve-builtins-base.h (vrev16q, vrev32q)
5351 (vrev64q): New.
5352 * config/arm/arm_mve.h (vrev16q): Remove.
5353 (vrev32q): Remove.
5354 (vrev64q): Remove.
5355 (vrev64q_m): Remove.
5356 (vrev16q_m): Remove.
5357 (vrev32q_m): Remove.
5358 (vrev16q_x): Remove.
5359 (vrev32q_x): Remove.
5360 (vrev64q_x): Remove.
5361 (vrev64q_f16): Remove.
5362 (vrev64q_f32): Remove.
5363 (vrev32q_f16): Remove.
5364 (vrev16q_s8): Remove.
5365 (vrev32q_s8): Remove.
5366 (vrev32q_s16): Remove.
5367 (vrev64q_s8): Remove.
5368 (vrev64q_s16): Remove.
5369 (vrev64q_s32): Remove.
5370 (vrev64q_u8): Remove.
5371 (vrev64q_u16): Remove.
5372 (vrev64q_u32): Remove.
5373 (vrev32q_u8): Remove.
5374 (vrev32q_u16): Remove.
5375 (vrev16q_u8): Remove.
5376 (vrev64q_m_u8): Remove.
5377 (vrev64q_m_s8): Remove.
5378 (vrev64q_m_u16): Remove.
5379 (vrev64q_m_s16): Remove.
5380 (vrev64q_m_u32): Remove.
5381 (vrev64q_m_s32): Remove.
5382 (vrev16q_m_s8): Remove.
5383 (vrev32q_m_f16): Remove.
5384 (vrev16q_m_u8): Remove.
5385 (vrev32q_m_s8): Remove.
5386 (vrev64q_m_f16): Remove.
5387 (vrev32q_m_u8): Remove.
5388 (vrev32q_m_s16): Remove.
5389 (vrev64q_m_f32): Remove.
5390 (vrev32q_m_u16): Remove.
5391 (vrev16q_x_s8): Remove.
5392 (vrev16q_x_u8): Remove.
5393 (vrev32q_x_s8): Remove.
5394 (vrev32q_x_s16): Remove.
5395 (vrev32q_x_u8): Remove.
5396 (vrev32q_x_u16): Remove.
5397 (vrev64q_x_s8): Remove.
5398 (vrev64q_x_s16): Remove.
5399 (vrev64q_x_s32): Remove.
5400 (vrev64q_x_u8): Remove.
5401 (vrev64q_x_u16): Remove.
5402 (vrev64q_x_u32): Remove.
5403 (vrev32q_x_f16): Remove.
5404 (vrev64q_x_f16): Remove.
5405 (vrev64q_x_f32): Remove.
5406 (__arm_vrev16q_s8): Remove.
5407 (__arm_vrev32q_s8): Remove.
5408 (__arm_vrev32q_s16): Remove.
5409 (__arm_vrev64q_s8): Remove.
5410 (__arm_vrev64q_s16): Remove.
5411 (__arm_vrev64q_s32): Remove.
5412 (__arm_vrev64q_u8): Remove.
5413 (__arm_vrev64q_u16): Remove.
5414 (__arm_vrev64q_u32): Remove.
5415 (__arm_vrev32q_u8): Remove.
5416 (__arm_vrev32q_u16): Remove.
5417 (__arm_vrev16q_u8): Remove.
5418 (__arm_vrev64q_m_u8): Remove.
5419 (__arm_vrev64q_m_s8): Remove.
5420 (__arm_vrev64q_m_u16): Remove.
5421 (__arm_vrev64q_m_s16): Remove.
5422 (__arm_vrev64q_m_u32): Remove.
5423 (__arm_vrev64q_m_s32): Remove.
5424 (__arm_vrev16q_m_s8): Remove.
5425 (__arm_vrev16q_m_u8): Remove.
5426 (__arm_vrev32q_m_s8): Remove.
5427 (__arm_vrev32q_m_u8): Remove.
5428 (__arm_vrev32q_m_s16): Remove.
5429 (__arm_vrev32q_m_u16): Remove.
5430 (__arm_vrev16q_x_s8): Remove.
5431 (__arm_vrev16q_x_u8): Remove.
5432 (__arm_vrev32q_x_s8): Remove.
5433 (__arm_vrev32q_x_s16): Remove.
5434 (__arm_vrev32q_x_u8): Remove.
5435 (__arm_vrev32q_x_u16): Remove.
5436 (__arm_vrev64q_x_s8): Remove.
5437 (__arm_vrev64q_x_s16): Remove.
5438 (__arm_vrev64q_x_s32): Remove.
5439 (__arm_vrev64q_x_u8): Remove.
5440 (__arm_vrev64q_x_u16): Remove.
5441 (__arm_vrev64q_x_u32): Remove.
5442 (__arm_vrev64q_f16): Remove.
5443 (__arm_vrev64q_f32): Remove.
5444 (__arm_vrev32q_f16): Remove.
5445 (__arm_vrev32q_m_f16): Remove.
5446 (__arm_vrev64q_m_f16): Remove.
5447 (__arm_vrev64q_m_f32): Remove.
5448 (__arm_vrev32q_x_f16): Remove.
5449 (__arm_vrev64q_x_f16): Remove.
5450 (__arm_vrev64q_x_f32): Remove.
5451 (__arm_vrev16q): Remove.
5452 (__arm_vrev32q): Remove.
5453 (__arm_vrev64q): Remove.
5454 (__arm_vrev64q_m): Remove.
5455 (__arm_vrev16q_m): Remove.
5456 (__arm_vrev32q_m): Remove.
5457 (__arm_vrev16q_x): Remove.
5458 (__arm_vrev32q_x): Remove.
5459 (__arm_vrev64q_x): Remove.
5460
5461 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5462
5463 * config/arm/iterators.md (MVE_V8HF, MVE_V16QI)
5464 (MVE_FP_VREV64Q_ONLY, MVE_FP_M_VREV64Q_ONLY, MVE_FP_VREV32Q_ONLY)
5465 (MVE_FP_M_VREV32Q_ONLY): New iterators.
5466 (mve_insn): Add vrev16q, vrev32q, vrev64q.
5467 * config/arm/mve.md (mve_vrev64q_f<mode>): Rename into ...
5468 (@mve_<mve_insn>q_f<mode>): ... this
5469 (mve_vrev32q_fv8hf): Rename into @mve_<mve_insn>q_f<mode>.
5470 (mve_vrev64q_<supf><mode>): Rename into ...
5471 (@mve_<mve_insn>q_<supf><mode>): ... this.
5472 (mve_vrev32q_<supf><mode>): Rename into
5473 @mve_<mve_insn>q_<supf><mode>.
5474 (mve_vrev16q_<supf>v16qi): Rename into
5475 @mve_<mve_insn>q_<supf><mode>.
5476 (mve_vrev64q_m_<supf><mode>): Rename into
5477 @mve_<mve_insn>q_m_<supf><mode>.
5478 (mve_vrev32q_m_fv8hf): Rename into @mve_<mve_insn>q_m_f<mode>.
5479 (mve_vrev32q_m_<supf><mode>): Rename into
5480 @mve_<mve_insn>q_m_<supf><mode>.
5481 (mve_vrev64q_m_f<mode>): Rename into @mve_<mve_insn>q_m_f<mode>.
5482 (mve_vrev16q_m_<supf>v16qi): Rename into
5483 @mve_<mve_insn>q_m_<supf><mode>.
5484
5485 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5486
5487 * config/arm/arm-mve-builtins-base.cc (vcmpeqq, vcmpneq, vcmpgeq)
5488 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
5489 * config/arm/arm-mve-builtins-base.def (vcmpeqq, vcmpneq, vcmpgeq)
5490 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
5491 * config/arm/arm-mve-builtins-base.h (vcmpeqq, vcmpneq, vcmpgeq)
5492 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
5493 * config/arm/arm-mve-builtins-functions.h (class
5494 unspec_based_mve_function_exact_insn_vcmp): New.
5495 * config/arm/arm-mve-builtins.cc
5496 (function_instance::has_inactive_argument): Handle vcmp.
5497 * config/arm/arm_mve.h (vcmpneq): Remove.
5498 (vcmphiq): Remove.
5499 (vcmpeqq): Remove.
5500 (vcmpcsq): Remove.
5501 (vcmpltq): Remove.
5502 (vcmpleq): Remove.
5503 (vcmpgtq): Remove.
5504 (vcmpgeq): Remove.
5505 (vcmpneq_m): Remove.
5506 (vcmphiq_m): Remove.
5507 (vcmpeqq_m): Remove.
5508 (vcmpcsq_m): Remove.
5509 (vcmpcsq_m_n): Remove.
5510 (vcmpltq_m): Remove.
5511 (vcmpleq_m): Remove.
5512 (vcmpgtq_m): Remove.
5513 (vcmpgeq_m): Remove.
5514 (vcmpneq_s8): Remove.
5515 (vcmpneq_s16): Remove.
5516 (vcmpneq_s32): Remove.
5517 (vcmpneq_u8): Remove.
5518 (vcmpneq_u16): Remove.
5519 (vcmpneq_u32): Remove.
5520 (vcmpneq_n_u8): Remove.
5521 (vcmphiq_u8): Remove.
5522 (vcmphiq_n_u8): Remove.
5523 (vcmpeqq_u8): Remove.
5524 (vcmpeqq_n_u8): Remove.
5525 (vcmpcsq_u8): Remove.
5526 (vcmpcsq_n_u8): Remove.
5527 (vcmpneq_n_s8): Remove.
5528 (vcmpltq_s8): Remove.
5529 (vcmpltq_n_s8): Remove.
5530 (vcmpleq_s8): Remove.
5531 (vcmpleq_n_s8): Remove.
5532 (vcmpgtq_s8): Remove.
5533 (vcmpgtq_n_s8): Remove.
5534 (vcmpgeq_s8): Remove.
5535 (vcmpgeq_n_s8): Remove.
5536 (vcmpeqq_s8): Remove.
5537 (vcmpeqq_n_s8): Remove.
5538 (vcmpneq_n_u16): Remove.
5539 (vcmphiq_u16): Remove.
5540 (vcmphiq_n_u16): Remove.
5541 (vcmpeqq_u16): Remove.
5542 (vcmpeqq_n_u16): Remove.
5543 (vcmpcsq_u16): Remove.
5544 (vcmpcsq_n_u16): Remove.
5545 (vcmpneq_n_s16): Remove.
5546 (vcmpltq_s16): Remove.
5547 (vcmpltq_n_s16): Remove.
5548 (vcmpleq_s16): Remove.
5549 (vcmpleq_n_s16): Remove.
5550 (vcmpgtq_s16): Remove.
5551 (vcmpgtq_n_s16): Remove.
5552 (vcmpgeq_s16): Remove.
5553 (vcmpgeq_n_s16): Remove.
5554 (vcmpeqq_s16): Remove.
5555 (vcmpeqq_n_s16): Remove.
5556 (vcmpneq_n_u32): Remove.
5557 (vcmphiq_u32): Remove.
5558 (vcmphiq_n_u32): Remove.
5559 (vcmpeqq_u32): Remove.
5560 (vcmpeqq_n_u32): Remove.
5561 (vcmpcsq_u32): Remove.
5562 (vcmpcsq_n_u32): Remove.
5563 (vcmpneq_n_s32): Remove.
5564 (vcmpltq_s32): Remove.
5565 (vcmpltq_n_s32): Remove.
5566 (vcmpleq_s32): Remove.
5567 (vcmpleq_n_s32): Remove.
5568 (vcmpgtq_s32): Remove.
5569 (vcmpgtq_n_s32): Remove.
5570 (vcmpgeq_s32): Remove.
5571 (vcmpgeq_n_s32): Remove.
5572 (vcmpeqq_s32): Remove.
5573 (vcmpeqq_n_s32): Remove.
5574 (vcmpneq_n_f16): Remove.
5575 (vcmpneq_f16): Remove.
5576 (vcmpltq_n_f16): Remove.
5577 (vcmpltq_f16): Remove.
5578 (vcmpleq_n_f16): Remove.
5579 (vcmpleq_f16): Remove.
5580 (vcmpgtq_n_f16): Remove.
5581 (vcmpgtq_f16): Remove.
5582 (vcmpgeq_n_f16): Remove.
5583 (vcmpgeq_f16): Remove.
5584 (vcmpeqq_n_f16): Remove.
5585 (vcmpeqq_f16): Remove.
5586 (vcmpneq_n_f32): Remove.
5587 (vcmpneq_f32): Remove.
5588 (vcmpltq_n_f32): Remove.
5589 (vcmpltq_f32): Remove.
5590 (vcmpleq_n_f32): Remove.
5591 (vcmpleq_f32): Remove.
5592 (vcmpgtq_n_f32): Remove.
5593 (vcmpgtq_f32): Remove.
5594 (vcmpgeq_n_f32): Remove.
5595 (vcmpgeq_f32): Remove.
5596 (vcmpeqq_n_f32): Remove.
5597 (vcmpeqq_f32): Remove.
5598 (vcmpeqq_m_f16): Remove.
5599 (vcmpeqq_m_f32): Remove.
5600 (vcmpneq_m_u8): Remove.
5601 (vcmpneq_m_n_u8): Remove.
5602 (vcmphiq_m_u8): Remove.
5603 (vcmphiq_m_n_u8): Remove.
5604 (vcmpeqq_m_u8): Remove.
5605 (vcmpeqq_m_n_u8): Remove.
5606 (vcmpcsq_m_u8): Remove.
5607 (vcmpcsq_m_n_u8): Remove.
5608 (vcmpneq_m_s8): Remove.
5609 (vcmpneq_m_n_s8): Remove.
5610 (vcmpltq_m_s8): Remove.
5611 (vcmpltq_m_n_s8): Remove.
5612 (vcmpleq_m_s8): Remove.
5613 (vcmpleq_m_n_s8): Remove.
5614 (vcmpgtq_m_s8): Remove.
5615 (vcmpgtq_m_n_s8): Remove.
5616 (vcmpgeq_m_s8): Remove.
5617 (vcmpgeq_m_n_s8): Remove.
5618 (vcmpeqq_m_s8): Remove.
5619 (vcmpeqq_m_n_s8): Remove.
5620 (vcmpneq_m_u16): Remove.
5621 (vcmpneq_m_n_u16): Remove.
5622 (vcmphiq_m_u16): Remove.
5623 (vcmphiq_m_n_u16): Remove.
5624 (vcmpeqq_m_u16): Remove.
5625 (vcmpeqq_m_n_u16): Remove.
5626 (vcmpcsq_m_u16): Remove.
5627 (vcmpcsq_m_n_u16): Remove.
5628 (vcmpneq_m_s16): Remove.
5629 (vcmpneq_m_n_s16): Remove.
5630 (vcmpltq_m_s16): Remove.
5631 (vcmpltq_m_n_s16): Remove.
5632 (vcmpleq_m_s16): Remove.
5633 (vcmpleq_m_n_s16): Remove.
5634 (vcmpgtq_m_s16): Remove.
5635 (vcmpgtq_m_n_s16): Remove.
5636 (vcmpgeq_m_s16): Remove.
5637 (vcmpgeq_m_n_s16): Remove.
5638 (vcmpeqq_m_s16): Remove.
5639 (vcmpeqq_m_n_s16): Remove.
5640 (vcmpneq_m_u32): Remove.
5641 (vcmpneq_m_n_u32): Remove.
5642 (vcmphiq_m_u32): Remove.
5643 (vcmphiq_m_n_u32): Remove.
5644 (vcmpeqq_m_u32): Remove.
5645 (vcmpeqq_m_n_u32): Remove.
5646 (vcmpcsq_m_u32): Remove.
5647 (vcmpcsq_m_n_u32): Remove.
5648 (vcmpneq_m_s32): Remove.
5649 (vcmpneq_m_n_s32): Remove.
5650 (vcmpltq_m_s32): Remove.
5651 (vcmpltq_m_n_s32): Remove.
5652 (vcmpleq_m_s32): Remove.
5653 (vcmpleq_m_n_s32): Remove.
5654 (vcmpgtq_m_s32): Remove.
5655 (vcmpgtq_m_n_s32): Remove.
5656 (vcmpgeq_m_s32): Remove.
5657 (vcmpgeq_m_n_s32): Remove.
5658 (vcmpeqq_m_s32): Remove.
5659 (vcmpeqq_m_n_s32): Remove.
5660 (vcmpeqq_m_n_f16): Remove.
5661 (vcmpgeq_m_f16): Remove.
5662 (vcmpgeq_m_n_f16): Remove.
5663 (vcmpgtq_m_f16): Remove.
5664 (vcmpgtq_m_n_f16): Remove.
5665 (vcmpleq_m_f16): Remove.
5666 (vcmpleq_m_n_f16): Remove.
5667 (vcmpltq_m_f16): Remove.
5668 (vcmpltq_m_n_f16): Remove.
5669 (vcmpneq_m_f16): Remove.
5670 (vcmpneq_m_n_f16): Remove.
5671 (vcmpeqq_m_n_f32): Remove.
5672 (vcmpgeq_m_f32): Remove.
5673 (vcmpgeq_m_n_f32): Remove.
5674 (vcmpgtq_m_f32): Remove.
5675 (vcmpgtq_m_n_f32): Remove.
5676 (vcmpleq_m_f32): Remove.
5677 (vcmpleq_m_n_f32): Remove.
5678 (vcmpltq_m_f32): Remove.
5679 (vcmpltq_m_n_f32): Remove.
5680 (vcmpneq_m_f32): Remove.
5681 (vcmpneq_m_n_f32): Remove.
5682 (__arm_vcmpneq_s8): Remove.
5683 (__arm_vcmpneq_s16): Remove.
5684 (__arm_vcmpneq_s32): Remove.
5685 (__arm_vcmpneq_u8): Remove.
5686 (__arm_vcmpneq_u16): Remove.
5687 (__arm_vcmpneq_u32): Remove.
5688 (__arm_vcmpneq_n_u8): Remove.
5689 (__arm_vcmphiq_u8): Remove.
5690 (__arm_vcmphiq_n_u8): Remove.
5691 (__arm_vcmpeqq_u8): Remove.
5692 (__arm_vcmpeqq_n_u8): Remove.
5693 (__arm_vcmpcsq_u8): Remove.
5694 (__arm_vcmpcsq_n_u8): Remove.
5695 (__arm_vcmpneq_n_s8): Remove.
5696 (__arm_vcmpltq_s8): Remove.
5697 (__arm_vcmpltq_n_s8): Remove.
5698 (__arm_vcmpleq_s8): Remove.
5699 (__arm_vcmpleq_n_s8): Remove.
5700 (__arm_vcmpgtq_s8): Remove.
5701 (__arm_vcmpgtq_n_s8): Remove.
5702 (__arm_vcmpgeq_s8): Remove.
5703 (__arm_vcmpgeq_n_s8): Remove.
5704 (__arm_vcmpeqq_s8): Remove.
5705 (__arm_vcmpeqq_n_s8): Remove.
5706 (__arm_vcmpneq_n_u16): Remove.
5707 (__arm_vcmphiq_u16): Remove.
5708 (__arm_vcmphiq_n_u16): Remove.
5709 (__arm_vcmpeqq_u16): Remove.
5710 (__arm_vcmpeqq_n_u16): Remove.
5711 (__arm_vcmpcsq_u16): Remove.
5712 (__arm_vcmpcsq_n_u16): Remove.
5713 (__arm_vcmpneq_n_s16): Remove.
5714 (__arm_vcmpltq_s16): Remove.
5715 (__arm_vcmpltq_n_s16): Remove.
5716 (__arm_vcmpleq_s16): Remove.
5717 (__arm_vcmpleq_n_s16): Remove.
5718 (__arm_vcmpgtq_s16): Remove.
5719 (__arm_vcmpgtq_n_s16): Remove.
5720 (__arm_vcmpgeq_s16): Remove.
5721 (__arm_vcmpgeq_n_s16): Remove.
5722 (__arm_vcmpeqq_s16): Remove.
5723 (__arm_vcmpeqq_n_s16): Remove.
5724 (__arm_vcmpneq_n_u32): Remove.
5725 (__arm_vcmphiq_u32): Remove.
5726 (__arm_vcmphiq_n_u32): Remove.
5727 (__arm_vcmpeqq_u32): Remove.
5728 (__arm_vcmpeqq_n_u32): Remove.
5729 (__arm_vcmpcsq_u32): Remove.
5730 (__arm_vcmpcsq_n_u32): Remove.
5731 (__arm_vcmpneq_n_s32): Remove.
5732 (__arm_vcmpltq_s32): Remove.
5733 (__arm_vcmpltq_n_s32): Remove.
5734 (__arm_vcmpleq_s32): Remove.
5735 (__arm_vcmpleq_n_s32): Remove.
5736 (__arm_vcmpgtq_s32): Remove.
5737 (__arm_vcmpgtq_n_s32): Remove.
5738 (__arm_vcmpgeq_s32): Remove.
5739 (__arm_vcmpgeq_n_s32): Remove.
5740 (__arm_vcmpeqq_s32): Remove.
5741 (__arm_vcmpeqq_n_s32): Remove.
5742 (__arm_vcmpneq_m_u8): Remove.
5743 (__arm_vcmpneq_m_n_u8): Remove.
5744 (__arm_vcmphiq_m_u8): Remove.
5745 (__arm_vcmphiq_m_n_u8): Remove.
5746 (__arm_vcmpeqq_m_u8): Remove.
5747 (__arm_vcmpeqq_m_n_u8): Remove.
5748 (__arm_vcmpcsq_m_u8): Remove.
5749 (__arm_vcmpcsq_m_n_u8): Remove.
5750 (__arm_vcmpneq_m_s8): Remove.
5751 (__arm_vcmpneq_m_n_s8): Remove.
5752 (__arm_vcmpltq_m_s8): Remove.
5753 (__arm_vcmpltq_m_n_s8): Remove.
5754 (__arm_vcmpleq_m_s8): Remove.
5755 (__arm_vcmpleq_m_n_s8): Remove.
5756 (__arm_vcmpgtq_m_s8): Remove.
5757 (__arm_vcmpgtq_m_n_s8): Remove.
5758 (__arm_vcmpgeq_m_s8): Remove.
5759 (__arm_vcmpgeq_m_n_s8): Remove.
5760 (__arm_vcmpeqq_m_s8): Remove.
5761 (__arm_vcmpeqq_m_n_s8): Remove.
5762 (__arm_vcmpneq_m_u16): Remove.
5763 (__arm_vcmpneq_m_n_u16): Remove.
5764 (__arm_vcmphiq_m_u16): Remove.
5765 (__arm_vcmphiq_m_n_u16): Remove.
5766 (__arm_vcmpeqq_m_u16): Remove.
5767 (__arm_vcmpeqq_m_n_u16): Remove.
5768 (__arm_vcmpcsq_m_u16): Remove.
5769 (__arm_vcmpcsq_m_n_u16): Remove.
5770 (__arm_vcmpneq_m_s16): Remove.
5771 (__arm_vcmpneq_m_n_s16): Remove.
5772 (__arm_vcmpltq_m_s16): Remove.
5773 (__arm_vcmpltq_m_n_s16): Remove.
5774 (__arm_vcmpleq_m_s16): Remove.
5775 (__arm_vcmpleq_m_n_s16): Remove.
5776 (__arm_vcmpgtq_m_s16): Remove.
5777 (__arm_vcmpgtq_m_n_s16): Remove.
5778 (__arm_vcmpgeq_m_s16): Remove.
5779 (__arm_vcmpgeq_m_n_s16): Remove.
5780 (__arm_vcmpeqq_m_s16): Remove.
5781 (__arm_vcmpeqq_m_n_s16): Remove.
5782 (__arm_vcmpneq_m_u32): Remove.
5783 (__arm_vcmpneq_m_n_u32): Remove.
5784 (__arm_vcmphiq_m_u32): Remove.
5785 (__arm_vcmphiq_m_n_u32): Remove.
5786 (__arm_vcmpeqq_m_u32): Remove.
5787 (__arm_vcmpeqq_m_n_u32): Remove.
5788 (__arm_vcmpcsq_m_u32): Remove.
5789 (__arm_vcmpcsq_m_n_u32): Remove.
5790 (__arm_vcmpneq_m_s32): Remove.
5791 (__arm_vcmpneq_m_n_s32): Remove.
5792 (__arm_vcmpltq_m_s32): Remove.
5793 (__arm_vcmpltq_m_n_s32): Remove.
5794 (__arm_vcmpleq_m_s32): Remove.
5795 (__arm_vcmpleq_m_n_s32): Remove.
5796 (__arm_vcmpgtq_m_s32): Remove.
5797 (__arm_vcmpgtq_m_n_s32): Remove.
5798 (__arm_vcmpgeq_m_s32): Remove.
5799 (__arm_vcmpgeq_m_n_s32): Remove.
5800 (__arm_vcmpeqq_m_s32): Remove.
5801 (__arm_vcmpeqq_m_n_s32): Remove.
5802 (__arm_vcmpneq_n_f16): Remove.
5803 (__arm_vcmpneq_f16): Remove.
5804 (__arm_vcmpltq_n_f16): Remove.
5805 (__arm_vcmpltq_f16): Remove.
5806 (__arm_vcmpleq_n_f16): Remove.
5807 (__arm_vcmpleq_f16): Remove.
5808 (__arm_vcmpgtq_n_f16): Remove.
5809 (__arm_vcmpgtq_f16): Remove.
5810 (__arm_vcmpgeq_n_f16): Remove.
5811 (__arm_vcmpgeq_f16): Remove.
5812 (__arm_vcmpeqq_n_f16): Remove.
5813 (__arm_vcmpeqq_f16): Remove.
5814 (__arm_vcmpneq_n_f32): Remove.
5815 (__arm_vcmpneq_f32): Remove.
5816 (__arm_vcmpltq_n_f32): Remove.
5817 (__arm_vcmpltq_f32): Remove.
5818 (__arm_vcmpleq_n_f32): Remove.
5819 (__arm_vcmpleq_f32): Remove.
5820 (__arm_vcmpgtq_n_f32): Remove.
5821 (__arm_vcmpgtq_f32): Remove.
5822 (__arm_vcmpgeq_n_f32): Remove.
5823 (__arm_vcmpgeq_f32): Remove.
5824 (__arm_vcmpeqq_n_f32): Remove.
5825 (__arm_vcmpeqq_f32): Remove.
5826 (__arm_vcmpeqq_m_f16): Remove.
5827 (__arm_vcmpeqq_m_f32): Remove.
5828 (__arm_vcmpeqq_m_n_f16): Remove.
5829 (__arm_vcmpgeq_m_f16): Remove.
5830 (__arm_vcmpgeq_m_n_f16): Remove.
5831 (__arm_vcmpgtq_m_f16): Remove.
5832 (__arm_vcmpgtq_m_n_f16): Remove.
5833 (__arm_vcmpleq_m_f16): Remove.
5834 (__arm_vcmpleq_m_n_f16): Remove.
5835 (__arm_vcmpltq_m_f16): Remove.
5836 (__arm_vcmpltq_m_n_f16): Remove.
5837 (__arm_vcmpneq_m_f16): Remove.
5838 (__arm_vcmpneq_m_n_f16): Remove.
5839 (__arm_vcmpeqq_m_n_f32): Remove.
5840 (__arm_vcmpgeq_m_f32): Remove.
5841 (__arm_vcmpgeq_m_n_f32): Remove.
5842 (__arm_vcmpgtq_m_f32): Remove.
5843 (__arm_vcmpgtq_m_n_f32): Remove.
5844 (__arm_vcmpleq_m_f32): Remove.
5845 (__arm_vcmpleq_m_n_f32): Remove.
5846 (__arm_vcmpltq_m_f32): Remove.
5847 (__arm_vcmpltq_m_n_f32): Remove.
5848 (__arm_vcmpneq_m_f32): Remove.
5849 (__arm_vcmpneq_m_n_f32): Remove.
5850 (__arm_vcmpneq): Remove.
5851 (__arm_vcmphiq): Remove.
5852 (__arm_vcmpeqq): Remove.
5853 (__arm_vcmpcsq): Remove.
5854 (__arm_vcmpltq): Remove.
5855 (__arm_vcmpleq): Remove.
5856 (__arm_vcmpgtq): Remove.
5857 (__arm_vcmpgeq): Remove.
5858 (__arm_vcmpneq_m): Remove.
5859 (__arm_vcmphiq_m): Remove.
5860 (__arm_vcmpeqq_m): Remove.
5861 (__arm_vcmpcsq_m): Remove.
5862 (__arm_vcmpltq_m): Remove.
5863 (__arm_vcmpleq_m): Remove.
5864 (__arm_vcmpgtq_m): Remove.
5865 (__arm_vcmpgeq_m): Remove.
5866
5867 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5868
5869 * config/arm/arm-mve-builtins-shapes.cc (cmp): New.
5870 * config/arm/arm-mve-builtins-shapes.h (cmp): New.
5871
5872 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5873
5874 * config/arm/iterators.md (MVE_CMP_M, MVE_CMP_M_F, MVE_CMP_M_N)
5875 (MVE_CMP_M_N_F, mve_cmp_op1): New.
5876 (isu): Add VCMP*
5877 (supf): Likewise.
5878 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>): Rename into ...
5879 (@mve_vcmp<mve_cmp_op>q_n_<mode>): ... this.
5880 (mve_vcmpeqq_m_f<mode>, mve_vcmpgeq_m_f<mode>)
5881 (mve_vcmpgtq_m_f<mode>, mve_vcmpleq_m_f<mode>)
5882 (mve_vcmpltq_m_f<mode>, mve_vcmpneq_m_f<mode>): Merge into ...
5883 (@mve_vcmp<mve_cmp_op1>q_m_f<mode>): ... this.
5884 (mve_vcmpcsq_m_u<mode>, mve_vcmpeqq_m_<supf><mode>)
5885 (mve_vcmpgeq_m_s<mode>, mve_vcmpgtq_m_s<mode>)
5886 (mve_vcmphiq_m_u<mode>, mve_vcmpleq_m_s<mode>)
5887 (mve_vcmpltq_m_s<mode>, mve_vcmpneq_m_<supf><mode>): Merge into
5888 ...
5889 (@mve_vcmp<mve_cmp_op1>q_m_<supf><mode>): ... this.
5890 (mve_vcmpcsq_m_n_u<mode>, mve_vcmpeqq_m_n_<supf><mode>)
5891 (mve_vcmpgeq_m_n_s<mode>, mve_vcmpgtq_m_n_s<mode>)
5892 (mve_vcmphiq_m_n_u<mode>, mve_vcmpleq_m_n_s<mode>)
5893 (mve_vcmpltq_m_n_s<mode>, mve_vcmpneq_m_n_<supf><mode>): Merge
5894 into ...
5895 (@mve_vcmp<mve_cmp_op1>q_m_n_<supf><mode>): ... this.
5896 (mve_vcmpeqq_m_n_f<mode>, mve_vcmpgeq_m_n_f<mode>)
5897 (mve_vcmpgtq_m_n_f<mode>, mve_vcmpleq_m_n_f<mode>)
5898 (mve_vcmpltq_m_n_f<mode>, mve_vcmpneq_m_n_f<mode>): Merge into ...
5899 (@mve_vcmp<mve_cmp_op1>q_m_n_f<mode>): ... this.
5900
5901 2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
5902
5903 * match.pd <popcount optimizations>: Simplify popcount(X|Y) +
5904 popcount(X&Y) as popcount(X)+popcount(Y). Likewise, simplify
5905 popcount(X)+popcount(Y)-popcount(X&Y) as popcount(X|Y), and
5906 vice versa.
5907
5908 2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
5909
5910 * match.pd <popcount optimizations>: Simplify popcount(bswap(x))
5911 as popcount(x). Simplify popcount(rotate(x,y)) as popcount(x).
5912 <parity optimizations>: Simplify parity(bswap(x)) as parity(x).
5913 Simplify parity(rotate(x,y)) as parity(x).
5914
5915 2023-05-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5916
5917 * config/riscv/autovec.md (@vec_series<mode>): New pattern
5918 * config/riscv/riscv-protos.h (expand_vec_series): New function.
5919 * config/riscv/riscv-v.cc (emit_binop): Ditto.
5920 (emit_index_op): Ditto.
5921 (expand_vec_series): Ditto.
5922 (expand_const_vector): Add series vector handling.
5923 * config/riscv/riscv.cc (riscv_const_insns): Enable series vector for testing.
5924
5925 2023-05-10 Roger Sayle <roger@nextmovesoftware.com>
5926
5927 * config/i386/i386.md (*concat<mode><dwi>3_1): Use preferred
5928 [(const_int 0)] idiom, instead of [(clobber (const_int 0))].
5929 (*concat<mode><dwi>3_2): Likewise.
5930 (*concat<mode><dwi>3_3): Likewise.
5931 (*concat<mode><dwi>3_4): Likewise.
5932 (*concat<mode><dwi>3_5): Likewise.
5933 (*concat<mode><dwi>3_6): Likewise.
5934 (*concat<mode><dwi>3_7): Likewise.
5935
5936 2023-05-10 Uros Bizjak <ubizjak@gmail.com>
5937
5938 PR target/92658
5939 * config/i386/mmx.md (sse4_1_<code>v2qiv2si2): New insn pattern.
5940 (<insn>v4qiv4hi2): New expander.
5941 (<insn>v2hiv2si2): Ditto.
5942 (<insn>v2qiv2si2): Ditto.
5943 (<insn>v2qiv2hi2): Ditto.
5944
5945 2023-05-10 Jeff Law <jlaw@ventanamicro>
5946
5947 * config/h8300/constraints.md (Q): Make this a special memory
5948 constraint.
5949 (Zz): Similarly.
5950
5951 2023-05-10 Jakub Jelinek <jakub@redhat.com>
5952
5953 PR fortran/109788
5954 * ipa-prop.cc (ipa_get_callee_param_type): Don't return TREE_VALUE (t)
5955 if t is void_list_node.
5956
5957 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5958
5959 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>_insn_le): Delete.
5960 (aarch64_sqmovun<mode>_insn_be): Delete.
5961 (aarch64_sqmovun<mode><vczle><vczbe>): New define_insn.
5962 (aarch64_sqmovun<mode>): Delete expander.
5963
5964 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5965
5966 PR target/99195
5967 * config/aarch64/aarch64-simd.md (aarch64_<PERMUTE:perm_insn><mode>):
5968 Rename to...
5969 (aarch64_<PERMUTE:perm_insn><mode><vczle><vczbe>): ... This.
5970 (aarch64_rev<REVERSE:rev_op><mode>): Rename to...
5971 (aarch64_rev<REVERSE:rev_op><mode><vczle><vczbe>): ... This.
5972
5973 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5974
5975 PR target/99195
5976 * config/aarch64/aarch64-simd.md (aarch64_<su_optab>q<addsub><mode>):
5977 Rename to...
5978 (aarch64_<su_optab>q<addsub><mode><vczle><vczbe>): ... This.
5979 (aarch64_<sur>qadd<mode>): Rename to...
5980 (aarch64_<sur>qadd<mode><vczle><vczbe>): ... This.
5981
5982 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5983
5984 * config/aarch64/aarch64-simd.md
5985 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): Delete.
5986 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): Delete.
5987 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn<vczle><vczbe>): New define_insn.
5988 (aarch64_<sur>q<r>shr<u>n_n<mode>): Simplify expander.
5989
5990 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5991
5992 PR target/99195
5993 * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le): Delete.
5994 (aarch64_xtn<mode>_insn_be): Likewise.
5995 (trunc<mode><Vnarrowq>2): Rename to...
5996 (trunc<mode><Vnarrowq>2<vczle><vczbe>): ... This.
5997 (aarch64_xtn<mode>): Move under the above. Just emit the truncate RTL.
5998 (aarch64_<su>qmovn<mode>): Likewise.
5999 (aarch64_<su>qmovn<mode><vczle><vczbe>): New define_insn.
6000 (aarch64_<su>qmovn<mode>_insn_le): Delete.
6001 (aarch64_<su>qmovn<mode>_insn_be): Likewise.
6002
6003 2023-05-10 Li Xu <xuli1@eswincomputing.com>
6004
6005 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): For vfmv.f.s/vmv.x.s
6006 intruction replace null avl with (const_int 0).
6007
6008 2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6009
6010 * config/riscv/riscv.cc (riscv_support_vector_misalignment): Fix
6011 incorrect codes.
6012
6013 2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6014
6015 PR target/109773
6016 * config/riscv/riscv-vsetvl.cc (avl_source_has_vsetvl_p): New function.
6017 (source_equal_p): Fix dead loop in vsetvl avl checking.
6018
6019 2023-05-10 Hans-Peter Nilsson <hp@axis.com>
6020
6021 * config/cris/cris.cc (cris_postdbr_cmpelim): Correct mode
6022 of modeadjusted_dccr.
6023
6024 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6025
6026 * config/arm/arm-mve-builtins-base.cc (vmaxaq, vminaq): New.
6027 * config/arm/arm-mve-builtins-base.def (vmaxaq, vminaq): New.
6028 * config/arm/arm-mve-builtins-base.h (vmaxaq, vminaq): New.
6029 * config/arm/arm-mve-builtins.cc
6030 (function_instance::has_inactive_argument): Handle vmaxaq and
6031 vminaq.
6032 * config/arm/arm_mve.h (vminaq): Remove.
6033 (vmaxaq): Remove.
6034 (vminaq_m): Remove.
6035 (vmaxaq_m): Remove.
6036 (vminaq_s8): Remove.
6037 (vmaxaq_s8): Remove.
6038 (vminaq_s16): Remove.
6039 (vmaxaq_s16): Remove.
6040 (vminaq_s32): Remove.
6041 (vmaxaq_s32): Remove.
6042 (vminaq_m_s8): Remove.
6043 (vmaxaq_m_s8): Remove.
6044 (vminaq_m_s16): Remove.
6045 (vmaxaq_m_s16): Remove.
6046 (vminaq_m_s32): Remove.
6047 (vmaxaq_m_s32): Remove.
6048 (__arm_vminaq_s8): Remove.
6049 (__arm_vmaxaq_s8): Remove.
6050 (__arm_vminaq_s16): Remove.
6051 (__arm_vmaxaq_s16): Remove.
6052 (__arm_vminaq_s32): Remove.
6053 (__arm_vmaxaq_s32): Remove.
6054 (__arm_vminaq_m_s8): Remove.
6055 (__arm_vmaxaq_m_s8): Remove.
6056 (__arm_vminaq_m_s16): Remove.
6057 (__arm_vmaxaq_m_s16): Remove.
6058 (__arm_vminaq_m_s32): Remove.
6059 (__arm_vmaxaq_m_s32): Remove.
6060 (__arm_vminaq): Remove.
6061 (__arm_vmaxaq): Remove.
6062 (__arm_vminaq_m): Remove.
6063 (__arm_vmaxaq_m): Remove.
6064
6065 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6066
6067 * config/arm/iterators.md (MVE_VMAXAVMINAQ, MVE_VMAXAVMINAQ_M):
6068 New.
6069 (mve_insn): Add vmaxa, vmina.
6070 (supf): Add VMAXAQ_S, VMAXAQ_M_S, VMINAQ_S, VMINAQ_M_S.
6071 * config/arm/mve.md (mve_vmaxaq_s<mode>, mve_vminaq_s<mode>):
6072 Merge into ...
6073 (@mve_<mve_insn>q_<supf><mode>): ... this.
6074 (mve_vmaxaq_m_s<mode>, mve_vminaq_m_s<mode>): Merge into ...
6075 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
6076
6077 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6078
6079 * config/arm/arm-mve-builtins-shapes.cc (binary_maxamina): New.
6080 * config/arm/arm-mve-builtins-shapes.h (binary_maxamina): New.
6081
6082 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6083
6084 * config/arm/arm-mve-builtins-base.cc (vmaxnmaq, vminnmaq): New.
6085 * config/arm/arm-mve-builtins-base.def (vmaxnmaq, vminnmaq): New.
6086 * config/arm/arm-mve-builtins-base.h (vmaxnmaq, vminnmaq): New.
6087 * config/arm/arm-mve-builtins.cc
6088 (function_instance::has_inactive_argument): Handle vmaxnmaq and
6089 vminnmaq.
6090 * config/arm/arm_mve.h (vminnmaq): Remove.
6091 (vmaxnmaq): Remove.
6092 (vmaxnmaq_m): Remove.
6093 (vminnmaq_m): Remove.
6094 (vminnmaq_f16): Remove.
6095 (vmaxnmaq_f16): Remove.
6096 (vminnmaq_f32): Remove.
6097 (vmaxnmaq_f32): Remove.
6098 (vmaxnmaq_m_f16): Remove.
6099 (vminnmaq_m_f16): Remove.
6100 (vmaxnmaq_m_f32): Remove.
6101 (vminnmaq_m_f32): Remove.
6102 (__arm_vminnmaq_f16): Remove.
6103 (__arm_vmaxnmaq_f16): Remove.
6104 (__arm_vminnmaq_f32): Remove.
6105 (__arm_vmaxnmaq_f32): Remove.
6106 (__arm_vmaxnmaq_m_f16): Remove.
6107 (__arm_vminnmaq_m_f16): Remove.
6108 (__arm_vmaxnmaq_m_f32): Remove.
6109 (__arm_vminnmaq_m_f32): Remove.
6110 (__arm_vminnmaq): Remove.
6111 (__arm_vmaxnmaq): Remove.
6112 (__arm_vmaxnmaq_m): Remove.
6113 (__arm_vminnmaq_m): Remove.
6114
6115 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6116
6117 * config/arm/iterators.md (MVE_VMAXNMA_VMINNMAQ)
6118 (MVE_VMAXNMA_VMINNMAQ_M): New.
6119 (mve_insn): Add vmaxnma, vminnma.
6120 * config/arm/mve.md (mve_vmaxnmaq_f<mode>, mve_vminnmaq_f<mode>):
6121 Merge into ...
6122 (@mve_<mve_insn>q_f<mode>): ... this.
6123 (mve_vmaxnmaq_m_f<mode>, mve_vminnmaq_m_f<mode>): Merge into ...
6124 (@mve_<mve_insn>q_m_f<mode>): ... this.
6125
6126 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6127
6128 * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_F): New.
6129 (vmaxnmavq, vmaxnmvq, vminnmavq, vminnmvq): New.
6130 * config/arm/arm-mve-builtins-base.def (vmaxnmavq, vmaxnmvq)
6131 (vminnmavq, vminnmvq): New.
6132 * config/arm/arm-mve-builtins-base.h (vmaxnmavq, vmaxnmvq)
6133 (vminnmavq, vminnmvq): New.
6134 * config/arm/arm_mve.h (vminnmvq): Remove.
6135 (vminnmavq): Remove.
6136 (vmaxnmvq): Remove.
6137 (vmaxnmavq): Remove.
6138 (vmaxnmavq_p): Remove.
6139 (vmaxnmvq_p): Remove.
6140 (vminnmavq_p): Remove.
6141 (vminnmvq_p): Remove.
6142 (vminnmvq_f16): Remove.
6143 (vminnmavq_f16): Remove.
6144 (vmaxnmvq_f16): Remove.
6145 (vmaxnmavq_f16): Remove.
6146 (vminnmvq_f32): Remove.
6147 (vminnmavq_f32): Remove.
6148 (vmaxnmvq_f32): Remove.
6149 (vmaxnmavq_f32): Remove.
6150 (vmaxnmavq_p_f16): Remove.
6151 (vmaxnmvq_p_f16): Remove.
6152 (vminnmavq_p_f16): Remove.
6153 (vminnmvq_p_f16): Remove.
6154 (vmaxnmavq_p_f32): Remove.
6155 (vmaxnmvq_p_f32): Remove.
6156 (vminnmavq_p_f32): Remove.
6157 (vminnmvq_p_f32): Remove.
6158 (__arm_vminnmvq_f16): Remove.
6159 (__arm_vminnmavq_f16): Remove.
6160 (__arm_vmaxnmvq_f16): Remove.
6161 (__arm_vmaxnmavq_f16): Remove.
6162 (__arm_vminnmvq_f32): Remove.
6163 (__arm_vminnmavq_f32): Remove.
6164 (__arm_vmaxnmvq_f32): Remove.
6165 (__arm_vmaxnmavq_f32): Remove.
6166 (__arm_vmaxnmavq_p_f16): Remove.
6167 (__arm_vmaxnmvq_p_f16): Remove.
6168 (__arm_vminnmavq_p_f16): Remove.
6169 (__arm_vminnmvq_p_f16): Remove.
6170 (__arm_vmaxnmavq_p_f32): Remove.
6171 (__arm_vmaxnmvq_p_f32): Remove.
6172 (__arm_vminnmavq_p_f32): Remove.
6173 (__arm_vminnmvq_p_f32): Remove.
6174 (__arm_vminnmvq): Remove.
6175 (__arm_vminnmavq): Remove.
6176 (__arm_vmaxnmvq): Remove.
6177 (__arm_vmaxnmavq): Remove.
6178 (__arm_vmaxnmavq_p): Remove.
6179 (__arm_vmaxnmvq_p): Remove.
6180 (__arm_vminnmavq_p): Remove.
6181 (__arm_vminnmvq_p): Remove.
6182 (__arm_vmaxnmavq_m): Remove.
6183 (__arm_vmaxnmvq_m): Remove.
6184
6185 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6186
6187 * config/arm/arm-mve-builtins-functions.h
6188 (unspec_mve_function_exact_insn_pred_p): Use code_for_mve_q_p_f.
6189
6190 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6191
6192 * config/arm/iterators.md (MVE_VMAXNMxV_MINNMxVQ)
6193 (MVE_VMAXNMxV_MINNMxVQ_P): New.
6194 (mve_insn): Add vmaxnmav, vmaxnmv, vminnmav, vminnmv.
6195 * config/arm/mve.md (mve_vmaxnmavq_f<mode>, mve_vmaxnmvq_f<mode>)
6196 (mve_vminnmavq_f<mode>, mve_vminnmvq_f<mode>): Merge into ...
6197 (@mve_<mve_insn>q_f<mode>): ... this.
6198 (mve_vmaxnmavq_p_f<mode>, mve_vmaxnmvq_p_f<mode>)
6199 (mve_vminnmavq_p_f<mode>, mve_vminnmvq_p_f<mode>): Merge into ...
6200 (@mve_<mve_insn>q_p_f<mode>): ... this.
6201
6202 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6203
6204 * config/arm/arm-mve-builtins-base.cc (vmaxnmq, vminnmq): New.
6205 * config/arm/arm-mve-builtins-base.def (vmaxnmq, vminnmq): New.
6206 * config/arm/arm-mve-builtins-base.h (vmaxnmq, vminnmq): New.
6207 * config/arm/arm_mve.h (vminnmq): Remove.
6208 (vmaxnmq): Remove.
6209 (vmaxnmq_m): Remove.
6210 (vminnmq_m): Remove.
6211 (vminnmq_x): Remove.
6212 (vmaxnmq_x): Remove.
6213 (vminnmq_f16): Remove.
6214 (vmaxnmq_f16): Remove.
6215 (vminnmq_f32): Remove.
6216 (vmaxnmq_f32): Remove.
6217 (vmaxnmq_m_f32): Remove.
6218 (vmaxnmq_m_f16): Remove.
6219 (vminnmq_m_f32): Remove.
6220 (vminnmq_m_f16): Remove.
6221 (vminnmq_x_f16): Remove.
6222 (vminnmq_x_f32): Remove.
6223 (vmaxnmq_x_f16): Remove.
6224 (vmaxnmq_x_f32): Remove.
6225 (__arm_vminnmq_f16): Remove.
6226 (__arm_vmaxnmq_f16): Remove.
6227 (__arm_vminnmq_f32): Remove.
6228 (__arm_vmaxnmq_f32): Remove.
6229 (__arm_vmaxnmq_m_f32): Remove.
6230 (__arm_vmaxnmq_m_f16): Remove.
6231 (__arm_vminnmq_m_f32): Remove.
6232 (__arm_vminnmq_m_f16): Remove.
6233 (__arm_vminnmq_x_f16): Remove.
6234 (__arm_vminnmq_x_f32): Remove.
6235 (__arm_vmaxnmq_x_f16): Remove.
6236 (__arm_vmaxnmq_x_f32): Remove.
6237 (__arm_vminnmq): Remove.
6238 (__arm_vmaxnmq): Remove.
6239 (__arm_vmaxnmq_m): Remove.
6240 (__arm_vminnmq_m): Remove.
6241 (__arm_vminnmq_x): Remove.
6242 (__arm_vmaxnmq_x): Remove.
6243
6244 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6245
6246 * config/arm/iterators.md (MAX_MIN_F): New.
6247 (MVE_FP_M_BINARY): Add VMAXNMQ_M_F, VMINNMQ_M_F.
6248 (mve_insn): Add vmaxnm, vminnm.
6249 (max_min_f_str): New.
6250 * config/arm/mve.md (mve_vmaxnmq_f<mode>, mve_vminnmq_f<mode>):
6251 Merge into ...
6252 (@mve_<max_min_f_str>q_f<mode>): ... this.
6253 (mve_vmaxnmq_m_f<mode>, mve_vminnmq_m_f<mode>): Merge into ...
6254 (@mve_<mve_insn>q_m_f<mode>): ... this.
6255
6256 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6257
6258 * config/arm/vec-common.md (smin<mode>3): Use VDQWH iterator.
6259 (smax<mode>3): Likewise.
6260
6261 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6262
6263 * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_S_U)
6264 (FUNCTION_PRED_P_S): New.
6265 (vmaxavq, vminavq, vmaxvq, vminvq): New.
6266 * config/arm/arm-mve-builtins-base.def (vmaxavq, vminavq, vmaxvq)
6267 (vminvq): New.
6268 * config/arm/arm-mve-builtins-base.h (vmaxavq, vminavq, vmaxvq)
6269 (vminvq): New.
6270 * config/arm/arm_mve.h (vminvq): Remove.
6271 (vmaxvq): Remove.
6272 (vminvq_p): Remove.
6273 (vmaxvq_p): Remove.
6274 (vminvq_u8): Remove.
6275 (vmaxvq_u8): Remove.
6276 (vminvq_s8): Remove.
6277 (vmaxvq_s8): Remove.
6278 (vminvq_u16): Remove.
6279 (vmaxvq_u16): Remove.
6280 (vminvq_s16): Remove.
6281 (vmaxvq_s16): Remove.
6282 (vminvq_u32): Remove.
6283 (vmaxvq_u32): Remove.
6284 (vminvq_s32): Remove.
6285 (vmaxvq_s32): Remove.
6286 (vminvq_p_u8): Remove.
6287 (vmaxvq_p_u8): Remove.
6288 (vminvq_p_s8): Remove.
6289 (vmaxvq_p_s8): Remove.
6290 (vminvq_p_u16): Remove.
6291 (vmaxvq_p_u16): Remove.
6292 (vminvq_p_s16): Remove.
6293 (vmaxvq_p_s16): Remove.
6294 (vminvq_p_u32): Remove.
6295 (vmaxvq_p_u32): Remove.
6296 (vminvq_p_s32): Remove.
6297 (vmaxvq_p_s32): Remove.
6298 (__arm_vminvq_u8): Remove.
6299 (__arm_vmaxvq_u8): Remove.
6300 (__arm_vminvq_s8): Remove.
6301 (__arm_vmaxvq_s8): Remove.
6302 (__arm_vminvq_u16): Remove.
6303 (__arm_vmaxvq_u16): Remove.
6304 (__arm_vminvq_s16): Remove.
6305 (__arm_vmaxvq_s16): Remove.
6306 (__arm_vminvq_u32): Remove.
6307 (__arm_vmaxvq_u32): Remove.
6308 (__arm_vminvq_s32): Remove.
6309 (__arm_vmaxvq_s32): Remove.
6310 (__arm_vminvq_p_u8): Remove.
6311 (__arm_vmaxvq_p_u8): Remove.
6312 (__arm_vminvq_p_s8): Remove.
6313 (__arm_vmaxvq_p_s8): Remove.
6314 (__arm_vminvq_p_u16): Remove.
6315 (__arm_vmaxvq_p_u16): Remove.
6316 (__arm_vminvq_p_s16): Remove.
6317 (__arm_vmaxvq_p_s16): Remove.
6318 (__arm_vminvq_p_u32): Remove.
6319 (__arm_vmaxvq_p_u32): Remove.
6320 (__arm_vminvq_p_s32): Remove.
6321 (__arm_vmaxvq_p_s32): Remove.
6322 (__arm_vminvq): Remove.
6323 (__arm_vmaxvq): Remove.
6324 (__arm_vminvq_p): Remove.
6325 (__arm_vmaxvq_p): Remove.
6326 (vminavq): Remove.
6327 (vmaxavq): Remove.
6328 (vminavq_p): Remove.
6329 (vmaxavq_p): Remove.
6330 (vminavq_s8): Remove.
6331 (vmaxavq_s8): Remove.
6332 (vminavq_s16): Remove.
6333 (vmaxavq_s16): Remove.
6334 (vminavq_s32): Remove.
6335 (vmaxavq_s32): Remove.
6336 (vminavq_p_s8): Remove.
6337 (vmaxavq_p_s8): Remove.
6338 (vminavq_p_s16): Remove.
6339 (vmaxavq_p_s16): Remove.
6340 (vminavq_p_s32): Remove.
6341 (vmaxavq_p_s32): Remove.
6342 (__arm_vminavq_s8): Remove.
6343 (__arm_vmaxavq_s8): Remove.
6344 (__arm_vminavq_s16): Remove.
6345 (__arm_vmaxavq_s16): Remove.
6346 (__arm_vminavq_s32): Remove.
6347 (__arm_vmaxavq_s32): Remove.
6348 (__arm_vminavq_p_s8): Remove.
6349 (__arm_vmaxavq_p_s8): Remove.
6350 (__arm_vminavq_p_s16): Remove.
6351 (__arm_vmaxavq_p_s16): Remove.
6352 (__arm_vminavq_p_s32): Remove.
6353 (__arm_vmaxavq_p_s32): Remove.
6354 (__arm_vminavq): Remove.
6355 (__arm_vmaxavq): Remove.
6356 (__arm_vminavq_p): Remove.
6357 (__arm_vmaxavq_p): Remove.
6358
6359 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6360
6361 * config/arm/iterators.md (MVE_VMAXVQ_VMINVQ, MVE_VMAXVQ_VMINVQ_P): New.
6362 (mve_insn): Add vmaxav, vmaxv, vminav, vminv.
6363 (supf): Add VMAXAVQ_S, VMAXAVQ_P_S, VMINAVQ_S, VMINAVQ_P_S.
6364 * config/arm/mve.md (mve_vmaxavq_s<mode>, mve_vmaxvq_<supf><mode>)
6365 (mve_vminavq_s<mode>, mve_vminvq_<supf><mode>): Merge into ...
6366 (@mve_<mve_insn>q_<supf><mode>): ... this.
6367 (mve_vmaxavq_p_s<mode>, mve_vmaxvq_p_<supf><mode>)
6368 (mve_vminavq_p_s<mode>, mve_vminvq_p_<supf><mode>): Merge into ...
6369 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
6370
6371 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6372
6373 * config/arm/arm-mve-builtins-functions.h (class
6374 unspec_mve_function_exact_insn_pred_p): New.
6375
6376 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6377
6378 * config/arm/arm-mve-builtins-shapes.cc (binary_maxavminav): New.
6379 * config/arm/arm-mve-builtins-shapes.h (binary_maxavminav): New.
6380
6381 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6382
6383 * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New.
6384 * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New.
6385
6386 2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
6387
6388 * config/aarch64/aarch64-protos.h (aarch64_adjust_reg_alloc_order):
6389 Declare.
6390 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
6391 (ADJUST_REG_ALLOC_ORDER): Likewise.
6392 * config/aarch64/aarch64.cc (aarch64_adjust_reg_alloc_order): New
6393 function.
6394 * config/aarch64/aarch64-sve.md (*vcond_mask_<mode><vpred>): Use
6395 Upa rather than Upl for unpredicated movprfx alternatives.
6396
6397 2023-05-09 Jeff Law <jlaw@ventanamicro>
6398
6399 * config/h8300/testcompare.md: Add peephole2 which uses a memory
6400 load to set flags, thus eliminating a compare against zero.
6401
6402 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6403
6404 * config/arm/arm-mve-builtins-base.cc (vshllbq, vshlltq): New.
6405 * config/arm/arm-mve-builtins-base.def (vshllbq, vshlltq): New.
6406 * config/arm/arm-mve-builtins-base.h (vshllbq, vshlltq): New.
6407 * config/arm/arm_mve.h (vshlltq): Remove.
6408 (vshllbq): Remove.
6409 (vshllbq_m): Remove.
6410 (vshlltq_m): Remove.
6411 (vshllbq_x): Remove.
6412 (vshlltq_x): Remove.
6413 (vshlltq_n_u8): Remove.
6414 (vshllbq_n_u8): Remove.
6415 (vshlltq_n_s8): Remove.
6416 (vshllbq_n_s8): Remove.
6417 (vshlltq_n_u16): Remove.
6418 (vshllbq_n_u16): Remove.
6419 (vshlltq_n_s16): Remove.
6420 (vshllbq_n_s16): Remove.
6421 (vshllbq_m_n_s8): Remove.
6422 (vshllbq_m_n_s16): Remove.
6423 (vshllbq_m_n_u8): Remove.
6424 (vshllbq_m_n_u16): Remove.
6425 (vshlltq_m_n_s8): Remove.
6426 (vshlltq_m_n_s16): Remove.
6427 (vshlltq_m_n_u8): Remove.
6428 (vshlltq_m_n_u16): Remove.
6429 (vshllbq_x_n_s8): Remove.
6430 (vshllbq_x_n_s16): Remove.
6431 (vshllbq_x_n_u8): Remove.
6432 (vshllbq_x_n_u16): Remove.
6433 (vshlltq_x_n_s8): Remove.
6434 (vshlltq_x_n_s16): Remove.
6435 (vshlltq_x_n_u8): Remove.
6436 (vshlltq_x_n_u16): Remove.
6437 (__arm_vshlltq_n_u8): Remove.
6438 (__arm_vshllbq_n_u8): Remove.
6439 (__arm_vshlltq_n_s8): Remove.
6440 (__arm_vshllbq_n_s8): Remove.
6441 (__arm_vshlltq_n_u16): Remove.
6442 (__arm_vshllbq_n_u16): Remove.
6443 (__arm_vshlltq_n_s16): Remove.
6444 (__arm_vshllbq_n_s16): Remove.
6445 (__arm_vshllbq_m_n_s8): Remove.
6446 (__arm_vshllbq_m_n_s16): Remove.
6447 (__arm_vshllbq_m_n_u8): Remove.
6448 (__arm_vshllbq_m_n_u16): Remove.
6449 (__arm_vshlltq_m_n_s8): Remove.
6450 (__arm_vshlltq_m_n_s16): Remove.
6451 (__arm_vshlltq_m_n_u8): Remove.
6452 (__arm_vshlltq_m_n_u16): Remove.
6453 (__arm_vshllbq_x_n_s8): Remove.
6454 (__arm_vshllbq_x_n_s16): Remove.
6455 (__arm_vshllbq_x_n_u8): Remove.
6456 (__arm_vshllbq_x_n_u16): Remove.
6457 (__arm_vshlltq_x_n_s8): Remove.
6458 (__arm_vshlltq_x_n_s16): Remove.
6459 (__arm_vshlltq_x_n_u8): Remove.
6460 (__arm_vshlltq_x_n_u16): Remove.
6461 (__arm_vshlltq): Remove.
6462 (__arm_vshllbq): Remove.
6463 (__arm_vshllbq_m): Remove.
6464 (__arm_vshlltq_m): Remove.
6465 (__arm_vshllbq_x): Remove.
6466 (__arm_vshlltq_x): Remove.
6467
6468 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6469
6470 * config/arm/iterators.md (mve_insn): Add vshllb, vshllt.
6471 (VSHLLBQ_N, VSHLLTQ_N): Remove.
6472 (VSHLLxQ_N): New.
6473 (VSHLLBQ_M_N, VSHLLTQ_M_N): Remove.
6474 (VSHLLxQ_M_N): New.
6475 * config/arm/mve.md (mve_vshllbq_n_<supf><mode>)
6476 (mve_vshlltq_n_<supf><mode>): Merge into ...
6477 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
6478 (mve_vshllbq_m_n_<supf><mode>, mve_vshlltq_m_n_<supf><mode>):
6479 Merge into ...
6480 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
6481
6482 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6483
6484 * config/arm/arm-mve-builtins-shapes.cc (binary_widen_n): New.
6485 * config/arm/arm-mve-builtins-shapes.h (binary_widen_n): New.
6486
6487 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6488
6489 * config/arm/arm-mve-builtins-base.cc (vmovnbq, vmovntq, vqmovnbq)
6490 (vqmovntq, vqmovunbq, vqmovuntq): New.
6491 * config/arm/arm-mve-builtins-base.def (vmovnbq, vmovntq)
6492 (vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq): New.
6493 * config/arm/arm-mve-builtins-base.h (vmovnbq, vmovntq, vqmovnbq)
6494 (vqmovntq, vqmovunbq, vqmovuntq): New.
6495 * config/arm/arm-mve-builtins.cc
6496 (function_instance::has_inactive_argument): Handle vmovnbq,
6497 vmovntq, vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq.
6498 * config/arm/arm_mve.h (vqmovntq): Remove.
6499 (vqmovnbq): Remove.
6500 (vqmovnbq_m): Remove.
6501 (vqmovntq_m): Remove.
6502 (vqmovntq_u16): Remove.
6503 (vqmovnbq_u16): Remove.
6504 (vqmovntq_s16): Remove.
6505 (vqmovnbq_s16): Remove.
6506 (vqmovntq_u32): Remove.
6507 (vqmovnbq_u32): Remove.
6508 (vqmovntq_s32): Remove.
6509 (vqmovnbq_s32): Remove.
6510 (vqmovnbq_m_s16): Remove.
6511 (vqmovntq_m_s16): Remove.
6512 (vqmovnbq_m_u16): Remove.
6513 (vqmovntq_m_u16): Remove.
6514 (vqmovnbq_m_s32): Remove.
6515 (vqmovntq_m_s32): Remove.
6516 (vqmovnbq_m_u32): Remove.
6517 (vqmovntq_m_u32): Remove.
6518 (__arm_vqmovntq_u16): Remove.
6519 (__arm_vqmovnbq_u16): Remove.
6520 (__arm_vqmovntq_s16): Remove.
6521 (__arm_vqmovnbq_s16): Remove.
6522 (__arm_vqmovntq_u32): Remove.
6523 (__arm_vqmovnbq_u32): Remove.
6524 (__arm_vqmovntq_s32): Remove.
6525 (__arm_vqmovnbq_s32): Remove.
6526 (__arm_vqmovnbq_m_s16): Remove.
6527 (__arm_vqmovntq_m_s16): Remove.
6528 (__arm_vqmovnbq_m_u16): Remove.
6529 (__arm_vqmovntq_m_u16): Remove.
6530 (__arm_vqmovnbq_m_s32): Remove.
6531 (__arm_vqmovntq_m_s32): Remove.
6532 (__arm_vqmovnbq_m_u32): Remove.
6533 (__arm_vqmovntq_m_u32): Remove.
6534 (__arm_vqmovntq): Remove.
6535 (__arm_vqmovnbq): Remove.
6536 (__arm_vqmovnbq_m): Remove.
6537 (__arm_vqmovntq_m): Remove.
6538 (vmovntq): Remove.
6539 (vmovnbq): Remove.
6540 (vmovnbq_m): Remove.
6541 (vmovntq_m): Remove.
6542 (vmovntq_u16): Remove.
6543 (vmovnbq_u16): Remove.
6544 (vmovntq_s16): Remove.
6545 (vmovnbq_s16): Remove.
6546 (vmovntq_u32): Remove.
6547 (vmovnbq_u32): Remove.
6548 (vmovntq_s32): Remove.
6549 (vmovnbq_s32): Remove.
6550 (vmovnbq_m_s16): Remove.
6551 (vmovntq_m_s16): Remove.
6552 (vmovnbq_m_u16): Remove.
6553 (vmovntq_m_u16): Remove.
6554 (vmovnbq_m_s32): Remove.
6555 (vmovntq_m_s32): Remove.
6556 (vmovnbq_m_u32): Remove.
6557 (vmovntq_m_u32): Remove.
6558 (__arm_vmovntq_u16): Remove.
6559 (__arm_vmovnbq_u16): Remove.
6560 (__arm_vmovntq_s16): Remove.
6561 (__arm_vmovnbq_s16): Remove.
6562 (__arm_vmovntq_u32): Remove.
6563 (__arm_vmovnbq_u32): Remove.
6564 (__arm_vmovntq_s32): Remove.
6565 (__arm_vmovnbq_s32): Remove.
6566 (__arm_vmovnbq_m_s16): Remove.
6567 (__arm_vmovntq_m_s16): Remove.
6568 (__arm_vmovnbq_m_u16): Remove.
6569 (__arm_vmovntq_m_u16): Remove.
6570 (__arm_vmovnbq_m_s32): Remove.
6571 (__arm_vmovntq_m_s32): Remove.
6572 (__arm_vmovnbq_m_u32): Remove.
6573 (__arm_vmovntq_m_u32): Remove.
6574 (__arm_vmovntq): Remove.
6575 (__arm_vmovnbq): Remove.
6576 (__arm_vmovnbq_m): Remove.
6577 (__arm_vmovntq_m): Remove.
6578 (vqmovuntq): Remove.
6579 (vqmovunbq): Remove.
6580 (vqmovunbq_m): Remove.
6581 (vqmovuntq_m): Remove.
6582 (vqmovuntq_s16): Remove.
6583 (vqmovunbq_s16): Remove.
6584 (vqmovuntq_s32): Remove.
6585 (vqmovunbq_s32): Remove.
6586 (vqmovunbq_m_s16): Remove.
6587 (vqmovuntq_m_s16): Remove.
6588 (vqmovunbq_m_s32): Remove.
6589 (vqmovuntq_m_s32): Remove.
6590 (__arm_vqmovuntq_s16): Remove.
6591 (__arm_vqmovunbq_s16): Remove.
6592 (__arm_vqmovuntq_s32): Remove.
6593 (__arm_vqmovunbq_s32): Remove.
6594 (__arm_vqmovunbq_m_s16): Remove.
6595 (__arm_vqmovuntq_m_s16): Remove.
6596 (__arm_vqmovunbq_m_s32): Remove.
6597 (__arm_vqmovuntq_m_s32): Remove.
6598 (__arm_vqmovuntq): Remove.
6599 (__arm_vqmovunbq): Remove.
6600 (__arm_vqmovunbq_m): Remove.
6601 (__arm_vqmovuntq_m): Remove.
6602
6603 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6604
6605 * config/arm/iterators.md (MVE_MOVN, MVE_MOVN_M): New.
6606 (mve_insn): Add vmovnb, vmovnt, vqmovnb, vqmovnt, vqmovunb,
6607 vqmovunt.
6608 (isu): Likewise.
6609 (supf): Add VQMOVUNBQ_M_S, VQMOVUNBQ_S, VQMOVUNTQ_M_S,
6610 VQMOVUNTQ_S.
6611 * config/arm/mve.md (mve_vmovnbq_<supf><mode>)
6612 (mve_vmovntq_<supf><mode>, mve_vqmovnbq_<supf><mode>)
6613 (mve_vqmovntq_<supf><mode>, mve_vqmovunbq_s<mode>)
6614 (mve_vqmovuntq_s<mode>): Merge into ...
6615 (@mve_<mve_insn>q_<supf><mode>): ... this.
6616 (mve_vmovnbq_m_<supf><mode>, mve_vmovntq_m_<supf><mode>)
6617 (mve_vqmovnbq_m_<supf><mode>, mve_vqmovntq_m_<supf><mode>)
6618 (mve_vqmovunbq_m_s<mode>, mve_vqmovuntq_m_s<mode>): Merge into ...
6619 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
6620
6621 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6622
6623 * config/arm/arm-mve-builtins-shapes.cc (binary_move_narrow): New.
6624 (binary_move_narrow_unsigned): New.
6625 * config/arm/arm-mve-builtins-shapes.h (binary_move_narrow): New.
6626 (binary_move_narrow_unsigned): New.
6627
6628 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6629
6630 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_F): New.
6631 (vrndaq, vrndmq, vrndnq, vrndpq, vrndq, vrndxq): New.
6632 * config/arm/arm-mve-builtins-base.def (vrndaq, vrndmq, vrndnq)
6633 (vrndpq, vrndq, vrndxq): New.
6634 * config/arm/arm-mve-builtins-base.h (vrndaq, vrndmq, vrndnq)
6635 (vrndpq, vrndq, vrndxq): New.
6636 * config/arm/arm_mve.h (vrndxq): Remove.
6637 (vrndq): Remove.
6638 (vrndpq): Remove.
6639 (vrndnq): Remove.
6640 (vrndmq): Remove.
6641 (vrndaq): Remove.
6642 (vrndaq_m): Remove.
6643 (vrndmq_m): Remove.
6644 (vrndnq_m): Remove.
6645 (vrndpq_m): Remove.
6646 (vrndq_m): Remove.
6647 (vrndxq_m): Remove.
6648 (vrndq_x): Remove.
6649 (vrndnq_x): Remove.
6650 (vrndmq_x): Remove.
6651 (vrndpq_x): Remove.
6652 (vrndaq_x): Remove.
6653 (vrndxq_x): Remove.
6654 (vrndxq_f16): Remove.
6655 (vrndxq_f32): Remove.
6656 (vrndq_f16): Remove.
6657 (vrndq_f32): Remove.
6658 (vrndpq_f16): Remove.
6659 (vrndpq_f32): Remove.
6660 (vrndnq_f16): Remove.
6661 (vrndnq_f32): Remove.
6662 (vrndmq_f16): Remove.
6663 (vrndmq_f32): Remove.
6664 (vrndaq_f16): Remove.
6665 (vrndaq_f32): Remove.
6666 (vrndaq_m_f16): Remove.
6667 (vrndmq_m_f16): Remove.
6668 (vrndnq_m_f16): Remove.
6669 (vrndpq_m_f16): Remove.
6670 (vrndq_m_f16): Remove.
6671 (vrndxq_m_f16): Remove.
6672 (vrndaq_m_f32): Remove.
6673 (vrndmq_m_f32): Remove.
6674 (vrndnq_m_f32): Remove.
6675 (vrndpq_m_f32): Remove.
6676 (vrndq_m_f32): Remove.
6677 (vrndxq_m_f32): Remove.
6678 (vrndq_x_f16): Remove.
6679 (vrndq_x_f32): Remove.
6680 (vrndnq_x_f16): Remove.
6681 (vrndnq_x_f32): Remove.
6682 (vrndmq_x_f16): Remove.
6683 (vrndmq_x_f32): Remove.
6684 (vrndpq_x_f16): Remove.
6685 (vrndpq_x_f32): Remove.
6686 (vrndaq_x_f16): Remove.
6687 (vrndaq_x_f32): Remove.
6688 (vrndxq_x_f16): Remove.
6689 (vrndxq_x_f32): Remove.
6690 (__arm_vrndxq_f16): Remove.
6691 (__arm_vrndxq_f32): Remove.
6692 (__arm_vrndq_f16): Remove.
6693 (__arm_vrndq_f32): Remove.
6694 (__arm_vrndpq_f16): Remove.
6695 (__arm_vrndpq_f32): Remove.
6696 (__arm_vrndnq_f16): Remove.
6697 (__arm_vrndnq_f32): Remove.
6698 (__arm_vrndmq_f16): Remove.
6699 (__arm_vrndmq_f32): Remove.
6700 (__arm_vrndaq_f16): Remove.
6701 (__arm_vrndaq_f32): Remove.
6702 (__arm_vrndaq_m_f16): Remove.
6703 (__arm_vrndmq_m_f16): Remove.
6704 (__arm_vrndnq_m_f16): Remove.
6705 (__arm_vrndpq_m_f16): Remove.
6706 (__arm_vrndq_m_f16): Remove.
6707 (__arm_vrndxq_m_f16): Remove.
6708 (__arm_vrndaq_m_f32): Remove.
6709 (__arm_vrndmq_m_f32): Remove.
6710 (__arm_vrndnq_m_f32): Remove.
6711 (__arm_vrndpq_m_f32): Remove.
6712 (__arm_vrndq_m_f32): Remove.
6713 (__arm_vrndxq_m_f32): Remove.
6714 (__arm_vrndq_x_f16): Remove.
6715 (__arm_vrndq_x_f32): Remove.
6716 (__arm_vrndnq_x_f16): Remove.
6717 (__arm_vrndnq_x_f32): Remove.
6718 (__arm_vrndmq_x_f16): Remove.
6719 (__arm_vrndmq_x_f32): Remove.
6720 (__arm_vrndpq_x_f16): Remove.
6721 (__arm_vrndpq_x_f32): Remove.
6722 (__arm_vrndaq_x_f16): Remove.
6723 (__arm_vrndaq_x_f32): Remove.
6724 (__arm_vrndxq_x_f16): Remove.
6725 (__arm_vrndxq_x_f32): Remove.
6726 (__arm_vrndxq): Remove.
6727 (__arm_vrndq): Remove.
6728 (__arm_vrndpq): Remove.
6729 (__arm_vrndnq): Remove.
6730 (__arm_vrndmq): Remove.
6731 (__arm_vrndaq): Remove.
6732 (__arm_vrndaq_m): Remove.
6733 (__arm_vrndmq_m): Remove.
6734 (__arm_vrndnq_m): Remove.
6735 (__arm_vrndpq_m): Remove.
6736 (__arm_vrndq_m): Remove.
6737 (__arm_vrndxq_m): Remove.
6738 (__arm_vrndq_x): Remove.
6739 (__arm_vrndnq_x): Remove.
6740 (__arm_vrndmq_x): Remove.
6741 (__arm_vrndpq_x): Remove.
6742 (__arm_vrndaq_x): Remove.
6743 (__arm_vrndxq_x): Remove.
6744
6745 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6746
6747 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N_NO_U_F): New.
6748 (vabsq, vnegq, vclsq, vclzq, vqabsq, vqnegq): New.
6749 * config/arm/arm-mve-builtins-base.def (vabsq, vnegq, vclsq)
6750 (vclzq, vqabsq, vqnegq): New.
6751 * config/arm/arm-mve-builtins-base.h (vabsq, vnegq, vclsq, vclzq)
6752 (vqabsq, vqnegq): New.
6753 * config/arm/arm_mve.h (vabsq): Remove.
6754 (vabsq_m): Remove.
6755 (vabsq_x): Remove.
6756 (vabsq_f16): Remove.
6757 (vabsq_f32): Remove.
6758 (vabsq_s8): Remove.
6759 (vabsq_s16): Remove.
6760 (vabsq_s32): Remove.
6761 (vabsq_m_s8): Remove.
6762 (vabsq_m_s16): Remove.
6763 (vabsq_m_s32): Remove.
6764 (vabsq_m_f16): Remove.
6765 (vabsq_m_f32): Remove.
6766 (vabsq_x_s8): Remove.
6767 (vabsq_x_s16): Remove.
6768 (vabsq_x_s32): Remove.
6769 (vabsq_x_f16): Remove.
6770 (vabsq_x_f32): Remove.
6771 (__arm_vabsq_s8): Remove.
6772 (__arm_vabsq_s16): Remove.
6773 (__arm_vabsq_s32): Remove.
6774 (__arm_vabsq_m_s8): Remove.
6775 (__arm_vabsq_m_s16): Remove.
6776 (__arm_vabsq_m_s32): Remove.
6777 (__arm_vabsq_x_s8): Remove.
6778 (__arm_vabsq_x_s16): Remove.
6779 (__arm_vabsq_x_s32): Remove.
6780 (__arm_vabsq_f16): Remove.
6781 (__arm_vabsq_f32): Remove.
6782 (__arm_vabsq_m_f16): Remove.
6783 (__arm_vabsq_m_f32): Remove.
6784 (__arm_vabsq_x_f16): Remove.
6785 (__arm_vabsq_x_f32): Remove.
6786 (__arm_vabsq): Remove.
6787 (__arm_vabsq_m): Remove.
6788 (__arm_vabsq_x): Remove.
6789 (vnegq): Remove.
6790 (vnegq_m): Remove.
6791 (vnegq_x): Remove.
6792 (vnegq_f16): Remove.
6793 (vnegq_f32): Remove.
6794 (vnegq_s8): Remove.
6795 (vnegq_s16): Remove.
6796 (vnegq_s32): Remove.
6797 (vnegq_m_s8): Remove.
6798 (vnegq_m_s16): Remove.
6799 (vnegq_m_s32): Remove.
6800 (vnegq_m_f16): Remove.
6801 (vnegq_m_f32): Remove.
6802 (vnegq_x_s8): Remove.
6803 (vnegq_x_s16): Remove.
6804 (vnegq_x_s32): Remove.
6805 (vnegq_x_f16): Remove.
6806 (vnegq_x_f32): Remove.
6807 (__arm_vnegq_s8): Remove.
6808 (__arm_vnegq_s16): Remove.
6809 (__arm_vnegq_s32): Remove.
6810 (__arm_vnegq_m_s8): Remove.
6811 (__arm_vnegq_m_s16): Remove.
6812 (__arm_vnegq_m_s32): Remove.
6813 (__arm_vnegq_x_s8): Remove.
6814 (__arm_vnegq_x_s16): Remove.
6815 (__arm_vnegq_x_s32): Remove.
6816 (__arm_vnegq_f16): Remove.
6817 (__arm_vnegq_f32): Remove.
6818 (__arm_vnegq_m_f16): Remove.
6819 (__arm_vnegq_m_f32): Remove.
6820 (__arm_vnegq_x_f16): Remove.
6821 (__arm_vnegq_x_f32): Remove.
6822 (__arm_vnegq): Remove.
6823 (__arm_vnegq_m): Remove.
6824 (__arm_vnegq_x): Remove.
6825 (vclsq): Remove.
6826 (vclsq_m): Remove.
6827 (vclsq_x): Remove.
6828 (vclsq_s8): Remove.
6829 (vclsq_s16): Remove.
6830 (vclsq_s32): Remove.
6831 (vclsq_m_s8): Remove.
6832 (vclsq_m_s16): Remove.
6833 (vclsq_m_s32): Remove.
6834 (vclsq_x_s8): Remove.
6835 (vclsq_x_s16): Remove.
6836 (vclsq_x_s32): Remove.
6837 (__arm_vclsq_s8): Remove.
6838 (__arm_vclsq_s16): Remove.
6839 (__arm_vclsq_s32): Remove.
6840 (__arm_vclsq_m_s8): Remove.
6841 (__arm_vclsq_m_s16): Remove.
6842 (__arm_vclsq_m_s32): Remove.
6843 (__arm_vclsq_x_s8): Remove.
6844 (__arm_vclsq_x_s16): Remove.
6845 (__arm_vclsq_x_s32): Remove.
6846 (__arm_vclsq): Remove.
6847 (__arm_vclsq_m): Remove.
6848 (__arm_vclsq_x): Remove.
6849 (vclzq): Remove.
6850 (vclzq_m): Remove.
6851 (vclzq_x): Remove.
6852 (vclzq_s8): Remove.
6853 (vclzq_s16): Remove.
6854 (vclzq_s32): Remove.
6855 (vclzq_u8): Remove.
6856 (vclzq_u16): Remove.
6857 (vclzq_u32): Remove.
6858 (vclzq_m_u8): Remove.
6859 (vclzq_m_s8): Remove.
6860 (vclzq_m_u16): Remove.
6861 (vclzq_m_s16): Remove.
6862 (vclzq_m_u32): Remove.
6863 (vclzq_m_s32): Remove.
6864 (vclzq_x_s8): Remove.
6865 (vclzq_x_s16): Remove.
6866 (vclzq_x_s32): Remove.
6867 (vclzq_x_u8): Remove.
6868 (vclzq_x_u16): Remove.
6869 (vclzq_x_u32): Remove.
6870 (__arm_vclzq_s8): Remove.
6871 (__arm_vclzq_s16): Remove.
6872 (__arm_vclzq_s32): Remove.
6873 (__arm_vclzq_u8): Remove.
6874 (__arm_vclzq_u16): Remove.
6875 (__arm_vclzq_u32): Remove.
6876 (__arm_vclzq_m_u8): Remove.
6877 (__arm_vclzq_m_s8): Remove.
6878 (__arm_vclzq_m_u16): Remove.
6879 (__arm_vclzq_m_s16): Remove.
6880 (__arm_vclzq_m_u32): Remove.
6881 (__arm_vclzq_m_s32): Remove.
6882 (__arm_vclzq_x_s8): Remove.
6883 (__arm_vclzq_x_s16): Remove.
6884 (__arm_vclzq_x_s32): Remove.
6885 (__arm_vclzq_x_u8): Remove.
6886 (__arm_vclzq_x_u16): Remove.
6887 (__arm_vclzq_x_u32): Remove.
6888 (__arm_vclzq): Remove.
6889 (__arm_vclzq_m): Remove.
6890 (__arm_vclzq_x): Remove.
6891 (vqabsq): Remove.
6892 (vqnegq): Remove.
6893 (vqnegq_m): Remove.
6894 (vqabsq_m): Remove.
6895 (vqabsq_s8): Remove.
6896 (vqabsq_s16): Remove.
6897 (vqabsq_s32): Remove.
6898 (vqnegq_s8): Remove.
6899 (vqnegq_s16): Remove.
6900 (vqnegq_s32): Remove.
6901 (vqnegq_m_s8): Remove.
6902 (vqabsq_m_s8): Remove.
6903 (vqnegq_m_s16): Remove.
6904 (vqabsq_m_s16): Remove.
6905 (vqnegq_m_s32): Remove.
6906 (vqabsq_m_s32): Remove.
6907 (__arm_vqabsq_s8): Remove.
6908 (__arm_vqabsq_s16): Remove.
6909 (__arm_vqabsq_s32): Remove.
6910 (__arm_vqnegq_s8): Remove.
6911 (__arm_vqnegq_s16): Remove.
6912 (__arm_vqnegq_s32): Remove.
6913 (__arm_vqnegq_m_s8): Remove.
6914 (__arm_vqabsq_m_s8): Remove.
6915 (__arm_vqnegq_m_s16): Remove.
6916 (__arm_vqabsq_m_s16): Remove.
6917 (__arm_vqnegq_m_s32): Remove.
6918 (__arm_vqabsq_m_s32): Remove.
6919 (__arm_vqabsq): Remove.
6920 (__arm_vqnegq): Remove.
6921 (__arm_vqnegq_m): Remove.
6922 (__arm_vqabsq_m): Remove.
6923
6924 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6925
6926 * config/arm/iterators.md (MVE_INT_M_UNARY, MVE_INT_UNARY)
6927 (MVE_FP_UNARY, MVE_FP_M_UNARY): New.
6928 (mve_insn): Add vabs, vcls, vclz, vneg, vqabs, vqneg, vrnda,
6929 vrndm, vrndn, vrndp, vrnd, vrndx.
6930 (isu): Add VABSQ_M_S, VCLSQ_M_S, VCLZQ_M_S, VCLZQ_M_U, VNEGQ_M_S,
6931 VQABSQ_M_S, VQNEGQ_M_S.
6932 (mve_mnemo): New.
6933 * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrndxq_f<mode>)
6934 (mve_vrndq_f<mode>, mve_vrndpq_f<mode>, mve_vrndnq_f<mode>)
6935 (mve_vrndmq_f<mode>, mve_vrndaq_f<mode>): Merge into ...
6936 (@mve_<mve_insn>q_f<mode>): ... this.
6937 (mve_vnegq_f<mode>, mve_vabsq_f<mode>): Merge into ...
6938 (mve_v<absneg_str>q_f<mode>): ... this.
6939 (mve_vnegq_s<mode>, mve_vabsq_s<mode>): Merge into ...
6940 (mve_v<absneg_str>q_s<mode>): ... this.
6941 (mve_vclsq_s<mode>, mve_vqnegq_s<mode>, mve_vqabsq_s<mode>): Merge into ...
6942 (@mve_<mve_insn>q_<supf><mode>): ... this.
6943 (mve_vabsq_m_s<mode>, mve_vclsq_m_s<mode>)
6944 (mve_vclzq_m_<supf><mode>, mve_vnegq_m_s<mode>)
6945 (mve_vqabsq_m_s<mode>, mve_vqnegq_m_s<mode>): Merge into ...
6946 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
6947 (mve_vabsq_m_f<mode>, mve_vnegq_m_f<mode>, mve_vrndaq_m_f<mode>)
6948 (mve_vrndmq_m_f<mode>, mve_vrndnq_m_f<mode>, mve_vrndpq_m_f<mode>)
6949 (mve_vrndxq_m_f<mode>): Merge into ...
6950 (@mve_<mve_insn>q_m_f<mode>): ... this.
6951
6952 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6953
6954 * config/arm/arm-mve-builtins-shapes.cc (unary): New.
6955 * config/arm/arm-mve-builtins-shapes.h (unary): New.
6956
6957 2023-05-09 Jakub Jelinek <jakub@redhat.com>
6958
6959 * mux-utils.h: Fix comment typo, avoides -> avoids.
6960
6961 2023-05-09 Jakub Jelinek <jakub@redhat.com>
6962
6963 PR tree-optimization/109778
6964 * wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on
6965 wi::zext (x, width) rather than x if width != precision, rather
6966 than using wi::zext (right, width) after the shift.
6967 * tree-ssa-ccp.cc (bit_value_binop): Call wi::ext on the results
6968 of wi::lrotate or wi::rrotate.
6969
6970 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
6971
6972 * genmatch.cc (get_out_file): Make static and rename to ...
6973 (choose_output): ... this. Reimplement. Update all uses ...
6974 (decision_tree::gen): ... here and ...
6975 (main): ... here.
6976
6977 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
6978
6979 * genmatch.cc (showUsage): Reimplement as ...
6980 (usage): ...this. Adjust all uses.
6981 (main): Print usage when no arguments. Add missing 'return 1'.
6982
6983 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
6984
6985 * genmatch.cc (header_file): Make static.
6986 (emit_func): Rename to...
6987 (fp_decl): ... this. Adjust all uses.
6988 (fp_decl_done): New function. Use it...
6989 (decision_tree::gen): ... here and...
6990 (write_predicate): ... here.
6991 (main): Adjust.
6992
6993 2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
6994
6995 * ira-conflicts.cc (can_use_same_reg_p): Skip over non-matching
6996 earlyclobbers.
6997
6998 2023-05-08 Roger Sayle <roger@nextmovesoftware.com>
6999 Uros Bizjak <ubizjak@gmail.com>
7000
7001 * config/i386/i386.md (any_or_plus): Move definition earlier.
7002 (*insvti_highpart_1): New define_insn_and_split to overwrite
7003 (insv) the highpart of a TImode register/memory.
7004
7005 2023-05-08 Eugene Rozenfeld <erozen@microsoft.com>
7006
7007 * auto-profile.cc (auto_profile): Check todo from early_inline
7008 to see if cleanup_tree_vfg needs to be called.
7009 (early_inline): Return todo from early_inliner.
7010
7011 2023-05-08 Kito Cheng <kito.cheng@sifive.com>
7012
7013 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vector_info):
7014 New.
7015 (pass_vsetvl::get_block_info): New.
7016 (pass_vsetvl::update_vector_info): New.
7017 (pass_vsetvl::simple_vsetvl): Use get_vector_info.
7018 (pass_vsetvl::compute_local_backward_infos): Ditto.
7019 (pass_vsetvl::transfer_before): Ditto.
7020 (pass_vsetvl::transfer_after): Ditto.
7021 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
7022 (pass_vsetvl::local_eliminate_vsetvl_insn): Ditto.
7023 (pass_vsetvl::cleanup_insns): Ditto.
7024 (pass_vsetvl::compute_local_backward_infos): Use
7025 update_vector_info.
7026
7027 2023-05-08 Jeff Law <jlaw@ventanamicro>
7028
7029 * config/stormy16/stormy16.md (zero_extendhisi2): Fix length.
7030
7031 2023-05-08 Richard Biener <rguenther@suse.de>
7032 Michael Meissner <meissner@linux.ibm.com>
7033
7034 PR middle-end/108623
7035 * tree-core.h (tree_type_common): Bump up precision field to 16 bits.
7036 Align bit fields > 1 bit to at least an 8-bit boundary.
7037
7038 2023-05-08 Andrew Pinski <apinski@marvell.com>
7039
7040 PR tree-optimization/109424
7041 PR tree-optimization/59424
7042 * tree-ssa-phiopt.cc (factor_out_conditional_conversion): Rename to ...
7043 (factor_out_conditional_operation): This and add support for all unary
7044 operations.
7045 (pass_phiopt::execute): Update call to factor_out_conditional_conversion
7046 to call factor_out_conditional_operation instead.
7047
7048 2023-05-08 Andrew Pinski <apinski@marvell.com>
7049
7050 * tree-ssa-phiopt.cc (pass_phiopt::execute): Loop
7051 over factor_out_conditional_conversion.
7052
7053 2023-05-08 Andrew Pinski <apinski@marvell.com>
7054
7055 PR tree-optimization/49959
7056 PR tree-optimization/103771
7057 * tree-ssa-phiopt.cc (pass_phiopt::execute): Support
7058 Diamond shapped bb form for factor_out_conditional_conversion.
7059
7060 2023-05-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7061
7062 * config/riscv/autovec.md (movmisalign<mode>): New pattern.
7063 * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): Delete.
7064 (riscv_vector_get_mask_mode): Ditto.
7065 (get_mask_policy_no_pred): Ditto.
7066 (get_tail_policy_no_pred): Ditto.
7067 (get_mask_mode): New function.
7068 * config/riscv/riscv-v.cc (get_mask_policy_no_pred): Delete.
7069 (get_tail_policy_no_pred): Ditto.
7070 (riscv_vector_mask_mode_p): Ditto.
7071 (riscv_vector_get_mask_mode): Ditto.
7072 (get_mask_mode): New function.
7073 * config/riscv/riscv-vector-builtins.cc (use_real_merge_p): Remove
7074 global extern.
7075 (get_tail_policy_for_pred): Ditto.
7076 * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred): Ditto.
7077 (get_mask_policy_for_pred): Ditto
7078 * config/riscv/riscv.cc (riscv_get_mask_mode): Refine codes.
7079
7080 2023-05-08 Kito Cheng <kito.cheng@sifive.com>
7081
7082 * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi): New.
7083 (riscv_select_multilib): New.
7084 (riscv_compute_multilib): Extract logic to riscv_select_multilib and
7085 also handle select_by_abi.
7086 * config/riscv/elf.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Change it
7087 to select_by_abi_arch_cmodel from 1.
7088 * config/riscv/linux.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Define.
7089 * config/riscv/riscv-opts.h (enum riscv_multilib_select_kind): New.
7090
7091 2023-05-08 Alexander Monakov <amonakov@ispras.ru>
7092
7093 * Makefile.in: (gimple-match-head.o-warn): Remove.
7094 (GIMPLE_MATCH_PD_SEQ_SRC): Do not depend on
7095 gimple-match-exports.cc.
7096 (gimple-match-auto.h): Only depend on s-gimple-match.
7097 (generic-match-auto.h): Likewise.
7098
7099 2023-05-08 Andrew Pinski <apinski@marvell.com>
7100
7101 PR tree-optimization/109691
7102 * tree-ssa-dce.cc (simple_dce_from_worklist): Add need_eh_cleanup
7103 argument.
7104 If the removed statement can throw, have need_eh_cleanup
7105 include the bb of that statement.
7106 * tree-ssa-dce.h (simple_dce_from_worklist): Update declaration.
7107 * tree-ssa-propagate.cc (struct prop_stats_d): Remove
7108 num_dce.
7109 (substitute_and_fold_dom_walker::substitute_and_fold_dom_walker):
7110 Initialize dceworklist instead of stmts_to_remove.
7111 (substitute_and_fold_dom_walker::~substitute_and_fold_dom_walker):
7112 Destore dceworklist instead of stmts_to_remove.
7113 (substitute_and_fold_dom_walker::before_dom_children):
7114 Set dceworklist instead of adding to stmts_to_remove.
7115 (substitute_and_fold_engine::substitute_and_fold):
7116 Call simple_dce_from_worklist instead of poping
7117 from the list.
7118 Don't update the stat on removal statements.
7119
7120 2023-05-07 Andrew Pinski <apinski@marvell.com>
7121
7122 PR target/109762
7123 * config/aarch64/aarch64-builtins.cc (aarch64_simd_switcher::aarch64_simd_switcher):
7124 Change argument type to aarch64_feature_flags.
7125 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Change
7126 constructor argument type to aarch64_feature_flags.
7127 Change m_old_asm_isa_flags to be aarch64_feature_flags.
7128
7129 2023-05-07 Jiufu Guo <guojiufu@linux.ibm.com>
7130
7131 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Generate
7132 more parallel code if can_create_pseudo_p.
7133
7134 2023-05-07 Roger Sayle <roger@nextmovesoftware.com>
7135
7136 PR target/43644
7137 * lower-subreg.cc (resolve_simple_move): Don't emit a clobber
7138 immediately before moving a multi-word register by parts.
7139
7140 2023-05-06 Jeff Law <jlaw@ventanamicro>
7141
7142 * config/riscv/riscv-v.cc (riscv_vector_preferred_simd_mode): Delete.
7143
7144 2023-05-06 Michael Collison <collison@rivosinc.com>
7145
7146 * tree-vect-slp.cc (can_duplicate_and_interleave_p):
7147 Check that GET_MODE_NUNITS is a multiple of 2.
7148
7149 2023-05-06 Michael Collison <collison@rivosinc.com>
7150
7151 * config/riscv/riscv.cc
7152 (riscv_estimated_poly_value): Implement
7153 TARGET_ESTIMATED_POLY_VALUE.
7154 (riscv_preferred_simd_mode): Implement
7155 TARGET_VECTORIZE_PREFERRED_SIMD_MODE.
7156 (riscv_get_mask_mode): Implement TARGET_VECTORIZE_GET_MASK_MODE.
7157 (riscv_empty_mask_is_expensive): Implement
7158 TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE.
7159 (riscv_vectorize_create_costs): Implement
7160 TARGET_VECTORIZE_CREATE_COSTS.
7161 (riscv_support_vector_misalignment): Implement
7162 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT.
7163 (TARGET_ESTIMATED_POLY_VALUE): Register target macro.
7164 (TARGET_VECTORIZE_GET_MASK_MODE): Ditto.
7165 (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Ditto.
7166 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Ditto.
7167
7168 2023-05-06 Jeff Law <jlaw@ventanamicro>
7169
7170 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Remove
7171 duplicate definition.
7172
7173 2023-05-06 Michael Collison <collison@rivosinc.com>
7174
7175 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): New function.
7176 (riscv_vector_preferred_simd_mode): Ditto.
7177 (get_mask_policy_no_pred): Ditto.
7178 (get_tail_policy_no_pred): Ditto.
7179 (riscv_vector_mask_mode_p): Ditto.
7180 (riscv_vector_get_mask_mode): Ditto.
7181
7182 2023-05-06 Michael Collison <collison@rivosinc.com>
7183
7184 * config/riscv/riscv-vector-builtins.cc (get_tail_policy_for_pred):
7185 Remove static declaration to to make externally visible.
7186 (get_mask_policy_for_pred): Ditto.
7187 * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred):
7188 New external declaration.
7189 (get_mask_policy_for_pred): Ditto.
7190
7191 2023-05-06 Michael Collison <collison@rivosinc.com>
7192
7193 * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): New.
7194 (riscv_vector_get_mask_mode): Ditto.
7195 (get_mask_policy_no_pred): Ditto.
7196 (get_tail_policy_no_pred): Ditto.
7197
7198 2023-05-06 Xi Ruoyao <xry111@xry111.site>
7199
7200 * config/loongarch/loongarch.h (struct machine_function): Add
7201 reg_is_wrapped_separately array for register wrapping
7202 information.
7203 * config/loongarch/loongarch.cc
7204 (loongarch_get_separate_components): New function.
7205 (loongarch_components_for_bb): Likewise.
7206 (loongarch_disqualify_components): Likewise.
7207 (loongarch_process_components): Likewise.
7208 (loongarch_emit_prologue_components): Likewise.
7209 (loongarch_emit_epilogue_components): Likewise.
7210 (loongarch_set_handled_components): Likewise.
7211 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
7212 (TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
7213 (TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
7214 (TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
7215 (TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
7216 (TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
7217 (loongarch_for_each_saved_reg): Skip registers that are wrapped
7218 separately.
7219
7220 2023-05-06 Xi Ruoyao <xry111@xry111.site>
7221
7222 PR other/109522
7223 * Makefile.in (s-macro_list): Pass -nostdinc to
7224 $(GCC_FOR_TARGET).
7225
7226 2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7227
7228 * config/riscv/riscv-protos.h (preferred_simd_mode): New function.
7229 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Ditto.
7230 (preferred_simd_mode): Ditto.
7231 * config/riscv/riscv.cc (riscv_get_arg_info): Handle RVV type in function arg.
7232 (riscv_convert_vector_bits): Adjust for RVV auto-vectorization.
7233 (riscv_preferred_simd_mode): New function.
7234 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): New target hook support.
7235 * config/riscv/vector.md: Add autovec.md.
7236 * config/riscv/autovec.md: New file.
7237
7238 2023-05-06 Jakub Jelinek <jakub@redhat.com>
7239
7240 * real.h (dconst_pi): Define.
7241 (dconst_e_ptr): Formatting fix.
7242 (dconst_pi_ptr): Declare.
7243 * real.cc (dconst_pi_ptr): New function.
7244 * gimple-range-op.cc (cfn_sincos::fold_range): Intersect the generic
7245 boundaries range with range computed from sin/cos of the particular
7246 bounds if the argument range is shorter than 2*pi.
7247 (cfn_sincos::op1_range): Take bulps into account when determining
7248 which result ranges are always invalid or behave like known NAN.
7249
7250 2023-05-06 Aldy Hernandez <aldyh@redhat.com>
7251
7252 * gimple-range-cache.cc (sbr_sparse_bitmap::set_bb_range): Do not
7253 pass type to vrange_storage::equal_p.
7254 * value-range-storage.cc (vrange_storage::equal_p): Remove type.
7255 (irange_storage::equal_p): Same.
7256 (frange_storage::equal_p): Same.
7257 * value-range-storage.h (class frange_storage): Same.
7258
7259 2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7260
7261 PR target/109748
7262 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): Remove it.
7263 (pass_vsetvl::local_eliminate_vsetvl_insn): New function.
7264
7265 2023-05-06 liuhongt <hongtao.liu@intel.com>
7266
7267 * combine.cc (maybe_swap_commutative_operands): Canonicalize
7268 vec_merge when mask is constant.
7269 * doc/md.texi: Document vec_merge canonicalization.
7270
7271 2023-05-06 Jakub Jelinek <jakub@redhat.com>
7272
7273 * value-range.h (frange_arithmetic): Declare.
7274 * range-op-float.cc (frange_arithmetic): No longer static.
7275 * gimple-range-op.cc (frange_mpfr_arg1): New function.
7276 (cfn_sqrt::fold_range): Intersect the generic boundaries range
7277 with range computed from sqrt of the particular bounds.
7278 (cfn_sqrt::op1_range): Intersect the generic boundaries range
7279 with range computed from squared particular bounds.
7280
7281 2023-05-06 Jakub Jelinek <jakub@redhat.com>
7282
7283 * Makefile.in (check_p_numbers): Rename to one_to_9999, move
7284 earlier with helper variables also renamed.
7285 (MATCH_SPLUT_SEQ): Use $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999))
7286 instead of $(shell seq 1 $(NUM_MATCH_SPLITS)).
7287 (check_p_subdirs): Use $(one_to_9999) instead of $(check_p_numbers).
7288
7289 2023-05-06 Hans-Peter Nilsson <hp@axis.com>
7290
7291 * config/cris/cris.md (splitop): Add PLUS.
7292 * config/cris/cris.cc (cris_split_constant): Also handle
7293 PLUS when a split into two insns may be useful.
7294
7295 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
7296
7297 * config/cris/cris.md (movandsplit1): New define_peephole2.
7298
7299 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
7300
7301 * config/cris/cris.md (lsrandsplit1): New define_peephole2.
7302
7303 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
7304
7305 * doc/md.texi (define_peephole2): Document order of scanning.
7306
7307 2023-05-05 Pan Li <pan2.li@intel.com>
7308 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7309
7310 * config/riscv/vector.md: Allow const as the operand of RVV
7311 indexed load/store.
7312
7313 2023-05-05 Pan Li <pan2.li@intel.com>
7314
7315 * config/riscv/riscv.h (VECTOR_STORE_FLAG_VALUE): Add new macro
7316 consumed by simplify_rtx.
7317
7318 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7319
7320 * config/arm/arm-mve-builtins-base.cc (vrshrq, vshrq): New.
7321 * config/arm/arm-mve-builtins-base.def (vrshrq, vshrq): New.
7322 * config/arm/arm-mve-builtins-base.h (vrshrq, vshrq): New.
7323 * config/arm/arm_mve.h (vshrq): Remove.
7324 (vrshrq): Remove.
7325 (vrshrq_m): Remove.
7326 (vshrq_m): Remove.
7327 (vrshrq_x): Remove.
7328 (vshrq_x): Remove.
7329 (vshrq_n_s8): Remove.
7330 (vshrq_n_s16): Remove.
7331 (vshrq_n_s32): Remove.
7332 (vshrq_n_u8): Remove.
7333 (vshrq_n_u16): Remove.
7334 (vshrq_n_u32): Remove.
7335 (vrshrq_n_u8): Remove.
7336 (vrshrq_n_s8): Remove.
7337 (vrshrq_n_u16): Remove.
7338 (vrshrq_n_s16): Remove.
7339 (vrshrq_n_u32): Remove.
7340 (vrshrq_n_s32): Remove.
7341 (vrshrq_m_n_s8): Remove.
7342 (vrshrq_m_n_s32): Remove.
7343 (vrshrq_m_n_s16): Remove.
7344 (vrshrq_m_n_u8): Remove.
7345 (vrshrq_m_n_u32): Remove.
7346 (vrshrq_m_n_u16): Remove.
7347 (vshrq_m_n_s8): Remove.
7348 (vshrq_m_n_s32): Remove.
7349 (vshrq_m_n_s16): Remove.
7350 (vshrq_m_n_u8): Remove.
7351 (vshrq_m_n_u32): Remove.
7352 (vshrq_m_n_u16): Remove.
7353 (vrshrq_x_n_s8): Remove.
7354 (vrshrq_x_n_s16): Remove.
7355 (vrshrq_x_n_s32): Remove.
7356 (vrshrq_x_n_u8): Remove.
7357 (vrshrq_x_n_u16): Remove.
7358 (vrshrq_x_n_u32): Remove.
7359 (vshrq_x_n_s8): Remove.
7360 (vshrq_x_n_s16): Remove.
7361 (vshrq_x_n_s32): Remove.
7362 (vshrq_x_n_u8): Remove.
7363 (vshrq_x_n_u16): Remove.
7364 (vshrq_x_n_u32): Remove.
7365 (__arm_vshrq_n_s8): Remove.
7366 (__arm_vshrq_n_s16): Remove.
7367 (__arm_vshrq_n_s32): Remove.
7368 (__arm_vshrq_n_u8): Remove.
7369 (__arm_vshrq_n_u16): Remove.
7370 (__arm_vshrq_n_u32): Remove.
7371 (__arm_vrshrq_n_u8): Remove.
7372 (__arm_vrshrq_n_s8): Remove.
7373 (__arm_vrshrq_n_u16): Remove.
7374 (__arm_vrshrq_n_s16): Remove.
7375 (__arm_vrshrq_n_u32): Remove.
7376 (__arm_vrshrq_n_s32): Remove.
7377 (__arm_vrshrq_m_n_s8): Remove.
7378 (__arm_vrshrq_m_n_s32): Remove.
7379 (__arm_vrshrq_m_n_s16): Remove.
7380 (__arm_vrshrq_m_n_u8): Remove.
7381 (__arm_vrshrq_m_n_u32): Remove.
7382 (__arm_vrshrq_m_n_u16): Remove.
7383 (__arm_vshrq_m_n_s8): Remove.
7384 (__arm_vshrq_m_n_s32): Remove.
7385 (__arm_vshrq_m_n_s16): Remove.
7386 (__arm_vshrq_m_n_u8): Remove.
7387 (__arm_vshrq_m_n_u32): Remove.
7388 (__arm_vshrq_m_n_u16): Remove.
7389 (__arm_vrshrq_x_n_s8): Remove.
7390 (__arm_vrshrq_x_n_s16): Remove.
7391 (__arm_vrshrq_x_n_s32): Remove.
7392 (__arm_vrshrq_x_n_u8): Remove.
7393 (__arm_vrshrq_x_n_u16): Remove.
7394 (__arm_vrshrq_x_n_u32): Remove.
7395 (__arm_vshrq_x_n_s8): Remove.
7396 (__arm_vshrq_x_n_s16): Remove.
7397 (__arm_vshrq_x_n_s32): Remove.
7398 (__arm_vshrq_x_n_u8): Remove.
7399 (__arm_vshrq_x_n_u16): Remove.
7400 (__arm_vshrq_x_n_u32): Remove.
7401 (__arm_vshrq): Remove.
7402 (__arm_vrshrq): Remove.
7403 (__arm_vrshrq_m): Remove.
7404 (__arm_vshrq_m): Remove.
7405 (__arm_vrshrq_x): Remove.
7406 (__arm_vshrq_x): Remove.
7407
7408 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7409
7410 * config/arm/iterators.md (MVE_VSHRQ_M_N, MVE_VSHRQ_N): New.
7411 (mve_insn): Add vrshr, vshr.
7412 * config/arm/mve.md (mve_vshrq_n_<supf><mode>)
7413 (mve_vrshrq_n_<supf><mode>): Merge into ...
7414 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
7415 (mve_vrshrq_m_n_<supf><mode>, mve_vshrq_m_n_<supf><mode>): Merge
7416 into ...
7417 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
7418
7419 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7420
7421 * config/arm/arm-mve-builtins-shapes.cc (binary_rshift): New.
7422 * config/arm/arm-mve-builtins-shapes.h (binary_rshift): New.
7423
7424 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7425
7426 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_U_F): New.
7427 (vqshrunbq, vqshruntq, vqrshrunbq, vqrshruntq): New.
7428 * config/arm/arm-mve-builtins-base.def (vqshrunbq, vqshruntq)
7429 (vqrshrunbq, vqrshruntq): New.
7430 * config/arm/arm-mve-builtins-base.h (vqshrunbq, vqshruntq)
7431 (vqrshrunbq, vqrshruntq): New.
7432 * config/arm/arm-mve-builtins.cc
7433 (function_instance::has_inactive_argument): Handle vqshrunbq,
7434 vqshruntq, vqrshrunbq, vqrshruntq.
7435 * config/arm/arm_mve.h (vqrshrunbq): Remove.
7436 (vqrshruntq): Remove.
7437 (vqrshrunbq_m): Remove.
7438 (vqrshruntq_m): Remove.
7439 (vqrshrunbq_n_s16): Remove.
7440 (vqrshrunbq_n_s32): Remove.
7441 (vqrshruntq_n_s16): Remove.
7442 (vqrshruntq_n_s32): Remove.
7443 (vqrshrunbq_m_n_s32): Remove.
7444 (vqrshrunbq_m_n_s16): Remove.
7445 (vqrshruntq_m_n_s32): Remove.
7446 (vqrshruntq_m_n_s16): Remove.
7447 (__arm_vqrshrunbq_n_s16): Remove.
7448 (__arm_vqrshrunbq_n_s32): Remove.
7449 (__arm_vqrshruntq_n_s16): Remove.
7450 (__arm_vqrshruntq_n_s32): Remove.
7451 (__arm_vqrshrunbq_m_n_s32): Remove.
7452 (__arm_vqrshrunbq_m_n_s16): Remove.
7453 (__arm_vqrshruntq_m_n_s32): Remove.
7454 (__arm_vqrshruntq_m_n_s16): Remove.
7455 (__arm_vqrshrunbq): Remove.
7456 (__arm_vqrshruntq): Remove.
7457 (__arm_vqrshrunbq_m): Remove.
7458 (__arm_vqrshruntq_m): Remove.
7459 (vqshrunbq): Remove.
7460 (vqshruntq): Remove.
7461 (vqshrunbq_m): Remove.
7462 (vqshruntq_m): Remove.
7463 (vqshrunbq_n_s16): Remove.
7464 (vqshruntq_n_s16): Remove.
7465 (vqshrunbq_n_s32): Remove.
7466 (vqshruntq_n_s32): Remove.
7467 (vqshrunbq_m_n_s32): Remove.
7468 (vqshrunbq_m_n_s16): Remove.
7469 (vqshruntq_m_n_s32): Remove.
7470 (vqshruntq_m_n_s16): Remove.
7471 (__arm_vqshrunbq_n_s16): Remove.
7472 (__arm_vqshruntq_n_s16): Remove.
7473 (__arm_vqshrunbq_n_s32): Remove.
7474 (__arm_vqshruntq_n_s32): Remove.
7475 (__arm_vqshrunbq_m_n_s32): Remove.
7476 (__arm_vqshrunbq_m_n_s16): Remove.
7477 (__arm_vqshruntq_m_n_s32): Remove.
7478 (__arm_vqshruntq_m_n_s16): Remove.
7479 (__arm_vqshrunbq): Remove.
7480 (__arm_vqshruntq): Remove.
7481 (__arm_vqshrunbq_m): Remove.
7482 (__arm_vqshruntq_m): Remove.
7483
7484 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7485
7486 * config/arm/iterators.md (MVE_SHRN_N): Add VQRSHRUNBQ,
7487 VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
7488 (MVE_SHRN_M_N): Likewise.
7489 (mve_insn): Add vqrshrunb, vqrshrunt, vqshrunb, vqshrunt.
7490 (isu): Add VQRSHRUNBQ, VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
7491 (supf): Likewise.
7492 * config/arm/mve.md (mve_vqrshrunbq_n_s<mode>): Remove.
7493 (mve_vqrshruntq_n_s<mode>): Remove.
7494 (mve_vqshrunbq_n_s<mode>): Remove.
7495 (mve_vqshruntq_n_s<mode>): Remove.
7496 (mve_vqrshrunbq_m_n_s<mode>): Remove.
7497 (mve_vqrshruntq_m_n_s<mode>): Remove.
7498 (mve_vqshrunbq_m_n_s<mode>): Remove.
7499 (mve_vqshruntq_m_n_s<mode>): Remove.
7500
7501 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7502
7503 * config/arm/arm-mve-builtins-shapes.cc
7504 (binary_rshift_narrow_unsigned): New.
7505 * config/arm/arm-mve-builtins-shapes.h
7506 (binary_rshift_narrow_unsigned): New.
7507
7508 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7509
7510 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_F): New.
7511 (vshrnbq, vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq)
7512 (vqrshrnbq, vqrshrntq): New.
7513 * config/arm/arm-mve-builtins-base.def (vshrnbq, vshrntq)
7514 (vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq):
7515 New.
7516 * config/arm/arm-mve-builtins-base.h (vshrnbq, vshrntq, vrshrnbq)
7517 (vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq): New.
7518 * config/arm/arm-mve-builtins.cc
7519 (function_instance::has_inactive_argument): Handle vshrnbq,
7520 vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq,
7521 vqrshrntq.
7522 * config/arm/arm_mve.h (vshrnbq): Remove.
7523 (vshrntq): Remove.
7524 (vshrnbq_m): Remove.
7525 (vshrntq_m): Remove.
7526 (vshrnbq_n_s16): Remove.
7527 (vshrntq_n_s16): Remove.
7528 (vshrnbq_n_u16): Remove.
7529 (vshrntq_n_u16): Remove.
7530 (vshrnbq_n_s32): Remove.
7531 (vshrntq_n_s32): Remove.
7532 (vshrnbq_n_u32): Remove.
7533 (vshrntq_n_u32): Remove.
7534 (vshrnbq_m_n_s32): Remove.
7535 (vshrnbq_m_n_s16): Remove.
7536 (vshrnbq_m_n_u32): Remove.
7537 (vshrnbq_m_n_u16): Remove.
7538 (vshrntq_m_n_s32): Remove.
7539 (vshrntq_m_n_s16): Remove.
7540 (vshrntq_m_n_u32): Remove.
7541 (vshrntq_m_n_u16): Remove.
7542 (__arm_vshrnbq_n_s16): Remove.
7543 (__arm_vshrntq_n_s16): Remove.
7544 (__arm_vshrnbq_n_u16): Remove.
7545 (__arm_vshrntq_n_u16): Remove.
7546 (__arm_vshrnbq_n_s32): Remove.
7547 (__arm_vshrntq_n_s32): Remove.
7548 (__arm_vshrnbq_n_u32): Remove.
7549 (__arm_vshrntq_n_u32): Remove.
7550 (__arm_vshrnbq_m_n_s32): Remove.
7551 (__arm_vshrnbq_m_n_s16): Remove.
7552 (__arm_vshrnbq_m_n_u32): Remove.
7553 (__arm_vshrnbq_m_n_u16): Remove.
7554 (__arm_vshrntq_m_n_s32): Remove.
7555 (__arm_vshrntq_m_n_s16): Remove.
7556 (__arm_vshrntq_m_n_u32): Remove.
7557 (__arm_vshrntq_m_n_u16): Remove.
7558 (__arm_vshrnbq): Remove.
7559 (__arm_vshrntq): Remove.
7560 (__arm_vshrnbq_m): Remove.
7561 (__arm_vshrntq_m): Remove.
7562 (vrshrnbq): Remove.
7563 (vrshrntq): Remove.
7564 (vrshrnbq_m): Remove.
7565 (vrshrntq_m): Remove.
7566 (vrshrnbq_n_s16): Remove.
7567 (vrshrntq_n_s16): Remove.
7568 (vrshrnbq_n_u16): Remove.
7569 (vrshrntq_n_u16): Remove.
7570 (vrshrnbq_n_s32): Remove.
7571 (vrshrntq_n_s32): Remove.
7572 (vrshrnbq_n_u32): Remove.
7573 (vrshrntq_n_u32): Remove.
7574 (vrshrnbq_m_n_s32): Remove.
7575 (vrshrnbq_m_n_s16): Remove.
7576 (vrshrnbq_m_n_u32): Remove.
7577 (vrshrnbq_m_n_u16): Remove.
7578 (vrshrntq_m_n_s32): Remove.
7579 (vrshrntq_m_n_s16): Remove.
7580 (vrshrntq_m_n_u32): Remove.
7581 (vrshrntq_m_n_u16): Remove.
7582 (__arm_vrshrnbq_n_s16): Remove.
7583 (__arm_vrshrntq_n_s16): Remove.
7584 (__arm_vrshrnbq_n_u16): Remove.
7585 (__arm_vrshrntq_n_u16): Remove.
7586 (__arm_vrshrnbq_n_s32): Remove.
7587 (__arm_vrshrntq_n_s32): Remove.
7588 (__arm_vrshrnbq_n_u32): Remove.
7589 (__arm_vrshrntq_n_u32): Remove.
7590 (__arm_vrshrnbq_m_n_s32): Remove.
7591 (__arm_vrshrnbq_m_n_s16): Remove.
7592 (__arm_vrshrnbq_m_n_u32): Remove.
7593 (__arm_vrshrnbq_m_n_u16): Remove.
7594 (__arm_vrshrntq_m_n_s32): Remove.
7595 (__arm_vrshrntq_m_n_s16): Remove.
7596 (__arm_vrshrntq_m_n_u32): Remove.
7597 (__arm_vrshrntq_m_n_u16): Remove.
7598 (__arm_vrshrnbq): Remove.
7599 (__arm_vrshrntq): Remove.
7600 (__arm_vrshrnbq_m): Remove.
7601 (__arm_vrshrntq_m): Remove.
7602 (vqshrnbq): Remove.
7603 (vqshrntq): Remove.
7604 (vqshrnbq_m): Remove.
7605 (vqshrntq_m): Remove.
7606 (vqshrnbq_n_s16): Remove.
7607 (vqshrntq_n_s16): Remove.
7608 (vqshrnbq_n_u16): Remove.
7609 (vqshrntq_n_u16): Remove.
7610 (vqshrnbq_n_s32): Remove.
7611 (vqshrntq_n_s32): Remove.
7612 (vqshrnbq_n_u32): Remove.
7613 (vqshrntq_n_u32): Remove.
7614 (vqshrnbq_m_n_s32): Remove.
7615 (vqshrnbq_m_n_s16): Remove.
7616 (vqshrnbq_m_n_u32): Remove.
7617 (vqshrnbq_m_n_u16): Remove.
7618 (vqshrntq_m_n_s32): Remove.
7619 (vqshrntq_m_n_s16): Remove.
7620 (vqshrntq_m_n_u32): Remove.
7621 (vqshrntq_m_n_u16): Remove.
7622 (__arm_vqshrnbq_n_s16): Remove.
7623 (__arm_vqshrntq_n_s16): Remove.
7624 (__arm_vqshrnbq_n_u16): Remove.
7625 (__arm_vqshrntq_n_u16): Remove.
7626 (__arm_vqshrnbq_n_s32): Remove.
7627 (__arm_vqshrntq_n_s32): Remove.
7628 (__arm_vqshrnbq_n_u32): Remove.
7629 (__arm_vqshrntq_n_u32): Remove.
7630 (__arm_vqshrnbq_m_n_s32): Remove.
7631 (__arm_vqshrnbq_m_n_s16): Remove.
7632 (__arm_vqshrnbq_m_n_u32): Remove.
7633 (__arm_vqshrnbq_m_n_u16): Remove.
7634 (__arm_vqshrntq_m_n_s32): Remove.
7635 (__arm_vqshrntq_m_n_s16): Remove.
7636 (__arm_vqshrntq_m_n_u32): Remove.
7637 (__arm_vqshrntq_m_n_u16): Remove.
7638 (__arm_vqshrnbq): Remove.
7639 (__arm_vqshrntq): Remove.
7640 (__arm_vqshrnbq_m): Remove.
7641 (__arm_vqshrntq_m): Remove.
7642 (vqrshrnbq): Remove.
7643 (vqrshrntq): Remove.
7644 (vqrshrnbq_m): Remove.
7645 (vqrshrntq_m): Remove.
7646 (vqrshrnbq_n_s16): Remove.
7647 (vqrshrnbq_n_u16): Remove.
7648 (vqrshrnbq_n_s32): Remove.
7649 (vqrshrnbq_n_u32): Remove.
7650 (vqrshrntq_n_s16): Remove.
7651 (vqrshrntq_n_u16): Remove.
7652 (vqrshrntq_n_s32): Remove.
7653 (vqrshrntq_n_u32): Remove.
7654 (vqrshrnbq_m_n_s32): Remove.
7655 (vqrshrnbq_m_n_s16): Remove.
7656 (vqrshrnbq_m_n_u32): Remove.
7657 (vqrshrnbq_m_n_u16): Remove.
7658 (vqrshrntq_m_n_s32): Remove.
7659 (vqrshrntq_m_n_s16): Remove.
7660 (vqrshrntq_m_n_u32): Remove.
7661 (vqrshrntq_m_n_u16): Remove.
7662 (__arm_vqrshrnbq_n_s16): Remove.
7663 (__arm_vqrshrnbq_n_u16): Remove.
7664 (__arm_vqrshrnbq_n_s32): Remove.
7665 (__arm_vqrshrnbq_n_u32): Remove.
7666 (__arm_vqrshrntq_n_s16): Remove.
7667 (__arm_vqrshrntq_n_u16): Remove.
7668 (__arm_vqrshrntq_n_s32): Remove.
7669 (__arm_vqrshrntq_n_u32): Remove.
7670 (__arm_vqrshrnbq_m_n_s32): Remove.
7671 (__arm_vqrshrnbq_m_n_s16): Remove.
7672 (__arm_vqrshrnbq_m_n_u32): Remove.
7673 (__arm_vqrshrnbq_m_n_u16): Remove.
7674 (__arm_vqrshrntq_m_n_s32): Remove.
7675 (__arm_vqrshrntq_m_n_s16): Remove.
7676 (__arm_vqrshrntq_m_n_u32): Remove.
7677 (__arm_vqrshrntq_m_n_u16): Remove.
7678 (__arm_vqrshrnbq): Remove.
7679 (__arm_vqrshrntq): Remove.
7680 (__arm_vqrshrnbq_m): Remove.
7681 (__arm_vqrshrntq_m): Remove.
7682
7683 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7684
7685 * config/arm/iterators.md (MVE_SHRN_N, MVE_SHRN_M_N): New.
7686 (mve_insn): Add vqrshrnb, vqrshrnt, vqshrnb, vqshrnt, vrshrnb,
7687 vrshrnt, vshrnb, vshrnt.
7688 (isu): New.
7689 * config/arm/mve.md (mve_vqrshrnbq_n_<supf><mode>)
7690 (mve_vqrshrntq_n_<supf><mode>, mve_vqshrnbq_n_<supf><mode>)
7691 (mve_vqshrntq_n_<supf><mode>, mve_vrshrnbq_n_<supf><mode>)
7692 (mve_vrshrntq_n_<supf><mode>, mve_vshrnbq_n_<supf><mode>)
7693 (mve_vshrntq_n_<supf><mode>): Merge into ...
7694 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
7695 (mve_vqrshrnbq_m_n_<supf><mode>, mve_vqrshrntq_m_n_<supf><mode>)
7696 (mve_vqshrnbq_m_n_<supf><mode>, mve_vqshrntq_m_n_<supf><mode>)
7697 (mve_vrshrnbq_m_n_<supf><mode>, mve_vrshrntq_m_n_<supf><mode>)
7698 (mve_vshrnbq_m_n_<supf><mode>, mve_vshrntq_m_n_<supf><mode>):
7699 Merge into ...
7700 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
7701
7702 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7703
7704 * config/arm/arm-mve-builtins-shapes.cc (binary_rshift_narrow):
7705 New.
7706 * config/arm/arm-mve-builtins-shapes.h (binary_rshift_narrow): New.
7707
7708 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7709
7710 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_NO_F): New.
7711 (vmaxq, vminq): New.
7712 * config/arm/arm-mve-builtins-base.def (vmaxq, vminq): New.
7713 * config/arm/arm-mve-builtins-base.h (vmaxq, vminq): New.
7714 * config/arm/arm_mve.h (vminq): Remove.
7715 (vmaxq): Remove.
7716 (vmaxq_m): Remove.
7717 (vminq_m): Remove.
7718 (vminq_x): Remove.
7719 (vmaxq_x): Remove.
7720 (vminq_u8): Remove.
7721 (vmaxq_u8): Remove.
7722 (vminq_s8): Remove.
7723 (vmaxq_s8): Remove.
7724 (vminq_u16): Remove.
7725 (vmaxq_u16): Remove.
7726 (vminq_s16): Remove.
7727 (vmaxq_s16): Remove.
7728 (vminq_u32): Remove.
7729 (vmaxq_u32): Remove.
7730 (vminq_s32): Remove.
7731 (vmaxq_s32): Remove.
7732 (vmaxq_m_s8): Remove.
7733 (vmaxq_m_s32): Remove.
7734 (vmaxq_m_s16): Remove.
7735 (vmaxq_m_u8): Remove.
7736 (vmaxq_m_u32): Remove.
7737 (vmaxq_m_u16): Remove.
7738 (vminq_m_s8): Remove.
7739 (vminq_m_s32): Remove.
7740 (vminq_m_s16): Remove.
7741 (vminq_m_u8): Remove.
7742 (vminq_m_u32): Remove.
7743 (vminq_m_u16): Remove.
7744 (vminq_x_s8): Remove.
7745 (vminq_x_s16): Remove.
7746 (vminq_x_s32): Remove.
7747 (vminq_x_u8): Remove.
7748 (vminq_x_u16): Remove.
7749 (vminq_x_u32): Remove.
7750 (vmaxq_x_s8): Remove.
7751 (vmaxq_x_s16): Remove.
7752 (vmaxq_x_s32): Remove.
7753 (vmaxq_x_u8): Remove.
7754 (vmaxq_x_u16): Remove.
7755 (vmaxq_x_u32): Remove.
7756 (__arm_vminq_u8): Remove.
7757 (__arm_vmaxq_u8): Remove.
7758 (__arm_vminq_s8): Remove.
7759 (__arm_vmaxq_s8): Remove.
7760 (__arm_vminq_u16): Remove.
7761 (__arm_vmaxq_u16): Remove.
7762 (__arm_vminq_s16): Remove.
7763 (__arm_vmaxq_s16): Remove.
7764 (__arm_vminq_u32): Remove.
7765 (__arm_vmaxq_u32): Remove.
7766 (__arm_vminq_s32): Remove.
7767 (__arm_vmaxq_s32): Remove.
7768 (__arm_vmaxq_m_s8): Remove.
7769 (__arm_vmaxq_m_s32): Remove.
7770 (__arm_vmaxq_m_s16): Remove.
7771 (__arm_vmaxq_m_u8): Remove.
7772 (__arm_vmaxq_m_u32): Remove.
7773 (__arm_vmaxq_m_u16): Remove.
7774 (__arm_vminq_m_s8): Remove.
7775 (__arm_vminq_m_s32): Remove.
7776 (__arm_vminq_m_s16): Remove.
7777 (__arm_vminq_m_u8): Remove.
7778 (__arm_vminq_m_u32): Remove.
7779 (__arm_vminq_m_u16): Remove.
7780 (__arm_vminq_x_s8): Remove.
7781 (__arm_vminq_x_s16): Remove.
7782 (__arm_vminq_x_s32): Remove.
7783 (__arm_vminq_x_u8): Remove.
7784 (__arm_vminq_x_u16): Remove.
7785 (__arm_vminq_x_u32): Remove.
7786 (__arm_vmaxq_x_s8): Remove.
7787 (__arm_vmaxq_x_s16): Remove.
7788 (__arm_vmaxq_x_s32): Remove.
7789 (__arm_vmaxq_x_u8): Remove.
7790 (__arm_vmaxq_x_u16): Remove.
7791 (__arm_vmaxq_x_u32): Remove.
7792 (__arm_vminq): Remove.
7793 (__arm_vmaxq): Remove.
7794 (__arm_vmaxq_m): Remove.
7795 (__arm_vminq_m): Remove.
7796 (__arm_vminq_x): Remove.
7797 (__arm_vmaxq_x): Remove.
7798
7799 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7800
7801 * config/arm/iterators.md (MAX_MIN_SU): New.
7802 (max_min_su_str): New.
7803 (max_min_supf): New.
7804 * config/arm/mve.md (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>)
7805 (mve_vminq_s<mode>, mve_vminq_u<mode>): Merge into ...
7806 (mve_<max_min_su_str>q_<max_min_supf><mode>): ... this.
7807
7808 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
7809
7810 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_R): New.
7811 (vqshlq, vshlq): New.
7812 * config/arm/arm-mve-builtins-base.def (vqshlq, vshlq): New.
7813 * config/arm/arm-mve-builtins-base.h (vqshlq, vshlq): New.
7814 * config/arm/arm_mve.h (vshlq): Remove.
7815 (vshlq_r): Remove.
7816 (vshlq_n): Remove.
7817 (vshlq_m_r): Remove.
7818 (vshlq_m): Remove.
7819 (vshlq_m_n): Remove.
7820 (vshlq_x): Remove.
7821 (vshlq_x_n): Remove.
7822 (vshlq_s8): Remove.
7823 (vshlq_s16): Remove.
7824 (vshlq_s32): Remove.
7825 (vshlq_u8): Remove.
7826 (vshlq_u16): Remove.
7827 (vshlq_u32): Remove.
7828 (vshlq_r_u8): Remove.
7829 (vshlq_n_u8): Remove.
7830 (vshlq_r_s8): Remove.
7831 (vshlq_n_s8): Remove.
7832 (vshlq_r_u16): Remove.
7833 (vshlq_n_u16): Remove.
7834 (vshlq_r_s16): Remove.
7835 (vshlq_n_s16): Remove.
7836 (vshlq_r_u32): Remove.
7837 (vshlq_n_u32): Remove.
7838 (vshlq_r_s32): Remove.
7839 (vshlq_n_s32): Remove.
7840 (vshlq_m_r_u8): Remove.
7841 (vshlq_m_r_s8): Remove.
7842 (vshlq_m_r_u16): Remove.
7843 (vshlq_m_r_s16): Remove.
7844 (vshlq_m_r_u32): Remove.
7845 (vshlq_m_r_s32): Remove.
7846 (vshlq_m_u8): Remove.
7847 (vshlq_m_s8): Remove.
7848 (vshlq_m_u16): Remove.
7849 (vshlq_m_s16): Remove.
7850 (vshlq_m_u32): Remove.
7851 (vshlq_m_s32): Remove.
7852 (vshlq_m_n_s8): Remove.
7853 (vshlq_m_n_s32): Remove.
7854 (vshlq_m_n_s16): Remove.
7855 (vshlq_m_n_u8): Remove.
7856 (vshlq_m_n_u32): Remove.
7857 (vshlq_m_n_u16): Remove.
7858 (vshlq_x_s8): Remove.
7859 (vshlq_x_s16): Remove.
7860 (vshlq_x_s32): Remove.
7861 (vshlq_x_u8): Remove.
7862 (vshlq_x_u16): Remove.
7863 (vshlq_x_u32): Remove.
7864 (vshlq_x_n_s8): Remove.
7865 (vshlq_x_n_s16): Remove.
7866 (vshlq_x_n_s32): Remove.
7867 (vshlq_x_n_u8): Remove.
7868 (vshlq_x_n_u16): Remove.
7869 (vshlq_x_n_u32): Remove.
7870 (__arm_vshlq_s8): Remove.
7871 (__arm_vshlq_s16): Remove.
7872 (__arm_vshlq_s32): Remove.
7873 (__arm_vshlq_u8): Remove.
7874 (__arm_vshlq_u16): Remove.
7875 (__arm_vshlq_u32): Remove.
7876 (__arm_vshlq_r_u8): Remove.
7877 (__arm_vshlq_n_u8): Remove.
7878 (__arm_vshlq_r_s8): Remove.
7879 (__arm_vshlq_n_s8): Remove.
7880 (__arm_vshlq_r_u16): Remove.
7881 (__arm_vshlq_n_u16): Remove.
7882 (__arm_vshlq_r_s16): Remove.
7883 (__arm_vshlq_n_s16): Remove.
7884 (__arm_vshlq_r_u32): Remove.
7885 (__arm_vshlq_n_u32): Remove.
7886 (__arm_vshlq_r_s32): Remove.
7887 (__arm_vshlq_n_s32): Remove.
7888 (__arm_vshlq_m_r_u8): Remove.
7889 (__arm_vshlq_m_r_s8): Remove.
7890 (__arm_vshlq_m_r_u16): Remove.
7891 (__arm_vshlq_m_r_s16): Remove.
7892 (__arm_vshlq_m_r_u32): Remove.
7893 (__arm_vshlq_m_r_s32): Remove.
7894 (__arm_vshlq_m_u8): Remove.
7895 (__arm_vshlq_m_s8): Remove.
7896 (__arm_vshlq_m_u16): Remove.
7897 (__arm_vshlq_m_s16): Remove.
7898 (__arm_vshlq_m_u32): Remove.
7899 (__arm_vshlq_m_s32): Remove.
7900 (__arm_vshlq_m_n_s8): Remove.
7901 (__arm_vshlq_m_n_s32): Remove.
7902 (__arm_vshlq_m_n_s16): Remove.
7903 (__arm_vshlq_m_n_u8): Remove.
7904 (__arm_vshlq_m_n_u32): Remove.
7905 (__arm_vshlq_m_n_u16): Remove.
7906 (__arm_vshlq_x_s8): Remove.
7907 (__arm_vshlq_x_s16): Remove.
7908 (__arm_vshlq_x_s32): Remove.
7909 (__arm_vshlq_x_u8): Remove.
7910 (__arm_vshlq_x_u16): Remove.
7911 (__arm_vshlq_x_u32): Remove.
7912 (__arm_vshlq_x_n_s8): Remove.
7913 (__arm_vshlq_x_n_s16): Remove.
7914 (__arm_vshlq_x_n_s32): Remove.
7915 (__arm_vshlq_x_n_u8): Remove.
7916 (__arm_vshlq_x_n_u16): Remove.
7917 (__arm_vshlq_x_n_u32): Remove.
7918 (__arm_vshlq): Remove.
7919 (__arm_vshlq_r): Remove.
7920 (__arm_vshlq_n): Remove.
7921 (__arm_vshlq_m_r): Remove.
7922 (__arm_vshlq_m): Remove.
7923 (__arm_vshlq_m_n): Remove.
7924 (__arm_vshlq_x): Remove.
7925 (__arm_vshlq_x_n): Remove.
7926 (vqshlq): Remove.
7927 (vqshlq_r): Remove.
7928 (vqshlq_n): Remove.
7929 (vqshlq_m_r): Remove.
7930 (vqshlq_m_n): Remove.
7931 (vqshlq_m): Remove.
7932 (vqshlq_u8): Remove.
7933 (vqshlq_r_u8): Remove.
7934 (vqshlq_n_u8): Remove.
7935 (vqshlq_s8): Remove.
7936 (vqshlq_r_s8): Remove.
7937 (vqshlq_n_s8): Remove.
7938 (vqshlq_u16): Remove.
7939 (vqshlq_r_u16): Remove.
7940 (vqshlq_n_u16): Remove.
7941 (vqshlq_s16): Remove.
7942 (vqshlq_r_s16): Remove.
7943 (vqshlq_n_s16): Remove.
7944 (vqshlq_u32): Remove.
7945 (vqshlq_r_u32): Remove.
7946 (vqshlq_n_u32): Remove.
7947 (vqshlq_s32): Remove.
7948 (vqshlq_r_s32): Remove.
7949 (vqshlq_n_s32): Remove.
7950 (vqshlq_m_r_u8): Remove.
7951 (vqshlq_m_r_s8): Remove.
7952 (vqshlq_m_r_u16): Remove.
7953 (vqshlq_m_r_s16): Remove.
7954 (vqshlq_m_r_u32): Remove.
7955 (vqshlq_m_r_s32): Remove.
7956 (vqshlq_m_n_s8): Remove.
7957 (vqshlq_m_n_s32): Remove.
7958 (vqshlq_m_n_s16): Remove.
7959 (vqshlq_m_n_u8): Remove.
7960 (vqshlq_m_n_u32): Remove.
7961 (vqshlq_m_n_u16): Remove.
7962 (vqshlq_m_s8): Remove.
7963 (vqshlq_m_s32): Remove.
7964 (vqshlq_m_s16): Remove.
7965 (vqshlq_m_u8): Remove.
7966 (vqshlq_m_u32): Remove.
7967 (vqshlq_m_u16): Remove.
7968 (__arm_vqshlq_u8): Remove.
7969 (__arm_vqshlq_r_u8): Remove.
7970 (__arm_vqshlq_n_u8): Remove.
7971 (__arm_vqshlq_s8): Remove.
7972 (__arm_vqshlq_r_s8): Remove.
7973 (__arm_vqshlq_n_s8): Remove.
7974 (__arm_vqshlq_u16): Remove.
7975 (__arm_vqshlq_r_u16): Remove.
7976 (__arm_vqshlq_n_u16): Remove.
7977 (__arm_vqshlq_s16): Remove.
7978 (__arm_vqshlq_r_s16): Remove.
7979 (__arm_vqshlq_n_s16): Remove.
7980 (__arm_vqshlq_u32): Remove.
7981 (__arm_vqshlq_r_u32): Remove.
7982 (__arm_vqshlq_n_u32): Remove.
7983 (__arm_vqshlq_s32): Remove.
7984 (__arm_vqshlq_r_s32): Remove.
7985 (__arm_vqshlq_n_s32): Remove.
7986 (__arm_vqshlq_m_r_u8): Remove.
7987 (__arm_vqshlq_m_r_s8): Remove.
7988 (__arm_vqshlq_m_r_u16): Remove.
7989 (__arm_vqshlq_m_r_s16): Remove.
7990 (__arm_vqshlq_m_r_u32): Remove.
7991 (__arm_vqshlq_m_r_s32): Remove.
7992 (__arm_vqshlq_m_n_s8): Remove.
7993 (__arm_vqshlq_m_n_s32): Remove.
7994 (__arm_vqshlq_m_n_s16): Remove.
7995 (__arm_vqshlq_m_n_u8): Remove.
7996 (__arm_vqshlq_m_n_u32): Remove.
7997 (__arm_vqshlq_m_n_u16): Remove.
7998 (__arm_vqshlq_m_s8): Remove.
7999 (__arm_vqshlq_m_s32): Remove.
8000 (__arm_vqshlq_m_s16): Remove.
8001 (__arm_vqshlq_m_u8): Remove.
8002 (__arm_vqshlq_m_u32): Remove.
8003 (__arm_vqshlq_m_u16): Remove.
8004 (__arm_vqshlq): Remove.
8005 (__arm_vqshlq_r): Remove.
8006 (__arm_vqshlq_n): Remove.
8007 (__arm_vqshlq_m_r): Remove.
8008 (__arm_vqshlq_m_n): Remove.
8009 (__arm_vqshlq_m): Remove.
8010
8011 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8012
8013 * config/arm/arm-mve-builtins-functions.h (class
8014 unspec_mve_function_exact_insn_vshl): New.
8015
8016 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8017
8018 * config/arm/arm-mve-builtins-shapes.cc (binary_lshift_r): New.
8019 * config/arm/arm-mve-builtins-shapes.h (binary_lshift_r): New.
8020
8021 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8022
8023 * config/arm/arm-mve-builtins.cc (has_inactive_argument)
8024 (finish_opt_n_resolution): Handle MODE_r.
8025 * config/arm/arm-mve-builtins.def (r): New mode.
8026
8027 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8028
8029 * config/arm/arm-mve-builtins-shapes.cc (binary_lshift): New.
8030 * config/arm/arm-mve-builtins-shapes.h (binary_lshift): New.
8031
8032 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8033
8034 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N): New.
8035 (vabdq): New.
8036 * config/arm/arm-mve-builtins-base.def (vabdq): New.
8037 * config/arm/arm-mve-builtins-base.h (vabdq): New.
8038 * config/arm/arm_mve.h (vabdq): Remove.
8039 (vabdq_m): Remove.
8040 (vabdq_x): Remove.
8041 (vabdq_u8): Remove.
8042 (vabdq_s8): Remove.
8043 (vabdq_u16): Remove.
8044 (vabdq_s16): Remove.
8045 (vabdq_u32): Remove.
8046 (vabdq_s32): Remove.
8047 (vabdq_f16): Remove.
8048 (vabdq_f32): Remove.
8049 (vabdq_m_s8): Remove.
8050 (vabdq_m_s32): Remove.
8051 (vabdq_m_s16): Remove.
8052 (vabdq_m_u8): Remove.
8053 (vabdq_m_u32): Remove.
8054 (vabdq_m_u16): Remove.
8055 (vabdq_m_f32): Remove.
8056 (vabdq_m_f16): Remove.
8057 (vabdq_x_s8): Remove.
8058 (vabdq_x_s16): Remove.
8059 (vabdq_x_s32): Remove.
8060 (vabdq_x_u8): Remove.
8061 (vabdq_x_u16): Remove.
8062 (vabdq_x_u32): Remove.
8063 (vabdq_x_f16): Remove.
8064 (vabdq_x_f32): Remove.
8065 (__arm_vabdq_u8): Remove.
8066 (__arm_vabdq_s8): Remove.
8067 (__arm_vabdq_u16): Remove.
8068 (__arm_vabdq_s16): Remove.
8069 (__arm_vabdq_u32): Remove.
8070 (__arm_vabdq_s32): Remove.
8071 (__arm_vabdq_m_s8): Remove.
8072 (__arm_vabdq_m_s32): Remove.
8073 (__arm_vabdq_m_s16): Remove.
8074 (__arm_vabdq_m_u8): Remove.
8075 (__arm_vabdq_m_u32): Remove.
8076 (__arm_vabdq_m_u16): Remove.
8077 (__arm_vabdq_x_s8): Remove.
8078 (__arm_vabdq_x_s16): Remove.
8079 (__arm_vabdq_x_s32): Remove.
8080 (__arm_vabdq_x_u8): Remove.
8081 (__arm_vabdq_x_u16): Remove.
8082 (__arm_vabdq_x_u32): Remove.
8083 (__arm_vabdq_f16): Remove.
8084 (__arm_vabdq_f32): Remove.
8085 (__arm_vabdq_m_f32): Remove.
8086 (__arm_vabdq_m_f16): Remove.
8087 (__arm_vabdq_x_f16): Remove.
8088 (__arm_vabdq_x_f32): Remove.
8089 (__arm_vabdq): Remove.
8090 (__arm_vabdq_m): Remove.
8091 (__arm_vabdq_x): Remove.
8092
8093 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8094
8095 * config/arm/iterators.md (MVE_FP_M_BINARY): Add vabdq.
8096 (MVE_FP_VABDQ_ONLY): New.
8097 (mve_insn): Add vabd.
8098 * config/arm/mve.md (mve_vabdq_f<mode>): Move into ...
8099 (@mve_<mve_insn>q_f<mode>): ... this.
8100 (mve_vabdq_m_f<mode>): Remove.
8101
8102 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8103
8104 * config/arm/arm-mve-builtins-base.cc (vqrdmulhq): New.
8105 * config/arm/arm-mve-builtins-base.def (vqrdmulhq): New.
8106 * config/arm/arm-mve-builtins-base.h (vqrdmulhq): New.
8107 * config/arm/arm_mve.h (vqrdmulhq): Remove.
8108 (vqrdmulhq_m): Remove.
8109 (vqrdmulhq_s8): Remove.
8110 (vqrdmulhq_n_s8): Remove.
8111 (vqrdmulhq_s16): Remove.
8112 (vqrdmulhq_n_s16): Remove.
8113 (vqrdmulhq_s32): Remove.
8114 (vqrdmulhq_n_s32): Remove.
8115 (vqrdmulhq_m_n_s8): Remove.
8116 (vqrdmulhq_m_n_s32): Remove.
8117 (vqrdmulhq_m_n_s16): Remove.
8118 (vqrdmulhq_m_s8): Remove.
8119 (vqrdmulhq_m_s32): Remove.
8120 (vqrdmulhq_m_s16): Remove.
8121 (__arm_vqrdmulhq_s8): Remove.
8122 (__arm_vqrdmulhq_n_s8): Remove.
8123 (__arm_vqrdmulhq_s16): Remove.
8124 (__arm_vqrdmulhq_n_s16): Remove.
8125 (__arm_vqrdmulhq_s32): Remove.
8126 (__arm_vqrdmulhq_n_s32): Remove.
8127 (__arm_vqrdmulhq_m_n_s8): Remove.
8128 (__arm_vqrdmulhq_m_n_s32): Remove.
8129 (__arm_vqrdmulhq_m_n_s16): Remove.
8130 (__arm_vqrdmulhq_m_s8): Remove.
8131 (__arm_vqrdmulhq_m_s32): Remove.
8132 (__arm_vqrdmulhq_m_s16): Remove.
8133 (__arm_vqrdmulhq): Remove.
8134 (__arm_vqrdmulhq_m): Remove.
8135
8136 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8137
8138 * config/arm/iterators.md (MVE_SHIFT_M_R, MVE_SHIFT_M_N)
8139 (MVE_SHIFT_N, MVE_SHIFT_R): New.
8140 (mve_insn): Add vqshl, vshl.
8141 * config/arm/mve.md (mve_vqshlq_n_<supf><mode>)
8142 (mve_vshlq_n_<supf><mode>): Merge into ...
8143 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
8144 (mve_vqshlq_r_<supf><mode>, mve_vshlq_r_<supf><mode>): Merge into
8145 ...
8146 (@mve_<mve_insn>q_r_<supf><mode>): ... this.
8147 (mve_vqshlq_m_r_<supf><mode>, mve_vshlq_m_r_<supf><mode>): Merge
8148 into ...
8149 (@mve_<mve_insn>q_m_r_<supf><mode>): ... this.
8150 (mve_vqshlq_m_n_<supf><mode>, mve_vshlq_m_n_<supf><mode>): Merge
8151 into ...
8152 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
8153 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Transform
8154 into ...
8155 (@mve_<mve_insn>q_<supf><mode>): ... this.
8156
8157 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8158
8159 * config/arm/arm-mve-builtins-base.cc (vqrshlq, vrshlq): New.
8160 * config/arm/arm-mve-builtins-base.def (vqrshlq, vrshlq): New.
8161 * config/arm/arm-mve-builtins-base.h (vqrshlq, vrshlq): New.
8162 * config/arm/arm-mve-builtins.cc (has_inactive_argument): Handle
8163 vqrshlq, vrshlq.
8164 * config/arm/arm_mve.h (vrshlq): Remove.
8165 (vrshlq_m_n): Remove.
8166 (vrshlq_m): Remove.
8167 (vrshlq_x): Remove.
8168 (vrshlq_u8): Remove.
8169 (vrshlq_n_u8): Remove.
8170 (vrshlq_s8): Remove.
8171 (vrshlq_n_s8): Remove.
8172 (vrshlq_u16): Remove.
8173 (vrshlq_n_u16): Remove.
8174 (vrshlq_s16): Remove.
8175 (vrshlq_n_s16): Remove.
8176 (vrshlq_u32): Remove.
8177 (vrshlq_n_u32): Remove.
8178 (vrshlq_s32): Remove.
8179 (vrshlq_n_s32): Remove.
8180 (vrshlq_m_n_u8): Remove.
8181 (vrshlq_m_n_s8): Remove.
8182 (vrshlq_m_n_u16): Remove.
8183 (vrshlq_m_n_s16): Remove.
8184 (vrshlq_m_n_u32): Remove.
8185 (vrshlq_m_n_s32): Remove.
8186 (vrshlq_m_s8): Remove.
8187 (vrshlq_m_s32): Remove.
8188 (vrshlq_m_s16): Remove.
8189 (vrshlq_m_u8): Remove.
8190 (vrshlq_m_u32): Remove.
8191 (vrshlq_m_u16): Remove.
8192 (vrshlq_x_s8): Remove.
8193 (vrshlq_x_s16): Remove.
8194 (vrshlq_x_s32): Remove.
8195 (vrshlq_x_u8): Remove.
8196 (vrshlq_x_u16): Remove.
8197 (vrshlq_x_u32): Remove.
8198 (__arm_vrshlq_u8): Remove.
8199 (__arm_vrshlq_n_u8): Remove.
8200 (__arm_vrshlq_s8): Remove.
8201 (__arm_vrshlq_n_s8): Remove.
8202 (__arm_vrshlq_u16): Remove.
8203 (__arm_vrshlq_n_u16): Remove.
8204 (__arm_vrshlq_s16): Remove.
8205 (__arm_vrshlq_n_s16): Remove.
8206 (__arm_vrshlq_u32): Remove.
8207 (__arm_vrshlq_n_u32): Remove.
8208 (__arm_vrshlq_s32): Remove.
8209 (__arm_vrshlq_n_s32): Remove.
8210 (__arm_vrshlq_m_n_u8): Remove.
8211 (__arm_vrshlq_m_n_s8): Remove.
8212 (__arm_vrshlq_m_n_u16): Remove.
8213 (__arm_vrshlq_m_n_s16): Remove.
8214 (__arm_vrshlq_m_n_u32): Remove.
8215 (__arm_vrshlq_m_n_s32): Remove.
8216 (__arm_vrshlq_m_s8): Remove.
8217 (__arm_vrshlq_m_s32): Remove.
8218 (__arm_vrshlq_m_s16): Remove.
8219 (__arm_vrshlq_m_u8): Remove.
8220 (__arm_vrshlq_m_u32): Remove.
8221 (__arm_vrshlq_m_u16): Remove.
8222 (__arm_vrshlq_x_s8): Remove.
8223 (__arm_vrshlq_x_s16): Remove.
8224 (__arm_vrshlq_x_s32): Remove.
8225 (__arm_vrshlq_x_u8): Remove.
8226 (__arm_vrshlq_x_u16): Remove.
8227 (__arm_vrshlq_x_u32): Remove.
8228 (__arm_vrshlq): Remove.
8229 (__arm_vrshlq_m_n): Remove.
8230 (__arm_vrshlq_m): Remove.
8231 (__arm_vrshlq_x): Remove.
8232 (vqrshlq): Remove.
8233 (vqrshlq_m_n): Remove.
8234 (vqrshlq_m): Remove.
8235 (vqrshlq_u8): Remove.
8236 (vqrshlq_n_u8): Remove.
8237 (vqrshlq_s8): Remove.
8238 (vqrshlq_n_s8): Remove.
8239 (vqrshlq_u16): Remove.
8240 (vqrshlq_n_u16): Remove.
8241 (vqrshlq_s16): Remove.
8242 (vqrshlq_n_s16): Remove.
8243 (vqrshlq_u32): Remove.
8244 (vqrshlq_n_u32): Remove.
8245 (vqrshlq_s32): Remove.
8246 (vqrshlq_n_s32): Remove.
8247 (vqrshlq_m_n_u8): Remove.
8248 (vqrshlq_m_n_s8): Remove.
8249 (vqrshlq_m_n_u16): Remove.
8250 (vqrshlq_m_n_s16): Remove.
8251 (vqrshlq_m_n_u32): Remove.
8252 (vqrshlq_m_n_s32): Remove.
8253 (vqrshlq_m_s8): Remove.
8254 (vqrshlq_m_s32): Remove.
8255 (vqrshlq_m_s16): Remove.
8256 (vqrshlq_m_u8): Remove.
8257 (vqrshlq_m_u32): Remove.
8258 (vqrshlq_m_u16): Remove.
8259 (__arm_vqrshlq_u8): Remove.
8260 (__arm_vqrshlq_n_u8): Remove.
8261 (__arm_vqrshlq_s8): Remove.
8262 (__arm_vqrshlq_n_s8): Remove.
8263 (__arm_vqrshlq_u16): Remove.
8264 (__arm_vqrshlq_n_u16): Remove.
8265 (__arm_vqrshlq_s16): Remove.
8266 (__arm_vqrshlq_n_s16): Remove.
8267 (__arm_vqrshlq_u32): Remove.
8268 (__arm_vqrshlq_n_u32): Remove.
8269 (__arm_vqrshlq_s32): Remove.
8270 (__arm_vqrshlq_n_s32): Remove.
8271 (__arm_vqrshlq_m_n_u8): Remove.
8272 (__arm_vqrshlq_m_n_s8): Remove.
8273 (__arm_vqrshlq_m_n_u16): Remove.
8274 (__arm_vqrshlq_m_n_s16): Remove.
8275 (__arm_vqrshlq_m_n_u32): Remove.
8276 (__arm_vqrshlq_m_n_s32): Remove.
8277 (__arm_vqrshlq_m_s8): Remove.
8278 (__arm_vqrshlq_m_s32): Remove.
8279 (__arm_vqrshlq_m_s16): Remove.
8280 (__arm_vqrshlq_m_u8): Remove.
8281 (__arm_vqrshlq_m_u32): Remove.
8282 (__arm_vqrshlq_m_u16): Remove.
8283 (__arm_vqrshlq): Remove.
8284 (__arm_vqrshlq_m_n): Remove.
8285 (__arm_vqrshlq_m): Remove.
8286
8287 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8288
8289 * config/arm/iterators.md (MVE_RSHIFT_M_N, MVE_RSHIFT_N): New.
8290 (mve_insn): Add vqrshl, vrshl.
8291 * config/arm/mve.md (mve_vqrshlq_n_<supf><mode>)
8292 (mve_vrshlq_n_<supf><mode>): Merge into ...
8293 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
8294 (mve_vqrshlq_m_n_<supf><mode>, mve_vrshlq_m_n_<supf><mode>): Merge
8295 into ...
8296 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
8297
8298 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8299
8300 * config/arm/arm-mve-builtins-shapes.cc (binary_round_lshift): New.
8301 * config/arm/arm-mve-builtins-shapes.h (binary_round_lshift): New.
8302
8303 2023-05-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8304
8305 PR target/109615
8306 * config/riscv/riscv-vsetvl.cc (avl_info::multiple_source_equal_p): Add
8307 denegrate PHI optmization.
8308
8309 2023-05-05 Uros Bizjak <ubizjak@gmail.com>
8310
8311 * config/i386/predicates.md (register_no_SP_operand):
8312 Rename from index_register_operand.
8313 (call_register_operand): Update for rename.
8314 * config/i386/i386.md (*lea<mode>_general_[1234]): Update for rename.
8315
8316 2023-05-05 Tamar Christina <tamar.christina@arm.com>
8317
8318 PR bootstrap/84402
8319 * Makefile.in (NUM_MATCH_SPLITS, MATCH_SPLITS_SEQ,
8320 GIMPLE_MATCH_PD_SEQ_SRC, GIMPLE_MATCH_PD_SEQ_O,
8321 GENERIC_MATCH_PD_SEQ_SRC, GENERIC_MATCH_PD_SEQ_O): New.
8322 (OBJS, MOSTLYCLEANFILES, .PRECIOUS): Use them.
8323 (s-match): Split into s-generic-match and s-gimple-match.
8324 * configure.ac (with-matchpd-partitions,
8325 DEFAULT_MATCHPD_PARTITIONS): New.
8326 * configure: Regenerate.
8327
8328 2023-05-05 Tamar Christina <tamar.christina@arm.com>
8329
8330 PR bootstrap/84402
8331 * genmatch.cc (emit_func, SIZED_BASED_CHUNKS, get_out_file): New.
8332 (decision_tree::gen): Accept list of files instead of single and update
8333 to write function definition to header and main file.
8334 (write_predicate): Likewise.
8335 (write_header): Emit pragmas and new includes.
8336 (main): Create file buffers and cleanup.
8337 (showUsage, write_header_includes): New.
8338
8339 2023-05-05 Tamar Christina <tamar.christina@arm.com>
8340
8341 PR bootstrap/84402
8342 * Makefile.in (OBJS): Add gimple-match-exports.o.
8343 * genmatch.cc (decision_tree::gen): Export gimple_gimplify helpers.
8344 * gimple-match-head.cc (gimple_simplify, gimple_resimplify1,
8345 gimple_resimplify2, gimple_resimplify3, gimple_resimplify4,
8346 gimple_resimplify5, constant_for_folding, convert_conditional_op,
8347 maybe_resimplify_conditional_op, gimple_match_op::resimplify,
8348 maybe_build_generic_op, build_call_internal, maybe_push_res_to_seq,
8349 do_valueize, try_conditional_simplification, gimple_extract,
8350 gimple_extract_op, canonicalize_code, commutative_binary_op_p,
8351 commutative_ternary_op_p, first_commutative_argument,
8352 associative_binary_op_p, directly_supported_p,
8353 get_conditional_internal_fn): Moved to gimple-match-exports.cc
8354 * gimple-match-exports.cc: New file.
8355
8356 2023-05-05 Tamar Christina <tamar.christina@arm.com>
8357
8358 PR bootstrap/84402
8359 * genmatch.cc (decision_tree::gen, write_predicate): Generate new
8360 debug_dump var.
8361 (dt_simplify::gen_1): Use it.
8362
8363 2023-05-05 Tamar Christina <tamar.christina@arm.com>
8364
8365 PR bootstrap/84402
8366 * genmatch.cc (output_line_directive): Only emit commented directive
8367 when -vv.
8368
8369 2023-05-05 Tamar Christina <tamar.christina@arm.com>
8370
8371 PR bootstrap/84402
8372 * genmatch.cc (dt_simplify::gen_1): Only emit labels if used.
8373
8374 2023-05-05 Tobias Burnus <tobias@codesourcery.com>
8375
8376 * config/gcn/gcn.cc (gcn_vectorize_builtin_vectorized_function): Remove
8377 unused in_mode/in_n variables.
8378
8379 2023-05-05 Richard Biener <rguenther@suse.de>
8380
8381 PR tree-optimization/109735
8382 * tree-vect-stmts.cc (vectorizable_operation): Perform
8383 conversion for POINTER_DIFF_EXPR unconditionally.
8384
8385 2023-05-05 Uros Bizjak <ubizjak@gmail.com>
8386
8387 * config/i386/mmx.md (mulv2si3): New expander.
8388 (*mulv2si3): New insn pattern.
8389
8390 2023-05-05 Tobias Burnus <tobias@codesourcery.com>
8391 Thomas Schwinge <thomas@codesourcery.com>
8392
8393 PR libgomp/108098
8394 * config/nvptx/mkoffload.cc (process): Emit dummy procedure
8395 alongside reverse-offload function table to prevent NULL values
8396 of the function addresses.
8397
8398 2023-05-05 Jakub Jelinek <jakub@redhat.com>
8399
8400 * builtins.cc (do_mpfr_ckconv, do_mpc_ckconv): Fix comment typo,
8401 mpft_t -> mpfr_t.
8402 * fold-const-call.cc (do_mpfr_ckconv, do_mpc_ckconv): Likewise.
8403
8404 2023-05-05 Andrew Pinski <apinski@marvell.com>
8405
8406 PR tree-optimization/109732
8407 * tree-ssa-phiopt.cc (match_simplify_replacement): Fix the selection
8408 of the argtrue/argfalse.
8409
8410 2023-05-05 Andrew Pinski <apinski@marvell.com>
8411
8412 PR tree-optimization/109722
8413 * match.pd: Extend the `ABS<a> == 0` pattern
8414 to cover `ABSU<a> == 0` too.
8415
8416 2023-05-04 Uros Bizjak <ubizjak@gmail.com>
8417
8418 PR target/109733
8419 * config/i386/predicates.md (index_reg_operand): New predicate.
8420 * config/i386/i386.md (ashift to lea spliter): Use
8421 general_reg_operand and index_reg_operand predicates.
8422
8423 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8424
8425 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>_insn_le):
8426 Rename and reimplement with RTL codes to...
8427 (aarch64_<optab>hn2<mode>_insn_le): .. This.
8428 (aarch64_r<optab>hn2<mode>_insn_le): New pattern.
8429 (aarch64_<sur><addsub>hn2<mode>_insn_be): Rename and reimplement with RTL
8430 codes to...
8431 (aarch64_<optab>hn2<mode>_insn_be): ... This.
8432 (aarch64_r<optab>hn2<mode>_insn_be): New pattern.
8433 (aarch64_<sur><addsub>hn2<mode>): Rename and adjust expander to...
8434 (aarch64_<optab>hn2<mode>): ... This.
8435 (aarch64_r<optab>hn2<mode>): New expander.
8436 * config/aarch64/iterators.md (UNSPEC_ADDHN, UNSPEC_RADDHN,
8437 UNSPEC_SUBHN, UNSPEC_RSUBHN): Delete unspecs.
8438 (ADDSUBHN): Delete.
8439 (sur): Remove handling of the above.
8440 (addsub): Likewise.
8441
8442 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8443
8444 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>_insn_le):
8445 Delete.
8446 (aarch64_<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
8447 (aarch64_<sur><addsub>hn<mode>_insn_be): Delete.
8448 (aarch64_r<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
8449 (aarch64_<sur><addsub>hn<mode>): Delete.
8450 (aarch64_<optab>hn<mode>): New define_expand.
8451 (aarch64_r<optab>hn<mode>): Likewise.
8452 * config/aarch64/predicates.md (aarch64_simd_raddsubhn_imm_vec):
8453 New predicate.
8454
8455 2023-05-04 Andrew Pinski <apinski@marvell.com>
8456
8457 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Handle
8458 diamond form bb with forwarder only empty blocks better.
8459
8460 2023-05-04 Andrew Pinski <apinski@marvell.com>
8461
8462 * tree-ssa-threadupdate.cc (copy_phi_arg_into_existing_phi): Move to ...
8463 * tree-cfg.cc (copy_phi_arg_into_existing_phi): Here and remove static.
8464 (gimple_duplicate_sese_tail): Use copy_phi_arg_into_existing_phi instead
8465 of an inline version of it.
8466 * tree-cfgcleanup.cc (remove_forwarder_block): Likewise.
8467 * tree-cfg.h (copy_phi_arg_into_existing_phi): New declaration.
8468
8469 2023-05-04 Andrew Pinski <apinski@marvell.com>
8470
8471 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Change
8472 the default argument value for dce_ssa_names to nullptr.
8473 Check to make sure dce_ssa_names is a non-nullptr before
8474 calling simple_dce_from_worklist.
8475
8476 2023-05-04 Uros Bizjak <ubizjak@gmail.com>
8477
8478 * config/i386/predicates.md (index_register_operand): Reject
8479 arg_pointer_rtx, frame_pointer_rtx, stack_pointer_rtx and
8480 VIRTUAL_REGISTER_P operands. Allow subregs of memory before reload.
8481 (call_register_no_elim_operand): Rewrite as ...
8482 (call_register_operand): ... this.
8483 (call_insn_operand): Use call_register_operand predicate.
8484
8485 2023-05-04 Richard Biener <rguenther@suse.de>
8486
8487 PR tree-optimization/109721
8488 * tree-vect-stmts.cc (vectorizable_operation): Make sure
8489 to test word_mode for all !target_support_p operations.
8490
8491 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8492
8493 PR target/99195
8494 * config/aarch64/aarch64-simd.md (aarch64_<su>aba<mode>): Rename to...
8495 (aarch64_<su>aba<mode><vczle><vczbe>): ... This.
8496 (aarch64_mla<mode>): Rename to...
8497 (aarch64_mla<mode><vczle><vczbe>): ... This.
8498 (*aarch64_mla_elt<mode>): Rename to...
8499 (*aarch64_mla_elt<mode><vczle><vczbe>): ... This.
8500 (*aarch64_mla_elt_<vswap_width_name><mode>): Rename to...
8501 (*aarch64_mla_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
8502 (aarch64_mla_n<mode>): Rename to...
8503 (aarch64_mla_n<mode><vczle><vczbe>): ... This.
8504 (aarch64_mls<mode>): Rename to...
8505 (aarch64_mls<mode><vczle><vczbe>): ... This.
8506 (*aarch64_mls_elt<mode>): Rename to...
8507 (*aarch64_mls_elt<mode><vczle><vczbe>): ... This.
8508 (*aarch64_mls_elt_<vswap_width_name><mode>): Rename to...
8509 (*aarch64_mls_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
8510 (aarch64_mls_n<mode>): Rename to...
8511 (aarch64_mls_n<mode><vczle><vczbe>): ... This.
8512 (fma<mode>4): Rename to...
8513 (fma<mode>4<vczle><vczbe>): ... This.
8514 (*aarch64_fma4_elt<mode>): Rename to...
8515 (*aarch64_fma4_elt<mode><vczle><vczbe>): ... This.
8516 (*aarch64_fma4_elt_<vswap_width_name><mode>): Rename to...
8517 (*aarch64_fma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
8518 (*aarch64_fma4_elt_from_dup<mode>): Rename to...
8519 (*aarch64_fma4_elt_from_dup<mode><vczle><vczbe>): ... This.
8520 (fnma<mode>4): Rename to...
8521 (fnma<mode>4<vczle><vczbe>): ... This.
8522 (*aarch64_fnma4_elt<mode>): Rename to...
8523 (*aarch64_fnma4_elt<mode><vczle><vczbe>): ... This.
8524 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Rename to...
8525 (*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
8526 (*aarch64_fnma4_elt_from_dup<mode>): Rename to...
8527 (*aarch64_fnma4_elt_from_dup<mode><vczle><vczbe>): ... This.
8528 (aarch64_simd_bsl<mode>_internal): Rename to...
8529 (aarch64_simd_bsl<mode>_internal<vczle><vczbe>): ... This.
8530 (*aarch64_simd_bsl<mode>_alt): Rename to...
8531 (*aarch64_simd_bsl<mode>_alt<vczle><vczbe>): ... This.
8532
8533 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8534
8535 PR target/99195
8536 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>): Rename to...
8537 (aarch64_<su>abd<mode><vczle><vczbe>): ... This.
8538 (fabd<mode>3): Rename to...
8539 (fabd<mode>3<vczle><vczbe>): ... This.
8540 (aarch64_<optab>p<mode>): Rename to...
8541 (aarch64_<optab>p<mode><vczle><vczbe>): ... This.
8542 (aarch64_faddp<mode>): Rename to...
8543 (aarch64_faddp<mode><vczle><vczbe>): ... This.
8544
8545 2023-05-04 Martin Liska <mliska@suse.cz>
8546
8547 * gcov.cc (GCOV_JSON_FORMAT_VERSION): New definition.
8548 (print_version): Use it.
8549 (generate_results): Likewise.
8550
8551 2023-05-04 Richard Biener <rguenther@suse.de>
8552
8553 * tree-cfg.h (last_stmt): Rename to ...
8554 (last_nondebug_stmt): ... this.
8555 * tree-cfg.cc (last_stmt): Rename to ...
8556 (last_nondebug_stmt): ... this.
8557 (assign_discriminators): Adjust.
8558 (group_case_labels_stmt): Likewise.
8559 (gimple_can_duplicate_bb_p): Likewise.
8560 (execute_fixup_cfg): Likewise.
8561 * auto-profile.cc (afdo_propagate_circuit): Likewise.
8562 * gimple-range.cc (gimple_ranger::range_on_exit): Likewise.
8563 * omp-expand.cc (workshare_safe_to_combine_p): Likewise.
8564 (determine_parallel_type): Likewise.
8565 (adjust_context_and_scope): Likewise.
8566 (expand_task_call): Likewise.
8567 (remove_exit_barrier): Likewise.
8568 (expand_omp_taskreg): Likewise.
8569 (expand_omp_for_init_counts): Likewise.
8570 (expand_omp_for_init_vars): Likewise.
8571 (expand_omp_for_static_chunk): Likewise.
8572 (expand_omp_simd): Likewise.
8573 (expand_oacc_for): Likewise.
8574 (expand_omp_for): Likewise.
8575 (expand_omp_sections): Likewise.
8576 (expand_omp_atomic_fetch_op): Likewise.
8577 (expand_omp_atomic_cas): Likewise.
8578 (expand_omp_atomic): Likewise.
8579 (expand_omp_target): Likewise.
8580 (expand_omp): Likewise.
8581 (omp_make_gimple_edges): Likewise.
8582 * trans-mem.cc (tm_region_init): Likewise.
8583 * tree-inline.cc (redirect_all_calls): Likewise.
8584 * tree-parloops.cc (gen_parallel_loop): Likewise.
8585 * tree-ssa-loop-ch.cc (do_while_loop_p): Likewise.
8586 * tree-ssa-loop-ivcanon.cc (canonicalize_loop_induction_variables):
8587 Likewise.
8588 * tree-ssa-loop-ivopts.cc (stmt_after_ip_normal_pos): Likewise.
8589 (may_eliminate_iv): Likewise.
8590 * tree-ssa-loop-manip.cc (standard_iv_increment_position): Likewise.
8591 * tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations):
8592 Likewise.
8593 (estimate_numbers_of_iterations): Likewise.
8594 * tree-ssa-loop-split.cc (compute_added_num_insns): Likewise.
8595 * tree-ssa-loop-unswitch.cc (get_predicates_for_bb): Likewise.
8596 (set_predicates_for_bb): Likewise.
8597 (init_loop_unswitch_info): Likewise.
8598 (hoist_guard): Likewise.
8599 * tree-ssa-phiopt.cc (match_simplify_replacement): Likewise.
8600 (minmax_replacement): Likewise.
8601 * tree-ssa-reassoc.cc (update_range_test): Likewise.
8602 (optimize_range_tests_to_bit_test): Likewise.
8603 (optimize_range_tests_var_bound): Likewise.
8604 (optimize_range_tests): Likewise.
8605 (no_side_effect_bb): Likewise.
8606 (suitable_cond_bb): Likewise.
8607 (maybe_optimize_range_tests): Likewise.
8608 (reassociate_bb): Likewise.
8609 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Likewise.
8610
8611 2023-05-04 Jakub Jelinek <jakub@redhat.com>
8612
8613 PR debug/109676
8614 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
8615 If src is REG, change its mode to V1TImode and call fix_debug_reg_uses
8616 for it only if it still has TImode. Don't decide whether to call
8617 fix_debug_reg_uses based on whether SRC is ever set or not.
8618
8619 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
8620
8621 * config/cris/cris.cc (cris_split_constant): New function.
8622 * config/cris/cris.md (splitop): New iterator.
8623 (opsplit1): New define_peephole2.
8624 * config/cris/cris-protos.h (cris_split_constant): Declare.
8625 (cris_splittable_constant_p): New macro.
8626
8627 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
8628
8629 * config/cris/cris.cc (TARGET_SPILL_CLASS): Define
8630 to ALL_REGS.
8631
8632 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
8633
8634 * config/cris/cris.cc (cris_side_effect_mode_ok): Use
8635 lra_in_progress, not reload_in_progress.
8636 * config/cris/cris.md ("movdi", "*addi_reload"): Ditto.
8637 * config/cris/constraints.md ("Q"): Ditto.
8638
8639 2023-05-03 Andrew Pinski <apinski@marvell.com>
8640
8641 * tree-ssa-dce.cc (simple_dce_from_worklist): Record
8642 stats on removed number of statements and phis.
8643
8644 2023-05-03 Aldy Hernandez <aldyh@redhat.com>
8645
8646 PR tree-optimization/109711
8647 * value-range.cc (irange::verify_range): Allow types of
8648 error_mark_node.
8649
8650 2023-05-03 Alexander Monakov <amonakov@ispras.ru>
8651
8652 PR sanitizer/90746
8653 * calls.cc (can_implement_as_sibling_call_p): Reject calls
8654 to __sanitizer_cov_trace_pc.
8655
8656 2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
8657
8658 PR target/109661
8659 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Add
8660 a new ABI break parameter for GCC 14. Set it to the alignment
8661 of enums that have an underlying type. Take the true alignment
8662 of such enums from the TYPE_ALIGN of the underlying type's
8663 TYPE_MAIN_VARIANT.
8664 (aarch64_function_arg_boundary): Update accordingly.
8665 (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Likewise.
8666 Warn about ABI differences.
8667
8668 2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
8669
8670 PR target/109661
8671 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Rename
8672 ABI break variables to abi_break_gcc_9 and abi_break_gcc_13.
8673 (aarch64_layout_arg, aarch64_function_arg_boundary): Likewise.
8674 (aarch64_gimplify_va_arg_expr): Likewise.
8675
8676 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
8677
8678 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_NO_F)
8679 (FUNCTION_WITHOUT_N_NO_F, FUNCTION_WITH_M_N_NO_U_F): New.
8680 (vhaddq, vhsubq, vmulhq, vqaddq, vqsubq, vqdmulhq, vrhaddq)
8681 (vrmulhq): New.
8682 * config/arm/arm-mve-builtins-base.def (vhaddq, vhsubq, vmulhq)
8683 (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
8684 * config/arm/arm-mve-builtins-base.h (vhaddq, vhsubq, vmulhq)
8685 (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
8686 * config/arm/arm_mve.h (vhsubq): Remove.
8687 (vhaddq): Remove.
8688 (vhaddq_m): Remove.
8689 (vhsubq_m): Remove.
8690 (vhaddq_x): Remove.
8691 (vhsubq_x): Remove.
8692 (vhsubq_u8): Remove.
8693 (vhsubq_n_u8): Remove.
8694 (vhaddq_u8): Remove.
8695 (vhaddq_n_u8): Remove.
8696 (vhsubq_s8): Remove.
8697 (vhsubq_n_s8): Remove.
8698 (vhaddq_s8): Remove.
8699 (vhaddq_n_s8): Remove.
8700 (vhsubq_u16): Remove.
8701 (vhsubq_n_u16): Remove.
8702 (vhaddq_u16): Remove.
8703 (vhaddq_n_u16): Remove.
8704 (vhsubq_s16): Remove.
8705 (vhsubq_n_s16): Remove.
8706 (vhaddq_s16): Remove.
8707 (vhaddq_n_s16): Remove.
8708 (vhsubq_u32): Remove.
8709 (vhsubq_n_u32): Remove.
8710 (vhaddq_u32): Remove.
8711 (vhaddq_n_u32): Remove.
8712 (vhsubq_s32): Remove.
8713 (vhsubq_n_s32): Remove.
8714 (vhaddq_s32): Remove.
8715 (vhaddq_n_s32): Remove.
8716 (vhaddq_m_n_s8): Remove.
8717 (vhaddq_m_n_s32): Remove.
8718 (vhaddq_m_n_s16): Remove.
8719 (vhaddq_m_n_u8): Remove.
8720 (vhaddq_m_n_u32): Remove.
8721 (vhaddq_m_n_u16): Remove.
8722 (vhaddq_m_s8): Remove.
8723 (vhaddq_m_s32): Remove.
8724 (vhaddq_m_s16): Remove.
8725 (vhaddq_m_u8): Remove.
8726 (vhaddq_m_u32): Remove.
8727 (vhaddq_m_u16): Remove.
8728 (vhsubq_m_n_s8): Remove.
8729 (vhsubq_m_n_s32): Remove.
8730 (vhsubq_m_n_s16): Remove.
8731 (vhsubq_m_n_u8): Remove.
8732 (vhsubq_m_n_u32): Remove.
8733 (vhsubq_m_n_u16): Remove.
8734 (vhsubq_m_s8): Remove.
8735 (vhsubq_m_s32): Remove.
8736 (vhsubq_m_s16): Remove.
8737 (vhsubq_m_u8): Remove.
8738 (vhsubq_m_u32): Remove.
8739 (vhsubq_m_u16): Remove.
8740 (vhaddq_x_n_s8): Remove.
8741 (vhaddq_x_n_s16): Remove.
8742 (vhaddq_x_n_s32): Remove.
8743 (vhaddq_x_n_u8): Remove.
8744 (vhaddq_x_n_u16): Remove.
8745 (vhaddq_x_n_u32): Remove.
8746 (vhaddq_x_s8): Remove.
8747 (vhaddq_x_s16): Remove.
8748 (vhaddq_x_s32): Remove.
8749 (vhaddq_x_u8): Remove.
8750 (vhaddq_x_u16): Remove.
8751 (vhaddq_x_u32): Remove.
8752 (vhsubq_x_n_s8): Remove.
8753 (vhsubq_x_n_s16): Remove.
8754 (vhsubq_x_n_s32): Remove.
8755 (vhsubq_x_n_u8): Remove.
8756 (vhsubq_x_n_u16): Remove.
8757 (vhsubq_x_n_u32): Remove.
8758 (vhsubq_x_s8): Remove.
8759 (vhsubq_x_s16): Remove.
8760 (vhsubq_x_s32): Remove.
8761 (vhsubq_x_u8): Remove.
8762 (vhsubq_x_u16): Remove.
8763 (vhsubq_x_u32): Remove.
8764 (__arm_vhsubq_u8): Remove.
8765 (__arm_vhsubq_n_u8): Remove.
8766 (__arm_vhaddq_u8): Remove.
8767 (__arm_vhaddq_n_u8): Remove.
8768 (__arm_vhsubq_s8): Remove.
8769 (__arm_vhsubq_n_s8): Remove.
8770 (__arm_vhaddq_s8): Remove.
8771 (__arm_vhaddq_n_s8): Remove.
8772 (__arm_vhsubq_u16): Remove.
8773 (__arm_vhsubq_n_u16): Remove.
8774 (__arm_vhaddq_u16): Remove.
8775 (__arm_vhaddq_n_u16): Remove.
8776 (__arm_vhsubq_s16): Remove.
8777 (__arm_vhsubq_n_s16): Remove.
8778 (__arm_vhaddq_s16): Remove.
8779 (__arm_vhaddq_n_s16): Remove.
8780 (__arm_vhsubq_u32): Remove.
8781 (__arm_vhsubq_n_u32): Remove.
8782 (__arm_vhaddq_u32): Remove.
8783 (__arm_vhaddq_n_u32): Remove.
8784 (__arm_vhsubq_s32): Remove.
8785 (__arm_vhsubq_n_s32): Remove.
8786 (__arm_vhaddq_s32): Remove.
8787 (__arm_vhaddq_n_s32): Remove.
8788 (__arm_vhaddq_m_n_s8): Remove.
8789 (__arm_vhaddq_m_n_s32): Remove.
8790 (__arm_vhaddq_m_n_s16): Remove.
8791 (__arm_vhaddq_m_n_u8): Remove.
8792 (__arm_vhaddq_m_n_u32): Remove.
8793 (__arm_vhaddq_m_n_u16): Remove.
8794 (__arm_vhaddq_m_s8): Remove.
8795 (__arm_vhaddq_m_s32): Remove.
8796 (__arm_vhaddq_m_s16): Remove.
8797 (__arm_vhaddq_m_u8): Remove.
8798 (__arm_vhaddq_m_u32): Remove.
8799 (__arm_vhaddq_m_u16): Remove.
8800 (__arm_vhsubq_m_n_s8): Remove.
8801 (__arm_vhsubq_m_n_s32): Remove.
8802 (__arm_vhsubq_m_n_s16): Remove.
8803 (__arm_vhsubq_m_n_u8): Remove.
8804 (__arm_vhsubq_m_n_u32): Remove.
8805 (__arm_vhsubq_m_n_u16): Remove.
8806 (__arm_vhsubq_m_s8): Remove.
8807 (__arm_vhsubq_m_s32): Remove.
8808 (__arm_vhsubq_m_s16): Remove.
8809 (__arm_vhsubq_m_u8): Remove.
8810 (__arm_vhsubq_m_u32): Remove.
8811 (__arm_vhsubq_m_u16): Remove.
8812 (__arm_vhaddq_x_n_s8): Remove.
8813 (__arm_vhaddq_x_n_s16): Remove.
8814 (__arm_vhaddq_x_n_s32): Remove.
8815 (__arm_vhaddq_x_n_u8): Remove.
8816 (__arm_vhaddq_x_n_u16): Remove.
8817 (__arm_vhaddq_x_n_u32): Remove.
8818 (__arm_vhaddq_x_s8): Remove.
8819 (__arm_vhaddq_x_s16): Remove.
8820 (__arm_vhaddq_x_s32): Remove.
8821 (__arm_vhaddq_x_u8): Remove.
8822 (__arm_vhaddq_x_u16): Remove.
8823 (__arm_vhaddq_x_u32): Remove.
8824 (__arm_vhsubq_x_n_s8): Remove.
8825 (__arm_vhsubq_x_n_s16): Remove.
8826 (__arm_vhsubq_x_n_s32): Remove.
8827 (__arm_vhsubq_x_n_u8): Remove.
8828 (__arm_vhsubq_x_n_u16): Remove.
8829 (__arm_vhsubq_x_n_u32): Remove.
8830 (__arm_vhsubq_x_s8): Remove.
8831 (__arm_vhsubq_x_s16): Remove.
8832 (__arm_vhsubq_x_s32): Remove.
8833 (__arm_vhsubq_x_u8): Remove.
8834 (__arm_vhsubq_x_u16): Remove.
8835 (__arm_vhsubq_x_u32): Remove.
8836 (__arm_vhsubq): Remove.
8837 (__arm_vhaddq): Remove.
8838 (__arm_vhaddq_m): Remove.
8839 (__arm_vhsubq_m): Remove.
8840 (__arm_vhaddq_x): Remove.
8841 (__arm_vhsubq_x): Remove.
8842 (vmulhq): Remove.
8843 (vmulhq_m): Remove.
8844 (vmulhq_x): Remove.
8845 (vmulhq_u8): Remove.
8846 (vmulhq_s8): Remove.
8847 (vmulhq_u16): Remove.
8848 (vmulhq_s16): Remove.
8849 (vmulhq_u32): Remove.
8850 (vmulhq_s32): Remove.
8851 (vmulhq_m_s8): Remove.
8852 (vmulhq_m_s32): Remove.
8853 (vmulhq_m_s16): Remove.
8854 (vmulhq_m_u8): Remove.
8855 (vmulhq_m_u32): Remove.
8856 (vmulhq_m_u16): Remove.
8857 (vmulhq_x_s8): Remove.
8858 (vmulhq_x_s16): Remove.
8859 (vmulhq_x_s32): Remove.
8860 (vmulhq_x_u8): Remove.
8861 (vmulhq_x_u16): Remove.
8862 (vmulhq_x_u32): Remove.
8863 (__arm_vmulhq_u8): Remove.
8864 (__arm_vmulhq_s8): Remove.
8865 (__arm_vmulhq_u16): Remove.
8866 (__arm_vmulhq_s16): Remove.
8867 (__arm_vmulhq_u32): Remove.
8868 (__arm_vmulhq_s32): Remove.
8869 (__arm_vmulhq_m_s8): Remove.
8870 (__arm_vmulhq_m_s32): Remove.
8871 (__arm_vmulhq_m_s16): Remove.
8872 (__arm_vmulhq_m_u8): Remove.
8873 (__arm_vmulhq_m_u32): Remove.
8874 (__arm_vmulhq_m_u16): Remove.
8875 (__arm_vmulhq_x_s8): Remove.
8876 (__arm_vmulhq_x_s16): Remove.
8877 (__arm_vmulhq_x_s32): Remove.
8878 (__arm_vmulhq_x_u8): Remove.
8879 (__arm_vmulhq_x_u16): Remove.
8880 (__arm_vmulhq_x_u32): Remove.
8881 (__arm_vmulhq): Remove.
8882 (__arm_vmulhq_m): Remove.
8883 (__arm_vmulhq_x): Remove.
8884 (vqsubq): Remove.
8885 (vqaddq): Remove.
8886 (vqaddq_m): Remove.
8887 (vqsubq_m): Remove.
8888 (vqsubq_u8): Remove.
8889 (vqsubq_n_u8): Remove.
8890 (vqaddq_u8): Remove.
8891 (vqaddq_n_u8): Remove.
8892 (vqsubq_s8): Remove.
8893 (vqsubq_n_s8): Remove.
8894 (vqaddq_s8): Remove.
8895 (vqaddq_n_s8): Remove.
8896 (vqsubq_u16): Remove.
8897 (vqsubq_n_u16): Remove.
8898 (vqaddq_u16): Remove.
8899 (vqaddq_n_u16): Remove.
8900 (vqsubq_s16): Remove.
8901 (vqsubq_n_s16): Remove.
8902 (vqaddq_s16): Remove.
8903 (vqaddq_n_s16): Remove.
8904 (vqsubq_u32): Remove.
8905 (vqsubq_n_u32): Remove.
8906 (vqaddq_u32): Remove.
8907 (vqaddq_n_u32): Remove.
8908 (vqsubq_s32): Remove.
8909 (vqsubq_n_s32): Remove.
8910 (vqaddq_s32): Remove.
8911 (vqaddq_n_s32): Remove.
8912 (vqaddq_m_n_s8): Remove.
8913 (vqaddq_m_n_s32): Remove.
8914 (vqaddq_m_n_s16): Remove.
8915 (vqaddq_m_n_u8): Remove.
8916 (vqaddq_m_n_u32): Remove.
8917 (vqaddq_m_n_u16): Remove.
8918 (vqaddq_m_s8): Remove.
8919 (vqaddq_m_s32): Remove.
8920 (vqaddq_m_s16): Remove.
8921 (vqaddq_m_u8): Remove.
8922 (vqaddq_m_u32): Remove.
8923 (vqaddq_m_u16): Remove.
8924 (vqsubq_m_n_s8): Remove.
8925 (vqsubq_m_n_s32): Remove.
8926 (vqsubq_m_n_s16): Remove.
8927 (vqsubq_m_n_u8): Remove.
8928 (vqsubq_m_n_u32): Remove.
8929 (vqsubq_m_n_u16): Remove.
8930 (vqsubq_m_s8): Remove.
8931 (vqsubq_m_s32): Remove.
8932 (vqsubq_m_s16): Remove.
8933 (vqsubq_m_u8): Remove.
8934 (vqsubq_m_u32): Remove.
8935 (vqsubq_m_u16): Remove.
8936 (__arm_vqsubq_u8): Remove.
8937 (__arm_vqsubq_n_u8): Remove.
8938 (__arm_vqaddq_u8): Remove.
8939 (__arm_vqaddq_n_u8): Remove.
8940 (__arm_vqsubq_s8): Remove.
8941 (__arm_vqsubq_n_s8): Remove.
8942 (__arm_vqaddq_s8): Remove.
8943 (__arm_vqaddq_n_s8): Remove.
8944 (__arm_vqsubq_u16): Remove.
8945 (__arm_vqsubq_n_u16): Remove.
8946 (__arm_vqaddq_u16): Remove.
8947 (__arm_vqaddq_n_u16): Remove.
8948 (__arm_vqsubq_s16): Remove.
8949 (__arm_vqsubq_n_s16): Remove.
8950 (__arm_vqaddq_s16): Remove.
8951 (__arm_vqaddq_n_s16): Remove.
8952 (__arm_vqsubq_u32): Remove.
8953 (__arm_vqsubq_n_u32): Remove.
8954 (__arm_vqaddq_u32): Remove.
8955 (__arm_vqaddq_n_u32): Remove.
8956 (__arm_vqsubq_s32): Remove.
8957 (__arm_vqsubq_n_s32): Remove.
8958 (__arm_vqaddq_s32): Remove.
8959 (__arm_vqaddq_n_s32): Remove.
8960 (__arm_vqaddq_m_n_s8): Remove.
8961 (__arm_vqaddq_m_n_s32): Remove.
8962 (__arm_vqaddq_m_n_s16): Remove.
8963 (__arm_vqaddq_m_n_u8): Remove.
8964 (__arm_vqaddq_m_n_u32): Remove.
8965 (__arm_vqaddq_m_n_u16): Remove.
8966 (__arm_vqaddq_m_s8): Remove.
8967 (__arm_vqaddq_m_s32): Remove.
8968 (__arm_vqaddq_m_s16): Remove.
8969 (__arm_vqaddq_m_u8): Remove.
8970 (__arm_vqaddq_m_u32): Remove.
8971 (__arm_vqaddq_m_u16): Remove.
8972 (__arm_vqsubq_m_n_s8): Remove.
8973 (__arm_vqsubq_m_n_s32): Remove.
8974 (__arm_vqsubq_m_n_s16): Remove.
8975 (__arm_vqsubq_m_n_u8): Remove.
8976 (__arm_vqsubq_m_n_u32): Remove.
8977 (__arm_vqsubq_m_n_u16): Remove.
8978 (__arm_vqsubq_m_s8): Remove.
8979 (__arm_vqsubq_m_s32): Remove.
8980 (__arm_vqsubq_m_s16): Remove.
8981 (__arm_vqsubq_m_u8): Remove.
8982 (__arm_vqsubq_m_u32): Remove.
8983 (__arm_vqsubq_m_u16): Remove.
8984 (__arm_vqsubq): Remove.
8985 (__arm_vqaddq): Remove.
8986 (__arm_vqaddq_m): Remove.
8987 (__arm_vqsubq_m): Remove.
8988 (vqdmulhq): Remove.
8989 (vqdmulhq_m): Remove.
8990 (vqdmulhq_s8): Remove.
8991 (vqdmulhq_n_s8): Remove.
8992 (vqdmulhq_s16): Remove.
8993 (vqdmulhq_n_s16): Remove.
8994 (vqdmulhq_s32): Remove.
8995 (vqdmulhq_n_s32): Remove.
8996 (vqdmulhq_m_n_s8): Remove.
8997 (vqdmulhq_m_n_s32): Remove.
8998 (vqdmulhq_m_n_s16): Remove.
8999 (vqdmulhq_m_s8): Remove.
9000 (vqdmulhq_m_s32): Remove.
9001 (vqdmulhq_m_s16): Remove.
9002 (__arm_vqdmulhq_s8): Remove.
9003 (__arm_vqdmulhq_n_s8): Remove.
9004 (__arm_vqdmulhq_s16): Remove.
9005 (__arm_vqdmulhq_n_s16): Remove.
9006 (__arm_vqdmulhq_s32): Remove.
9007 (__arm_vqdmulhq_n_s32): Remove.
9008 (__arm_vqdmulhq_m_n_s8): Remove.
9009 (__arm_vqdmulhq_m_n_s32): Remove.
9010 (__arm_vqdmulhq_m_n_s16): Remove.
9011 (__arm_vqdmulhq_m_s8): Remove.
9012 (__arm_vqdmulhq_m_s32): Remove.
9013 (__arm_vqdmulhq_m_s16): Remove.
9014 (__arm_vqdmulhq): Remove.
9015 (__arm_vqdmulhq_m): Remove.
9016 (vrhaddq): Remove.
9017 (vrhaddq_m): Remove.
9018 (vrhaddq_x): Remove.
9019 (vrhaddq_u8): Remove.
9020 (vrhaddq_s8): Remove.
9021 (vrhaddq_u16): Remove.
9022 (vrhaddq_s16): Remove.
9023 (vrhaddq_u32): Remove.
9024 (vrhaddq_s32): Remove.
9025 (vrhaddq_m_s8): Remove.
9026 (vrhaddq_m_s32): Remove.
9027 (vrhaddq_m_s16): Remove.
9028 (vrhaddq_m_u8): Remove.
9029 (vrhaddq_m_u32): Remove.
9030 (vrhaddq_m_u16): Remove.
9031 (vrhaddq_x_s8): Remove.
9032 (vrhaddq_x_s16): Remove.
9033 (vrhaddq_x_s32): Remove.
9034 (vrhaddq_x_u8): Remove.
9035 (vrhaddq_x_u16): Remove.
9036 (vrhaddq_x_u32): Remove.
9037 (__arm_vrhaddq_u8): Remove.
9038 (__arm_vrhaddq_s8): Remove.
9039 (__arm_vrhaddq_u16): Remove.
9040 (__arm_vrhaddq_s16): Remove.
9041 (__arm_vrhaddq_u32): Remove.
9042 (__arm_vrhaddq_s32): Remove.
9043 (__arm_vrhaddq_m_s8): Remove.
9044 (__arm_vrhaddq_m_s32): Remove.
9045 (__arm_vrhaddq_m_s16): Remove.
9046 (__arm_vrhaddq_m_u8): Remove.
9047 (__arm_vrhaddq_m_u32): Remove.
9048 (__arm_vrhaddq_m_u16): Remove.
9049 (__arm_vrhaddq_x_s8): Remove.
9050 (__arm_vrhaddq_x_s16): Remove.
9051 (__arm_vrhaddq_x_s32): Remove.
9052 (__arm_vrhaddq_x_u8): Remove.
9053 (__arm_vrhaddq_x_u16): Remove.
9054 (__arm_vrhaddq_x_u32): Remove.
9055 (__arm_vrhaddq): Remove.
9056 (__arm_vrhaddq_m): Remove.
9057 (__arm_vrhaddq_x): Remove.
9058 (vrmulhq): Remove.
9059 (vrmulhq_m): Remove.
9060 (vrmulhq_x): Remove.
9061 (vrmulhq_u8): Remove.
9062 (vrmulhq_s8): Remove.
9063 (vrmulhq_u16): Remove.
9064 (vrmulhq_s16): Remove.
9065 (vrmulhq_u32): Remove.
9066 (vrmulhq_s32): Remove.
9067 (vrmulhq_m_s8): Remove.
9068 (vrmulhq_m_s32): Remove.
9069 (vrmulhq_m_s16): Remove.
9070 (vrmulhq_m_u8): Remove.
9071 (vrmulhq_m_u32): Remove.
9072 (vrmulhq_m_u16): Remove.
9073 (vrmulhq_x_s8): Remove.
9074 (vrmulhq_x_s16): Remove.
9075 (vrmulhq_x_s32): Remove.
9076 (vrmulhq_x_u8): Remove.
9077 (vrmulhq_x_u16): Remove.
9078 (vrmulhq_x_u32): Remove.
9079 (__arm_vrmulhq_u8): Remove.
9080 (__arm_vrmulhq_s8): Remove.
9081 (__arm_vrmulhq_u16): Remove.
9082 (__arm_vrmulhq_s16): Remove.
9083 (__arm_vrmulhq_u32): Remove.
9084 (__arm_vrmulhq_s32): Remove.
9085 (__arm_vrmulhq_m_s8): Remove.
9086 (__arm_vrmulhq_m_s32): Remove.
9087 (__arm_vrmulhq_m_s16): Remove.
9088 (__arm_vrmulhq_m_u8): Remove.
9089 (__arm_vrmulhq_m_u32): Remove.
9090 (__arm_vrmulhq_m_u16): Remove.
9091 (__arm_vrmulhq_x_s8): Remove.
9092 (__arm_vrmulhq_x_s16): Remove.
9093 (__arm_vrmulhq_x_s32): Remove.
9094 (__arm_vrmulhq_x_u8): Remove.
9095 (__arm_vrmulhq_x_u16): Remove.
9096 (__arm_vrmulhq_x_u32): Remove.
9097 (__arm_vrmulhq): Remove.
9098 (__arm_vrmulhq_m): Remove.
9099 (__arm_vrmulhq_x): Remove.
9100
9101 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9102
9103 * config/arm/iterators.md (MVE_INT_SU_BINARY): New.
9104 (mve_insn): Add vabdq, vhaddq, vhsubq, vmulhq, vqaddq, vqdmulhq,
9105 vqrdmulhq, vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq.
9106 (supf): Add VQDMULHQ_S, VQRDMULHQ_S.
9107 * config/arm/mve.md (mve_vabdq_<supf><mode>)
9108 (@mve_vhaddq_<supf><mode>, mve_vhsubq_<supf><mode>)
9109 (mve_vmulhq_<supf><mode>, mve_vqaddq_<supf><mode>)
9110 (mve_vqdmulhq_s<mode>, mve_vqrdmulhq_s<mode>)
9111 (mve_vqrshlq_<supf><mode>, mve_vqshlq_<supf><mode>)
9112 (mve_vqsubq_<supf><mode>, @mve_vrhaddq_<supf><mode>)
9113 (mve_vrmulhq_<supf><mode>, mve_vrshlq_<supf><mode>): Merge into
9114 ...
9115 (@mve_<mve_insn>q_<supf><mode>): ... this.
9116 * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
9117 (avg<mode>3_ceil, uavg<mode>3_ceil): Use gen_mve_q instead of
9118 gen_mve_vhaddq / gen_mve_vrhaddq.
9119
9120 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9121
9122 * config/arm/iterators.md (MVE_INT_SU_M_N_BINARY): New.
9123 (mve_insn): Add vhaddq, vhsubq, vmlaq, vmlasq, vqaddq, vqdmlahq,
9124 vqdmlashq, vqdmulhq, vqrdmlahq, vqrdmlashq, vqrdmulhq, vqsubq.
9125 (supf): Add VQDMLAHQ_M_N_S, VQDMLASHQ_M_N_S, VQRDMLAHQ_M_N_S,
9126 VQRDMLASHQ_M_N_S, VQDMULHQ_M_N_S, VQRDMULHQ_M_N_S.
9127 * config/arm/mve.md (mve_vhaddq_m_n_<supf><mode>)
9128 (mve_vhsubq_m_n_<supf><mode>, mve_vmlaq_m_n_<supf><mode>)
9129 (mve_vmlasq_m_n_<supf><mode>, mve_vqaddq_m_n_<supf><mode>)
9130 (mve_vqdmlahq_m_n_s<mode>, mve_vqdmlashq_m_n_s<mode>)
9131 (mve_vqrdmlahq_m_n_s<mode>, mve_vqrdmlashq_m_n_s<mode>)
9132 (mve_vqsubq_m_n_<supf><mode>, mve_vqdmulhq_m_n_s<mode>)
9133 (mve_vqrdmulhq_m_n_s<mode>): Merge into ...
9134 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
9135
9136 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9137
9138 * config/arm/iterators.md (MVE_INT_SU_N_BINARY): New.
9139 (mve_insn): Add vhaddq, vhsubq, vqaddq, vqdmulhq, vqrdmulhq,
9140 vqsubq.
9141 (supf): Add VQDMULHQ_N_S, VQRDMULHQ_N_S.
9142 * config/arm/mve.md (mve_vhaddq_n_<supf><mode>)
9143 (mve_vhsubq_n_<supf><mode>, mve_vqaddq_n_<supf><mode>)
9144 (mve_vqdmulhq_n_s<mode>, mve_vqrdmulhq_n_s<mode>)
9145 (mve_vqsubq_n_<supf><mode>): Merge into ...
9146 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
9147
9148 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9149
9150 * config/arm/iterators.md (MVE_INT_SU_M_BINARY): New.
9151 (mve_insn): Add vabdq, vhaddq, vhsubq, vmaxq, vminq, vmulhq,
9152 vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq, vqdmulhq,
9153 vqrdmladhq, vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq, vqrdmulhq,
9154 vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq, vshlq.
9155 (supf): Add VQDMLADHQ_M_S, VQDMLADHXQ_M_S, VQDMLSDHQ_M_S,
9156 VQDMLSDHXQ_M_S, VQDMULHQ_M_S, VQRDMLADHQ_M_S, VQRDMLADHXQ_M_S,
9157 VQRDMLSDHQ_M_S, VQRDMLSDHXQ_M_S, VQRDMULHQ_M_S.
9158 * config/arm/mve.md (@mve_<mve_insn>q_m_<supf><mode>): New.
9159 (mve_vshlq_m_<supf><mode>): Merged into
9160 @mve_<mve_insn>q_m_<supf><mode>.
9161 (mve_vabdq_m_<supf><mode>): Likewise.
9162 (mve_vhaddq_m_<supf><mode>): Likewise.
9163 (mve_vhsubq_m_<supf><mode>): Likewise.
9164 (mve_vmaxq_m_<supf><mode>): Likewise.
9165 (mve_vminq_m_<supf><mode>): Likewise.
9166 (mve_vmulhq_m_<supf><mode>): Likewise.
9167 (mve_vqaddq_m_<supf><mode>): Likewise.
9168 (mve_vqrshlq_m_<supf><mode>): Likewise.
9169 (mve_vqshlq_m_<supf><mode>): Likewise.
9170 (mve_vqsubq_m_<supf><mode>): Likewise.
9171 (mve_vrhaddq_m_<supf><mode>): Likewise.
9172 (mve_vrmulhq_m_<supf><mode>): Likewise.
9173 (mve_vrshlq_m_<supf><mode>): Likewise.
9174 (mve_vqdmladhq_m_s<mode>): Likewise.
9175 (mve_vqdmladhxq_m_s<mode>): Likewise.
9176 (mve_vqdmlsdhq_m_s<mode>): Likewise.
9177 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
9178 (mve_vqdmulhq_m_s<mode>): Likewise.
9179 (mve_vqrdmladhq_m_s<mode>): Likewise.
9180 (mve_vqrdmladhxq_m_s<mode>): Likewise.
9181 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
9182 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
9183 (mve_vqrdmulhq_m_s<mode>): Likewise.
9184
9185 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9186
9187 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_M_N): New. (vcreateq): New.
9188 * config/arm/arm-mve-builtins-base.def (vcreateq): New.
9189 * config/arm/arm-mve-builtins-base.h (vcreateq): New.
9190 * config/arm/arm_mve.h (vcreateq_f16): Remove.
9191 (vcreateq_f32): Remove.
9192 (vcreateq_u8): Remove.
9193 (vcreateq_u16): Remove.
9194 (vcreateq_u32): Remove.
9195 (vcreateq_u64): Remove.
9196 (vcreateq_s8): Remove.
9197 (vcreateq_s16): Remove.
9198 (vcreateq_s32): Remove.
9199 (vcreateq_s64): Remove.
9200 (__arm_vcreateq_u8): Remove.
9201 (__arm_vcreateq_u16): Remove.
9202 (__arm_vcreateq_u32): Remove.
9203 (__arm_vcreateq_u64): Remove.
9204 (__arm_vcreateq_s8): Remove.
9205 (__arm_vcreateq_s16): Remove.
9206 (__arm_vcreateq_s32): Remove.
9207 (__arm_vcreateq_s64): Remove.
9208 (__arm_vcreateq_f16): Remove.
9209 (__arm_vcreateq_f32): Remove.
9210
9211 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9212
9213 * config/arm/iterators.md (MVE_FP_CREATE_ONLY): New.
9214 (mve_insn): Add VCREATEQ_S, VCREATEQ_U, VCREATEQ_F.
9215 * config/arm/mve.md (mve_vcreateq_f<mode>): Rename into ...
9216 (@mve_<mve_insn>q_f<mode>): ... this.
9217 (mve_vcreateq_<supf><mode>): Rename into ...
9218 (@mve_<mve_insn>q_<supf><mode>): ... this.
9219
9220 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9221
9222 * config/arm/arm-mve-builtins-shapes.cc (create): New.
9223 * config/arm/arm-mve-builtins-shapes.h: (create): New.
9224
9225 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9226
9227 * config/arm/arm-mve-builtins-functions.h (class
9228 unspec_mve_function_exact_insn): New.
9229
9230 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9231
9232 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N_NO_N_F): New.
9233 (vorrq): New.
9234 * config/arm/arm-mve-builtins-base.def (vorrq): New.
9235 * config/arm/arm-mve-builtins-base.h (vorrq): New.
9236 * config/arm/arm-mve-builtins.cc
9237 (function_instance::has_inactive_argument): Handle vorrq.
9238 * config/arm/arm_mve.h (vorrq): Remove.
9239 (vorrq_m_n): Remove.
9240 (vorrq_m): Remove.
9241 (vorrq_x): Remove.
9242 (vorrq_u8): Remove.
9243 (vorrq_s8): Remove.
9244 (vorrq_u16): Remove.
9245 (vorrq_s16): Remove.
9246 (vorrq_u32): Remove.
9247 (vorrq_s32): Remove.
9248 (vorrq_n_u16): Remove.
9249 (vorrq_f16): Remove.
9250 (vorrq_n_s16): Remove.
9251 (vorrq_n_u32): Remove.
9252 (vorrq_f32): Remove.
9253 (vorrq_n_s32): Remove.
9254 (vorrq_m_n_s16): Remove.
9255 (vorrq_m_n_u16): Remove.
9256 (vorrq_m_n_s32): Remove.
9257 (vorrq_m_n_u32): Remove.
9258 (vorrq_m_s8): Remove.
9259 (vorrq_m_s32): Remove.
9260 (vorrq_m_s16): Remove.
9261 (vorrq_m_u8): Remove.
9262 (vorrq_m_u32): Remove.
9263 (vorrq_m_u16): Remove.
9264 (vorrq_m_f32): Remove.
9265 (vorrq_m_f16): Remove.
9266 (vorrq_x_s8): Remove.
9267 (vorrq_x_s16): Remove.
9268 (vorrq_x_s32): Remove.
9269 (vorrq_x_u8): Remove.
9270 (vorrq_x_u16): Remove.
9271 (vorrq_x_u32): Remove.
9272 (vorrq_x_f16): Remove.
9273 (vorrq_x_f32): Remove.
9274 (__arm_vorrq_u8): Remove.
9275 (__arm_vorrq_s8): Remove.
9276 (__arm_vorrq_u16): Remove.
9277 (__arm_vorrq_s16): Remove.
9278 (__arm_vorrq_u32): Remove.
9279 (__arm_vorrq_s32): Remove.
9280 (__arm_vorrq_n_u16): Remove.
9281 (__arm_vorrq_n_s16): Remove.
9282 (__arm_vorrq_n_u32): Remove.
9283 (__arm_vorrq_n_s32): Remove.
9284 (__arm_vorrq_m_n_s16): Remove.
9285 (__arm_vorrq_m_n_u16): Remove.
9286 (__arm_vorrq_m_n_s32): Remove.
9287 (__arm_vorrq_m_n_u32): Remove.
9288 (__arm_vorrq_m_s8): Remove.
9289 (__arm_vorrq_m_s32): Remove.
9290 (__arm_vorrq_m_s16): Remove.
9291 (__arm_vorrq_m_u8): Remove.
9292 (__arm_vorrq_m_u32): Remove.
9293 (__arm_vorrq_m_u16): Remove.
9294 (__arm_vorrq_x_s8): Remove.
9295 (__arm_vorrq_x_s16): Remove.
9296 (__arm_vorrq_x_s32): Remove.
9297 (__arm_vorrq_x_u8): Remove.
9298 (__arm_vorrq_x_u16): Remove.
9299 (__arm_vorrq_x_u32): Remove.
9300 (__arm_vorrq_f16): Remove.
9301 (__arm_vorrq_f32): Remove.
9302 (__arm_vorrq_m_f32): Remove.
9303 (__arm_vorrq_m_f16): Remove.
9304 (__arm_vorrq_x_f16): Remove.
9305 (__arm_vorrq_x_f32): Remove.
9306 (__arm_vorrq): Remove.
9307 (__arm_vorrq_m_n): Remove.
9308 (__arm_vorrq_m): Remove.
9309 (__arm_vorrq_x): Remove.
9310
9311 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9312
9313 * config/arm/arm-mve-builtins-shapes.cc (binary_orrq): New.
9314 * config/arm/arm-mve-builtins-shapes.h (binary_orrq): New.
9315 * config/arm/arm-mve-builtins.cc (preds_m_or_none): Remove static.
9316 * config/arm/arm-mve-builtins.h (preds_m_or_none): Declare.
9317
9318 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9319
9320 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M): New.
9321 (vandq,veorq): New.
9322 * config/arm/arm-mve-builtins-base.def (vandq, veorq): New.
9323 * config/arm/arm-mve-builtins-base.h (vandq, veorq): New.
9324 * config/arm/arm_mve.h (vandq): Remove.
9325 (vandq_m): Remove.
9326 (vandq_x): Remove.
9327 (vandq_u8): Remove.
9328 (vandq_s8): Remove.
9329 (vandq_u16): Remove.
9330 (vandq_s16): Remove.
9331 (vandq_u32): Remove.
9332 (vandq_s32): Remove.
9333 (vandq_f16): Remove.
9334 (vandq_f32): Remove.
9335 (vandq_m_s8): Remove.
9336 (vandq_m_s32): Remove.
9337 (vandq_m_s16): Remove.
9338 (vandq_m_u8): Remove.
9339 (vandq_m_u32): Remove.
9340 (vandq_m_u16): Remove.
9341 (vandq_m_f32): Remove.
9342 (vandq_m_f16): Remove.
9343 (vandq_x_s8): Remove.
9344 (vandq_x_s16): Remove.
9345 (vandq_x_s32): Remove.
9346 (vandq_x_u8): Remove.
9347 (vandq_x_u16): Remove.
9348 (vandq_x_u32): Remove.
9349 (vandq_x_f16): Remove.
9350 (vandq_x_f32): Remove.
9351 (__arm_vandq_u8): Remove.
9352 (__arm_vandq_s8): Remove.
9353 (__arm_vandq_u16): Remove.
9354 (__arm_vandq_s16): Remove.
9355 (__arm_vandq_u32): Remove.
9356 (__arm_vandq_s32): Remove.
9357 (__arm_vandq_m_s8): Remove.
9358 (__arm_vandq_m_s32): Remove.
9359 (__arm_vandq_m_s16): Remove.
9360 (__arm_vandq_m_u8): Remove.
9361 (__arm_vandq_m_u32): Remove.
9362 (__arm_vandq_m_u16): Remove.
9363 (__arm_vandq_x_s8): Remove.
9364 (__arm_vandq_x_s16): Remove.
9365 (__arm_vandq_x_s32): Remove.
9366 (__arm_vandq_x_u8): Remove.
9367 (__arm_vandq_x_u16): Remove.
9368 (__arm_vandq_x_u32): Remove.
9369 (__arm_vandq_f16): Remove.
9370 (__arm_vandq_f32): Remove.
9371 (__arm_vandq_m_f32): Remove.
9372 (__arm_vandq_m_f16): Remove.
9373 (__arm_vandq_x_f16): Remove.
9374 (__arm_vandq_x_f32): Remove.
9375 (__arm_vandq): Remove.
9376 (__arm_vandq_m): Remove.
9377 (__arm_vandq_x): Remove.
9378 (veorq_m): Remove.
9379 (veorq_x): Remove.
9380 (veorq_u8): Remove.
9381 (veorq_s8): Remove.
9382 (veorq_u16): Remove.
9383 (veorq_s16): Remove.
9384 (veorq_u32): Remove.
9385 (veorq_s32): Remove.
9386 (veorq_f16): Remove.
9387 (veorq_f32): Remove.
9388 (veorq_m_s8): Remove.
9389 (veorq_m_s32): Remove.
9390 (veorq_m_s16): Remove.
9391 (veorq_m_u8): Remove.
9392 (veorq_m_u32): Remove.
9393 (veorq_m_u16): Remove.
9394 (veorq_m_f32): Remove.
9395 (veorq_m_f16): Remove.
9396 (veorq_x_s8): Remove.
9397 (veorq_x_s16): Remove.
9398 (veorq_x_s32): Remove.
9399 (veorq_x_u8): Remove.
9400 (veorq_x_u16): Remove.
9401 (veorq_x_u32): Remove.
9402 (veorq_x_f16): Remove.
9403 (veorq_x_f32): Remove.
9404 (__arm_veorq_u8): Remove.
9405 (__arm_veorq_s8): Remove.
9406 (__arm_veorq_u16): Remove.
9407 (__arm_veorq_s16): Remove.
9408 (__arm_veorq_u32): Remove.
9409 (__arm_veorq_s32): Remove.
9410 (__arm_veorq_m_s8): Remove.
9411 (__arm_veorq_m_s32): Remove.
9412 (__arm_veorq_m_s16): Remove.
9413 (__arm_veorq_m_u8): Remove.
9414 (__arm_veorq_m_u32): Remove.
9415 (__arm_veorq_m_u16): Remove.
9416 (__arm_veorq_x_s8): Remove.
9417 (__arm_veorq_x_s16): Remove.
9418 (__arm_veorq_x_s32): Remove.
9419 (__arm_veorq_x_u8): Remove.
9420 (__arm_veorq_x_u16): Remove.
9421 (__arm_veorq_x_u32): Remove.
9422 (__arm_veorq_f16): Remove.
9423 (__arm_veorq_f32): Remove.
9424 (__arm_veorq_m_f32): Remove.
9425 (__arm_veorq_m_f16): Remove.
9426 (__arm_veorq_x_f16): Remove.
9427 (__arm_veorq_x_f32): Remove.
9428 (__arm_veorq): Remove.
9429 (__arm_veorq_m): Remove.
9430 (__arm_veorq_x): Remove.
9431
9432 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9433
9434 * config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC)
9435 (MVE_FP_M_BINARY_LOGIC): New.
9436 (MVE_INT_M_N_BINARY_LOGIC): New.
9437 (MVE_INT_N_BINARY_LOGIC): New.
9438 (mve_insn): Add vand, veor, vorr, vbic.
9439 * config/arm/mve.md (mve_vandq_m_<supf><mode>)
9440 (mve_veorq_m_<supf><mode>, mve_vorrq_m_<supf><mode>)
9441 (mve_vbicq_m_<supf><mode>): Merge into ...
9442 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
9443 (mve_vandq_m_f<mode>, mve_veorq_m_f<mode>, mve_vorrq_m_f<mode>)
9444 (mve_vbicq_m_f<mode>): Merge into ...
9445 (@mve_<mve_insn>q_m_f<mode>): ... this.
9446 (mve_vorrq_n_<supf><mode>)
9447 (mve_vbicq_n_<supf><mode>): Merge into ...
9448 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
9449 (mve_vorrq_m_n_<supf><mode>, mve_vbicq_m_n_<supf><mode>): Merge
9450 into ...
9451 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
9452
9453 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9454
9455 * config/arm/arm-mve-builtins-shapes.cc (binary): New.
9456 * config/arm/arm-mve-builtins-shapes.h (binary): New.
9457
9458 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9459
9460 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N):
9461 New.
9462 (vaddq, vmulq, vsubq): New.
9463 * config/arm/arm-mve-builtins-base.def (vaddq, vmulq, vsubq): New.
9464 * config/arm/arm-mve-builtins-base.h (vaddq, vmulq, vsubq): New.
9465 * config/arm/arm_mve.h (vaddq): Remove.
9466 (vaddq_m): Remove.
9467 (vaddq_x): Remove.
9468 (vaddq_n_u8): Remove.
9469 (vaddq_n_s8): Remove.
9470 (vaddq_n_u16): Remove.
9471 (vaddq_n_s16): Remove.
9472 (vaddq_n_u32): Remove.
9473 (vaddq_n_s32): Remove.
9474 (vaddq_n_f16): Remove.
9475 (vaddq_n_f32): Remove.
9476 (vaddq_m_n_s8): Remove.
9477 (vaddq_m_n_s32): Remove.
9478 (vaddq_m_n_s16): Remove.
9479 (vaddq_m_n_u8): Remove.
9480 (vaddq_m_n_u32): Remove.
9481 (vaddq_m_n_u16): Remove.
9482 (vaddq_m_s8): Remove.
9483 (vaddq_m_s32): Remove.
9484 (vaddq_m_s16): Remove.
9485 (vaddq_m_u8): Remove.
9486 (vaddq_m_u32): Remove.
9487 (vaddq_m_u16): Remove.
9488 (vaddq_m_f32): Remove.
9489 (vaddq_m_f16): Remove.
9490 (vaddq_m_n_f32): Remove.
9491 (vaddq_m_n_f16): Remove.
9492 (vaddq_s8): Remove.
9493 (vaddq_s16): Remove.
9494 (vaddq_s32): Remove.
9495 (vaddq_u8): Remove.
9496 (vaddq_u16): Remove.
9497 (vaddq_u32): Remove.
9498 (vaddq_f16): Remove.
9499 (vaddq_f32): Remove.
9500 (vaddq_x_s8): Remove.
9501 (vaddq_x_s16): Remove.
9502 (vaddq_x_s32): Remove.
9503 (vaddq_x_n_s8): Remove.
9504 (vaddq_x_n_s16): Remove.
9505 (vaddq_x_n_s32): Remove.
9506 (vaddq_x_u8): Remove.
9507 (vaddq_x_u16): Remove.
9508 (vaddq_x_u32): Remove.
9509 (vaddq_x_n_u8): Remove.
9510 (vaddq_x_n_u16): Remove.
9511 (vaddq_x_n_u32): Remove.
9512 (vaddq_x_f16): Remove.
9513 (vaddq_x_f32): Remove.
9514 (vaddq_x_n_f16): Remove.
9515 (vaddq_x_n_f32): Remove.
9516 (__arm_vaddq_n_u8): Remove.
9517 (__arm_vaddq_n_s8): Remove.
9518 (__arm_vaddq_n_u16): Remove.
9519 (__arm_vaddq_n_s16): Remove.
9520 (__arm_vaddq_n_u32): Remove.
9521 (__arm_vaddq_n_s32): Remove.
9522 (__arm_vaddq_m_n_s8): Remove.
9523 (__arm_vaddq_m_n_s32): Remove.
9524 (__arm_vaddq_m_n_s16): Remove.
9525 (__arm_vaddq_m_n_u8): Remove.
9526 (__arm_vaddq_m_n_u32): Remove.
9527 (__arm_vaddq_m_n_u16): Remove.
9528 (__arm_vaddq_m_s8): Remove.
9529 (__arm_vaddq_m_s32): Remove.
9530 (__arm_vaddq_m_s16): Remove.
9531 (__arm_vaddq_m_u8): Remove.
9532 (__arm_vaddq_m_u32): Remove.
9533 (__arm_vaddq_m_u16): Remove.
9534 (__arm_vaddq_s8): Remove.
9535 (__arm_vaddq_s16): Remove.
9536 (__arm_vaddq_s32): Remove.
9537 (__arm_vaddq_u8): Remove.
9538 (__arm_vaddq_u16): Remove.
9539 (__arm_vaddq_u32): Remove.
9540 (__arm_vaddq_x_s8): Remove.
9541 (__arm_vaddq_x_s16): Remove.
9542 (__arm_vaddq_x_s32): Remove.
9543 (__arm_vaddq_x_n_s8): Remove.
9544 (__arm_vaddq_x_n_s16): Remove.
9545 (__arm_vaddq_x_n_s32): Remove.
9546 (__arm_vaddq_x_u8): Remove.
9547 (__arm_vaddq_x_u16): Remove.
9548 (__arm_vaddq_x_u32): Remove.
9549 (__arm_vaddq_x_n_u8): Remove.
9550 (__arm_vaddq_x_n_u16): Remove.
9551 (__arm_vaddq_x_n_u32): Remove.
9552 (__arm_vaddq_n_f16): Remove.
9553 (__arm_vaddq_n_f32): Remove.
9554 (__arm_vaddq_m_f32): Remove.
9555 (__arm_vaddq_m_f16): Remove.
9556 (__arm_vaddq_m_n_f32): Remove.
9557 (__arm_vaddq_m_n_f16): Remove.
9558 (__arm_vaddq_f16): Remove.
9559 (__arm_vaddq_f32): Remove.
9560 (__arm_vaddq_x_f16): Remove.
9561 (__arm_vaddq_x_f32): Remove.
9562 (__arm_vaddq_x_n_f16): Remove.
9563 (__arm_vaddq_x_n_f32): Remove.
9564 (__arm_vaddq): Remove.
9565 (__arm_vaddq_m): Remove.
9566 (__arm_vaddq_x): Remove.
9567 (vmulq): Remove.
9568 (vmulq_m): Remove.
9569 (vmulq_x): Remove.
9570 (vmulq_u8): Remove.
9571 (vmulq_n_u8): Remove.
9572 (vmulq_s8): Remove.
9573 (vmulq_n_s8): Remove.
9574 (vmulq_u16): Remove.
9575 (vmulq_n_u16): Remove.
9576 (vmulq_s16): Remove.
9577 (vmulq_n_s16): Remove.
9578 (vmulq_u32): Remove.
9579 (vmulq_n_u32): Remove.
9580 (vmulq_s32): Remove.
9581 (vmulq_n_s32): Remove.
9582 (vmulq_n_f16): Remove.
9583 (vmulq_f16): Remove.
9584 (vmulq_n_f32): Remove.
9585 (vmulq_f32): Remove.
9586 (vmulq_m_n_s8): Remove.
9587 (vmulq_m_n_s32): Remove.
9588 (vmulq_m_n_s16): Remove.
9589 (vmulq_m_n_u8): Remove.
9590 (vmulq_m_n_u32): Remove.
9591 (vmulq_m_n_u16): Remove.
9592 (vmulq_m_s8): Remove.
9593 (vmulq_m_s32): Remove.
9594 (vmulq_m_s16): Remove.
9595 (vmulq_m_u8): Remove.
9596 (vmulq_m_u32): Remove.
9597 (vmulq_m_u16): Remove.
9598 (vmulq_m_f32): Remove.
9599 (vmulq_m_f16): Remove.
9600 (vmulq_m_n_f32): Remove.
9601 (vmulq_m_n_f16): Remove.
9602 (vmulq_x_s8): Remove.
9603 (vmulq_x_s16): Remove.
9604 (vmulq_x_s32): Remove.
9605 (vmulq_x_n_s8): Remove.
9606 (vmulq_x_n_s16): Remove.
9607 (vmulq_x_n_s32): Remove.
9608 (vmulq_x_u8): Remove.
9609 (vmulq_x_u16): Remove.
9610 (vmulq_x_u32): Remove.
9611 (vmulq_x_n_u8): Remove.
9612 (vmulq_x_n_u16): Remove.
9613 (vmulq_x_n_u32): Remove.
9614 (vmulq_x_f16): Remove.
9615 (vmulq_x_f32): Remove.
9616 (vmulq_x_n_f16): Remove.
9617 (vmulq_x_n_f32): Remove.
9618 (__arm_vmulq_u8): Remove.
9619 (__arm_vmulq_n_u8): Remove.
9620 (__arm_vmulq_s8): Remove.
9621 (__arm_vmulq_n_s8): Remove.
9622 (__arm_vmulq_u16): Remove.
9623 (__arm_vmulq_n_u16): Remove.
9624 (__arm_vmulq_s16): Remove.
9625 (__arm_vmulq_n_s16): Remove.
9626 (__arm_vmulq_u32): Remove.
9627 (__arm_vmulq_n_u32): Remove.
9628 (__arm_vmulq_s32): Remove.
9629 (__arm_vmulq_n_s32): Remove.
9630 (__arm_vmulq_m_n_s8): Remove.
9631 (__arm_vmulq_m_n_s32): Remove.
9632 (__arm_vmulq_m_n_s16): Remove.
9633 (__arm_vmulq_m_n_u8): Remove.
9634 (__arm_vmulq_m_n_u32): Remove.
9635 (__arm_vmulq_m_n_u16): Remove.
9636 (__arm_vmulq_m_s8): Remove.
9637 (__arm_vmulq_m_s32): Remove.
9638 (__arm_vmulq_m_s16): Remove.
9639 (__arm_vmulq_m_u8): Remove.
9640 (__arm_vmulq_m_u32): Remove.
9641 (__arm_vmulq_m_u16): Remove.
9642 (__arm_vmulq_x_s8): Remove.
9643 (__arm_vmulq_x_s16): Remove.
9644 (__arm_vmulq_x_s32): Remove.
9645 (__arm_vmulq_x_n_s8): Remove.
9646 (__arm_vmulq_x_n_s16): Remove.
9647 (__arm_vmulq_x_n_s32): Remove.
9648 (__arm_vmulq_x_u8): Remove.
9649 (__arm_vmulq_x_u16): Remove.
9650 (__arm_vmulq_x_u32): Remove.
9651 (__arm_vmulq_x_n_u8): Remove.
9652 (__arm_vmulq_x_n_u16): Remove.
9653 (__arm_vmulq_x_n_u32): Remove.
9654 (__arm_vmulq_n_f16): Remove.
9655 (__arm_vmulq_f16): Remove.
9656 (__arm_vmulq_n_f32): Remove.
9657 (__arm_vmulq_f32): Remove.
9658 (__arm_vmulq_m_f32): Remove.
9659 (__arm_vmulq_m_f16): Remove.
9660 (__arm_vmulq_m_n_f32): Remove.
9661 (__arm_vmulq_m_n_f16): Remove.
9662 (__arm_vmulq_x_f16): Remove.
9663 (__arm_vmulq_x_f32): Remove.
9664 (__arm_vmulq_x_n_f16): Remove.
9665 (__arm_vmulq_x_n_f32): Remove.
9666 (__arm_vmulq): Remove.
9667 (__arm_vmulq_m): Remove.
9668 (__arm_vmulq_x): Remove.
9669 (vsubq): Remove.
9670 (vsubq_m): Remove.
9671 (vsubq_x): Remove.
9672 (vsubq_n_f16): Remove.
9673 (vsubq_n_f32): Remove.
9674 (vsubq_u8): Remove.
9675 (vsubq_n_u8): Remove.
9676 (vsubq_s8): Remove.
9677 (vsubq_n_s8): Remove.
9678 (vsubq_u16): Remove.
9679 (vsubq_n_u16): Remove.
9680 (vsubq_s16): Remove.
9681 (vsubq_n_s16): Remove.
9682 (vsubq_u32): Remove.
9683 (vsubq_n_u32): Remove.
9684 (vsubq_s32): Remove.
9685 (vsubq_n_s32): Remove.
9686 (vsubq_f16): Remove.
9687 (vsubq_f32): Remove.
9688 (vsubq_m_s8): Remove.
9689 (vsubq_m_u8): Remove.
9690 (vsubq_m_s16): Remove.
9691 (vsubq_m_u16): Remove.
9692 (vsubq_m_s32): Remove.
9693 (vsubq_m_u32): Remove.
9694 (vsubq_m_n_s8): Remove.
9695 (vsubq_m_n_s32): Remove.
9696 (vsubq_m_n_s16): Remove.
9697 (vsubq_m_n_u8): Remove.
9698 (vsubq_m_n_u32): Remove.
9699 (vsubq_m_n_u16): Remove.
9700 (vsubq_m_f32): Remove.
9701 (vsubq_m_f16): Remove.
9702 (vsubq_m_n_f32): Remove.
9703 (vsubq_m_n_f16): Remove.
9704 (vsubq_x_s8): Remove.
9705 (vsubq_x_s16): Remove.
9706 (vsubq_x_s32): Remove.
9707 (vsubq_x_n_s8): Remove.
9708 (vsubq_x_n_s16): Remove.
9709 (vsubq_x_n_s32): Remove.
9710 (vsubq_x_u8): Remove.
9711 (vsubq_x_u16): Remove.
9712 (vsubq_x_u32): Remove.
9713 (vsubq_x_n_u8): Remove.
9714 (vsubq_x_n_u16): Remove.
9715 (vsubq_x_n_u32): Remove.
9716 (vsubq_x_f16): Remove.
9717 (vsubq_x_f32): Remove.
9718 (vsubq_x_n_f16): Remove.
9719 (vsubq_x_n_f32): Remove.
9720 (__arm_vsubq_u8): Remove.
9721 (__arm_vsubq_n_u8): Remove.
9722 (__arm_vsubq_s8): Remove.
9723 (__arm_vsubq_n_s8): Remove.
9724 (__arm_vsubq_u16): Remove.
9725 (__arm_vsubq_n_u16): Remove.
9726 (__arm_vsubq_s16): Remove.
9727 (__arm_vsubq_n_s16): Remove.
9728 (__arm_vsubq_u32): Remove.
9729 (__arm_vsubq_n_u32): Remove.
9730 (__arm_vsubq_s32): Remove.
9731 (__arm_vsubq_n_s32): Remove.
9732 (__arm_vsubq_m_s8): Remove.
9733 (__arm_vsubq_m_u8): Remove.
9734 (__arm_vsubq_m_s16): Remove.
9735 (__arm_vsubq_m_u16): Remove.
9736 (__arm_vsubq_m_s32): Remove.
9737 (__arm_vsubq_m_u32): Remove.
9738 (__arm_vsubq_m_n_s8): Remove.
9739 (__arm_vsubq_m_n_s32): Remove.
9740 (__arm_vsubq_m_n_s16): Remove.
9741 (__arm_vsubq_m_n_u8): Remove.
9742 (__arm_vsubq_m_n_u32): Remove.
9743 (__arm_vsubq_m_n_u16): Remove.
9744 (__arm_vsubq_x_s8): Remove.
9745 (__arm_vsubq_x_s16): Remove.
9746 (__arm_vsubq_x_s32): Remove.
9747 (__arm_vsubq_x_n_s8): Remove.
9748 (__arm_vsubq_x_n_s16): Remove.
9749 (__arm_vsubq_x_n_s32): Remove.
9750 (__arm_vsubq_x_u8): Remove.
9751 (__arm_vsubq_x_u16): Remove.
9752 (__arm_vsubq_x_u32): Remove.
9753 (__arm_vsubq_x_n_u8): Remove.
9754 (__arm_vsubq_x_n_u16): Remove.
9755 (__arm_vsubq_x_n_u32): Remove.
9756 (__arm_vsubq_n_f16): Remove.
9757 (__arm_vsubq_n_f32): Remove.
9758 (__arm_vsubq_f16): Remove.
9759 (__arm_vsubq_f32): Remove.
9760 (__arm_vsubq_m_f32): Remove.
9761 (__arm_vsubq_m_f16): Remove.
9762 (__arm_vsubq_m_n_f32): Remove.
9763 (__arm_vsubq_m_n_f16): Remove.
9764 (__arm_vsubq_x_f16): Remove.
9765 (__arm_vsubq_x_f32): Remove.
9766 (__arm_vsubq_x_n_f16): Remove.
9767 (__arm_vsubq_x_n_f32): Remove.
9768 (__arm_vsubq): Remove.
9769 (__arm_vsubq_m): Remove.
9770 (__arm_vsubq_x): Remove.
9771 * config/arm/arm_mve_builtins.def (vsubq_u, vsubq_s, vsubq_f):
9772 Remove.
9773 (vmulq_u, vmulq_s, vmulq_f): Remove.
9774 * config/arm/mve.md (mve_vsubq_<supf><mode>): Remove.
9775 (mve_vmulq_<supf><mode>): Remove.
9776
9777 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9778
9779 * config/arm/iterators.md (MVE_INT_BINARY_RTX, MVE_INT_M_BINARY)
9780 (MVE_INT_M_N_BINARY, MVE_INT_N_BINARY, MVE_FP_M_BINARY)
9781 (MVE_FP_M_N_BINARY, MVE_FP_N_BINARY, mve_addsubmul, mve_insn): New
9782 iterators.
9783 * config/arm/mve.md
9784 (mve_vsubq_n_f<mode>, mve_vaddq_n_f<mode>, mve_vmulq_n_f<mode>):
9785 Factorize into ...
9786 (@mve_<mve_insn>q_n_f<mode>): ... this.
9787 (mve_vaddq_n_<supf><mode>, mve_vmulq_n_<supf><mode>)
9788 (mve_vsubq_n_<supf><mode>): Factorize into ...
9789 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
9790 (mve_vaddq<mode>, mve_vmulq<mode>, mve_vsubq<mode>): Factorize
9791 into ...
9792 (mve_<mve_addsubmul>q<mode>): ... this.
9793 (mve_vaddq_f<mode>, mve_vmulq_f<mode>, mve_vsubq_f<mode>):
9794 Factorize into ...
9795 (mve_<mve_addsubmul>q_f<mode>): ... this.
9796 (mve_vaddq_m_<supf><mode>, mve_vmulq_m_<supf><mode>)
9797 (mve_vsubq_m_<supf><mode>): Factorize into ...
9798 (@mve_<mve_insn>q_m_<supf><mode>): ... this,
9799 (mve_vaddq_m_n_<supf><mode>, mve_vmulq_m_n_<supf><mode>)
9800 (mve_vsubq_m_n_<supf><mode>): Factorize into ...
9801 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
9802 (mve_vaddq_m_f<mode>, mve_vmulq_m_f<mode>, mve_vsubq_m_f<mode>):
9803 Factorize into ...
9804 (@mve_<mve_insn>q_m_f<mode>): ... this.
9805 (mve_vaddq_m_n_f<mode>, mve_vmulq_m_n_f<mode>)
9806 (mve_vsubq_m_n_f<mode>): Factorize into ...
9807 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
9808
9809 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9810
9811 * config/arm/arm-mve-builtins-functions.h (class
9812 unspec_based_mve_function_base): New.
9813 (class unspec_based_mve_function_exact_insn): New.
9814
9815 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9816
9817 * config/arm/arm-mve-builtins-shapes.cc (binary_opt_n): New.
9818 * config/arm/arm-mve-builtins-shapes.h (binary_opt_n): New.
9819
9820 2023-05-03 Murray Steele <murray.steele@arm.com>
9821 Christophe Lyon <christophe.lyon@arm.com>
9822
9823 * config/arm/arm-mve-builtins-base.cc (class
9824 vuninitializedq_impl): New.
9825 * config/arm/arm-mve-builtins-base.def (vuninitializedq): New.
9826 * config/arm/arm-mve-builtins-base.h (vuninitializedq): New
9827 declaration.
9828 * config/arm/arm-mve-builtins-shapes.cc (inherent): New.
9829 * config/arm/arm-mve-builtins-shapes.h (inherent): New
9830 declaration.
9831 * config/arm/arm_mve_types.h (__arm_vuninitializedq): Move to ...
9832 * config/arm/arm_mve.h (__arm_vuninitializedq): ... here.
9833 (__arm_vuninitializedq_u8): Remove.
9834 (__arm_vuninitializedq_u16): Remove.
9835 (__arm_vuninitializedq_u32): Remove.
9836 (__arm_vuninitializedq_u64): Remove.
9837 (__arm_vuninitializedq_s8): Remove.
9838 (__arm_vuninitializedq_s16): Remove.
9839 (__arm_vuninitializedq_s32): Remove.
9840 (__arm_vuninitializedq_s64): Remove.
9841 (__arm_vuninitializedq_f16): Remove.
9842 (__arm_vuninitializedq_f32): Remove.
9843
9844 2023-05-03 Murray Steele <murray.steele@arm.com>
9845 Christophe Lyon <christophe.lyon@arm.com>
9846
9847 * config/arm/arm-mve-builtins-base.cc (vreinterpretq_impl): New class.
9848 * config/arm/arm-mve-builtins-base.def: Define vreinterpretq.
9849 * config/arm/arm-mve-builtins-base.h (vreinterpretq): New declaration.
9850 * config/arm/arm-mve-builtins-shapes.cc (parse_element_type): New function.
9851 (parse_type): Likewise.
9852 (parse_signature): Likewise.
9853 (build_one): Likewise.
9854 (build_all): Likewise.
9855 (overloaded_base): New struct.
9856 (unary_convert_def): Likewise.
9857 * config/arm/arm-mve-builtins-shapes.h (unary_convert): Declare.
9858 * config/arm/arm-mve-builtins.cc (TYPES_reinterpret_signed1): New
9859 macro.
9860 (TYPES_reinterpret_unsigned1): Likewise.
9861 (TYPES_reinterpret_integer): Likewise.
9862 (TYPES_reinterpret_integer1): Likewise.
9863 (TYPES_reinterpret_float1): Likewise.
9864 (TYPES_reinterpret_float): Likewise.
9865 (reinterpret_integer): New.
9866 (reinterpret_float): New.
9867 (handle_arm_mve_h): Register builtins.
9868 * config/arm/arm_mve.h (vreinterpretq_s16): Remove.
9869 (vreinterpretq_s32): Likewise.
9870 (vreinterpretq_s64): Likewise.
9871 (vreinterpretq_s8): Likewise.
9872 (vreinterpretq_u16): Likewise.
9873 (vreinterpretq_u32): Likewise.
9874 (vreinterpretq_u64): Likewise.
9875 (vreinterpretq_u8): Likewise.
9876 (vreinterpretq_f16): Likewise.
9877 (vreinterpretq_f32): Likewise.
9878 (vreinterpretq_s16_s32): Likewise.
9879 (vreinterpretq_s16_s64): Likewise.
9880 (vreinterpretq_s16_s8): Likewise.
9881 (vreinterpretq_s16_u16): Likewise.
9882 (vreinterpretq_s16_u32): Likewise.
9883 (vreinterpretq_s16_u64): Likewise.
9884 (vreinterpretq_s16_u8): Likewise.
9885 (vreinterpretq_s32_s16): Likewise.
9886 (vreinterpretq_s32_s64): Likewise.
9887 (vreinterpretq_s32_s8): Likewise.
9888 (vreinterpretq_s32_u16): Likewise.
9889 (vreinterpretq_s32_u32): Likewise.
9890 (vreinterpretq_s32_u64): Likewise.
9891 (vreinterpretq_s32_u8): Likewise.
9892 (vreinterpretq_s64_s16): Likewise.
9893 (vreinterpretq_s64_s32): Likewise.
9894 (vreinterpretq_s64_s8): Likewise.
9895 (vreinterpretq_s64_u16): Likewise.
9896 (vreinterpretq_s64_u32): Likewise.
9897 (vreinterpretq_s64_u64): Likewise.
9898 (vreinterpretq_s64_u8): Likewise.
9899 (vreinterpretq_s8_s16): Likewise.
9900 (vreinterpretq_s8_s32): Likewise.
9901 (vreinterpretq_s8_s64): Likewise.
9902 (vreinterpretq_s8_u16): Likewise.
9903 (vreinterpretq_s8_u32): Likewise.
9904 (vreinterpretq_s8_u64): Likewise.
9905 (vreinterpretq_s8_u8): Likewise.
9906 (vreinterpretq_u16_s16): Likewise.
9907 (vreinterpretq_u16_s32): Likewise.
9908 (vreinterpretq_u16_s64): Likewise.
9909 (vreinterpretq_u16_s8): Likewise.
9910 (vreinterpretq_u16_u32): Likewise.
9911 (vreinterpretq_u16_u64): Likewise.
9912 (vreinterpretq_u16_u8): Likewise.
9913 (vreinterpretq_u32_s16): Likewise.
9914 (vreinterpretq_u32_s32): Likewise.
9915 (vreinterpretq_u32_s64): Likewise.
9916 (vreinterpretq_u32_s8): Likewise.
9917 (vreinterpretq_u32_u16): Likewise.
9918 (vreinterpretq_u32_u64): Likewise.
9919 (vreinterpretq_u32_u8): Likewise.
9920 (vreinterpretq_u64_s16): Likewise.
9921 (vreinterpretq_u64_s32): Likewise.
9922 (vreinterpretq_u64_s64): Likewise.
9923 (vreinterpretq_u64_s8): Likewise.
9924 (vreinterpretq_u64_u16): Likewise.
9925 (vreinterpretq_u64_u32): Likewise.
9926 (vreinterpretq_u64_u8): Likewise.
9927 (vreinterpretq_u8_s16): Likewise.
9928 (vreinterpretq_u8_s32): Likewise.
9929 (vreinterpretq_u8_s64): Likewise.
9930 (vreinterpretq_u8_s8): Likewise.
9931 (vreinterpretq_u8_u16): Likewise.
9932 (vreinterpretq_u8_u32): Likewise.
9933 (vreinterpretq_u8_u64): Likewise.
9934 (vreinterpretq_s32_f16): Likewise.
9935 (vreinterpretq_s32_f32): Likewise.
9936 (vreinterpretq_u16_f16): Likewise.
9937 (vreinterpretq_u16_f32): Likewise.
9938 (vreinterpretq_u32_f16): Likewise.
9939 (vreinterpretq_u32_f32): Likewise.
9940 (vreinterpretq_u64_f16): Likewise.
9941 (vreinterpretq_u64_f32): Likewise.
9942 (vreinterpretq_u8_f16): Likewise.
9943 (vreinterpretq_u8_f32): Likewise.
9944 (vreinterpretq_f16_f32): Likewise.
9945 (vreinterpretq_f16_s16): Likewise.
9946 (vreinterpretq_f16_s32): Likewise.
9947 (vreinterpretq_f16_s64): Likewise.
9948 (vreinterpretq_f16_s8): Likewise.
9949 (vreinterpretq_f16_u16): Likewise.
9950 (vreinterpretq_f16_u32): Likewise.
9951 (vreinterpretq_f16_u64): Likewise.
9952 (vreinterpretq_f16_u8): Likewise.
9953 (vreinterpretq_f32_f16): Likewise.
9954 (vreinterpretq_f32_s16): Likewise.
9955 (vreinterpretq_f32_s32): Likewise.
9956 (vreinterpretq_f32_s64): Likewise.
9957 (vreinterpretq_f32_s8): Likewise.
9958 (vreinterpretq_f32_u16): Likewise.
9959 (vreinterpretq_f32_u32): Likewise.
9960 (vreinterpretq_f32_u64): Likewise.
9961 (vreinterpretq_f32_u8): Likewise.
9962 (vreinterpretq_s16_f16): Likewise.
9963 (vreinterpretq_s16_f32): Likewise.
9964 (vreinterpretq_s64_f16): Likewise.
9965 (vreinterpretq_s64_f32): Likewise.
9966 (vreinterpretq_s8_f16): Likewise.
9967 (vreinterpretq_s8_f32): Likewise.
9968 (__arm_vreinterpretq_f16): Likewise.
9969 (__arm_vreinterpretq_f32): Likewise.
9970 (__arm_vreinterpretq_s16): Likewise.
9971 (__arm_vreinterpretq_s32): Likewise.
9972 (__arm_vreinterpretq_s64): Likewise.
9973 (__arm_vreinterpretq_s8): Likewise.
9974 (__arm_vreinterpretq_u16): Likewise.
9975 (__arm_vreinterpretq_u32): Likewise.
9976 (__arm_vreinterpretq_u64): Likewise.
9977 (__arm_vreinterpretq_u8): Likewise.
9978 * config/arm/arm_mve_types.h (__arm_vreinterpretq_s16_s32): Remove.
9979 (__arm_vreinterpretq_s16_s64): Likewise.
9980 (__arm_vreinterpretq_s16_s8): Likewise.
9981 (__arm_vreinterpretq_s16_u16): Likewise.
9982 (__arm_vreinterpretq_s16_u32): Likewise.
9983 (__arm_vreinterpretq_s16_u64): Likewise.
9984 (__arm_vreinterpretq_s16_u8): Likewise.
9985 (__arm_vreinterpretq_s32_s16): Likewise.
9986 (__arm_vreinterpretq_s32_s64): Likewise.
9987 (__arm_vreinterpretq_s32_s8): Likewise.
9988 (__arm_vreinterpretq_s32_u16): Likewise.
9989 (__arm_vreinterpretq_s32_u32): Likewise.
9990 (__arm_vreinterpretq_s32_u64): Likewise.
9991 (__arm_vreinterpretq_s32_u8): Likewise.
9992 (__arm_vreinterpretq_s64_s16): Likewise.
9993 (__arm_vreinterpretq_s64_s32): Likewise.
9994 (__arm_vreinterpretq_s64_s8): Likewise.
9995 (__arm_vreinterpretq_s64_u16): Likewise.
9996 (__arm_vreinterpretq_s64_u32): Likewise.
9997 (__arm_vreinterpretq_s64_u64): Likewise.
9998 (__arm_vreinterpretq_s64_u8): Likewise.
9999 (__arm_vreinterpretq_s8_s16): Likewise.
10000 (__arm_vreinterpretq_s8_s32): Likewise.
10001 (__arm_vreinterpretq_s8_s64): Likewise.
10002 (__arm_vreinterpretq_s8_u16): Likewise.
10003 (__arm_vreinterpretq_s8_u32): Likewise.
10004 (__arm_vreinterpretq_s8_u64): Likewise.
10005 (__arm_vreinterpretq_s8_u8): Likewise.
10006 (__arm_vreinterpretq_u16_s16): Likewise.
10007 (__arm_vreinterpretq_u16_s32): Likewise.
10008 (__arm_vreinterpretq_u16_s64): Likewise.
10009 (__arm_vreinterpretq_u16_s8): Likewise.
10010 (__arm_vreinterpretq_u16_u32): Likewise.
10011 (__arm_vreinterpretq_u16_u64): Likewise.
10012 (__arm_vreinterpretq_u16_u8): Likewise.
10013 (__arm_vreinterpretq_u32_s16): Likewise.
10014 (__arm_vreinterpretq_u32_s32): Likewise.
10015 (__arm_vreinterpretq_u32_s64): Likewise.
10016 (__arm_vreinterpretq_u32_s8): Likewise.
10017 (__arm_vreinterpretq_u32_u16): Likewise.
10018 (__arm_vreinterpretq_u32_u64): Likewise.
10019 (__arm_vreinterpretq_u32_u8): Likewise.
10020 (__arm_vreinterpretq_u64_s16): Likewise.
10021 (__arm_vreinterpretq_u64_s32): Likewise.
10022 (__arm_vreinterpretq_u64_s64): Likewise.
10023 (__arm_vreinterpretq_u64_s8): Likewise.
10024 (__arm_vreinterpretq_u64_u16): Likewise.
10025 (__arm_vreinterpretq_u64_u32): Likewise.
10026 (__arm_vreinterpretq_u64_u8): Likewise.
10027 (__arm_vreinterpretq_u8_s16): Likewise.
10028 (__arm_vreinterpretq_u8_s32): Likewise.
10029 (__arm_vreinterpretq_u8_s64): Likewise.
10030 (__arm_vreinterpretq_u8_s8): Likewise.
10031 (__arm_vreinterpretq_u8_u16): Likewise.
10032 (__arm_vreinterpretq_u8_u32): Likewise.
10033 (__arm_vreinterpretq_u8_u64): Likewise.
10034 (__arm_vreinterpretq_s32_f16): Likewise.
10035 (__arm_vreinterpretq_s32_f32): Likewise.
10036 (__arm_vreinterpretq_s16_f16): Likewise.
10037 (__arm_vreinterpretq_s16_f32): Likewise.
10038 (__arm_vreinterpretq_s64_f16): Likewise.
10039 (__arm_vreinterpretq_s64_f32): Likewise.
10040 (__arm_vreinterpretq_s8_f16): Likewise.
10041 (__arm_vreinterpretq_s8_f32): Likewise.
10042 (__arm_vreinterpretq_u16_f16): Likewise.
10043 (__arm_vreinterpretq_u16_f32): Likewise.
10044 (__arm_vreinterpretq_u32_f16): Likewise.
10045 (__arm_vreinterpretq_u32_f32): Likewise.
10046 (__arm_vreinterpretq_u64_f16): Likewise.
10047 (__arm_vreinterpretq_u64_f32): Likewise.
10048 (__arm_vreinterpretq_u8_f16): Likewise.
10049 (__arm_vreinterpretq_u8_f32): Likewise.
10050 (__arm_vreinterpretq_f16_f32): Likewise.
10051 (__arm_vreinterpretq_f16_s16): Likewise.
10052 (__arm_vreinterpretq_f16_s32): Likewise.
10053 (__arm_vreinterpretq_f16_s64): Likewise.
10054 (__arm_vreinterpretq_f16_s8): Likewise.
10055 (__arm_vreinterpretq_f16_u16): Likewise.
10056 (__arm_vreinterpretq_f16_u32): Likewise.
10057 (__arm_vreinterpretq_f16_u64): Likewise.
10058 (__arm_vreinterpretq_f16_u8): Likewise.
10059 (__arm_vreinterpretq_f32_f16): Likewise.
10060 (__arm_vreinterpretq_f32_s16): Likewise.
10061 (__arm_vreinterpretq_f32_s32): Likewise.
10062 (__arm_vreinterpretq_f32_s64): Likewise.
10063 (__arm_vreinterpretq_f32_s8): Likewise.
10064 (__arm_vreinterpretq_f32_u16): Likewise.
10065 (__arm_vreinterpretq_f32_u32): Likewise.
10066 (__arm_vreinterpretq_f32_u64): Likewise.
10067 (__arm_vreinterpretq_f32_u8): Likewise.
10068 (__arm_vreinterpretq_s16): Likewise.
10069 (__arm_vreinterpretq_s32): Likewise.
10070 (__arm_vreinterpretq_s64): Likewise.
10071 (__arm_vreinterpretq_s8): Likewise.
10072 (__arm_vreinterpretq_u16): Likewise.
10073 (__arm_vreinterpretq_u32): Likewise.
10074 (__arm_vreinterpretq_u64): Likewise.
10075 (__arm_vreinterpretq_u8): Likewise.
10076 (__arm_vreinterpretq_f16): Likewise.
10077 (__arm_vreinterpretq_f32): Likewise.
10078 * config/arm/mve.md (@arm_mve_reinterpret<mode>): New pattern.
10079 * config/arm/unspecs.md: (REINTERPRET): New unspec.
10080
10081 2023-05-03 Murray Steele <murray.steele@arm.com>
10082 Christophe Lyon <christophe.lyon@arm.com>
10083 Christophe Lyon <christophe.lyon@arm.com
10084
10085 * config.gcc: Add arm-mve-builtins-base.o and
10086 arm-mve-builtins-shapes.o to extra_objs.
10087 * config/arm/arm-builtins.cc (arm_builtin_decl): Handle MVE builtin
10088 numberspace.
10089 (arm_expand_builtin): Likewise
10090 (arm_check_builtin_call): Likewise
10091 (arm_describe_resolver): Likewise.
10092 * config/arm/arm-builtins.h (enum resolver_ident): Add
10093 arm_mve_resolver.
10094 * config/arm/arm-c.cc (arm_pragma_arm): Handle new pragma.
10095 (arm_resolve_overloaded_builtin): Handle MVE builtins.
10096 (arm_register_target_pragmas): Register arm_check_builtin_call.
10097 * config/arm/arm-mve-builtins.cc (class registered_function): New
10098 class.
10099 (struct registered_function_hasher): New struct.
10100 (pred_suffixes): New table.
10101 (mode_suffixes): New table.
10102 (type_suffix_info): New table.
10103 (TYPES_float16): New.
10104 (TYPES_all_float): New.
10105 (TYPES_integer_8): New.
10106 (TYPES_integer_8_16): New.
10107 (TYPES_integer_16_32): New.
10108 (TYPES_integer_32): New.
10109 (TYPES_signed_16_32): New.
10110 (TYPES_signed_32): New.
10111 (TYPES_all_signed): New.
10112 (TYPES_all_unsigned): New.
10113 (TYPES_all_integer): New.
10114 (TYPES_all_integer_with_64): New.
10115 (DEF_VECTOR_TYPE): New.
10116 (DEF_DOUBLE_TYPE): New.
10117 (DEF_MVE_TYPES_ARRAY): New.
10118 (all_integer): New.
10119 (all_integer_with_64): New.
10120 (float16): New.
10121 (all_float): New.
10122 (all_signed): New.
10123 (all_unsigned): New.
10124 (integer_8): New.
10125 (integer_8_16): New.
10126 (integer_16_32): New.
10127 (integer_32): New.
10128 (signed_16_32): New.
10129 (signed_32): New.
10130 (register_vector_type): Use void_type_node for mve.fp-only types when
10131 mve.fp is not enabled.
10132 (register_builtin_tuple_types): Likewise.
10133 (handle_arm_mve_h): New function..
10134 (matches_type_p): Likewise..
10135 (report_out_of_range): Likewise.
10136 (report_not_enum): Likewise.
10137 (report_missing_float): Likewise.
10138 (report_non_ice): Likewise.
10139 (check_requires_float): Likewise.
10140 (function_instance::hash): Likewise
10141 (function_instance::call_properties): Likewise.
10142 (function_instance::reads_global_state_p): Likewise.
10143 (function_instance::modifies_global_state_p): Likewise.
10144 (function_instance::could_trap_p): Likewise.
10145 (function_instance::has_inactive_argument): Likewise.
10146 (registered_function_hasher::hash): Likewise.
10147 (registered_function_hasher::equal): Likewise.
10148 (function_builder::function_builder): Likewise.
10149 (function_builder::~function_builder): Likewise.
10150 (function_builder::append_name): Likewise.
10151 (function_builder::finish_name): Likewise.
10152 (function_builder::get_name): Likewise.
10153 (add_attribute): Likewise.
10154 (function_builder::get_attributes): Likewise.
10155 (function_builder::add_function): Likewise.
10156 (function_builder::add_unique_function): Likewise.
10157 (function_builder::add_overloaded_function): Likewise.
10158 (function_builder::add_overloaded_functions): Likewise.
10159 (function_builder::register_function_group): Likewise.
10160 (function_call_info::function_call_info): Likewise.
10161 (function_resolver::function_resolver): Likewise.
10162 (function_resolver::get_vector_type): Likewise.
10163 (function_resolver::get_scalar_type_name): Likewise.
10164 (function_resolver::get_argument_type): Likewise.
10165 (function_resolver::scalar_argument_p): Likewise.
10166 (function_resolver::report_no_such_form): Likewise.
10167 (function_resolver::lookup_form): Likewise.
10168 (function_resolver::resolve_to): Likewise.
10169 (function_resolver::infer_vector_or_tuple_type): Likewise.
10170 (function_resolver::infer_vector_type): Likewise.
10171 (function_resolver::require_vector_or_scalar_type): Likewise.
10172 (function_resolver::require_vector_type): Likewise.
10173 (function_resolver::require_matching_vector_type): Likewise.
10174 (function_resolver::require_derived_vector_type): Likewise.
10175 (function_resolver::require_derived_scalar_type): Likewise.
10176 (function_resolver::require_integer_immediate): Likewise.
10177 (function_resolver::require_scalar_type): Likewise.
10178 (function_resolver::check_num_arguments): Likewise.
10179 (function_resolver::check_gp_argument): Likewise.
10180 (function_resolver::finish_opt_n_resolution): Likewise.
10181 (function_resolver::resolve_unary): Likewise.
10182 (function_resolver::resolve_unary_n): Likewise.
10183 (function_resolver::resolve_uniform): Likewise.
10184 (function_resolver::resolve_uniform_opt_n): Likewise.
10185 (function_resolver::resolve): Likewise.
10186 (function_checker::function_checker): Likewise.
10187 (function_checker::argument_exists_p): Likewise.
10188 (function_checker::require_immediate): Likewise.
10189 (function_checker::require_immediate_enum): Likewise.
10190 (function_checker::require_immediate_range): Likewise.
10191 (function_checker::check): Likewise.
10192 (gimple_folder::gimple_folder): Likewise.
10193 (gimple_folder::fold): Likewise.
10194 (function_expander::function_expander): Likewise.
10195 (function_expander::direct_optab_handler): Likewise.
10196 (function_expander::get_fallback_value): Likewise.
10197 (function_expander::get_reg_target): Likewise.
10198 (function_expander::add_output_operand): Likewise.
10199 (function_expander::add_input_operand): Likewise.
10200 (function_expander::add_integer_operand): Likewise.
10201 (function_expander::generate_insn): Likewise.
10202 (function_expander::use_exact_insn): Likewise.
10203 (function_expander::use_unpred_insn): Likewise.
10204 (function_expander::use_pred_x_insn): Likewise.
10205 (function_expander::use_cond_insn): Likewise.
10206 (function_expander::map_to_rtx_codes): Likewise.
10207 (function_expander::expand): Likewise.
10208 (resolve_overloaded_builtin): Likewise.
10209 (check_builtin_call): Likewise.
10210 (gimple_fold_builtin): Likewise.
10211 (expand_builtin): Likewise.
10212 (gt_ggc_mx): Likewise.
10213 (gt_pch_nx): Likewise.
10214 (gt_pch_nx): Likewise.
10215 * config/arm/arm-mve-builtins.def(s8): Define new type suffix.
10216 (s16): Likewise.
10217 (s32): Likewise.
10218 (s64): Likewise.
10219 (u8): Likewise.
10220 (u16): Likewise.
10221 (u32): Likewise.
10222 (u64): Likewise.
10223 (f16): Likewise.
10224 (f32): Likewise.
10225 (n): New mode.
10226 (offset): New mode.
10227 * config/arm/arm-mve-builtins.h (MAX_TUPLE_SIZE): New constant.
10228 (CP_READ_FPCR): Likewise.
10229 (CP_RAISE_FP_EXCEPTIONS): Likewise.
10230 (CP_READ_MEMORY): Likewise.
10231 (CP_WRITE_MEMORY): Likewise.
10232 (enum units_index): New enum.
10233 (enum predication_index): New.
10234 (enum type_class_index): New.
10235 (enum mode_suffix_index): New enum.
10236 (enum type_suffix_index): New.
10237 (struct mode_suffix_info): New struct.
10238 (struct type_suffix_info): New.
10239 (struct function_group_info): Likewise.
10240 (class function_instance): Likewise.
10241 (class registered_function): Likewise.
10242 (class function_builder): Likewise.
10243 (class function_call_info): Likewise.
10244 (class function_resolver): Likewise.
10245 (class function_checker): Likewise.
10246 (class gimple_folder): Likewise.
10247 (class function_expander): Likewise.
10248 (get_mve_pred16_t): Likewise.
10249 (find_mode_suffix): New function.
10250 (class function_base): Likewise.
10251 (class function_shape): Likewise.
10252 (function_instance::operator==): New function.
10253 (function_instance::operator!=): Likewise.
10254 (function_instance::vectors_per_tuple): Likewise.
10255 (function_instance::mode_suffix): Likewise.
10256 (function_instance::type_suffix): Likewise.
10257 (function_instance::scalar_type): Likewise.
10258 (function_instance::vector_type): Likewise.
10259 (function_instance::tuple_type): Likewise.
10260 (function_instance::vector_mode): Likewise.
10261 (function_call_info::function_returns_void_p): Likewise.
10262 (function_base::call_properties): Likewise.
10263 * config/arm/arm-protos.h (enum arm_builtin_class): Add
10264 ARM_BUILTIN_MVE.
10265 (handle_arm_mve_h): New.
10266 (resolve_overloaded_builtin): New.
10267 (check_builtin_call): New.
10268 (gimple_fold_builtin): New.
10269 (expand_builtin): New.
10270 * config/arm/arm.cc (TARGET_GIMPLE_FOLD_BUILTIN): Define as
10271 arm_gimple_fold_builtin.
10272 (arm_gimple_fold_builtin): New function.
10273 * config/arm/arm_mve.h: Use new arm_mve.h pragma.
10274 * config/arm/predicates.md (arm_any_register_operand): New predicate.
10275 * config/arm/t-arm: (arm-mve-builtins.o): Add includes.
10276 (arm-mve-builtins-shapes.o): New target.
10277 (arm-mve-builtins-base.o): New target.
10278 * config/arm/arm-mve-builtins-base.cc: New file.
10279 * config/arm/arm-mve-builtins-base.def: New file.
10280 * config/arm/arm-mve-builtins-base.h: New file.
10281 * config/arm/arm-mve-builtins-functions.h: New file.
10282 * config/arm/arm-mve-builtins-shapes.cc: New file.
10283 * config/arm/arm-mve-builtins-shapes.h: New file.
10284
10285 2023-05-03 Murray Steele <murray.steele@arm.com>
10286 Christophe Lyon <christophe.lyon@arm.com>
10287 Christophe Lyon <christophe.lyon@arm.com>
10288
10289 * config/arm/arm-builtins.cc (arm_general_add_builtin_function):
10290 New function.
10291 (arm_init_builtin): Use arm_general_add_builtin_function instead
10292 of arm_add_builtin_function.
10293 (arm_init_acle_builtins): Likewise.
10294 (arm_init_mve_builtins): Likewise.
10295 (arm_init_crypto_builtins): Likewise.
10296 (arm_init_builtins): Likewise.
10297 (arm_general_builtin_decl): New function.
10298 (arm_builtin_decl): Defer to numberspace-specialized functions.
10299 (arm_expand_builtin_args): Rename into arm_general_expand_builtin_args.
10300 (arm_expand_builtin_1): Rename into arm_general_expand_builtin_1 and ...
10301 (arm_general_expand_builtin_1): ... specialize for general builtins.
10302 (arm_expand_acle_builtin): Use arm_general_expand_builtin
10303 instead of arm_expand_builtin.
10304 (arm_expand_mve_builtin): Likewise.
10305 (arm_expand_neon_builtin): Likewise.
10306 (arm_expand_vfp_builtin): Likewise.
10307 (arm_general_expand_builtin): New function.
10308 (arm_expand_builtin): Specialize for general builtins.
10309 (arm_general_check_builtin_call): New function.
10310 (arm_check_builtin_call): Specialize for general builtins.
10311 (arm_describe_resolver): Validate numberspace.
10312 (arm_cde_end_args): Likewise.
10313 * config/arm/arm-protos.h (enum arm_builtin_class): New enum.
10314 (ARM_BUILTIN_SHIFT, ARM_BUILTIN_CLASS): New constants.
10315
10316 2023-05-03 Martin Liska <mliska@suse.cz>
10317
10318 PR target/109713
10319 * config/riscv/sync.md: Add gcc_unreachable to a switch.
10320
10321 2023-05-03 Richard Biener <rguenther@suse.de>
10322
10323 * tree-ssa-loop-split.cc (split_at_bb_p): Avoid last_stmt.
10324 (patch_loop_exit): Likewise.
10325 (connect_loops): Likewise.
10326 (split_loop): Likewise.
10327 (control_dep_semi_invariant_p): Likewise.
10328 (do_split_loop_on_cond): Likewise.
10329 (split_loop_on_cond): Likewise.
10330 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
10331 Likewise.
10332 (simplify_loop_version): Likewise.
10333 (evaluate_bbs): Likewise.
10334 (find_loop_guard): Likewise.
10335 (clean_up_after_unswitching): Likewise.
10336 * tree-ssa-math-opts.cc (maybe_optimize_guarding_check):
10337 Likewise.
10338 (optimize_spaceship): Take a gcond * argument, avoid
10339 last_stmt.
10340 (math_opts_dom_walker::after_dom_children): Adjust call to
10341 optimize_spaceship.
10342 * tree-vrp.cc (maybe_set_nonzero_bits): Avoid last_stmt.
10343 * value-pointer-equiv.cc (pointer_equiv_analyzer::visit_edge):
10344 Likewise.
10345
10346 2023-05-03 Andreas Schwab <schwab@suse.de>
10347
10348 * config/riscv/linux.h (LIB_SPEC): Don't redefine.
10349
10350 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
10351
10352 * config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load):
10353 New function.
10354 (class vlseg): New class.
10355 (class vsseg): Ditto.
10356 (class vlsseg): Ditto.
10357 (class vssseg): Ditto.
10358 (class seg_indexed_load): Ditto.
10359 (class seg_indexed_store): Ditto.
10360 (class vlsegff): Ditto.
10361 (BASE): Ditto.
10362 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
10363 * config/riscv/riscv-vector-builtins-functions.def (vlseg):
10364 Ditto.
10365 (vsseg): Ditto.
10366 (vlsseg): Ditto.
10367 (vssseg): Ditto.
10368 (vluxseg): Ditto.
10369 (vloxseg): Ditto.
10370 (vsuxseg): Ditto.
10371 (vsoxseg): Ditto.
10372 (vlsegff): Ditto.
10373 * config/riscv/riscv-vector-builtins-shapes.cc (struct
10374 seg_loadstore_def): Ditto.
10375 (struct seg_indexed_loadstore_def): Ditto.
10376 (struct seg_fault_load_def): Ditto.
10377 (SHAPE): Ditto.
10378 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
10379 * config/riscv/riscv-vector-builtins.cc
10380 (function_builder::append_nf): New function.
10381 * config/riscv/riscv-vector-builtins.def (vfloat32m1x2_t):
10382 Change ptr from double into float.
10383 (vfloat32m1x3_t): Ditto.
10384 (vfloat32m1x4_t): Ditto.
10385 (vfloat32m1x5_t): Ditto.
10386 (vfloat32m1x6_t): Ditto.
10387 (vfloat32m1x7_t): Ditto.
10388 (vfloat32m1x8_t): Ditto.
10389 (vfloat32m2x2_t): Ditto.
10390 (vfloat32m2x3_t): Ditto.
10391 (vfloat32m2x4_t): Ditto.
10392 (vfloat32m4x2_t): Ditto.
10393 * config/riscv/riscv-vector-builtins.h: Add segment intrinsics.
10394 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Adapt for
10395 segment ff load.
10396 * config/riscv/riscv.md: Add segment instructions.
10397 * config/riscv/vector-iterators.md: Support segment intrinsics.
10398 * config/riscv/vector.md (@pred_unit_strided_load<mode>): New
10399 pattern.
10400 (@pred_unit_strided_store<mode>): Ditto.
10401 (@pred_strided_load<mode>): Ditto.
10402 (@pred_strided_store<mode>): Ditto.
10403 (@pred_fault_load<mode>): Ditto.
10404 (@pred_indexed_<order>load<V1T:mode><V1I:mode>): Ditto.
10405 (@pred_indexed_<order>load<V2T:mode><V2I:mode>): Ditto.
10406 (@pred_indexed_<order>load<V4T:mode><V4I:mode>): Ditto.
10407 (@pred_indexed_<order>load<V8T:mode><V8I:mode>): Ditto.
10408 (@pred_indexed_<order>load<V16T:mode><V16I:mode>): Ditto.
10409 (@pred_indexed_<order>load<V32T:mode><V32I:mode>): Ditto.
10410 (@pred_indexed_<order>load<V64T:mode><V64I:mode>): Ditto.
10411 (@pred_indexed_<order>store<V1T:mode><V1I:mode>): Ditto.
10412 (@pred_indexed_<order>store<V2T:mode><V2I:mode>): Ditto.
10413 (@pred_indexed_<order>store<V4T:mode><V4I:mode>): Ditto.
10414 (@pred_indexed_<order>store<V8T:mode><V8I:mode>): Ditto.
10415 (@pred_indexed_<order>store<V16T:mode><V16I:mode>): Ditto.
10416 (@pred_indexed_<order>store<V32T:mode><V32I:mode>): Ditto.
10417 (@pred_indexed_<order>store<V64T:mode><V64I:mode>): Ditto.
10418
10419 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
10420
10421 * config/riscv/genrvv-type-indexer.cc (valid_type): Adapt for
10422 tuple type support.
10423 (inttype): Ditto.
10424 (floattype): Ditto.
10425 (main): Ditto.
10426 * config/riscv/riscv-vector-builtins-bases.cc: Ditto.
10427 * config/riscv/riscv-vector-builtins-functions.def (vset): Add
10428 tuple type vset.
10429 (vget): Add tuple type vget.
10430 * config/riscv/riscv-vector-builtins-types.def
10431 (DEF_RVV_TUPLE_OPS): New macro.
10432 (vint8mf8x2_t): Ditto.
10433 (vuint8mf8x2_t): Ditto.
10434 (vint8mf8x3_t): Ditto.
10435 (vuint8mf8x3_t): Ditto.
10436 (vint8mf8x4_t): Ditto.
10437 (vuint8mf8x4_t): Ditto.
10438 (vint8mf8x5_t): Ditto.
10439 (vuint8mf8x5_t): Ditto.
10440 (vint8mf8x6_t): Ditto.
10441 (vuint8mf8x6_t): Ditto.
10442 (vint8mf8x7_t): Ditto.
10443 (vuint8mf8x7_t): Ditto.
10444 (vint8mf8x8_t): Ditto.
10445 (vuint8mf8x8_t): Ditto.
10446 (vint8mf4x2_t): Ditto.
10447 (vuint8mf4x2_t): Ditto.
10448 (vint8mf4x3_t): Ditto.
10449 (vuint8mf4x3_t): Ditto.
10450 (vint8mf4x4_t): Ditto.
10451 (vuint8mf4x4_t): Ditto.
10452 (vint8mf4x5_t): Ditto.
10453 (vuint8mf4x5_t): Ditto.
10454 (vint8mf4x6_t): Ditto.
10455 (vuint8mf4x6_t): Ditto.
10456 (vint8mf4x7_t): Ditto.
10457 (vuint8mf4x7_t): Ditto.
10458 (vint8mf4x8_t): Ditto.
10459 (vuint8mf4x8_t): Ditto.
10460 (vint8mf2x2_t): Ditto.
10461 (vuint8mf2x2_t): Ditto.
10462 (vint8mf2x3_t): Ditto.
10463 (vuint8mf2x3_t): Ditto.
10464 (vint8mf2x4_t): Ditto.
10465 (vuint8mf2x4_t): Ditto.
10466 (vint8mf2x5_t): Ditto.
10467 (vuint8mf2x5_t): Ditto.
10468 (vint8mf2x6_t): Ditto.
10469 (vuint8mf2x6_t): Ditto.
10470 (vint8mf2x7_t): Ditto.
10471 (vuint8mf2x7_t): Ditto.
10472 (vint8mf2x8_t): Ditto.
10473 (vuint8mf2x8_t): Ditto.
10474 (vint8m1x2_t): Ditto.
10475 (vuint8m1x2_t): Ditto.
10476 (vint8m1x3_t): Ditto.
10477 (vuint8m1x3_t): Ditto.
10478 (vint8m1x4_t): Ditto.
10479 (vuint8m1x4_t): Ditto.
10480 (vint8m1x5_t): Ditto.
10481 (vuint8m1x5_t): Ditto.
10482 (vint8m1x6_t): Ditto.
10483 (vuint8m1x6_t): Ditto.
10484 (vint8m1x7_t): Ditto.
10485 (vuint8m1x7_t): Ditto.
10486 (vint8m1x8_t): Ditto.
10487 (vuint8m1x8_t): Ditto.
10488 (vint8m2x2_t): Ditto.
10489 (vuint8m2x2_t): Ditto.
10490 (vint8m2x3_t): Ditto.
10491 (vuint8m2x3_t): Ditto.
10492 (vint8m2x4_t): Ditto.
10493 (vuint8m2x4_t): Ditto.
10494 (vint8m4x2_t): Ditto.
10495 (vuint8m4x2_t): Ditto.
10496 (vint16mf4x2_t): Ditto.
10497 (vuint16mf4x2_t): Ditto.
10498 (vint16mf4x3_t): Ditto.
10499 (vuint16mf4x3_t): Ditto.
10500 (vint16mf4x4_t): Ditto.
10501 (vuint16mf4x4_t): Ditto.
10502 (vint16mf4x5_t): Ditto.
10503 (vuint16mf4x5_t): Ditto.
10504 (vint16mf4x6_t): Ditto.
10505 (vuint16mf4x6_t): Ditto.
10506 (vint16mf4x7_t): Ditto.
10507 (vuint16mf4x7_t): Ditto.
10508 (vint16mf4x8_t): Ditto.
10509 (vuint16mf4x8_t): Ditto.
10510 (vint16mf2x2_t): Ditto.
10511 (vuint16mf2x2_t): Ditto.
10512 (vint16mf2x3_t): Ditto.
10513 (vuint16mf2x3_t): Ditto.
10514 (vint16mf2x4_t): Ditto.
10515 (vuint16mf2x4_t): Ditto.
10516 (vint16mf2x5_t): Ditto.
10517 (vuint16mf2x5_t): Ditto.
10518 (vint16mf2x6_t): Ditto.
10519 (vuint16mf2x6_t): Ditto.
10520 (vint16mf2x7_t): Ditto.
10521 (vuint16mf2x7_t): Ditto.
10522 (vint16mf2x8_t): Ditto.
10523 (vuint16mf2x8_t): Ditto.
10524 (vint16m1x2_t): Ditto.
10525 (vuint16m1x2_t): Ditto.
10526 (vint16m1x3_t): Ditto.
10527 (vuint16m1x3_t): Ditto.
10528 (vint16m1x4_t): Ditto.
10529 (vuint16m1x4_t): Ditto.
10530 (vint16m1x5_t): Ditto.
10531 (vuint16m1x5_t): Ditto.
10532 (vint16m1x6_t): Ditto.
10533 (vuint16m1x6_t): Ditto.
10534 (vint16m1x7_t): Ditto.
10535 (vuint16m1x7_t): Ditto.
10536 (vint16m1x8_t): Ditto.
10537 (vuint16m1x8_t): Ditto.
10538 (vint16m2x2_t): Ditto.
10539 (vuint16m2x2_t): Ditto.
10540 (vint16m2x3_t): Ditto.
10541 (vuint16m2x3_t): Ditto.
10542 (vint16m2x4_t): Ditto.
10543 (vuint16m2x4_t): Ditto.
10544 (vint16m4x2_t): Ditto.
10545 (vuint16m4x2_t): Ditto.
10546 (vint32mf2x2_t): Ditto.
10547 (vuint32mf2x2_t): Ditto.
10548 (vint32mf2x3_t): Ditto.
10549 (vuint32mf2x3_t): Ditto.
10550 (vint32mf2x4_t): Ditto.
10551 (vuint32mf2x4_t): Ditto.
10552 (vint32mf2x5_t): Ditto.
10553 (vuint32mf2x5_t): Ditto.
10554 (vint32mf2x6_t): Ditto.
10555 (vuint32mf2x6_t): Ditto.
10556 (vint32mf2x7_t): Ditto.
10557 (vuint32mf2x7_t): Ditto.
10558 (vint32mf2x8_t): Ditto.
10559 (vuint32mf2x8_t): Ditto.
10560 (vint32m1x2_t): Ditto.
10561 (vuint32m1x2_t): Ditto.
10562 (vint32m1x3_t): Ditto.
10563 (vuint32m1x3_t): Ditto.
10564 (vint32m1x4_t): Ditto.
10565 (vuint32m1x4_t): Ditto.
10566 (vint32m1x5_t): Ditto.
10567 (vuint32m1x5_t): Ditto.
10568 (vint32m1x6_t): Ditto.
10569 (vuint32m1x6_t): Ditto.
10570 (vint32m1x7_t): Ditto.
10571 (vuint32m1x7_t): Ditto.
10572 (vint32m1x8_t): Ditto.
10573 (vuint32m1x8_t): Ditto.
10574 (vint32m2x2_t): Ditto.
10575 (vuint32m2x2_t): Ditto.
10576 (vint32m2x3_t): Ditto.
10577 (vuint32m2x3_t): Ditto.
10578 (vint32m2x4_t): Ditto.
10579 (vuint32m2x4_t): Ditto.
10580 (vint32m4x2_t): Ditto.
10581 (vuint32m4x2_t): Ditto.
10582 (vint64m1x2_t): Ditto.
10583 (vuint64m1x2_t): Ditto.
10584 (vint64m1x3_t): Ditto.
10585 (vuint64m1x3_t): Ditto.
10586 (vint64m1x4_t): Ditto.
10587 (vuint64m1x4_t): Ditto.
10588 (vint64m1x5_t): Ditto.
10589 (vuint64m1x5_t): Ditto.
10590 (vint64m1x6_t): Ditto.
10591 (vuint64m1x6_t): Ditto.
10592 (vint64m1x7_t): Ditto.
10593 (vuint64m1x7_t): Ditto.
10594 (vint64m1x8_t): Ditto.
10595 (vuint64m1x8_t): Ditto.
10596 (vint64m2x2_t): Ditto.
10597 (vuint64m2x2_t): Ditto.
10598 (vint64m2x3_t): Ditto.
10599 (vuint64m2x3_t): Ditto.
10600 (vint64m2x4_t): Ditto.
10601 (vuint64m2x4_t): Ditto.
10602 (vint64m4x2_t): Ditto.
10603 (vuint64m4x2_t): Ditto.
10604 (vfloat32mf2x2_t): Ditto.
10605 (vfloat32mf2x3_t): Ditto.
10606 (vfloat32mf2x4_t): Ditto.
10607 (vfloat32mf2x5_t): Ditto.
10608 (vfloat32mf2x6_t): Ditto.
10609 (vfloat32mf2x7_t): Ditto.
10610 (vfloat32mf2x8_t): Ditto.
10611 (vfloat32m1x2_t): Ditto.
10612 (vfloat32m1x3_t): Ditto.
10613 (vfloat32m1x4_t): Ditto.
10614 (vfloat32m1x5_t): Ditto.
10615 (vfloat32m1x6_t): Ditto.
10616 (vfloat32m1x7_t): Ditto.
10617 (vfloat32m1x8_t): Ditto.
10618 (vfloat32m2x2_t): Ditto.
10619 (vfloat32m2x3_t): Ditto.
10620 (vfloat32m2x4_t): Ditto.
10621 (vfloat32m4x2_t): Ditto.
10622 (vfloat64m1x2_t): Ditto.
10623 (vfloat64m1x3_t): Ditto.
10624 (vfloat64m1x4_t): Ditto.
10625 (vfloat64m1x5_t): Ditto.
10626 (vfloat64m1x6_t): Ditto.
10627 (vfloat64m1x7_t): Ditto.
10628 (vfloat64m1x8_t): Ditto.
10629 (vfloat64m2x2_t): Ditto.
10630 (vfloat64m2x3_t): Ditto.
10631 (vfloat64m2x4_t): Ditto.
10632 (vfloat64m4x2_t): Ditto.
10633 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_OPS):
10634 Ditto.
10635 (DEF_RVV_TYPE_INDEX): Ditto.
10636 (rvv_arg_type_info::get_tuple_subpart_type): New function.
10637 (DEF_RVV_TUPLE_TYPE): New macro.
10638 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX):
10639 Adapt for tuple vget/vset support.
10640 (vint8mf4_t): Ditto.
10641 (vuint8mf4_t): Ditto.
10642 (vint8mf2_t): Ditto.
10643 (vuint8mf2_t): Ditto.
10644 (vint8m1_t): Ditto.
10645 (vuint8m1_t): Ditto.
10646 (vint8m2_t): Ditto.
10647 (vuint8m2_t): Ditto.
10648 (vint8m4_t): Ditto.
10649 (vuint8m4_t): Ditto.
10650 (vint8m8_t): Ditto.
10651 (vuint8m8_t): Ditto.
10652 (vint16mf4_t): Ditto.
10653 (vuint16mf4_t): Ditto.
10654 (vint16mf2_t): Ditto.
10655 (vuint16mf2_t): Ditto.
10656 (vint16m1_t): Ditto.
10657 (vuint16m1_t): Ditto.
10658 (vint16m2_t): Ditto.
10659 (vuint16m2_t): Ditto.
10660 (vint16m4_t): Ditto.
10661 (vuint16m4_t): Ditto.
10662 (vint16m8_t): Ditto.
10663 (vuint16m8_t): Ditto.
10664 (vint32mf2_t): Ditto.
10665 (vuint32mf2_t): Ditto.
10666 (vint32m1_t): Ditto.
10667 (vuint32m1_t): Ditto.
10668 (vint32m2_t): Ditto.
10669 (vuint32m2_t): Ditto.
10670 (vint32m4_t): Ditto.
10671 (vuint32m4_t): Ditto.
10672 (vint32m8_t): Ditto.
10673 (vuint32m8_t): Ditto.
10674 (vint64m1_t): Ditto.
10675 (vuint64m1_t): Ditto.
10676 (vint64m2_t): Ditto.
10677 (vuint64m2_t): Ditto.
10678 (vint64m4_t): Ditto.
10679 (vuint64m4_t): Ditto.
10680 (vint64m8_t): Ditto.
10681 (vuint64m8_t): Ditto.
10682 (vfloat32mf2_t): Ditto.
10683 (vfloat32m1_t): Ditto.
10684 (vfloat32m2_t): Ditto.
10685 (vfloat32m4_t): Ditto.
10686 (vfloat32m8_t): Ditto.
10687 (vfloat64m1_t): Ditto.
10688 (vfloat64m2_t): Ditto.
10689 (vfloat64m4_t): Ditto.
10690 (vfloat64m8_t): Ditto.
10691 (tuple_subpart): Add tuple subpart base type.
10692 * config/riscv/riscv-vector-builtins.h (struct
10693 rvv_arg_type_info): Ditto.
10694 (tuple_type_field): New function.
10695
10696 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
10697
10698 * config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
10699 (RVV_TUPLE_PARTIAL_MODES): Ditto.
10700 * config/riscv/riscv-protos.h (riscv_v_ext_tuple_mode_p): New
10701 function.
10702 (get_nf): Ditto.
10703 (get_subpart_mode): Ditto.
10704 (get_tuple_mode): Ditto.
10705 (expand_tuple_move): Ditto.
10706 * config/riscv/riscv-v.cc (ENTRY): New macro.
10707 (TUPLE_ENTRY): Ditto.
10708 (get_nf): New function.
10709 (get_subpart_mode): Ditto.
10710 (get_tuple_mode): Ditto.
10711 (expand_tuple_move): Ditto.
10712 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_TYPE):
10713 New macro.
10714 (register_tuple_type): New function
10715 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TUPLE_TYPE):
10716 New macro.
10717 (vint8mf8x2_t): New macro.
10718 (vuint8mf8x2_t): Ditto.
10719 (vint8mf8x3_t): Ditto.
10720 (vuint8mf8x3_t): Ditto.
10721 (vint8mf8x4_t): Ditto.
10722 (vuint8mf8x4_t): Ditto.
10723 (vint8mf8x5_t): Ditto.
10724 (vuint8mf8x5_t): Ditto.
10725 (vint8mf8x6_t): Ditto.
10726 (vuint8mf8x6_t): Ditto.
10727 (vint8mf8x7_t): Ditto.
10728 (vuint8mf8x7_t): Ditto.
10729 (vint8mf8x8_t): Ditto.
10730 (vuint8mf8x8_t): Ditto.
10731 (vint8mf4x2_t): Ditto.
10732 (vuint8mf4x2_t): Ditto.
10733 (vint8mf4x3_t): Ditto.
10734 (vuint8mf4x3_t): Ditto.
10735 (vint8mf4x4_t): Ditto.
10736 (vuint8mf4x4_t): Ditto.
10737 (vint8mf4x5_t): Ditto.
10738 (vuint8mf4x5_t): Ditto.
10739 (vint8mf4x6_t): Ditto.
10740 (vuint8mf4x6_t): Ditto.
10741 (vint8mf4x7_t): Ditto.
10742 (vuint8mf4x7_t): Ditto.
10743 (vint8mf4x8_t): Ditto.
10744 (vuint8mf4x8_t): Ditto.
10745 (vint8mf2x2_t): Ditto.
10746 (vuint8mf2x2_t): Ditto.
10747 (vint8mf2x3_t): Ditto.
10748 (vuint8mf2x3_t): Ditto.
10749 (vint8mf2x4_t): Ditto.
10750 (vuint8mf2x4_t): Ditto.
10751 (vint8mf2x5_t): Ditto.
10752 (vuint8mf2x5_t): Ditto.
10753 (vint8mf2x6_t): Ditto.
10754 (vuint8mf2x6_t): Ditto.
10755 (vint8mf2x7_t): Ditto.
10756 (vuint8mf2x7_t): Ditto.
10757 (vint8mf2x8_t): Ditto.
10758 (vuint8mf2x8_t): Ditto.
10759 (vint8m1x2_t): Ditto.
10760 (vuint8m1x2_t): Ditto.
10761 (vint8m1x3_t): Ditto.
10762 (vuint8m1x3_t): Ditto.
10763 (vint8m1x4_t): Ditto.
10764 (vuint8m1x4_t): Ditto.
10765 (vint8m1x5_t): Ditto.
10766 (vuint8m1x5_t): Ditto.
10767 (vint8m1x6_t): Ditto.
10768 (vuint8m1x6_t): Ditto.
10769 (vint8m1x7_t): Ditto.
10770 (vuint8m1x7_t): Ditto.
10771 (vint8m1x8_t): Ditto.
10772 (vuint8m1x8_t): Ditto.
10773 (vint8m2x2_t): Ditto.
10774 (vuint8m2x2_t): Ditto.
10775 (vint8m2x3_t): Ditto.
10776 (vuint8m2x3_t): Ditto.
10777 (vint8m2x4_t): Ditto.
10778 (vuint8m2x4_t): Ditto.
10779 (vint8m4x2_t): Ditto.
10780 (vuint8m4x2_t): Ditto.
10781 (vint16mf4x2_t): Ditto.
10782 (vuint16mf4x2_t): Ditto.
10783 (vint16mf4x3_t): Ditto.
10784 (vuint16mf4x3_t): Ditto.
10785 (vint16mf4x4_t): Ditto.
10786 (vuint16mf4x4_t): Ditto.
10787 (vint16mf4x5_t): Ditto.
10788 (vuint16mf4x5_t): Ditto.
10789 (vint16mf4x6_t): Ditto.
10790 (vuint16mf4x6_t): Ditto.
10791 (vint16mf4x7_t): Ditto.
10792 (vuint16mf4x7_t): Ditto.
10793 (vint16mf4x8_t): Ditto.
10794 (vuint16mf4x8_t): Ditto.
10795 (vint16mf2x2_t): Ditto.
10796 (vuint16mf2x2_t): Ditto.
10797 (vint16mf2x3_t): Ditto.
10798 (vuint16mf2x3_t): Ditto.
10799 (vint16mf2x4_t): Ditto.
10800 (vuint16mf2x4_t): Ditto.
10801 (vint16mf2x5_t): Ditto.
10802 (vuint16mf2x5_t): Ditto.
10803 (vint16mf2x6_t): Ditto.
10804 (vuint16mf2x6_t): Ditto.
10805 (vint16mf2x7_t): Ditto.
10806 (vuint16mf2x7_t): Ditto.
10807 (vint16mf2x8_t): Ditto.
10808 (vuint16mf2x8_t): Ditto.
10809 (vint16m1x2_t): Ditto.
10810 (vuint16m1x2_t): Ditto.
10811 (vint16m1x3_t): Ditto.
10812 (vuint16m1x3_t): Ditto.
10813 (vint16m1x4_t): Ditto.
10814 (vuint16m1x4_t): Ditto.
10815 (vint16m1x5_t): Ditto.
10816 (vuint16m1x5_t): Ditto.
10817 (vint16m1x6_t): Ditto.
10818 (vuint16m1x6_t): Ditto.
10819 (vint16m1x7_t): Ditto.
10820 (vuint16m1x7_t): Ditto.
10821 (vint16m1x8_t): Ditto.
10822 (vuint16m1x8_t): Ditto.
10823 (vint16m2x2_t): Ditto.
10824 (vuint16m2x2_t): Ditto.
10825 (vint16m2x3_t): Ditto.
10826 (vuint16m2x3_t): Ditto.
10827 (vint16m2x4_t): Ditto.
10828 (vuint16m2x4_t): Ditto.
10829 (vint16m4x2_t): Ditto.
10830 (vuint16m4x2_t): Ditto.
10831 (vint32mf2x2_t): Ditto.
10832 (vuint32mf2x2_t): Ditto.
10833 (vint32mf2x3_t): Ditto.
10834 (vuint32mf2x3_t): Ditto.
10835 (vint32mf2x4_t): Ditto.
10836 (vuint32mf2x4_t): Ditto.
10837 (vint32mf2x5_t): Ditto.
10838 (vuint32mf2x5_t): Ditto.
10839 (vint32mf2x6_t): Ditto.
10840 (vuint32mf2x6_t): Ditto.
10841 (vint32mf2x7_t): Ditto.
10842 (vuint32mf2x7_t): Ditto.
10843 (vint32mf2x8_t): Ditto.
10844 (vuint32mf2x8_t): Ditto.
10845 (vint32m1x2_t): Ditto.
10846 (vuint32m1x2_t): Ditto.
10847 (vint32m1x3_t): Ditto.
10848 (vuint32m1x3_t): Ditto.
10849 (vint32m1x4_t): Ditto.
10850 (vuint32m1x4_t): Ditto.
10851 (vint32m1x5_t): Ditto.
10852 (vuint32m1x5_t): Ditto.
10853 (vint32m1x6_t): Ditto.
10854 (vuint32m1x6_t): Ditto.
10855 (vint32m1x7_t): Ditto.
10856 (vuint32m1x7_t): Ditto.
10857 (vint32m1x8_t): Ditto.
10858 (vuint32m1x8_t): Ditto.
10859 (vint32m2x2_t): Ditto.
10860 (vuint32m2x2_t): Ditto.
10861 (vint32m2x3_t): Ditto.
10862 (vuint32m2x3_t): Ditto.
10863 (vint32m2x4_t): Ditto.
10864 (vuint32m2x4_t): Ditto.
10865 (vint32m4x2_t): Ditto.
10866 (vuint32m4x2_t): Ditto.
10867 (vint64m1x2_t): Ditto.
10868 (vuint64m1x2_t): Ditto.
10869 (vint64m1x3_t): Ditto.
10870 (vuint64m1x3_t): Ditto.
10871 (vint64m1x4_t): Ditto.
10872 (vuint64m1x4_t): Ditto.
10873 (vint64m1x5_t): Ditto.
10874 (vuint64m1x5_t): Ditto.
10875 (vint64m1x6_t): Ditto.
10876 (vuint64m1x6_t): Ditto.
10877 (vint64m1x7_t): Ditto.
10878 (vuint64m1x7_t): Ditto.
10879 (vint64m1x8_t): Ditto.
10880 (vuint64m1x8_t): Ditto.
10881 (vint64m2x2_t): Ditto.
10882 (vuint64m2x2_t): Ditto.
10883 (vint64m2x3_t): Ditto.
10884 (vuint64m2x3_t): Ditto.
10885 (vint64m2x4_t): Ditto.
10886 (vuint64m2x4_t): Ditto.
10887 (vint64m4x2_t): Ditto.
10888 (vuint64m4x2_t): Ditto.
10889 (vfloat32mf2x2_t): Ditto.
10890 (vfloat32mf2x3_t): Ditto.
10891 (vfloat32mf2x4_t): Ditto.
10892 (vfloat32mf2x5_t): Ditto.
10893 (vfloat32mf2x6_t): Ditto.
10894 (vfloat32mf2x7_t): Ditto.
10895 (vfloat32mf2x8_t): Ditto.
10896 (vfloat32m1x2_t): Ditto.
10897 (vfloat32m1x3_t): Ditto.
10898 (vfloat32m1x4_t): Ditto.
10899 (vfloat32m1x5_t): Ditto.
10900 (vfloat32m1x6_t): Ditto.
10901 (vfloat32m1x7_t): Ditto.
10902 (vfloat32m1x8_t): Ditto.
10903 (vfloat32m2x2_t): Ditto.
10904 (vfloat32m2x3_t): Ditto.
10905 (vfloat32m2x4_t): Ditto.
10906 (vfloat32m4x2_t): Ditto.
10907 (vfloat64m1x2_t): Ditto.
10908 (vfloat64m1x3_t): Ditto.
10909 (vfloat64m1x4_t): Ditto.
10910 (vfloat64m1x5_t): Ditto.
10911 (vfloat64m1x6_t): Ditto.
10912 (vfloat64m1x7_t): Ditto.
10913 (vfloat64m1x8_t): Ditto.
10914 (vfloat64m2x2_t): Ditto.
10915 (vfloat64m2x3_t): Ditto.
10916 (vfloat64m2x4_t): Ditto.
10917 (vfloat64m4x2_t): Ditto.
10918 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TUPLE_TYPE):
10919 Ditto.
10920 * config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): Ditto.
10921 * config/riscv/riscv.cc (riscv_v_ext_tuple_mode_p): New
10922 function.
10923 (TUPLE_ENTRY): Ditto.
10924 (riscv_v_ext_mode_p): New function.
10925 (riscv_v_adjust_nunits): Add tuple mode adjustment.
10926 (riscv_classify_address): Ditto.
10927 (riscv_binary_cost): Ditto.
10928 (riscv_rtx_costs): Ditto.
10929 (riscv_secondary_memory_needed): Ditto.
10930 (riscv_hard_regno_nregs): Ditto.
10931 (riscv_hard_regno_mode_ok): Ditto.
10932 (riscv_vector_mode_supported_p): Ditto.
10933 (riscv_regmode_natural_size): Ditto.
10934 (riscv_array_mode): New function.
10935 (TARGET_ARRAY_MODE): New target hook.
10936 * config/riscv/riscv.md: Add tuple modes.
10937 * config/riscv/vector-iterators.md: Ditto.
10938 * config/riscv/vector.md (mov<mode>): Add tuple modes data
10939 movement.
10940 (*mov<VT:mode>_<P:mode>): Ditto.
10941
10942 2023-05-03 Richard Biener <rguenther@suse.de>
10943
10944 * cse.cc (cse_insn): Track an equivalence to the destination
10945 separately and delay using src_related for it.
10946
10947 2023-05-03 Richard Biener <rguenther@suse.de>
10948
10949 * cse.cc (HASH): Turn into inline function and mix
10950 in another HASH_SHIFT bits.
10951 (SAFE_HASH): Likewise.
10952
10953 2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10954
10955 PR target/99195
10956 * config/aarch64/aarch64-simd.md (aarch64_<sur>h<addsub><mode>): Rename to...
10957 (aarch64_<sur>h<addsub><mode><vczle><vczbe>): ... This.
10958
10959 2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10960
10961 PR target/99195
10962 * config/aarch64/aarch64-simd.md (add<mode>3): Rename to...
10963 (add<mode>3<vczle><vczbe>): ... This.
10964 (sub<mode>3): Rename to...
10965 (sub<mode>3<vczle><vczbe>): ... This.
10966 (mul<mode>3): Rename to...
10967 (mul<mode>3<vczle><vczbe>): ... This.
10968 (*div<mode>3): Rename to...
10969 (*div<mode>3<vczle><vczbe>): ... This.
10970 (neg<mode>2): Rename to...
10971 (neg<mode>2<vczle><vczbe>): ... This.
10972 (abs<mode>2): Rename to...
10973 (abs<mode>2<vczle><vczbe>): ... This.
10974 (<frint_pattern><mode>2): Rename to...
10975 (<frint_pattern><mode>2<vczle><vczbe>): ... This.
10976 (<fmaxmin><mode>3): Rename to...
10977 (<fmaxmin><mode>3<vczle><vczbe>): ... This.
10978 (*sqrt<mode>2): Rename to...
10979 (*sqrt<mode>2<vczle><vczbe>): ... This.
10980
10981 2023-05-03 Kito Cheng <kito.cheng@sifive.com>
10982
10983 * doc/md.texi (RISC-V): Add vr, vm, vd constarint.
10984
10985 2023-05-03 Martin Liska <mliska@suse.cz>
10986
10987 PR tree-optimization/109693
10988 * value-range-storage.cc (vrange_allocator::vrange_allocator):
10989 Remove unused field.
10990 * value-range-storage.h: Likewise.
10991
10992 2023-05-02 Andrew Pinski <apinski@marvell.com>
10993
10994 * tree-ssa-phiopt.cc (move_stmt): New function.
10995 (match_simplify_replacement): Use move_stmt instead
10996 of the inlined version.
10997
10998 2023-05-02 Andrew Pinski <apinski@marvell.com>
10999
11000 * match.pd (a != 0 ? CLRSB(a) : CST -> CLRSB(a)): New
11001 pattern.
11002
11003 2023-05-02 Andrew Pinski <apinski@marvell.com>
11004
11005 PR tree-optimization/109702
11006 * match.pd: Fix "a != 0 ? FUNC(a) : CST" patterns
11007 for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
11008
11009 2023-05-02 Andrew Pinski <apinski@marvell.com>
11010
11011 PR target/109657
11012 * config/aarch64/aarch64.md (*cmov<mode>_insn_m1): New
11013 insn_and_split pattern.
11014
11015 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11016
11017 * config/riscv/sync.md (atomic_load<mode>): Implement atomic
11018 load mapping.
11019
11020 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11021
11022 * config/riscv/sync.md (mem_thread_fence_1): Change fence
11023 depending on the given memory model.
11024
11025 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11026
11027 * config/riscv/riscv-protos.h (riscv_union_memmodels): Expose
11028 riscv_union_memmodels function to sync.md.
11029 * config/riscv/riscv.cc (riscv_union_memmodels): Add function to
11030 get the union of two memmodels in sync.md.
11031 (riscv_print_operand): Add %I and %J flags that output the
11032 optimal LR/SC flag bits for a given memory model.
11033 * config/riscv/sync.md: Remove static .aqrl bits on LR op/.rl
11034 bits on SC op and replace with optimized %I, %J flags.
11035
11036 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11037
11038 * config/riscv/riscv.cc
11039 (riscv_memmodel_needs_amo_release): Change function name.
11040 (riscv_print_operand): Remove unneeded %F case.
11041 * config/riscv/sync.md: Remove unneeded fences.
11042
11043 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11044
11045 PR target/89835
11046 * config/riscv/sync.md (atomic_store<mode>): Use simple store
11047 instruction in combination with fence(s).
11048
11049 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11050
11051 * config/riscv/riscv.cc (riscv_print_operand): Change behavior
11052 of %A to include release bits.
11053
11054 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11055
11056 * config/riscv/sync.md (atomic_cas_value_strong<mode>): Change
11057 FENCE/LR.aq/SC.aq into sequentially consistent LR.aqrl/SC.rl
11058 pair.
11059
11060 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11061
11062 * config/riscv/sync.md: Change LR.aq/SC.rl pairs into
11063 sequentially consistent LR.aqrl/SC.rl pairs.
11064
11065 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11066
11067 * config/riscv/riscv.cc: Remove MEMMODEL_SYNC_* cases and
11068 sanitize memmodel input with memmodel_base.
11069
11070 2023-05-02 Yanzhang Wang <yanzhang.wang@intel.com>
11071 Pan Li <pan2.li@intel.com>
11072
11073 PR target/109617
11074 * config/riscv/vector-iterators.md: Support VNx2HI and VNX4DI when MIN_VLEN >= 128.
11075
11076 2023-05-02 Romain Naour <romain.naour@gmail.com>
11077
11078 * config/riscv/genrvv-type-indexer.cc: Use log2 from the C header, without
11079 the namespace.
11080
11081 2023-05-02 Martin Liska <mliska@suse.cz>
11082
11083 * doc/invoke.texi: Update documentation based on param.opt file.
11084
11085 2023-05-02 Richard Biener <rguenther@suse.de>
11086
11087 PR tree-optimization/109672
11088 * tree-vect-stmts.cc (vectorizable_operation): For plus,
11089 minus and negate always check the vector mode is word mode.
11090
11091 2023-05-01 Andrew Pinski <apinski@marvell.com>
11092
11093 * tree-ssa-phiopt.cc: Update comment about
11094 how the transformation are implemented.
11095
11096 2023-05-01 Jeff Law <jlaw@ventanamicro>
11097
11098 * config/stormy16/stormy16.cc (TARGET_LRA_P): Remove defintion.
11099
11100 2023-05-01 Jeff Law <jlaw@ventanamicro>
11101
11102 * config/cris/cris.cc (TARGET_LRA_P): Remove.
11103 * config/epiphany/epiphany.cc (TARGET_LRA_P): Remove.
11104 * config/iq2000/iq2000.cc (TARGET_LRA_P): Remove.
11105 * config/m32r/m32r.cc (TARGET_LRA_P): Remove.
11106 * config/microblaze/microblaze.cc (TARGET_LRA_P): Remove.
11107 * config/mmix/mmix.cc (TARGET_LRA_P): Remove.
11108
11109 2023-05-01 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
11110
11111 * print-tree.h (PRINT_DECL_REMAP_DEBUG): New flag.
11112 * print-tree.cc (print_decl_identifier): Implement it.
11113 * toplev.cc (output_stack_usage_1): Use it.
11114
11115 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11116
11117 * value-range.h (class int_range): Remove gt_ggc_mx and gt_pch_nx
11118 friends.
11119
11120 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11121
11122 * value-range.h (irange::set_nonzero): Inline.
11123
11124 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11125
11126 * gimple-range-op.cc (cfn_ffs::fold_range): Use the correct
11127 precision.
11128 * gimple-ssa-warn-alloca.cc (alloca_call_type): Use <2> for
11129 invalid_range, as it is an inverse range.
11130 * tree-vrp.cc (find_case_label_range): Avoid trees.
11131 * value-range.cc (irange::irange_set): Delete.
11132 (irange::irange_set_1bit_anti_range): Delete.
11133 (irange::irange_set_anti_range): Delete.
11134 (irange::set): Cleanup.
11135 * value-range.h (class irange): Remove irange_set,
11136 irange_set_anti_range, irange_set_1bit_anti_range.
11137 (irange::set_undefined): Remove set to m_type.
11138
11139 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11140
11141 * range-op.cc (update_known_bitmask): Adjust for irange containing
11142 wide_ints internally.
11143 * tree-ssanames.cc (set_nonzero_bits): Same.
11144 * tree-ssanames.h (set_nonzero_bits): Same.
11145 * value-range-storage.cc (irange_storage::set_irange): Same.
11146 (irange_storage::get_irange): Same.
11147 * value-range.cc (irange::operator=): Same.
11148 (irange::irange_set): Same.
11149 (irange::irange_set_1bit_anti_range): Same.
11150 (irange::irange_set_anti_range): Same.
11151 (irange::set): Same.
11152 (irange::verify_range): Same.
11153 (irange::contains_p): Same.
11154 (irange::irange_single_pair_union): Same.
11155 (irange::union_): Same.
11156 (irange::irange_contains_p): Same.
11157 (irange::intersect): Same.
11158 (irange::invert): Same.
11159 (irange::set_range_from_nonzero_bits): Same.
11160 (irange::set_nonzero_bits): Same.
11161 (mask_to_wi): Same.
11162 (irange::intersect_nonzero_bits): Same.
11163 (irange::union_nonzero_bits): Same.
11164 (gt_ggc_mx): Same.
11165 (gt_pch_nx): Same.
11166 (tree_range): Same.
11167 (range_tests_strict_enum): Same.
11168 (range_tests_misc): Same.
11169 (range_tests_nonzero_bits): Same.
11170 * value-range.h (irange::type): Same.
11171 (irange::varying_compatible_p): Same.
11172 (irange::irange): Same.
11173 (int_range::int_range): Same.
11174 (irange::set_undefined): Same.
11175 (irange::set_varying): Same.
11176 (irange::lower_bound): Same.
11177 (irange::upper_bound): Same.
11178
11179 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11180
11181 * gimple-range-fold.cc (tree_lower_bound): Delete.
11182 (tree_upper_bound): Delete.
11183 (vrp_val_max): Delete.
11184 (vrp_val_min): Delete.
11185 (fold_using_range::range_of_ssa_name_with_loop_info): Call
11186 range_of_var_in_loop.
11187 * vr-values.cc (valid_value_p): Delete.
11188 (fix_overflow): Delete.
11189 (get_scev_info): New.
11190 (bounds_of_var_in_loop): Refactor into...
11191 (induction_variable_may_overflow_p): ...this,
11192 (range_from_loop_direction): ...and this,
11193 (range_of_var_in_loop): ...and this.
11194 * vr-values.h (bounds_of_var_in_loop): Delete.
11195 (range_of_var_in_loop): New.
11196
11197 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11198
11199 * gimple-range-fold.cc (adjust_pointer_diff_expr): Rewrite with
11200 irange_val*.
11201 (vrp_val_max): New.
11202 (vrp_val_min): New.
11203 * gimple-range-op.cc (cfn_strlen::fold_range): Use irange_val_*.
11204 * range-op.cc (max_limit): Same.
11205 (min_limit): Same.
11206 (plus_minus_ranges): Same.
11207 (operator_rshift::op1_range): Same.
11208 (operator_cast::inside_domain_p): Same.
11209 * value-range.cc (vrp_val_is_max): Delete.
11210 (vrp_val_is_min): Delete.
11211 (range_tests_misc): Use irange_val_*.
11212 * value-range.h (vrp_val_is_min): Delete.
11213 (vrp_val_is_max): Delete.
11214 (vrp_val_max): Delete.
11215 (irange_val_min): New.
11216 (vrp_val_min): Delete.
11217 (irange_val_max): New.
11218 * vr-values.cc (check_for_binary_op_overflow): Use irange_val_*.
11219
11220 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11221
11222 * fold-const.cc (expr_not_equal_to): Convert to irange wide_int API.
11223 * gimple-fold.cc (size_must_be_zero_p): Same.
11224 * gimple-loop-versioning.cc
11225 (loop_versioning::prune_loop_conditions): Same.
11226 * gimple-range-edge.cc (gcond_edge_range): Same.
11227 (gimple_outgoing_range::calc_switch_ranges): Same.
11228 * gimple-range-fold.cc (adjust_imagpart_expr): Same.
11229 (adjust_realpart_expr): Same.
11230 (fold_using_range::range_of_address): Same.
11231 (fold_using_range::relation_fold_and_or): Same.
11232 * gimple-range-gori.cc (gori_compute::gori_compute): Same.
11233 (range_is_either_true_or_false): Same.
11234 * gimple-range-op.cc (cfn_toupper_tolower::get_letter_range): Same.
11235 (cfn_clz::fold_range): Same.
11236 (cfn_ctz::fold_range): Same.
11237 * gimple-range-tests.cc (class test_expr_eval): Same.
11238 * gimple-ssa-warn-alloca.cc (alloca_call_type): Same.
11239 * ipa-cp.cc (ipa_value_range_from_jfunc): Same.
11240 (propagate_vr_across_jump_function): Same.
11241 (decide_whether_version_node): Same.
11242 * ipa-prop.cc (ipa_get_value_range): Same.
11243 * ipa-prop.h (ipa_range_set_and_normalize): Same.
11244 * range-op.cc (get_shift_range): Same.
11245 (value_range_from_overflowed_bounds): Same.
11246 (value_range_with_overflow): Same.
11247 (create_possibly_reversed_range): Same.
11248 (equal_op1_op2_relation): Same.
11249 (not_equal_op1_op2_relation): Same.
11250 (lt_op1_op2_relation): Same.
11251 (le_op1_op2_relation): Same.
11252 (gt_op1_op2_relation): Same.
11253 (ge_op1_op2_relation): Same.
11254 (operator_mult::op1_range): Same.
11255 (operator_exact_divide::op1_range): Same.
11256 (operator_lshift::op1_range): Same.
11257 (operator_rshift::op1_range): Same.
11258 (operator_cast::op1_range): Same.
11259 (operator_logical_and::fold_range): Same.
11260 (set_nonzero_range_from_mask): Same.
11261 (operator_bitwise_or::op1_range): Same.
11262 (operator_bitwise_xor::op1_range): Same.
11263 (operator_addr_expr::fold_range): Same.
11264 (pointer_plus_operator::wi_fold): Same.
11265 (pointer_or_operator::op1_range): Same.
11266 (INT): Same.
11267 (UINT): Same.
11268 (INT16): Same.
11269 (UINT16): Same.
11270 (SCHAR): Same.
11271 (UCHAR): Same.
11272 (range_op_cast_tests): Same.
11273 (range_op_lshift_tests): Same.
11274 (range_op_rshift_tests): Same.
11275 (range_op_bitwise_and_tests): Same.
11276 (range_relational_tests): Same.
11277 * range.cc (range_zero): Same.
11278 (range_nonzero): Same.
11279 * range.h (range_true): Same.
11280 (range_false): Same.
11281 (range_true_and_false): Same.
11282 * tree-data-ref.cc (split_constant_offset_1): Same.
11283 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
11284 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
11285 (find_unswitching_predicates_for_bb): Same.
11286 * tree-ssa-phiopt.cc (value_replacement): Same.
11287 * tree-ssa-threadbackward.cc
11288 (back_threader::find_taken_edge_cond): Same.
11289 * tree-ssanames.cc (ssa_name_has_boolean_range): Same.
11290 * tree-vrp.cc (find_case_label_range): Same.
11291 * value-query.cc (range_query::get_tree_range): Same.
11292 * value-range.cc (irange::set_nonnegative): Same.
11293 (frange::contains_p): Same.
11294 (frange::singleton_p): Same.
11295 (frange::internal_singleton_p): Same.
11296 (irange::irange_set): Same.
11297 (irange::irange_set_1bit_anti_range): Same.
11298 (irange::irange_set_anti_range): Same.
11299 (irange::set): Same.
11300 (irange::operator==): Same.
11301 (irange::singleton_p): Same.
11302 (irange::contains_p): Same.
11303 (irange::set_range_from_nonzero_bits): Same.
11304 (DEFINE_INT_RANGE_INSTANCE): Same.
11305 (INT): Same.
11306 (UINT): Same.
11307 (SCHAR): Same.
11308 (UINT128): Same.
11309 (UCHAR): Same.
11310 (range): New.
11311 (tree_range): New.
11312 (range_int): New.
11313 (range_uint): New.
11314 (range_uint128): New.
11315 (range_uchar): New.
11316 (range_char): New.
11317 (build_range3): Convert to irange wide_int API.
11318 (range_tests_irange3): Same.
11319 (range_tests_int_range_max): Same.
11320 (range_tests_strict_enum): Same.
11321 (range_tests_misc): Same.
11322 (range_tests_nonzero_bits): Same.
11323 (range_tests_nan): Same.
11324 (range_tests_signed_zeros): Same.
11325 * value-range.h (Value_Range::Value_Range): Same.
11326 (irange::set): Same.
11327 (irange::nonzero_p): Same.
11328 (irange::contains_p): Same.
11329 (range_includes_zero_p): Same.
11330 (irange::set_nonzero): Same.
11331 (irange::set_zero): Same.
11332 (contains_zero_p): Same.
11333 (frange::contains_p): Same.
11334 * vr-values.cc
11335 (simplify_using_ranges::op_with_boolean_value_range_p): Same.
11336 (bounds_of_var_in_loop): Same.
11337 (simplify_using_ranges::legacy_fold_cond_overflow): Same.
11338
11339 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11340
11341 * value-range.cc (irange::irange_union): Rename to...
11342 (irange::union_): ...this.
11343 (irange::irange_intersect): Rename to...
11344 (irange::intersect): ...this.
11345 * value-range.h (irange::union_): Delete.
11346 (irange::intersect): Delete.
11347
11348 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11349
11350 * vr-values.cc (bounds_of_var_in_loop): Convert to irange API.
11351
11352 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11353
11354 * vr-values.cc (check_for_binary_op_overflow): Tidy up by using
11355 ranger API.
11356 (compare_ranges): Delete.
11357 (compare_range_with_value): Delete.
11358 (bounds_of_var_in_loop): Tidy up by using ranger API.
11359 (simplify_using_ranges::fold_cond_with_ops): Cleanup and rename
11360 from vrp_evaluate_conditional_warnv_with_ops_using_ranges.
11361 (simplify_using_ranges::legacy_fold_cond_overflow): Remove
11362 strict_overflow_p and only_ranges.
11363 (simplify_using_ranges::legacy_fold_cond): Adjust call to
11364 legacy_fold_cond_overflow.
11365 (simplify_using_ranges::simplify_abs_using_ranges): Adjust for
11366 rename.
11367 (range_fits_type_p): Rename value_range to irange.
11368 * vr-values.h (range_fits_type_p): Adjust prototype.
11369
11370 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11371
11372 * value-range.cc (irange::irange_set_anti_range): Remove uses of
11373 tree_lower_bound and tree_upper_bound.
11374 (irange::verify_range): Same.
11375 (irange::operator==): Same.
11376 (irange::singleton_p): Same.
11377 * value-range.h (irange::tree_lower_bound): Delete.
11378 (irange::tree_upper_bound): Delete.
11379 (irange::lower_bound): Delete.
11380 (irange::upper_bound): Delete.
11381 (irange::zero_p): Remove uses of tree_lower_bound and
11382 tree_upper_bound.
11383
11384 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11385
11386 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Remove
11387 kind() call.
11388 (determine_value_range): Same.
11389 (record_nonwrapping_iv): Same.
11390 (infer_loop_bounds_from_signedness): Same.
11391 (scev_var_range_cant_overflow): Same.
11392 * tree-vrp.cc (operand_less_p): Delete.
11393 * tree-vrp.h (operand_less_p): Delete.
11394 * value-range.cc (get_legacy_range): Remove uses of deprecated API.
11395 (irange::value_inside_range): Delete.
11396 * value-range.h (vrange::kind): Delete.
11397 (irange::num_pairs): Remove check of m_kind.
11398 (irange::min): Delete.
11399 (irange::max): Delete.
11400
11401 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
11402
11403 * gimple-fold.cc (maybe_fold_comparisons_from_match_pd): Adjust
11404 for vrange_storage.
11405 * gimple-range-cache.cc (sbr_vector::sbr_vector): Same.
11406 (sbr_vector::grow): Same.
11407 (sbr_vector::set_bb_range): Same.
11408 (sbr_vector::get_bb_range): Same.
11409 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
11410 (sbr_sparse_bitmap::set_bb_range): Same.
11411 (sbr_sparse_bitmap::get_bb_range): Same.
11412 (block_range_cache::block_range_cache): Same.
11413 (ssa_global_cache::ssa_global_cache): Same.
11414 (ssa_global_cache::get_global_range): Same.
11415 (ssa_global_cache::set_global_range): Same.
11416 * gimple-range-cache.h: Same.
11417 * gimple-range-edge.cc
11418 (gimple_outgoing_range::gimple_outgoing_range): Same.
11419 (gimple_outgoing_range::switch_edge_range): Same.
11420 (gimple_outgoing_range::calc_switch_ranges): Same.
11421 * gimple-range-edge.h: Same.
11422 * gimple-range-infer.cc
11423 (infer_range_manager::infer_range_manager): Same.
11424 (infer_range_manager::get_nonzero): Same.
11425 (infer_range_manager::maybe_adjust_range): Same.
11426 (infer_range_manager::add_range): Same.
11427 * gimple-range-infer.h: Rename obstack_vrange_allocator to
11428 vrange_allocator.
11429 * tree-core.h (struct irange_storage_slot): Remove.
11430 (struct tree_ssa_name): Remove irange_info and frange_info. Make
11431 range_info a pointer to vrange_storage.
11432 * tree-ssanames.cc (range_info_fits_p): Adjust for vrange_storage.
11433 (range_info_alloc): Same.
11434 (range_info_free): Same.
11435 (range_info_get_range): Same.
11436 (range_info_set_range): Same.
11437 (get_nonzero_bits): Same.
11438 * value-query.cc (get_ssa_name_range_info): Same.
11439 * value-range-storage.cc (class vrange_internal_alloc): New.
11440 (class vrange_obstack_alloc): New.
11441 (class vrange_ggc_alloc): New.
11442 (vrange_allocator::vrange_allocator): New.
11443 (vrange_allocator::~vrange_allocator): New.
11444 (vrange_storage::alloc_slot): New.
11445 (vrange_allocator::alloc): New.
11446 (vrange_allocator::free): New.
11447 (vrange_allocator::clone): New.
11448 (vrange_allocator::clone_varying): New.
11449 (vrange_allocator::clone_undefined): New.
11450 (vrange_storage::alloc): New.
11451 (vrange_storage::set_vrange): Remove slot argument.
11452 (vrange_storage::get_vrange): Same.
11453 (vrange_storage::fits_p): Same.
11454 (vrange_storage::equal_p): New.
11455 (irange_storage::write_lengths_address): New.
11456 (irange_storage::lengths_address): New.
11457 (irange_storage_slot::alloc_slot): Remove.
11458 (irange_storage::alloc): New.
11459 (irange_storage_slot::irange_storage_slot): Remove.
11460 (irange_storage::irange_storage): New.
11461 (write_wide_int): New.
11462 (irange_storage_slot::set_irange): Remove.
11463 (irange_storage::set_irange): New.
11464 (read_wide_int): New.
11465 (irange_storage_slot::get_irange): Remove.
11466 (irange_storage::get_irange): New.
11467 (irange_storage_slot::size): Remove.
11468 (irange_storage::equal_p): New.
11469 (irange_storage_slot::num_wide_ints_needed): Remove.
11470 (irange_storage::size): New.
11471 (irange_storage_slot::fits_p): Remove.
11472 (irange_storage::fits_p): New.
11473 (irange_storage_slot::dump): Remove.
11474 (irange_storage::dump): New.
11475 (frange_storage_slot::alloc_slot): Remove.
11476 (frange_storage::alloc): New.
11477 (frange_storage_slot::set_frange): Remove.
11478 (frange_storage::set_frange): New.
11479 (frange_storage_slot::get_frange): Remove.
11480 (frange_storage::get_frange): New.
11481 (frange_storage_slot::fits_p): Remove.
11482 (frange_storage::equal_p): New.
11483 (frange_storage::fits_p): New.
11484 (ggc_vrange_allocator): New.
11485 (ggc_alloc_vrange_storage): New.
11486 * value-range-storage.h (class vrange_storage): Rewrite.
11487 (class irange_storage): Rewrite.
11488 (class frange_storage): Rewrite.
11489 (class obstack_vrange_allocator): Remove.
11490 (class ggc_vrange_allocator): Remove.
11491 (vrange_allocator::alloc_vrange): Remove.
11492 (vrange_allocator::alloc_irange): Remove.
11493 (vrange_allocator::alloc_frange): Remove.
11494 (ggc_alloc_vrange_storage): New.
11495 * value-range.h (class irange): Rename vrange_allocator to
11496 irange_storage.
11497 (class frange): Same.
11498
11499 2023-04-30 Roger Sayle <roger@nextmovesoftware.com>
11500
11501 * config/stormy16/stormy16.md (neghi2): Rewrite pattern using
11502 inc to avoid clobbering the carry flag.
11503
11504 2023-04-30 Andrew Pinski <apinski@marvell.com>
11505
11506 * match.pd: Add patterns for "a != 0 ? FUNC(a) : CST"
11507 for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
11508
11509 2023-04-30 Andrew Pinski <apinski@marvell.com>
11510
11511 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
11512 Allow some builtin/internal function calls which
11513 are known not to trap/throw.
11514 (phiopt_worker::match_simplify_replacement):
11515 Use name instead of getting the lhs again.
11516
11517 2023-04-30 Joakim Nohlgård <joakim@nohlgard.se>
11518
11519 * configure: Regenerate.
11520 * configure.ac: Use ld -r in the check for HAVE_LD_RO_RW_SECTION_MIXING
11521
11522 2023-04-29 Hans-Peter Nilsson <hp@axis.com>
11523
11524 * reload1.cc (emit_insn_if_valid_for_reload_1): Rename from
11525 emit_insn_if_valid_for_reload.
11526 (emit_insn_if_valid_for_reload): Call new helper, and if a SET fails
11527 to be recognized, also try emitting a parallel that clobbers
11528 TARGET_FLAGS_REGNUM, as applicable.
11529
11530 2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
11531
11532 * config/stormy16/stormy16.md (neghi2): Convert from a define_expand
11533 to a define_insn.
11534 (*rotatehi_1): New define_insn for efficient 2 insn sequence.
11535 (*rotatehi_8, *rotaterthi_8): New define_insn to emit a swpb.
11536
11537 2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
11538
11539 * config/stormy16/stormy16.md (any_lshift): New code iterator.
11540 (any_or_plus): Likewise.
11541 (any_rotate): Likewise.
11542 (*<any_lshift>_and_internal): New define_insn_and_split to
11543 recognize a logical shift followed by an AND, and split it
11544 again after reload.
11545 (*swpn): New define_insn matching xstormy16's swpn.
11546 (*swpn_zext): New define_insn recognizing swpn followed by
11547 zero_extendqihi2, i.e. with the high byte set to zero.
11548 (*swpn_sext): Likewise, for swpn followed by cbw.
11549 (*swpn_sext_2): Likewise, for an alternate RTL form.
11550 (*swpn_zext_ior): A pre-reload splitter so that an swpn+zext+ior
11551 sequence is split in the correct place to recognize the *swpn_zext
11552 followed by any_or_plus (ior, xor or plus) instruction.
11553
11554 2023-04-29 Mikael Pettersson <mikpelinux@gmail.com>
11555
11556 PR target/105525
11557 * config.gcc (vax-*-linux*): Add glibc-stdint.h.
11558 (lm32-*-uclinux*): Likewise.
11559
11560 2023-04-29 Fei Gao <gaofei@eswincomputing.com>
11561
11562 * config/riscv/riscv.cc (riscv_avoid_save_libcall): helper function
11563 for riscv_use_save_libcall.
11564 (riscv_use_save_libcall): call riscv_avoid_save_libcall.
11565 (riscv_compute_frame_info): restructure to decouple stack allocation
11566 for rv32e w/o save-restore.
11567
11568 2023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
11569
11570 * doc/install.texi: Fix documentation typo
11571
11572 2023-04-28 Matevos Mehrabyan <matevosmehrabyan@gmail.com>
11573
11574 * config/riscv/iterators.md (only_div, paired_mod): New iterators.
11575 (u): Add div/udiv cases.
11576 * config/riscv/riscv-protos.h (riscv_use_divmod_expander): Prototype.
11577 * config/riscv/riscv.cc (struct riscv_tune_param): Add field for
11578 divmod expansion.
11579 (rocket_tune_info, sifive_7_tune_info): Initialize new field.
11580 (thead_c906_tune_info): Likewise.
11581 (optimize_size_tune_info): Likewise.
11582 (riscv_use_divmod_expander): New function.
11583 * config/riscv/riscv.md (<u>divmod<mode>4): New expander.
11584
11585 2023-04-28 Karen Sargsyan <karen1999411@gmail.com>
11586
11587 * config/riscv/bitmanip.md: Added clmulr instruction.
11588 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
11589 * config/riscv/riscv.md: (UNSPEC_CLMULR): Add new unspec type.
11590 (type): Add clmul
11591 * config/riscv/riscv-cmo.def: Added built-in function for clmulr.
11592 * config/riscv/crypto.md: Move clmul[h] instructions to bitmanip.md.
11593 * config/riscv/riscv-scalar-crypto.def: Move clmul[h] built-in
11594 functions to riscv-cmo.def.
11595 * config/riscv/generic.md: Add clmul to list of instructions
11596 using the generic_imul reservation.
11597
11598 2023-04-28 Jivan Hakobyan <jivanhakobyan9@gmail.com>
11599
11600 * config/riscv/bitmanip.md: Added expanders for minu/maxu instructions
11601
11602 2023-04-28 Andrew Pinski <apinski@marvell.com>
11603
11604 PR tree-optimization/100958
11605 * tree-ssa-phiopt.cc (two_value_replacement): Remove.
11606 (pass_phiopt::execute): Don't call two_value_replacement.
11607 * match.pd (a !=/== CST1 ? CST2 : CST3): Add pattern to
11608 handle what two_value_replacement did.
11609
11610 2023-04-28 Andrew Pinski <apinski@marvell.com>
11611
11612 * match.pd: Add patterns for
11613 "(A CMP B) ? MIN/MAX<A, C> : MIN/MAX <B, C>".
11614
11615 2023-04-28 Andrew Pinski <apinski@marvell.com>
11616
11617 * match.pd: Factor out the deciding the min/max from
11618 the "(cond (cmp (convert1? x) c1) (convert2? x) c2)"
11619 pattern to ...
11620 * fold-const.cc (minmax_from_comparison): this new function.
11621 * fold-const.h (minmax_from_comparison): New prototype.
11622
11623 2023-04-28 Roger Sayle <roger@nextmovesoftware.com>
11624
11625 PR rtl-optimization/109476
11626 * lower-subreg.cc: Include explow.h for force_reg.
11627 (find_decomposable_shift_zext): Pass an additional SPEED_P argument.
11628 If decomposing a suitable LSHIFTRT and we're not splitting
11629 ZERO_EXTEND (based on the current SPEED_P), then use a ZERO_EXTEND
11630 instead of setting a high part SUBREG to zero, which helps combine.
11631 (decompose_multiword_subregs): Update call to resolve_shift_zext.
11632
11633 2023-04-28 Richard Biener <rguenther@suse.de>
11634
11635 * tree-vect-data-refs.cc (vect_analyze_data_refs): Always
11636 consider scatters.
11637 * tree-vect-stmts.cc (vect_model_store_cost): Pass in the
11638 gather-scatter info and cost emulated scatters accordingly.
11639 (get_load_store_type): Support emulated scatters.
11640 (vectorizable_store): Likewise. Emulate them by extracting
11641 scalar offsets and data, doing scalar stores.
11642
11643 2023-04-28 Richard Biener <rguenther@suse.de>
11644
11645 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
11646 Tame down element extracts and scalar loads for gather/scatter
11647 similar to elementwise strided accesses.
11648
11649 2023-04-28 Pan Li <pan2.li@intel.com>
11650 kito-cheng <kito.cheng@sifive.com>
11651
11652 * config/riscv/vector.md: Add new define split to perform
11653 the simplification.
11654
11655 2023-04-28 Richard Biener <rguenther@suse.de>
11656
11657 PR ipa/109652
11658 * ipa-param-manipulation.cc
11659 (ipa_param_body_adjustments::modify_expression): Allow
11660 conversion of a register to a non-register type. Elide
11661 conversions inside BIT_FIELD_REFs.
11662
11663 2023-04-28 Richard Biener <rguenther@suse.de>
11664
11665 PR tree-optimization/109644
11666 * tree-cfg.cc (verify_types_in_gimple_reference): Check
11667 register constraints on the outermost VIEW_CONVERT_EXPR
11668 only. Do not allow register or invariant bases on
11669 multi-level or possibly variable index handled components.
11670
11671 2023-04-28 Richard Biener <rguenther@suse.de>
11672
11673 * gimplify.cc (gimplify_compound_lval): When there's a
11674 non-register type produced by one of the handled component
11675 operations make sure we get a non-register base.
11676
11677 2023-04-28 Richard Biener <rguenther@suse.de>
11678
11679 PR tree-optimization/108752
11680 * tree-vect-generic.cc (build_replicated_const): Rename
11681 to build_replicated_int_cst and move to tree.{h,cc}.
11682 (do_plus_minus): Adjust.
11683 (do_negate): Likewise.
11684 * tree-vect-stmts.cc (vectorizable_operation): Emit emulated
11685 arithmetic vector operations in lowered form.
11686 * tree.h (build_replicated_int_cst): Declare.
11687 * tree.cc (build_replicated_int_cst): Moved from
11688 tree-vect-generic.cc build_replicated_const.
11689
11690 2023-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11691
11692 PR target/99195
11693 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): Rename to...
11694 (aarch64_rbit<mode><vczle><vczbe>): ... This.
11695 (neg<mode>2): Rename to...
11696 (neg<mode>2<vczle><vczbe>): ... This.
11697 (abs<mode>2): Rename to...
11698 (abs<mode>2<vczle><vczbe>): ... This.
11699 (aarch64_abs<mode>): Rename to...
11700 (aarch64_abs<mode><vczle><vczbe>): ... This.
11701 (one_cmpl<mode>2): Rename to...
11702 (one_cmpl<mode>2<vczle><vczbe>): ... This.
11703 (clrsb<mode>2): Rename to...
11704 (clrsb<mode>2<vczle><vczbe>): ... This.
11705 (clz<mode>2): Rename to...
11706 (clz<mode>2<vczle><vczbe>): ... This.
11707 (popcount<mode>2): Rename to...
11708 (popcount<mode>2<vczle><vczbe>): ... This.
11709
11710 2023-04-28 Jakub Jelinek <jakub@redhat.com>
11711
11712 * gimple-range-op.cc (class cfn_sqrt): New type.
11713 (op_cfn_sqrt): New variable.
11714 (gimple_range_op_handler::maybe_builtin_call): Handle
11715 CASE_CFN_SQRT{,_FN}.
11716
11717 2023-04-28 Aldy Hernandez <aldyh@redhat.com>
11718 Jakub Jelinek <jakub@redhat.com>
11719
11720 * value-range.h (frange_nextafter): Declare.
11721 * gimple-range-op.cc (class cfn_sincos): New.
11722 (op_cfn_sin, op_cfn_cos): New variables.
11723 (gimple_range_op_handler::maybe_builtin_call): Handle
11724 CASE_CFN_{SIN,COS}{,_FN}.
11725
11726 2023-04-28 Jakub Jelinek <jakub@redhat.com>
11727
11728 * target.def (libm_function_max_error): New target hook.
11729 * doc/tm.texi.in (TARGET_LIBM_FUNCTION_MAX_ERROR): Add.
11730 * doc/tm.texi: Regenerated.
11731 * targhooks.h (default_libm_function_max_error,
11732 glibc_linux_libm_function_max_error): Declare.
11733 * targhooks.cc: Include case-cfn-macros.h.
11734 (default_libm_function_max_error,
11735 glibc_linux_libm_function_max_error): New functions.
11736 * config/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
11737 * config/linux-protos.h (linux_libm_function_max_error): Declare.
11738 * config/linux.cc: Include target.h and targhooks.h.
11739 (linux_libm_function_max_error): New function.
11740 * config/arc/arc.cc: Include targhooks.h and case-cfn-macros.h.
11741 (arc_libm_function_max_error): New function.
11742 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
11743 * config/i386/i386.cc (ix86_libc_has_fast_function): Formatting fix.
11744 (ix86_libm_function_max_error): New function.
11745 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
11746 * config/rs6000/rs6000-protos.h
11747 (rs6000_linux_libm_function_max_error): Declare.
11748 * config/rs6000/rs6000-linux.cc: Include target.h, targhooks.h, tree.h
11749 and case-cfn-macros.h.
11750 (rs6000_linux_libm_function_max_error): New function.
11751 * config/rs6000/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
11752 * config/rs6000/linux64.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
11753 * config/or1k/or1k.cc: Include targhooks.h and case-cfn-macros.h.
11754 (or1k_libm_function_max_error): New function.
11755 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
11756
11757 2023-04-28 Alexandre Oliva <oliva@adacore.com>
11758
11759 * gimple-harden-conditionals.cc (insert_edge_check_and_trap):
11760 Move detach value calls...
11761 (pass_harden_conditional_branches::execute): ... here.
11762 (pass_harden_compares::execute): Detach values before
11763 compares.
11764
11765 2023-04-27 Andrew Stubbs <ams@codesourcery.com>
11766
11767 * config/gcn/gcn-valu.md (cmul<conj_op><mode>3): Use gcn_gen_undef.
11768 (cml<addsub_as><mode>4): Likewise.
11769 (vec_addsub<mode>3): Likewise.
11770 (cadd<rot><mode>3): Likewise.
11771 (vec_fmaddsub<mode>4): Likewise.
11772 (vec_fmsubadd<mode>4): Likewise, and use sub for the odd lanes.
11773
11774 2023-04-27 Andrew Pinski <apinski@marvell.com>
11775
11776 * tree-ssa-phiopt.cc (phiopt_early_allow): Allow for
11777 up to 2 min/max expressions in the sequence/match code.
11778
11779 2023-04-27 Andrew Pinski <apinski@marvell.com>
11780
11781 * rtlanal.cc (may_trap_p_1): Treat SMIN/SMAX similar as
11782 COMPARISON.
11783 * tree-eh.cc (operation_could_trap_helper_p): Treate
11784 MIN_EXPR/MAX_EXPR similar as other comparisons.
11785
11786 2023-04-27 Andrew Pinski <apinski@marvell.com>
11787
11788 * tree-ssa-phiopt.cc (cond_store_replacement): Remove
11789 prototype.
11790 (cond_if_else_store_replacement): Likewise.
11791 (get_non_trapping): Likewise.
11792 (store_elim_worker): Move into ...
11793 (pass_cselim::execute): This.
11794
11795 2023-04-27 Andrew Pinski <apinski@marvell.com>
11796
11797 * tree-ssa-phiopt.cc (two_value_replacement): Remove
11798 prototype.
11799 (match_simplify_replacement): Likewise.
11800 (factor_out_conditional_conversion): Likewise.
11801 (value_replacement): Likewise.
11802 (minmax_replacement): Likewise.
11803 (spaceship_replacement): Likewise.
11804 (cond_removal_in_builtin_zero_pattern): Likewise.
11805 (hoist_adjacent_loads): Likewise.
11806 (tree_ssa_phiopt_worker): Move into ...
11807 (pass_phiopt::execute): this.
11808
11809 2023-04-27 Andrew Pinski <apinski@marvell.com>
11810
11811 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove
11812 do_store_elim argument and split that part out to ...
11813 (store_elim_worker): This new function.
11814 (pass_cselim::execute): Call store_elim_worker.
11815 (pass_phiopt::execute): Update call to tree_ssa_phiopt_worker.
11816
11817 2023-04-27 Jan Hubicka <jh@suse.cz>
11818
11819 * cfgloopmanip.h (unloop_loops): Export.
11820 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Unloop loops
11821 that no longer loop.
11822 * tree-ssa-loop-ivcanon.cc (unloop_loops): Export; do not free
11823 vectors of loops to unloop.
11824 (canonicalize_induction_variables): Free vectors here.
11825 (tree_unroll_loops_completely): Free vectors here.
11826
11827 2023-04-27 Richard Biener <rguenther@suse.de>
11828
11829 PR tree-optimization/109170
11830 * gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call):
11831 Handle __builtin_expect and similar via cfn_pass_through_arg1
11832 and inspecting the calls fnspec.
11833 * builtins.cc (builtin_fnspec): Handle BUILT_IN_EXPECT
11834 and BUILT_IN_EXPECT_WITH_PROBABILITY.
11835
11836 2023-04-27 Alexandre Oliva <oliva@adacore.com>
11837
11838 * genmultilib: Use CONFIG_SHELL to run sub-scripts.
11839
11840 2023-04-27 Aldy Hernandez <aldyh@redhat.com>
11841
11842 PR tree-optimization/109639
11843 * ipa-cp.cc (ipa_value_range_from_jfunc): Normalize range.
11844 (propagate_vr_across_jump_function): Same.
11845 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
11846 * ipa-prop.h (ipa_range_set_and_normalize): New.
11847 * value-range.cc (irange::set): Assert min and max are INTEGER_CST.
11848
11849 2023-04-27 Richard Biener <rguenther@suse.de>
11850
11851 * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Do not
11852 create a CTOR operand in the result when simplifying GIMPLE.
11853
11854 2023-04-27 Richard Biener <rguenther@suse.de>
11855
11856 * gimplify.cc (gimplify_compound_lval): When the base
11857 gimplified to a register make sure to split up chains
11858 of operations.
11859
11860 2023-04-27 Richard Biener <rguenther@suse.de>
11861
11862 PR ipa/109607
11863 * ipa-param-manipulation.h
11864 (ipa_param_body_adjustments::modify_expression): Add extra_stmts
11865 argument.
11866 * ipa-param-manipulation.cc
11867 (ipa_param_body_adjustments::modify_expression): Likewise.
11868 When we need a conversion and the replacement is a register
11869 split the conversion out.
11870 (ipa_param_body_adjustments::modify_assignment): Pass
11871 extra_stmts to RHS modify_expression.
11872
11873 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
11874
11875 * doc/extend.texi (Zero Length): Describe example.
11876
11877 2023-04-27 Richard Biener <rguenther@suse.de>
11878
11879 PR tree-optimization/109594
11880 * tree-ssa.cc (non_rewritable_mem_ref_base): Constrain
11881 what we rewrite to a register based on the above.
11882
11883 2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
11884
11885 * config/riscv/riscv.cc: Fix whitespace.
11886 * config/riscv/sync.md: Fix whitespace.
11887
11888 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
11889
11890 PR tree-optimization/108697
11891 * gimple-range-cache.cc (ssa_global_cache::clear_range): Do
11892 not clear the vector on an out of range query.
11893 (ssa_cache::dump): Use dump_range_query instead of get_range.
11894 (ssa_cache::dump_range_query): New.
11895 (ssa_lazy_cache::dump_range_query): New.
11896 (ssa_lazy_cache::set_range): New.
11897 * gimple-range-cache.h (ssa_cache::dump_range_query): New.
11898 (class ssa_lazy_cache): New.
11899 (ssa_lazy_cache::ssa_lazy_cache): New.
11900 (ssa_lazy_cache::~ssa_lazy_cache): New.
11901 (ssa_lazy_cache::get_range): New.
11902 (ssa_lazy_cache::clear_range): New.
11903 (ssa_lazy_cache::clear): New.
11904 (ssa_lazy_cache::dump): New.
11905 * gimple-range-path.cc (path_range_query::path_range_query): Do
11906 not allocate a ssa_cache object nor has_cache bitmap.
11907 (path_range_query::~path_range_query): Do not free objects.
11908 (path_range_query::clear_cache): Remove.
11909 (path_range_query::get_cache): Adjust.
11910 (path_range_query::set_cache): Remove.
11911 (path_range_query::dump): Don't call through a pointer.
11912 (path_range_query::internal_range_of_expr): Set cache directly.
11913 (path_range_query::reset_path): Clear cache directly.
11914 (path_range_query::ssa_range_in_phi): Fold with globals only.
11915 (path_range_query::compute_ranges_in_phis): Simply set range.
11916 (path_range_query::compute_ranges_in_block): Call cache directly.
11917 * gimple-range-path.h (class path_range_query): Replace bitmap
11918 and cache pointer with lazy cache object.
11919 * gimple-range.h (class assume_query): Use ssa_lazy_cache.
11920
11921 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
11922
11923 * gimple-range-cache.cc (ssa_cache::ssa_cache): Rename.
11924 (ssa_cache::~ssa_cache): Rename.
11925 (ssa_cache::has_range): New.
11926 (ssa_cache::get_range): Rename.
11927 (ssa_cache::set_range): Rename.
11928 (ssa_cache::clear_range): Rename.
11929 (ssa_cache::clear): Rename.
11930 (ssa_cache::dump): Rename and use get_range.
11931 (ranger_cache::get_global_range): Use get_range and set_range.
11932 (ranger_cache::range_of_def): Use get_range.
11933 * gimple-range-cache.h (class ssa_cache): Rename class and methods.
11934 (class ranger_cache): Use ssa_cache.
11935 * gimple-range-path.cc (path_range_query::path_range_query): Use
11936 ssa_cache.
11937 (path_range_query::get_cache): Use get_range.
11938 (path_range_query::set_cache): Use set_range.
11939 * gimple-range-path.h (class path_range_query): Use ssa_cache.
11940 * gimple-range.cc (assume_query::assume_range_p): Use get_range.
11941 (assume_query::range_of_expr): Use get_range.
11942 (assume_query::assume_query): Use set_range.
11943 (assume_query::calculate_op): Use get_range and set_range.
11944 * gimple-range.h (class assume_query): Use ssa_cache.
11945
11946 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
11947
11948 * gimple-range-cache.cc (sbr_vector::sbr_vector): Add parameter
11949 and local to optionally zero memory.
11950 (br_vector::grow): Only zero memory if flag is set.
11951 (class sbr_lazy_vector): New.
11952 (sbr_lazy_vector::sbr_lazy_vector): New.
11953 (sbr_lazy_vector::set_bb_range): New.
11954 (sbr_lazy_vector::get_bb_range): New.
11955 (sbr_lazy_vector::bb_range_p): New.
11956 (block_range_cache::set_bb_range): Check flags and Use sbr_lazy_vector.
11957 * gimple-range-gori.cc (gori_map::calculate_gori): Use
11958 param_vrp_switch_limit.
11959 (gori_compute::gori_compute): Use param_vrp_switch_limit.
11960 * params.opt (vrp_sparse_threshold): Rename from evrp_sparse_threshold.
11961 (vrp_switch_limit): Rename from evrp_switch_limit.
11962 (vrp_vector_threshold): New.
11963
11964 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
11965
11966 * value-relation.cc (dom_oracle::query_relation): Check early for lack
11967 of any relation.
11968 * value-relation.h (equiv_oracle::has_equiv_p): New.
11969
11970 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
11971
11972 PR tree-optimization/109417
11973 * gimple-range-gori.cc (range_def_chain::register_dependency):
11974 Save the ssa version number, not the pointer.
11975 (gori_compute::may_recompute_p): No need to check if a dependency
11976 is in the free list.
11977 * gimple-range-gori.h (class range_def_chain): Change ssa1 and ssa2
11978 fields to be unsigned int instead of trees.
11979 (ange_def_chain::depend1): Adjust.
11980 (ange_def_chain::depend2): Adjust.
11981 * gimple-range.h: Include "ssa.h" to inline ssa_name().
11982
11983 2023-04-26 David Edelsohn <dje.gcc@gmail.com>
11984
11985 * config/rs6000/aix72.h (TARGET_DEFAULT): Use ISA_2_6_MASKS_SERVER.
11986 * config/rs6000/aix73.h (TARGET_DEFAULT): Use ISA_2_7_MASKS_SERVER.
11987 (PROCESSOR_DEFAULT): Use PROCESSOR_POWER8.
11988
11989 2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
11990
11991 PR target/104338
11992 * config/riscv/riscv-protos.h: Add helper function stubs.
11993 * config/riscv/riscv.cc: Add helper functions for subword masking.
11994 * config/riscv/riscv.opt: Add command-line flags -minline-atomics and
11995 -mno-inline-atomics.
11996 * config/riscv/sync.md: Add masking logic and inline asm for fetch_and_op,
11997 fetch_and_nand, CAS, and exchange ops.
11998 * doc/invoke.texi: Add blurb regarding new command-line flags
11999 -minline-atomics and -mno-inline-atomics.
12000
12001 2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12002
12003 * config/aarch64/aarch64-simd.md (aarch64_rshrn2<mode>_insn_le):
12004 Reimplement using standard RTL codes instead of unspec.
12005 (aarch64_rshrn2<mode>_insn_be): Likewise.
12006 (aarch64_rshrn2<mode>): Adjust for the above.
12007 * config/aarch64/aarch64.md (UNSPEC_RSHRN): Delete.
12008
12009 2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12010
12011 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le): Reimplement
12012 with standard RTL codes instead of an UNSPEC.
12013 (aarch64_rshrn<mode>_insn_be): Likewise.
12014 (aarch64_rshrn<mode>): Adjust for the above.
12015 * config/aarch64/predicates.md (aarch64_simd_rshrn_imm_vec): Define.
12016
12017 2023-04-26 Pan Li <pan2.li@intel.com>
12018 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12019
12020 * config/riscv/riscv.cc (riscv_classify_address): Allow
12021 const0_rtx for the RVV load/store.
12022
12023 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12024
12025 * range-op.cc (range_op_cast_tests): Remove legacy support.
12026 * value-range-storage.h (vrange_allocator::alloc_irange): Same.
12027 * value-range.cc (irange::operator=): Same.
12028 (get_legacy_range): Same.
12029 (irange::copy_legacy_to_multi_range): Delete.
12030 (irange::copy_to_legacy): Delete.
12031 (irange::irange_set_anti_range): Delete.
12032 (irange::set): Remove legacy support.
12033 (irange::verify_range): Same.
12034 (irange::legacy_lower_bound): Delete.
12035 (irange::legacy_upper_bound): Delete.
12036 (irange::legacy_equal_p): Delete.
12037 (irange::operator==): Remove legacy support.
12038 (irange::singleton_p): Same.
12039 (irange::value_inside_range): Same.
12040 (irange::contains_p): Same.
12041 (intersect_ranges): Delete.
12042 (irange::legacy_intersect): Delete.
12043 (union_ranges): Delete.
12044 (irange::legacy_union): Delete.
12045 (irange::legacy_verbose_union_): Delete.
12046 (irange::legacy_verbose_intersect): Delete.
12047 (irange::irange_union): Remove legacy support.
12048 (irange::irange_intersect): Same.
12049 (irange::intersect): Same.
12050 (irange::invert): Same.
12051 (ranges_from_anti_range): Delete.
12052 (gt_pch_nx): Adjust for legacy removal.
12053 (gt_ggc_mx): Same.
12054 (range_tests_legacy): Delete.
12055 (range_tests_misc): Adjust for legacy removal.
12056 (range_tests): Same.
12057 * value-range.h (class irange): Same.
12058 (irange::legacy_mode_p): Delete.
12059 (ranges_from_anti_range): Delete.
12060 (irange::nonzero_p): Adjust for legacy removal.
12061 (irange::lower_bound): Same.
12062 (irange::upper_bound): Same.
12063 (irange::union_): Same.
12064 (irange::intersect): Same.
12065 (irange::set_nonzero): Same.
12066 (irange::set_zero): Same.
12067 * vr-values.cc (simplify_using_ranges::legacy_fold_cond_overflow): Same.
12068
12069 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12070
12071 * value-range.cc (irange::copy_legacy_to_multi_range): Rewrite use
12072 of range_has_numeric_bounds_p with irange API.
12073 (range_has_numeric_bounds_p): Delete.
12074 * value-range.h (range_has_numeric_bounds_p): Delete.
12075
12076 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12077
12078 * tree-data-ref.cc (compute_distributive_range): Replace uses of
12079 range_int_cst_p with irange API.
12080 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.
12081 * tree-vrp.h (range_int_cst_p): Delete.
12082 * vr-values.cc (check_for_binary_op_overflow): Replace usees of
12083 range_int_cst_p with irange API.
12084 (vr_set_zero_nonzero_bits): Same.
12085 (range_fits_type_p): Same.
12086 (simplify_using_ranges::simplify_casted_cond): Same.
12087 * tree-vrp.cc (range_int_cst_p): Remove.
12088
12089 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12090
12091 * tree-ssa-strlen.cc (compare_nonzero_chars): Convert to wide_ints.
12092
12093 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12094
12095 * builtins.cc (expand_builtin_strnlen): Rewrite deprecated irange
12096 API uses to new API.
12097 * gimple-predicate-analysis.cc (find_var_cmp_const): Same.
12098 * internal-fn.cc (get_min_precision): Same.
12099 * match.pd: Same.
12100 * tree-affine.cc (expr_to_aff_combination): Same.
12101 * tree-data-ref.cc (dr_step_indicator): Same.
12102 * tree-dfa.cc (get_ref_base_and_extent): Same.
12103 * tree-scalar-evolution.cc (iv_can_overflow_p): Same.
12104 * tree-ssa-phiopt.cc (two_value_replacement): Same.
12105 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
12106 * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
12107 * tree-ssa-strlen.cc (compare_nonzero_chars): Same.
12108 * tree-switch-conversion.cc (bit_test_cluster::emit): Same.
12109 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Same.
12110 * tree.cc (get_range_pos_neg): Same.
12111
12112 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12113
12114 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Use
12115 vrange::dump instead of ad-hoc dumper.
12116 * tree-ssa-strlen.cc (dump_strlen_info): Same.
12117 * value-range-pretty-print.cc (visit): Pass TDF_NOUID to
12118 dump_generic_node.
12119
12120 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12121
12122 * range-op.cc (operator_cast::op1_range): Use
12123 create_possibly_reversed_range.
12124 (operator_bitwise_and::simple_op1_range_solver): Same.
12125 * value-range.cc (swap_out_of_order_endpoints): Delete.
12126 (irange::set): Remove call to swap_out_of_order_endpoints.
12127
12128 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12129
12130 * builtins.cc (determine_block_size): Convert use of legacy API to
12131 get_legacy_range.
12132 * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same.
12133 (array_bounds_checker::check_array_ref): Same.
12134 * gimple-ssa-warn-restrict.cc
12135 (builtin_memref::extend_offset_range): Same.
12136 * ipa-cp.cc (ipcp_store_vr_results): Same.
12137 * ipa-fnsummary.cc (set_switch_stmt_execution_predicate): Same.
12138 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
12139 (ipa_write_jump_function): Same.
12140 * pointer-query.cc (get_size_range): Same.
12141 * tree-data-ref.cc (split_constant_offset): Same.
12142 * tree-ssa-strlen.cc (get_range): Same.
12143 (maybe_diag_stxncpy_trunc): Same.
12144 (strlen_pass::get_len_or_size): Same.
12145 (strlen_pass::count_nonzero_bytes_addr): Same.
12146 * tree-vect-patterns.cc (vect_get_range_info): Same.
12147 * value-range.cc (irange::maybe_anti_range): Remove.
12148 (get_legacy_range): New.
12149 (irange::copy_to_legacy): Use get_legacy_range.
12150 (ranges_from_anti_range): Same.
12151 * value-range.h (class irange): Remove maybe_anti_range.
12152 (get_legacy_range): New.
12153 * vr-values.cc (check_for_binary_op_overflow): Convert use of
12154 legacy API to get_legacy_range.
12155 (compare_ranges): Same.
12156 (compare_range_with_value): Same.
12157 (bounds_of_var_in_loop): Same.
12158 (find_case_label_ranges): Same.
12159 (simplify_using_ranges::simplify_switch_using_ranges): Same.
12160
12161 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12162
12163 * value-range-pretty-print.cc (vrange_printer::visit): Remove
12164 constant_p use.
12165 * value-range.cc (irange::constant_p): Remove.
12166 (irange::get_nonzero_bits_from_range): Remove constant_p use.
12167 * value-range.h (class irange): Remove constant_p.
12168 (irange::num_pairs): Remove constant_p use.
12169
12170 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12171
12172 * value-range.cc (irange::copy_legacy_to_multi_range): Remove
12173 symbolics support.
12174 (irange::set): Same.
12175 (irange::legacy_lower_bound): Same.
12176 (irange::legacy_upper_bound): Same.
12177 (irange::contains_p): Same.
12178 (range_tests_legacy): Same.
12179 (irange::normalize_addresses): Remove.
12180 (irange::normalize_symbolics): Remove.
12181 (irange::symbolic_p): Remove.
12182 * value-range.h (class irange): Remove symbolic_p,
12183 normalize_symbolics, and normalize_addresses.
12184 * vr-values.cc (simplify_using_ranges::two_valued_val_range_p):
12185 Remove symbolics support.
12186
12187 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12188
12189 * value-range.cc (irange::may_contain_p): Remove.
12190 * value-range.h (range_includes_zero_p): Rewrite may_contain_p
12191 usage with contains_p.
12192 * vr-values.cc (compare_range_with_value): Same.
12193
12194 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12195
12196 * tree-vrp.cc (supported_types_p): Remove.
12197 (defined_ranges_p): Remove.
12198 (range_fold_binary_expr): Remove.
12199 (range_fold_unary_expr): Remove.
12200 * tree-vrp.h (range_fold_unary_expr): Remove.
12201 (range_fold_binary_expr): Remove.
12202
12203 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12204
12205 * ipa-cp.cc (ipa_vr_operation_and_type_effects): Convert to ranger API.
12206 (ipa_value_range_from_jfunc): Same.
12207 (propagate_vr_across_jump_function): Same.
12208 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
12209 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
12210 * vr-values.cc (bounds_of_var_in_loop): Same.
12211
12212 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12213
12214 * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
12215 Add irange argument.
12216 (check_out_of_bounds_and_warn): Remove check for vr.
12217 (array_bounds_checker::check_array_ref): Remove pointer qualifier
12218 for vr and adjust accordingly.
12219 * gimple-array-bounds.h (get_value_range): Add irange argument.
12220 * value-query.cc (class equiv_allocator): Delete.
12221 (range_query::get_value_range): Delete.
12222 (range_query::range_query): Remove allocator access.
12223 (range_query::~range_query): Same.
12224 * value-query.h (get_value_range): Delete.
12225 * vr-values.cc
12226 (simplify_using_ranges::op_with_boolean_value_range_p): Remove
12227 call to get_value_range.
12228 (check_for_binary_op_overflow): Same.
12229 (simplify_using_ranges::legacy_fold_cond_overflow): Same.
12230 (simplify_using_ranges::simplify_abs_using_ranges): Same.
12231 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
12232 (simplify_using_ranges::simplify_casted_cond): Same.
12233 (simplify_using_ranges::simplify_switch_using_ranges): Same.
12234 (simplify_using_ranges::two_valued_val_range_p): Same.
12235
12236 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12237
12238 * vr-values.cc
12239 (simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops):
12240 Rename to...
12241 (simplify_using_ranges::legacy_fold_cond_overflow): ...this.
12242 (simplify_using_ranges::vrp_visit_cond_stmt): Rename to...
12243 (simplify_using_ranges::legacy_fold_cond): ...this.
12244 (simplify_using_ranges::fold_cond): Rename
12245 vrp_evaluate_conditional_warnv_with_ops to
12246 legacy_fold_cond_overflow.
12247 * vr-values.h (class vr_values): Replace vrp_visit_cond_stmt and
12248 vrp_evaluate_conditional_warnv_with_ops with legacy_fold_cond and
12249 legacy_fold_cond_overflow respectively.
12250
12251 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12252
12253 * vr-values.cc (get_vr_for_comparison): Remove.
12254 (compare_name_with_value): Same.
12255 (vrp_evaluate_conditional_warnv_with_ops): Remove calls to
12256 compare_name_with_value.
12257 * vr-values.h: Remove compare_name_with_value.
12258 Remove get_vr_for_comparison.
12259
12260 2023-04-26 Roger Sayle <roger@nextmovesoftware.com>
12261
12262 * config/stormy16/stormy16.md (bswaphi2): New define_insn.
12263 (bswapsi2): New define_insn.
12264 (swaphi): New define_insn to exchange two registers (swpw).
12265 (define_peephole2): Recognize exchange of registers as swaphi.
12266
12267 2023-04-26 Richard Biener <rguenther@suse.de>
12268
12269 * gimple-range-path.cc (path_range_query::compute_outgoing_relations):
12270 Avoid last_stmt.
12271 * ipa-pure-const.cc (pass_nothrow::execute): Likewise.
12272 * predict.cc (apply_return_prediction): Likewise.
12273 * sese.cc (set_ifsese_condition): Likewise. Simplify.
12274 * tree-cfg.cc (assert_unreachable_fallthru_edge_p): Avoid last_stmt.
12275 (make_edges_bb): Likewise.
12276 (make_cond_expr_edges): Likewise.
12277 (end_recording_case_labels): Likewise.
12278 (make_gimple_asm_edges): Likewise.
12279 (cleanup_dead_labels): Likewise.
12280 (group_case_labels): Likewise.
12281 (gimple_can_merge_blocks_p): Likewise.
12282 (gimple_merge_blocks): Likewise.
12283 (find_taken_edge): Likewise. Also handle empty fallthru blocks.
12284 (gimple_duplicate_sese_tail): Avoid last_stmt.
12285 (find_loop_dist_alias): Likewise.
12286 (gimple_block_ends_with_condjump_p): Likewise.
12287 (gimple_purge_dead_eh_edges): Likewise.
12288 (gimple_purge_dead_abnormal_call_edges): Likewise.
12289 (pass_warn_function_return::execute): Likewise.
12290 (execute_fixup_cfg): Likewise.
12291 * tree-eh.cc (redirect_eh_edge_1): Likewise.
12292 (pass_lower_resx::execute): Likewise.
12293 (pass_lower_eh_dispatch::execute): Likewise.
12294 (cleanup_empty_eh): Likewise.
12295 * tree-if-conv.cc (if_convertible_bb_p): Likewise.
12296 (predicate_bbs): Likewise.
12297 (ifcvt_split_critical_edges): Likewise.
12298 * tree-loop-distribution.cc (create_edge_for_control_dependence):
12299 Likewise.
12300 (loop_distribution::transform_reduction_loop): Likewise.
12301 * tree-parloops.cc (transform_to_exit_first_loop_alt): Likewise.
12302 (try_transform_to_exit_first_loop_alt): Likewise.
12303 (transform_to_exit_first_loop): Likewise.
12304 (create_parallel_loop): Likewise.
12305 * tree-scalar-evolution.cc (get_loop_exit_condition): Likewise.
12306 * tree-ssa-dce.cc (mark_last_stmt_necessary): Likewise.
12307 (eliminate_unnecessary_stmts): Likewise.
12308 * tree-ssa-dom.cc
12309 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
12310 Likewise.
12311 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Likewise.
12312 (pass_tree_ifcombine::execute): Likewise.
12313 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Likewise.
12314 (should_duplicate_loop_header_p): Likewise.
12315 * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Likewise.
12316 (tree_estimate_loop_size): Likewise.
12317 (try_unroll_loop_completely): Likewise.
12318 * tree-ssa-loop-ivopts.cc (tree_ssa_iv_optimize_loop): Likewise.
12319 * tree-ssa-loop-manip.cc (ip_normal_pos): Likewise.
12320 (canonicalize_loop_ivs): Likewise.
12321 * tree-ssa-loop-niter.cc (determine_value_range): Likewise.
12322 (bound_difference): Likewise.
12323 (number_of_iterations_popcount): Likewise.
12324 (number_of_iterations_cltz): Likewise.
12325 (number_of_iterations_cltz_complement): Likewise.
12326 (simplify_using_initial_conditions): Likewise.
12327 (number_of_iterations_exit_assumptions): Likewise.
12328 (loop_niter_by_eval): Likewise.
12329 (estimate_numbers_of_iterations): Likewise.
12330
12331 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12332
12333 * config/riscv/vector.md: Refine vmadc/vmsbc RA constraint.
12334
12335 2023-04-26 Kewen Lin <linkw@linux.ibm.com>
12336
12337 PR target/108758
12338 * config/rs6000/rs6000-builtins.def
12339 (__builtin_vsx_scalar_cmp_exp_qp_eq, __builtin_vsx_scalar_cmp_exp_qp_gt
12340 __builtin_vsx_scalar_cmp_exp_qp_lt,
12341 __builtin_vsx_scalar_cmp_exp_qp_unordered): Move from stanza ieee128-hw
12342 to power9-vector.
12343
12344 2023-04-26 Kewen Lin <linkw@linux.ibm.com>
12345
12346 PR target/109069
12347 * config/rs6000/altivec.md (sldoi_to_mov<mode>): Replace predicate
12348 easy_vector_constant with const_vector_each_byte_same, add
12349 handlings in preparation for !easy_vector_constant, and update
12350 VECTOR_UNIT_ALTIVEC_OR_VSX_P with VECTOR_MEM_ALTIVEC_OR_VSX_P.
12351 * config/rs6000/predicates.md (const_vector_each_byte_same): New
12352 predicate.
12353
12354 2023-04-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
12355
12356 * config/riscv/vector.md (*pred_cmp<mode>_merge_tie_mask): New pattern.
12357 (*pred_ltge<mode>_merge_tie_mask): Ditto.
12358 (*pred_cmp<mode>_scalar_merge_tie_mask): Ditto.
12359 (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto.
12360 (*pred_cmp<mode>_extended_scalar_merge_tie_mask): Ditto.
12361 (*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto.
12362 (*pred_cmp<mode>_narrow_merge_tie_mask): Ditto.
12363
12364 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12365
12366 * config/riscv/vector.md: Fix redundant vmv1r.v.
12367
12368 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12369
12370 * config/riscv/vector.md: Fix RA constraint.
12371
12372 2023-04-26 Pan Li <pan2.li@intel.com>
12373
12374 PR target/109272
12375 * tree-ssa-sccvn.cc (vn_reference_eq): add type vector subparts
12376 check for vn_reference equal.
12377
12378 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12379
12380 * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Add enum for
12381 auto-vectorization preference.
12382 (enum riscv_autovec_lmul_enum): Add enum for choosing LMUL of RVV
12383 auto-vectorization.
12384 * config/riscv/riscv.opt: Add compile option for RVV auto-vectorization.
12385
12386 2023-04-26 Jivan Hakobyan <jivanhakobyan9@gmail.com>
12387
12388 * config/riscv/bitmanip.md: Updated predicates of bclri<mode>_nottwobits
12389 and bclridisi_nottwobits patterns.
12390 * config/riscv/predicates.md: (not_uimm_extra_bit_or_nottwobits): Adjust
12391 predicate to avoid splitting arith constants.
12392 (const_nottwobits_not_arith_operand): New predicate.
12393
12394 2023-04-25 Hans-Peter Nilsson <hp@axis.com>
12395
12396 * recog.cc (peep2_attempt, peep2_update_life): Correct
12397 head-comment description of parameter match_len.
12398
12399 2023-04-25 Vineet Gupta <vineetg@rivosinc.com>
12400
12401 * config/riscv/riscv.md: riscv_move_integer() drop in_splitter arg.
12402 riscv_split_symbol() drop in_splitter arg.
12403 * config/riscv/riscv.cc: riscv_move_integer() drop in_splitter arg.
12404 riscv_split_symbol() drop in_splitter arg.
12405 riscv_force_temporary() drop in_splitter arg.
12406 * config/riscv/riscv-protos.h: riscv_move_integer() drop in_splitter arg.
12407 riscv_split_symbol() drop in_splitter arg.
12408
12409 2023-04-25 Eric Botcazou <ebotcazou@adacore.com>
12410
12411 * tree-ssa.cc (insert_debug_temp_for_var_def): Do not create
12412 superfluous debug temporaries for single GIMPLE assignments.
12413
12414 2023-04-25 Richard Biener <rguenther@suse.de>
12415
12416 PR tree-optimization/109609
12417 * attr-fnspec.h (arg_max_access_size_given_by_arg_p):
12418 Clarify semantics.
12419 * tree-ssa-alias.cc (check_fnspec): Correctly interpret
12420 the size given by arg_max_access_size_given_by_arg_p as
12421 maximum, not exact, size.
12422
12423 2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12424
12425 PR target/99195
12426 * config/aarch64/aarch64-simd.md (orn<mode>3): Rename to...
12427 (orn<mode>3<vczle><vczbe>): ... This.
12428 (bic<mode>3): Rename to...
12429 (bic<mode>3<vczle><vczbe>): ... This.
12430 (<su><maxmin><mode>3): Rename to...
12431 (<su><maxmin><mode>3<vczle><vczbe>): ... This.
12432
12433 2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12434
12435 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3): New define_expand.
12436 * config/aarch64/iterators.md (VQDIV): New mode iterator.
12437 (vnx2di): New mode attribute.
12438
12439 2023-04-25 Richard Biener <rguenther@suse.de>
12440
12441 PR rtl-optimization/109585
12442 * tree-ssa-alias.cc (aliasing_component_refs_p): Fix typo.
12443
12444 2023-04-25 Jakub Jelinek <jakub@redhat.com>
12445
12446 PR target/109566
12447 * config/rs6000/rs6000.cc (rs6000_is_valid_rotate_dot_mask): For
12448 !TARGET_64BIT, don't return true if UINTVAL (mask) << (63 - nb)
12449 is larger than signed int maximum.
12450
12451 2023-04-25 Martin Liska <mliska@suse.cz>
12452
12453 * doc/gcov.texi: Document the new "calls" field and document
12454 the API bump. Mention also "block_ids" for lines.
12455 * gcov.cc (output_intermediate_json_line): Output info about
12456 calls and extend branches as well.
12457 (generate_results): Bump version to 2.
12458 (output_line_details): Use block ID instead of a non-sensual
12459 index.
12460
12461 2023-04-25 Roger Sayle <roger@nextmovesoftware.com>
12462
12463 * config/stormy16/stormy16.md (zero_extendqihi2): Restore/fix
12464 length attribute for the first (memory operand) alternative.
12465
12466 2023-04-25 Victor Do Nascimento <victor.donascimento@arm.com>
12467
12468 * config/aarch64/aarch64-simd.md(aarch64_simd_stp<mode>): New.
12469 * config/aarch64/constraints.md: Make "Umn" relaxed memory
12470 constraint.
12471 * config/aarch64/iterators.md(ldpstp_vel_sz): New.
12472
12473 2023-04-25 Aldy Hernandez <aldyh@redhat.com>
12474
12475 * value-range.cc (frange::set): Adjust constructor.
12476 * value-range.h (nan_state::nan_state): Replace default
12477 constructor with one taking an argument.
12478
12479 2023-04-25 Aldy Hernandez <aldyh@redhat.com>
12480
12481 * ipa-cp.cc (ipa_range_contains_p): New.
12482 (decide_whether_version_node): Use it.
12483
12484 2023-04-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12485
12486 * tree-ssa-forwprop.cc (is_combined_permutation_identity): Try to
12487 simplify two successive VEC_PERM_EXPRs with same VLA mask,
12488 where mask chooses elements in reverse order.
12489
12490 2023-04-24 Andrew Pinski <apinski@marvell.com>
12491
12492 * tree-ssa-phiopt.cc (match_simplify_replacement): Add new arguments
12493 and support diamond shaped basic block form.
12494 (tree_ssa_phiopt_worker): Update call to match_simplify_replacement
12495
12496 2023-04-24 Andrew Pinski <apinski@marvell.com>
12497
12498 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
12499 Instead of calling last_and_only_stmt, look for the last statement
12500 manually.
12501
12502 2023-04-24 Andrew Pinski <apinski@marvell.com>
12503
12504 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
12505 New function.
12506 (match_simplify_replacement): Call
12507 empty_bb_or_one_feeding_into_p instead of doing it inline.
12508
12509 2023-04-24 Andrew Pinski <apinski@marvell.com>
12510
12511 PR tree-optimization/68894
12512 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove the
12513 continue for the do_hoist_loads diamond case.
12514
12515 2023-04-24 Andrew Pinski <apinski@marvell.com>
12516
12517 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Rearrange
12518 code for better code readability.
12519
12520 2023-04-24 Andrew Pinski <apinski@marvell.com>
12521
12522 PR tree-optimization/109604
12523 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Move the
12524 diamond form check from ...
12525 (minmax_replacement): Here.
12526
12527 2023-04-24 Patrick Palka <ppalka@redhat.com>
12528
12529 * tree.cc (strip_array_types): Don't define here.
12530 (is_typedef_decl): Don't define here.
12531 (typedef_variant_p): Don't define here.
12532 * tree.h (strip_array_types): Define here.
12533 (is_typedef_decl): Define here.
12534 (typedef_variant_p): Define here.
12535
12536 2023-04-24 Frederik Harwath <frederik@codesourcery.com>
12537
12538 * doc/generic.texi (OpenMP): Add != to allowed
12539 conditions and state that vars can be unsigned.
12540 * tree.def (OMP_FOR): Likewise.
12541
12542 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12543
12544 * config/aarch64/aarch64-simd.md (mulv2di3): New expander.
12545
12546 2023-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12547
12548 * doc/install.texi: Consistently use Solaris rather than Solaris 2.
12549 Remove explicit Solaris 11 references.
12550 Markup fixes.
12551 (Options specification, --with-gnu-as): as and gas always differ
12552 on Solaris.
12553 Remove /usr/ccs/bin reference.
12554 (Installing GCC: Binaries, Solaris (SPARC, Intel)): Remove.
12555 (i?86-*-solaris2*): Merge assembler, linker recommendations ...
12556 (*-*-solaris2*): ... here.
12557 Update bundled GCC versions.
12558 Don't refer to pre-built binaries.
12559 Remove /bin/sh warning.
12560 Update assembler, linker recommendations.
12561 Document GNAT bootstrap compiler.
12562 (sparc-sun-solaris2*): Remove non-UltraSPARC reference.
12563 (sparc64-*-solaris2*): Move content...
12564 (sparcv9-*-solaris2*): ...here.
12565 Add GDC for 64-bit bootstrap compilers.
12566
12567 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12568
12569 PR target/109406
12570 * config/aarch64/aarch64-sve.md (<optab><mode>3): Handle TARGET_SVE2 MUL
12571 case.
12572 * config/aarch64/aarch64-sve2.md (*aarch64_mul_unpredicated_<mode>): New
12573 pattern.
12574
12575 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12576
12577 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): Rename to...
12578 (aarch64_<su>abal2<mode>_insn): ... This. Use RTL codes instead of unspec.
12579 (aarch64_<su>abal2<mode>): New define_expand.
12580 * config/aarch64/aarch64.cc (aarch64_abd_rtx_p): New function.
12581 (aarch64_rtx_costs): Handle ABD rtxes.
12582 * config/aarch64/aarch64.md (UNSPEC_SABAL2, UNSPEC_UABAL2): Delete.
12583 * config/aarch64/iterators.md (ABAL2): Delete.
12584 (sur): Remove handling of UNSPEC_UABAL2 and UNSPEC_SABAL2.
12585
12586 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12587
12588 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>): Rename to...
12589 (aarch64_<su>abal<mode>): ... This. Use RTL codes instead of unspec.
12590 (<sur>sadv16qi): Rename to...
12591 (<su>sadv16qi): ... This. Adjust for the above.
12592 * config/aarch64/aarch64-sve.md (<sur>sad<vsi2qi>): Rename to...
12593 (<su>sad<vsi2qi>): ... This. Adjust for the above.
12594 * config/aarch64/aarch64.md (UNSPEC_SABAL, UNSPEC_UABAL): Delete.
12595 * config/aarch64/iterators.md (ABAL): Delete.
12596 (sur): Remove handling of UNSPEC_SABAL and UNSPEC_UABAL.
12597
12598 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12599
12600 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>): Rename to...
12601 (aarch64_<su>abdl2<mode>_insn): ... This. Use RTL codes instead of unspec.
12602 (aarch64_<su>abdl2<mode>): New define_expand.
12603 * config/aarch64/aarch64.md (UNSPEC_SABDL2, UNSPEC_UABDL2): Delete.
12604 * config/aarch64/iterators.md (ABDL2): Delete.
12605 (sur): Remove handling of UNSPEC_SABDL2 and UNSPEC_UABDL2.
12606
12607 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12608
12609 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): Rename to...
12610 (aarch64_<su>abdl<mode>): ... This. Use standard RTL ops instead of
12611 unspec.
12612 * config/aarch64/aarch64.md (UNSPEC_SABDL, UNSPEC_UABDL): Delete.
12613 * config/aarch64/iterators.md (ABDL): Delete.
12614 (sur): Remove handling of UNSPEC_SABDL and UNSPEC_UABDL.
12615
12616 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12617
12618 * config/aarch64/aarch64-simd.md
12619 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): New pattern.
12620
12621 2023-04-24 Richard Biener <rguenther@suse.de>
12622
12623 * gimple-ssa-split-paths.cc (is_feasible_trace): Avoid
12624 last_stmt.
12625 * graphite-scop-detection.cc (single_pred_cond_non_loop_exit):
12626 Likewise.
12627 * ipa-fnsummary.cc (set_cond_stmt_execution_predicate): Likewise.
12628 (set_switch_stmt_execution_predicate): Likewise.
12629 (phi_result_unknown_predicate): Likewise.
12630 * ipa-prop.cc (compute_complex_ancestor_jump_func): Likewise.
12631 (ipa_analyze_indirect_call_uses): Likewise.
12632 * predict.cc (predict_iv_comparison): Likewise.
12633 (predict_extra_loop_exits): Likewise.
12634 (predict_loops): Likewise.
12635 (tree_predict_by_opcode): Likewise.
12636 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
12637 Likewise.
12638 * gimple-pretty-print.cc (dump_implicit_edges): Likewise.
12639 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Likewise.
12640 (replace_phi_edge_with_variable): Likewise.
12641 (two_value_replacement): Likewise.
12642 (value_replacement): Likewise.
12643 (minmax_replacement): Likewise.
12644 (spaceship_replacement): Likewise.
12645 (cond_removal_in_builtin_zero_pattern): Likewise.
12646 * tree-ssa-reassoc.cc (maybe_optimize_range_tests): Likewise.
12647 * tree-ssa-sccvn.cc (vn_phi_eq): Likewise.
12648 (vn_phi_lookup): Likewise.
12649 (vn_phi_insert): Likewise.
12650 * tree-ssa-structalias.cc (compute_points_to_sets): Likewise.
12651 * tree-ssa-threadbackward.cc (back_threader::maybe_thread_block):
12652 Likewise.
12653 (back_threader_profitability::possibly_profitable_path_p):
12654 Likewise.
12655 * tree-ssa-threadedge.cc (jump_threader::thread_outgoing_edges):
12656 Likewise.
12657 * tree-switch-conversion.cc (pass_convert_switch::execute):
12658 Likewise.
12659 (pass_lower_switch<O0>::execute): Likewise.
12660 * tree-tailcall.cc (tree_optimize_tail_calls_1): Likewise.
12661 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
12662 * tree-vect-slp.cc (vect_slp_function): Likewise.
12663 * tree-vect-stmts.cc (cfun_returns): Likewise.
12664 * tree-vectorizer.cc (vect_loop_vectorized_call): Likewise.
12665 (vect_loop_dist_alias_call): Likewise.
12666
12667 2023-04-24 Richard Biener <rguenther@suse.de>
12668
12669 * cfgcleanup.cc (outgoing_edges_match): Use FORWARDER_BLOCK_P.
12670
12671 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
12672
12673 * config/riscv/riscv-vsetvl.cc
12674 (vector_infos_manager::all_avail_in_compatible_p): New function.
12675 (pass_vsetvl::refine_vsetvls): Optimize vsetvls.
12676 * config/riscv/riscv-vsetvl.h: New function.
12677
12678 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
12679
12680 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::pre_vsetvl): Add function
12681 comment for cleanup_insns.
12682
12683 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
12684
12685 * config/riscv/vector-iterators.md: New unspec to refine fault first load pattern.
12686 * config/riscv/vector.md: Refine fault first load pattern to erase avl from instructions
12687 with the fault first load property.
12688
12689 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12690
12691 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
12692 (aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.
12693
12694 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12695
12696 PR target/99195
12697 * config/aarch64/aarch64-simd.md (aarch64_addp<mode>): Rename to...
12698 (aarch64_addp<mode><vczle><vczbe>): ... This.
12699
12700 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
12701
12702 * config/stormy16/stormy16.cc (xstormy16_rtx_costs): Rewrite to
12703 provide reasonable values for common arithmetic operations and
12704 immediate operands (in several machine modes).
12705
12706 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
12707
12708 * config/stormy16/stormy16.cc (xstormy16_print_operand): Add %h
12709 format specifier to output high_part register name of SImode reg.
12710 * config/stormy16/stormy16.md (extendhisi2): New define_insn.
12711 (zero_extendqihi2): Fix lengths, consistent formatting and add
12712 "and Rx,#255" alternative, for documentation purposes.
12713 (zero_extendhisi2): New define_insn.
12714
12715 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
12716
12717 * config/stormy16/stormy16.cc (xstormy16_output_shift): Implement
12718 SImode shifts by two by performing a single bit SImode shift twice.
12719
12720 2023-04-23 Aldy Hernandez <aldyh@redhat.com>
12721
12722 PR tree-optimization/109593
12723 * value-range.cc (frange::operator==): Handle NANs.
12724
12725 2023-04-23 liuhongt <hongtao.liu@intel.com>
12726
12727 PR rtl-optimization/108707
12728 * ira-costs.cc (scan_one_insn): Use NO_REGS instead of
12729 GENERAL_REGS when preferred reg_class is not known.
12730
12731 2023-04-22 Andrew Pinski <apinski@marvell.com>
12732
12733 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
12734 Change the code around slightly to move diamond
12735 handling for do_store_elim/do_hoist_loads out of
12736 the big if/else.
12737
12738 2023-04-22 Andrew Pinski <apinski@marvell.com>
12739
12740 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
12741 Remove check on empty_block_p.
12742
12743 2023-04-22 Jakub Jelinek <jakub@redhat.com>
12744
12745 PR bootstrap/109589
12746 * system.h (class auto_mpz): Workaround PR62101 bug in GCC 4.8 and 4.9.
12747 * realmpfr.h (class auto_mpfr): Likewise.
12748
12749 2023-04-22 Jakub Jelinek <jakub@redhat.com>
12750
12751 PR tree-optimization/109583
12752 * match.pd (fneg/fadd simplify): Don't call related_vector_mode
12753 if vec_mode is not VECTOR_MODE_P.
12754
12755 2023-04-22 Jan Hubicka <hubicka@ucw.cz>
12756 Ondrej Kubanek <kubanek0ondrej@gmail.com>
12757
12758 * cfgloopmanip.h (adjust_loop_info_after_peeling): Declare.
12759 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix updating of
12760 loop profile and bounds after header duplication.
12761 * tree-ssa-loop-ivcanon.cc (adjust_loop_info_after_peeling):
12762 Break out from try_peel_loop; fix handling of 0 iterations.
12763 (try_peel_loop): Use adjust_loop_info_after_peeling.
12764
12765 2023-04-21 Andrew MacLeod <amacleod@redhat.com>
12766
12767 PR tree-optimization/109546
12768 * tree-vrp.cc (remove_unreachable::remove_and_update_globals): Do
12769 not fold conditions with ADDR_EXPR early.
12770
12771 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12772
12773 * config/aarch64/aarch64.md (aarch64_umax<mode>3_insn): Delete.
12774 (umax<mode>3): Emit raw UMAX RTL instead of going through gen_ function
12775 for umax.
12776 (<optab><mode>3): New define_expand for MAXMIN_NOUMAX codes.
12777 (*aarch64_<optab><mode>3_zero): Define.
12778 (*aarch64_<optab><mode>3_cssc): Likewise.
12779 * config/aarch64/iterators.md (maxminand): New code attribute.
12780
12781 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12782
12783 PR target/108779
12784 * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Define.
12785 * config/aarch64/aarch64-protos.h (aarch64_output_load_tp):
12786 Define prototype.
12787 * config/aarch64/aarch64.cc (aarch64_tpidr_register): Declare.
12788 (aarch64_override_options_internal): Handle the above.
12789 (aarch64_output_load_tp): New function.
12790 * config/aarch64/aarch64.md (aarch64_load_tp_hard): Call
12791 aarch64_output_load_tp.
12792 * config/aarch64/aarch64.opt (aarch64_tp_reg): Define enum.
12793 (mtp=): New option.
12794 * doc/invoke.texi (AArch64 Options): Document -mtp=.
12795
12796 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12797
12798 PR target/99195
12799 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Define.
12800 (add_vec_concat_subst_be): Likewise.
12801 (vczle): Likewise.
12802 (vczbe): Likewise.
12803 (add<mode>3): Rename to...
12804 (add<mode>3<vczle><vczbe>): ... This.
12805 (sub<mode>3): Rename to...
12806 (sub<mode>3<vczle><vczbe>): ... This.
12807 (mul<mode>3): Rename to...
12808 (mul<mode>3<vczle><vczbe>): ... This.
12809 (and<mode>3): Rename to...
12810 (and<mode>3<vczle><vczbe>): ... This.
12811 (ior<mode>3): Rename to...
12812 (ior<mode>3<vczle><vczbe>): ... This.
12813 (xor<mode>3): Rename to...
12814 (xor<mode>3<vczle><vczbe>): ... This.
12815 * config/aarch64/iterators.md (VDZ): Define.
12816
12817 2023-04-21 Patrick Palka <ppalka@redhat.com>
12818
12819 * tree.cc (walk_tree_1): Avoid repeatedly dereferencing tp
12820 and type_p.
12821
12822 2023-04-21 Jan Hubicka <jh@suse.cz>
12823
12824 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix previous
12825 commit.
12826
12827 2023-04-21 Vineet Gupta <vineetg@rivosinc.com>
12828
12829 * expmed.h (x_shift*_cost): convert to int [speed][mode][shift].
12830 (shift*_cost_ptr ()): Access x_shift*_cost array directly.
12831
12832 2023-04-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12833
12834 * config/aarch64/aarch64.cc (aarch64_simd_dup_constant): Use
12835 force_reg instead of copy_to_mode_reg.
12836 (aarch64_expand_vector_init): Likewise.
12837
12838 2023-04-21 Uroš Bizjak <ubizjak@gmail.com>
12839
12840 * config/i386/i386.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Remove.
12841 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P): Ditto.
12842 (REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P): Ditto.
12843 (FIRST_INDEX_REG, LAST_INDEX_REG): New defines.
12844 (LEGACY_INDEX_REG_P, LEGACY_INDEX_REGNO_P): New macros.
12845 (INDEX_REG_P, INDEX_REGNO_P): Ditto.
12846 (REGNO_OK_FOR_INDEX_P): Use INDEX_REGNO_P predicates.
12847 (REGNO_OK_FOR_INDEX_NONSTRICT_P): New macro.
12848 (EG_OK_FOR_BASE_NONSTRICT_P): Ditto.
12849 * config/i386/predicates.md (index_register_operand):
12850 Use REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
12851 * config/i386/i386.cc (ix86_legitimate_address_p): Use
12852 REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_BASE_NONSTRICT_P,
12853 REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
12854
12855 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
12856 Ondrej Kubanek <kubanek0ondrej@gmail.com>
12857
12858 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Update loop header and
12859 latch.
12860
12861 2023-04-21 Richard Biener <rguenther@suse.de>
12862
12863 * is-a.h (safe_is_a): New.
12864
12865 2023-04-21 Richard Biener <rguenther@suse.de>
12866
12867 * gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
12868 (gphi_iterator::operator*): Likewise.
12869
12870 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
12871 Michal Jires <michal@jires.eu>
12872
12873 * ipa-inline.cc (class inline_badness): New class.
12874 (edge_heap_t, edge_heap_node_t): Use inline_badness for badness instead
12875 of sreal.
12876 (update_edge_key): Update.
12877 (lookup_recursive_calls): Likewise.
12878 (recursive_inlining): Likewise.
12879 (add_new_edges_to_heap): Likewise.
12880 (inline_small_functions): Likewise.
12881
12882 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
12883
12884 * ipa-devirt.cc (odr_types_equivalent_p): Cleanup warned checks.
12885
12886 2023-04-21 Richard Biener <rguenther@suse.de>
12887
12888 PR tree-optimization/109573
12889 * tree-vect-loop.cc (vectorizable_live_operation): Allow
12890 unhandled SSA copy as well. Demote assert to checking only.
12891
12892 2023-04-21 Richard Biener <rguenther@suse.de>
12893
12894 * df-core.cc (df_analyze): Compute RPO on the reverse graph
12895 for DF_BACKWARD problems.
12896 (loop_post_order_compute): Rename to ...
12897 (loop_rev_post_order_compute): ... this, compute a RPO.
12898 (loop_inverted_post_order_compute): Rename to ...
12899 (loop_inverted_rev_post_order_compute): ... this, compute a RPO.
12900 (df_analyze_loop): Use RPO on the forward graph for DF_FORWARD
12901 problems, RPO on the inverted graph for DF_BACKWARD.
12902
12903 2023-04-21 Richard Biener <rguenther@suse.de>
12904
12905 * cfganal.h (inverted_rev_post_order_compute): Rename
12906 from ...
12907 (inverted_post_order_compute): ... this. Add struct function
12908 argument, change allocation to a C array.
12909 * cfganal.cc (inverted_rev_post_order_compute): Likewise.
12910 * lcm.cc (compute_antinout_edge): Adjust.
12911 * lra-lives.cc (lra_create_live_ranges_1): Likewise.
12912 * tree-ssa-dce.cc (remove_dead_stmt): Likewise.
12913 * tree-ssa-pre.cc (compute_antic): Likewise.
12914
12915 2023-04-21 Richard Biener <rguenther@suse.de>
12916
12917 * df.h (df_d::postorder_inverted): Change back to int *,
12918 clarify comments.
12919 * df-core.cc (rest_of_handle_df_finish): Adjust.
12920 (df_analyze_1): Likewise.
12921 (df_analyze): For DF_FORWARD problems use RPO on the forward
12922 graph. Adjust.
12923 (loop_inverted_post_order_compute): Adjust API.
12924 (df_analyze_loop): Adjust.
12925 (df_get_n_blocks): Likewise.
12926 (df_get_postorder): Likewise.
12927
12928 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
12929
12930 PR target/108270
12931 * config/riscv/riscv-vsetvl.cc
12932 (vector_infos_manager::all_empty_predecessor_p): New function.
12933 (pass_vsetvl::backward_demand_fusion): Ditto.
12934 * config/riscv/riscv-vsetvl.h: Ditto.
12935
12936 2023-04-21 Robin Dapp <rdapp@ventanamicro.com>
12937
12938 PR target/109582
12939 * config/riscv/generic.md: Change standard names to insn names.
12940
12941 2023-04-21 Richard Biener <rguenther@suse.de>
12942
12943 * lcm.cc (compute_antinout_edge): Use RPO on the inverted graph.
12944 (compute_laterin): Use RPO.
12945 (compute_available): Likewise.
12946
12947 2023-04-21 Peng Fan <fanpeng@loongson.cn>
12948
12949 * config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
12950
12951 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
12952
12953 PR target/109547
12954 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): New function.
12955 (vector_insn_info::skip_avl_compatible_p): Ditto.
12956 (vector_insn_info::merge): Remove default value.
12957 (pass_vsetvl::compute_local_backward_infos): Ditto.
12958 (pass_vsetvl::cleanup_insns): Add local vsetvl elimination.
12959 * config/riscv/riscv-vsetvl.h: Ditto.
12960
12961 2023-04-20 Alejandro Colomar <alx.manpages@gmail.com>
12962
12963 * doc/extend.texi (Common Function Attributes): Remove duplicate
12964 word.
12965
12966 2023-04-20 Andrew MacLeod <amacleod@redhat.com>
12967
12968 PR tree-optimization/109564
12969 * gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore
12970 UNDEFINED range names when deciding if all PHI arguments are the same,
12971
12972 2023-04-20 Jakub Jelinek <jakub@redhat.com>
12973
12974 PR tree-optimization/109011
12975 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Use
12976 .CTZ (X) = .POPCOUNT ((X - 1) & ~X) in preference to
12977 .CTZ (X) = PREC - .POPCOUNT (X | -X).
12978
12979 2023-04-20 Vladimir N. Makarov <vmakarov@redhat.com>
12980
12981 * lra-constraints.cc (match_reload): Exclude some hard regs for
12982 multi-reg inout reload pseudos used in asm in different mode.
12983
12984 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
12985
12986 * config/arm/arm.cc (thumb1_legitimate_address_p):
12987 Use VIRTUAL_REGISTER_P predicate.
12988 (arm_eliminable_register): Ditto.
12989 * config/avr/avr.md (push<mode>_1): Ditto.
12990 * config/bfin/predicates.md (register_no_elim_operand): Ditto.
12991 * config/h8300/predicates.md (register_no_sp_elim_operand): Ditto.
12992 * config/i386/predicates.md (register_no_elim_operand): Ditto.
12993 * config/iq2000/predicates.md (call_insn_operand): Ditto.
12994 * config/microblaze/microblaze.h (CALL_INSN_OP): Ditto.
12995
12996 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
12997
12998 PR target/78952
12999 * config/i386/predicates.md (extract_operator): New predicate.
13000 * config/i386/i386.md (any_extract): Remove code iterator.
13001 (*cmpqi_ext<mode>_1_mem_rex64): Use extract_operator predicate.
13002 (*cmpqi_ext<mode>_1): Ditto.
13003 (*cmpqi_ext<mode>_2): Ditto.
13004 (*cmpqi_ext<mode>_3_mem_rex64): Ditto.
13005 (*cmpqi_ext<mode>_3): Ditto.
13006 (*cmpqi_ext<mode>_4): Ditto.
13007 (*extzvqi_mem_rex64): Ditto.
13008 (*extzvqi): Ditto.
13009 (*insvqi_2): Ditto.
13010 (*extendqi<SWI24:mode>_ext_1): Ditto.
13011 (*addqi_ext<mode>_0): Ditto.
13012 (*addqi_ext<mode>_1): Ditto.
13013 (*addqi_ext<mode>_2): Ditto.
13014 (*subqi_ext<mode>_0): Ditto.
13015 (*subqi_ext<mode>_2): Ditto.
13016 (*testqi_ext<mode>_1): Ditto.
13017 (*testqi_ext<mode>_2): Ditto.
13018 (*andqi_ext<mode>_0): Ditto.
13019 (*andqi_ext<mode>_1): Ditto.
13020 (*andqi_ext<mode>_1_cc): Ditto.
13021 (*andqi_ext<mode>_2): Ditto.
13022 (*<any_or:code>qi_ext<mode>_0): Ditto.
13023 (*<any_or:code>qi_ext<mode>_1): Ditto.
13024 (*<any_or:code>qi_ext<mode>_2): Ditto.
13025 (*xorqi_ext<mode>_1_cc): Ditto.
13026 (*negqi_ext<mode>_2): Ditto.
13027 (*ashlqi_ext<mode>_2): Ditto.
13028 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
13029
13030 2023-04-20 Raphael Zinsly <rzinsly@ventanamicro.com>
13031
13032 PR target/108248
13033 * config/riscv/bitmanip.md (clz, ctz, pcnt, min, max patterns): Use
13034 <bitmanip_insn> as the type to allow for fine grained control of
13035 scheduling these insns.
13036 * config/riscv/generic.md (generic_alu): Add bitmanip, clz, ctz, pcnt,
13037 min, max.
13038 * config/riscv/riscv.md (type attribute): Add types for clz, ctz,
13039 pcnt, signed and unsigned min/max.
13040
13041 2023-04-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13042 kito-cheng <kito.cheng@sifive.com>
13043
13044 * config/riscv/riscv.h (enum reg_class): Fix RVV register order.
13045
13046 2023-04-20 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13047 kito-cheng <kito.cheng@sifive.com>
13048
13049 PR target/109535
13050 * config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
13051 (pass_vsetvl::cleanup_insns): Fix bug.
13052
13053 2023-04-20 Andrew Stubbs <ams@codesourcery.com>
13054
13055 * config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes.
13056 (ldexp<mode>3): Delete.
13057 (ldexp<mode>3<exec>): Change "B" to "A".
13058
13059 2023-04-20 Jakub Jelinek <jakub@redhat.com>
13060 Jonathan Wakely <jwakely@redhat.com>
13061
13062 * tree.h (built_in_function_equal_p): New helper function.
13063 (fndecl_built_in_p): Turn into variadic template to support
13064 1 or more built_in_function arguments.
13065 * builtins.cc (fold_builtin_expect): Use 3 argument fndecl_built_in_p.
13066 * gimplify.cc (goa_stabilize_expr): Likewise.
13067 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
13068 * ipa-fnsummary.cc (compute_fn_summary): Likewise.
13069 * omp-low.cc (setjmp_or_longjmp_p): Likewise.
13070 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
13071 cgraph_update_edges_for_call_stmt_node,
13072 cgraph_edge::verify_corresponds_to_fndecl,
13073 cgraph_node::verify_node): Likewise.
13074 * tree-stdarg.cc (optimize_va_list_gpr_fpr_size): Likewise.
13075 * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Likewise.
13076 * ipa-prop.cc (try_make_edge_direct_virtual_call): Likewise.
13077
13078 2023-04-20 Jakub Jelinek <jakub@redhat.com>
13079
13080 PR tree-optimization/109011
13081 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): New function.
13082 (vect_recog_popcount_clz_ctz_ffs_pattern): Move vect_pattern_detected
13083 call later. Don't punt for IFN_CTZ or IFN_FFS if it doesn't have
13084 direct optab support, but has instead IFN_CLZ, IFN_POPCOUNT or
13085 for IFN_FFS IFN_CTZ support, use vect_recog_ctz_ffs_pattern for that
13086 case.
13087 (vect_vect_recog_func_ptrs): Add ctz_ffs entry.
13088
13089 2023-04-20 Richard Biener <rguenther@suse.de>
13090
13091 * df-core.cc (rest_of_handle_df_initialize): Remove
13092 computation of df->postorder, df->postorder_inverted and
13093 df->n_blocks.
13094
13095 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
13096
13097 * common/config/i386/i386-common.cc
13098 (OPTION_MASK_ISA2_AVX_UNSET): Add OPTION_MASK_ISA2_VAES_UNSET.
13099 (ix86_handle_option): Set AVX flag for VAES.
13100 * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
13101 Add OPTION_MASK_ISA2_VAES_UNSET.
13102 (def_builtin): Share builtin between AES and VAES.
13103 * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
13104 Ditto.
13105 * config/i386/i386.md (aes): New isa attribute.
13106 * config/i386/sse.md (aesenc): Add pattern for VAES with xmm.
13107 (aesenclast): Ditto.
13108 (aesdec): Ditto.
13109 (aesdeclast): Ditto.
13110 * config/i386/vaesintrin.h: Remove redundant avx target push.
13111 * config/i386/wmmintrin.h (_mm_aesdec_si128): Change to macro.
13112 (_mm_aesdeclast_si128): Ditto.
13113 (_mm_aesenc_si128): Ditto.
13114 (_mm_aesenclast_si128): Ditto.
13115
13116 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
13117
13118 * config/i386/avx2intrin.h
13119 (_MM_REDUCE_OPERATOR_BASIC_EPI16): New macro.
13120 (_MM_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
13121 (_MM256_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
13122 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
13123 (_MM_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
13124 (_MM_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
13125 (_MM256_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
13126 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
13127 (_mm_reduce_add_epi16): New instrinsics.
13128 (_mm_reduce_mul_epi16): Ditto.
13129 (_mm_reduce_and_epi16): Ditto.
13130 (_mm_reduce_or_epi16): Ditto.
13131 (_mm_reduce_max_epi16): Ditto.
13132 (_mm_reduce_max_epu16): Ditto.
13133 (_mm_reduce_min_epi16): Ditto.
13134 (_mm_reduce_min_epu16): Ditto.
13135 (_mm256_reduce_add_epi16): Ditto.
13136 (_mm256_reduce_mul_epi16): Ditto.
13137 (_mm256_reduce_and_epi16): Ditto.
13138 (_mm256_reduce_or_epi16): Ditto.
13139 (_mm256_reduce_max_epi16): Ditto.
13140 (_mm256_reduce_max_epu16): Ditto.
13141 (_mm256_reduce_min_epi16): Ditto.
13142 (_mm256_reduce_min_epu16): Ditto.
13143 (_mm_reduce_add_epi8): Ditto.
13144 (_mm_reduce_mul_epi8): Ditto.
13145 (_mm_reduce_and_epi8): Ditto.
13146 (_mm_reduce_or_epi8): Ditto.
13147 (_mm_reduce_max_epi8): Ditto.
13148 (_mm_reduce_max_epu8): Ditto.
13149 (_mm_reduce_min_epi8): Ditto.
13150 (_mm_reduce_min_epu8): Ditto.
13151 (_mm256_reduce_add_epi8): Ditto.
13152 (_mm256_reduce_mul_epi8): Ditto.
13153 (_mm256_reduce_and_epi8): Ditto.
13154 (_mm256_reduce_or_epi8): Ditto.
13155 (_mm256_reduce_max_epi8): Ditto.
13156 (_mm256_reduce_max_epu8): Ditto.
13157 (_mm256_reduce_min_epi8): Ditto.
13158 (_mm256_reduce_min_epu8): Ditto.
13159 * config/i386/avx512vlbwintrin.h:
13160 (_mm_mask_reduce_add_epi16): Ditto.
13161 (_mm_mask_reduce_mul_epi16): Ditto.
13162 (_mm_mask_reduce_and_epi16): Ditto.
13163 (_mm_mask_reduce_or_epi16): Ditto.
13164 (_mm_mask_reduce_max_epi16): Ditto.
13165 (_mm_mask_reduce_max_epu16): Ditto.
13166 (_mm_mask_reduce_min_epi16): Ditto.
13167 (_mm_mask_reduce_min_epu16): Ditto.
13168 (_mm256_mask_reduce_add_epi16): Ditto.
13169 (_mm256_mask_reduce_mul_epi16): Ditto.
13170 (_mm256_mask_reduce_and_epi16): Ditto.
13171 (_mm256_mask_reduce_or_epi16): Ditto.
13172 (_mm256_mask_reduce_max_epi16): Ditto.
13173 (_mm256_mask_reduce_max_epu16): Ditto.
13174 (_mm256_mask_reduce_min_epi16): Ditto.
13175 (_mm256_mask_reduce_min_epu16): Ditto.
13176 (_mm_mask_reduce_add_epi8): Ditto.
13177 (_mm_mask_reduce_mul_epi8): Ditto.
13178 (_mm_mask_reduce_and_epi8): Ditto.
13179 (_mm_mask_reduce_or_epi8): Ditto.
13180 (_mm_mask_reduce_max_epi8): Ditto.
13181 (_mm_mask_reduce_max_epu8): Ditto.
13182 (_mm_mask_reduce_min_epi8): Ditto.
13183 (_mm_mask_reduce_min_epu8): Ditto.
13184 (_mm256_mask_reduce_add_epi8): Ditto.
13185 (_mm256_mask_reduce_mul_epi8): Ditto.
13186 (_mm256_mask_reduce_and_epi8): Ditto.
13187 (_mm256_mask_reduce_or_epi8): Ditto.
13188 (_mm256_mask_reduce_max_epi8): Ditto.
13189 (_mm256_mask_reduce_max_epu8): Ditto.
13190 (_mm256_mask_reduce_min_epi8): Ditto.
13191 (_mm256_mask_reduce_min_epu8): Ditto.
13192
13193 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
13194
13195 * common/config/i386/i386-common.cc
13196 (OPTION_MASK_ISA_VPCLMULQDQ_SET):
13197 Add OPTION_MASK_ISA_PCLMUL_SET and OPTION_MASK_ISA_AVX_SET.
13198 (OPTION_MASK_ISA_AVX_UNSET):
13199 Add OPTION_MASK_ISA_VPCLMULQDQ_UNSET.
13200 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
13201 * config/i386/i386.md (vpclmulqdqvl): New.
13202 * config/i386/sse.md (pclmulqdq): Add evex encoding.
13203 * config/i386/vpclmulqdqintrin.h: Remove redudant avx target
13204 push.
13205
13206 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
13207
13208 * config/i386/avx512vlbwintrin.h
13209 (_mm_mask_blend_epi16): Remove __OPTIMIZE__ wrapper.
13210 (_mm_mask_blend_epi8): Ditto.
13211 (_mm256_mask_blend_epi16): Ditto.
13212 (_mm256_mask_blend_epi8): Ditto.
13213 * config/i386/avx512vlintrin.h
13214 (_mm256_mask_blend_pd): Ditto.
13215 (_mm256_mask_blend_ps): Ditto.
13216 (_mm256_mask_blend_epi64): Ditto.
13217 (_mm256_mask_blend_epi32): Ditto.
13218 (_mm_mask_blend_pd): Ditto.
13219 (_mm_mask_blend_ps): Ditto.
13220 (_mm_mask_blend_epi64): Ditto.
13221 (_mm_mask_blend_epi32): Ditto.
13222 * config/i386/sse.md (VF_AVX512BWHFBF16): Removed.
13223 (VF_AVX512HFBFVL): Move it before the first usage.
13224 (<avx512>_blendm<mode>): Change iterator from VF_AVX512BWHFBF16
13225 to VF_AVX512HFBFVL.
13226
13227 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
13228
13229 * common/config/i386/i386-common.cc
13230 (OPTION_MASK_ISA_AVX512VBMI2_SET): Change OPTION_MASK_ISA_AVX512F_SET
13231 to OPTION_MASK_ISA_AVX512BW_SET.
13232 (OPTION_MASK_ISA_AVX512F_UNSET):
13233 Remove OPTION_MASK_ISA_AVX512VBMI2_UNSET.
13234 (OPTION_MASK_ISA_AVX512BW_UNSET):
13235 Add OPTION_MASK_ISA_AVX512VBMI2_UNSET.
13236 * config/i386/avx512vbmi2intrin.h: Do not push avx512bw.
13237 * config/i386/avx512vbmi2vlintrin.h: Ditto.
13238 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_AVX512BW.
13239 * config/i386/sse.md (VI12_AVX512VLBW): Removed.
13240 (VI12_VI48F_AVX512VLBW): Rename to VI12_VI48F_AVX512VL.
13241 (compress<mode>_mask): Change iterator from VI12_AVX512VLBW to
13242 VI12_AVX512VL.
13243 (compressstore<mode>_mask): Ditto.
13244 (expand<mode>_mask): Ditto.
13245 (expand<mode>_maskz): Ditto.
13246 (*expand<mode>_mask): Change iterator from VI12_VI48F_AVX512VLBW to
13247 VI12_VI48F_AVX512VL.
13248
13249 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
13250
13251 * common/config/i386/i386-common.cc
13252 (OPTION_MASK_ISA_AVX512BITALG_SET):
13253 Change OPTION_MASK_ISA_AVX512F_SET
13254 to OPTION_MASK_ISA_AVX512BW_SET.
13255 (OPTION_MASK_ISA_AVX512F_UNSET):
13256 Remove OPTION_MASK_ISA_AVX512BITALG_SET.
13257 (OPTION_MASK_ISA_AVX512BW_UNSET):
13258 Add OPTION_MASK_ISA_AVX512BITALG_SET.
13259 * config/i386/avx512bitalgintrin.h: Do not push avx512bw.
13260 * config/i386/i386-builtin.def:
13261 Remove redundant OPTION_MASK_ISA_AVX512BW.
13262 * config/i386/sse.md (VI1_AVX512VLBW): Removed.
13263 (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>):
13264 Change the iterator from VI1_AVX512VLBW to VI1_AVX512VL.
13265
13266 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
13267
13268 * config/i386/i386-expand.cc
13269 (ix86_check_builtin_isa_match): Correct wrong comments.
13270 Add a new macro SHARE_BUILTIN and refactor the current if
13271 clauses to macro.
13272
13273 2023-04-20 Mo, Zewei <zewei.mo@intel.com>
13274
13275 * config/i386/cpuid.h: Open a new section for Extended Features
13276 Leaf (%eax == 7, %ecx == 0) and Extended Features Sub-leaf (%eax == 7,
13277 %ecx == 1).
13278
13279 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
13280
13281 * config/i386/sse.md: Modify insn vperm{i,f}
13282 and vshuf{i,f}.
13283
13284 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
13285
13286 * config/xtensa/xtensa-opts.h: New header.
13287 * config/xtensa/xtensa.h (STRICT_ALIGNMENT): Redefine as
13288 xtensa_strict_align.
13289 * config/xtensa/xtensa.cc (xtensa_option_override): When
13290 -m[no-]strict-align is not specified in the command line set
13291 xtensa_strict_align to 0 if the hardware supports both unaligned
13292 loads and stores or to 1 otherwise.
13293 * config/xtensa/xtensa.opt (mstrict-align): New option.
13294 * doc/invoke.texi (Xtensa Options): Document -m[no-]strict-align.
13295
13296 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
13297
13298 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v4): New
13299 function.
13300
13301 2023-04-19 Andrew Pinski <apinski@marvell.com>
13302
13303 * config/i386/i386.md (*movsicc_noc_zext_1): New pattern.
13304
13305 2023-04-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13306
13307 * config/riscv/riscv-modes.def (FLOAT_MODE): Add chunk 128 support.
13308 (VECTOR_BOOL_MODE): Ditto.
13309 (ADJUST_NUNITS): Ditto.
13310 (ADJUST_ALIGNMENT): Ditto.
13311 (ADJUST_BYTESIZE): Ditto.
13312 (ADJUST_PRECISION): Ditto.
13313 (RVV_MODES): Ditto.
13314 (VECTOR_MODE_WITH_PREFIX): Ditto.
13315 * config/riscv/riscv-v.cc (ENTRY): Ditto.
13316 (get_vlmul): Ditto.
13317 (get_ratio): Ditto.
13318 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
13319 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
13320 (vbool64_t): Ditto.
13321 (vbool32_t): Ditto.
13322 (vbool16_t): Ditto.
13323 (vbool8_t): Ditto.
13324 (vbool4_t): Ditto.
13325 (vbool2_t): Ditto.
13326 (vbool1_t): Ditto.
13327 (vint8mf8_t): Ditto.
13328 (vuint8mf8_t): Ditto.
13329 (vint8mf4_t): Ditto.
13330 (vuint8mf4_t): Ditto.
13331 (vint8mf2_t): Ditto.
13332 (vuint8mf2_t): Ditto.
13333 (vint8m1_t): Ditto.
13334 (vuint8m1_t): Ditto.
13335 (vint8m2_t): Ditto.
13336 (vuint8m2_t): Ditto.
13337 (vint8m4_t): Ditto.
13338 (vuint8m4_t): Ditto.
13339 (vint8m8_t): Ditto.
13340 (vuint8m8_t): Ditto.
13341 (vint16mf4_t): Ditto.
13342 (vuint16mf4_t): Ditto.
13343 (vint16mf2_t): Ditto.
13344 (vuint16mf2_t): Ditto.
13345 (vint16m1_t): Ditto.
13346 (vuint16m1_t): Ditto.
13347 (vint16m2_t): Ditto.
13348 (vuint16m2_t): Ditto.
13349 (vint16m4_t): Ditto.
13350 (vuint16m4_t): Ditto.
13351 (vint16m8_t): Ditto.
13352 (vuint16m8_t): Ditto.
13353 (vint32mf2_t): Ditto.
13354 (vuint32mf2_t): Ditto.
13355 (vint32m1_t): Ditto.
13356 (vuint32m1_t): Ditto.
13357 (vint32m2_t): Ditto.
13358 (vuint32m2_t): Ditto.
13359 (vint32m4_t): Ditto.
13360 (vuint32m4_t): Ditto.
13361 (vint32m8_t): Ditto.
13362 (vuint32m8_t): Ditto.
13363 (vint64m1_t): Ditto.
13364 (vuint64m1_t): Ditto.
13365 (vint64m2_t): Ditto.
13366 (vuint64m2_t): Ditto.
13367 (vint64m4_t): Ditto.
13368 (vuint64m4_t): Ditto.
13369 (vint64m8_t): Ditto.
13370 (vuint64m8_t): Ditto.
13371 (vfloat32mf2_t): Ditto.
13372 (vfloat32m1_t): Ditto.
13373 (vfloat32m2_t): Ditto.
13374 (vfloat32m4_t): Ditto.
13375 (vfloat32m8_t): Ditto.
13376 (vfloat64m1_t): Ditto.
13377 (vfloat64m2_t): Ditto.
13378 (vfloat64m4_t): Ditto.
13379 (vfloat64m8_t): Ditto.
13380 * config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
13381 * config/riscv/riscv.cc (riscv_legitimize_poly_move): Ditto.
13382 (riscv_convert_vector_bits): Ditto.
13383 * config/riscv/riscv.md:
13384 * config/riscv/vector-iterators.md:
13385 * config/riscv/vector.md
13386 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
13387 (@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
13388 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
13389 (@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
13390 (@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
13391 (@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
13392 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
13393 (@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
13394 (@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
13395
13396 2023-04-19 Pan Li <pan2.li@intel.com>
13397
13398 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
13399 Align IOR (A | (~A) -> -1) optimization MODE_CLASS condition to AND.
13400
13401 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
13402
13403 PR target/78904
13404 PR target/78952
13405 * config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64): New insn pattern.
13406 (*cmpqi_ext<mode>_1): Use nonimmediate_operand predicate
13407 for operand 0. Use any_extract code iterator.
13408 (*cmpqi_ext<mode>_1 peephole2): New peephole2 pattern.
13409 (*cmpqi_ext<mode>_2): Use any_extract code iterator.
13410 (*cmpqi_ext<mode>_3_mem_rex64): New insn pattern.
13411 (*cmpqi_ext<mode>_1): Use general_operand predicate
13412 for operand 1. Use any_extract code iterator.
13413 (*cmpqi_ext<mode>_3 peephole2): New peephole2 pattern.
13414 (*cmpqi_ext<mode>_4): Use any_extract code iterator.
13415
13416 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13417
13418 * config/aarch64/aarch64-simd.md (aarch64_saddw2<mode>): Delete.
13419 (aarch64_uaddw2<mode>): Delete.
13420 (aarch64_ssubw2<mode>): Delete.
13421 (aarch64_usubw2<mode>): Delete.
13422 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>): New define_expand.
13423
13424 2023-04-19 Richard Biener <rguenther@suse.de>
13425
13426 * tree-ssa-structalias.cc (do_ds_constraint): Use
13427 solve_add_graph_edge.
13428
13429 2023-04-19 Richard Biener <rguenther@suse.de>
13430
13431 * tree-ssa-structalias.cc (solve_add_graph_edge): New function,
13432 split out from ...
13433 (do_sd_constraint): ... here.
13434
13435 2023-04-19 Richard Biener <rguenther@suse.de>
13436
13437 * tree-cfg.cc (gimple_can_merge_blocks_p): Remove condition
13438 rejecting the merge when A contains only a non-local label.
13439
13440 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
13441
13442 * rtl.h (VIRTUAL_REGISTER_P): New predicate.
13443 (VIRTUAL_REGISTER_NUM_P): Ditto.
13444 (REGNO_PTR_FRAME_P): Use VIRTUAL_REGISTER_NUM_P predicate.
13445 * expr.cc (force_operand): Use VIRTUAL_REGISTER_P predicate.
13446 * function.cc (instantiate_decl_rtl): Ditto.
13447 * rtlanal.cc (rtx_addr_can_trap_p_1): Ditto.
13448 (nonzero_address_p): Ditto.
13449 (refers_to_regno_p): Use VIRTUAL_REGISTER_NUM_P predicate.
13450
13451 2023-04-19 Aldy Hernandez <aldyh@redhat.com>
13452
13453 * value-range.h (Value_Range::Value_Range): Avoid pointer sharing.
13454
13455 2023-04-19 Richard Biener <rguenther@suse.de>
13456
13457 * system.h (auto_mpz::operator->()): New.
13458 * realmpfr.h (auto_mpfr::operator->()): New.
13459 * builtins.cc (do_mpfr_lgamma_r): Use auto_mpfr.
13460 * real.cc (real_from_string): Likewise.
13461 (dconst_e_ptr): Likewise.
13462 (dconst_sqrt2_ptr): Likewise.
13463 * tree-ssa-loop-niter.cc (refine_value_range_using_guard):
13464 Use auto_mpz.
13465 (bound_difference_of_offsetted_base): Likewise.
13466 (number_of_iterations_ne): Likewise.
13467 (number_of_iterations_lt_to_ne): Likewise.
13468 * ubsan.cc: Include realmpfr.h.
13469 (ubsan_instrument_float_cast): Use auto_mpfr.
13470
13471 2023-04-19 Richard Biener <rguenther@suse.de>
13472
13473 * tree-ssa-structalias.cc (solve_graph): Remove self-copy
13474 edges, remove edges from escaped after special-casing them.
13475
13476 2023-04-19 Richard Biener <rguenther@suse.de>
13477
13478 * tree-ssa-structalias.cc (do_sd_constraint): Fixup escape
13479 special casing.
13480
13481 2023-04-19 Richard Biener <rguenther@suse.de>
13482
13483 * tree-ssa-structalias.cc (do_sd_constraint): Do not write
13484 to the LHS varinfo solution member.
13485
13486 2023-04-19 Richard Biener <rguenther@suse.de>
13487
13488 * tree-ssa-structalias.cc (topo_visit): Look at the real
13489 destination of edges.
13490
13491 2023-04-19 Richard Biener <rguenther@suse.de>
13492
13493 PR tree-optimization/44794
13494 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
13495 If an epilogue loop is required set its iteration upper bound.
13496
13497 2023-04-19 Xi Ruoyao <xry111@xry111.site>
13498
13499 PR target/109465
13500 * config/loongarch/loongarch-protos.h
13501 (loongarch_expand_block_move): Add a parameter as alignment RTX.
13502 * config/loongarch/loongarch.h:
13503 (LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER): Remove.
13504 (LARCH_MAX_MOVE_BYTES_STRAIGHT): Remove.
13505 (LARCH_MAX_MOVE_OPS_PER_LOOP_ITER): Define.
13506 (LARCH_MAX_MOVE_OPS_STRAIGHT): Define.
13507 (MOVE_RATIO): Use LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
13508 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
13509 * config/loongarch/loongarch.cc (loongarch_expand_block_move):
13510 Take the alignment from the parameter, but set it to
13511 UNITS_PER_WORD if !TARGET_STRICT_ALIGN. Limit the length of
13512 straight-line implementation with LARCH_MAX_MOVE_OPS_STRAIGHT
13513 instead of LARCH_MAX_MOVE_BYTES_STRAIGHT.
13514 (loongarch_block_move_straight): When there are left-over bytes,
13515 half the mode size instead of falling back to byte mode at once.
13516 (loongarch_block_move_loop): Limit the length of loop body with
13517 LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
13518 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
13519 * config/loongarch/loongarch.md (cpymemsi): Pass the alignment
13520 to loongarch_expand_block_move.
13521
13522 2023-04-19 Xi Ruoyao <xry111@xry111.site>
13523
13524 * config/loongarch/loongarch.cc
13525 (loongarch_setup_incoming_varargs): Don't save more GARs than
13526 cfun->va_list_gpr_size / UNITS_PER_WORD.
13527
13528 2023-04-19 Richard Biener <rguenther@suse.de>
13529
13530 * tree-ssa-loop-manip.cc (determine_exit_conditions): Fix
13531 no epilogue condition.
13532
13533 2023-04-19 Richard Biener <rguenther@suse.de>
13534
13535 * gimple.h (gimple_assign_load): Outline...
13536 * gimple.cc (gimple_assign_load): ... here. Avoid
13537 get_base_address and instead just strip the outermost
13538 handled component, treating a remaining handled component
13539 as load.
13540
13541 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13542
13543 * config/aarch64/aarch64-simd-builtins.def (neg): Delete builtins
13544 definition.
13545 * config/aarch64/arm_fp16.h (vnegh_f16): Reimplement using normal negation.
13546
13547 2023-04-19 Jakub Jelinek <jakub@redhat.com>
13548
13549 PR tree-optimization/109011
13550 * tree-vect-patterns.cc (vect_recog_popcount_pattern): Rename to ...
13551 (vect_recog_popcount_clz_ctz_ffs_pattern): ... this. Handle also
13552 CLZ, CTZ and FFS. Remove vargs variable, use
13553 gimple_build_call_internal rather than gimple_build_call_internal_vec.
13554 (vect_vect_recog_func_ptrs): Adjust popcount entry.
13555
13556 2023-04-19 Jakub Jelinek <jakub@redhat.com>
13557
13558 PR target/109040
13559 * dse.cc (replace_read): If read_reg is a SUBREG of a word mode
13560 REG, for WORD_REGISTER_OPERATIONS copy SUBREG_REG of it into
13561 a new REG rather than the SUBREG.
13562
13563 2023-04-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13564
13565 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
13566 New pattern.
13567
13568 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13569
13570 PR target/108840
13571 * config/aarch64/aarch64.cc (aarch64_rtx_costs): Merge ASHIFT and
13572 ROTATE, ROTATERT, LSHIFTRT, ASHIFTRT cases. Handle subregs in op1.
13573
13574 2023-04-19 Richard Biener <rguenther@suse.de>
13575
13576 PR rtl-optimization/109237
13577 * cse.cc (insn_live_p): Remove NEXT_INSN walk, instead check
13578 TREE_VISITED on INSN_VAR_LOCATION_DECL.
13579 (delete_trivially_dead_insns): Maintain TREE_VISITED on
13580 active debug bind INSN_VAR_LOCATION_DECL.
13581
13582 2023-04-19 Richard Biener <rguenther@suse.de>
13583
13584 PR rtl-optimization/109237
13585 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
13586
13587 2023-04-19 Christophe Lyon <christophe.lyon@arm.com>
13588
13589 * doc/install.texi (enable-decimal-float): Add AArch64.
13590
13591 2023-04-19 liuhongt <hongtao.liu@intel.com>
13592
13593 PR rtl-optimization/109351
13594 * ira.cc (setup_class_subset_and_memory_move_costs): Check
13595 hard_regno_mode_ok before setting lowest memory move cost for
13596 the mode with different reg classes.
13597
13598 2023-04-18 Jason Merrill <jason@redhat.com>
13599
13600 * doc/invoke.texi: Remove stray @gol.
13601
13602 2023-04-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13603
13604 * ifcvt.cc (cond_move_process_if_block): Consider the result of
13605 targetm.noce_conversion_profitable_p() when replacing the original
13606 sequence with the converted one.
13607
13608 2023-04-18 Mark Harmstone <mark@harmstone.com>
13609
13610 * common.opt (gcodeview): Add new option.
13611 * gcc.cc (driver_handle_option); Handle OPT_gcodeview.
13612 * opts.cc (command_handle_option): Similarly.
13613 * doc/invoke.texi: Add documentation for -gcodeview.
13614
13615 2023-04-18 Andrew Pinski <apinski@marvell.com>
13616
13617 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove declaration.
13618 (make_pass_phiopt): Make execute out of line.
13619 (tree_ssa_cs_elim): Move code into ...
13620 (pass_cselim::execute): here.
13621
13622 2023-04-18 Sam James <sam@gentoo.org>
13623
13624 * system.h: Drop unused INCLUDE_PTHREAD_H.
13625
13626 2023-04-18 Kevin Lee <kevinl@rivosinc.com>
13627
13628 * tree-vect-data-refs.cc (vect_grouped_store_supported): Add new
13629 condition.
13630
13631 2023-04-18 Sinan Lin <sinan.lin@linux.alibaba.com>
13632
13633 * config/riscv/bitmanip.md (rotr<mode>3 expander): Enable for ZBKB.
13634 (bswapdi2, bswapsi2): Similarly.
13635
13636 2023-04-18 Uros Bizjak <ubizjak@gmail.com>
13637
13638 PR target/94908
13639 * config/i386/i386-builtin.def (__builtin_ia32_insertps128):
13640 Use CODE_FOR_sse4_1_insertps_v4sf.
13641 * config/i386/i386-expand.cc (expand_vec_perm_insertps): New.
13642 (expand_vec_perm_1): Call expand_vec_per_insertps.
13643 * config/i386/i386.md ("unspec"): Declare UNSPEC_INSERTPS here.
13644 * config/i386/mmx.md (mmxscalarmode): New mode attribute.
13645 (@sse4_1_insertps_<mode>): New insn pattern.
13646 * config/i386/sse.md (@sse4_1_insertps_<mode>): Macroize insn
13647 pattern from sse4_1_insertps using VI4F_128 mode iterator.
13648
13649 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
13650
13651 * value-range.cc (gt_ggc_mx): New.
13652 (gt_pch_nx): New.
13653 * value-range.h (class vrange): Add GTY marker.
13654 (class frange): Same.
13655 (gt_ggc_mx): Remove.
13656 (gt_pch_nx): Remove.
13657
13658 2023-04-18 Victor L. Do Nascimento <victor.donascimento@arm.com>
13659
13660 * lra-constraints.cc (constraint_unique): New.
13661 (process_address_1): Apply constraint_unique test.
13662 * recog.cc (constrain_operands): Allow relaxed memory
13663 constaints.
13664
13665 2023-04-18 Kito Cheng <kito.cheng@sifive.com>
13666
13667 * doc/extend.texi (Target Builtins): Add RISC-V Vector
13668 Intrinsics.
13669 (RISC-V Vector Intrinsics): Document GCC implemented which
13670 version of RISC-V vector intrinsics and its reference.
13671
13672 2023-04-18 Richard Biener <rguenther@suse.de>
13673
13674 PR middle-end/108786
13675 * bitmap.h (bitmap_clear_first_set_bit): New.
13676 * bitmap.cc (bitmap_first_set_bit_worker): Rename from
13677 bitmap_first_set_bit and add optional clearing of the bit.
13678 (bitmap_first_set_bit): Wrap bitmap_first_set_bit_worker.
13679 (bitmap_clear_first_set_bit): Likewise.
13680 * df-core.cc (df_worklist_dataflow_doublequeue): Use
13681 bitmap_clear_first_set_bit.
13682 * graphite-scop-detection.cc (scop_detection::merge_sese):
13683 Likewise.
13684 * sanopt.cc (sanitize_asan_mark_unpoison): Likewise.
13685 (sanitize_asan_mark_poison): Likewise.
13686 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise.
13687 * tree-into-ssa.cc (rewrite_blocks): Likewise.
13688 * tree-ssa-dce.cc (simple_dce_from_worklist): Likewise.
13689 * tree-ssa-sccvn.cc (do_rpo_vn_1): Likewise.
13690
13691 2023-04-18 Richard Biener <rguenther@suse.de>
13692
13693 * tree-ssa-structalias.cc (dump_sa_stats): Split out from...
13694 (dump_sa_points_to_info): ... this function.
13695 (compute_points_to_sets): Guard large dumps with TDF_DETAILS,
13696 and call dump_sa_stats guarded with TDF_STATS.
13697 (ipa_pta_execute): Likewise.
13698 (compute_may_aliases): Guard dump_alias_info with
13699 TDF_DETAILS|TDF_ALIAS.
13700
13701 2023-04-18 Andrew Pinski <apinski@marvell.com>
13702
13703 * tree-ssa-phiopt.cc (gimple_simplify_phiopt): Dump
13704 the expression that is being tried when TDF_FOLDING
13705 is true.
13706 (phiopt_worker::match_simplify_replacement): Dump
13707 the sequence which was created by gimple_simplify_phiopt
13708 when TDF_FOLDING is true.
13709
13710 2023-04-18 Andrew Pinski <apinski@marvell.com>
13711
13712 * tree-ssa-phiopt.cc (match_simplify_replacement):
13713 Simplify code that does the movement slightly.
13714
13715 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13716
13717 * config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
13718 define_expand.
13719 (rev16<mode>2): Rename to...
13720 (aarch64_rev16<mode>2_alt1): ... This.
13721 (rev16<mode>2_alt): Rename to...
13722 (*aarch64_rev16<mode>2_alt2): ... This.
13723
13724 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
13725
13726 * emit-rtl.cc (init_emit_once): Initialize dconstm0.
13727 * gimple-range-op.cc (class cfn_signbit): Remove dconstm0
13728 declaration.
13729 * range-op-float.cc (zero_range): Use dconstm0.
13730 (zero_to_inf_range): Same.
13731 * real.h (dconstm0): New.
13732 * value-range.cc (frange::flush_denormals_to_zero): Use dconstm0.
13733 (frange::set_zero): Do not declare dconstm0.
13734
13735 2023-04-18 Richard Biener <rguenther@suse.de>
13736
13737 * system.h (class auto_mpz): New,
13738 * realmpfr.h (class auto_mpfr): Likewise.
13739 * fold-const-call.cc (do_mpfr_arg1): Use auto_mpfr.
13740 (do_mpfr_arg2): Likewise.
13741 * tree-ssa-loop-niter.cc (bound_difference): Use auto_mpz;
13742
13743 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13744
13745 * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_intrinsics): Take
13746 builtin flags from intrinsic data rather than hardcoded FLAG_AUTO_FP.
13747
13748 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
13749
13750 * value-range.cc (frange::operator==): Adjust for NAN.
13751 (range_tests_nan): Remove some NAN tests.
13752
13753 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
13754
13755 * inchash.cc (hash::add_real_value): New.
13756 * inchash.h (class hash): Add add_real_value.
13757 * value-range.cc (add_vrange): New.
13758 * value-range.h (inchash::add_vrange): New.
13759
13760 2023-04-18 Richard Biener <rguenther@suse.de>
13761
13762 PR tree-optimization/109539
13763 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
13764 Re-implement pointer relatedness for PHIs.
13765
13766 2023-04-18 Andrew Stubbs <ams@codesourcery.com>
13767
13768 * config/gcn/gcn-valu.md (SV_SFDF): New iterator.
13769 (SV_FP): New iterator.
13770 (scalar_mode, SCALAR_MODE): Add identity mappings for scalar modes.
13771 (recip<mode>2): Unify the two patterns using SV_FP.
13772 (div_scale<mode><exec_vcc>): New insn.
13773 (div_fmas<mode><exec>): New insn.
13774 (div_fixup<mode><exec>): New insn.
13775 (div<mode>3): Unify the two expanders and rewrite using hardfp.
13776 * config/gcn/gcn.cc (gcn_md_reorg): Support "vccwait" attribute.
13777 * config/gcn/gcn.md (unspec): Add UNSPEC_DIV_SCALE, UNSPEC_DIV_FMAS,
13778 and UNSPEC_DIV_FIXUP.
13779 (vccwait): New attribute.
13780
13781 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13782
13783 * config/aarch64/aarch64.cc (aarch64_validate_mcpu): Add hint to use -march
13784 if the argument matches that.
13785
13786 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13787
13788 * config/aarch64/atomics.md
13789 (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
13790 Use SD_HSDI for destination mode iterator.
13791
13792 2023-04-18 Jin Ma <jinma@linux.alibaba.com>
13793
13794 * common/config/riscv/riscv-common.cc (multi_letter_subset_rank): Swap the order
13795 of z-extensions and s-extensions.
13796 (riscv_subset_list::parse): Likewise.
13797
13798 2023-04-18 Jakub Jelinek <jakub@redhat.com>
13799
13800 PR tree-optimization/109240
13801 * match.pd (fneg/fadd): Rewrite such that it handles both plus as
13802 first vec_perm operand and minus as second using fneg/fadd and
13803 minus as first vec_perm operand and plus as second using fneg/fsub.
13804
13805 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
13806
13807 * data-streamer.cc (bp_pack_real_value): New.
13808 (bp_unpack_real_value): New.
13809 * data-streamer.h (bp_pack_real_value): New.
13810 (bp_unpack_real_value): New.
13811 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields): Use
13812 bp_unpack_real_value.
13813 * tree-streamer-out.cc (pack_ts_real_cst_value_fields): Use
13814 bp_pack_real_value.
13815
13816 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
13817
13818 * wide-int.h (WIDE_INT_MAX_HWIS): New.
13819 (class fixed_wide_int_storage): Use it.
13820 (trailing_wide_ints <N>::set_precision): Use it.
13821 (trailing_wide_ints <N>::extra_size): Use it.
13822
13823 2023-04-18 Xi Ruoyao <xry111@xry111.site>
13824
13825 * config/loongarch/loongarch-protos.h
13826 (loongarch_addu16i_imm12_operand_p): New function prototype.
13827 (loongarch_split_plus_constant): Likewise.
13828 * config/loongarch/loongarch.cc
13829 (loongarch_addu16i_imm12_operand_p): New function.
13830 (loongarch_split_plus_constant): Likewise.
13831 * config/loongarch/loongarch.h (ADDU16I_OPERAND): New macro.
13832 (DUAL_IMM12_OPERAND): Likewise.
13833 (DUAL_ADDU16I_OPERAND): Likewise.
13834 * config/loongarch/constraints.md (La, Lb, Lc, Ld, Le): New
13835 constraint.
13836 * config/loongarch/predicates.md (const_dual_imm12_operand): New
13837 predicate.
13838 (const_addu16i_operand): Likewise.
13839 (const_addu16i_imm12_di_operand): Likewise.
13840 (const_addu16i_imm12_si_operand): Likewise.
13841 (plus_di_operand): Likewise.
13842 (plus_si_operand): Likewise.
13843 (plus_si_extend_operand): Likewise.
13844 * config/loongarch/loongarch.md (add<mode>3): Convert to
13845 define_insn_and_split. Use plus_<mode>_operand predicate
13846 instead of arith_operand. Add alternatives for La, Lb, Lc, Ld,
13847 and Le constraints.
13848 (*addsi3_extended): Convert to define_insn_and_split. Use
13849 plus_si_extend_operand instead of arith_operand. Add
13850 alternatives for La and Le alternatives.
13851
13852 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
13853
13854 * value-range.h (Value_Range::Value_Range): New.
13855 (Value_Range::contains_p): New.
13856
13857 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
13858
13859 * value-range.h (class vrange): Make m_discriminator const.
13860 (class irange): Make m_max_ranges const. Adjust constructors
13861 accordingly.
13862 (class unsupported_range): Construct vrange appropriately.
13863 (class frange): Same.
13864
13865 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
13866
13867 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove the macro
13868 definition.
13869
13870 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
13871
13872 * doc/extend.texi: Add section for LoongArch Base Built-in functions.
13873
13874 2023-04-18 Fei Gao <gaofei@eswincomputing.com>
13875
13876 * config/riscv/riscv.cc (riscv_first_stack_step): Make codes more
13877 readable.
13878 (riscv_expand_epilogue): Likewise.
13879
13880 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
13881
13882 * config/riscv/riscv.cc (riscv_expand_prologue): Consider save-restore in
13883 stack allocation.
13884 (riscv_expand_epilogue): Consider save-restore in stack deallocation.
13885
13886 2023-04-17 Andrew Pinski <apinski@marvell.com>
13887
13888 * tree-ssa-phiopt.cc (gate_hoist_loads): Remove
13889 prototype.
13890
13891 2023-04-17 Aldy Hernandez <aldyh@redhat.com>
13892
13893 * gimple-ssa-warn-alloca.cc (pass_walloca::execute): Do not export
13894 global ranges.
13895
13896 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
13897
13898 * config/riscv/riscv.cc (riscv_first_stack_step): Add a new function
13899 parameter remaining_size.
13900 (riscv_compute_frame_info): Adapt new riscv_first_stack_step interface.
13901 (riscv_expand_prologue): Likewise.
13902 (riscv_expand_epilogue): Likewise.
13903
13904 2023-04-17 Feng Wang <wangfeng@eswincomputing.com>
13905
13906 * config/riscv/bitmanip.md (rotrsi3_sext): Support generating
13907 roriw for constant counts.
13908 * rtl.h (reverse_rotate_by_imm_p): Add function declartion
13909 * simplify-rtx.cc (reverse_rotate_by_imm_p): New function.
13910 (simplify_context::simplify_binary_operation_1): Use it.
13911 * expmed.cc (expand_shift_1): Likewise.
13912
13913 2023-04-17 Martin Jambor <mjambor@suse.cz>
13914
13915 PR ipa/107769
13916 PR ipa/109318
13917 * cgraph.h (symtab_node::find_reference): Add parameter use_type.
13918 * ipa-prop.h (ipa_pass_through_data): New flag refdesc_decremented.
13919 (ipa_zap_jf_refdesc): New function.
13920 (ipa_get_jf_pass_through_refdesc_decremented): Likewise.
13921 (ipa_set_jf_pass_through_refdesc_decremented): Likewise.
13922 * ipa-cp.cc (ipcp_discover_new_direct_edges): Provide a value for
13923 the new parameter of find_reference.
13924 (adjust_references_in_caller): Likewise. Make sure the constant jump
13925 function is not used to decrement a refdec counter again. Only
13926 decrement refdesc counters when the pass_through jump function allows
13927 it. Added a detailed dump when decrementing refdesc counters.
13928 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Dump new flag.
13929 (ipa_set_jf_simple_pass_through): Initialize the new flag.
13930 (ipa_set_jf_unary_pass_through): Likewise.
13931 (ipa_set_jf_arith_pass_through): Likewise.
13932 (remove_described_reference): Provide a value for the new parameter of
13933 find_reference.
13934 (update_jump_functions_after_inlining): Zap refdesc of new jfunc if
13935 the previous pass_through had a flag mandating that we do so.
13936 (propagate_controlled_uses): Likewise. Only decrement refdesc
13937 counters when the pass_through jump function allows it.
13938 (ipa_edge_args_sum_t::duplicate): Provide a value for the new
13939 parameter of find_reference.
13940 (ipa_write_jump_function): Assert the new flag does not have to be
13941 streamed.
13942 * symtab.cc (symtab_node::find_reference): Add parameter use_type, use
13943 it in searching.
13944
13945 2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
13946 Di Zhao <di.zhao@amperecomputing.com>
13947
13948 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
13949 Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
13950 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
13951 Check for the above tuning option when processing loads.
13952
13953 2023-04-17 Richard Biener <rguenther@suse.de>
13954
13955 PR tree-optimization/109524
13956 * tree-vrp.cc (remove_unreachable::m_list): Change to a
13957 vector of pairs of block indices.
13958 (remove_unreachable::maybe_register_block): Adjust.
13959 (remove_unreachable::remove_and_update_globals): Likewise.
13960 Deal with removed blocks.
13961
13962 2023-04-16 Jeff Law <jlaw@ventanamicro>
13963
13964 PR target/109508
13965 * config/riscv/riscv.cc (riscv_expand_conditional_move): For
13966 TARGET_SFB_ALU, force the true arm into a register.
13967
13968 2023-04-15 John David Anglin <danglin@gcc.gnu.org>
13969
13970 PR target/104989
13971 * config/pa/pa-protos.h (pa_function_arg_size): Update prototype.
13972 * config/pa/pa.cc (pa_function_arg): Return NULL_RTX if argument
13973 size is zero.
13974 (pa_arg_partial_bytes): Don't call pa_function_arg_size twice.
13975 (pa_function_arg_size): Change return type to int. Return zero
13976 for arguments larger than 1 GB. Update comments.
13977
13978 2023-04-15 Jakub Jelinek <jakub@redhat.com>
13979
13980 PR tree-optimization/109154
13981 * tree-if-conv.cc (predicate_scalar_phi): For complex PHIs, emit just
13982 args_len - 1 COND_EXPRs rather than args_len. Formatting fix.
13983
13984 2023-04-15 Jason Merrill <jason@redhat.com>
13985
13986 PR c++/109514
13987 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
13988 Overhaul lhs_ref.ref analysis.
13989
13990 2023-04-14 Richard Biener <rguenther@suse.de>
13991
13992 PR tree-optimization/109502
13993 * tree-vect-stmts.cc (vectorizable_assignment): Fix
13994 check for conversion between mask and non-mask types.
13995
13996 2023-04-14 Jeff Law <jlaw@ventanamicro.com>
13997 Jakub Jelinek <jakub@redhat.com>
13998
13999 PR target/108947
14000 PR target/109040
14001 * combine.cc (simplify_and_const_int_1): Compute nonzero_bits in
14002 word_mode rather than mode if WORD_REGISTER_OPERATIONS and mode is
14003 smaller than word_mode.
14004 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
14005 <case AND>: Likewise.
14006
14007 2023-04-14 Jakub Jelinek <jakub@redhat.com>
14008
14009 * loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
14010 of GEN_INT.
14011
14012 2023-04-13 Andrew MacLeod <amacleod@redhat.com>
14013
14014 PR tree-optimization/108139
14015 PR tree-optimization/109462
14016 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Remove
14017 equivalency check for PHI nodes.
14018 * gimple-range-fold.cc (fold_using_range::range_of_phi): Ensure def
14019 does not dominate single-arg equivalency edges.
14020
14021 2023-04-13 Richard Sandiford <richard.sandiford@arm.com>
14022
14023 PR target/108910
14024 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
14025 not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
14026
14027 2023-04-13 Richard Biener <rguenther@suse.de>
14028
14029 PR tree-optimization/109491
14030 * tree-ssa-sccvn.cc (expressions_equal_p): Restore the
14031 NULL operands test.
14032
14033 2023-04-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
14034
14035 PR target/109479
14036 * config/riscv/riscv-vector-builtins-types.def (vint8mf8_t): Fix predicate.
14037 (vint16mf4_t): Ditto.
14038 (vint32mf2_t): Ditto.
14039 (vint64m1_t): Ditto.
14040 (vint64m2_t): Ditto.
14041 (vint64m4_t): Ditto.
14042 (vint64m8_t): Ditto.
14043 (vuint8mf8_t): Ditto.
14044 (vuint16mf4_t): Ditto.
14045 (vuint32mf2_t): Ditto.
14046 (vuint64m1_t): Ditto.
14047 (vuint64m2_t): Ditto.
14048 (vuint64m4_t): Ditto.
14049 (vuint64m8_t): Ditto.
14050 (vfloat32mf2_t): Ditto.
14051 (vbool64_t): Ditto.
14052 * config/riscv/riscv-vector-builtins.cc (register_builtin_type): Add comments.
14053 (register_vector_type): Ditto.
14054 (check_required_extensions): Fix condition.
14055 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ZVE64): Remove it.
14056 (RVV_REQUIRE_ELEN_64): New define.
14057 (RVV_REQUIRE_MIN_VLEN_64): Ditto.
14058 * config/riscv/riscv-vector-switch.def (TARGET_VECTOR_FP32): Remove it.
14059 (TARGET_VECTOR_FP64): Ditto.
14060 (ENTRY): Fix predicate.
14061 * config/riscv/vector-iterators.md: Fix predicate.
14062
14063 2023-04-12 Jakub Jelinek <jakub@redhat.com>
14064
14065 PR tree-optimization/109410
14066 * tree-ssa-reassoc.cc (build_and_add_sum): Split edge from entry
14067 block if first statement of the function is a call to returns_twice
14068 function.
14069
14070 2023-04-12 Jakub Jelinek <jakub@redhat.com>
14071
14072 PR target/109458
14073 * config/i386/i386.cc: Include rtl-error.h.
14074 (ix86_print_operand): For z modifier warning, use warning_for_asm
14075 if this_is_asm_operands. For Z modifier errors, use %c and code
14076 instead of hardcoded Z.
14077
14078 2023-04-12 Costas Argyris <costas.argyris@gmail.com>
14079
14080 * config/i386/x-mingw32-utf8: Remove extrataneous $@
14081
14082 2023-04-12 Andrew MacLeod <amacleod@redhat.com>
14083
14084 PR tree-optimization/109462
14085 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't
14086 check for equivalences if NAME is a phi node.
14087
14088 2023-04-12 Richard Biener <rguenther@suse.de>
14089
14090 PR tree-optimization/109473
14091 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
14092 Convert scalar result to the computation type before performing
14093 the reduction adjustment.
14094
14095 2023-04-12 Richard Biener <rguenther@suse.de>
14096
14097 PR tree-optimization/109469
14098 * tree-vect-slp.cc (vect_slp_function): Skip region starts with
14099 a returns-twice call.
14100
14101 2023-04-12 Richard Biener <rguenther@suse.de>
14102
14103 PR tree-optimization/109434
14104 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly
14105 handle possibly throwing calls when processing the LHS
14106 and may-defs are not OK.
14107
14108 2023-04-11 Lin Sinan <mynameisxiaou@gmail.com>
14109
14110 * config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
14111 predicate to avoid splitting arith constants.
14112
14113 2023-04-11 Yanzhang Wang <yanzhang.wang@intel.com>
14114 Pan Li <pan2.li@intel.com>
14115 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
14116 Kito Cheng <kito.cheng@sifive.com>
14117
14118 PR target/109104
14119 * config/riscv/riscv-protos.h (emit_hard_vlmax_vsetvl): New.
14120 * config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): New.
14121 (emit_vlmax_vsetvl): Use emit_hard_vlmax_vsetvl.
14122 * config/riscv/riscv.cc (vector_zero_call_used_regs): New.
14123 (riscv_zero_call_used_regs): New.
14124 (TARGET_ZERO_CALL_USED_REGS): New.
14125
14126 2023-04-11 Martin Liska <mliska@suse.cz>
14127
14128 PR driver/108241
14129 * opts.cc (finish_options): Drop also
14130 x_flag_var_tracking_assignments.
14131
14132 2023-04-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
14133
14134 PR tree-optimization/108888
14135 * tree-if-conv.cc (predicate_statements): Fix gimple call check.
14136
14137 2023-04-11 Haochen Gui <guihaoc@gcc.gnu.org>
14138
14139 PR target/108812
14140 * config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
14141 (vsx_sign_extend_v16qi_<mode>): ... this.
14142 (vsx_sign_extend_hi_<mode>): Rename to...
14143 (vsx_sign_extend_v8hi_<mode>): ... this.
14144 (vsx_sign_extend_si_v2di): Rename to...
14145 (vsx_sign_extend_v4si_v2di): ... this.
14146 (vsignextend_qi_<mode>): Remove.
14147 (vsignextend_hi_<mode>): Remove.
14148 (vsignextend_si_v2di): Remove.
14149 (vsignextend_v2di_v1ti): Remove.
14150 (*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
14151 gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
14152 with gen_vsx_sign_extend_v16qi_v4si.
14153 * config/rs6000/rs6000.md (split for DI constant generation):
14154 Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
14155 (split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
14156 with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
14157 with gen_vsx_sign_extend_v16qi_si.
14158 * config/rs6000/rs6000-builtins.def (__builtin_altivec_vsignextsb2d):
14159 Set bif-pattern to vsx_sign_extend_v16qi_v2di.
14160 (__builtin_altivec_vsignextsb2w): Set bif-pattern to
14161 vsx_sign_extend_v16qi_v4si.
14162 (__builtin_altivec_visgnextsh2d): Set bif-pattern to
14163 vsx_sign_extend_v8hi_v2di.
14164 (__builtin_altivec_vsignextsh2w): Set bif-pattern to
14165 vsx_sign_extend_v8hi_v4si.
14166 (__builtin_altivec_vsignextsw2d): Set bif-pattern to
14167 vsx_sign_extend_si_v2di.
14168 (__builtin_altivec_vsignext): Set bif-pattern to
14169 vsx_sign_extend_v2di_v1ti.
14170 * config/rs6000/rs6000-builtin.cc (lxvrse_expand_builtin): Replace
14171 gen_vsx_sign_extend_qi_v2di with gen_vsx_sign_extend_v16qi_v2di,
14172 gen_vsx_sign_extend_hi_v2di with gen_vsx_sign_extend_v8hi_v2di and
14173 gen_vsx_sign_extend_si_v2di with gen_vsx_sign_extend_v4si_v2di.
14174
14175 2023-04-10 Michael Meissner <meissner@linux.ibm.com>
14176
14177 PR target/70243
14178 * config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
14179 (vsx_nfmsv4sf4): Do not generate vnmsubfp.
14180
14181 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
14182
14183 * config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
14184
14185 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
14186
14187 * common/config/i386/cpuinfo.h (get_available_features):
14188 Detect AMX-COMPLEX.
14189 * common/config/i386/i386-common.cc
14190 (OPTION_MASK_ISA2_AMX_COMPLEX_SET,
14191 OPTION_MASK_ISA2_AMX_COMPLEX_UNSET): New.
14192 (ix86_handle_option): Handle -mamx-complex.
14193 * common/config/i386/i386-cpuinfo.h (enum processor_features):
14194 Add FEATURE_AMX_COMPLEX.
14195 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
14196 amx-complex.
14197 * config.gcc: Add amxcomplexintrin.h.
14198 * config/i386/cpuid.h (bit_AMX_COMPLEX): New.
14199 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
14200 __AMX_COMPLEX__.
14201 * config/i386/i386-isa.def (AMX_COMPLEX): Add DEF_PTA(AMX_COMPLEX).
14202 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
14203 Handle amx-complex.
14204 * config/i386/i386.opt: Add option -mamx-complex.
14205 * config/i386/immintrin.h: Include amxcomplexintrin.h.
14206 * doc/extend.texi: Document amx-complex.
14207 * doc/invoke.texi: Document -mamx-complex.
14208 * doc/sourcebuild.texi: Document target amx-complex.
14209 * config/i386/amxcomplexintrin.h: New file.
14210
14211 2023-04-08 Jakub Jelinek <jakub@redhat.com>
14212
14213 PR tree-optimization/109392
14214 * tree-vect-generic.cc (tree_vec_extract): Handle failure
14215 of maybe_push_res_to_seq better.
14216
14217 2023-04-08 Jakub Jelinek <jakub@redhat.com>
14218
14219 * Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
14220 poly-int-types.h.
14221 (SYSTEM_H): Depend on $(HASHTAB_H).
14222 * config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused
14223 dependency on $(RTL_BASE_H), remove redundant dependency on
14224 insn-modes.h.
14225
14226 2023-04-06 Richard Earnshaw <rearnsha@arm.com>
14227
14228 PR target/107674
14229 * config/arm/arm.cc (arm_effective_regno): New function.
14230 (mve_vector_mem_operand): Use it.
14231
14232 2023-04-06 Andrew MacLeod <amacleod@redhat.com>
14233
14234 PR tree-optimization/109417
14235 * gimple-range-gori.cc (gori_compute::may_recompute_p): Check if
14236 dependency is in SSA_NAME_FREE_LIST.
14237
14238 2023-04-06 Andrew Pinski <apinski@marvell.com>
14239
14240 PR tree-optimization/109427
14241 * params.opt (-param=vect-induction-float=):
14242 Fix option attribute typo for IntegerRange.
14243
14244 2023-04-05 Jeff Law <jlaw@ventanamicro>
14245
14246 PR target/108892
14247 * combine.cc (combine_instructions): Force re-recognition when
14248 after restoring the body of an insn to its original form.
14249
14250 2023-04-05 Martin Jambor <mjambor@suse.cz>
14251
14252 PR ipa/108959
14253 * ipa-sra.cc (zap_useless_ipcp_results): New function.
14254 (process_isra_node_results): Call it.
14255
14256 2023-04-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
14257
14258 * config/riscv/vector.md: Fix incorrect operand order.
14259
14260 2023-04-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
14261
14262 * config/riscv/riscv-vsetvl.cc
14263 (pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
14264 demand fusion.
14265
14266 2023-04-05 Li Xu <xuli1@eswincomputing.com>
14267
14268 * config/riscv/riscv-vector-builtins.def: Fix typo.
14269 * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
14270 * config/riscv/vector-iterators.md: Ditto.
14271
14272 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
14273
14274 * doc/md.texi (Including Patterns): Fix page break.
14275
14276 2023-04-04 Jakub Jelinek <jakub@redhat.com>
14277
14278 PR tree-optimization/109386
14279 * range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
14280 foperator_le::op1_range, foperator_le::op2_range,
14281 foperator_gt::op1_range, foperator_gt::op2_range,
14282 foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
14283 BRS_FALSE case even if the other op is maybe_isnan, not just
14284 known_isnan.
14285 (foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
14286 foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
14287 foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
14288 foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
14289 Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
14290 not just known_isnan.
14291
14292 2023-04-04 Marek Polacek <polacek@redhat.com>
14293
14294 PR sanitizer/109107
14295 * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
14296 when associating.
14297 * match.pd: Use TYPE_OVERFLOW_SANITIZED.
14298
14299 2023-04-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
14300
14301 * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
14302 (mve_vcreateq_f<mode>): Swap operands.
14303
14304 2023-04-04 Andrew Stubbs <ams@codesourcery.com>
14305
14306 * config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
14307
14308 2023-04-04 Jakub Jelinek <jakub@redhat.com>
14309
14310 PR target/109384
14311 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
14312 Reword diagnostics about zfinx conflict with f, formatting fixes.
14313
14314 2023-04-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14315
14316 * config/sol2.h (LIB_SPEC): Don't link with -lpthread.
14317
14318 2023-04-04 Richard Biener <rguenther@suse.de>
14319
14320 PR tree-optimization/109304
14321 * tree-profile.cc (tree_profiling): Use symtab node
14322 availability to decide whether to skip adjusting calls.
14323 Do not adjust calls to internal functions.
14324
14325 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
14326
14327 PR target/108807
14328 * config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
14329 function for permutation control vector by considering big endianness.
14330
14331 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
14332
14333 PR target/108699
14334 * config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
14335 (rs6000_vprtyb<mode>2): ... this.
14336 * config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
14337 rs6000_vprtybv2di2.
14338 (VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
14339 (VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
14340 * config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
14341 popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
14342
14343 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
14344 Sandra Loosemore <sandra@codesourcery.com>
14345
14346 * doc/md.texi (Insn Splitting): Tweak wording for readability.
14347
14348 2023-04-03 Martin Jambor <mjambor@suse.cz>
14349
14350 PR ipa/109303
14351 * ipa-prop.cc (determine_known_aggregate_parts): Check that the
14352 offset + size will be representable in unsigned int.
14353
14354 2023-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14355
14356 * configure.ac (ZSTD_LIB): Move before zstd.h check.
14357 Unset gcc_cv_header_zstd_h without libzstd.
14358 * configure: Regenerate.
14359
14360 2023-04-03 Martin Liska <mliska@suse.cz>
14361
14362 * doc/invoke.texi: Document new param.
14363
14364 2023-04-03 Cupertino Miranda <cupertino.miranda@oracle.com>
14365
14366 * doc/sourcebuild.texi (const_volatile_readonly_section): Document
14367 new check_effective_target function.
14368
14369 2023-04-03 Li Xu <xuli1@eswincomputing.com>
14370
14371 * config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
14372 (vfloat32m8_t): Likewise
14373
14374 2023-04-03 liuhongt <hongtao.liu@intel.com>
14375
14376 * doc/md.texi: Document signbitm2.
14377
14378 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
14379 kito-cheng <kito.cheng@sifive.com>
14380
14381 * config/riscv/vector.md: Fix RA constraint.
14382
14383 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
14384
14385 * config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
14386 * config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
14387 * config/riscv/vector.md: Fix scalar move bug.
14388
14389 2023-04-01 Jakub Jelinek <jakub@redhat.com>
14390
14391 * range-op-float.cc (foperator_equal::fold_range): If at least
14392 one of the op ranges is not singleton and neither is NaN and all
14393 4 bounds are zero, return [1, 1].
14394 (foperator_not_equal::fold_range): In the same case return [0, 0].
14395
14396 2023-04-01 Jakub Jelinek <jakub@redhat.com>
14397
14398 * range-op-float.cc (foperator_equal::fold_range): Perform the
14399 non-singleton handling regardless of maybe_isnan (op1, op2).
14400 (foperator_not_equal::fold_range): Likewise.
14401 (foperator_lt::fold_range, foperator_le::fold_range,
14402 foperator_gt::fold_range, foperator_ge::fold_range): Perform the
14403 real_* comparison check which results in range_false (type)
14404 even if maybe_isnan (op1, op2). Simplify.
14405 (foperator_ltgt): New class.
14406 (fop_ltgt): New variable.
14407 (floating_op_table::floating_op_table): Handle LTGT_EXPR using
14408 fop_ltgt.
14409
14410 2023-04-01 Jakub Jelinek <jakub@redhat.com>
14411
14412 PR target/109254
14413 * builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
14414 returns VOIDmode, handle it like if the register isn't used for
14415 passing arguments at all.
14416 (apply_result_size): If targetm.calls.get_raw_result_mode returns
14417 VOIDmode, handle it like if the register isn't used for returning
14418 results at all.
14419 * target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
14420 means to return VOIDmode.
14421 * doc/tm.texi: Regenerated.
14422 * config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
14423 TARGET_SVE for P0_REGNUM.
14424 (aarch64_function_arg_regno_p): Also return true for p0-p3.
14425 (aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
14426
14427 2023-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
14428
14429 * lra-constraints.cc: (combine_reload_insn): New function.
14430
14431 2023-03-31 Jakub Jelinek <jakub@redhat.com>
14432
14433 PR tree-optimization/91645
14434 * range-op-float.cc (foperator_unordered_lt::fold_range,
14435 foperator_unordered_le::fold_range,
14436 foperator_unordered_gt::fold_range,
14437 foperator_unordered_ge::fold_range,
14438 foperator_unordered_equal::fold_range): Call the ordered
14439 fold_range on ranges with cleared NaNs.
14440 * value-query.cc (range_query::get_tree_range): Handle also
14441 COMPARISON_CLASS_P trees.
14442
14443 2023-03-31 Kito Cheng <kito.cheng@sifive.com>
14444 Andrew Pinski <pinskia@gmail.com>
14445
14446 PR target/109328
14447 * config/riscv/t-riscv: Add missing dependencies.
14448
14449 2023-03-31 liuhongt <hongtao.liu@intel.com>
14450
14451 * config/i386/i386.cc (inline_memory_move_cost): Return 100
14452 for MASK_REGS when MODE_SIZE > 8.
14453
14454 2023-03-31 liuhongt <hongtao.liu@intel.com>
14455
14456 PR target/85048
14457 * config/i386/i386-builtin.def (BDESC): Adjust icode name from
14458 ufloat/ufix to floatuns/fixuns.
14459 * config/i386/i386-expand.cc
14460 (ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
14461 * config/i386/sse.md
14462 (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
14463 Renamed to ..
14464 (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
14465 (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
14466 Renamed to ..
14467 (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
14468 .. this.
14469 (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
14470 Renamed to ..
14471 (fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
14472 (ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
14473 (floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
14474 (ufloatv2siv2df2<mask_name>): Renamed to ..
14475 (<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
14476 (ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
14477 Renamed to ..
14478 (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
14479 .. this.
14480 (ufix_notruncv2dfv2si2): Renamed to ..
14481 (fixuns_notruncv2dfv2si2):.. this.
14482 (ufix_notruncv2dfv2si2_mask): Renamed to ..
14483 (fixuns_notruncv2dfv2si2_mask): .. this.
14484 (*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
14485 (*fixuns_notruncv2dfv2si2_mask_1): .. this.
14486 (ufix_truncv2dfv2si2): Renamed to ..
14487 (*fixuns_truncv2dfv2si2): .. this.
14488 (ufix_truncv2dfv2si2_mask): Renamed to ..
14489 (fixuns_truncv2dfv2si2_mask): .. this.
14490 (*ufix_truncv2dfv2si2_mask_1): Renamed to ..
14491 (*fixuns_truncv2dfv2si2_mask_1): .. this.
14492 (ufix_truncv4dfv4si2<mask_name>): Renamed to ..
14493 (fixuns_truncv4dfv4si2<mask_name>): .. this.
14494 (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
14495 Renamed to ..
14496 (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
14497 .. this.
14498 (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
14499 (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
14500 .. this.
14501
14502 2023-03-30 Andrew MacLeod <amacleod@redhat.com>
14503
14504 PR tree-optimization/109154
14505 * gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
14506 * gimple-range-gori.h (may_recompute_p): Add depth param.
14507 * params.opt (ranger-recompute-depth): New param.
14508
14509 2023-03-30 Jason Merrill <jason@redhat.com>
14510
14511 PR c++/107897
14512 PR c++/108887
14513 * cgraph.h: Move reset() from cgraph_node to symtab_node.
14514 * cgraphunit.cc (symtab_node::reset): Adjust. Also call
14515 remove_from_same_comdat_group.
14516
14517 2023-03-30 Richard Biener <rguenther@suse.de>
14518
14519 PR tree-optimization/107561
14520 * gimple-ssa-warn-access.cc (get_size_range): Add flags
14521 argument and pass it on.
14522 (check_access): When querying for the size range pass
14523 SR_ALLOW_ZERO when the known destination size is zero.
14524
14525 2023-03-30 Richard Biener <rguenther@suse.de>
14526
14527 PR tree-optimization/109342
14528 * tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
14529 overload for edge. When that edge is a backedge use
14530 dominated_by_p directly.
14531
14532 2023-03-30 liuhongt <hongtao.liu@intel.com>
14533
14534 * config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
14535 vpblendd instead of vpblendw for V4SI under avx2.
14536
14537 2023-03-29 Hans-Peter Nilsson <hp@axis.com>
14538
14539 * config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
14540 for many quick operands, for register-sized modes.
14541
14542 2023-03-29 Jiawei <jiawei@iscas.ac.cn>
14543
14544 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
14545 New check.
14546
14547 2023-03-29 Martin Liska <mliska@suse.cz>
14548
14549 PR bootstrap/109310
14550 * configure.ac: Emit a warning for deprecated option
14551 --enable-link-mutex.
14552 * configure: Regenerate.
14553
14554 2023-03-29 Richard Biener <rguenther@suse.de>
14555
14556 PR tree-optimization/109331
14557 * tree-ssa-forwprop.cc (pass_forwprop::execute): When we
14558 discover a taken edge make sure to cleanup the CFG.
14559
14560 2023-03-29 Richard Biener <rguenther@suse.de>
14561
14562 PR tree-optimization/109327
14563 * tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
14564 already removed stmts when draining to_remove.
14565
14566 2023-03-29 Richard Biener <rguenther@suse.de>
14567
14568 PR ipa/106124
14569 * dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
14570 so we can re-create the DIE for the type if required.
14571
14572 2023-03-29 Jakub Jelinek <jakub@redhat.com>
14573 Richard Biener <rguenther@suse.de>
14574
14575 PR tree-optimization/109301
14576 * tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
14577 properties_provided from PROP_gimple_opt_math to 0.
14578 (pass_data_expand_powcabs): Change properties_provided from 0 to
14579 PROP_gimple_opt_math.
14580
14581 2023-03-29 Richard Biener <rguenther@suse.de>
14582
14583 PR tree-optimization/109154
14584 * tree-if-conv.cc (gen_phi_arg_condition): Handle single
14585 inverted condition specially by inverting at the caller.
14586 (gen_phi_arg_condition): Swap COND_EXPR arms if requested.
14587
14588 2023-03-28 David Malcolm <dmalcolm@redhat.com>
14589
14590 PR c/107002
14591 * diagnostic-show-locus.cc (column_range::column_range): Factor
14592 out assertion conditional into...
14593 (column_range::valid_p): ...this new function.
14594 (line_corrections::add_hint): Don't attempt to consolidate hints
14595 if it would lead to invalid column_range instances.
14596
14597 2023-03-28 Kito Cheng <kito.cheng@sifive.com>
14598
14599 PR target/109312
14600 * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
14601 (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
14602 minor refactor.
14603
14604 2023-03-28 Alexander Monakov <amonakov@ispras.ru>
14605
14606 PR rtl-optimization/109187
14607 * haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
14608 subtraction in three-way comparison.
14609
14610 2023-03-28 Andrew MacLeod <amacleod@redhat.com>
14611
14612 PR tree-optimization/109265
14613 PR tree-optimization/109274
14614 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
14615 not create a relation record is op1 and op2 are the same symbol.
14616 (gori_compute::compute_operand1_range): Pass op1 == op2 to the
14617 handler for this stmt, but create a new record only if this statement
14618 generates a relation based on the ranges.
14619 (gori_compute::compute_operand2_range): Ditto.
14620 * value-relation.h (value_relation::set_relation): Always create the
14621 record that is requested.
14622
14623 2023-03-28 Richard Biener <rguenther@suse.de>
14624
14625 PR tree-optimization/107087
14626 * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
14627 executable regions to avoid useless work and to better
14628 propagate degenerate PHIs.
14629
14630 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
14631
14632 * config/i386/x-mingw32-utf8: update comments.
14633
14634 2023-03-28 Richard Sandiford <richard.sandiford@arm.com>
14635
14636 PR target/109072
14637 * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
14638 * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
14639 variable.
14640 * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
14641 New function.
14642 (aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
14643 after inlining. Record which decls are loaded from. Fix handling
14644 of vops for loads and stores.
14645 * config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
14646 (aarch64_accesses_vector_load_decl_p): Likewise.
14647 (aarch64_vector_costs::m_stores_to_vector_load_decl): New member
14648 variable.
14649 (aarch64_vector_costs::add_stmt_cost): If the function has a vld1
14650 that loads from a decl, treat vector stores to those decls as
14651 zero cost.
14652 (aarch64_vector_costs::finish_cost): ...and in that case,
14653 if the vector code does nothing more than a store, give the
14654 prologue a zero cost as well.
14655
14656 2023-03-28 Richard Biener <rguenther@suse.de>
14657
14658 PR bootstrap/84402
14659 PR tree-optimization/108129
14660 * genmatch.cc (lower_for): For (match ...) delay
14661 substituting into the match operator if possible.
14662 (dt_operand::gen_gimple_expr): For user_id look at the
14663 first substitute for determining how to access operands.
14664 (dt_operand::gen_generic_expr): Likewise.
14665 (dt_node::gen_kids): Properly sort user_ids according
14666 to their substitutes.
14667 (dt_node::gen_kids_1): Code-generate user_id matching.
14668
14669 2023-03-28 Jakub Jelinek <jakub@redhat.com>
14670 Jonathan Wakely <jwakely@redhat.com>
14671
14672 * gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
14673 Use subcommand rather than sub-command in function comments.
14674
14675 2023-03-28 Jakub Jelinek <jakub@redhat.com>
14676
14677 PR tree-optimization/109154
14678 * value-range.h (frange::flush_denormals_to_zero): Make it public
14679 rather than private.
14680 * value-range.cc (frange::set): Don't call flush_denormals_to_zero
14681 here.
14682 * range-op-float.cc (range_operator_float::fold_range): Call
14683 flush_denormals_to_zero.
14684
14685 2023-03-28 Jakub Jelinek <jakub@redhat.com>
14686
14687 PR middle-end/106190
14688 * sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
14689 of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
14690
14691 2023-03-28 Jakub Jelinek <jakub@redhat.com>
14692
14693 * range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
14694 as 4th argument to set to avoid clear_nan and union_ calls.
14695
14696 2023-03-28 Jakub Jelinek <jakub@redhat.com>
14697
14698 PR target/109276
14699 * config/i386/i386.cc (assign_386_stack_local): For DImode
14700 with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
14701 align 32 rather than 0 to assign_stack_local.
14702
14703 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
14704
14705 PR target/109140
14706 * config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
14707 on operand #3 to get the final condition code. Use std::swap.
14708 * config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
14709 (fucmp<gcond:code>8<P:mode>_vis): Move around.
14710 (fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
14711 (vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
14712
14713 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
14714
14715 * doc/gm2.texi: Add missing Next, Previous and Top fields to most
14716 top-level sections.
14717
14718 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
14719
14720 * config.host: Pull in i386/x-mingw32-utf8 Makefile
14721 fragment and reference utf8rc-mingw32.o explicitly
14722 for mingw hosts.
14723 * config/i386/sym-mingw32.cc: prevent name mangling of
14724 stub symbol.
14725 * config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
14726 depend on manifest file explicitly.
14727
14728 2023-03-28 Richard Biener <rguenther@suse.de>
14729
14730 Revert:
14731 2023-03-27 Richard Biener <rguenther@suse.de>
14732
14733 PR rtl-optimization/109237
14734 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
14735
14736 2023-03-28 Richard Biener <rguenther@suse.de>
14737
14738 * common.opt (gdwarf): Remove Negative(gdwarf-).
14739
14740 2023-03-28 Richard Biener <rguenther@suse.de>
14741
14742 * common.opt (gdwarf): Add RejectNegative.
14743 (gdwarf-): Likewise.
14744 (ggdb): Likewise.
14745 (gvms): Likewise.
14746
14747 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
14748
14749 * config/cris/constraints.md ("T"): Correct to
14750 define_memory_constraint.
14751
14752 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
14753
14754 * config/cris/cris.md (BW2): New mode-iterator.
14755 (lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
14756 peephole2s.
14757
14758 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
14759
14760 * config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
14761 for possible eliminable compares.
14762
14763 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
14764
14765 * config/cris/constraints.md ("R"): Remove unused constraint.
14766
14767 2023-03-27 Jonathan Wakely <jwakely@redhat.com>
14768
14769 PR gcov-profile/109297
14770 * gcov-tool.cc (merge_usage): Fix "subcomand" typo.
14771 (merge_stream_usage): Likewise.
14772 (overlap_usage): Likewise.
14773
14774 2023-03-27 Christoph Müllner <christoph.muellner@vrull.eu>
14775
14776 PR target/109296
14777 * config/riscv/thead.md: Add missing mode specifiers.
14778
14779 2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
14780 Jiangning Liu <jiangning.liu@amperecomputing.com>
14781 Manolis Tsamis <manolis.tsamis@vrull.eu>
14782
14783 * config/aarch64/aarch64.cc: Update vector costs for ampere1.
14784
14785 2023-03-27 Richard Biener <rguenther@suse.de>
14786
14787 PR rtl-optimization/109237
14788 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
14789
14790 2023-03-27 Richard Biener <rguenther@suse.de>
14791
14792 PR lto/109263
14793 * lto-wrapper.cc (run_gcc): Parse alternate debug options
14794 as well, they always enable debug.
14795
14796 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
14797
14798 PR target/109167
14799 * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
14800 from ...
14801 (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
14802
14803 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
14804
14805 PR target/109082
14806 * config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
14807 than zero when calling vec_sld.
14808 (_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
14809 zero when calling vec_sld.
14810 (_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
14811 than zero when calling vec_sld.
14812
14813 2023-03-27 Sandra Loosemore <sandra@codesourcery.com>
14814
14815 * doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
14816 OMP_TASKLOOP, and OMP_LOOP with OMP_FOR. Document how collapsed
14817 loops are represented and which fields are vectors. Add
14818 documentation for OMP_FOR_PRE_BODY field. Document internal
14819 form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
14820 * tree.def (OMP_FOR): Make documentation consistent with the
14821 Texinfo manual, to fill some gaps and correct errors.
14822
14823 2023-03-26 Andreas Schwab <schwab@linux-m68k.org>
14824
14825 PR target/106282
14826 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
14827 * config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
14828 (handle_move_double): Call it before handle_movsi.
14829 * config/m68k/m68k-protos.h: Declare it.
14830
14831 2023-03-26 Jakub Jelinek <jakub@redhat.com>
14832
14833 PR tree-optimization/109230
14834 * match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
14835
14836 2023-03-26 Jakub Jelinek <jakub@redhat.com>
14837
14838 PR ipa/105685
14839 * predict.cc (compute_function_frequency): Don't call
14840 warn_function_cold if function already has cold attribute.
14841
14842 2023-03-26 Gerald Pfeifer <gerald@pfeifer.com>
14843
14844 * doc/install.texi: Remove anachronistic note
14845 related to languages built and separate source tarballs.
14846
14847 2023-03-25 David Malcolm <dmalcolm@redhat.com>
14848
14849 PR analyzer/109098
14850 * diagnostic-format-sarif.cc (read_until_eof): Delete.
14851 (maybe_read_file): Delete.
14852 (sarif_builder::maybe_make_artifact_content_object): Use
14853 get_source_file_content rather than maybe_read_file.
14854 Reject it if it's not valid UTF-8.
14855 * input.cc (file_cache_slot::get_full_file_content): New.
14856 (get_source_file_content): New.
14857 (selftest::check_cpp_valid_utf8_p): New.
14858 (selftest::test_cpp_valid_utf8_p): New.
14859 (selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
14860 * input.h (get_source_file_content): New prototype.
14861
14862 2023-03-24 David Malcolm <dmalcolm@redhat.com>
14863
14864 * doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
14865 debugging options.
14866 (Special Functions for Debugging the Analyzer): Convert to a
14867 table, and rewrite in places.
14868 (Other Debugging Techniques): Add notes on how to compare two
14869 different exploded graphs.
14870
14871 2023-03-24 David Malcolm <dmalcolm@redhat.com>
14872
14873 PR other/109163
14874 * json.cc: Update comments to indicate that we now preserve
14875 insertion order of keys within objects.
14876 (object::print): Traverse keys in insertion order.
14877 (object::set): Preserve insertion order of keys.
14878 (selftest::test_writing_objects): Add an additional key to verify
14879 that we preserve insertion order.
14880 * json.h (object::m_keys): New field.
14881
14882 2023-03-24 Andrew MacLeod <amacleod@redhat.com>
14883
14884 PR tree-optimization/109238
14885 * gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
14886 predecessors which this block dominates.
14887
14888 2023-03-24 Richard Biener <rguenther@suse.de>
14889
14890 PR tree-optimization/106912
14891 * tree-profile.cc (tree_profiling): Update stmts only when
14892 profiling or testing coverage. Make sure to update calls
14893 fntype, stripping 'const' there.
14894
14895 2023-03-24 Jakub Jelinek <jakub@redhat.com>
14896
14897 PR middle-end/109258
14898 * builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
14899 if target == const0_rtx.
14900
14901 2023-03-24 Alexandre Oliva <oliva@adacore.com>
14902
14903 * doc/sourcebuild.texi (weak_undefined, posix_memalign):
14904 Document options and effective targets.
14905
14906 2023-03-24 Costas Argyris <costas.argyris@gmail.com>
14907
14908 * config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
14909 optional.
14910
14911 2023-03-23 Pat Haugen <pthaugen@linux.ibm.com>
14912
14913 * config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
14914 non-earlyclobber alternative.
14915
14916 2023-03-23 Andrew Pinski <apinski@marvell.com>
14917
14918 PR c/84900
14919 * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
14920 as a lvalue.
14921
14922 2023-03-23 Richard Biener <rguenther@suse.de>
14923
14924 PR tree-optimization/107569
14925 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
14926 Do not push SSA names with zero uses as available leader.
14927 (process_bb): Likewise.
14928
14929 2023-03-23 Richard Biener <rguenther@suse.de>
14930
14931 PR tree-optimization/109262
14932 * tree-ssa-forwprop.cc (pass_forwprop::execute): When
14933 combining a piecewise complex load avoid touching loads
14934 that throw internally. Use fun, not cfun throughout.
14935
14936 2023-03-23 Jakub Jelinek <jakub@redhat.com>
14937
14938 * value-range.cc (irange::irange_union, irange::intersect): Fix
14939 comment spelling bugs.
14940 * gimple-range-trace.cc (range_tracer::do_header): Likewise.
14941 * gimple-range-trace.h: Likewise.
14942 * gimple-range-edge.cc: Likewise.
14943 (gimple_outgoing_range_stmt_p,
14944 gimple_outgoing_range::switch_edge_range,
14945 gimple_outgoing_range::edge_range_p): Likewise.
14946 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
14947 gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
14948 assume_query::assume_query, assume_query::calculate_phi): Likewise.
14949 * gimple-range-edge.h: Likewise.
14950 * value-range.h (Value_Range::set, Value_Range::lower_bound,
14951 Value_Range::upper_bound, frange::set_undefined): Likewise.
14952 * gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
14953 gori_compute): Likewise.
14954 * gimple-range-fold.h (fold_using_range): Likewise.
14955 * gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
14956 Likewise.
14957 * gimple-range-gori.cc (range_def_chain::in_chain_p,
14958 range_def_chain::dump, gori_map::calculate_gori,
14959 gori_compute::compute_operand_range_switch,
14960 gori_compute::logical_combine, gori_compute::refine_using_relation,
14961 gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
14962 Likewise.
14963 * gimple-range.h: Likewise.
14964 (enable_ranger): Likewise.
14965 * range-op.h (empty_range_varying): Likewise.
14966 * value-query.h (value_query): Likewise.
14967 * gimple-range-cache.cc (block_range_cache::set_bb_range,
14968 block_range_cache::dump, ssa_global_cache::clear_global_range,
14969 temporal_cache::temporal_value, temporal_cache::current_p,
14970 ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
14971 ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
14972 Likewise.
14973 * gimple-range-fold.cc (fur_edge::get_phi_operand,
14974 fur_stmt::get_operand, gimple_range_adjustment,
14975 fold_using_range::range_of_phi,
14976 fold_using_range::relation_fold_and_or): Likewise.
14977 * value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
14978 * value-query.cc (range_query::value_of_expr,
14979 range_query::value_on_edge, range_query::query_relation): Likewise.
14980 * tree-vrp.cc (remove_unreachable::remove_and_update_globals,
14981 intersect_range_with_nonzero_bits): Likewise.
14982 * gimple-range-infer.cc (gimple_infer_range::check_assume_func,
14983 exit_range): Likewise.
14984 * value-relation.h: Likewise.
14985 (equiv_oracle, relation_trio::relation_trio, value_relation,
14986 value_relation::value_relation, pe_min): Likewise.
14987 * range-op-float.cc (range_operator_float::rv_fold,
14988 frange_arithmetic, foperator_unordered_equal::op1_range,
14989 foperator_div::rv_fold): Likewise.
14990 * gimple-range-op.cc (cfn_clz::fold_range): Likewise.
14991 * value-relation.cc (equiv_oracle::query_relation,
14992 equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
14993 value_relation::apply_transitive, relation_chain_head::find_relation,
14994 dom_oracle::query_relation, dom_oracle::find_relation_block,
14995 dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
14996 * range-op.cc (range_operator::wi_fold_in_parts_equiv,
14997 create_possibly_reversed_range, adjust_op1_for_overflow,
14998 operator_mult::wi_fold, operator_exact_divide::op1_range,
14999 operator_cast::lhs_op1_relation, operator_cast::fold_pair,
15000 operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
15001 range_op_lshift_tests): Likewise.
15002
15003 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
15004
15005 * config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
15006 (move_callee_saved_registers): Detect the bug condition early.
15007
15008 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
15009
15010 * config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
15011 * config/gcn/gcn-valu.md (V_1REG_ALT): New.
15012 (V_2REG_ALT): New.
15013 (vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
15014 (vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
15015 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
15016 * config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
15017 * config/gcn/predicates.md (ascending_zero_int_parallel): New.
15018
15019 2023-03-23 Jakub Jelinek <jakub@redhat.com>
15020
15021 PR tree-optimization/109176
15022 * tree-vect-generic.cc (expand_vector_condition): If a has
15023 vector boolean type and is a comparison, also check if both
15024 the comparison and VEC_COND_EXPR could be successfully expanded
15025 individually.
15026
15027 2023-03-23 Pan Li <pan2.li@intel.com>
15028 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15029
15030 PR target/108654
15031 PR target/108185
15032 * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
15033 for vector mask modes.
15034 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
15035 * config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
15036
15037 2023-03-23 Songhe Zhu <zhusonghe@eswincomputing.com>
15038
15039 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
15040
15041 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15042
15043 PR target/109244
15044 * config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
15045 (emit_vlmax_op): Ditto.
15046 * config/riscv/riscv-v.cc (get_sew): New function.
15047 (emit_vlmax_vsetvl): Adapt function.
15048 (emit_pred_op): Ditto.
15049 (emit_vlmax_op): Ditto.
15050 (emit_nonvlmax_op): Ditto.
15051 (legitimize_move): Fix LRA ICE.
15052 (gen_no_side_effects_vsetvl_rtx): Adapt function.
15053 * config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
15054 (@mov<VB:mode><P:mode>_lra): Ditto.
15055 (*mov<V_FRACT:mode><P:mode>_lra): Ditto.
15056 (*mov<VB:mode><P:mode>_lra): Ditto.
15057
15058 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15059
15060 PR target/109228
15061 * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
15062 __riscv_vlenb support.
15063 (BASE): Ditto.
15064 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15065 * config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
15066 * config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
15067 (SHAPE): Ditto.
15068 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
15069 * config/riscv/riscv-vector-builtins.cc: Ditto.
15070
15071 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15072 kito-cheng <kito.cheng@sifive.com>
15073
15074 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
15075 (pass_vsetvl::compute_local_backward_infos): Fix bugs.
15076 (pass_vsetvl::need_vsetvl): Fix bugs.
15077 (pass_vsetvl::backward_demand_fusion): Fix bugs.
15078 (pass_vsetvl::demand_fusion): Fix bugs.
15079 (eliminate_insn): Fix bugs.
15080 (insert_vsetvl): Ditto.
15081 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
15082 * config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
15083 * config/riscv/vector.md: Ditto.
15084
15085 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15086 kito-cheng <kito.cheng@sifive.com>
15087
15088 * config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
15089 * config/riscv/vector-iterators.md (nmsac): Ditto.
15090 (nmsub): Ditto.
15091 (msac): Ditto.
15092 (msub): Ditto.
15093 (nmadd): Ditto.
15094 (nmacc): Ditto.
15095 * config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
15096 (@pred_mul_plus<mode>): Ditto.
15097 (*pred_madd<mode>): Ditto.
15098 (*pred_macc<mode>): Ditto.
15099 (*pred_mul_plus<mode>): Ditto.
15100 (@pred_mul_plus<mode>_scalar): Ditto.
15101 (*pred_madd<mode>_scalar): Ditto.
15102 (*pred_macc<mode>_scalar): Ditto.
15103 (*pred_mul_plus<mode>_scalar): Ditto.
15104 (*pred_madd<mode>_extended_scalar): Ditto.
15105 (*pred_macc<mode>_extended_scalar): Ditto.
15106 (*pred_mul_plus<mode>_extended_scalar): Ditto.
15107 (@pred_minus_mul<mode>): Ditto.
15108 (*pred_<madd_nmsub><mode>): Ditto.
15109 (*pred_nmsub<mode>): Ditto.
15110 (*pred_<macc_nmsac><mode>): Ditto.
15111 (*pred_nmsac<mode>): Ditto.
15112 (*pred_mul_<optab><mode>): Ditto.
15113 (*pred_minus_mul<mode>): Ditto.
15114 (@pred_mul_<optab><mode>_scalar): Ditto.
15115 (@pred_minus_mul<mode>_scalar): Ditto.
15116 (*pred_<madd_nmsub><mode>_scalar): Ditto.
15117 (*pred_nmsub<mode>_scalar): Ditto.
15118 (*pred_<macc_nmsac><mode>_scalar): Ditto.
15119 (*pred_nmsac<mode>_scalar): Ditto.
15120 (*pred_mul_<optab><mode>_scalar): Ditto.
15121 (*pred_minus_mul<mode>_scalar): Ditto.
15122 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
15123 (*pred_nmsub<mode>_extended_scalar): Ditto.
15124 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
15125 (*pred_nmsac<mode>_extended_scalar): Ditto.
15126 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
15127 (*pred_minus_mul<mode>_extended_scalar): Ditto.
15128 (*pred_<madd_msub><mode>): Ditto.
15129 (*pred_<macc_msac><mode>): Ditto.
15130 (*pred_<madd_msub><mode>_scalar): Ditto.
15131 (*pred_<macc_msac><mode>_scalar): Ditto.
15132 (@pred_neg_mul_<optab><mode>): Ditto.
15133 (@pred_mul_neg_<optab><mode>): Ditto.
15134 (*pred_<nmadd_msub><mode>): Ditto.
15135 (*pred_<nmsub_nmadd><mode>): Ditto.
15136 (*pred_<nmacc_msac><mode>): Ditto.
15137 (*pred_<nmsac_nmacc><mode>): Ditto.
15138 (*pred_neg_mul_<optab><mode>): Ditto.
15139 (*pred_mul_neg_<optab><mode>): Ditto.
15140 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
15141 (@pred_mul_neg_<optab><mode>_scalar): Ditto.
15142 (*pred_<nmadd_msub><mode>_scalar): Ditto.
15143 (*pred_<nmsub_nmadd><mode>_scalar): Ditto.
15144 (*pred_<nmacc_msac><mode>_scalar): Ditto.
15145 (*pred_<nmsac_nmacc><mode>_scalar): Ditto.
15146 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
15147 (*pred_mul_neg_<optab><mode>_scalar): Ditto.
15148 (@pred_widen_neg_mul_<optab><mode>): Ditto.
15149 (@pred_widen_mul_neg_<optab><mode>): Ditto.
15150 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
15151 (@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
15152
15153 2023-03-23 liuhongt <hongtao.liu@intel.com>
15154
15155 * builtins.cc (builtin_memset_read_str): Replace
15156 targetm.gen_memset_scratch_rtx with gen_reg_rtx.
15157 (builtin_memset_gen_str): Ditto.
15158 * config/i386/i386-expand.cc
15159 (ix86_convert_const_wide_int_to_broadcast): Replace
15160 ix86_gen_scratch_sse_rtx with gen_reg_rtx.
15161 (ix86_expand_vector_move): Ditto.
15162 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
15163 Removed.
15164 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
15165 (TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
15166 * doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
15167 * doc/tm.texi.in: Ditto.
15168 * target.def: Ditto.
15169
15170 2023-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
15171
15172 * lra.cc (lra): Do not repeat inheritance and live range splitting
15173 when asm error is found.
15174
15175 2023-03-22 Andrew Jenner <andrew@codesourcery.com>
15176
15177 * config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
15178 (gcn_expand_dpp_distribute_even_insn)
15179 (gcn_expand_dpp_distribute_odd_insn): Declare.
15180 * config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
15181 (@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
15182 (cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
15183 (cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
15184 (fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
15185 (fms<mode>4_negop2): New patterns.
15186 * config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
15187 (gcn_expand_dpp_distribute_even_insn)
15188 (gcn_expand_dpp_distribute_odd_insn): New functions.
15189 * config/gcn/gcn.md: Add entries to unspec enum.
15190
15191 2023-03-22 Aldy Hernandez <aldyh@redhat.com>
15192
15193 PR tree-optimization/109008
15194 * value-range.cc (frange::set): Add nan_state argument.
15195 * value-range.h (class nan_state): New.
15196 (frange::get_nan_state): New.
15197
15198 2023-03-22 Martin Liska <mliska@suse.cz>
15199
15200 * configure: Regenerate.
15201
15202 2023-03-21 Joseph Myers <joseph@codesourcery.com>
15203
15204 * stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
15205 to variants.
15206
15207 2023-03-21 Andrew MacLeod <amacleod@redhat.com>
15208
15209 PR tree-optimization/109192
15210 * gimple-range-gori.cc (gori_compute::compute_operand_range):
15211 Terminate gori calculations if a relation is not relevant.
15212 * value-relation.h (value_relation::set_relation): Allow
15213 equality between op1 and op2 if they are the same.
15214
15215 2023-03-21 Richard Biener <rguenther@suse.de>
15216
15217 PR tree-optimization/109219
15218 * tree-vect-loop.cc (vectorizable_reduction): Check
15219 slp_node, not STMT_SLP_TYPE.
15220 * tree-vect-stmts.cc (vectorizable_condition): Likewise.
15221 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
15222 Remove assertion on STMT_SLP_TYPE.
15223
15224 2023-03-21 Jakub Jelinek <jakub@redhat.com>
15225
15226 PR tree-optimization/109215
15227 * tree.h (enum special_array_member): Adjust comments for int_0
15228 and trail_0.
15229 * tree.cc (component_ref_sam_type): Clear zero_elts if memtype
15230 has zero sized element type and the array has variable number of
15231 elements or constant one or more elements.
15232 (component_ref_size): Adjust comments, formatting fix.
15233
15234 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
15235
15236 * configure.ac: Add check for the Texinfo 6.8
15237 CONTENTS_OUTPUT_LOCATION customization variable and set it if
15238 supported.
15239 * configure: Regenerate.
15240 * Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable. Set by
15241 configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
15242 CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
15243 ($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
15244
15245 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
15246
15247 * doc/extend.texi: Associate use_hazard_barrier_return index
15248 entry with its attribute.
15249 * doc/invoke.texi: Associate -fcanon-prefix-map index entry with
15250 its attribute
15251
15252 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
15253
15254 * doc/implement-c.texi: Remove usage of @gol.
15255 * doc/invoke.texi: Ditto.
15256 * doc/sourcebuild.texi: Ditto.
15257 * doc/include/gcc-common.texi: Remove @gol. In new Makeinfo and
15258 texinfo.tex versions, the bug it was working around appears to
15259 be gone.
15260
15261 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
15262
15263 * doc/include/texinfo.tex: Update to 2023-01-17.19.
15264
15265 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
15266
15267 * doc/include/gcc-common.texi: Add @defbuiltin{,x} and
15268 @enddefbuiltin for defining built-in functions.
15269 * doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
15270 places where it should be used.
15271
15272 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
15273
15274 * doc/extend.texi (Formatted Output Function Checking): New
15275 subsection for grouping together printf et al.
15276 (Exception handling) Fix missing @ sign before copyright
15277 header, which lead to the copyright line leaking into
15278 '(gcc)Exception handling'.
15279 * doc/gcc.texi: Set document language to en_US.
15280 (@copying): Wrap front cover texts in quotations, move in manual
15281 description text.
15282
15283 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
15284
15285 * doc/gcc.texi: Add the Indices appendix, to make texinfo
15286 generate nice indices overview page.
15287
15288 2023-03-21 Richard Biener <rguenther@suse.de>
15289
15290 PR tree-optimization/109170
15291 * gimple-range-op.cc (cfn_pass_through_arg1): New.
15292 (gimple_range_op_handler::maybe_builtin_call): Handle
15293 __builtin_expect via cfn_pass_through_arg1.
15294
15295 2023-03-20 Michael Meissner <meissner@linux.ibm.com>
15296
15297 PR target/109067
15298 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
15299 (init_float128_ieee): Delete code to switch complex multiply and divide
15300 for long double.
15301 (complex_multiply_builtin_code): New helper function.
15302 (complex_divide_builtin_code): Likewise.
15303 (rs6000_mangle_decl_assembler_name): Add support for mangling the name
15304 of complex 128-bit multiply and divide built-in functions.
15305
15306 2023-03-20 Peter Bergner <bergner@linux.ibm.com>
15307
15308 PR target/109178
15309 * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
15310
15311 2023-03-19 Jonny Grant <jg@jguk.org>
15312
15313 * doc/extend.texi (Common Function Attributes) <nonnull>:
15314 Correct typo.
15315
15316 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
15317
15318 PR rtl-optimization/109179
15319 * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
15320 insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
15321
15322 2023-03-17 Jakub Jelinek <jakub@redhat.com>
15323
15324 PR target/105554
15325 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
15326 to false.
15327 * function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
15328 to allocate_struct_function instead of false.
15329 * tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
15330 nor DECL_RESULT here. Pass true as ABSTRACT_P to
15331 push_struct_function. Call targetm.target_option.relayout_function
15332 after it.
15333 (tree_function_versioning): Formatting fix.
15334
15335 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
15336
15337 * lra-constraints.cc: Include hooks.h.
15338 (combine_reload_insn): New function.
15339 (lra_constraints): Call it.
15340
15341 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15342 kito-cheng <kito.cheng@sifive.com>
15343
15344 * config/riscv/riscv-v.cc (legitimize_move): Allow undef value
15345 as legitimate value.
15346 * config/riscv/riscv-vector-builtins.cc
15347 (function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
15348 (function_expander::use_widen_ternop_insn): Ditto.
15349 * config/riscv/vector.md (@vundefined<mode>): New pattern.
15350 (pred_mul_<optab><mode>_undef_merge): Remove.
15351 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
15352 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
15353 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
15354 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
15355
15356 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15357
15358 PR target/109092
15359 * config/riscv/riscv.md: Fix subreg bug.
15360
15361 2023-03-17 Jakub Jelinek <jakub@redhat.com>
15362
15363 PR middle-end/108685
15364 * omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
15365 use its loop_father rather than BODY_BB's loop_father.
15366 (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
15367 If broken_loop with ordered > collapse and at least one of those
15368 extra loops aren't guaranteed to have at least one iteration, change
15369 l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
15370 loop_father to l0_bb's loop_father rather than l1_bb's.
15371
15372 2023-03-17 Jakub Jelinek <jakub@redhat.com>
15373
15374 PR plugins/108634
15375 * gdbhooks.py (TreePrinter.to_string): Wrap
15376 gdb.parse_and_eval('tree_code_type') in a try block, parse
15377 and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
15378 raises exception. Update comments for the recent tree_code_type
15379 changes.
15380
15381 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
15382
15383 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
15384 issues. Add more line breaks to example so it doesn't overflow
15385 the margins.
15386
15387 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
15388
15389 * doc/extend.texi (Common Function Attributes) <access>: Fix bad
15390 line breaks in examples.
15391 <malloc>: Fix bad line breaks in running text, also copy-edit
15392 for consistency.
15393 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
15394 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
15395 @gol.
15396 (C++ Dialect Options) <-fcontracts>: Add line break in example.
15397 <-Wctad-maybe-unsupported>: Likewise.
15398 <-Winvalid-constexpr>: Likewise.
15399 (Warning Options) <-Wdangling-pointer>: Likewise.
15400 <-Winterference-size>: Likewise.
15401 <-Wvla-parameter>: Likewise.
15402 (Static Analyzer Options): Fix bad line breaks in running text,
15403 plus add some missing markup.
15404 (Optimize Options) <openacc-privatization>: Fix more bad line
15405 breaks in running text.
15406
15407 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
15408
15409 * config/i386/i386-expand.cc (expand_vec_perm_pblendv):
15410 Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
15411 (expand_vec_perm_2perm_pblendv): Ditto.
15412
15413 2023-03-16 Martin Liska <mliska@suse.cz>
15414
15415 PR middle-end/106133
15416 * gcc.cc (driver_handle_option): Use x_main_input_basename
15417 if x_dump_base_name is null.
15418 * opts.cc (common_handle_option): Likewise.
15419
15420 2023-03-16 Richard Biener <rguenther@suse.de>
15421
15422 PR tree-optimization/109123
15423 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
15424 Do not emit -Wuse-after-free late.
15425 (pass_waccess::check_call): Always check call pointer uses.
15426
15427 2023-03-16 Richard Biener <rguenther@suse.de>
15428
15429 PR tree-optimization/109141
15430 * tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
15431 * tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
15432 out from ...
15433 (renumber_gimple_stmt_uids): ... here and
15434 (renumber_gimple_stmt_uids_in_blocks): ... here.
15435 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
15436 Use renumber_gimple_stmt_uids_in_block to also assign UIDs
15437 to PHIs.
15438 (pass_waccess::check_pointer_uses): Process all PHIs.
15439
15440 2023-03-15 David Malcolm <dmalcolm@redhat.com>
15441
15442 PR analyzer/109097
15443 * diagnostic-format-sarif.cc (class sarif_invocation): New.
15444 (class sarif_ice_notification): New.
15445 (sarif_builder::m_invocation_obj): New field.
15446 (sarif_invocation::add_notification_for_ice): New.
15447 (sarif_invocation::prepare_to_flush): New.
15448 (sarif_ice_notification::sarif_ice_notification): New.
15449 (sarif_builder::sarif_builder): Add m_invocation_obj.
15450 (sarif_builder::end_diagnostic): Special-case DK_ICE and
15451 DK_ICE_NOBT.
15452 (sarif_builder::flush_to_file): Call prepare_to_flush on
15453 m_invocation_obj. Pass the latter to make_top_level_object.
15454 (sarif_builder::make_result_object): Move creation of "locations"
15455 array to...
15456 (sarif_builder::make_locations_arr): ...this new function.
15457 (sarif_builder::make_top_level_object): Add "invocation_obj" param
15458 and pass it to make_run_object.
15459 (sarif_builder::make_run_object): Add "invocation_obj" param and
15460 use it.
15461 (sarif_ice_handler): New callback.
15462 (diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
15463 * diagnostic.cc (diagnostic_initialize): Initialize new field
15464 "ice_handler_cb".
15465 (diagnostic_action_after_output): If it is set, make one attempt
15466 to call ice_handler_cb.
15467 * diagnostic.h (diagnostic_context::ice_handler_cb): New field.
15468
15469 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
15470
15471 * config/i386/i386-expand.cc (expand_vec_perm_blend):
15472 Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
15473 and fix V2HImode handling.
15474 (expand_vec_perm_1): Try to emit BLEND instruction
15475 before MOVSS/MOVSD.
15476 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
15477
15478 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
15479
15480 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
15481
15482 2023-03-15 Richard Biener <rguenther@suse.de>
15483
15484 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
15485 Do not diagnose clobbers.
15486
15487 2023-03-15 Richard Biener <rguenther@suse.de>
15488
15489 PR tree-optimization/109139
15490 * tree-ssa-live.cc (remove_unused_locals): Look at the
15491 base address for unused decls on the LHS of .DEFERRED_INIT.
15492
15493 2023-03-15 Xi Ruoyao <xry111@xry111.site>
15494
15495 PR other/109086
15496 * builtins.cc (inline_string_cmp): Force the character
15497 difference into "result" pseudo-register, instead of reassign
15498 the pseudo-register.
15499
15500 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15501
15502 * config.gcc: Add thead.o to RISC-V extra_objs.
15503 * config/riscv/peephole.md: Add mempair peephole passes.
15504 * config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
15505 prototype.
15506 (th_mempair_operands_p): Likewise.
15507 (th_mempair_order_operands): Likewise.
15508 (th_mempair_prepare_save_restore_operands): Likewise.
15509 (th_mempair_save_restore_regs): Likewise.
15510 (th_mempair_output_move): Likewise.
15511 * config/riscv/riscv.cc (riscv_save_reg): Move code.
15512 (riscv_restore_reg): Move code.
15513 (riscv_for_each_saved_reg): Add code to emit mempair insns.
15514 * config/riscv/t-riscv: Add thead.cc.
15515 * config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
15516 New insn.
15517 (*th_mempair_store_<GPR:mode>2): Likewise.
15518 (*th_mempair_load_extendsidi2): Likewise.
15519 (*th_mempair_load_zero_extendsidi2): Likewise.
15520 * config/riscv/thead.cc: New file.
15521
15522 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15523
15524 * config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
15525 New constraint "th_f_fmv".
15526 (TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
15527 "th_r_fmv".
15528 * config/riscv/riscv.cc (riscv_split_doubleword_move):
15529 Add split code for XTheadFmv.
15530 (riscv_secondary_memory_needed): XTheadFmv does not need
15531 secondary memory.
15532 * config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
15533 UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
15534 movdf_hardfloat_rv32.
15535 * config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
15536 (th_fmv_x_w): New INSN.
15537 (th_fmv_x_hw): New INSN.
15538
15539 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15540
15541 * config/riscv/riscv.md (maddhisi4): New expand.
15542 (msubhisi4): New expand.
15543 * config/riscv/thead.md (*th_mula<mode>): New pattern.
15544 (*th_mulawsi): New pattern.
15545 (*th_mulawsi2): New pattern.
15546 (*th_maddhisi4): New pattern.
15547 (*th_sextw_maddhisi4): New pattern.
15548 (*th_muls<mode>): New pattern.
15549 (*th_mulswsi): New pattern.
15550 (*th_mulswsi2): New pattern.
15551 (*th_msubhisi4): New pattern.
15552 (*th_sextw_msubhisi4): New pattern.
15553
15554 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15555
15556 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
15557 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
15558 Add prototype.
15559 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
15560 XTheadCondMov.
15561 (riscv_expand_conditional_move): New function.
15562 (riscv_expand_conditional_move_onesided): New function.
15563 * config/riscv/riscv.md: Add support for XTheadCondMov.
15564 * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
15565 support for XTheadCondMov.
15566 (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
15567
15568 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15569
15570 * config/riscv/bitmanip.md (clzdi2): New expand.
15571 (clzsi2): New expand.
15572 (ctz<mode>2): New expand.
15573 (popcount<mode>2): New expand.
15574 (<bitmanip_optab>si2): Rename INSN.
15575 (*<bitmanip_optab>si2): Hide INSN name.
15576 (<bitmanip_optab>di2): Rename INSN.
15577 (*<bitmanip_optab>di2): Hide INSN name.
15578 (rotrsi3): Remove INSN.
15579 (rotr<mode>3): Add expand.
15580 (*rotrsi3): New INSN.
15581 (rotrdi3): Rename INSN.
15582 (*rotrdi3): Hide INSN name.
15583 (rotrsi3_sext): Rename INSN.
15584 (*rotrsi3_sext): Hide INSN name.
15585 (bswap<mode>2): Remove INSN.
15586 (bswapdi2): Add expand.
15587 (bswapsi2): Add expand.
15588 (*bswap<mode>2): Hide INSN name.
15589 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
15590 extraction.
15591 * config/riscv/riscv.md (extv<mode>): New expand.
15592 (extzv<mode>): New expand.
15593 * config/riscv/thead.md (*th_srri<mode>3): New INSN.
15594 (*th_ext<mode>): New INSN.
15595 (*th_extu<mode>): New INSN.
15596 (*th_clz<mode>2): New INSN.
15597 (*th_rev<mode>2): New INSN.
15598
15599 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15600
15601 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
15602 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
15603
15604 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15605
15606 * config/riscv/riscv.md: Include thead.md
15607 * config/riscv/thead.md: New file.
15608
15609 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15610
15611 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
15612
15613 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
15614
15615 * common/config/riscv/riscv-common.cc: Add xthead* extensions.
15616 * config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
15617 (MASK_XTHEADBB): New.
15618 (MASK_XTHEADBS): New.
15619 (MASK_XTHEADCMO): New.
15620 (MASK_XTHEADCONDMOV): New.
15621 (MASK_XTHEADFMEMIDX): New.
15622 (MASK_XTHEADFMV): New.
15623 (MASK_XTHEADINT): New.
15624 (MASK_XTHEADMAC): New.
15625 (MASK_XTHEADMEMIDX): New.
15626 (MASK_XTHEADMEMPAIR): New.
15627 (MASK_XTHEADSYNC): New.
15628 (TARGET_XTHEADBA): New.
15629 (TARGET_XTHEADBB): New.
15630 (TARGET_XTHEADBS): New.
15631 (TARGET_XTHEADCMO): New.
15632 (TARGET_XTHEADCONDMOV): New.
15633 (TARGET_XTHEADFMEMIDX): New.
15634 (TARGET_XTHEADFMV): New.
15635 (TARGET_XTHEADINT): New.
15636 (TARGET_XTHEADMAC): New.
15637 (TARGET_XTHEADMEMIDX): New.
15638 (TARGET_XTHEADMEMPAIR): new.
15639 (TARGET_XTHEADSYNC): New.
15640 * config/riscv/riscv.opt: Add riscv_xthead_subext.
15641
15642 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
15643
15644 PR target/109117
15645 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
15646 __builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
15647 __builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
15648
15649 2023-03-14 Jakub Jelinek <jakub@redhat.com>
15650
15651 PR target/109109
15652 * config/i386/i386-expand.cc (split_double_concat): Fix splitting
15653 when lo is equal to dhi and hi is a MEM which uses dlo register.
15654
15655 2023-03-14 Martin Jambor <mjambor@suse.cz>
15656
15657 PR ipa/107925
15658 * ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
15659 global0 instead of zeroing when it does not have as many counts as
15660 it should.
15661
15662 2023-03-14 Martin Jambor <mjambor@suse.cz>
15663
15664 PR ipa/107925
15665 * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
15666 ipa count, remove assert, lenient_count_portion_handling, dump
15667 also orig_node_count.
15668
15669 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
15670
15671 * config/i386/i386-expand.cc (expand_vec_perm_movs):
15672 Handle V2SImode for TARGET_MMX_WITH_SSE.
15673 * config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
15674 using V2FI mode iterator to handle both V2SI and V2SF modes.
15675
15676 2023-03-14 Sam James <sam@gentoo.org>
15677
15678 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
15679 including <sstream> earlier.
15680 * system.h: Add INCLUDE_SSTREAM.
15681
15682 2023-03-14 Richard Biener <rguenther@suse.de>
15683
15684 * tree-ssa-live.cc (remove_unused_locals): Do not treat
15685 the .DEFERRED_INIT of a variable as use, instead remove
15686 that if it is the only use.
15687
15688 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
15689
15690 PR rtl-optimization/107762
15691 * expr.cc (emit_group_store): Revert latest change.
15692
15693 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
15694
15695 PR tree-optimization/109005
15696 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
15697 aggregate type check.
15698
15699 2023-03-14 Jakub Jelinek <jakub@redhat.com>
15700
15701 PR tree-optimization/109115
15702 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
15703 r.upper_bound () on r.undefined_p () range.
15704
15705 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
15706
15707 PR tree-optimization/106896
15708 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
15709 implementatoin with probability_in; avoid some asserts.
15710
15711 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
15712
15713 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
15714
15715 2023-03-13 Sean Bright <sean@seanbright.com>
15716
15717 * doc/invoke.texi (Warning Options): Remove errant 'See'
15718 before @xref.
15719
15720 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15721
15722 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
15723 REG_OK_FOR_BASE_P): Remove.
15724
15725 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15726
15727 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
15728 (=vd,vd,vr,vr): Ditto.
15729 * config/riscv/vector.md: Ditto.
15730
15731 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15732
15733 * config/riscv/riscv-vector-builtins.cc
15734 (function_expander::use_compare_insn): Add operand predicate check.
15735
15736 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15737
15738 * config/riscv/vector.md: Fine tune RA constraints.
15739
15740 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
15741
15742 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
15743 hsaco assemble/link.
15744
15745 2023-03-13 Richard Biener <rguenther@suse.de>
15746
15747 PR tree-optimization/109046
15748 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
15749 piecewise complex loads.
15750
15751 2023-03-12 Jakub Jelinek <jakub@redhat.com>
15752
15753 * config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
15754 (aarch64_bf16_ptr_type_node): Adjust comment.
15755 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
15756 bfloat16_type_node rather than aarch64_bf16_type_node.
15757 (aarch64_libgcc_floating_mode_supported_p,
15758 aarch64_scalar_mode_supported_p): Also support BFmode.
15759 (aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
15760 (aarch64_invalid_binary_op): Remove BFmode related rejections.
15761 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
15762 * config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
15763 (aarch64_int_or_fp_type): Use bfloat16_type_node rather than
15764 aarch64_bf16_type_node.
15765 (aarch64_init_simd_builtin_types): Likewise.
15766 (aarch64_init_bf16_types): Likewise. Don't create bfloat16_type_node,
15767 which is created in tree.cc already.
15768 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
15769
15770 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
15771
15772 PR middle-end/109031
15773 * tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
15774 ensure that the type of x is as wide or wider than the type of a.
15775
15776 2023-03-12 Tamar Christina <tamar.christina@arm.com>
15777
15778 PR target/108583
15779 * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
15780 (*bitmask_shift_plus<mode>): New.
15781 * config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
15782 (@aarch64_bitmask_udiv<mode>3): Remove.
15783 * config/aarch64/aarch64.cc
15784 (aarch64_vectorize_can_special_div_by_constant,
15785 TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
15786 (TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
15787 aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
15788
15789 2023-03-12 Tamar Christina <tamar.christina@arm.com>
15790
15791 PR target/108583
15792 * target.def (preferred_div_as_shifts_over_mult): New.
15793 * doc/tm.texi.in: Document it.
15794 * doc/tm.texi: Regenerate.
15795 * targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
15796 * targhooks.h (default_preferred_div_as_shifts_over_mult): New.
15797 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
15798
15799 2023-03-12 Tamar Christina <tamar.christina@arm.com>
15800 Richard Sandiford <richard.sandiford@arm.com>
15801
15802 PR target/108583
15803 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
15804 single use.
15805
15806 2023-03-12 Tamar Christina <tamar.christina@arm.com>
15807 Andrew MacLeod <amacleod@redhat.com>
15808
15809 PR target/108583
15810 * gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
15811 * gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
15812 Use it.
15813 (gimple_range_op_handler::maybe_non_standard): New.
15814 * range-op.cc (class operator_widen_plus_signed,
15815 operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
15816 operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
15817 operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
15818 operator_widen_mult_unsigned::wi_fold,
15819 ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
15820 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
15821 * range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
15822 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
15823
15824 2023-03-12 Tamar Christina <tamar.christina@arm.com>
15825
15826 PR target/108583
15827 * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
15828 * doc/tm.texi.in: Likewise.
15829 * explow.cc (round_push, align_dynamic_address): Revert previous patch.
15830 * expmed.cc (expand_divmod): Likewise.
15831 * expmed.h (expand_divmod): Likewise.
15832 * expr.cc (force_operand, expand_expr_divmod): Likewise.
15833 * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
15834 * target.def (can_special_div_by_const): Remove.
15835 * target.h: Remove tree-core.h include
15836 * targhooks.cc (default_can_special_div_by_const): Remove.
15837 * targhooks.h (default_can_special_div_by_const): Remove.
15838 * tree-vect-generic.cc (expand_vector_operation): Remove hook.
15839 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
15840 * tree-vect-stmts.cc (vectorizable_operation): Remove hook.
15841
15842 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
15843
15844 * doc/install.texi2html: Fix issue number typo in comment.
15845
15846 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
15847
15848 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
15849 bool.
15850
15851 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
15852
15853 * doc/invoke.texi (Optimize Options): Add markup to
15854 description of asan-kernel-mem-intrinsic-prefix, and clarify
15855 wording slightly.
15856
15857 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
15858
15859 * doc/extend.texi (Named Address Spaces): Drop a redundant link
15860 to AVR-LibC.
15861
15862 2023-03-11 Jeff Law <jlaw@ventanamicro>
15863
15864 PR web/88860
15865 * doc/extend.texi: Clarify Attribute Syntax a bit.
15866
15867 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
15868
15869 * doc/install.texi (Prerequisites): Suggest using newer versions
15870 of Texinfo.
15871 (Final install): Clean up and modernize discussion of how to
15872 build or obtain the GCC manuals.
15873 * doc/install.texi2html: Update comment to point to the PR instead
15874 of "makeinfo 4.7 brokenness" (it's not specific to that version).
15875
15876 2023-03-10 Jakub Jelinek <jakub@redhat.com>
15877
15878 PR target/107703
15879 * optabs.cc (expand_fix): For conversions from BFmode to integral,
15880 use shifts to convert it to SFmode first and then convert SFmode
15881 to integral.
15882
15883 2023-03-10 Andrew Pinski <apinski@marvell.com>
15884
15885 * config/aarch64/aarch64.md: Add a new define_split
15886 to help combine.
15887
15888 2023-03-10 Richard Biener <rguenther@suse.de>
15889
15890 * tree-ssa-structalias.cc (solve_graph): Immediately
15891 iterate self-cycles.
15892
15893 2023-03-10 Jakub Jelinek <jakub@redhat.com>
15894
15895 PR tree-optimization/109008
15896 * range-op-float.cc (float_widen_lhs_range): If not
15897 -frounding-math and not IBM double double format, extend lhs
15898 range just by 0.5ulp rather than 1ulp in each direction.
15899
15900 2023-03-10 Jakub Jelinek <jakub@redhat.com>
15901
15902 PR target/107998
15903 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
15904 $tmake_file.
15905 * config/i386/t-cygwin-w64: Remove.
15906
15907 2023-03-10 Jakub Jelinek <jakub@redhat.com>
15908
15909 PR plugins/108634
15910 * tree-core.h (tree_code_type, tree_code_length): For C++11 or
15911 C++14, don't declare as extern const arrays.
15912 (tree_code_type_tmpl, tree_code_length_tmpl): New types with
15913 static constexpr member arrays for C++11 or C++14.
15914 * tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
15915 tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
15916 (TREE_CODE_LENGTH): For C++11 or C++14 use
15917 tree_code_length_tmpl <0>::tree_code_length instead of
15918 tree_code_length.
15919 * tree.cc (tree_code_type, tree_code_length): Remove.
15920
15921 2023-03-10 Jakub Jelinek <jakub@redhat.com>
15922
15923 PR other/108464
15924 * common.opt (fcanon-prefix-map): New option.
15925 * opts.cc: Include file-prefix-map.h.
15926 (flag_canon_prefix_map): New variable.
15927 (common_handle_option): Handle OPT_fcanon_prefix_map.
15928 (gen_command_line_string): Ignore OPT_fcanon_prefix_map.
15929 * file-prefix-map.h (flag_canon_prefix_map): Declare.
15930 * file-prefix-map.cc (struct file_prefix_map): Add canonicalize
15931 member.
15932 (add_prefix_map): Initialize canonicalize member from
15933 flag_canon_prefix_map, and if true canonicalize it using lrealpath.
15934 (remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
15935 use lrealpath result only for map->canonicalize map entries.
15936 * lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
15937 * opts-global.cc (handle_common_deferred_options): Clear
15938 flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
15939 * doc/invoke.texi (-fcanon-prefix-map): Document.
15940 (-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
15941 see also for -fcanon-prefix-map.
15942 * doc/cppopts.texi (-fmacro-prefix-map): Likewise.
15943
15944 2023-03-10 Jakub Jelinek <jakub@redhat.com>
15945
15946 PR c/108079
15947 * cgraphunit.cc (check_global_declaration): Don't warn for unused
15948 variables which have OPT_Wunused_variable warning suppressed.
15949
15950 2023-03-10 Jakub Jelinek <jakub@redhat.com>
15951
15952 PR tree-optimization/109008
15953 * range-op-float.cc (float_widen_lhs_range): If lb is
15954 minimum representable finite number or ub is maximum
15955 representable finite number, instead of widening it to
15956 -inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
15957 Temporarily clear flag_finite_math_only when canonicalizing
15958 the widened range.
15959
15960 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15961
15962 * config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
15963 * config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
15964 (gimple_fold_builtin): Ditto.
15965 * config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
15966 (class vleff): Ditto.
15967 (BASE): Ditto.
15968 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15969 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
15970 (vleff): Ditto.
15971 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
15972 (struct fault_load_def): Ditto.
15973 (SHAPE): Ditto.
15974 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
15975 * config/riscv/riscv-vector-builtins.cc
15976 (rvv_arg_type_info::get_tree_type): Add size_ptr.
15977 (gimple_folder::gimple_folder): New class.
15978 (gimple_folder::fold): Ditto.
15979 (gimple_fold_builtin): New function.
15980 (get_read_vl_instance): Ditto.
15981 (get_read_vl_decl): Ditto.
15982 * config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
15983 * config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
15984 (get_read_vl_instance): New function.
15985 (get_read_vl_decl): Ditto.
15986 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
15987 (read_vl_insn_p): Ditto.
15988 (available_occurrence_p): Ditto.
15989 (backward_propagate_worthwhile_p): Ditto.
15990 (gen_vsetvl_pat): Adapt for vleff support.
15991 (get_forward_read_vl_insn): New function.
15992 (get_backward_fault_first_load_insn): Ditto.
15993 (source_equal_p): Adapt for vleff support.
15994 (first_ratio_invalid_for_second_sew_p): Remove.
15995 (first_ratio_invalid_for_second_lmul_p): Ditto.
15996 (first_lmul_less_than_second_lmul_p): Ditto.
15997 (first_ratio_less_than_second_ratio_p): Ditto.
15998 (support_relaxed_compatible_p): New function.
15999 (vector_insn_info::operator>): Remove.
16000 (vector_insn_info::operator>=): Refine.
16001 (vector_insn_info::parse_insn): Adapt for vleff support.
16002 (vector_insn_info::compatible_p): Ditto.
16003 (vector_insn_info::update_fault_first_load_avl): New function.
16004 (pass_vsetvl::transfer_after): Adapt for vleff support.
16005 (pass_vsetvl::demand_fusion): Ditto.
16006 (pass_vsetvl::cleanup_insns): Ditto.
16007 * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
16008 redundant condtions.
16009 * config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
16010 * config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
16011 * config/riscv/riscv.md: Adapt for vleff support.
16012 * config/riscv/t-riscv: Ditto.
16013 * config/riscv/vector-iterators.md: New iterator.
16014 * config/riscv/vector.md (read_vlsi): New pattern.
16015 (read_vldi_zero_extend): Ditto.
16016 (@pred_fault_load<mode>): Ditto.
16017
16018 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16019
16020 * config/riscv/riscv-vector-builtins.cc
16021 (function_expander::use_ternop_insn): Use maybe_gen_insn instead.
16022 (function_expander::use_widen_ternop_insn): Ditto.
16023 * optabs.cc (maybe_gen_insn): Extend nops handling.
16024
16025 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16026
16027 * config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
16028 patterns according to RVV ISA.
16029 * config/riscv/vector-iterators.md: New iterators.
16030 * config/riscv/vector.md
16031 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
16032 (@pred_indexed_<order>load<mode>_same_eew): New pattern.
16033 (@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
16034 (@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
16035 (@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
16036 (@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
16037 (@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
16038 (@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
16039 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
16040 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
16041 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
16042 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
16043 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
16044 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
16045
16046 2023-03-10 Michael Collison <collison@rivosinc.com>
16047
16048 * tree-vect-loop-manip.cc (vect_do_peeling): Use
16049 result of constant_lower_bound instead of vf for the lower
16050 bound of the epilog loop trip count.
16051
16052 2023-03-09 Tamar Christina <tamar.christina@arm.com>
16053
16054 * passes.cc (emergency_dump_function): Finish graph generation.
16055
16056 2023-03-09 Tamar Christina <tamar.christina@arm.com>
16057
16058 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
16059 and bottom bit only.
16060
16061 2023-03-09 Andrew Pinski <apinski@marvell.com>
16062
16063 PR tree-optimization/108980
16064 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
16065 Reorgnize the call to warning for not strict flexible arrays
16066 to be before the check of warned.
16067
16068 2023-03-09 Jason Merrill <jason@redhat.com>
16069
16070 * doc/extend.texi: Comment out __is_deducible docs.
16071
16072 2023-03-09 Jason Merrill <jason@redhat.com>
16073
16074 PR c++/105841
16075 * doc/extend.texi (Type Traits):: Document __is_deducible.
16076
16077 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
16078
16079 PR driver/108865
16080 * config.host: add object for x86_64-*-mingw*.
16081 * config/i386/sym-mingw32.cc: dummy file to attach
16082 symbol.
16083 * config/i386/utf8-mingw32.rc: windres resource file.
16084 * config/i386/winnt-utf8.manifest: XML manifest to
16085 enable UTF-8.
16086 * config/i386/x-mingw32: reference to x-mingw32-utf8.
16087 * config/i386/x-mingw32-utf8: Makefile fragment to
16088 embed UTF-8 manifest.
16089
16090 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
16091
16092 * lra-constraints.cc (process_alt_operands): Use operand modes for
16093 clobbered regs instead of the biggest access mode.
16094
16095 2023-03-09 Richard Biener <rguenther@suse.de>
16096
16097 PR middle-end/108995
16098 * fold-const.cc (extract_muldiv_1): Avoid folding
16099 (CST * b) / CST2 when sanitizing overflow and we rely on
16100 overflow being undefined.
16101
16102 2023-03-09 Jakub Jelinek <jakub@redhat.com>
16103 Richard Biener <rguenther@suse.de>
16104
16105 PR tree-optimization/109008
16106 * range-op-float.cc (float_widen_lhs_range): New function.
16107 (foperator_plus::op1_range, foperator_minus::op1_range,
16108 foperator_minus::op2_range, foperator_mult::op1_range,
16109 foperator_div::op1_range, foperator_div::op2_range): Use it.
16110
16111 2023-03-07 Jonathan Grant <jg@jguk.org>
16112
16113 PR sanitizer/81649
16114 * doc/invoke.texi (Instrumentation Options): Clarify
16115 LeakSanitizer behavior.
16116
16117 2023-03-07 Benson Muite <benson_muite@emailplus.org>
16118
16119 * doc/install.texi (Prerequisites): Add link to gmplib.org.
16120
16121 2023-03-07 Pan Li <pan2.li@intel.com>
16122 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16123
16124 PR target/108185
16125 PR target/108654
16126 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
16127 modes.
16128 * config/riscv/riscv.cc (riscv_v_adjust_precision): New.
16129 * config/riscv/riscv.h (riscv_v_adjust_precision): New.
16130 * genmodes.cc (adj_precision): New.
16131 (ADJUST_PRECISION): New.
16132 (emit_mode_adjustments): Handle ADJUST_PRECISION.
16133
16134 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
16135
16136 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
16137
16138 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
16139
16140 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
16141 {s|u}{max|min} in QI, HI and DI modes.
16142 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
16143 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
16144 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
16145 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
16146 saved in SGPRs.
16147
16148 2023-03-06 Richard Biener <rguenther@suse.de>
16149
16150 PR tree-optimization/109025
16151 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
16152 the inner LC PHI use is the inner loop PHI latch definition
16153 before classifying an outer PHI as double reduction.
16154
16155 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
16156
16157 PR target/108429
16158 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
16159 generic.
16160 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
16161 (X86_TUNE_USE_SCATTER): Likewise.
16162
16163 2023-03-06 Xi Ruoyao <xry111@xry111.site>
16164
16165 PR target/109000
16166 * config/loongarch/loongarch.h (FP_RETURN): Use
16167 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
16168 (UNITS_PER_FP_ARG): Likewise.
16169
16170 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16171
16172 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
16173 (pass_vsetvl::backward_demand_fusion): Ditto.
16174
16175 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
16176 SiYu Wu <siyu@isrc.iscas.ac.cn>
16177
16178 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
16179 instructions.
16180 (riscv_sm3p1_<mode>): New.
16181 (riscv_sm4ed_<mode>): New.
16182 (riscv_sm4ks_<mode>): New.
16183 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
16184 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
16185 ZKSH's built-in functions.
16186
16187 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
16188 SiYu Wu <siyu@isrc.iscas.ac.cn>
16189
16190 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
16191 (riscv_sha256sig1_<mode>): New.
16192 (riscv_sha256sum0_<mode>): New.
16193 (riscv_sha256sum1_<mode>): New.
16194 (riscv_sha512sig0h): New.
16195 (riscv_sha512sig0l): New.
16196 (riscv_sha512sig1h): New.
16197 (riscv_sha512sig1l): New.
16198 (riscv_sha512sum0r): New.
16199 (riscv_sha512sum1r): New.
16200 (riscv_sha512sig0): New.
16201 (riscv_sha512sig1): New.
16202 (riscv_sha512sum0): New.
16203 (riscv_sha512sum1): New.
16204 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
16205 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
16206 built-in functions.
16207 (DIRECT_BUILTIN): Add new.
16208
16209 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
16210 SiYu Wu <siyu@isrc.iscas.ac.cn>
16211
16212 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
16213 (DsA): New.
16214 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
16215 (riscv_aes32dsmi): New.
16216 (riscv_aes64ds): New.
16217 (riscv_aes64dsm): New.
16218 (riscv_aes64im): New.
16219 (riscv_aes64ks1i): New.
16220 (riscv_aes64ks2): New.
16221 (riscv_aes32esi): New.
16222 (riscv_aes32esmi): New.
16223 (riscv_aes64es): New.
16224 (riscv_aes64esm): New.
16225 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
16226 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
16227 ZKNE's built-in functions.
16228
16229 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
16230 SiYu Wu <siyu@isrc.iscas.ac.cn>
16231
16232 * config/riscv/bitmanip.md: Add ZBKB's instructions.
16233 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
16234 * config/riscv/riscv.md: Add new type for crypto instructions.
16235 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
16236 description file.
16237 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
16238 extension's built-in function file.
16239
16240 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
16241 SiYu Wu <siyu@isrc.iscas.ac.cn>
16242
16243 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
16244 (RISCV_FTYPE_NAME3): New.
16245 (RISCV_ATYPE_QI): New.
16246 (RISCV_ATYPE_HI): New.
16247 (RISCV_FTYPE_ATYPES2): New.
16248 (RISCV_FTYPE_ATYPES3): New.
16249 * config/riscv/riscv-ftypes.def (2): New.
16250 (3): New.
16251
16252 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
16253
16254 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
16255 use exact_log2().
16256
16257 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16258 kito-cheng <kito.cheng@sifive.com>
16259
16260 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
16261 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
16262 (riscv_register_pragmas): Add builtin function check call.
16263 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
16264 (check_builtin_call): New function.
16265 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
16266 (class vreinterpret): Ditto.
16267 (class vlmul_ext): Ditto.
16268 (class vlmul_trunc): Ditto.
16269 (class vset): Ditto.
16270 (class vget): Ditto.
16271 (BASE): Ditto.
16272 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16273 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
16274 (vluxei16): Ditto.
16275 (vluxei32): Ditto.
16276 (vluxei64): Ditto.
16277 (vloxei8): Ditto.
16278 (vloxei16): Ditto.
16279 (vloxei32): Ditto.
16280 (vloxei64): Ditto.
16281 (vsuxei8): Ditto.
16282 (vsuxei16): Ditto.
16283 (vsuxei32): Ditto.
16284 (vsuxei64): Ditto.
16285 (vsoxei8): Ditto.
16286 (vsoxei16): Ditto.
16287 (vsoxei32): Ditto.
16288 (vsoxei64): Ditto.
16289 (vundefined): Add new intrinsic.
16290 (vreinterpret): Ditto.
16291 (vlmul_ext): Ditto.
16292 (vlmul_trunc): Ditto.
16293 (vset): Ditto.
16294 (vget): Ditto.
16295 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
16296 (struct narrow_alu_def): Ditto.
16297 (struct reduc_alu_def): Ditto.
16298 (struct vundefined_def): Ditto.
16299 (struct misc_def): Ditto.
16300 (struct vset_def): Ditto.
16301 (struct vget_def): Ditto.
16302 (SHAPE): Ditto.
16303 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
16304 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
16305 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
16306 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
16307 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
16308 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
16309 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
16310 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
16311 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
16312 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
16313 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
16314 (DEF_RVV_LMUL1_OPS): Ditto.
16315 (DEF_RVV_LMUL2_OPS): Ditto.
16316 (DEF_RVV_LMUL4_OPS): Ditto.
16317 (vint16mf4_t): Ditto.
16318 (vint16mf2_t): Ditto.
16319 (vint16m1_t): Ditto.
16320 (vint16m2_t): Ditto.
16321 (vint16m4_t): Ditto.
16322 (vint16m8_t): Ditto.
16323 (vint32mf2_t): Ditto.
16324 (vint32m1_t): Ditto.
16325 (vint32m2_t): Ditto.
16326 (vint32m4_t): Ditto.
16327 (vint32m8_t): Ditto.
16328 (vint64m1_t): Ditto.
16329 (vint64m2_t): Ditto.
16330 (vint64m4_t): Ditto.
16331 (vint64m8_t): Ditto.
16332 (vuint16mf4_t): Ditto.
16333 (vuint16mf2_t): Ditto.
16334 (vuint16m1_t): Ditto.
16335 (vuint16m2_t): Ditto.
16336 (vuint16m4_t): Ditto.
16337 (vuint16m8_t): Ditto.
16338 (vuint32mf2_t): Ditto.
16339 (vuint32m1_t): Ditto.
16340 (vuint32m2_t): Ditto.
16341 (vuint32m4_t): Ditto.
16342 (vuint32m8_t): Ditto.
16343 (vuint64m1_t): Ditto.
16344 (vuint64m2_t): Ditto.
16345 (vuint64m4_t): Ditto.
16346 (vuint64m8_t): Ditto.
16347 (vint8mf4_t): Ditto.
16348 (vint8mf2_t): Ditto.
16349 (vint8m1_t): Ditto.
16350 (vint8m2_t): Ditto.
16351 (vint8m4_t): Ditto.
16352 (vint8m8_t): Ditto.
16353 (vuint8mf4_t): Ditto.
16354 (vuint8mf2_t): Ditto.
16355 (vuint8m1_t): Ditto.
16356 (vuint8m2_t): Ditto.
16357 (vuint8m4_t): Ditto.
16358 (vuint8m8_t): Ditto.
16359 (vint8mf8_t): Ditto.
16360 (vuint8mf8_t): Ditto.
16361 (vfloat32mf2_t): Ditto.
16362 (vfloat32m1_t): Ditto.
16363 (vfloat32m2_t): Ditto.
16364 (vfloat32m4_t): Ditto.
16365 (vfloat64m1_t): Ditto.
16366 (vfloat64m2_t): Ditto.
16367 (vfloat64m4_t): Ditto.
16368 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
16369 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
16370 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
16371 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
16372 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
16373 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
16374 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
16375 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
16376 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
16377 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
16378 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
16379 (DEF_RVV_LMUL1_OPS): Ditto.
16380 (DEF_RVV_LMUL2_OPS): Ditto.
16381 (DEF_RVV_LMUL4_OPS): Ditto.
16382 (DEF_RVV_TYPE_INDEX): Ditto.
16383 (required_extensions_p): Adapt for new intrinsic support/
16384 (get_required_extensions): New function.
16385 (check_required_extensions): Ditto.
16386 (unsigned_base_type_p): Remove.
16387 (rvv_arg_type_info::get_scalar_ptr_type): New function.
16388 (get_mode_for_bitsize): Remove.
16389 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
16390 (rvv_arg_type_info::get_base_vector_type): Ditto.
16391 (rvv_arg_type_info::get_function_type_index): Ditto.
16392 (DEF_RVV_BASE_TYPE): New def.
16393 (function_builder::apply_predication): New class.
16394 (function_expander::mask_mode): Ditto.
16395 (function_checker::function_checker): Ditto.
16396 (function_checker::report_non_ice): Ditto.
16397 (function_checker::report_out_of_range): Ditto.
16398 (function_checker::require_immediate): Ditto.
16399 (function_checker::require_immediate_range): Ditto.
16400 (function_checker::check): Ditto.
16401 (check_builtin_call): Ditto.
16402 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
16403 (DEF_RVV_BASE_TYPE): Ditto.
16404 (DEF_RVV_TYPE_INDEX): Ditto.
16405 (vbool64_t): Ditto.
16406 (vbool32_t): Ditto.
16407 (vbool16_t): Ditto.
16408 (vbool8_t): Ditto.
16409 (vbool4_t): Ditto.
16410 (vbool2_t): Ditto.
16411 (vbool1_t): Ditto.
16412 (vuint8mf8_t): Ditto.
16413 (vuint8mf4_t): Ditto.
16414 (vuint8mf2_t): Ditto.
16415 (vuint8m1_t): Ditto.
16416 (vuint8m2_t): Ditto.
16417 (vint8m4_t): Ditto.
16418 (vuint8m4_t): Ditto.
16419 (vint8m8_t): Ditto.
16420 (vuint8m8_t): Ditto.
16421 (vint16mf4_t): Ditto.
16422 (vuint16mf2_t): Ditto.
16423 (vuint16m1_t): Ditto.
16424 (vuint16m2_t): Ditto.
16425 (vuint16m4_t): Ditto.
16426 (vuint16m8_t): Ditto.
16427 (vint32mf2_t): Ditto.
16428 (vuint32m1_t): Ditto.
16429 (vuint32m2_t): Ditto.
16430 (vuint32m4_t): Ditto.
16431 (vuint32m8_t): Ditto.
16432 (vuint64m1_t): Ditto.
16433 (vuint64m2_t): Ditto.
16434 (vuint64m4_t): Ditto.
16435 (vuint64m8_t): Ditto.
16436 (vfloat32mf2_t): Ditto.
16437 (vfloat32m1_t): Ditto.
16438 (vfloat32m2_t): Ditto.
16439 (vfloat32m4_t): Ditto.
16440 (vfloat32m8_t): Ditto.
16441 (vfloat64m1_t): Ditto.
16442 (vfloat64m4_t): Ditto.
16443 (vector): Move it def.
16444 (scalar): Ditto.
16445 (mask): Ditto.
16446 (signed_vector): Ditto.
16447 (unsigned_vector): Ditto.
16448 (unsigned_scalar): Ditto.
16449 (vector_ptr): Ditto.
16450 (scalar_ptr): Ditto.
16451 (scalar_const_ptr): Ditto.
16452 (void): Ditto.
16453 (size): Ditto.
16454 (ptrdiff): Ditto.
16455 (unsigned_long): Ditto.
16456 (long): Ditto.
16457 (eew8_index): Ditto.
16458 (eew16_index): Ditto.
16459 (eew32_index): Ditto.
16460 (eew64_index): Ditto.
16461 (shift_vector): Ditto.
16462 (double_trunc_vector): Ditto.
16463 (quad_trunc_vector): Ditto.
16464 (oct_trunc_vector): Ditto.
16465 (double_trunc_scalar): Ditto.
16466 (double_trunc_signed_vector): Ditto.
16467 (double_trunc_unsigned_vector): Ditto.
16468 (double_trunc_unsigned_scalar): Ditto.
16469 (double_trunc_float_vector): Ditto.
16470 (float_vector): Ditto.
16471 (lmul1_vector): Ditto.
16472 (widen_lmul1_vector): Ditto.
16473 (eew8_interpret): Ditto.
16474 (eew16_interpret): Ditto.
16475 (eew32_interpret): Ditto.
16476 (eew64_interpret): Ditto.
16477 (vlmul_ext_x2): Ditto.
16478 (vlmul_ext_x4): Ditto.
16479 (vlmul_ext_x8): Ditto.
16480 (vlmul_ext_x16): Ditto.
16481 (vlmul_ext_x32): Ditto.
16482 (vlmul_ext_x64): Ditto.
16483 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
16484 (struct function_type_info): New function.
16485 (struct rvv_arg_type_info): Ditto.
16486 (class function_checker): New class.
16487 (rvv_arg_type_info::get_scalar_type): New function.
16488 (rvv_arg_type_info::get_vector_type): Ditto.
16489 (function_expander::ret_mode): New function.
16490 (function_checker::arg_mode): Ditto.
16491 (function_checker::ret_mode): Ditto.
16492 * config/riscv/t-riscv: Add generator.
16493 * config/riscv/vector-iterators.md: New iterators.
16494 * config/riscv/vector.md (vundefined<mode>): New pattern.
16495 (@vundefined<mode>): Ditto.
16496 (@vreinterpret<mode>): Ditto.
16497 (@vlmul_extx2<mode>): Ditto.
16498 (@vlmul_extx4<mode>): Ditto.
16499 (@vlmul_extx8<mode>): Ditto.
16500 (@vlmul_extx16<mode>): Ditto.
16501 (@vlmul_extx32<mode>): Ditto.
16502 (@vlmul_extx64<mode>): Ditto.
16503 (*vlmul_extx2<mode>): Ditto.
16504 (*vlmul_extx4<mode>): Ditto.
16505 (*vlmul_extx8<mode>): Ditto.
16506 (*vlmul_extx16<mode>): Ditto.
16507 (*vlmul_extx32<mode>): Ditto.
16508 (*vlmul_extx64<mode>): Ditto.
16509 * config/riscv/genrvv-type-indexer.cc: New file.
16510
16511 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16512
16513 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
16514 (slide1_sew64_helper): New function.
16515 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
16516 (get_unknown_min_value): Ditto.
16517 (force_vector_length_operand): Ditto.
16518 (gen_no_side_effects_vsetvl_rtx): Ditto.
16519 (get_vl_x2_rtx): Ditto.
16520 (slide1_sew64_helper): Ditto.
16521 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
16522 (class vrgather): Ditto.
16523 (class vrgatherei16): Ditto.
16524 (class vcompress): Ditto.
16525 (BASE): Ditto.
16526 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16527 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
16528 (vslidedown): Ditto.
16529 (vslide1up): Ditto.
16530 (vslide1down): Ditto.
16531 (vfslide1up): Ditto.
16532 (vfslide1down): Ditto.
16533 (vrgather): Ditto.
16534 (vrgatherei16): Ditto.
16535 (vcompress): Ditto.
16536 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
16537 (vint8mf8_t): Ditto.
16538 (vint8mf4_t): Ditto.
16539 (vint8mf2_t): Ditto.
16540 (vint8m1_t): Ditto.
16541 (vint8m2_t): Ditto.
16542 (vint8m4_t): Ditto.
16543 (vint16mf4_t): Ditto.
16544 (vint16mf2_t): Ditto.
16545 (vint16m1_t): Ditto.
16546 (vint16m2_t): Ditto.
16547 (vint16m4_t): Ditto.
16548 (vint16m8_t): Ditto.
16549 (vint32mf2_t): Ditto.
16550 (vint32m1_t): Ditto.
16551 (vint32m2_t): Ditto.
16552 (vint32m4_t): Ditto.
16553 (vint32m8_t): Ditto.
16554 (vint64m1_t): Ditto.
16555 (vint64m2_t): Ditto.
16556 (vint64m4_t): Ditto.
16557 (vint64m8_t): Ditto.
16558 (vuint8mf8_t): Ditto.
16559 (vuint8mf4_t): Ditto.
16560 (vuint8mf2_t): Ditto.
16561 (vuint8m1_t): Ditto.
16562 (vuint8m2_t): Ditto.
16563 (vuint8m4_t): Ditto.
16564 (vuint16mf4_t): Ditto.
16565 (vuint16mf2_t): Ditto.
16566 (vuint16m1_t): Ditto.
16567 (vuint16m2_t): Ditto.
16568 (vuint16m4_t): Ditto.
16569 (vuint16m8_t): Ditto.
16570 (vuint32mf2_t): Ditto.
16571 (vuint32m1_t): Ditto.
16572 (vuint32m2_t): Ditto.
16573 (vuint32m4_t): Ditto.
16574 (vuint32m8_t): Ditto.
16575 (vuint64m1_t): Ditto.
16576 (vuint64m2_t): Ditto.
16577 (vuint64m4_t): Ditto.
16578 (vuint64m8_t): Ditto.
16579 (vfloat32mf2_t): Ditto.
16580 (vfloat32m1_t): Ditto.
16581 (vfloat32m2_t): Ditto.
16582 (vfloat32m4_t): Ditto.
16583 (vfloat32m8_t): Ditto.
16584 (vfloat64m1_t): Ditto.
16585 (vfloat64m2_t): Ditto.
16586 (vfloat64m4_t): Ditto.
16587 (vfloat64m8_t): Ditto.
16588 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
16589 * config/riscv/riscv.md: Adjust RVV instruction types.
16590 * config/riscv/vector-iterators.md (down): New iterator.
16591 (=vd,vr): New attribute.
16592 (UNSPEC_VSLIDE1UP): New unspec.
16593 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
16594 (*pred_slide<ud><mode>): Ditto.
16595 (*pred_slide<ud><mode>_extended): Ditto.
16596 (@pred_gather<mode>): Ditto.
16597 (@pred_gather<mode>_scalar): Ditto.
16598 (@pred_gatherei16<mode>): Ditto.
16599 (@pred_compress<mode>): Ditto.
16600
16601 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16602
16603 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
16604
16605 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16606
16607 * config/riscv/constraints.md (Wb1): New constraint.
16608 * config/riscv/predicates.md
16609 (vector_least_significant_set_mask_operand): New predicate.
16610 (vector_broadcast_mask_operand): Ditto.
16611 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
16612 (gen_scalar_move_mask): New function.
16613 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
16614 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
16615 (class vmv_s): Ditto.
16616 (BASE): Ditto.
16617 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16618 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
16619 (vmv_s): Ditto.
16620 (vfmv_f): Ditto.
16621 (vfmv_s): Ditto.
16622 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
16623 (SHAPE): Ditto.
16624 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
16625 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
16626 (function_expander::use_exact_insn): New function.
16627 (function_expander::use_contiguous_load_insn): New function.
16628 (function_expander::use_contiguous_store_insn): New function.
16629 (function_expander::use_ternop_insn): New function.
16630 (function_expander::use_widen_ternop_insn): New function.
16631 (function_expander::use_scalar_move_insn): New function.
16632 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
16633 * config/riscv/riscv-vector-builtins.h
16634 (function_expander::add_scalar_move_mask_operand): New class.
16635 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
16636 (scalar_move_insn_p): Ditto.
16637 (has_vsetvl_killed_avl_p): Ditto.
16638 (anticipatable_occurrence_p): Ditto.
16639 (insert_vsetvl): Ditto.
16640 (get_vl_vtype_info): Ditto.
16641 (calculate_sew): Ditto.
16642 (calculate_vlmul): Ditto.
16643 (incompatible_avl_p): Ditto.
16644 (different_sew_p): Ditto.
16645 (different_lmul_p): Ditto.
16646 (different_ratio_p): Ditto.
16647 (different_tail_policy_p): Ditto.
16648 (different_mask_policy_p): Ditto.
16649 (possible_zero_avl_p): Ditto.
16650 (first_ratio_invalid_for_second_sew_p): Ditto.
16651 (first_ratio_invalid_for_second_lmul_p): Ditto.
16652 (second_ratio_invalid_for_first_sew_p): Ditto.
16653 (second_ratio_invalid_for_first_lmul_p): Ditto.
16654 (second_sew_less_than_first_sew_p): Ditto.
16655 (first_sew_less_than_second_sew_p): Ditto.
16656 (compare_lmul): Ditto.
16657 (second_lmul_less_than_first_lmul_p): Ditto.
16658 (first_lmul_less_than_second_lmul_p): Ditto.
16659 (first_ratio_less_than_second_ratio_p): Ditto.
16660 (second_ratio_less_than_first_ratio_p): Ditto.
16661 (DEF_INCOMPATIBLE_COND): Ditto.
16662 (greatest_sew): Ditto.
16663 (first_sew): Ditto.
16664 (second_sew): Ditto.
16665 (first_vlmul): Ditto.
16666 (second_vlmul): Ditto.
16667 (first_ratio): Ditto.
16668 (second_ratio): Ditto.
16669 (vlmul_for_first_sew_second_ratio): Ditto.
16670 (ratio_for_second_sew_first_vlmul): Ditto.
16671 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
16672 (always_unavailable): Ditto.
16673 (avl_unavailable_p): Ditto.
16674 (sew_unavailable_p): Ditto.
16675 (lmul_unavailable_p): Ditto.
16676 (ge_sew_unavailable_p): Ditto.
16677 (ge_sew_lmul_unavailable_p): Ditto.
16678 (ge_sew_ratio_unavailable_p): Ditto.
16679 (DEF_UNAVAILABLE_COND): Ditto.
16680 (same_sew_lmul_demand_p): Ditto.
16681 (propagate_avl_across_demands_p): Ditto.
16682 (reg_available_p): Ditto.
16683 (avl_info::has_non_zero_avl): Ditto.
16684 (vl_vtype_info::has_non_zero_avl): Ditto.
16685 (vector_insn_info::operator>=): Refactor.
16686 (vector_insn_info::parse_insn): Adjust for scalar move.
16687 (vector_insn_info::demand_vl_vtype): Remove.
16688 (vector_insn_info::compatible_p): New function.
16689 (vector_insn_info::compatible_avl_p): Ditto.
16690 (vector_insn_info::compatible_vtype_p): Ditto.
16691 (vector_insn_info::available_p): Ditto.
16692 (vector_insn_info::merge): Ditto.
16693 (vector_insn_info::fuse_avl): Ditto.
16694 (vector_insn_info::fuse_sew_lmul): Ditto.
16695 (vector_insn_info::fuse_tail_policy): Ditto.
16696 (vector_insn_info::fuse_mask_policy): Ditto.
16697 (vector_insn_info::dump): Ditto.
16698 (vector_infos_manager::release): Ditto.
16699 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
16700 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
16701 (pass_vsetvl::hard_empty_block_p): Ditto.
16702 (pass_vsetvl::backward_demand_fusion): Ditto.
16703 (pass_vsetvl::forward_demand_fusion): Ditto.
16704 (pass_vsetvl::refine_vsetvls): Ditto.
16705 (pass_vsetvl::cleanup_vsetvls): Ditto.
16706 (pass_vsetvl::commit_vsetvls): Ditto.
16707 (pass_vsetvl::propagate_avl): Ditto.
16708 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
16709 (struct demands_pair): Ditto.
16710 (struct demands_cond): Ditto.
16711 (struct demands_fuse_rule): Ditto.
16712 * config/riscv/vector-iterators.md: New iterator.
16713 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
16714 (*pred_broadcast<mode>): Ditto.
16715 (*pred_broadcast<mode>_extended_scalar): Ditto.
16716 (@pred_extract_first<mode>): Ditto.
16717 (*pred_extract_first<mode>): Ditto.
16718 (@pred_extract_first_trunc<mode>): Ditto.
16719 * config/riscv/riscv-vsetvl.def: New file.
16720
16721 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
16722
16723 * config/riscv/bitmanip.md: allow 0 constant in max/min
16724 pattern.
16725
16726 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
16727
16728 * config/riscv/bitmanip.md: Fix wrong index in the check.
16729
16730 2023-03-04 Jakub Jelinek <jakub@redhat.com>
16731
16732 PR middle-end/109006
16733 * vec.cc (test_auto_alias): Adjust comment for removal of
16734 m_vecdata.
16735 * read-rtl-function.cc (function_reader::parse_block): Likewise.
16736 * gdbhooks.py: Likewise.
16737
16738 2023-03-04 Jakub Jelinek <jakub@redhat.com>
16739
16740 PR testsuite/108973
16741 * selftest-diagnostic.cc
16742 (test_diagnostic_context::test_diagnostic_context): Set
16743 caret_max_width to 80.
16744
16745 2023-03-03 Alexandre Oliva <oliva@adacore.com>
16746
16747 * gimple-ssa-warn-access.cc
16748 (pass_waccess::check_dangling_stores): Skip non-stores.
16749
16750 2023-03-03 Alexandre Oliva <oliva@adacore.com>
16751
16752 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
16753 after vmsr and vmrs, and lower the case of P0.
16754
16755 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
16756
16757 PR middle-end/109006
16758 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
16759
16760 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
16761
16762 PR middle-end/109006
16763 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
16764
16765 2023-03-03 Jakub Jelinek <jakub@redhat.com>
16766
16767 PR c/108986
16768 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
16769 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
16770 suppressed on stmt. For [static %E] warning, print access_nelts
16771 rather than access_size. Fix up comment wording.
16772
16773 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
16774
16775 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
16776 arch14 instead of z16.
16777
16778 2023-03-03 Anthony Green <green@moxielogic.com>
16779
16780 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
16781
16782 2023-03-03 Anthony Green <green@moxielogic.com>
16783
16784 * config/moxie/constraints.md (A, B, W): Change
16785 define_constraint to define_memory_constraint.
16786
16787 2023-03-03 Xi Ruoyao <xry111@xry111.site>
16788
16789 * toplev.cc (process_options): Fix the spelling of
16790 "-fstack-clash-protection".
16791
16792 2023-03-03 Richard Biener <rguenther@suse.de>
16793
16794 PR tree-optimization/109002
16795 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
16796 PHI-translate ANTIC_IN.
16797
16798 2023-03-03 Jakub Jelinek <jakub@redhat.com>
16799
16800 PR tree-optimization/108988
16801 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
16802 size_type_node before passing it as argument to fwrite. Formatting
16803 fixes.
16804
16805 2023-03-03 Richard Biener <rguenther@suse.de>
16806
16807 PR target/108738
16808 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
16809 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
16810 * config/i386/i386-features.h (scalar_chain::max_visits): New.
16811 (scalar_chain::build): Add bitmap parameter, return boolean.
16812 (scalar_chain::add_insn): Likewise.
16813 (scalar_chain::analyze_register_chain): Likewise.
16814 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
16815 Initialize max_visits.
16816 (scalar_chain::analyze_register_chain): When we exhaust
16817 max_visits, abort. Also abort when running into any
16818 disallowed insn.
16819 (scalar_chain::add_insn): Propagate abort.
16820 (scalar_chain::build): Likewise. When aborting amend
16821 the set of disallowed insn with the insns set.
16822 (convert_scalars_to_vector): Adjust. Do not convert aborted
16823 chains.
16824
16825 2023-03-03 Richard Biener <rguenther@suse.de>
16826
16827 PR debug/108772
16828 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
16829 generate a DIE for a function scope static.
16830
16831 2023-03-03 Alexandre Oliva <oliva@adacore.com>
16832
16833 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
16834
16835 2023-03-02 Jakub Jelinek <jakub@redhat.com>
16836
16837 PR target/108883
16838 * target.h (emit_support_tinfos_callback): New typedef.
16839 * targhooks.h (default_emit_support_tinfos): Declare.
16840 * targhooks.cc (default_emit_support_tinfos): New function.
16841 * target.def (emit_support_tinfos): New target hook.
16842 * doc/tm.texi.in (emit_support_tinfos): Document it.
16843 * doc/tm.texi: Regenerated.
16844 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
16845 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
16846
16847 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
16848
16849 * ira-costs.cc: Include print-rtl.h.
16850 (record_reg_classes, scan_one_insn): Add code to print debug info.
16851 (record_operand_costs): Find and use smaller cost for hard reg
16852 move.
16853
16854 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
16855 Paul-Antoine Arras <pa@codesourcery.com>
16856
16857 * builtins.cc (mathfn_built_in_explicit): New.
16858 * config/gcn/gcn.cc: Include case-cfn-macros.h.
16859 (mathfn_built_in_explicit): Add prototype.
16860 (gcn_vectorize_builtin_vectorized_function): New.
16861 (gcn_libc_has_function): New.
16862 (TARGET_LIBC_HAS_FUNCTION): Define.
16863 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
16864
16865 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
16866
16867 PR tree-optimization/108979
16868 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
16869 operations on invariants.
16870
16871 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
16872
16873 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
16874 * config/s390/s390.cc (s390_option_override_internal): Make
16875 partial vector usage the default from z13 on.
16876 * config/s390/vector.md (len_load_v16qi): Add.
16877 (len_store_v16qi): Add.
16878
16879 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
16880
16881 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
16882 of constant 0 offset.
16883
16884 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
16885
16886 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
16887 instead of long.
16888 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
16889
16890 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
16891
16892 * config.gcc: add -with-{no-}msa build option.
16893 * config/mips/mips.h: Likewise.
16894 * doc/install.texi: Likewise.
16895
16896 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
16897
16898 PR tree-optimization/108603
16899 * explow.cc (convert_memory_address_addr_space_1): Only wrap
16900 the result of a recursive call in a CONST if no instructions
16901 were emitted.
16902
16903 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
16904
16905 PR tree-optimization/108430
16906 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
16907 of inverted condition.
16908
16909 2023-03-02 Jakub Jelinek <jakub@redhat.com>
16910
16911 PR c++/108934
16912 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
16913 comparison copy the bytes from ptr to a temporary buffer and clearing
16914 padding bits in there.
16915
16916 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
16917
16918 PR middle-end/108545
16919 * gimplify.cc (struct tree_operand_hash_no_se): New.
16920 (omp_index_mapping_groups_1, omp_index_mapping_groups,
16921 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
16922 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
16923 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
16924 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
16925 of tree_operand_hash.
16926
16927 2023-03-01 LIU Hao <lh_mouse@126.com>
16928
16929 PR pch/14940
16930 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
16931 Remove the size limit `pch_VA_max_size`
16932
16933 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
16934
16935 PR middle-end/108546
16936 * omp-low.cc (lower_omp_target): Remove optional handling
16937 on the receiver side, i.e. inside target (data), for
16938 use_device_ptr.
16939
16940 2023-03-01 Jakub Jelinek <jakub@redhat.com>
16941
16942 PR debug/108967
16943 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
16944 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
16945
16946 2023-03-01 Richard Biener <rguenther@suse.de>
16947
16948 PR tree-optimization/108970
16949 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
16950 Check we can copy the BBs.
16951 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
16952 check.
16953 (vect_do_peeling): Streamline error handling.
16954
16955 2023-03-01 Richard Biener <rguenther@suse.de>
16956
16957 PR tree-optimization/108950
16958 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
16959 Check oprnd0 is defined in the loop.
16960 * tree-vect-loop.cc (vectorizable_reduction): Record all
16961 operands vector types, compute that of invariants and
16962 properly update their SLP nodes.
16963
16964 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
16965
16966 PR target/108240
16967 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
16968 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
16969
16970 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
16971
16972 PR middle-end/107411
16973 PR middle-end/107411
16974 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
16975 xasprintf.
16976 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
16977 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
16978
16979 2023-02-28 Jakub Jelinek <jakub@redhat.com>
16980
16981 PR sanitizer/108894
16982 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
16983 comparison rather than index > bound.
16984 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
16985 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
16986 * doc/invoke.texi (-fsanitize=bounds): Document that whether
16987 flexible array member-like arrays are instrumented or not depends
16988 on -fstrict-flex-arrays* options of strict_flex_array attributes.
16989 (-fsanitize=bounds-strict): Document that flexible array members
16990 are not instrumented.
16991
16992 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
16993
16994 PR target/108922
16995 Revert:
16996 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
16997 (fmod<mode>3): Ditto.
16998 (fpremxf4_i387): Ditto.
16999 (reminderxf3): Ditto.
17000 (reminder<mode>3): Ditto.
17001 (fprem1xf4_i387): Ditto.
17002
17003 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
17004
17005 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
17006 generating FFS with mismatched operand and result modes, by using
17007 an explicit SIGN_EXTEND/ZERO_EXTEND.
17008 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
17009 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
17010
17011 2023-02-27 Patrick Palka <ppalka@redhat.com>
17012
17013 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
17014 * lra-int.h (lra_change_class): Likewise.
17015 * recog.h (which_op_alt): Likewise.
17016 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
17017 instead of static.
17018
17019 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17020
17021 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
17022 New prototype.
17023 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
17024 New function.
17025 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
17026 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
17027
17028 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
17029
17030 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
17031 (xtensa_get_config_v3): New functions.
17032
17033 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17034
17035 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
17036
17037 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
17038
17039 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
17040 the macro to 0x1000000000.
17041
17042 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
17043
17044 PR modula2/108261
17045 * doc/gm2.texi (-fm2-pathname): New option documented.
17046 (-fm2-pathnameI): New option documented.
17047 (-fm2-prefix=): New option documented.
17048 (-fruntime-modules=): Update default module list.
17049
17050 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
17051
17052 PR target/108919
17053 * config/xtensa/xtensa-protos.h
17054 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
17055 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
17056 to xtensa_expand_call.
17057 (xtensa_expand_call): Emit the call and add a clobber expression
17058 for the static chain to it in case of windowed ABI.
17059 * config/xtensa/xtensa.md (call, call_value, sibcall)
17060 (sibcall_value): Call xtensa_expand_call and complete expansion
17061 right after that call.
17062
17063 2023-02-24 Richard Biener <rguenther@suse.de>
17064
17065 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
17066 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
17067 changing alignment of vec<T, A, vl_embed> and simplifying
17068 address.
17069 (vec<T, A, vl_embed>::address): Compute as this + 1.
17070 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
17071 vector instead of the offset of the m_vecdata member.
17072 (auto_vec<T, N>::m_data): Turn storage into
17073 uninitialized unsigned char.
17074 (auto_vec<T, N>::auto_vec): Allow allocation of one
17075 stack member. Initialize m_vec in a special way to
17076 avoid later stringop overflow diagnostics.
17077 * vec.cc (test_auto_alias): New.
17078 (vec_cc_tests): Call it.
17079
17080 2023-02-24 Richard Biener <rguenther@suse.de>
17081
17082 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
17083 take a const reference to the object, use address to
17084 access data.
17085 (vec<T, A, vl_embed>::contains): Use address to access data.
17086 (vec<T, A, vl_embed>::operator[]): Use address instead of
17087 m_vecdata to access data.
17088 (vec<T, A, vl_embed>::iterate): Likewise.
17089 (vec<T, A, vl_embed>::copy): Likewise.
17090 (vec<T, A, vl_embed>::quick_push): Likewise.
17091 (vec<T, A, vl_embed>::pop): Likewise.
17092 (vec<T, A, vl_embed>::quick_insert): Likewise.
17093 (vec<T, A, vl_embed>::ordered_remove): Likewise.
17094 (vec<T, A, vl_embed>::unordered_remove): Likewise.
17095 (vec<T, A, vl_embed>::block_remove): Likewise.
17096 (vec<T, A, vl_heap>::address): Likewise.
17097
17098 2023-02-24 Martin Liska <mliska@suse.cz>
17099
17100 PR sanitizer/108834
17101 * asan.cc (asan_add_global): Use proper TU name for normal
17102 global variables (and aux_base_name for the artificial one).
17103
17104 2023-02-24 Jakub Jelinek <jakub@redhat.com>
17105
17106 * config/i386/i386-builtin.def: Update description of BDESC
17107 and BDESC_FIRST in file comment to include mask2.
17108
17109 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17110
17111 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
17112
17113 2023-02-24 Jakub Jelinek <jakub@redhat.com>
17114
17115 PR middle-end/108854
17116 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
17117 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
17118 nodes and adjust their DECL_CONTEXT.
17119
17120 2023-02-24 Jakub Jelinek <jakub@redhat.com>
17121
17122 PR target/108881
17123 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
17124 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
17125 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
17126 __builtin_ia32_cvtne2ps2bf16_v8bf,
17127 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
17128 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
17129 __builtin_ia32_cvtneps2bf16_v8sf_mask,
17130 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
17131 __builtin_ia32_cvtneps2bf16_v4sf_mask,
17132 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
17133 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
17134 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
17135 __builtin_ia32_dpbf16ps_v4sf_mask,
17136 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
17137 OPTION_MASK_ISA_AVX512VL.
17138
17139 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
17140
17141 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
17142 Add non-compact 32-bit multilibs.
17143
17144 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
17145
17146 * config/mips/mips.md (*clo<mode>2): New pattern.
17147
17148 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
17149
17150 * config/mips/mips.h (machine_function): New variable
17151 use_hazard_barrier_return_p.
17152 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
17153 (mips_hb_return_internal): New insn pattern.
17154 * config/mips/mips.cc (mips_attribute_table): Add attribute
17155 use_hazard_barrier_return.
17156 (mips_use_hazard_barrier_return_p): New static function.
17157 (mips_function_attr_inlinable_p): Likewise.
17158 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
17159 Emit error for unsupported architecture choice.
17160 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
17161 Return false for use_hazard_barrier_return.
17162 (mips_expand_epilogue): Emit hazard barrier return.
17163 * doc/extend.texi: Document use_hazard_barrier_return.
17164
17165 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
17166
17167 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
17168 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
17169 for the gcc-internal headers.
17170
17171 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
17172
17173 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
17174 and $(POSTCOMPILE) instead of manual dependency listing.
17175 * config/xtensa/xtensa-dynconfig.c: Rename to ...
17176 * config/xtensa/xtensa-dynconfig.cc: ... this.
17177
17178 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
17179
17180 * doc/cfg.texi: Reorder index entries around @items.
17181 * doc/cpp.texi: Ditto.
17182 * doc/cppenv.texi: Ditto.
17183 * doc/cppopts.texi: Ditto.
17184 * doc/generic.texi: Ditto.
17185 * doc/install.texi: Ditto.
17186 * doc/extend.texi: Ditto.
17187 * doc/invoke.texi: Ditto.
17188 * doc/md.texi: Ditto.
17189 * doc/rtl.texi: Ditto.
17190 * doc/tm.texi.in: Ditto.
17191 * doc/trouble.texi: Ditto.
17192 * doc/tm.texi: Regenerate.
17193
17194 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17195
17196 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
17197 the occurrence of general-purpose register used only once and for
17198 transferring intermediate value.
17199
17200 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17201
17202 * config/xtensa/xtensa.cc (machine_function): Add new member
17203 'eliminated_callee_saved_bmp'.
17204 (xtensa_can_eliminate_callee_saved_reg_p): New function to
17205 determine whether the register can be eliminated or not.
17206 (xtensa_expand_prologue): Add invoking the above function and
17207 elimination the use of callee-saved register by using its stack
17208 slot through the stack pointer (or the frame pointer if needed)
17209 directly.
17210 (xtensa_expand_prologue): Modify to not emit register restoration
17211 insn from its stack slot if the register is already eliminated.
17212
17213 2023-02-23 Jakub Jelinek <jakub@redhat.com>
17214
17215 PR translation/108890
17216 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
17217 around fatal_error format strings.
17218
17219 2023-02-23 Richard Biener <rguenther@suse.de>
17220
17221 * tree-ssa-structalias.cc (handle_lhs_call): Do not
17222 re-create rhsc, only truncate it.
17223
17224 2023-02-23 Jakub Jelinek <jakub@redhat.com>
17225
17226 PR middle-end/106258
17227 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
17228 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
17229
17230 2023-02-23 Richard Biener <rguenther@suse.de>
17231
17232 * tree-if-conv.cc (tree_if_conversion): Properly manage
17233 memory of refs and the contained data references.
17234
17235 2023-02-23 Richard Biener <rguenther@suse.de>
17236
17237 PR tree-optimization/108888
17238 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
17239 calls to predicate.
17240 (predicate_statements): Only predicate calls with PLF_2.
17241
17242 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17243
17244 * config/xtensa/xtensa.md
17245 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
17246 Add missing "SI:" to PLUS RTXes.
17247
17248 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
17249
17250 PR target/108876
17251 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
17252 Emit (use (reg:SI A0_REG)) at the end in the sibling call
17253 (i.e. the same place as (return) in the normal call).
17254
17255 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
17256
17257 Revert:
17258 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
17259
17260 PR target/108876
17261 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
17262 for A0_REG.
17263 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
17264 (sibcall_value, sibcall_value_internal): Add 'use' expression
17265 for A0_REG.
17266
17267 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
17268
17269 * doc/cppdiropts.texi: Reorder @opindex commands to precede
17270 @items they relate to.
17271 * doc/cppopts.texi: Ditto.
17272 * doc/cppwarnopts.texi: Ditto.
17273 * doc/invoke.texi: Ditto.
17274 * doc/lto.texi: Ditto.
17275
17276 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
17277
17278 * internal-fn.cc (expand_MASK_CALL): New.
17279 * internal-fn.def (MASK_CALL): New.
17280 * internal-fn.h (expand_MASK_CALL): New prototype.
17281 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
17282 for mask arguments also.
17283 * tree-if-conv.cc: Include cgraph.h.
17284 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
17285 (predicate_statements): Convert functions to IFN_MASK_CALL.
17286 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
17287 IFN_MASK_CALL as a SIMD function call.
17288 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
17289 IFN_MASK_CALL as an inbranch SIMD function call.
17290 Generate the mask vector arguments.
17291
17292 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17293
17294 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
17295 (class widen_reducop): Ditto.
17296 (class freducop): Ditto.
17297 (class widen_freducop): Ditto.
17298 (BASE): Ditto.
17299 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17300 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
17301 (vredmaxu): Ditto.
17302 (vredmax): Ditto.
17303 (vredminu): Ditto.
17304 (vredmin): Ditto.
17305 (vredand): Ditto.
17306 (vredor): Ditto.
17307 (vredxor): Ditto.
17308 (vwredsum): Ditto.
17309 (vwredsumu): Ditto.
17310 (vfredusum): Ditto.
17311 (vfredosum): Ditto.
17312 (vfredmax): Ditto.
17313 (vfredmin): Ditto.
17314 (vfwredosum): Ditto.
17315 (vfwredusum): Ditto.
17316 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
17317 (SHAPE): Ditto.
17318 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
17319 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
17320 (DEF_RVV_WU_OPS): Ditto.
17321 (DEF_RVV_WF_OPS): Ditto.
17322 (vint8mf8_t): Ditto.
17323 (vint8mf4_t): Ditto.
17324 (vint8mf2_t): Ditto.
17325 (vint8m1_t): Ditto.
17326 (vint8m2_t): Ditto.
17327 (vint8m4_t): Ditto.
17328 (vint8m8_t): Ditto.
17329 (vint16mf4_t): Ditto.
17330 (vint16mf2_t): Ditto.
17331 (vint16m1_t): Ditto.
17332 (vint16m2_t): Ditto.
17333 (vint16m4_t): Ditto.
17334 (vint16m8_t): Ditto.
17335 (vint32mf2_t): Ditto.
17336 (vint32m1_t): Ditto.
17337 (vint32m2_t): Ditto.
17338 (vint32m4_t): Ditto.
17339 (vint32m8_t): Ditto.
17340 (vuint8mf8_t): Ditto.
17341 (vuint8mf4_t): Ditto.
17342 (vuint8mf2_t): Ditto.
17343 (vuint8m1_t): Ditto.
17344 (vuint8m2_t): Ditto.
17345 (vuint8m4_t): Ditto.
17346 (vuint8m8_t): Ditto.
17347 (vuint16mf4_t): Ditto.
17348 (vuint16mf2_t): Ditto.
17349 (vuint16m1_t): Ditto.
17350 (vuint16m2_t): Ditto.
17351 (vuint16m4_t): Ditto.
17352 (vuint16m8_t): Ditto.
17353 (vuint32mf2_t): Ditto.
17354 (vuint32m1_t): Ditto.
17355 (vuint32m2_t): Ditto.
17356 (vuint32m4_t): Ditto.
17357 (vuint32m8_t): Ditto.
17358 (vfloat32mf2_t): Ditto.
17359 (vfloat32m1_t): Ditto.
17360 (vfloat32m2_t): Ditto.
17361 (vfloat32m4_t): Ditto.
17362 (vfloat32m8_t): Ditto.
17363 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
17364 (DEF_RVV_WU_OPS): Ditto.
17365 (DEF_RVV_WF_OPS): Ditto.
17366 (required_extensions_p): Add reduction support.
17367 (rvv_arg_type_info::get_base_vector_type): Ditto.
17368 (rvv_arg_type_info::get_tree_type): Ditto.
17369 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
17370 * config/riscv/riscv.md: Ditto.
17371 * config/riscv/vector-iterators.md (minu): Ditto.
17372 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
17373 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
17374 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
17375 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
17376 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
17377 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
17378 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
17379
17380 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17381
17382 * config/riscv/iterators.md: New iterator.
17383 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
17384 (enum ternop_type): New enum.
17385 (class vmacc): New class.
17386 (class imac): Ditto.
17387 (class vnmsac): Ditto.
17388 (enum widen_ternop_type): New enum.
17389 (class vmadd): Ditto.
17390 (class vnmsub): Ditto.
17391 (class iwmac): Ditto.
17392 (class vwmacc): Ditto.
17393 (class vwmaccu): Ditto.
17394 (class vwmaccsu): Ditto.
17395 (class vwmaccus): Ditto.
17396 (class reverse_binop): Ditto.
17397 (class vfmacc): Ditto.
17398 (class vfnmsac): Ditto.
17399 (class vfmadd): Ditto.
17400 (class vfnmsub): Ditto.
17401 (class vfnmacc): Ditto.
17402 (class vfmsac): Ditto.
17403 (class vfnmadd): Ditto.
17404 (class vfmsub): Ditto.
17405 (class vfwmacc): Ditto.
17406 (class vfwnmacc): Ditto.
17407 (class vfwmsac): Ditto.
17408 (class vfwnmsac): Ditto.
17409 (class float_misc): Ditto.
17410 (class fcmp): Ditto.
17411 (class vfclass): Ditto.
17412 (class vfcvt_x): Ditto.
17413 (class vfcvt_rtz_x): Ditto.
17414 (class vfcvt_f): Ditto.
17415 (class vfwcvt_x): Ditto.
17416 (class vfwcvt_rtz_x): Ditto.
17417 (class vfwcvt_f): Ditto.
17418 (class vfncvt_x): Ditto.
17419 (class vfncvt_rtz_x): Ditto.
17420 (class vfncvt_f): Ditto.
17421 (class vfncvt_rod_f): Ditto.
17422 (BASE): Ditto.
17423 * config/riscv/riscv-vector-builtins-bases.h:
17424 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
17425 (vsext): Ditto.
17426 (vfadd): Ditto.
17427 (vfsub): Ditto.
17428 (vfrsub): Ditto.
17429 (vfwadd): Ditto.
17430 (vfwsub): Ditto.
17431 (vfmul): Ditto.
17432 (vfdiv): Ditto.
17433 (vfrdiv): Ditto.
17434 (vfwmul): Ditto.
17435 (vfmacc): Ditto.
17436 (vfnmsac): Ditto.
17437 (vfmadd): Ditto.
17438 (vfnmsub): Ditto.
17439 (vfnmacc): Ditto.
17440 (vfmsac): Ditto.
17441 (vfnmadd): Ditto.
17442 (vfmsub): Ditto.
17443 (vfwmacc): Ditto.
17444 (vfwnmacc): Ditto.
17445 (vfwmsac): Ditto.
17446 (vfwnmsac): Ditto.
17447 (vfsqrt): Ditto.
17448 (vfrsqrt7): Ditto.
17449 (vfrec7): Ditto.
17450 (vfmin): Ditto.
17451 (vfmax): Ditto.
17452 (vfsgnj): Ditto.
17453 (vfsgnjn): Ditto.
17454 (vfsgnjx): Ditto.
17455 (vfneg): Ditto.
17456 (vfabs): Ditto.
17457 (vmfeq): Ditto.
17458 (vmfne): Ditto.
17459 (vmflt): Ditto.
17460 (vmfle): Ditto.
17461 (vmfgt): Ditto.
17462 (vmfge): Ditto.
17463 (vfclass): Ditto.
17464 (vfmerge): Ditto.
17465 (vfmv_v): Ditto.
17466 (vfcvt_x): Ditto.
17467 (vfcvt_xu): Ditto.
17468 (vfcvt_rtz_x): Ditto.
17469 (vfcvt_rtz_xu): Ditto.
17470 (vfcvt_f): Ditto.
17471 (vfwcvt_x): Ditto.
17472 (vfwcvt_xu): Ditto.
17473 (vfwcvt_rtz_x): Ditto.
17474 (vfwcvt_rtz_xu): Ditto.
17475 (vfwcvt_f): Ditto.
17476 (vfncvt_x): Ditto.
17477 (vfncvt_xu): Ditto.
17478 (vfncvt_rtz_x): Ditto.
17479 (vfncvt_rtz_xu): Ditto.
17480 (vfncvt_f): Ditto.
17481 (vfncvt_rod_f): Ditto.
17482 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
17483 (struct move_def): Ditto.
17484 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
17485 (DEF_RVV_CONVERT_I_OPS): Ditto.
17486 (DEF_RVV_CONVERT_U_OPS): Ditto.
17487 (DEF_RVV_WCONVERT_I_OPS): Ditto.
17488 (DEF_RVV_WCONVERT_U_OPS): Ditto.
17489 (DEF_RVV_WCONVERT_F_OPS): Ditto.
17490 (vfloat64m1_t): Ditto.
17491 (vfloat64m2_t): Ditto.
17492 (vfloat64m4_t): Ditto.
17493 (vfloat64m8_t): Ditto.
17494 (vint32mf2_t): Ditto.
17495 (vint32m1_t): Ditto.
17496 (vint32m2_t): Ditto.
17497 (vint32m4_t): Ditto.
17498 (vint32m8_t): Ditto.
17499 (vint64m1_t): Ditto.
17500 (vint64m2_t): Ditto.
17501 (vint64m4_t): Ditto.
17502 (vint64m8_t): Ditto.
17503 (vuint32mf2_t): Ditto.
17504 (vuint32m1_t): Ditto.
17505 (vuint32m2_t): Ditto.
17506 (vuint32m4_t): Ditto.
17507 (vuint32m8_t): Ditto.
17508 (vuint64m1_t): Ditto.
17509 (vuint64m2_t): Ditto.
17510 (vuint64m4_t): Ditto.
17511 (vuint64m8_t): Ditto.
17512 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
17513 (DEF_RVV_CONVERT_U_OPS): Ditto.
17514 (DEF_RVV_WCONVERT_I_OPS): Ditto.
17515 (DEF_RVV_WCONVERT_U_OPS): Ditto.
17516 (DEF_RVV_WCONVERT_F_OPS): Ditto.
17517 (DEF_RVV_F_OPS): Ditto.
17518 (DEF_RVV_WEXTF_OPS): Ditto.
17519 (required_extensions_p): Adjust for floating-point support.
17520 (check_required_extensions): Ditto.
17521 (unsigned_base_type_p): Ditto.
17522 (get_mode_for_bitsize): Ditto.
17523 (rvv_arg_type_info::get_base_vector_type): Ditto.
17524 (rvv_arg_type_info::get_tree_type): Ditto.
17525 * config/riscv/riscv-vector-builtins.def (v_f): New define.
17526 (f): New define.
17527 (f_v): New define.
17528 (xu_v): New define.
17529 (f_w): New define.
17530 (xu_w): New define.
17531 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
17532 (function_expander::arg_mode): New function.
17533 * config/riscv/vector-iterators.md (sof): New iterator.
17534 (vfrecp): Ditto.
17535 (copysign): Ditto.
17536 (n): Ditto.
17537 (msac): Ditto.
17538 (msub): Ditto.
17539 (fixuns_trunc): Ditto.
17540 (floatuns): Ditto.
17541 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
17542 (@pred_<optab><mode>): Ditto.
17543 (@pred_<optab><mode>_scalar): Ditto.
17544 (@pred_<optab><mode>_reverse_scalar): Ditto.
17545 (@pred_<copysign><mode>): Ditto.
17546 (@pred_<copysign><mode>_scalar): Ditto.
17547 (@pred_mul_<optab><mode>): Ditto.
17548 (pred_mul_<optab><mode>_undef_merge): Ditto.
17549 (*pred_<madd_nmsub><mode>): Ditto.
17550 (*pred_<macc_nmsac><mode>): Ditto.
17551 (*pred_mul_<optab><mode>): Ditto.
17552 (@pred_mul_<optab><mode>_scalar): Ditto.
17553 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
17554 (*pred_<madd_nmsub><mode>_scalar): Ditto.
17555 (*pred_<macc_nmsac><mode>_scalar): Ditto.
17556 (*pred_mul_<optab><mode>_scalar): Ditto.
17557 (@pred_neg_mul_<optab><mode>): Ditto.
17558 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
17559 (*pred_<nmadd_msub><mode>): Ditto.
17560 (*pred_<nmacc_msac><mode>): Ditto.
17561 (*pred_neg_mul_<optab><mode>): Ditto.
17562 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
17563 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
17564 (*pred_<nmadd_msub><mode>_scalar): Ditto.
17565 (*pred_<nmacc_msac><mode>_scalar): Ditto.
17566 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
17567 (@pred_<misc_op><mode>): Ditto.
17568 (@pred_class<mode>): Ditto.
17569 (@pred_dual_widen_<optab><mode>): Ditto.
17570 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
17571 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
17572 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
17573 (@pred_widen_mul_<optab><mode>): Ditto.
17574 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
17575 (@pred_widen_neg_mul_<optab><mode>): Ditto.
17576 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
17577 (@pred_cmp<mode>): Ditto.
17578 (*pred_cmp<mode>): Ditto.
17579 (*pred_cmp<mode>_narrow): Ditto.
17580 (@pred_cmp<mode>_scalar): Ditto.
17581 (*pred_cmp<mode>_scalar): Ditto.
17582 (*pred_cmp<mode>_scalar_narrow): Ditto.
17583 (@pred_eqne<mode>_scalar): Ditto.
17584 (*pred_eqne<mode>_scalar): Ditto.
17585 (*pred_eqne<mode>_scalar_narrow): Ditto.
17586 (@pred_merge<mode>_scalar): Ditto.
17587 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
17588 (@pred_<fix_cvt><mode>): Ditto.
17589 (@pred_<float_cvt><mode>): Ditto.
17590 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
17591 (@pred_widen_<fix_cvt><mode>): Ditto.
17592 (@pred_widen_<float_cvt><mode>): Ditto.
17593 (@pred_extend<mode>): Ditto.
17594 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
17595 (@pred_narrow_<fix_cvt><mode>): Ditto.
17596 (@pred_narrow_<float_cvt><mode>): Ditto.
17597 (@pred_trunc<mode>): Ditto.
17598 (@pred_rod_trunc<mode>): Ditto.
17599
17600 2023-02-22 Jakub Jelinek <jakub@redhat.com>
17601
17602 PR middle-end/106258
17603 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
17604 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
17605 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
17606 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
17607
17608 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
17609
17610 * common.opt (-Wcomplain-wrong-lang): New.
17611 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
17612 * opts-common.cc (prune_options): Handle it.
17613 * opts-global.cc (complain_wrong_lang): Use it.
17614
17615 2023-02-21 David Malcolm <dmalcolm@redhat.com>
17616
17617 PR analyzer/108830
17618 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
17619
17620 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
17621
17622 PR target/108876
17623 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
17624 for A0_REG.
17625 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
17626 (sibcall_value, sibcall_value_internal): Add 'use' expression
17627 for A0_REG.
17628
17629 2023-02-21 Richard Biener <rguenther@suse.de>
17630
17631 PR tree-optimization/108691
17632 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
17633 assert about calls_setjmp not becoming true when it was false.
17634
17635 2023-02-21 Richard Biener <rguenther@suse.de>
17636
17637 PR tree-optimization/108793
17638 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
17639 Use convert operands to niter_type when computing num.
17640
17641 2023-02-21 Richard Biener <rguenther@suse.de>
17642
17643 Revert:
17644 2023-02-13 Richard Biener <rguenther@suse.de>
17645
17646 PR tree-optimization/108691
17647 * tree-cfg.cc (notice_special_calls): When the CFG is built
17648 honor gimple_call_ctrl_altering_p.
17649 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
17650 temporarily if the call is not control-altering.
17651 * calls.cc (emit_call_1): Do not add REG_SETJMP if
17652 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
17653
17654 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17655
17656 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
17657 true if register A0 (return address register) when -Og is specified.
17658
17659 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
17660
17661 * config/i386/predicates.md
17662 (general_x64constmem_operand): New predicate.
17663 * config/i386/i386.md (*cmpqi_ext<mode>_1):
17664 Use nonimm_x64constmem_operand.
17665 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
17666 (*addqi_ext<mode>_1): Ditto.
17667 (*testqi_ext<mode>_1): Ditto.
17668 (*andqi_ext<mode>_1): Ditto.
17669 (*andqi_ext<mode>_1_cc): Ditto.
17670 (*<any_or:code>qi_ext<mode>_1): Ditto.
17671 (*xorqi_ext<mode>_1_cc): Ditto.
17672
17673 2023-02-20 Jakub Jelinek <jakub2redhat.com>
17674
17675 PR target/108862
17676 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
17677 gen_umadddi4_highpart{,_le}.
17678
17679 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
17680
17681 * config/riscv/riscv.md (prefetch): Use r instead of p for the
17682 address operand.
17683 (riscv_prefetchi_<mode>): Ditto.
17684
17685 2023-02-20 Richard Biener <rguenther@suse.de>
17686
17687 PR tree-optimization/108816
17688 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
17689 versioning condition split prerequesite, assert required
17690 invariant.
17691
17692 2023-02-20 Richard Biener <rguenther@suse.de>
17693
17694 PR tree-optimization/108825
17695 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
17696 loop-local verfication only verify there's no pending SSA
17697 update.
17698
17699 2023-02-20 Richard Biener <rguenther@suse.de>
17700
17701 PR tree-optimization/108819
17702 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
17703 we have an SSA name as iv_2 as expected.
17704
17705 2023-02-18 Jakub Jelinek <jakub@redhat.com>
17706
17707 PR tree-optimization/108819
17708 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
17709
17710 2023-02-18 Jakub Jelinek <jakub@redhat.com>
17711
17712 PR target/108832
17713 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
17714 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
17715 function.
17716 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
17717 with ix86_replace_reg_with_reg.
17718
17719 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
17720
17721 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
17722
17723 2023-02-18 Xi Ruoyao <xry111@xry111.site>
17724
17725 * config.gcc (triplet_abi): Set its value based on $with_abi,
17726 instead of $target.
17727 (la_canonical_triplet): Set it after $triplet_abi is set
17728 correctly.
17729 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
17730 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
17731 "f64" suffix).
17732
17733 2023-02-18 Andrew Pinski <apinski@marvell.com>
17734
17735 * match.pd: Remove #if GIMPLE around the
17736 "1 - a" pattern
17737
17738 2023-02-18 Andrew Pinski <apinski@marvell.com>
17739
17740 * value-query.h (get_range_query): Return the global ranges
17741 for a nullptr func.
17742
17743 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
17744
17745 * doc/invoke.texi (@item -Wall): Fix typo in
17746 -Wuse-after-free.
17747
17748 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
17749
17750 PR target/108831
17751 * config/i386/predicates.md
17752 (nonimm_x64constmem_operand): New predicate.
17753 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
17754 (*subqi_ext<mode>_0): Ditto.
17755 (*andqi_ext<mode>_0): Ditto.
17756 (*<any_or:code>qi_ext<mode>_0): Ditto.
17757
17758 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
17759
17760 PR target/108805
17761 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
17762 int_outermode instead of GET_MODE (tem) to prevent
17763 VOIDmode from entering simplify_gen_subreg.
17764
17765 2023-02-17 Richard Biener <rguenther@suse.de>
17766
17767 PR tree-optimization/108821
17768 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
17769 move volatile accesses.
17770
17771 2023-02-17 Richard Biener <rguenther@suse.de>
17772
17773 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
17774 called on virtual operands.
17775 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
17776 ssa_undefined_value_p calls.
17777 (vn_phi_insert): Likewise.
17778 (set_ssa_val_to): Likewise.
17779 (visit_phi): Avoid extra work with equivalences for
17780 virtual operand PHIs.
17781
17782 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17783
17784 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
17785 class.
17786 (class mask_nlogic): Ditto.
17787 (class mask_notlogic): Ditto.
17788 (class vmmv): Ditto.
17789 (class vmclr): Ditto.
17790 (class vmset): Ditto.
17791 (class vmnot): Ditto.
17792 (class vcpop): Ditto.
17793 (class vfirst): Ditto.
17794 (class mask_misc): Ditto.
17795 (class viota): Ditto.
17796 (class vid): Ditto.
17797 (BASE): Ditto.
17798 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17799 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
17800 (vmnand): Ditto.
17801 (vmandn): Ditto.
17802 (vmxor): Ditto.
17803 (vmor): Ditto.
17804 (vmnor): Ditto.
17805 (vmorn): Ditto.
17806 (vmxnor): Ditto.
17807 (vmmv): Ditto.
17808 (vmclr): Ditto.
17809 (vmset): Ditto.
17810 (vmnot): Ditto.
17811 (vcpop): Ditto.
17812 (vfirst): Ditto.
17813 (vmsbf): Ditto.
17814 (vmsif): Ditto.
17815 (vmsof): Ditto.
17816 (viota): Ditto.
17817 (vid): Ditto.
17818 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
17819 (struct mask_alu_def): Ditto.
17820 (SHAPE): Ditto.
17821 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
17822 * config/riscv/riscv-vector-builtins.cc: Ditto.
17823 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
17824 for dest it scalar RVV intrinsics.
17825 * config/riscv/vector-iterators.md (sof): New iterator.
17826 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
17827 (@pred_<optab>not<mode>): New pattern.
17828 (@pred_popcount<VB:mode><P:mode>): New pattern.
17829 (@pred_ffs<VB:mode><P:mode>): New pattern.
17830 (@pred_<misc_op><mode>): New pattern.
17831 (@pred_iota<mode>): New pattern.
17832 (@pred_series<mode>): New pattern.
17833
17834 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17835
17836 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
17837 (vsbc): Ditto.
17838 (vmerge): Ditto.
17839 (vmv_v): Ditto.
17840 * config/riscv/riscv-vector-builtins.cc: Ditto.
17841
17842 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17843 kito-cheng <kito.cheng@sifive.com>
17844
17845 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
17846 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
17847 (sew64_scalar_helper): New function.
17848 * config/riscv/vector.md: Normalization.
17849
17850 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17851
17852 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
17853 (vsm): Ditto.
17854 (vsse): Ditto.
17855 (vsoxei64): Ditto.
17856 (vsub): Ditto.
17857 (vand): Ditto.
17858 (vor): Ditto.
17859 (vxor): Ditto.
17860 (vsll): Ditto.
17861 (vsra): Ditto.
17862 (vsrl): Ditto.
17863 (vmin): Ditto.
17864 (vmax): Ditto.
17865 (vminu): Ditto.
17866 (vmaxu): Ditto.
17867 (vmul): Ditto.
17868 (vmulh): Ditto.
17869 (vmulhu): Ditto.
17870 (vmulhsu): Ditto.
17871 (vdiv): Ditto.
17872 (vrem): Ditto.
17873 (vdivu): Ditto.
17874 (vremu): Ditto.
17875 (vnot): Ditto.
17876 (vsext): Ditto.
17877 (vzext): Ditto.
17878 (vwadd): Ditto.
17879 (vwsub): Ditto.
17880 (vwmul): Ditto.
17881 (vwmulu): Ditto.
17882 (vwmulsu): Ditto.
17883 (vwaddu): Ditto.
17884 (vwsubu): Ditto.
17885 (vsbc): Ditto.
17886 (vmsbc): Ditto.
17887 (vnsra): Ditto.
17888 (vmerge): Ditto.
17889 (vmv_v): Ditto.
17890 (vmsne): Ditto.
17891 (vmslt): Ditto.
17892 (vmsgt): Ditto.
17893 (vmsle): Ditto.
17894 (vmsge): Ditto.
17895 (vmsltu): Ditto.
17896 (vmsgtu): Ditto.
17897 (vmsleu): Ditto.
17898 (vmsgeu): Ditto.
17899 (vnmsac): Ditto.
17900 (vmadd): Ditto.
17901 (vnmsub): Ditto.
17902 (vwmacc): Ditto.
17903 (vsadd): Ditto.
17904 (vssub): Ditto.
17905 (vssubu): Ditto.
17906 (vaadd): Ditto.
17907 (vasub): Ditto.
17908 (vasubu): Ditto.
17909 (vsmul): Ditto.
17910 (vssra): Ditto.
17911 (vssrl): Ditto.
17912 (vnclip): Ditto.
17913
17914 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17915
17916 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
17917 (@pred_<optab><mode>_scalar): Ditto.
17918 (*pred_<optab><mode>_scalar): Ditto.
17919 (*pred_<optab><mode>_extended_scalar): Ditto.
17920
17921 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17922
17923 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
17924 (init_builtins): Ditto.
17925 (mangle_builtin_type): Ditto.
17926 (verify_type_context): Ditto.
17927 (handle_pragma_vector): Ditto.
17928 (builtin_decl): Ditto.
17929 (expand_builtin): Ditto.
17930 (const_vec_all_same_in_range_p): Ditto.
17931 (legitimize_move): Ditto.
17932 (emit_vlmax_op): Ditto.
17933 (emit_nonvlmax_op): Ditto.
17934 (get_vlmul): Ditto.
17935 (get_ratio): Ditto.
17936 (get_ta): Ditto.
17937 (get_ma): Ditto.
17938 (get_avl_type): Ditto.
17939 (calculate_ratio): Ditto.
17940 (enum vlmul_type): Ditto.
17941 (simm5_p): Ditto.
17942 (neg_simm5_p): Ditto.
17943 (has_vi_variant_p): Ditto.
17944
17945 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17946
17947 * config/riscv/riscv-protos.h (simm32_p): Remove.
17948 * config/riscv/riscv-v.cc (simm32_p): Ditto.
17949 * config/riscv/vector.md: Use immediate_operand
17950 instead of riscv_vector::simm32_p.
17951
17952 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
17953
17954 * doc/invoke.texi (Optimize Options): Reword the explanation
17955 getting minimal, maximal and default values of a parameter.
17956
17957 2023-02-16 Patrick Palka <ppalka@redhat.com>
17958
17959 * addresses.h: Mechanically drop 'static' from 'static inline'
17960 functions via s/^static inline/inline/g.
17961 * asan.h: Likewise.
17962 * attribs.h: Likewise.
17963 * basic-block.h: Likewise.
17964 * bitmap.h: Likewise.
17965 * cfghooks.h: Likewise.
17966 * cfgloop.h: Likewise.
17967 * cgraph.h: Likewise.
17968 * cselib.h: Likewise.
17969 * data-streamer.h: Likewise.
17970 * debug.h: Likewise.
17971 * df.h: Likewise.
17972 * diagnostic.h: Likewise.
17973 * dominance.h: Likewise.
17974 * dumpfile.h: Likewise.
17975 * emit-rtl.h: Likewise.
17976 * except.h: Likewise.
17977 * expmed.h: Likewise.
17978 * expr.h: Likewise.
17979 * fixed-value.h: Likewise.
17980 * gengtype.h: Likewise.
17981 * gimple-expr.h: Likewise.
17982 * gimple-iterator.h: Likewise.
17983 * gimple-predict.h: Likewise.
17984 * gimple-range-fold.h: Likewise.
17985 * gimple-ssa.h: Likewise.
17986 * gimple.h: Likewise.
17987 * graphite.h: Likewise.
17988 * hard-reg-set.h: Likewise.
17989 * hash-map.h: Likewise.
17990 * hash-set.h: Likewise.
17991 * hash-table.h: Likewise.
17992 * hwint.h: Likewise.
17993 * input.h: Likewise.
17994 * insn-addr.h: Likewise.
17995 * internal-fn.h: Likewise.
17996 * ipa-fnsummary.h: Likewise.
17997 * ipa-icf-gimple.h: Likewise.
17998 * ipa-inline.h: Likewise.
17999 * ipa-modref.h: Likewise.
18000 * ipa-prop.h: Likewise.
18001 * ira-int.h: Likewise.
18002 * ira.h: Likewise.
18003 * lra-int.h: Likewise.
18004 * lra.h: Likewise.
18005 * lto-streamer.h: Likewise.
18006 * memmodel.h: Likewise.
18007 * omp-general.h: Likewise.
18008 * optabs-query.h: Likewise.
18009 * optabs.h: Likewise.
18010 * plugin.h: Likewise.
18011 * pretty-print.h: Likewise.
18012 * range.h: Likewise.
18013 * read-md.h: Likewise.
18014 * recog.h: Likewise.
18015 * regs.h: Likewise.
18016 * rtl-iter.h: Likewise.
18017 * rtl.h: Likewise.
18018 * sbitmap.h: Likewise.
18019 * sched-int.h: Likewise.
18020 * sel-sched-ir.h: Likewise.
18021 * sese.h: Likewise.
18022 * sparseset.h: Likewise.
18023 * ssa-iterators.h: Likewise.
18024 * system.h: Likewise.
18025 * target-globals.h: Likewise.
18026 * target.h: Likewise.
18027 * timevar.h: Likewise.
18028 * tree-chrec.h: Likewise.
18029 * tree-data-ref.h: Likewise.
18030 * tree-iterator.h: Likewise.
18031 * tree-outof-ssa.h: Likewise.
18032 * tree-phinodes.h: Likewise.
18033 * tree-scalar-evolution.h: Likewise.
18034 * tree-sra.h: Likewise.
18035 * tree-ssa-alias.h: Likewise.
18036 * tree-ssa-live.h: Likewise.
18037 * tree-ssa-loop-manip.h: Likewise.
18038 * tree-ssa-loop.h: Likewise.
18039 * tree-ssa-operands.h: Likewise.
18040 * tree-ssa-propagate.h: Likewise.
18041 * tree-ssa-sccvn.h: Likewise.
18042 * tree-ssa.h: Likewise.
18043 * tree-ssanames.h: Likewise.
18044 * tree-streamer.h: Likewise.
18045 * tree-switch-conversion.h: Likewise.
18046 * tree-vectorizer.h: Likewise.
18047 * tree.h: Likewise.
18048 * wide-int.h: Likewise.
18049
18050 2023-02-16 Jakub Jelinek <jakub@redhat.com>
18051
18052 PR tree-optimization/108657
18053 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
18054 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
18055 is a call to internal or builtin function.
18056
18057 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
18058
18059 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
18060 using-declaration to unhide functions.
18061
18062 2023-02-16 Jakub Jelinek <jakub@redhat.com>
18063
18064 PR tree-optimization/108783
18065 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
18066 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
18067 t to curr->op. Otherwise, punt if either newop1 or newop2 are
18068 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
18069
18070 2023-02-16 Richard Biener <rguenther@suse.de>
18071
18072 PR tree-optimization/108791
18073 * tree-ssa-forwprop.cc (optimize_vector_load): Build
18074 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
18075 type.
18076
18077 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
18078
18079 PR target/90458
18080 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
18081 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
18082 (ix86_expand_prologue): Likewise.
18083
18084 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18085
18086 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
18087
18088 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
18089
18090 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
18091 int248_register_operand predicate in zero_extract sub-RTX.
18092 (*cmpqi_ext<mode>_2): Ditto.
18093 (*cmpqi_ext<mode>_3): Ditto.
18094 (*cmpqi_ext<mode>_4): Ditto.
18095 (*extzvqi_mem_rex64): Ditto.
18096 (*extzvqi): Ditto.
18097 (*insvqi_1_mem_rex64): Ditto.
18098 (@insv<mode>_1): Ditto.
18099 (*insvqi_1): Ditto.
18100 (*insvqi_2): Ditto.
18101 (*insvqi_3): Ditto.
18102 (*extendqi<SWI24:mode>_ext_1): Ditto.
18103 (*addqi_ext<mode>_1): Ditto.
18104 (*addqi_ext<mode>_2): Ditto.
18105 (*subqi_ext<mode>_2): Ditto.
18106 (*testqi_ext<mode>_1): Ditto.
18107 (*testqi_ext<mode>_2): Ditto.
18108 (*andqi_ext<mode>_1): Ditto.
18109 (*andqi_ext<mode>_1_cc): Ditto.
18110 (*andqi_ext<mode>_2): Ditto.
18111 (*<any_or:code>qi_ext<mode>_1): Ditto.
18112 (*<any_or:code>qi_ext<mode>_2): Ditto.
18113 (*xorqi_ext<mode>_1_cc): Ditto.
18114 (*negqi_ext<mode>_2): Ditto.
18115 (*ashlqi_ext<mode>_2): Ditto.
18116 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
18117
18118 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
18119
18120 * config/i386/predicates.md (int248_register_operand):
18121 Rename from extr_register_operand.
18122 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
18123 (*extzx<mode>): Ditto.
18124 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
18125 (*ashl<mode>3_mask): Ditto.
18126 (*<any_shiftrt:insn><mode>3_mask): Ditto.
18127 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
18128 (*<any_rotate:insn><mode>3_mask): Ditto.
18129 (*<btsc><mode>_mask): Ditto.
18130 (*btr<mode>_mask): Ditto.
18131 (*jcc_bt<mode>_mask_1): Ditto.
18132
18133 2023-02-15 Richard Biener <rguenther@suse.de>
18134
18135 PR middle-end/26854
18136 * df-core.cc (df_worklist_propagate_forward): Put later
18137 blocks on worklist and only earlier blocks on pending.
18138 (df_worklist_propagate_backward): Likewise.
18139 (df_worklist_dataflow_doublequeue): Change the iteration
18140 to process new blocks in the same iteration if that
18141 maintains the iteration order.
18142
18143 2023-02-15 Marek Polacek <polacek@redhat.com>
18144
18145 PR middle-end/106080
18146 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
18147 instead.
18148
18149 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18150
18151 * config/riscv/predicates.md: Refine codes.
18152 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
18153 * config/riscv/riscv-v.cc: Refine codes.
18154 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
18155 enum.
18156 (class imac): New class.
18157 (enum widen_ternop_type): New enum.
18158 (class iwmac): New class.
18159 (BASE): New class.
18160 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18161 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
18162 (vnmsac): Ditto.
18163 (vmadd): Ditto.
18164 (vnmsub): Ditto.
18165 (vwmacc): Ditto.
18166 (vwmaccu): Ditto.
18167 (vwmaccsu): Ditto.
18168 (vwmaccus): Ditto.
18169 * config/riscv/riscv-vector-builtins.cc
18170 (function_builder::apply_predication): Adjust for multiply-add support.
18171 (function_expander::add_vundef_operand): Refine codes.
18172 (function_expander::use_ternop_insn): New function.
18173 (function_expander::use_widen_ternop_insn): Ditto.
18174 * config/riscv/riscv-vector-builtins.h: New function.
18175 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
18176 (pred_mul_<optab><mode>_undef_merge): Ditto.
18177 (*pred_<madd_nmsub><mode>): Ditto.
18178 (*pred_<macc_nmsac><mode>): Ditto.
18179 (*pred_mul_<optab><mode>): Ditto.
18180 (@pred_mul_<optab><mode>_scalar): Ditto.
18181 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
18182 (*pred_<madd_nmsub><mode>_scalar): Ditto.
18183 (*pred_<macc_nmsac><mode>_scalar): Ditto.
18184 (*pred_mul_<optab><mode>_scalar): Ditto.
18185 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
18186 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
18187 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
18188 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
18189 (@pred_widen_mul_plus<su><mode>): Ditto.
18190 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
18191 (@pred_widen_mul_plussu<mode>): Ditto.
18192 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
18193 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
18194
18195 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18196
18197 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
18198 (vector_all_trues_mask_operand): New predicate.
18199 (vector_undef_operand): New predicate.
18200 (ltge_operator): New predicate.
18201 (comparison_except_ltge_operator): New predicate.
18202 (comparison_except_eqge_operator): New predicate.
18203 (ge_operator): New predicate.
18204 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
18205 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
18206 (BASE): Ditto.
18207 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18208 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
18209 (vmsne): Ditto.
18210 (vmslt): Ditto.
18211 (vmsgt): Ditto.
18212 (vmsle): Ditto.
18213 (vmsge): Ditto.
18214 (vmsltu): Ditto.
18215 (vmsgtu): Ditto.
18216 (vmsleu): Ditto.
18217 (vmsgeu): Ditto.
18218 * config/riscv/riscv-vector-builtins-shapes.cc
18219 (struct return_mask_def): Adjust for compare support.
18220 * config/riscv/riscv-vector-builtins.cc
18221 (function_expander::use_compare_insn): New function.
18222 * config/riscv/riscv-vector-builtins.h
18223 (function_expander::add_integer_operand): Ditto.
18224 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
18225 * config/riscv/riscv.md: Add vector min/max attributes.
18226 * config/riscv/vector-iterators.md (xnor): New iterator.
18227 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
18228 (*pred_cmp<mode>): Ditto.
18229 (*pred_cmp<mode>_narrow): Ditto.
18230 (@pred_ltge<mode>): Ditto.
18231 (*pred_ltge<mode>): Ditto.
18232 (*pred_ltge<mode>_narrow): Ditto.
18233 (@pred_cmp<mode>_scalar): Ditto.
18234 (*pred_cmp<mode>_scalar): Ditto.
18235 (*pred_cmp<mode>_scalar_narrow): Ditto.
18236 (@pred_eqne<mode>_scalar): Ditto.
18237 (*pred_eqne<mode>_scalar): Ditto.
18238 (*pred_eqne<mode>_scalar_narrow): Ditto.
18239 (*pred_cmp<mode>_extended_scalar): Ditto.
18240 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
18241 (*pred_eqne<mode>_extended_scalar): Ditto.
18242 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
18243 (@pred_ge<mode>_scalar): Ditto.
18244 (@pred_<optab><mode>): Ditto.
18245 (@pred_n<optab><mode>): Ditto.
18246 (@pred_<optab>n<mode>): Ditto.
18247 (@pred_not<mode>): Ditto.
18248
18249 2023-02-15 Martin Jambor <mjambor@suse.cz>
18250
18251 PR ipa/108679
18252 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
18253 creation of non-scalar replacements even if IPA-CP knows their
18254 contents.
18255
18256 2023-02-15 Jakub Jelinek <jakub@redhat.com>
18257
18258 PR target/108787
18259 PR target/103109
18260 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
18261 expander, change operand 3 to be TImode, emit maddlddi4 and
18262 umadddi4_highpart{,_le} with its low half and finally add the high
18263 half to the result.
18264
18265 2023-02-15 Martin Liska <mliska@suse.cz>
18266
18267 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
18268
18269 2023-02-15 Richard Biener <rguenther@suse.de>
18270
18271 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
18272 for with_poison and alias worklist to it.
18273 (sanitize_asan_mark_poison): Likewise.
18274
18275 2023-02-15 Richard Biener <rguenther@suse.de>
18276
18277 PR target/108738
18278 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
18279 Combine bitmap test and set.
18280 (scalar_chain::add_insn): Likewise.
18281 (scalar_chain::analyze_register_chain): Remove redundant
18282 attempt to add to queue and instead strengthen assert.
18283 Sink common attempts to mark the def dual-mode.
18284 (scalar_chain::add_to_queue): Remove redundant insn bitmap
18285 check.
18286
18287 2023-02-15 Richard Biener <rguenther@suse.de>
18288
18289 PR target/108738
18290 * config/i386/i386-features.cc (convert_scalars_to_vector):
18291 Switch candidates bitmaps to tree view before building the chains.
18292
18293 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
18294
18295 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
18296 "failure trying to reload" call.
18297
18298 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
18299
18300 * gdbinit.in (phrs): New command.
18301 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
18302 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
18303
18304 2023-02-14 David Faust <david.faust@oracle.com>
18305
18306 PR target/108790
18307 * config/bpf/constraints.md (q): New memory constraint.
18308 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
18309 (zero_extendqidi2): Likewise.
18310 (zero_extendsidi2): Likewise.
18311 (*mov<MM:mode>): Likewise.
18312
18313 2023-02-14 Andrew Pinski <apinski@marvell.com>
18314
18315 PR tree-optimization/108355
18316 PR tree-optimization/96921
18317 * match.pd: Add pattern for "1 - bool_val".
18318
18319 2023-02-14 Richard Biener <rguenther@suse.de>
18320
18321 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
18322 basic block index hashing on the availability of ->cclhs.
18323 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
18324 rely on ->cclhs availability.
18325 (vn_phi_lookup): Set ->cclhs only when we are eventually
18326 going to CSE the PHI.
18327 (vn_phi_insert): Likewise.
18328
18329 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
18330
18331 * gimplify.cc (gimplify_save_expr): Add missing guard.
18332
18333 2023-02-14 Richard Biener <rguenther@suse.de>
18334
18335 PR tree-optimization/108782
18336 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
18337 Make sure we're not vectorizing an inner loop.
18338
18339 2023-02-14 Jakub Jelinek <jakub@redhat.com>
18340
18341 PR sanitizer/108777
18342 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
18343 * asan.h (asan_memfn_rtl): Declare.
18344 * asan.cc (asan_memfn_rtls): New variable.
18345 (asan_memfn_rtl): New function.
18346 * builtins.cc (expand_builtin): If
18347 param_asan_kernel_mem_intrinsic_prefix and function is
18348 kernel-{,hw}address sanitized, emit calls to
18349 __{,hw}asan_{memcpy,memmove,memset} rather than
18350 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
18351 instead of flag_sanitize & SANITIZE_ADDRESS to check if
18352 asan_intercepted_p functions shouldn't be expanded inline.
18353
18354 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
18355
18356 PR tree-optimization/96373
18357 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
18358 operations on the loop mask. Reject partial vectors if this isn't
18359 possible.
18360
18361 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
18362
18363 PR rtl-optimization/108681
18364 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
18365 code to handle bare uses and clobbers.
18366
18367 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
18368
18369 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
18370 caller_save_p flag when clearing defined_p flag.
18371 (setup_reg_equiv): Ditto.
18372 * lra-constraints.cc (lra_constraints): Ditto.
18373
18374 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
18375
18376 PR target/108516
18377 * config/i386/predicates.md (extr_register_operand):
18378 New special predicate.
18379 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
18380 as operand 1 predicate.
18381 (*exzv<mode>): Ditto.
18382 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
18383
18384 2023-02-13 Richard Biener <rguenther@suse.de>
18385
18386 PR tree-optimization/28614
18387 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
18388 walking all edges in most cases.
18389 (vn_nary_op_insert_pieces_predicated): Avoid repeated
18390 calls to can_track_predicate_on_edge unless checking is
18391 enabled.
18392 (process_bb): Instead call it once here for each edge
18393 we register possibly multiple predicates on.
18394
18395 2023-02-13 Richard Biener <rguenther@suse.de>
18396
18397 PR tree-optimization/108691
18398 * tree-cfg.cc (notice_special_calls): When the CFG is built
18399 honor gimple_call_ctrl_altering_p.
18400 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
18401 temporarily if the call is not control-altering.
18402 * calls.cc (emit_call_1): Do not add REG_SETJMP if
18403 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
18404
18405 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
18406
18407 PR target/108102
18408 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
18409 (struct s390_sched_state): Initialise to zero.
18410 (s390_sched_variable_issue): For better debuggability also emit
18411 the current side.
18412 (s390_sched_init): Unconditionally reset scheduler state.
18413
18414 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
18415
18416 * ifcvt.h (noce_if_info::cond_inverted): New field.
18417 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
18418 values when cond_inverted is true.
18419 (noce_find_if_block): Allow the condition to be inverted when
18420 handling conditional moves.
18421
18422 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
18423
18424 * config/s390/predicates.md (execute_operation): Use
18425 constrain_operands instead of extract_constrain_insn in order to
18426 determine wheter there exists a valid alternative.
18427
18428 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
18429
18430 * common/config/arc/arc-common.cc (arc_option_optimization_table):
18431 Remove millicode from list.
18432
18433 2023-02-13 Martin Liska <mliska@suse.cz>
18434
18435 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
18436
18437 2023-02-13 Richard Biener <rguenther@suse.de>
18438
18439 PR tree-optimization/106722
18440 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
18441 whether we marked a stmt.
18442 (mark_control_dependent_edges_necessary): When
18443 mark_last_stmt_necessary didn't mark any stmt make sure
18444 to mark its control dependent edges.
18445 (propagate_necessity): Likewise.
18446
18447 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
18448
18449 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
18450 (DWARF_FRAME_REGISTERS): New.
18451 (DWARF_REG_TO_UNWIND_COLUMN): New.
18452
18453 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
18454
18455 * doc/sourcebuild.texi: Remove (broken) direct reference to
18456 "The GNU configure and build system".
18457
18458 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
18459
18460 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
18461 gen_add3_insn to gen_rtx_SET.
18462 (riscv_adjust_libcall_cfi_epilogue): Likewise.
18463
18464 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18465
18466 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
18467 (class vnclip): Ditto.
18468 (BASE): Ditto.
18469 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18470 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
18471 (vasub): Ditto.
18472 (vaaddu): Ditto.
18473 (vasubu): Ditto.
18474 (vsmul): Ditto.
18475 (vssra): Ditto.
18476 (vssrl): Ditto.
18477 (vnclipu): Ditto.
18478 (vnclip): Ditto.
18479 * config/riscv/vector-iterators.md (su): Add instruction.
18480 (aadd): Ditto.
18481 (vaalu): Ditto.
18482 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
18483 (@pred_<sat_op><mode>_scalar): Ditto.
18484 (*pred_<sat_op><mode>_scalar): Ditto.
18485 (*pred_<sat_op><mode>_extended_scalar): Ditto.
18486 (@pred_narrow_clip<v_su><mode>): Ditto.
18487 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
18488
18489 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18490
18491 * config/riscv/constraints.md (Wbr): Remove unused constraint.
18492 * config/riscv/predicates.md: Fix move operand predicate.
18493 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
18494 (class vncvt_x): Ditto.
18495 (class vmerge): Ditto.
18496 (class vmv_v): Ditto.
18497 (BASE): Ditto.
18498 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18499 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
18500 (vsrl): Ditto.
18501 (vnsrl): Ditto.
18502 (vnsra): Ditto.
18503 (vncvt_x): Ditto.
18504 (vmerge): Ditto.
18505 (vmv_v): Ditto.
18506 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
18507 (struct move_def): Ditto.
18508 (SHAPE): Ditto.
18509 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
18510 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
18511 (DEF_RVV_WEXTU_OPS): Ditto
18512 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
18513 (v_v): Ditto.
18514 (v_x): Ditto.
18515 (x_w): Ditto.
18516 (x): Ditto.
18517 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
18518 * config/riscv/vector-iterators.md (nmsac):New iterator.
18519 (nmsub): New iterator.
18520 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
18521 (@pred_merge<mode>_scalar): New pattern.
18522 (*pred_merge<mode>_scalar): New pattern.
18523 (*pred_merge<mode>_extended_scalar): New pattern.
18524 (@pred_narrow_<optab><mode>): New pattern.
18525 (@pred_narrow_<optab><mode>_scalar): New pattern.
18526 (@pred_trunc<mode>): New pattern.
18527
18528 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18529
18530 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
18531 (class vmsbc): Ditto.
18532 (BASE): Define new class.
18533 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18534 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
18535 (vmsbc): Ditto.
18536 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
18537 New class.
18538 (SHAPE): Ditto.
18539 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
18540 * config/riscv/riscv-vector-builtins.cc
18541 (function_expander::use_exact_insn): Adjust for new support
18542 * config/riscv/riscv-vector-builtins.h
18543 (function_base::has_merge_operand_p): New function.
18544 * config/riscv/vector-iterators.md: New iterator.
18545 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
18546 (@pred_msbc<mode>): Ditto.
18547 (@pred_madc<mode>_scalar): Ditto.
18548 (@pred_msbc<mode>_scalar): Ditto.
18549 (*pred_madc<mode>_scalar): Ditto.
18550 (*pred_madc<mode>_extended_scalar): Ditto.
18551 (*pred_msbc<mode>_scalar): Ditto.
18552 (*pred_msbc<mode>_extended_scalar): Ditto.
18553 (@pred_madc<mode>_overflow): Ditto.
18554 (@pred_msbc<mode>_overflow): Ditto.
18555 (@pred_madc<mode>_overflow_scalar): Ditto.
18556 (@pred_msbc<mode>_overflow_scalar): Ditto.
18557 (*pred_madc<mode>_overflow_scalar): Ditto.
18558 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
18559 (*pred_msbc<mode>_overflow_scalar): Ditto.
18560 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
18561
18562 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18563
18564 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
18565 * config/riscv/riscv-v.cc (simm32_p): Ditto.
18566 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
18567 (class vsbc): Ditto.
18568 (BASE): Ditto.
18569 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18570 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
18571 (vsbc): Ditto.
18572 * config/riscv/riscv-vector-builtins-shapes.cc
18573 (struct no_mask_policy_def): Ditto.
18574 (SHAPE): Ditto.
18575 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
18576 * config/riscv/riscv-vector-builtins.cc
18577 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
18578 (rvv_arg_type_info::get_tree_type): Ditto.
18579 (function_expander::use_exact_insn): Ditto.
18580 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
18581 (function_base::use_mask_predication_p): New function.
18582 * config/riscv/vector-iterators.md: New iterator.
18583 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
18584 (@pred_sbc<mode>): Ditto.
18585 (@pred_adc<mode>_scalar): Ditto.
18586 (@pred_sbc<mode>_scalar): Ditto.
18587 (*pred_adc<mode>_scalar): Ditto.
18588 (*pred_adc<mode>_extended_scalar): Ditto.
18589 (*pred_sbc<mode>_scalar): Ditto.
18590 (*pred_sbc<mode>_extended_scalar): Ditto.
18591
18592 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18593
18594 * config/riscv/vector.md: use "zero" reg.
18595
18596 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18597
18598 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
18599 class.
18600 (class vwmulsu): Ditto.
18601 (class vwcvt): Ditto.
18602 (BASE): Add integer widening support.
18603 * config/riscv/riscv-vector-builtins-bases.h: Ditto
18604 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
18605 (vwsub): New class.
18606 (vwmul): New class.
18607 (vwmulu): New class.
18608 (vwmulsu): New class.
18609 (vwaddu): New class.
18610 (vwsubu): New class.
18611 (vwcvt_x): New class.
18612 (vwcvtu_x): New class.
18613 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
18614 class.
18615 (struct widen_alu_def): New class.
18616 (SHAPE): New class.
18617 * config/riscv/riscv-vector-builtins-shapes.h: New class.
18618 * config/riscv/riscv-vector-builtins.cc
18619 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
18620 (rvv_arg_type_info::get_tree_type): Ditto.
18621 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
18622 (x_v): Ditto.
18623 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
18624 widening support.
18625 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
18626 * config/riscv/riscv.h (X0_REGNUM): New constant.
18627 * config/riscv/vector-iterators.md: New iterators.
18628 * config/riscv/vector.md
18629 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
18630 pattern.
18631 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
18632 Ditto.
18633 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
18634 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
18635 Ditto.
18636 (@pred_widen_mulsu<mode>): Ditto.
18637 (@pred_widen_mulsu<mode>_scalar): Ditto.
18638 (@pred_<optab><mode>): Ditto.
18639
18640 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18641 kito-cheng <kito.cheng@sifive.com>
18642
18643 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
18644 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
18645 (BASE): Ditto.
18646 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18647 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
18648 API support.
18649 (vmulhu): Ditto.
18650 (vmulhsu): Ditto.
18651 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
18652 New macro.
18653 (DEF_RVV_FULL_V_U_OPS): Ditto.
18654 (vint8mf8_t): Ditto.
18655 (vint8mf4_t): Ditto.
18656 (vint8mf2_t): Ditto.
18657 (vint8m1_t): Ditto.
18658 (vint8m2_t): Ditto.
18659 (vint8m4_t): Ditto.
18660 (vint8m8_t): Ditto.
18661 (vint16mf4_t): Ditto.
18662 (vint16mf2_t): Ditto.
18663 (vint16m1_t): Ditto.
18664 (vint16m2_t): Ditto.
18665 (vint16m4_t): Ditto.
18666 (vint16m8_t): Ditto.
18667 (vint32mf2_t): Ditto.
18668 (vint32m1_t): Ditto.
18669 (vint32m2_t): Ditto.
18670 (vint32m4_t): Ditto.
18671 (vint32m8_t): Ditto.
18672 (vint64m1_t): Ditto.
18673 (vint64m2_t): Ditto.
18674 (vint64m4_t): Ditto.
18675 (vint64m8_t): Ditto.
18676 (vuint8mf8_t): Ditto.
18677 (vuint8mf4_t): Ditto.
18678 (vuint8mf2_t): Ditto.
18679 (vuint8m1_t): Ditto.
18680 (vuint8m2_t): Ditto.
18681 (vuint8m4_t): Ditto.
18682 (vuint8m8_t): Ditto.
18683 (vuint16mf4_t): Ditto.
18684 (vuint16mf2_t): Ditto.
18685 (vuint16m1_t): Ditto.
18686 (vuint16m2_t): Ditto.
18687 (vuint16m4_t): Ditto.
18688 (vuint16m8_t): Ditto.
18689 (vuint32mf2_t): Ditto.
18690 (vuint32m1_t): Ditto.
18691 (vuint32m2_t): Ditto.
18692 (vuint32m4_t): Ditto.
18693 (vuint32m8_t): Ditto.
18694 (vuint64m1_t): Ditto.
18695 (vuint64m2_t): Ditto.
18696 (vuint64m4_t): Ditto.
18697 (vuint64m8_t): Ditto.
18698 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
18699 (DEF_RVV_FULL_V_U_OPS): Ditto.
18700 (check_required_extensions): Add vmulh support.
18701 (rvv_arg_type_info::get_tree_type): Ditto.
18702 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
18703 (enum rvv_base_type): Ditto.
18704 * config/riscv/riscv.opt: Add 'V' extension flag.
18705 * config/riscv/vector-iterators.md (su): New iterator.
18706 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
18707 (@pred_mulh<v_su><mode>_scalar): Ditto.
18708 (*pred_mulh<v_su><mode>_scalar): Ditto.
18709 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
18710
18711 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18712
18713 * config/riscv/iterators.md: Add sign_extend/zero_extend.
18714 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
18715 (BASE): Ditto.
18716 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
18717 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
18718 define.
18719 (vzext): Ditto.
18720 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
18721 for vsext/vzext support.
18722 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
18723 macro define.
18724 (DEF_RVV_QEXTI_OPS): Ditto.
18725 (DEF_RVV_OEXTI_OPS): Ditto.
18726 (DEF_RVV_WEXTU_OPS): Ditto.
18727 (DEF_RVV_QEXTU_OPS): Ditto.
18728 (DEF_RVV_OEXTU_OPS): Ditto.
18729 (vint16mf4_t): Ditto.
18730 (vint16mf2_t): Ditto.
18731 (vint16m1_t): Ditto.
18732 (vint16m2_t): Ditto.
18733 (vint16m4_t): Ditto.
18734 (vint16m8_t): Ditto.
18735 (vint32mf2_t): Ditto.
18736 (vint32m1_t): Ditto.
18737 (vint32m2_t): Ditto.
18738 (vint32m4_t): Ditto.
18739 (vint32m8_t): Ditto.
18740 (vint64m1_t): Ditto.
18741 (vint64m2_t): Ditto.
18742 (vint64m4_t): Ditto.
18743 (vint64m8_t): Ditto.
18744 (vuint16mf4_t): Ditto.
18745 (vuint16mf2_t): Ditto.
18746 (vuint16m1_t): Ditto.
18747 (vuint16m2_t): Ditto.
18748 (vuint16m4_t): Ditto.
18749 (vuint16m8_t): Ditto.
18750 (vuint32mf2_t): Ditto.
18751 (vuint32m1_t): Ditto.
18752 (vuint32m2_t): Ditto.
18753 (vuint32m4_t): Ditto.
18754 (vuint32m8_t): Ditto.
18755 (vuint64m1_t): Ditto.
18756 (vuint64m2_t): Ditto.
18757 (vuint64m4_t): Ditto.
18758 (vuint64m8_t): Ditto.
18759 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
18760 (DEF_RVV_QEXTI_OPS): Ditto.
18761 (DEF_RVV_OEXTI_OPS): Ditto.
18762 (DEF_RVV_WEXTU_OPS): Ditto.
18763 (DEF_RVV_QEXTU_OPS): Ditto.
18764 (DEF_RVV_OEXTU_OPS): Ditto.
18765 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
18766 support.
18767 (rvv_arg_type_info::get_tree_type): Ditto.
18768 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
18769 * config/riscv/vector-iterators.md (z): New attribute.
18770 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
18771 (@pred_<optab><mode>_vf4): Ditto.
18772 (@pred_<optab><mode>_vf8): Ditto.
18773
18774 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18775
18776 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
18777 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
18778 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
18779 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18780 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
18781 (vssub): Ditto.
18782 (vsaddu): Ditto.
18783 (vssubu): Ditto.
18784 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
18785 support.
18786 (sll.vv): Ditto.
18787 (%3,%v4): Ditto.
18788 (%3,%4): Ditto.
18789 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
18790 (@pred_<optab><mode>_scalar): New pattern.
18791 (*pred_<optab><mode>_scalar): New pattern.
18792 (*pred_<optab><mode>_extended_scalar): New pattern.
18793
18794 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18795
18796 * config/riscv/iterators.md: Add neg and not.
18797 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
18798 (BASE): Ditto.
18799 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18800 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
18801 into alu.
18802 (vsub): Ditto.
18803 (vand): Ditto.
18804 (vor): Ditto.
18805 (vxor): Ditto.
18806 (vsll): Ditto.
18807 (vsra): Ditto.
18808 (vsrl): Ditto.
18809 (vmin): Ditto.
18810 (vmax): Ditto.
18811 (vminu): Ditto.
18812 (vmaxu): Ditto.
18813 (vmul): Ditto.
18814 (vdiv): Ditto.
18815 (vrem): Ditto.
18816 (vdivu): Ditto.
18817 (vremu): Ditto.
18818 (vrsub): Ditto.
18819 (vneg): Ditto.
18820 (vnot): Ditto.
18821 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
18822 (struct alu_def): Ditto.
18823 (SHAPE): Ditto.
18824 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
18825 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
18826 * config/riscv/vector-iterators.md: New iterator.
18827 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
18828
18829 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18830
18831 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
18832
18833 2023-02-11 Jakub Jelinek <jakub@redhat.com>
18834
18835 PR ipa/108605
18836 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
18837 item->offset bit position is too large to be representable as
18838 unsigned int byte position.
18839
18840 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
18841
18842 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
18843
18844 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
18845
18846 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
18847 valid_combine only when ira_use_lra_p is true.
18848
18849 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
18850
18851 * params.opt (ira-simple-lra-insn-threshold): Add new param.
18852 * ira.cc (ira): Use the param to switch on simple LRA.
18853
18854 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
18855
18856 PR tree-optimization/108687
18857 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
18858 back to RFD_NONE mode for calculations.
18859 (ranger_cache::propagate_cache): Call the internal edge range API
18860 with RFD_READ_ONLY instead of changing the external routine.
18861
18862 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
18863
18864 PR tree-optimization/108520
18865 * gimple-range-infer.cc (check_assume_func): Invoke
18866 gimple_range_global directly instead using global_range_query.
18867 * value-query.cc (get_range_global): Add function context and
18868 avoid calling nonnull_arg_p if not cfun.
18869 (gimple_range_global): Add function context pointer.
18870 * value-query.h (imple_range_global): Add function context.
18871
18872 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18873
18874 * config/riscv/constraints.md (Wdm): Adjust constraint.
18875 (Wbr): New constraint.
18876 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
18877 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
18878 (emit_vlmax_op): New function.
18879 (emit_nonvlmax_op): Ditto.
18880 (simm32_p): Ditto.
18881 (neg_simm5_p): Ditto.
18882 (has_vi_variant_p): Ditto.
18883 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
18884 (emit_vlmax_op): New function.
18885 (emit_nonvlmax_op): Ditto.
18886 (expand_const_vector): Adjust function.
18887 (legitimize_move): Ditto.
18888 (simm32_p): New function.
18889 (simm5_p): Ditto.
18890 (neg_simm5_p): Ditto.
18891 (has_vi_variant_p): Ditto.
18892 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
18893 (BASE): Ditto.
18894 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18895 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
18896 unsigned cases.
18897 (vmax): Ditto.
18898 (vminu): Remove signed cases.
18899 (vmaxu): Ditto.
18900 (vdiv): Remove unsigned cases.
18901 (vrem): Ditto.
18902 (vdivu): Remove signed cases.
18903 (vremu): Ditto.
18904 (vadd): Adjust.
18905 (vsub): Ditto.
18906 (vrsub): New class.
18907 (vand): Adjust.
18908 (vor): Ditto.
18909 (vxor): Ditto.
18910 (vmul): Ditto.
18911 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
18912 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
18913 * config/riscv/vector-iterators.md: New iterators.
18914 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
18915 support.
18916 (@pred_<optab><mode>_scalar): New pattern.
18917 (@pred_sub<mode>_reverse_scalar): Ditto.
18918 (*pred_<optab><mode>_scalar): Ditto.
18919 (*pred_<optab><mode>_extended_scalar): Ditto.
18920 (*pred_sub<mode>_reverse_scalar): Ditto.
18921 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
18922
18923 2023-02-10 Richard Biener <rguenther@suse.de>
18924
18925 PR tree-optimization/108724
18926 * tree-vect-stmts.cc (vectorizable_operation): Avoid
18927 using word_mode vectors when vector lowering will
18928 decompose them to elementwise operations.
18929
18930 2023-02-10 Jakub Jelinek <jakub@redhat.com>
18931
18932 Revert:
18933 2023-02-09 Martin Liska <mliska@suse.cz>
18934
18935 PR target/100758
18936 * doc/extend.texi: Document that the function
18937 does not work correctly for old VIA processors.
18938
18939 2023-02-10 Andrew Pinski <apinski@marvell.com>
18940 Andrew Macleod <amacleod@redhat.com>
18941
18942 PR tree-optimization/108684
18943 * tree-ssa-dce.cc (simple_dce_from_worklist):
18944 Check all ssa names and not just non-vdef ones
18945 before accepting the inline-asm.
18946 Call unlink_stmt_vdef on the statement before
18947 removing it.
18948
18949 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
18950
18951 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
18952 * ira.cc (validate_equiv_mem): Check memref address variance.
18953 (no_equiv): Clear caller_save_p flag.
18954 (update_equiv_regs): Define caller save equivalence for
18955 valid_combine.
18956 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
18957 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
18958 call_save_p. Use caller save equivalence depending on the arg.
18959 (split_reg): Adjust the call.
18960
18961 2023-02-09 Jakub Jelinek <jakub@redhat.com>
18962
18963 PR target/100758
18964 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
18965 (cpu_indicator_init): Call get_available_features for all CPUs with
18966 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
18967 fixes.
18968
18969 2023-02-09 Jakub Jelinek <jakub@redhat.com>
18970
18971 PR tree-optimization/108688
18972 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
18973 of BIT_INSERT_EXPR extracting exactly all inserted bits even
18974 when without mode precision. Formatting fixes.
18975
18976 2023-02-09 Andrew Pinski <apinski@marvell.com>
18977
18978 PR tree-optimization/108688
18979 * match.pd (bit_field_ref [bit_insert]): Avoid generating
18980 BIT_FIELD_REFs of non-mode-precision integral operands.
18981
18982 2023-02-09 Martin Liska <mliska@suse.cz>
18983
18984 PR target/100758
18985 * doc/extend.texi: Document that the function
18986 does not work correctly for old VIA processors.
18987
18988 2023-02-09 Andreas Schwab <schwab@suse.de>
18989
18990 * lto-wrapper.cc (merge_and_complain): Handle
18991 -funwind-tables and -fasynchronous-unwind-tables.
18992 (append_compiler_options): Likewise.
18993
18994 2023-02-09 Richard Biener <rguenther@suse.de>
18995
18996 PR tree-optimization/26854
18997 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
18998 view around insert_updated_phi_nodes_for.
18999 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
19000 in tree view.
19001 (walk_aliased_vdefs_1): Likewise.
19002
19003 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
19004
19005 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
19006
19007 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
19008
19009 PR target/108505
19010 * config.gcc (tm_mlib_file): Define new variable.
19011
19012 2023-02-08 Jakub Jelinek <jakub@redhat.com>
19013
19014 PR tree-optimization/108692
19015 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
19016 widened_code which is different from code, don't call
19017 vect_look_through_possible_promotion but instead just check op is
19018 SSA_NAME with integral type for which vect_is_simple_use is true
19019 and call set_op on this_unprom.
19020
19021 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
19022
19023 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
19024 declaration.
19025 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
19026 definition.
19027 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
19028 to 'aarch_ra_sign_key'.
19029 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
19030 declaration.
19031 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
19032 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
19033 * config/arm/arm.opt: Define.
19034
19035 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
19036
19037 PR tree-optimization/108316
19038 * tree-vect-stmts.cc (get_load_store_type): When using
19039 internal functions for gather/scatter, make sure that the type
19040 of the offset argument is consistent with the offset vector type.
19041
19042 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
19043
19044 Revert:
19045 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
19046
19047 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
19048 * ira.cc (validate_equiv_mem): Check memref address variance.
19049 (update_equiv_regs): Define caller save equivalence for
19050 valid_combine.
19051 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
19052 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
19053 call_save_p. Use caller save equivalence depending on the arg.
19054 (split_reg): Adjust the call.
19055
19056 2023-02-08 Jakub Jelinek <jakub@redhat.com>
19057
19058 * tree.def (SAD_EXPR): Remove outdated comment about missing
19059 WIDEN_MINUS_EXPR.
19060
19061 2023-02-07 Marek Polacek <polacek@redhat.com>
19062
19063 * doc/invoke.texi: Update -fchar8_t documentation.
19064
19065 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
19066
19067 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
19068 * ira.cc (validate_equiv_mem): Check memref address variance.
19069 (update_equiv_regs): Define caller save equivalence for
19070 valid_combine.
19071 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
19072 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
19073 call_save_p. Use caller save equivalence depending on the arg.
19074 (split_reg): Adjust the call.
19075
19076 2023-02-07 Richard Biener <rguenther@suse.de>
19077
19078 PR tree-optimization/26854
19079 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
19080 instead of immediate uses.
19081
19082 2023-02-07 Jakub Jelinek <jakub@redhat.com>
19083
19084 PR tree-optimization/106923
19085 * ipa-split.cc (execute_split_functions): Don't split returns_twice
19086 functions.
19087
19088 2023-02-07 Jakub Jelinek <jakub@redhat.com>
19089
19090 PR tree-optimization/106433
19091 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
19092 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
19093
19094 2023-02-07 Jan Hubicka <jh@suse.cz>
19095
19096 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
19097 for znver4.
19098
19099 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
19100
19101 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
19102 (process_asm): Create a constructor for GCN_STACK_SIZE.
19103 (main): Parse the -mstack-size option.
19104
19105 2023-02-06 Alex Coplan <alex.coplan@arm.com>
19106
19107 PR target/104921
19108 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
19109 Use correct constraint for operand 3.
19110
19111 2023-02-06 Martin Jambor <mjambor@suse.cz>
19112
19113 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
19114
19115 2023-02-06 Xi Ruoyao <xry111@xry111.site>
19116
19117 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
19118 New define_int_iterator.
19119 (bytepick_d_ashift_amount): Likewise.
19120 (bytepick_imm): New define_int_attr.
19121 (bytepick_w_lshiftrt_amount): Likewise.
19122 (bytepick_d_lshiftrt_amount): Likewise.
19123 (bytepick_w_<bytepick_imm>): New define_insn template.
19124 (bytepick_w_<bytepick_imm>_extend): Likewise.
19125 (bytepick_d_<bytepick_imm>): Likewise.
19126 (bytepick_w): Remove unused define_insn.
19127 (bytepick_d): Likewise.
19128 (UNSPEC_BYTEPICK_W): Remove unused unspec.
19129 (UNSPEC_BYTEPICK_D): Likewise.
19130 * config/loongarch/predicates.md (const_0_to_3_operand):
19131 Remove unused define_predicate.
19132 (const_0_to_7_operand): Likewise.
19133
19134 2023-02-06 Jakub Jelinek <jakub@redhat.com>
19135
19136 PR tree-optimization/108655
19137 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
19138 or -fsanitize=unreachable -fsanitize-trap=unreachable return
19139 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
19140
19141 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
19142
19143 * doc/install.texi (Specific): Remove PW32.
19144
19145 2023-02-03 Jakub Jelinek <jakub@redhat.com>
19146
19147 PR tree-optimization/108647
19148 * range-op.cc (operator_equal::op1_range,
19149 operator_not_equal::op1_range): Don't test op2 bound
19150 equality if op2.undefined_p (), instead set_varying.
19151 (operator_lt::op1_range, operator_le::op1_range,
19152 operator_gt::op1_range, operator_ge::op1_range): Return false if
19153 op2.undefined_p ().
19154 (operator_lt::op2_range, operator_le::op2_range,
19155 operator_gt::op2_range, operator_ge::op2_range): Return false if
19156 op1.undefined_p ().
19157
19158 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
19159
19160 PR tree-optimization/108639
19161 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
19162 widest_int.
19163 (irange::operator==): Same.
19164
19165 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
19166
19167 PR tree-optimization/108647
19168 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
19169 (foperator_lt::op2_range): Same.
19170 (foperator_le::op1_range): Same.
19171 (foperator_le::op2_range): Same.
19172 (foperator_gt::op1_range): Same.
19173 (foperator_gt::op2_range): Same.
19174 (foperator_ge::op1_range): Same.
19175 (foperator_ge::op2_range): Same.
19176 (foperator_unordered_lt::op1_range): Same.
19177 (foperator_unordered_lt::op2_range): Same.
19178 (foperator_unordered_le::op1_range): Same.
19179 (foperator_unordered_le::op2_range): Same.
19180 (foperator_unordered_gt::op1_range): Same.
19181 (foperator_unordered_gt::op2_range): Same.
19182 (foperator_unordered_ge::op1_range): Same.
19183 (foperator_unordered_ge::op2_range): Same.
19184
19185 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
19186
19187 PR tree-optimization/107570
19188 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
19189
19190 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
19191
19192 * doc/gm2.texi (Internals): Remove from menu.
19193 (Using): Comment out ifnohtml conditional.
19194 (Documentation): Use gcc url.
19195 (License): Node simplified.
19196 (Copying): New node. Include gpl_v3_without_node.
19197 (Contributing): Node simplified.
19198 (Internals): Commented out.
19199 (Libraries): Node simplified.
19200 (Indices): Ditto.
19201 (Contents): Ditto.
19202 (Functions): Ditto.
19203
19204 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
19205
19206 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
19207 attribute.
19208 (mve_vqshluq_m_n_s<mode>): Likewise.
19209 (mve_vshlq_m_<supf><mode>): Likewise.
19210 (mve_vsriq_m_n_<supf><mode>): Likewise.
19211 (mve_vsubq_m_<supf><mode>): Likewise.
19212
19213 2023-02-03 Martin Jambor <mjambor@suse.cz>
19214
19215 PR ipa/108384
19216 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
19217 when comparing to an IPA-CP value.
19218 (dump_list_of_param_indices): New function.
19219 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
19220 Dump removed candidates using dump_list_of_param_indices.
19221 * ipa-param-manipulation.cc
19222 (ipa_param_body_adjustments::modify_expression): Add assert checking
19223 sizes of a VIEW_CONVERT_EXPR will match.
19224 (ipa_param_body_adjustments::modify_assignment): Likewise.
19225
19226 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
19227
19228 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
19229 * config/riscv/riscv.cc: Ditto.
19230
19231 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19232
19233 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
19234 (sll.vv): Ditto.
19235 (%3,%4): Ditto.
19236 (%3,%v4): Ditto.
19237 * config/riscv/vector.md: Ditto.
19238
19239 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19240
19241 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
19242 * config/riscv/riscv-vector-builtins-bases.cc: New class.
19243 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
19244 (vsra): Ditto.
19245 (vsrl): Ditto.
19246 * config/riscv/riscv-vector-builtins.cc: Ditto.
19247 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
19248
19249 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
19250
19251 * toplev.cc (toplev::main): Only print the version information header
19252 from toplevel main().
19253
19254 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
19255
19256 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
19257 cond_{ashl|ashr|lshr}
19258
19259 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
19260
19261 PR rtl-optimization/108086
19262 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
19263 Adjust size-related commentary accordingly.
19264
19265 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
19266
19267 PR rtl-optimization/108508
19268 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
19269 the splay tree search gives the first clobber in the second group,
19270 make sure that the root of the first clobber group is updated
19271 correctly. Enter the new clobber group into the definition splay
19272 tree.
19273
19274 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
19275
19276 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
19277 Fix finding best match score.
19278
19279 2023-02-02 Jakub Jelinek <jakub@redhat.com>
19280
19281 PR debug/106746
19282 PR rtl-optimization/108463
19283 PR target/108484
19284 * cselib.cc (cselib_current_insn): Move declaration earlier.
19285 (cselib_hasher::equal): For debug only locs, temporarily override
19286 cselib_current_insn to their l->setting_insn for the
19287 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
19288 promote some debug locs.
19289 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
19290 when using cselib call cselib_lookup_from_insn on the address but
19291 don't substitute it.
19292
19293 2023-02-02 Richard Biener <rguenther@suse.de>
19294
19295 PR middle-end/108625
19296 * genmatch.cc (expr::gen_transform): Also disallow resimplification
19297 from pushing to lseq with force_leaf.
19298 (dt_simplify::gen_1): Likewise.
19299
19300 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
19301
19302 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
19303 (struct kernargs): Replace the common content with kernargs_abi.
19304 (struct heap): Delete.
19305 (main): Read GCN_STACK_SIZE envvar.
19306 Allocate space for the device stacks.
19307 Write the new kernargs fields.
19308 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
19309 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
19310 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
19311 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
19312 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
19313 Set up the stacks from the values in the kernargs, not private.
19314 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
19315 (gcn_hsa_declare_function_name): Turn off the private segment.
19316 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
19317 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
19318 * config/gcn/gcn.opt (mstack-size): Change the description.
19319
19320 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
19321
19322 PR target/108443
19323 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
19324 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
19325 addressing MVE predicate modes.
19326 (mve_bool_vec_to_const): Change to represent correct MVE predicate
19327 format.
19328 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
19329 modes.
19330 (arm_vector_mode_supported_p): Likewise.
19331 (arm_mode_to_pred_mode): Add V2QI.
19332 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
19333 qualifier.
19334 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
19335 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
19336 (v2qi_UP): New macro.
19337 (v4bi_UP): New macro.
19338 (v8bi_UP): New macro.
19339 (v16bi_UP): New macro.
19340 (arm_expand_builtin_args): Make it able to expand the new predicate
19341 modes.
19342 * config/arm/arm-modes.def (V2QI): New mode.
19343 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
19344 Pred4x4_t): Remove unused predicate builtin types.
19345 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
19346 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
19347 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
19348 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
19349 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
19350 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
19351 of MODE_VECTOR_BOOL.
19352 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
19353 (MVE_VPRED): Likewise.
19354 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
19355 (MVE_vctp): New mode attribute.
19356 (mode1): Remove.
19357 (VCTPQ): Remove.
19358 (VCTPQ_M): Remove.
19359 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
19360 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
19361 attributes.
19362 (mve_vpnothi): Rename this...
19363 (mve_vpnotv16bi): ... to this.
19364 (mve_vctp<mode1>q_mhi): Rename this...
19365 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
19366 (mve_vldrdq_gather_base_z_<supf>v2di,
19367 mve_vldrdq_gather_offset_z_<supf>v2di,
19368 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
19369 mve_vstrdq_scatter_base_p_<supf>v2di,
19370 mve_vstrdq_scatter_offset_p_<supf>v2di,
19371 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
19372 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
19373 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
19374 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
19375 mve_vldrdq_gather_base_wb_z_<supf>v2di,
19376 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
19377 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
19378 predicates.
19379 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
19380 these...
19381 (VCTP): ... with this.
19382 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
19383 (VCTP_M): ... with this.
19384 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
19385 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
19386
19387 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
19388
19389 PR target/107674
19390 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
19391 (arm_modes_tieable_p): Make MVE predicate modes tieable.
19392 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
19393 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
19394 simplify_subreg to simplify subregs where the outermode is not scalar.
19395
19396 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
19397
19398 PR target/107674
19399 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
19400 new qualifiers parameter and use unsigned short type for MVE predicate.
19401 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
19402 parameter.
19403 (arm_init_crypto_builtins): Likewise.
19404
19405 2023-02-02 Jakub Jelinek <jakub@redhat.com>
19406
19407 PR ipa/107300
19408 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
19409 * internal-fn.def (TRAP): Remove.
19410 * internal-fn.cc (expand_TRAP): Remove.
19411 * tree.cc (build_common_builtin_nodes): Define
19412 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
19413 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
19414 instead of BUILT_IN_TRAP.
19415 * gimple.cc (gimple_build_builtin_unreachable): Remove
19416 emitting internal function for BUILT_IN_TRAP.
19417 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
19418 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
19419 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
19420 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
19421 BUILT_IN_UNREACHABLE_TRAP.
19422 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
19423 * tree-cfg.cc (verify_gimple_call,
19424 pass_warn_function_return::execute): Likewise.
19425 * attribs.cc (decl_attributes): Don't report exclusions on
19426 BUILT_IN_UNREACHABLE_TRAP either.
19427
19428 2023-02-02 liuhongt <hongtao.liu@intel.com>
19429
19430 PR tree-optimization/108601
19431 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
19432 * tree-vect-loop.cc
19433 (vectorizable_nonlinear_induction): Remove
19434 vect_can_peel_nonlinear_iv_p.
19435 (vect_can_peel_nonlinear_iv_p): Don't peel
19436 nonlinear iv(mult or shift) for epilog when vf is not
19437 constant and moved the defination to ..
19438 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
19439 .. Here.
19440
19441 2023-02-02 Jakub Jelinek <jakub@redhat.com>
19442
19443 PR middle-end/108435
19444 * tree-nested.cc (convert_nonlocal_omp_clauses)
19445 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
19446 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
19447 before calling declare_vars.
19448 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
19449 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
19450 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
19451 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
19452
19453 2023-02-01 Tamar Christina <tamar.christina@arm.com>
19454
19455 * common/config/aarch64/aarch64-common.cc
19456 (struct aarch64_option_extension): Add native_detect and document struct
19457 a bit more.
19458 (all_extensions): Set new field native_detect.
19459 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
19460 unused struct.
19461
19462 2023-02-01 Martin Liska <mliska@suse.cz>
19463
19464 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
19465 value if set.
19466
19467 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
19468
19469 PR tree-optimization/108356
19470 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
19471 do a search of the DOM tree for a range.
19472
19473 2023-02-01 Martin Liska <mliska@suse.cz>
19474
19475 PR ipa/108509
19476 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
19477 ony non-null values.
19478 * ipa.cc (walk_polymorphic_call_targets): Likewise.
19479
19480 2023-02-01 Martin Liska <mliska@suse.cz>
19481
19482 PR driver/108572
19483 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
19484 -gz=zstd.
19485
19486 2023-02-01 Jakub Jelinek <jakub@redhat.com>
19487
19488 PR debug/108573
19489 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
19490 subregs in DEBUG_INSNs.
19491
19492 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
19493
19494 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
19495
19496 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
19497
19498 * config/s390/s390.cc (s390_restore_gpr_p): New function.
19499 (s390_preserve_gpr_arg_in_range_p): New function.
19500 (s390_preserve_gpr_arg_p): New function.
19501 (s390_preserve_fpr_arg_p): New function.
19502 (s390_register_info_stdarg_fpr): Rename to ...
19503 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
19504 (s390_register_info_stdarg_gpr): Rename to ...
19505 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
19506 (s390_register_info): Use the renamed functions above.
19507 (s390_optimize_register_info): Likewise.
19508 (save_fpr): Generate CFI for -mpreserve-args.
19509 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
19510 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
19511 (s390_optimize_prologue): Likewise.
19512 * config/s390/s390.opt: New option -mpreserve-args
19513
19514 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
19515
19516 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
19517 (restore_gprs): Likewise.
19518 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
19519 frame pointer if a frame-pointer is used.
19520 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
19521 * config/s390/s390.md (stack_tie): Add a register operand and
19522 rename to ...
19523 (@stack_tie<mode>): ... this.
19524
19525 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
19526
19527 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
19528 EMIT_CFI parameter.
19529 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
19530 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
19531
19532 2023-02-01 Richard Biener <rguenther@suse.de>
19533
19534 PR middle-end/108500
19535 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
19536 with tree traversal algorithm.
19537
19538 2023-02-01 Jason Merrill <jason@redhat.com>
19539
19540 * doc/invoke.texi: Document -Wno-changes-meaning.
19541
19542 2023-02-01 David Malcolm <dmalcolm@redhat.com>
19543
19544 * doc/invoke.texi (Static Analyzer Options): Add notes about
19545 limitations of -fanalyzer.
19546
19547 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19548
19549 * config/riscv/constraints.md (vj): New.
19550 (vk): Ditto
19551 * config/riscv/iterators.md: Add more opcode.
19552 * config/riscv/predicates.md (vector_arith_operand): New.
19553 (vector_neg_arith_operand): New.
19554 (vector_shift_operand): New.
19555 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
19556 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
19557 (vsub): Ditto.
19558 (vand): Ditto.
19559 (vor): Ditto.
19560 (vxor): Ditto.
19561 (vsll): Ditto.
19562 (vsra): Ditto.
19563 (vsrl): Ditto.
19564 (vmin): Ditto.
19565 (vmax): Ditto.
19566 (vminu): Ditto.
19567 (vmaxu): Ditto.
19568 (vmul): Ditto.
19569 (vdiv): Ditto.
19570 (vrem): Ditto.
19571 (vdivu): Ditto.
19572 (vremu): Ditto.
19573 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
19574 (vsub): Ditto.
19575 (vand): Ditto.
19576 (vor): Ditto.
19577 (vxor): Ditto.
19578 (vsll): Ditto.
19579 (vsra): Ditto.
19580 (vsrl): Ditto.
19581 (vmin): Ditto.
19582 (vmax): Ditto.
19583 (vminu): Ditto.
19584 (vmaxu): Ditto.
19585 (vmul): Ditto.
19586 (vdiv): Ditto.
19587 (vrem): Ditto.
19588 (vdivu): Ditto.
19589 (vremu): Ditto.
19590 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
19591 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
19592 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
19593 (DEF_RVV_U_OPS): New.
19594 (rvv_arg_type_info::get_base_vector_type): Handle
19595 RVV_BASE_shift_vector.
19596 (rvv_arg_type_info::get_tree_type): Ditto.
19597 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
19598 RVV_BASE_shift_vector.
19599 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
19600 * config/riscv/vector-iterators.md: Handle more opcode.
19601 * config/riscv/vector.md (@pred_<optab><mode>): New.
19602
19603 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
19604
19605 PR target/108589
19606 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
19607 REG_P on SET_DEST.
19608
19609 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
19610
19611 PR tree-optimization/108608
19612 * tree-vect-loop.cc (vect_transform_reduction): Handle single
19613 def-use cycles that involve function calls rather than tree codes.
19614
19615 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
19616
19617 PR tree-optimization/108385
19618 * gimple-range-gori.cc (gori_compute::compute_operand_range):
19619 Allow VARYING computations to continue if there is a relation.
19620 * range-op.cc (pointer_plus_operator::op2_range): New.
19621
19622 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
19623
19624 PR tree-optimization/108359
19625 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
19626 (range_operator::fold_range): If op1 is equivalent to op2 then
19627 invoke new fold_in_parts_equiv to operate on sub-components.
19628 * range-op.h (wi_fold_in_parts_equiv): New prototype.
19629
19630 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
19631
19632 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
19633 not abort calculations if there is a valid relation available.
19634 (gori_compute::refine_using_relation): Pass correct relation trio.
19635 (gori_compute::compute_operand1_range): Create trio and use it.
19636 (gori_compute::compute_operand2_range): Ditto.
19637 * range-op.cc (operator_plus::op1_range): Use correct trio member.
19638 (operator_minus::op1_range): Use correct trio member.
19639 * value-relation.cc (value_relation::create_trio): New.
19640 * value-relation.h (value_relation::create_trio): New prototype.
19641
19642 2023-01-31 Jakub Jelinek <jakub@redhat.com>
19643
19644 PR target/108599
19645 * config/i386/i386-expand.cc
19646 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
19647 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
19648 equal to bitsize of mode.
19649
19650 2023-01-31 Jakub Jelinek <jakub@redhat.com>
19651
19652 PR rtl-optimization/108596
19653 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
19654 ends with asm goto and has a crossing fallthrough edge to the same bb
19655 that contains at least one of its labels by restoring EDGE_CROSSING
19656 flag even on possible edge from cur_bb to new_bb successor.
19657
19658 2023-01-31 Jakub Jelinek <jakub@redhat.com>
19659
19660 PR c++/105593
19661 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
19662 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
19663 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
19664 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
19665 uninitialized automatic variable __W.
19666
19667 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
19668
19669 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
19670
19671 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19672
19673 * config/riscv/riscv-protos.h (get_vector_mode): New function.
19674 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
19675 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
19676 (class loadstore): Adjust for indexed loads/stores support.
19677 (BASE): Ditto.
19678 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
19679 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
19680 (vluxei16): Ditto.
19681 (vluxei32): Ditto.
19682 (vluxei64): Ditto.
19683 (vloxei8): Ditto.
19684 (vloxei16): Ditto.
19685 (vloxei32): Ditto.
19686 (vloxei64): Ditto.
19687 (vsuxei8): Ditto.
19688 (vsuxei16): Ditto.
19689 (vsuxei32): Ditto.
19690 (vsuxei64): Ditto.
19691 (vsoxei8): Ditto.
19692 (vsoxei16): Ditto.
19693 (vsoxei32): Ditto.
19694 (vsoxei64): Ditto.
19695 * config/riscv/riscv-vector-builtins-shapes.cc
19696 (struct indexed_loadstore_def): New class.
19697 (SHAPE): Ditto.
19698 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19699 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
19700 for indexed loads/stores support.
19701 (check_required_extensions): Ditto.
19702 (rvv_arg_type_info::get_base_vector_type): New function.
19703 (rvv_arg_type_info::get_tree_type): Ditto.
19704 (function_builder::add_unique_function): Adjust for indexed loads/stores
19705 support.
19706 (function_expander::use_exact_insn): New function.
19707 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
19708 indexed loads/stores support.
19709 (struct rvv_arg_type_info): Ditto.
19710 (function_expander::index_mode): New function.
19711 (function_base::apply_tail_policy_p): Ditto.
19712 (function_base::apply_mask_policy_p): Ditto.
19713 * config/riscv/vector-iterators.md (unspec): New unspec.
19714 * config/riscv/vector.md (unspec): Ditto.
19715 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
19716 pattern.
19717 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
19718 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
19719 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
19720 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
19721 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
19722 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
19723 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
19724 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
19725 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
19726 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
19727 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
19728 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
19729 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
19730
19731 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
19732
19733 * config.gcc: Recognize x86_64-*-gnu* targets and include
19734 i386/gnu64.h.
19735 * config/i386/gnu64.h: Define configuration for new target
19736 including ld.so location.
19737
19738 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
19739
19740 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
19741 ampere1a to include SM4.
19742
19743 2023-01-30 Andrew Pinski <apinski@marvell.com>
19744
19745 PR tree-optimization/108582
19746 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
19747 for middlebb to have no phi nodes.
19748
19749 2023-01-30 Richard Biener <rguenther@suse.de>
19750
19751 PR tree-optimization/108574
19752 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
19753 sameval and def, ignore the equivalence if there's the
19754 danger of oscillating between two values.
19755
19756 2023-01-30 Andreas Schwab <schwab@suse.de>
19757
19758 * common/config/riscv/riscv-common.cc
19759 (riscv_option_optimization_table)
19760 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
19761 -fasynchronous-unwind-tables and -funwind-tables.
19762 * config.gcc (riscv*-*-linux*): Define
19763 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
19764
19765 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
19766
19767 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
19768 value of includedir.
19769
19770 2023-01-30 Richard Biener <rguenther@suse.de>
19771
19772 PR ipa/108511
19773 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
19774 assert.
19775
19776 2023-01-30 liuhongt <hongtao.liu@intel.com>
19777
19778 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
19779 * doc/invoke.texi: Ditto.
19780
19781 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
19782
19783 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
19784 (stmt_may_terminate_function_p): If assuming return or EH
19785 volatile asm is safe.
19786 (find_always_executed_bbs): Fix handling of terminating BBS and
19787 infinite loops; add debug output.
19788 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
19789
19790 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
19791
19792 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
19793 off-by-one in checking the permissible shift-amount.
19794
19795 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
19796
19797 * doc/extend.texi (Named Address Spaces): Update link to the
19798 AVR-Libc manual.
19799
19800 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
19801
19802 * doc/standards.texi (Standards): Fix markup.
19803
19804 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
19805
19806 * doc/standards.texi (Standards): Update link to Objective-C book.
19807
19808 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
19809
19810 * doc/invoke.texi (Instrumentation Options): Update reference to
19811 AddressSanitizer.
19812
19813 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
19814
19815 * doc/standards.texi: Update Go1 link.
19816
19817 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19818
19819 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
19820 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
19821 Support vlse/vsse.
19822 (BASE): Ditto.
19823 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19824 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
19825 (vsse): New class.
19826 * config/riscv/riscv-vector-builtins.cc
19827 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
19828 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
19829 (@pred_strided_store<mode>): Ditto.
19830
19831 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19832
19833 * config/riscv/vector.md (tail_policy_op_idx): Remove.
19834 (mask_policy_op_idx): Remove.
19835 (avl_type_op_idx): Remove.
19836
19837 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
19838
19839 PR tree-optimization/96373
19840 * tree.h (sign_mask_for): Declare.
19841 * tree.cc (sign_mask_for): New function.
19842 (signed_or_unsigned_type_for): For vector types, try to use the
19843 related_int_vector_mode.
19844 * genmatch.cc (commutative_op): Handle conditional internal functions.
19845 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
19846
19847 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
19848
19849 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
19850 Use the likely minimum VF when bounding the denominators to
19851 the estimated number of iterations.
19852
19853 2023-01-27 Richard Biener <rguenther@suse.de>
19854
19855 PR target/55522
19856 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
19857 and -Ofast FP environment side-effects.
19858
19859 2023-01-27 Richard Biener <rguenther@suse.de>
19860
19861 PR target/55522
19862 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
19863 Don't add crtfastmath.o for -shared.
19864
19865 2023-01-27 Richard Biener <rguenther@suse.de>
19866
19867 PR target/55522
19868 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
19869 for -shared.
19870
19871 2023-01-27 Richard Biener <rguenther@suse.de>
19872
19873 PR target/55522
19874 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
19875 crtfastmath.o for -shared.
19876
19877 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
19878
19879 PR tree-optimization/108306
19880 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
19881 varying for shifts that are always out of void range.
19882 (operator_rshift::fold_range): Return [0, 0] not
19883 varying for shifts that are always out of void range.
19884
19885 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
19886
19887 PR tree-optimization/108447
19888 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
19889 Do not attempt to fold HONOR_NAN types.
19890
19891 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19892
19893 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
19894 Remove _m suffix for "vop_m" C++ overloaded API name.
19895
19896 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19897
19898 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
19899 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19900 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
19901 (vsm): Ditto.
19902 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
19903 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
19904 (vbool64_t): Ditto.
19905 (vbool32_t): Ditto.
19906 (vbool16_t): Ditto.
19907 (vbool8_t): Ditto.
19908 (vbool4_t): Ditto.
19909 (vbool2_t): Ditto.
19910 (vbool1_t): Ditto.
19911 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
19912 (rvv_arg_type_info::get_tree_type): Ditto.
19913 (function_expander::use_contiguous_load_insn): Ditto.
19914 * config/riscv/vector.md (@pred_store<mode>): Ditto.
19915
19916 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19917
19918 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
19919 (vsetvl_discard_result_insn_p): New function.
19920 (reg_killed_by_bb_p): rename to find_reg_killed_by.
19921 (find_reg_killed_by): New name.
19922 (get_vl): allow it to be called by more functions.
19923 (has_vsetvl_killed_avl_p): Add condition.
19924 (get_avl): allow it to be called by more functions.
19925 (insn_should_be_added_p): New function.
19926 (get_all_nonphi_defs): Refine function.
19927 (get_all_sets): Ditto.
19928 (get_same_bb_set): New function.
19929 (any_insn_in_bb_p): Ditto.
19930 (any_set_in_bb_p): Ditto.
19931 (get_vl_vtype_info): Add VLMAX forward optimization.
19932 (source_equal_p): Fix issues.
19933 (extract_single_source): Refine.
19934 (avl_info::multiple_source_equal_p): New function.
19935 (avl_info::operator==): Adjust for final version.
19936 (vl_vtype_info::operator==): Ditto.
19937 (vl_vtype_info::same_avl_p): Ditto.
19938 (vector_insn_info::parse_insn): Ditto.
19939 (vector_insn_info::available_p): New function.
19940 (vector_insn_info::merge): Adjust for final version.
19941 (vector_insn_info::dump): Add hard_empty.
19942 (pass_vsetvl::hard_empty_block_p): New function.
19943 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
19944 (pass_vsetvl::forward_demand_fusion): Ditto.
19945 (pass_vsetvl::demand_fusion): Ditto.
19946 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
19947 (pass_vsetvl::compute_local_properties): Adjust for final version.
19948 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
19949 (pass_vsetvl::refine_vsetvls): Ditto.
19950 (pass_vsetvl::commit_vsetvls): Ditto.
19951 (pass_vsetvl::propagate_avl): New function.
19952 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
19953 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
19954
19955 2023-01-27 Jakub Jelinek <jakub@redhat.com>
19956
19957 PR other/108560
19958 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
19959 from size_t to int.
19960
19961 2023-01-27 Jakub Jelinek <jakub@redhat.com>
19962
19963 PR ipa/106061
19964 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
19965 redirection of calls to __builtin_trap in addition to redirection
19966 to __builtin_unreachable.
19967
19968 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19969
19970 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
19971
19972 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19973
19974 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
19975 (emit_vsetvl_insn): Ditto.
19976
19977 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19978
19979 * config/riscv/vector.md: Fix constraints.
19980
19981 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19982
19983 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
19984
19985 2023-01-27 Patrick Palka <ppalka@redhat.com>
19986 Jakub Jelinek <jakub@redhat.com>
19987
19988 * tree-core.h (tree_code_type, tree_code_length): For
19989 C++17 and later, add inline keyword, otherwise don't define
19990 the arrays, but declare extern arrays.
19991 * tree.cc (tree_code_type, tree_code_length): Define these
19992 arrays for C++14 and older.
19993
19994 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19995
19996 * config/riscv/riscv-vsetvl.h: Change it into public.
19997
19998 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19999
20000 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
20001 pass.
20002
20003 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20004
20005 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
20006
20007 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20008
20009 * config/riscv/vector.md: Fix incorrect attributes.
20010
20011 2023-01-27 Richard Biener <rguenther@suse.de>
20012
20013 PR target/55522
20014 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
20015 Don't add crtfastmath.o for -shared.
20016
20017 2023-01-27 Alexandre Oliva <oliva@gnu.org>
20018
20019 * doc/options.texi (option, RejectNegative): Mention that
20020 -g-started options are also implicitly negatable.
20021
20022 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
20023
20024 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
20025 Use get_typenode_from_name to get fixed-width integer type
20026 nodes.
20027 * config/riscv/riscv-vector-builtins.def: Update define with
20028 fixed-width integer type nodes.
20029
20030 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20031
20032 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
20033 (real_insn_and_same_bb_p): New function.
20034 (same_bb_and_after_or_equal_p): Remove it.
20035 (before_p): New function.
20036 (reg_killed_by_bb_p): Ditto.
20037 (has_vsetvl_killed_avl_p): Ditto.
20038 (get_vl): Move location so that we can call it.
20039 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
20040 (available_occurrence_p): Ditto.
20041 (dominate_probability_p): Remove it.
20042 (can_backward_propagate_p): Remove it.
20043 (get_all_nonphi_defs): New function.
20044 (get_all_predecessors): Ditto.
20045 (any_insn_in_bb_p): Ditto.
20046 (insert_vsetvl): Adjust AVL REG.
20047 (source_equal_p): New function.
20048 (extract_single_source): Ditto.
20049 (avl_info::single_source_equal_p): Ditto.
20050 (avl_info::operator==): Adjust for AVL=REG.
20051 (vl_vtype_info::same_avl_p): Ditto.
20052 (vector_insn_info::set_demand_info): Remove it.
20053 (vector_insn_info::compatible_p): Adjust for AVL=REG.
20054 (vector_insn_info::compatible_avl_p): New function.
20055 (vector_insn_info::merge): Adjust AVL=REG.
20056 (vector_insn_info::dump): Ditto.
20057 (pass_vsetvl::merge_successors): Remove it.
20058 (enum fusion_type): New enum.
20059 (pass_vsetvl::get_backward_fusion_type): New function.
20060 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
20061 (pass_vsetvl::forward_demand_fusion): Ditto.
20062 (pass_vsetvl::demand_fusion): Ditto.
20063 (pass_vsetvl::prune_expressions): Ditto.
20064 (pass_vsetvl::compute_local_properties): Ditto.
20065 (pass_vsetvl::cleanup_vsetvls): Ditto.
20066 (pass_vsetvl::commit_vsetvls): Ditto.
20067 (pass_vsetvl::init): Ditto.
20068 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
20069 (enum merge_type): New enum.
20070
20071 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20072
20073 * config/riscv/riscv-vsetvl.cc
20074 (vector_infos_manager::vector_infos_manager): Add probability.
20075 (vector_infos_manager::dump): Ditto.
20076 (pass_vsetvl::compute_probabilities): Ditto.
20077 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
20078
20079 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20080
20081 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
20082 (vector_insn_info::merge): Ditto.
20083 (vector_insn_info::dump): Ditto.
20084 (pass_vsetvl::merge_successors): Ditto.
20085 (pass_vsetvl::backward_demand_fusion): Ditto.
20086 (pass_vsetvl::forward_demand_fusion): Ditto.
20087 (pass_vsetvl::commit_vsetvls): Ditto.
20088 * config/riscv/riscv-vsetvl.h: Ditto.
20089
20090 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20091
20092 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
20093 rinsn.
20094
20095 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20096
20097 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
20098
20099 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20100
20101 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
20102 Add pre-check for redundant flow.
20103
20104 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20105
20106 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
20107 (vector_infos_manager::free_bitmap_vectors): Ditto.
20108 (pass_vsetvl::pre_vsetvl): Adjust codes.
20109 * config/riscv/riscv-vsetvl.h: New function declaration.
20110
20111 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20112
20113 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
20114 (vector_insn_info::set_demand_info): New function.
20115 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
20116 (pass_vsetvl::merge_successors): Ditto.
20117 (pass_vsetvl::compute_global_backward_infos): Ditto.
20118 (pass_vsetvl::backward_demand_fusion): Ditto.
20119 (pass_vsetvl::forward_demand_fusion): Ditto.
20120 (pass_vsetvl::demand_fusion): New function.
20121 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
20122 * config/riscv/riscv-vsetvl.h: New function declaration.
20123
20124 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20125
20126 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
20127
20128 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20129
20130 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
20131 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
20132
20133 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20134
20135 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
20136 (backward_propagate_worthwhile_p): Fix non-worthwhile.
20137
20138 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20139
20140 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
20141
20142 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20143
20144 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
20145 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
20146 (pass_vsetvl::commit_vsetvls): Ditto.
20147 * config/riscv/riscv-vsetvl.h: New function declaration.
20148
20149 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20150
20151 * config/riscv/vector.md:
20152
20153 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20154
20155 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
20156 pred_store for vse.
20157 * config/riscv/riscv-vector-builtins.cc
20158 (function_expander::add_mem_operand): Refine function.
20159 (function_expander::use_contiguous_load_insn): Adjust new
20160 implementation.
20161 (function_expander::use_contiguous_store_insn): Ditto.
20162 * config/riscv/riscv-vector-builtins.h: Refine function.
20163 * config/riscv/vector.md (@pred_store<mode>): New pattern.
20164
20165 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20166
20167 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
20168
20169 2023-01-26 Marek Polacek <polacek@redhat.com>
20170
20171 PR middle-end/108543
20172 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
20173 if it was previously set.
20174
20175 2023-01-26 Jakub Jelinek <jakub@redhat.com>
20176
20177 PR tree-optimization/108540
20178 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
20179 are singletons, use range_true even if op1 != op2
20180 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
20181 even if intersection of the ranges is empty and one has
20182 zero low bound and another zero high bound, use range_true_and_false
20183 rather than range_false.
20184 (foperator_not_equal::fold_range): If both op1 and op2
20185 are singletons, use range_false even if op1 != op2
20186 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
20187 even if intersection of the ranges is empty and one has
20188 zero low bound and another zero high bound, use range_true_and_false
20189 rather than range_true.
20190
20191 2023-01-26 Jakub Jelinek <jakub@redhat.com>
20192
20193 * value-relation.cc (kind_string): Add const.
20194 (rr_negate_table, rr_swap_table, rr_intersect_table,
20195 rr_union_table, rr_transitive_table): Add static const, change
20196 element type from relation_kind to unsigned char.
20197 (relation_negate, relation_swap, relation_intersect, relation_union,
20198 relation_transitive): Cast rr_*_table element to relation_kind.
20199 (relation_to_code): Add static const.
20200 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
20201
20202 2023-01-26 Richard Biener <rguenther@suse.de>
20203
20204 PR tree-optimization/108547
20205 * gimple-predicate-analysis.cc (value_sat_pred_p):
20206 Use widest_int.
20207
20208 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
20209
20210 PR tree-optimization/108522
20211 * tree-object-size.cc (compute_object_offset): Make EXPR
20212 argument non-const. Call component_ref_field_offset.
20213
20214 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20215
20216 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
20217 FEATURE_STRING field.
20218
20219 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
20220
20221 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
20222
20223 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
20224
20225 PR modula2/102343
20226 PR modula2/108182
20227 * gcc.cc: Provide default specs for Modula-2 so that when the
20228 language is not built-in better diagnostics are emitted for
20229 attempts to use .mod or .m2i file extensions.
20230
20231 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
20232
20233 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
20234
20235 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
20236
20237 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
20238
20239 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
20240
20241 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
20242 Fix spacing.
20243
20244 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
20245
20246 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
20247
20248 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
20249
20250 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
20251
20252 2023-01-25 Richard Biener <rguenther@suse.de>
20253
20254 PR tree-optimization/108523
20255 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
20256 backedge value for the result when using predication to
20257 prove equivalence.
20258
20259 2023-01-25 Richard Biener <rguenther@suse.de>
20260
20261 * doc/lto.texi (Command line options): Reword and update reference
20262 to removed lto_read_all_file_options.
20263
20264 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
20265
20266 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
20267 tests.
20268
20269 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
20270
20271 * doc/contrib.texi: Add Jose E. Marchesi.
20272
20273 2023-01-25 Jakub Jelinek <jakub@redhat.com>
20274
20275 PR tree-optimization/108498
20276 * gimple-ssa-store-merging.cc (class store_operand_info):
20277 End coment with full stop rather than comma.
20278 (split_group): Likewise.
20279 (merged_store_group::apply_stores): Clear string_concatenation if
20280 start or end aren't on a byte boundary.
20281
20282 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
20283 Jakub Jelinek <jakub@redhat.com>
20284
20285 PR tree-optimization/108522
20286 * tree-object-size.cc (compute_object_offset): Use
20287 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
20288
20289 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
20290
20291 * config/xtensa/xtensa.md:
20292 Fix exit from loops detecting references before overwriting in the
20293 split pattern.
20294
20295 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
20296
20297 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
20298 do elimination but only for hard register.
20299 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
20300 calls of get_hard_regno.
20301
20302 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
20303
20304 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
20305 of CPU version.
20306
20307 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
20308
20309 PR target/108177
20310 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
20311 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
20312 as input operand.
20313
20314 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
20315
20316 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
20317 and only include 'csky/t-csky-linux' when enable multilib.
20318 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
20319 define it when disable multilib.
20320
20321 2023-01-24 Richard Biener <rguenther@suse.de>
20322
20323 PR tree-optimization/108500
20324 * dominance.h (calculate_dominance_info): Add parameter
20325 to indicate fast-query compute, defaulted to true.
20326 * dominance.cc (calculate_dominance_info): Honor
20327 fast-query compute parameter.
20328 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
20329 not compute the dominator fast-query DFS numbers.
20330
20331 2023-01-24 Eric Biggers <ebiggers@google.com>
20332
20333 PR bootstrap/90543
20334 * optc-save-gen.awk: Fix copy-and-paste error.
20335
20336 2023-01-24 Jakub Jelinek <jakub@redhat.com>
20337
20338 PR c++/108474
20339 * cgraphbuild.cc: Include gimplify.h.
20340 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
20341 their corresponding DECL_VALUE_EXPR expressions after unsharing.
20342
20343 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20344
20345 PR target/108505
20346 * config.gcc (tm_file): Move the variable out of loop.
20347
20348 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
20349 Yang Yujie <yangyujie@loongson.cn>
20350
20351 PR target/107731
20352 * config/loongarch/loongarch.cc (loongarch_classify_address):
20353 Add precessint for CONST_INT.
20354 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
20355 (loongarch_print_operand): Increase the processing of '%c'.
20356 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
20357 And port the public operand modifiers information to this document.
20358
20359 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20360
20361 * doc/invoke.texi (-mbranch-protection): Update documentation.
20362
20363 2023-01-23 Richard Biener <rguenther@suse.de>
20364
20365 PR target/55522
20366 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
20367 for -shared.
20368 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
20369 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
20370 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
20371 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
20372
20373 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20374
20375 * config/arm/aout.h (ra_auth_code): Add entry in enum.
20376 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
20377 to dwarf frame expression.
20378 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
20379 (arm_expand_prologue): Update frame related information and reg notes
20380 for pac/pacbit insn.
20381 (arm_regno_class): Check for pac pseudo reigster.
20382 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
20383 (arm_init_machine_status): Set pacspval_needed to zero.
20384 (arm_debugger_regno): Check for PAC register.
20385 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
20386 register.
20387 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
20388 (arm_unwind_emit): Update REG_CFA_REGISTER case._
20389 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
20390 (DWARF_PAC_REGNUM): Define.
20391 (IS_PAC_REGNUM): Likewise.
20392 (enum reg_class): Add PAC_REG entry.
20393 (machine_function): Add pacbti_needed state to structure.
20394 * config/arm/arm.md (RA_AUTH_CODE): Define.
20395
20396 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20397
20398 * config.gcc ($tm_file): Update variable.
20399 * config/arm/arm-mlib.h: Create new header file.
20400 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
20401 multilib arch directory.
20402 (MULTILIB_REUSE): Add multilib reuse rules.
20403 (MULTILIB_MATCHES): Add multilib match rules.
20404
20405 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20406
20407 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
20408 * config/arm/arm-tables.opt: Regenerate.
20409 * config/arm/arm-tune.md: Likewise.
20410 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
20411 * (-mfix-cmse-cve-2021-35465): Likewise.
20412
20413 2023-01-23 Richard Biener <rguenther@suse.de>
20414
20415 PR tree-optimization/108482
20416 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
20417 .LOOP_DIST_ALIAS calls.
20418
20419 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20420
20421 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
20422 * config/arm/arm-protos.h: Update.
20423 * config/arm/aarch-common-protos.h: Declare
20424 'aarch_bti_arch_check'.
20425 * config/arm/arm.cc (aarch_bti_enabled) Update.
20426 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
20427 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
20428 * config/arm/arm.md (bti_nop): New insn.
20429 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
20430 (aarch-bti-insert.o): New target.
20431 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
20432 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
20433 compatibility.
20434 (gate): Make use of 'aarch_bti_arch_check'.
20435 * config/arm/arm-passes.def: New file.
20436 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
20437
20438 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20439
20440 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
20441 'aarch-bti-insert.o'.
20442 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
20443 proto.
20444 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
20445 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
20446 (aarch64_output_mi_thunk)
20447 (aarch64_print_patchable_function_entry)
20448 (aarch64_file_end_indicate_exec_stack): Update renamed function
20449 calls to renamed functions.
20450 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
20451 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
20452 target.
20453 * config/aarch64/aarch64-bti-insert.cc: Delete.
20454 * config/arm/aarch-bti-insert.cc: New file including and
20455 generalizing code from aarch64-bti-insert.cc.
20456 * config/arm/aarch-common-protos.h: Update.
20457
20458 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20459
20460 * config/arm/arm.h (arm_arch8m_main): Declare it.
20461 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
20462 Declare it.
20463 * config/arm/arm.cc (arm_arch8m_main): Define it.
20464 (arm_option_reconfigure_globals): Set arm_arch8m_main.
20465 (arm_compute_frame_layout, arm_expand_prologue)
20466 (thumb2_expand_return, arm_expand_epilogue)
20467 (arm_conditional_register_usage): Update for pac codegen.
20468 (arm_current_function_pac_enabled_p): New function.
20469 (aarch_bti_enabled) New function.
20470 (use_return_insn): Return zero when pac is enabled.
20471 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
20472 Add new patterns.
20473 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
20474 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
20475
20476 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20477
20478 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
20479 mbranch-protection.
20480
20481 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20482 Tejas Belagod <tbelagod@arm.com>
20483
20484 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
20485 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
20486
20487 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20488 Tejas Belagod <tbelagod@arm.com>
20489 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20490
20491 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
20492 new pseudo register class _UVRSC_PAC.
20493
20494 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20495 Tejas Belagod <tbelagod@arm.com>
20496
20497 * config/arm/arm-c.cc (arm_cpu_builtins): Define
20498 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
20499 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
20500
20501 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20502 Tejas Belagod <tbelagod@arm.com>
20503
20504 * doc/sourcebuild.texi: Document arm_pacbti_hw.
20505
20506 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20507 Tejas Belagod <tbelagod@arm.com>
20508 Richard Earnshaw <Richard.Earnshaw@arm.com>
20509
20510 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
20511 -mbranch-protection option and initialize appropriate data structures.
20512 * config/arm/arm.opt (-mbranch-protection): New option.
20513 * doc/invoke.texi (Arm Options): Document it.
20514
20515 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20516 Tejas Belagod <tbelagod@arm.com>
20517
20518 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
20519 * config/arm/arm-cpus.in (pacbti): New feature.
20520 * doc/invoke.texi (Arm Options): Document it.
20521
20522 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
20523 Tejas Belagod <tbelagod@arm.com>
20524
20525 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
20526 (all_architectures): Fix comment.
20527 (aarch64_parse_extension): Rename return type, enum value names.
20528 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
20529 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
20530 Also rename corresponding enum values.
20531 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
20532 out aarch64_function_type and move it to common code as
20533 aarch_function_type in aarch-common.h.
20534 * config/aarch64/aarch64-protos.h: Include common types header,
20535 move out types aarch64_parse_opt_result and aarch64_key_type to
20536 aarch-common.h
20537 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
20538 and functions out into aarch-common.h and aarch-common.cc. Fix up
20539 all the name changes resulting from the move.
20540 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
20541 and enum value.
20542 * config/aarch64/aarch64.opt: Include aarch-common.h to import
20543 type move. Fix up name changes from factoring out common code and
20544 data.
20545 * config/arm/aarch-common-protos.h: Export factored out routines to both
20546 backends.
20547 * config/arm/aarch-common.cc: Include newly factored out types.
20548 Move all mbranch-protection code and data structures from
20549 aarch64.cc.
20550 * config/arm/aarch-common.h: New header that declares types shared
20551 between aarch32 and aarch64 backends.
20552 * config/arm/arm-protos.h: Declare types and variables that are
20553 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
20554 aarch_ra_sign_scope and aarch_enable_bti.
20555 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
20556 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
20557 * config/arm/arm.cc: Add missing includes.
20558
20559 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
20560
20561 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
20562
20563 2023-01-23 Richard Biener <rguenther@suse.de>
20564
20565 PR tree-optimization/108449
20566 * cgraphunit.cc (check_global_declaration): Do not turn
20567 undefined statics into externs.
20568
20569 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
20570
20571 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
20572 and HI input modes.
20573 * config/pru/pru.md (clz): Fix generated code for QI and HI
20574 input modes.
20575
20576 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
20577
20578 * config/v850/v850.cc (v850_select_section): Put const volatile
20579 objects into read-only sections.
20580
20581 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
20582
20583 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
20584 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
20585 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
20586
20587 2023-01-20 Jakub Jelinek <jakub@redhat.com>
20588
20589 PR tree-optimization/108457
20590 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
20591 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
20592 argument instead of a temporary. Formatting fixes.
20593
20594 2023-01-19 Jakub Jelinek <jakub@redhat.com>
20595
20596 PR tree-optimization/108447
20597 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
20598 (relation_tests): Add self-tests for relation_{intersect,union}
20599 commutativity.
20600 * selftest.h (relation_tests): Declare.
20601 * function-tests.cc (test_ranges): Call it.
20602
20603 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
20604
20605 PR target/108436
20606 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
20607 invalid third argument to __builtin_ia32_prefetch.
20608
20609 2023-01-19 Jakub Jelinek <jakub@redhat.com>
20610
20611 PR middle-end/108459
20612 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
20613 than fold_unary for NEGATE_EXPR.
20614
20615 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
20616
20617 PR target/108411
20618 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
20619 comment. Move assert about alignment a bit later.
20620
20621 2023-01-19 Jakub Jelinek <jakub@redhat.com>
20622
20623 PR tree-optimization/108440
20624 * tree-ssa-forwprop.cc: Include gimple-range.h.
20625 (simplify_rotate): For the forms with T2 wider than T and shift counts of
20626 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
20627 to B. For the forms with T2 wider than T and shift counts of
20628 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
20629 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
20630 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
20631 pass specific ranger instead of get_global_range_query.
20632 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
20633 been created.
20634
20635 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20636
20637 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
20638 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
20639 the pattern.
20640 (aarch64_simd_vec_copy_lane<mode>): Likewise.
20641 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
20642
20643 2023-01-19 Alexandre Oliva <oliva@adacore.com>
20644
20645 PR debug/106746
20646 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
20647 within debug insns.
20648
20649 2023-01-18 Martin Jambor <mjambor@suse.cz>
20650
20651 PR ipa/107944
20652 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
20653 lcone_of chain also do not need the body.
20654
20655 2023-01-18 Richard Biener <rguenther@suse.de>
20656
20657 Revert:
20658 2022-12-16 Richard Biener <rguenther@suse.de>
20659
20660 PR middle-end/108086
20661 * tree-inline.cc (remap_ssa_name): Do not unshare the
20662 result from the decl_map.
20663
20664 2023-01-18 Murray Steele <murray.steele@arm.com>
20665
20666 PR target/108442
20667 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
20668 function.
20669 (__arm_vst1q_p_s8): Likewise.
20670 (__arm_vld1q_z_u8): Likewise.
20671 (__arm_vld1q_z_s8): Likewise.
20672 (__arm_vst1q_p_u16): Likewise.
20673 (__arm_vst1q_p_s16): Likewise.
20674 (__arm_vld1q_z_u16): Likewise.
20675 (__arm_vld1q_z_s16): Likewise.
20676 (__arm_vst1q_p_u32): Likewise.
20677 (__arm_vst1q_p_s32): Likewise.
20678 (__arm_vld1q_z_u32): Likewise.
20679 (__arm_vld1q_z_s32): Likewise.
20680 (__arm_vld1q_z_f16): Likewise.
20681 (__arm_vst1q_p_f16): Likewise.
20682 (__arm_vld1q_z_f32): Likewise.
20683 (__arm_vst1q_p_f32): Likewise.
20684
20685 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
20686
20687 * config/xtensa/xtensa.md (xorsi3_internal):
20688 Rename from the original of "xorsi3".
20689 (xorsi3): New expansion pattern that emits addition rather than
20690 bitwise-XOR when the second source is a constant of -2147483648
20691 if TARGET_DENSITY.
20692
20693 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
20694 Andrew Pinski <apinski@marvell.com>
20695
20696 PR target/108396
20697 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
20698 vec_vsubcuqP with vec_vsubcuq.
20699
20700 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
20701
20702 PR target/108348
20703 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
20704 support for invalid uses of MMA opaque type in function arguments.
20705
20706 2023-01-18 liuhongt <hongtao.liu@intel.com>
20707
20708 PR target/55522
20709 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
20710 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
20711 -share or -mno-daz-ftz is specified.
20712 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
20713 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
20714
20715 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
20716
20717 * config/bpf/bpf.cc (bpf_option_override): Disable
20718 -fstack-protector.
20719
20720 2023-01-17 Jakub Jelinek <jakub@redhat.com>
20721
20722 PR tree-optimization/106523
20723 * tree-ssa-forwprop.cc (simplify_rotate): For the
20724 patterns with (-Y) & (B - 1) in one operand's shift
20725 count and Y in another, if T2 has wider precision than T,
20726 punt if Y could have a value in [B, B2 - 1] range.
20727
20728 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
20729
20730 PR target/105980
20731 * config/i386/i386.cc (x86_output_mi_thunk): Disable
20732 -mforce-indirect-call for PIC in 32-bit mode.
20733
20734 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
20735
20736 PR ipa/106077
20737 * ipa-modref.cc (modref_access_analysis::analyze): Use
20738 find_always_executed_bbs.
20739 * ipa-sra.cc (process_scan_results): Likewise.
20740 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
20741 (find_always_executed_bbs): New function.
20742 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
20743 (find_always_executed_bbs): Declare.
20744
20745 2023-01-16 Jan Hubicka <jh@suse.cz>
20746
20747 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
20748 by TARGET_USE_SCATTER.
20749 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
20750 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
20751 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
20752 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
20753 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
20754 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
20755
20756 2023-01-16 Richard Biener <rguenther@suse.de>
20757
20758 PR target/55522
20759 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
20760
20761 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
20762
20763 PR target/96795
20764 PR target/107515
20765 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
20766 (__ARM_mve_coerce3): Likewise.
20767
20768 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
20769
20770 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
20771
20772 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
20773
20774 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
20775 (number_of_iterations_bitcount): Add call to the above.
20776 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
20777 c[lt]z idiom recognition.
20778
20779 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
20780
20781 * doc/sourcebuild.texi: Add missing target attributes.
20782
20783 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
20784
20785 PR tree-optimization/94793
20786 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
20787 for c[lt]z optabs.
20788 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
20789 (number_of_iterations_cltz_complement): New.
20790 (number_of_iterations_bitcount): Add call to the above.
20791
20792 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
20793
20794 * doc/extend.texi (Common Function Attributes): Fix grammar.
20795
20796 2023-01-16 Jakub Jelinek <jakub@redhat.com>
20797
20798 PR other/108413
20799 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
20800 * config/riscv/riscv-vsetvl.cc: Likewise.
20801
20802 2023-01-16 Jakub Jelinek <jakub@redhat.com>
20803
20804 PR c++/105593
20805 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
20806 disable -Winit-self using pragma GCC diagnostic ignored.
20807 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
20808 Likewise.
20809 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
20810 _mm256_undefined_si256): Likewise.
20811 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
20812 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
20813 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
20814 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
20815
20816 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
20817
20818 PR target/108272
20819 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
20820 support for invalid uses in inline asm, factor out the checking and
20821 erroring to lambda function check_and_error_invalid_use.
20822
20823 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
20824
20825 PR tree-optimization/107608
20826 * range-op-float.cc (range_operator_float::fold_range): Avoid
20827 folding into INF when flag_trapping_math.
20828 * value-range.h (frange::known_isinf): Return false for possible NANs.
20829
20830 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
20831
20832 * config.gcc (csky-*-*): Support --with-float=softfp.
20833
20834 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
20835
20836 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
20837 Rename to xtensa_adjust_reg_alloc_order.
20838 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
20839 Ditto. And also remove code to reorder register numbers for
20840 leaf functions, rename the tables, and adjust the allocation
20841 order for the call0 ABI to use register A0 more.
20842 (xtensa_leaf_regs): Remove.
20843 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
20844 (order_regs_for_local_alloc): Rename as the above.
20845 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
20846
20847 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20848
20849 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
20850 Change to define_insn_and_split to fold ldr+dup to ld1rq.
20851 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
20852
20853 2023-01-14 Alexandre Oliva <oliva@adacore.com>
20854
20855 * hash-table.h (is_deleted): Precheck !is_empty.
20856 (mark_deleted): Postcheck !is_empty.
20857 (copy constructor): Test is_empty before is_deleted.
20858
20859 2023-01-14 Alexandre Oliva <oliva@adacore.com>
20860
20861 PR target/40457
20862 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
20863 moves.
20864
20865 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
20866
20867 PR rtl-optimization/108274
20868 * function.cc (thread_prologue_and_epilogue_insns): Also update the
20869 DF information for calls in a few more cases.
20870
20871 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
20872
20873 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
20874 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
20875 define.
20876 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
20877 (MAX_SYNC_LIBFUNC_SIZE): Define.
20878 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
20879 enabled.
20880 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
20881 libcall when sync libcalls are disabled.
20882 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
20883 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
20884 are disabled on 32-bit target.
20885 * config/pa/pa.opt (matomic-libcalls): New option.
20886 * doc/invoke.texi (HPPA Options): Update.
20887
20888 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
20889
20890 PR rtl-optimization/108117
20891 PR rtl-optimization/108132
20892 * sched-deps.cc (deps_analyze_insn): Do not schedule across
20893 calls before reload.
20894
20895 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20896
20897 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
20898 options for -mlibarch.
20899 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
20900 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
20901
20902 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
20903
20904 * attribs.cc (strict_flex_array_level_of): Move this function to ...
20905 * attribs.h (strict_flex_array_level_of): Remove the declaration.
20906 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
20907 replace the referece to strict_flex_array_level_of with
20908 DECL_NOT_FLEXARRAY.
20909 * tree.cc (component_ref_size): Likewise.
20910
20911 2023-01-13 Richard Biener <rguenther@suse.de>
20912
20913 PR target/55522
20914 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
20915 crtfastmath.o for -shared.
20916 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
20917
20918 2023-01-13 Richard Biener <rguenther@suse.de>
20919
20920 PR target/55522
20921 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
20922 crtfastmath.o for -shared.
20923 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
20924 Likewise.
20925 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
20926 Likewise.
20927
20928 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
20929
20930 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
20931 function.
20932 (TARGET_DWARF_FRAME_REG_MODE): Define.
20933
20934 2023-01-13 Richard Biener <rguenther@suse.de>
20935
20936 PR target/107209
20937 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
20938 update EH info on the fly.
20939
20940 2023-01-13 Richard Biener <rguenther@suse.de>
20941
20942 PR tree-optimization/108387
20943 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
20944 value before inserting expression into the tables.
20945
20946 2023-01-12 Andrew Pinski <apinski@marvell.com>
20947 Roger Sayle <roger@nextmovesoftware.com>
20948
20949 PR tree-optimization/92342
20950 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
20951 Use tcc_comparison and :c for the multiply.
20952 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
20953
20954 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
20955 Richard Sandiford <richard.sandiford@arm.com>
20956
20957 PR target/105549
20958 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
20959 Check DECL_PACKED for bitfield.
20960 (aarch64_layout_arg): Warn when parameter passing ABI changes.
20961 (aarch64_function_arg_boundary): Do not warn here.
20962 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
20963 changes.
20964
20965 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
20966 Richard Sandiford <richard.sandiford@arm.com>
20967
20968 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
20969 comment.
20970 (aarch64_layout_arg): Factorize warning conditions.
20971 (aarch64_function_arg_boundary): Fix typo.
20972 * function.cc (currently_expanding_function_start): New variable.
20973 (expand_function_start): Handle
20974 currently_expanding_function_start.
20975 * function.h (currently_expanding_function_start): Declare.
20976
20977 2023-01-12 Richard Biener <rguenther@suse.de>
20978
20979 PR tree-optimization/99412
20980 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
20981 (swap_ops_for_binary_stmt): Remove reduction handling.
20982 (rewrite_expr_tree_parallel): Adjust.
20983 (reassociate_bb): Likewise.
20984 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
20985
20986 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
20987
20988 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
20989 Rearrange the emitting codes.
20990
20991 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
20992
20993 * config/xtensa/xtensa.md (*btrue):
20994 Correct value of the attribute "length" that depends on
20995 TARGET_DENSITY and operands, and add '?' character to the register
20996 constraint of the compared operand.
20997
20998 2023-01-12 Alexandre Oliva <oliva@adacore.com>
20999
21000 * hash-table.h (expand): Check elements and deleted counts.
21001 (verify): Likewise.
21002
21003 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
21004
21005 PR tree-optimization/71343
21006 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
21007 the value number of the expression X << C the same as the value
21008 number for the multiplication X * (1<<C).
21009
21010 2023-01-11 David Faust <david.faust@oracle.com>
21011
21012 PR target/108293
21013 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
21014 floating point modes.
21015
21016 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
21017
21018 PR tree-optimization/108199
21019 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
21020 for bit-field references.
21021
21022 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
21023
21024 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
21025 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
21026 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
21027 OPTION_MASK_P10_FUSION.
21028
21029 2023-01-11 Richard Biener <rguenther@suse.de>
21030
21031 PR tree-optimization/107767
21032 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
21033 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
21034 * tree-switch-conversion.cc (switch_conversion::collect):
21035 Count unique non-default targets accounting for later
21036 merging opportunities.
21037
21038 2023-01-11 Martin Liska <mliska@suse.cz>
21039
21040 PR middle-end/107976
21041 * params.opt: Limit JT params.
21042 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
21043
21044 2023-01-11 Richard Biener <rguenther@suse.de>
21045
21046 PR tree-optimization/108352
21047 * tree-ssa-threadbackward.cc
21048 (back_threader_profitability::profitable_path_p): Adjust
21049 heuristic that allows non-multi-way branch threads creating
21050 irreducible loops.
21051 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
21052 (--param fsm-scale-path-stmts): Adjust.
21053 * params.opt (--param=fsm-scale-path-blocks=): Remove.
21054 (-param=fsm-scale-path-stmts=): Adjust description.
21055
21056 2023-01-11 Richard Biener <rguenther@suse.de>
21057
21058 PR tree-optimization/108353
21059 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
21060 Remove.
21061 (add_ssa_edge): Simplify.
21062 (add_control_edge): Likewise.
21063 (ssa_prop_init): Likewise.
21064 (ssa_prop_fini): Likewise.
21065 (ssa_propagation_engine::ssa_propagate): Likewise.
21066
21067 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
21068
21069 * config/s390/s390.md (*not<mode>): New pattern.
21070
21071 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21072
21073 * config/xtensa/xtensa.cc (xtensa_insn_cost):
21074 Let insn cost for size be obtained by applying COSTS_N_INSNS()
21075 to instruction length and then dividing by 3.
21076
21077 2023-01-10 Richard Biener <rguenther@suse.de>
21078
21079 PR tree-optimization/106293
21080 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
21081 process degenerate PHI defs.
21082
21083 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
21084
21085 PR rtl-optimization/106421
21086 * cprop.cc (bypass_block): Check that DEST is local to this
21087 function (non-NULL) before calling find_edge.
21088
21089 2023-01-10 Martin Jambor <mjambor@suse.cz>
21090
21091 PR ipa/108110
21092 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
21093 sort_replacements, lookup_first_base_replacement and
21094 m_sorted_replacements_p.
21095 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
21096 (ipa_param_body_adjustments::register_replacement): Set
21097 m_sorted_replacements_p to false.
21098 (compare_param_body_replacement): New function.
21099 (ipa_param_body_adjustments::sort_replacements): Likewise.
21100 (ipa_param_body_adjustments::common_initialization): Call
21101 sort_replacements.
21102 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
21103 m_sorted_replacements_p.
21104 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
21105 std::lower_bound.
21106 (ipa_param_body_adjustments::lookup_first_base_replacement): New
21107 function.
21108 (ipa_param_body_adjustments::modify_call_stmt): Use
21109 lookup_first_base_replacement.
21110 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
21111 adjustments->sort_replacements.
21112
21113 2023-01-10 Richard Biener <rguenther@suse.de>
21114
21115 PR tree-optimization/108314
21116 * tree-vect-stmts.cc (vectorizable_condition): Do not
21117 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
21118
21119 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21120
21121 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
21122
21123 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21124
21125 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
21126
21127 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21128
21129 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
21130 defines for soft float abi.
21131
21132 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21133
21134 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
21135 (smart_bclri): Likewise.
21136 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
21137 (fast_bclri): Likewise.
21138 (fast_cmpnesi_i): Likewise.
21139 (*fast_cmpltsi_i): Likewise.
21140 (*fast_cmpgeusi_i): Likewise.
21141
21142 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21143
21144 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
21145 flag_fp_int_builtin_inexact || !flag_trapping_math.
21146 (<frm_pattern><mode>2): Likewise.
21147
21148 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
21149
21150 * config/s390/s390.cc (s390_register_info): Check call_used_regs
21151 instead of hard-coding the register numbers for call saved
21152 registers.
21153 (s390_optimize_register_info): Likewise.
21154
21155 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
21156
21157 * doc/gm2.texi (Overview): Fix @node markers.
21158 (Using): Likewise. Remove subsections that were moved to Overview
21159 from the menu and move others around.
21160
21161 2023-01-09 Richard Biener <rguenther@suse.de>
21162
21163 PR middle-end/108209
21164 * genmatch.cc (commutative_op): Fix return value for
21165 user-id with non-commutative first replacement.
21166
21167 2023-01-09 Jakub Jelinek <jakub@redhat.com>
21168
21169 PR target/107453
21170 * calls.cc (expand_call): For calls with
21171 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
21172 Formatting fix.
21173
21174 2023-01-09 Richard Biener <rguenther@suse.de>
21175
21176 PR middle-end/69482
21177 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
21178 qualified accesses also force objects to memory.
21179
21180 2023-01-09 Martin Liska <mliska@suse.cz>
21181
21182 PR lto/108330
21183 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
21184 NULL (deleleted value) to a hash_set.
21185
21186 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21187
21188 * config/xtensa/xtensa.md (*splice_bits):
21189 New insn_and_split pattern.
21190
21191 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21192
21193 * config/xtensa/xtensa.cc
21194 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
21195 New helper functions.
21196 (xtensa_set_return_address, xtensa_output_mi_thunk):
21197 Change to use the helper function.
21198 (xtensa_emit_adjust_stack_ptr): Ditto.
21199 And also change to try reusing the content of scratch register
21200 A9 if the register is not modified in the function body.
21201
21202 2023-01-07 LIU Hao <lh_mouse@126.com>
21203
21204 PR middle-end/108300
21205 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
21206 before <windows.h>.
21207 * diagnostic-color.cc: Likewise.
21208 * plugin.cc: Likewise.
21209 * prefix.cc: Likewise.
21210
21211 2023-01-06 Joseph Myers <joseph@codesourcery.com>
21212
21213 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
21214 for handling real integer types.
21215
21216 2023-01-06 Tamar Christina <tamar.christina@arm.com>
21217
21218 Revert:
21219 2022-12-12 Tamar Christina <tamar.christina@arm.com>
21220
21221 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
21222 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
21223 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
21224 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
21225 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
21226 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
21227 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
21228 (aarch64_simd_dupv2hf): New.
21229 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
21230 Add E_V2HFmode.
21231 * config/aarch64/iterators.md (VHSDF_P): New.
21232 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
21233 Vel, q, vp): Add V2HF.
21234 * config/arm/types.md (neon_fp_reduc_add_h): New.
21235
21236 2023-01-06 Martin Liska <mliska@suse.cz>
21237
21238 PR middle-end/107966
21239 * doc/options.texi: Fix Var documentation in internal manual.
21240
21241 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
21242
21243 Revert:
21244 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
21245
21246 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
21247 RTL expansion to allow condition (mask) to be shared/reused,
21248 by avoiding overwriting pseudos and adding REG_EQUAL notes.
21249
21250 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
21251
21252 * common.opt: Add -static-libgm2.
21253 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
21254 * doc/gm2.texi: Document static-libgm2.
21255 * gcc.cc (driver_handle_option): Allow static-libgm2.
21256
21257 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
21258
21259 * common/config/i386/i386-common.cc (processor_alias_table):
21260 Use CPU_ZNVER4 for znver4.
21261 * config/i386/i386.md: Add znver4.md.
21262 * config/i386/znver4.md: New.
21263
21264 2023-01-04 Jakub Jelinek <jakub@redhat.com>
21265
21266 PR tree-optimization/108253
21267 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
21268 types.
21269
21270 2023-01-04 Jakub Jelinek <jakub@redhat.com>
21271
21272 PR middle-end/108237
21273 * generic-match-head.cc: Include tree-pass.h.
21274 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
21275 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
21276 resp. PROP_gimple_lvec property set.
21277
21278 2023-01-04 Jakub Jelinek <jakub@redhat.com>
21279
21280 PR sanitizer/108256
21281 * convert.cc (do_narrow): Punt for MULT_EXPR if original
21282 type doesn't wrap around and -fsanitize=signed-integer-overflow
21283 is on.
21284 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
21285
21286 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
21287
21288 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
21289 * common/config/i386/i386-common.cc: Add Emeraldrapids.
21290
21291 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
21292
21293 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
21294 for meteorlake.
21295
21296 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
21297
21298 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
21299 default constructor to initialize it.
21300 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
21301 for last and iterate to handle recursive calls. Delete leftover
21302 candidates at the end.
21303 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
21304 on local clones.
21305 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
21306 gc_candidate bit when a clone is used.
21307
21308 2023-01-03 Florian Weimer <fweimer@redhat.com>
21309
21310 Revert:
21311 2023-01-02 Florian Weimer <fweimer@redhat.com>
21312
21313 * dwarf2cfi.cc (init_return_column_size): Remove.
21314 (init_one_dwarf_reg_size): Adjust.
21315 (generate_dwarf_reg_sizes): New function. Extracted
21316 from expand_builtin_init_dwarf_reg_sizes.
21317 (expand_builtin_init_dwarf_reg_sizes): Call
21318 generate_dwarf_reg_sizes.
21319 * target.def (init_dwarf_reg_sizes_extra): Adjust
21320 hook signature.
21321 * config/msp430/msp430.cc
21322 (msp430_init_dwarf_reg_sizes_extra): Adjust.
21323 * config/rs6000/rs6000.cc
21324 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
21325 * doc/tm.texi: Update.
21326
21327 2023-01-03 Florian Weimer <fweimer@redhat.com>
21328
21329 Revert:
21330 2023-01-02 Florian Weimer <fweimer@redhat.com>
21331
21332 * debug.h (dwarf_reg_sizes_constant): Declare.
21333 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
21334
21335 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
21336
21337 PR tree-optimization/105043
21338 * doc/extend.texi (Object Size Checking): Split out into two
21339 subsections and mention _FORTIFY_SOURCE.
21340
21341 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
21342
21343 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
21344 RTL expansion to allow condition (mask) to be shared/reused,
21345 by avoiding overwriting pseudos and adding REG_EQUAL notes.
21346
21347 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
21348
21349 PR target/108229
21350 * config/i386/i386-features.cc
21351 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
21352 the gain/cost of converting a MEM operand.
21353
21354 2023-01-03 Jakub Jelinek <jakub@redhat.com>
21355
21356 PR middle-end/108264
21357 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
21358 from source which doesn't have scalar integral mode first convert
21359 it to outer_mode.
21360
21361 2023-01-03 Jakub Jelinek <jakub@redhat.com>
21362
21363 PR rtl-optimization/108263
21364 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
21365 asm goto to EXIT.
21366
21367 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
21368
21369 PR target/87832
21370 * config/i386/lujiazui.md (lujiazui_div): New automaton.
21371 (lua_div): New unit.
21372 (lua_idiv_qi): Correct unit in the reservation.
21373 (lua_idiv_qi_load): Ditto.
21374 (lua_idiv_hi): Ditto.
21375 (lua_idiv_hi_load): Ditto.
21376 (lua_idiv_si): Ditto.
21377 (lua_idiv_si_load): Ditto.
21378 (lua_idiv_di): Ditto.
21379 (lua_idiv_di_load): Ditto.
21380 (lua_fdiv_SF): Ditto.
21381 (lua_fdiv_SF_load): Ditto.
21382 (lua_fdiv_DF): Ditto.
21383 (lua_fdiv_DF_load): Ditto.
21384 (lua_fdiv_XF): Ditto.
21385 (lua_fdiv_XF_load): Ditto.
21386 (lua_ssediv_SF): Ditto.
21387 (lua_ssediv_load_SF): Ditto.
21388 (lua_ssediv_V4SF): Ditto.
21389 (lua_ssediv_load_V4SF): Ditto.
21390 (lua_ssediv_V8SF): Ditto.
21391 (lua_ssediv_load_V8SF): Ditto.
21392 (lua_ssediv_SD): Ditto.
21393 (lua_ssediv_load_SD): Ditto.
21394 (lua_ssediv_V2DF): Ditto.
21395 (lua_ssediv_load_V2DF): Ditto.
21396 (lua_ssediv_V4DF): Ditto.
21397 (lua_ssediv_load_V4DF): Ditto.
21398
21399 2023-01-02 Florian Weimer <fweimer@redhat.com>
21400
21401 * debug.h (dwarf_reg_sizes_constant): Declare.
21402 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
21403
21404 2023-01-02 Florian Weimer <fweimer@redhat.com>
21405
21406 * dwarf2cfi.cc (init_return_column_size): Remove.
21407 (init_one_dwarf_reg_size): Adjust.
21408 (generate_dwarf_reg_sizes): New function. Extracted
21409 from expand_builtin_init_dwarf_reg_sizes.
21410 (expand_builtin_init_dwarf_reg_sizes): Call
21411 generate_dwarf_reg_sizes.
21412 * target.def (init_dwarf_reg_sizes_extra): Adjust
21413 hook signature.
21414 * config/msp430/msp430.cc
21415 (msp430_init_dwarf_reg_sizes_extra): Adjust.
21416 * config/rs6000/rs6000.cc
21417 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
21418 * doc/tm.texi: Update.
21419
21420 2023-01-02 Jakub Jelinek <jakub@redhat.com>
21421
21422 * gcc.cc (process_command): Update copyright notice dates.
21423 * gcov-dump.cc (print_version): Ditto.
21424 * gcov.cc (print_version): Ditto.
21425 * gcov-tool.cc (print_version): Ditto.
21426 * gengtype.cc (create_file): Ditto.
21427 * doc/cpp.texi: Bump @copying's copyright year.
21428 * doc/cppinternals.texi: Ditto.
21429 * doc/gcc.texi: Ditto.
21430 * doc/gccint.texi: Ditto.
21431 * doc/gcov.texi: Ditto.
21432 * doc/install.texi: Ditto.
21433 * doc/invoke.texi: Ditto.
21434
21435 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
21436 Uroš Bizjak <ubizjak@gmail.com>
21437
21438 * config/i386/i386.md (extendditi2): New define_insn.
21439 (define_split): Use DWIH mode iterator to treat new extendditi2
21440 identically to existing extendsidi2_1.
21441 (define_peephole2): Likewise.
21442 (define_peephole2): Likewise.
21443 (define_Split): Likewise.
21444
21445 \f
21446 Copyright (C) 2023 Free Software Foundation, Inc.
21447
21448 Copying and distribution of this file, with or without modification,
21449 are permitted in any medium without royalty provided the copyright
21450 notice and this notice are preserved.