]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2023-06-12 Jeff Law <jlaw@ventanamicro.com>
2
3 PR rtl-optimization/101188
4 * postreload.cc (reload_cse_move2add_invalidate): New function,
5 extracted from...
6 (reload_cse_move2add): Call reload_cse_move2add_invalidate.
7
8 2023-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9
10 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Tweak condition
11 if (n_var == n_elts && n_elts <= 16) to allow a single constant,
12 and if maxv == 1, use constant element for duplicating into register.
13
14 2023-06-12 Tobias Burnus <tobias@codesourcery.com>
15
16 * gimplify.cc (gimplify_adjust_omp_clauses_1): Use
17 GOMP_MAP_FORCE_PRESENT for 'present alloc' implicit mapping.
18 (gimplify_adjust_omp_clauses): Change
19 GOMP_MAP_PRESENT_{TO,TOFROM,FROM,ALLOC} to the equivalent
20 GOMP_MAP_FORCE_PRESENT.
21 * omp-low.cc (lower_omp_target): Remove handling of no-longer valid
22 GOMP_MAP_PRESENT_{TO,TOFROM,FROM,ALLOC}; update map kinds used for
23 to/from clauses with present modifier.
24
25 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
26
27 PR tree-optimization/110205
28 * range-op-float.cc (range_operator::fold_range): Add default FII
29 fold routine.
30 * range-op-mixed.h (class operator_gt): Add missing final overrides.
31 * range-op.cc (range_op_handler::fold_range): Add RO_FII case.
32 (operator_lshift ::update_bitmask): Add final override.
33 (operator_rshift ::update_bitmask): Add final override.
34 * range-op.h (range_operator::fold_range): Add FII prototype.
35
36 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
37
38 * gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
39 Use range_op_handler directly.
40 * range-op.cc (range_op_handler::range_op_handler): Unsigned
41 param instead of tree-code.
42 (ptr_op_widen_plus_signed): Delete.
43 (ptr_op_widen_plus_unsigned): Delete.
44 (ptr_op_widen_mult_signed): Delete.
45 (ptr_op_widen_mult_unsigned): Delete.
46 (range_op_table::initialize_integral_ops): Add new opcodes.
47 * range-op.h (range_op_handler): Use unsigned.
48 (OP_WIDEN_MULT_SIGNED): New.
49 (OP_WIDEN_MULT_UNSIGNED): New.
50 (OP_WIDEN_PLUS_SIGNED): New.
51 (OP_WIDEN_PLUS_UNSIGNED): New.
52 (RANGE_OP_TABLE_SIZE): New.
53 (range_op_table::operator []): Use unsigned.
54 (range_op_table::set): Use unsigned.
55 (m_range_tree): Make unsigned.
56 (ptr_op_widen_mult_signed): Remove.
57 (ptr_op_widen_mult_unsigned): Remove.
58 (ptr_op_widen_plus_signed): Remove.
59 (ptr_op_widen_plus_unsigned): Remove.
60
61 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
62
63 * gimple-range-op.cc (gimple_range_op_handler): Set m_operator
64 manually as there is no access to the default operator.
65 (cfn_copysign::fold_range): Don't check for validity.
66 (cfn_ubsan::fold_range): Ditto.
67 (gimple_range_op_handler::maybe_builtin_call): Don't set to NULL.
68 * range-op.cc (default_operator): New.
69 (range_op_handler::range_op_handler): Use default_operator
70 instead of NULL.
71 (range_op_handler::operator bool): Move from header, compare
72 against default operator.
73 (range_op_handler::range_op): New.
74 * range-op.h (range_op_handler::operator bool): Move.
75
76 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
77
78 * range-op.cc (unified_table): Delete.
79 (range_op_table operator_table): Instantiate.
80 (range_op_table::range_op_table): Rename from unified_table.
81 (range_op_handler::range_op_handler): Use range_op_table.
82 * range-op.h (range_op_table::operator []): Inline.
83 (range_op_table::set): Inline.
84
85 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
86
87 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Do not
88 pass type.
89 * gimple-range-op.cc (get_code): Rename from get_code_and_type
90 and simplify.
91 (gimple_range_op_handler::supported_p): No need for type.
92 (gimple_range_op_handler::gimple_range_op_handler): Ditto.
93 (cfn_copysign::fold_range): Ditto.
94 (cfn_ubsan::fold_range): Ditto.
95 * ipa-cp.cc (ipa_vr_operation_and_type_effects): Ditto.
96 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Ditto.
97 * range-op-float.cc (operator_plus::op1_range): Ditto.
98 (operator_mult::op1_range): Ditto.
99 (range_op_float_tests): Ditto.
100 * range-op.cc (get_op_handler): Remove.
101 (range_op_handler::set_op_handler): Remove.
102 (operator_plus::op1_range): No need for type.
103 (operator_minus::op1_range): Ditto.
104 (operator_mult::op1_range): Ditto.
105 (operator_exact_divide::op1_range): Ditto.
106 (operator_cast::op1_range): Ditto.
107 (perator_bitwise_not::fold_range): Ditto.
108 (operator_negate::fold_range): Ditto.
109 * range-op.h (range_op_handler::range_op_handler): Remove type param.
110 (range_cast): No need for type.
111 (range_op_table::operator[]): Check for enum_code >= 0.
112 * tree-data-ref.cc (compute_distributive_range): No need for type.
113 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Ditto.
114 * value-query.cc (range_query::get_tree_range): Ditto.
115 * value-relation.cc (relation_oracle::validate_relation): Ditto.
116 * vr-values.cc (range_of_var_in_loop): Ditto.
117 (simplify_using_ranges::fold_cond_with_ops): Ditto.
118
119 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
120
121 * range-op-mixed.h (operator_max): Remove final.
122 * range-op-ptr.cc (pointer_table::pointer_table): Remove MAX_EXPR.
123 (pointer_table::pointer_table): Remove.
124 (class hybrid_max_operator): New.
125 (range_op_table::initialize_pointer_ops): Add hybrid_max_operator.
126 * range-op.cc (pointer_tree_table): Remove.
127 (unified_table::unified_table): Comment out MAX_EXPR.
128 (get_op_handler): Remove check of pointer table.
129 * range-op.h (class pointer_table): Remove.
130
131 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
132
133 * range-op-mixed.h (operator_min): Remove final.
134 * range-op-ptr.cc (pointer_table::pointer_table): Remove MIN_EXPR.
135 (class hybrid_min_operator): New.
136 (range_op_table::initialize_pointer_ops): Add hybrid_min_operator.
137 * range-op.cc (unified_table::unified_table): Comment out MIN_EXPR.
138
139 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
140
141 * range-op-mixed.h (operator_bitwise_or): Remove final.
142 * range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_IOR_EXPR.
143 (class hybrid_or_operator): New.
144 (range_op_table::initialize_pointer_ops): Add hybrid_or_operator.
145 * range-op.cc (unified_table::unified_table): Comment out BIT_IOR_EXPR.
146
147 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
148
149 * range-op-mixed.h (operator_bitwise_and): Remove final.
150 * range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_AND_EXPR.
151 (class hybrid_and_operator): New.
152 (range_op_table::initialize_pointer_ops): Add hybrid_and_operator.
153 * range-op.cc (unified_table::unified_table): Comment out BIT_AND_EXPR.
154
155 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
156
157 * Makefile.in (OBJS): Add range-op-ptr.o.
158 * range-op-mixed.h (update_known_bitmask): Move prototype here.
159 (minus_op1_op2_relation_effect): Move prototype here.
160 (wi_includes_zero_p): Move function to here.
161 (wi_zero_p): Ditto.
162 * range-op.cc (update_known_bitmask): Remove static.
163 (wi_includes_zero_p): Move to header.
164 (wi_zero_p): Move to header.
165 (minus_op1_op2_relation_effect): Remove static.
166 (operator_pointer_diff): Move class and routines to range-op-ptr.cc.
167 (pointer_plus_operator): Ditto.
168 (pointer_min_max_operator): Ditto.
169 (pointer_and_operator): Ditto.
170 (pointer_or_operator): Ditto.
171 (pointer_table): Ditto.
172 (range_op_table::initialize_pointer_ops): Ditto.
173 * range-op-ptr.cc: New.
174
175 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
176
177 * range-op-mixed.h (class operator_max): Move from...
178 * range-op.cc (unified_table::unified_table): Add MAX_EXPR.
179 (get_op_handler): Remove the integral table.
180 (class operator_max): Move from here.
181 (integral_table::integral_table): Delete.
182 * range-op.h (class integral_table): Delete.
183
184 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
185
186 * range-op-mixed.h (class operator_min): Move from...
187 * range-op.cc (unified_table::unified_table): Add MIN_EXPR.
188 (class operator_min): Move from here.
189 (integral_table::integral_table): Remove MIN_EXPR.
190
191 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
192
193 * range-op-mixed.h (class operator_bitwise_or): Move from...
194 * range-op.cc (unified_table::unified_table): Add BIT_IOR_EXPR.
195 (class operator_bitwise_or): Move from here.
196 (integral_table::integral_table): Remove BIT_IOR_EXPR.
197
198 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
199
200 * range-op-mixed.h (class operator_bitwise_and): Move from...
201 * range-op.cc (unified_table::unified_table): Add BIT_AND_EXPR.
202 (get_op_handler): Check for a pointer table entry first.
203 (class operator_bitwise_and): Move from here.
204 (integral_table::integral_table): Remove BIT_AND_EXPR.
205
206 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
207
208 * range-op-mixed.h (class operator_bitwise_xor): Move from...
209 * range-op.cc (unified_table::unified_table): Add BIT_XOR_EXPR.
210 (class operator_bitwise_xor): Move from here.
211 (integral_table::integral_table): Remove BIT_XOR_EXPR.
212 (pointer_table::pointer_table): Remove BIT_XOR_EXPR.
213
214 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
215
216 * range-op-mixed.h (class operator_bitwise_not): Move from...
217 * range-op.cc (unified_table::unified_table): Add BIT_NOT_EXPR.
218 (class operator_bitwise_not): Move from here.
219 (integral_table::integral_table): Remove BIT_NOT_EXPR.
220 (pointer_table::pointer_table): Remove BIT_NOT_EXPR.
221
222 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
223
224 * range-op-mixed.h (class operator_addr_expr): Move from...
225 * range-op.cc (unified_table::unified_table): Add ADDR_EXPR.
226 (class operator_addr_expr): Move from here.
227 (integral_table::integral_table): Remove ADDR_EXPR.
228 (pointer_table::pointer_table): Remove ADDR_EXPR.
229
230 2023-06-12 Pan Li <pan2.li@intel.com>
231
232 * config/riscv/riscv-vector-builtins-types.def
233 (vfloat16m1_t): Add type to lmul1 ops.
234 (vfloat16m2_t): Likewise.
235 (vfloat16m4_t): Likewise.
236
237 2023-06-12 Richard Biener <rguenther@suse.de>
238
239 * tree-ssa-alias.cc (call_may_clobber_ref_p_1): For
240 .MASK_STORE and friend set the size of the access to
241 unknown.
242
243 2023-06-12 Tamar Christina <tamar.christina@arm.com>
244
245 * config.in: Regenerate.
246 * configure: Regenerate.
247 * configure.ac: Remove DEFAULT_MATCHPD_PARTITIONS.
248
249 2023-06-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
250
251 * config/riscv/autovec-opt.md
252 (*v<any_shiftrt:optab><any_extend:optab>trunc<mode>): New pattern.
253 (*<any_shiftrt:optab>trunc<mode>): Ditto.
254 * config/riscv/autovec.md (<optab><mode>3): Change to
255 define_insn_and_split.
256 (v<optab><mode>3): Ditto.
257 (trunc<mode><v_double_trunc>2): Ditto.
258
259 2023-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
260
261 * simplify-rtx.cc (simplify_const_unary_operation):
262 Handle US_TRUNCATE, SS_TRUNCATE.
263
264 2023-06-12 Eric Botcazou <ebotcazou@adacore.com>
265
266 PR modula2/109952
267 * doc/gm2.texi (Standard procedures): Fix Next link.
268
269 2023-06-12 Tamar Christina <tamar.christina@arm.com>
270
271 * config.in: Regenerate.
272
273 2023-06-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
274
275 PR middle-end/110142
276 * tree-vect-patterns.cc (vect_recog_widen_op_pattern): Don't pass
277 subtype to vect_widened_op_tree and remove subtype parameter, also
278 remove superfluous overloaded function definition.
279 (vect_recog_widen_plus_pattern): Remove subtype parameter and dont pass
280 to call to vect_recog_widen_op_pattern.
281 (vect_recog_widen_minus_pattern): Likewise.
282
283 2023-06-12 liuhongt <hongtao.liu@intel.com>
284
285 * config/i386/sse.md (vec_pack<floatprefix>_float_<mode>): New expander.
286 (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
287 (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
288 (vec_unpacks_lo_<mode>): Ditto.
289 (vec_unpacks_hi_<mode>): Ditto.
290 (sse_movlhps_<mode>): New define_insn.
291 (ssse3_palignr<mode>_perm): Extend to V_128H.
292 (V_128H): New mode iterator.
293 (ssepackPHmode): New mode attribute.
294 (vunpck_extract_mode): Ditto.
295 (vpckfloat_concat_mode): Extend to VxSI/VxSF for _Float16.
296 (vpckfloat_temp_mode): Ditto.
297 (vpckfloat_op_mode): Ditto.
298 (vunpckfixt_mode): Extend to VxHF.
299 (vunpckfixt_model): Ditto.
300 (vunpckfixt_extract_mode): Ditto.
301
302 2023-06-12 Richard Biener <rguenther@suse.de>
303
304 PR middle-end/110200
305 * genmatch.cc (expr::gen_transform): Put braces around
306 the if arm for the (convert ...) short-cut.
307
308 2023-06-12 Kewen Lin <linkw@linux.ibm.com>
309
310 PR target/109932
311 * config/rs6000/rs6000-builtins.def (__builtin_pack_vector_int128,
312 __builtin_unpack_vector_int128): Move from stanza power7 to vsx.
313
314 2023-06-12 Kewen Lin <linkw@linux.ibm.com>
315
316 PR target/110011
317 * config/rs6000/rs6000.cc (output_toc): Use the mode of the 128-bit
318 floating constant itself for real_to_target call.
319
320 2023-06-12 Pan Li <pan2.li@intel.com>
321
322 * config/riscv/riscv-vector-builtins-types.def
323 (vfloat16mf4_t): Add type to X2/X4/X8/X16/X32 vlmul ext ops.
324 (vfloat16mf2_t): Ditto.
325 (vfloat16m1_t): Ditto.
326 (vfloat16m2_t): Ditto.
327 (vfloat16m4_t): Ditto.
328
329 2023-06-12 David Edelsohn <dje.gcc@gmail.com>
330
331 * config/rs6000/rs6000-logue.cc (rs6000_stack_info):
332 Do not require a stack frame when debugging is enabled for AIX.
333
334 2023-06-11 Georg-Johann Lay <avr@gjlay.de>
335
336 * config/avr/avr.md (adjust_len) [insv_notbit_0, insv_notbit_7]:
337 Remove attribute values.
338 (insv_notbit): New post-reload insn.
339 (*insv.not-shiftrt_split, *insv.xor1-bit.0_split)
340 (*insv.not-bit.0_split, *insv.not-bit.7_split)
341 (*insv.xor-extract_split): Split to insv_notbit.
342 (*insv.not-shiftrt, *insv.xor1-bit.0, *insv.not-bit.0, *insv.not-bit.7)
343 (*insv.xor-extract): Remove post-reload insns.
344 * config/avr/avr.cc (avr_out_insert_notbit) [bitno]: Remove parameter.
345 (avr_adjust_insn_length): Adjust call of avr_out_insert_notbit.
346 [ADJUST_LEN_INSV_NOTBIT_0, ADJUST_LEN_INSV_NOTBIT_7]: Remove cases.
347 * config/avr/avr-protos.h (avr_out_insert_notbit): Adjust prototype.
348
349 2023-06-11 Georg-Johann Lay <avr@gjlay.de>
350
351 PR target/109907
352 * config/avr/avr.md (adjust_len) [extr, extr_not]: New elements.
353 (MSB, SIZE): New mode attributes.
354 (any_shift): New code iterator.
355 (*lshr<mode>3_split, *lshr<mode>3, lshr<mode>3)
356 (*lshr<mode>3_const_split): Add constraint alternative for
357 the case of shift-offset = MSB. Ditch "length" attribute.
358 (extzv<mode): New. replaces extzv. Adjust following patterns.
359 Use avr_out_extr, avr_out_extr_not to print asm.
360 (*extzv.subreg.<mode>, *extzv.<mode>.subreg, *extzv.xor)
361 (*extzv<mode>.ge, *neg.ashiftrt<mode>.msb, *extzv.io.lsr7): New.
362 * config/avr/constraints.md (C15, C23, C31, Yil): New
363 * config/avr/predicates.md (reg_or_low_io_operand)
364 (const7_operand, reg_or_low_io_operand)
365 (const15_operand, const_0_to_15_operand)
366 (const23_operand, const_0_to_23_operand)
367 (const31_operand, const_0_to_31_operand): New.
368 * config/avr/avr-protos.h (avr_out_extr, avr_out_extr_not): New.
369 * config/avr/avr.cc (avr_out_extr, avr_out_extr_not): New funcs.
370 (lshrqi3_out, lshrhi3_out, lshrpsi3_out, lshrsi3_out): Adjust
371 MSB case to new insn constraint "r" for operands[1].
372 (avr_adjust_insn_length) [ADJUST_LEN_EXTR_NOT, ADJUST_LEN_EXTR]:
373 Handle these cases.
374 (avr_rtx_costs_1): Adjust cost for a new pattern.
375
376 2023-06-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
377
378 * config/riscv/riscv-vsetvl.cc (available_occurrence_p): Enhance user vsetvl optimization.
379 (vector_insn_info::parse_insn): Add rtx_insn parse.
380 (pass_vsetvl::local_eliminate_vsetvl_insn): Enhance user vsetvl optimization.
381 (get_first_vsetvl): New function.
382 (pass_vsetvl::global_eliminate_vsetvl_insn): Ditto.
383 (pass_vsetvl::cleanup_insns): Remove it.
384 (pass_vsetvl::ssa_post_optimization): New function.
385 (has_no_uses): Ditto.
386 (pass_vsetvl::propagate_avl): Remove it.
387 (pass_vsetvl::df_post_optimization): New function.
388 (pass_vsetvl::lazy_vsetvl): Rework Phase 5 && Phase 6.
389 * config/riscv/riscv-vsetvl.h: Adapt declaration.
390
391 2023-06-10 Aldy Hernandez <aldyh@redhat.com>
392
393 * ipa-cp.cc (ipcp_vr_lattice::init): Take type argument.
394 (ipcp_vr_lattice::print): Call dump method.
395 (ipcp_vr_lattice::meet_with): Adjust for m_vr being a
396 Value_Range.
397 (ipcp_vr_lattice::meet_with_1): Make argument a reference.
398 (ipcp_vr_lattice::set_to_bottom): Set varying for an unsupported
399 range.
400 (initialize_node_lattices): Pass type when appropriate.
401 (ipa_vr_operation_and_type_effects): Make type agnostic.
402 (ipa_value_range_from_jfunc): Same.
403 (propagate_vr_across_jump_function): Same.
404 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
405 (evaluate_properties_for_edge): Same.
406 * ipa-prop.cc (ipa_vr::get_vrange): Same.
407 (ipcp_update_vr): Same.
408 * ipa-prop.h (ipa_value_range_from_jfunc): Same.
409 (ipa_range_set_and_normalize): Same.
410
411 2023-06-10 Georg-Johann Lay <avr@gjlay.de>
412
413 PR target/109650
414 PR target/92729
415 * config/avr/avr-passes.def (avr_pass_ifelse): Insert new pass.
416 * config/avr/avr.cc (avr_pass_ifelse): New RTL pass.
417 (avr_pass_data_ifelse): New pass_data for it.
418 (make_avr_pass_ifelse, avr_redundant_compare, avr_cbranch_cost)
419 (avr_canonicalize_comparison, avr_out_plus_set_ZN)
420 (avr_out_cmp_ext): New functions.
421 (compare_condtition): Make sure REG_CC dies in the branch insn.
422 (avr_rtx_costs_1): Add computation of cbranch costs.
423 (avr_adjust_insn_length) [ADJUST_LEN_ADD_SET_ZN, ADJUST_LEN_CMP_ZEXT]:
424 [ADJUST_LEN_CMP_SEXT]Handle them.
425 (TARGET_CANONICALIZE_COMPARISON): New define.
426 (avr_simplify_comparison_p, compare_diff_p, avr_compare_pattern)
427 (avr_reorg_remove_redundant_compare, avr_reorg): Remove functions.
428 (TARGET_MACHINE_DEPENDENT_REORG): Remove define.
429 * config/avr/avr-protos.h (avr_simplify_comparison_p): Remove proto.
430 (make_avr_pass_ifelse, avr_out_plus_set_ZN, cc_reg_rtx)
431 (avr_out_cmp_zext): New Protos
432 * config/avr/avr.md (branch, difficult_branch): Don't split insns.
433 (*cbranchhi.zero-extend.0", *cbranchhi.zero-extend.1")
434 (*swapped_tst<mode>, *add.for.eqne.<mode>): New insns.
435 (*cbranch<mode>4): Rename to cbranch<mode>4_insn.
436 (define_peephole): Add dead_or_set_regno_p(insn,REG_CC) as needed.
437 (define_deephole2): Add peep2_regno_dead_p(*,REG_CC) as needed.
438 Add new RTL peepholes for decrement-and-branch and *swapped_tst<mode>.
439 Rework signtest-and-branch peepholes for *sbrx_branch<mode>.
440 (adjust_len) [add_set_ZN, cmp_zext]: New.
441 (QIPSI): New mode iterator.
442 (ALLs1, ALLs2, ALLs4, ALLs234): New mode iterators.
443 (gelt): New code iterator.
444 (gelt_eqne): New code attribute.
445 (rvbranch, *rvbranch, difficult_rvbranch, *difficult_rvbranch)
446 (branch_unspec, *negated_tst<mode>, *reversed_tst<mode>)
447 (*cmpqi_sign_extend): Remove insns.
448 (define_c_enum "unspec") [UNSPEC_IDENTITY]: Remove.
449 * config/avr/avr-dimode.md (cbranch<mode>4): Canonicalize comparisons.
450 * config/avr/predicates.md (scratch_or_d_register_operand): New.
451 * config/avr/constraints.md (Yxx): New constraint.
452
453 2023-06-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
454
455 * config/riscv/autovec.md (select_vl<mode>): New pattern.
456 * config/riscv/riscv-protos.h (expand_select_vl): New function.
457 * config/riscv/riscv-v.cc (expand_select_vl): Ditto.
458
459 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
460
461 * range-op-float.cc (foperator_mult_div_base): Delete.
462 (foperator_mult_div_base::find_range): Make static local function.
463 (foperator_mult): Remove. Move prototypes to range-op-mixed.h
464 (operator_mult::op1_range): Rename from foperator_mult.
465 (operator_mult::op2_range): Ditto.
466 (operator_mult::rv_fold): Ditto.
467 (float_table::float_table): Remove MULT_EXPR.
468 (class foperator_div): Inherit from range_operator.
469 (float_table::float_table): Delete.
470 * range-op-mixed.h (class operator_mult): Combined from integer
471 and float files.
472 * range-op.cc (float_tree_table): Delete.
473 (op_mult): New object.
474 (unified_table::unified_table): Add MULT_EXPR.
475 (get_op_handler): Do not check float table any longer.
476 (class cross_product_operator): Move to range-op-mixed.h.
477 (class operator_mult): Move to range-op-mixed.h.
478 (integral_table::integral_table): Remove MULT_EXPR.
479 (pointer_table::pointer_table): Remove MULT_EXPR.
480 * range-op.h (float_table): Remove.
481
482 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
483
484 * range-op-float.cc (foperator_negate): Remove. Move prototypes
485 to range-op-mixed.h
486 (operator_negate::fold_range): Rename from foperator_negate.
487 (operator_negate::op1_range): Ditto.
488 (float_table::float_table): Remove NEGATE_EXPR.
489 * range-op-mixed.h (class operator_negate): Combined from integer
490 and float files.
491 * range-op.cc (op_negate): New object.
492 (unified_table::unified_table): Add NEGATE_EXPR.
493 (class operator_negate): Move to range-op-mixed.h.
494 (integral_table::integral_table): Remove NEGATE_EXPR.
495 (pointer_table::pointer_table): Remove NEGATE_EXPR.
496
497 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
498
499 * range-op-float.cc (foperator_minus): Remove. Move prototypes
500 to range-op-mixed.h
501 (operator_minus::fold_range): Rename from foperator_minus.
502 (operator_minus::op1_range): Ditto.
503 (operator_minus::op2_range): Ditto.
504 (operator_minus::rv_fold): Ditto.
505 (float_table::float_table): Remove MINUS_EXPR.
506 * range-op-mixed.h (class operator_minus): Combined from integer
507 and float files.
508 * range-op.cc (op_minus): New object.
509 (unified_table::unified_table): Add MINUS_EXPR.
510 (class operator_minus): Move to range-op-mixed.h.
511 (integral_table::integral_table): Remove MINUS_EXPR.
512 (pointer_table::pointer_table): Remove MINUS_EXPR.
513
514 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
515
516 * range-op-float.cc (foperator_abs): Remove. Move prototypes
517 to range-op-mixed.h
518 (operator_abs::fold_range): Rename from foperator_abs.
519 (operator_abs::op1_range): Ditto.
520 (float_table::float_table): Remove ABS_EXPR.
521 * range-op-mixed.h (class operator_abs): Combined from integer
522 and float files.
523 * range-op.cc (op_abs): New object.
524 (unified_table::unified_table): Add ABS_EXPR.
525 (class operator_abs): Move to range-op-mixed.h.
526 (integral_table::integral_table): Remove ABS_EXPR.
527 (pointer_table::pointer_table): Remove ABS_EXPR.
528
529 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
530
531 * range-op-float.cc (foperator_plus): Remove. Move prototypes
532 to range-op-mixed.h
533 (operator_plus::fold_range): Rename from foperator_plus.
534 (operator_plus::op1_range): Ditto.
535 (operator_plus::op2_range): Ditto.
536 (operator_plus::rv_fold): Ditto.
537 (float_table::float_table): Remove PLUS_EXPR.
538 * range-op-mixed.h (class operator_plus): Combined from integer
539 and float files.
540 * range-op.cc (op_plus): New object.
541 (unified_table::unified_table): Add PLUS_EXPR.
542 (class operator_plus): Move to range-op-mixed.h.
543 (integral_table::integral_table): Remove PLUS_EXPR.
544 (pointer_table::pointer_table): Remove PLUS_EXPR.
545
546 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
547
548 * range-op-mixed.h (class operator_cast): Combined from integer
549 and float files.
550 * range-op.cc (op_cast): New object.
551 (unified_table::unified_table): Add op_cast
552 (class operator_cast): Move to range-op-mixed.h.
553 (integral_table::integral_table): Remove op_cast
554 (pointer_table::pointer_table): Remove op_cast.
555
556 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
557
558 * range-op-float.cc (operator_cst::fold_range): New.
559 * range-op-mixed.h (class operator_cst): Move from integer file.
560 * range-op.cc (op_cst): New object.
561 (unified_table::unified_table): Add op_cst. Also use for REAL_CST.
562 (class operator_cst): Move to range-op-mixed.h.
563 (integral_table::integral_table): Remove op_cst.
564 (pointer_table::pointer_table): Remove op_cst.
565
566 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
567
568 * range-op-float.cc (foperator_identity): Remove. Move prototypes
569 to range-op-mixed.h
570 (operator_identity::fold_range): Rename from foperator_identity.
571 (operator_identity::op1_range): Ditto.
572 (float_table::float_table): Remove fop_identity.
573 * range-op-mixed.h (class operator_identity): Combined from integer
574 and float files.
575 * range-op.cc (op_identity): New object.
576 (unified_table::unified_table): Add op_identity.
577 (class operator_identity): Move to range-op-mixed.h.
578 (integral_table::integral_table): Remove identity.
579 (pointer_table::pointer_table): Remove identity.
580
581 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
582
583 * range-op-float.cc (foperator_ge): Remove. Move prototypes
584 to range-op-mixed.h
585 (operator_ge::fold_range): Rename from foperator_ge.
586 (operator_ge::op1_range): Ditto.
587 (float_table::float_table): Remove GE_EXPR.
588 * range-op-mixed.h (class operator_ge): Combined from integer
589 and float files.
590 * range-op.cc (op_ge): New object.
591 (unified_table::unified_table): Add GE_EXPR.
592 (class operator_ge): Move to range-op-mixed.h.
593 (ge_op1_op2_relation): Fold into
594 operator_ge::op1_op2_relation.
595 (integral_table::integral_table): Remove GE_EXPR.
596 (pointer_table::pointer_table): Remove GE_EXPR.
597 * range-op.h (ge_op1_op2_relation): Delete.
598
599 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
600
601 * range-op-float.cc (foperator_gt): Remove. Move prototypes
602 to range-op-mixed.h
603 (operator_gt::fold_range): Rename from foperator_gt.
604 (operator_gt::op1_range): Ditto.
605 (float_table::float_table): Remove GT_EXPR.
606 * range-op-mixed.h (class operator_gt): Combined from integer
607 and float files.
608 * range-op.cc (op_gt): New object.
609 (unified_table::unified_table): Add GT_EXPR.
610 (class operator_gt): Move to range-op-mixed.h.
611 (gt_op1_op2_relation): Fold into
612 operator_gt::op1_op2_relation.
613 (integral_table::integral_table): Remove GT_EXPR.
614 (pointer_table::pointer_table): Remove GT_EXPR.
615 * range-op.h (gt_op1_op2_relation): Delete.
616
617 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
618
619 * range-op-float.cc (foperator_le): Remove. Move prototypes
620 to range-op-mixed.h
621 (operator_le::fold_range): Rename from foperator_le.
622 (operator_le::op1_range): Ditto.
623 (float_table::float_table): Remove LE_EXPR.
624 * range-op-mixed.h (class operator_le): Combined from integer
625 and float files.
626 * range-op.cc (op_le): New object.
627 (unified_table::unified_table): Add LE_EXPR.
628 (class operator_le): Move to range-op-mixed.h.
629 (le_op1_op2_relation): Fold into
630 operator_le::op1_op2_relation.
631 (integral_table::integral_table): Remove LE_EXPR.
632 (pointer_table::pointer_table): Remove LE_EXPR.
633 * range-op.h (le_op1_op2_relation): Delete.
634
635 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
636
637 * range-op-float.cc (foperator_lt): Remove. Move prototypes
638 to range-op-mixed.h
639 (operator_lt::fold_range): Rename from foperator_lt.
640 (operator_lt::op1_range): Ditto.
641 (float_table::float_table): Remove LT_EXPR.
642 * range-op-mixed.h (class operator_lt): Combined from integer
643 and float files.
644 * range-op.cc (op_lt): New object.
645 (unified_table::unified_table): Add LT_EXPR.
646 (class operator_lt): Move to range-op-mixed.h.
647 (lt_op1_op2_relation): Fold into
648 operator_lt::op1_op2_relation.
649 (integral_table::integral_table): Remove LT_EXPR.
650 (pointer_table::pointer_table): Remove LT_EXPR.
651 * range-op.h (lt_op1_op2_relation): Delete.
652
653 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
654
655 * range-op-float.cc (foperator_not_equal): Remove. Move prototypes
656 to range-op-mixed.h
657 (operator_equal::fold_range): Rename from foperator_not_equal.
658 (operator_equal::op1_range): Ditto.
659 (float_table::float_table): Remove NE_EXPR.
660 * range-op-mixed.h (class operator_not_equal): Combined from integer
661 and float files.
662 * range-op.cc (op_equal): New object.
663 (unified_table::unified_table): Add NE_EXPR.
664 (class operator_not_equal): Move to range-op-mixed.h.
665 (not_equal_op1_op2_relation): Fold into
666 operator_not_equal::op1_op2_relation.
667 (integral_table::integral_table): Remove NE_EXPR.
668 (pointer_table::pointer_table): Remove NE_EXPR.
669 * range-op.h (not_equal_op1_op2_relation): Delete.
670
671 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
672
673 * range-op-float.cc (foperator_equal): Remove. Move prototypes
674 to range-op-mixed.h
675 (operator_equal::fold_range): Rename from foperator_equal.
676 (operator_equal::op1_range): Ditto.
677 (float_table::float_table): Remove EQ_EXPR.
678 * range-op-mixed.h (class operator_equal): Combined from integer
679 and float files.
680 * range-op.cc (op_equal): New object.
681 (unified_table::unified_table): Add EQ_EXPR.
682 (class operator_equal): Move to range-op-mixed.h.
683 (equal_op1_op2_relation): Fold into
684 operator_equal::op1_op2_relation.
685 (integral_table::integral_table): Remove EQ_EXPR.
686 (pointer_table::pointer_table): Remove EQ_EXPR.
687 * range-op.h (equal_op1_op2_relation): Delete.
688
689 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
690
691 * range-op-float.cc (class float_table): Move to header.
692 (float_table::float_table): Move float only operators to...
693 (range_op_table::initialize_float_ops): Here.
694 * range-op-mixed.h: New.
695 * range-op.cc (integral_tree_table, pointer_tree_table): Moved
696 to top of file.
697 (float_tree_table): Moved from range-op-float.cc.
698 (unified_tree_table): New.
699 (unified_table::unified_table): New. Call initialize routines.
700 (get_op_handler): Check unified table first.
701 (range_op_handler::range_op_handler): Handle no type constructor.
702 (integral_table::integral_table): Move integral only operators to...
703 (range_op_table::initialize_integral_ops): Here.
704 (pointer_table::pointer_table): Move pointer only operators to...
705 (range_op_table::initialize_pointer_ops): Here.
706 * range-op.h (enum bool_range_state): Move to range-op-mixed.h.
707 (get_bool_state): Ditto.
708 (empty_range_varying): Ditto.
709 (relop_early_resolve): Ditto.
710 (class range_op_table): Add new init methods for range types.
711 (class integral_table): Move declaration to here.
712 (class pointer_table): Move declaration to here.
713 (class float_table): Move declaration to here.
714
715 2023-06-09 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
716 Richard Sandiford <richard.sandiford@arm.com>
717 Richard Biener <rguenther@suse.de>
718
719 * doc/md.texi: Add SELECT_VL support.
720 * internal-fn.def (SELECT_VL): Ditto.
721 * optabs.def (OPTAB_D): Ditto.
722 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Ditto.
723 * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Ditto.
724 * tree-vect-stmts.cc (get_select_vl_data_ref_ptr): Ditto.
725 (vectorizable_store): Ditto.
726 (vectorizable_load): Ditto.
727 * tree-vectorizer.h (LOOP_VINFO_USING_SELECT_VL_P): Ditto.
728
729 2023-06-09 Andrew MacLeod <amacleod@redhat.com>
730
731 PR ipa/109886
732 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Check param
733 type as well.
734
735 2023-06-09 Andrew MacLeod <amacleod@redhat.com>
736
737 * range-op.cc (range_cast): Move to...
738 * range-op.h (range_cast): Here and add generic a version.
739
740 2023-06-09 Marek Polacek <polacek@redhat.com>
741
742 PR c/39589
743 PR c++/96868
744 * doc/invoke.texi: Clarify that -Wmissing-field-initializers doesn't
745 warn about designated initializers in C only.
746
747 2023-06-09 Andrew Pinski <apinski@marvell.com>
748
749 PR tree-optimization/97711
750 PR tree-optimization/110155
751 * match.pd ((zero_one == 0) ? y : z <op> y): Add plus to the op.
752 ((zero_one != 0) ? z <op> y : y): Likewise.
753
754 2023-06-09 Andrew Pinski <apinski@marvell.com>
755
756 * match.pd ((zero_one ==/!= 0) ? y : z <op> y): Use
757 multiply rather than negation/bit_and.
758
759 2023-06-09 Andrew Pinski <apinski@marvell.com>
760
761 * match.pd (`X & -Y -> X * Y`): Allow for truncation
762 and the same type for unsigned types.
763
764 2023-06-09 Andrew Pinski <apinski@marvell.com>
765
766 PR tree-optimization/110165
767 PR tree-optimization/110166
768 * match.pd (zero_one_valued_p): Don't accept
769 signed 1-bit integers.
770
771 2023-06-09 Richard Biener <rguenther@suse.de>
772
773 * match.pd (two conversions in a row): Use element_precision
774 to DTRT for VECTOR_TYPE.
775
776 2023-06-09 Pan Li <pan2.li@intel.com>
777
778 * config/riscv/riscv.md (enabled): Move to another place, and
779 add fp_vector_disabled to the cond.
780 (fp_vector_disabled): New attr defined for disabling fp.
781 * config/riscv/vector-iterators.md: Fix V_WHOLE and V_FRACT.
782
783 2023-06-09 Pan Li <pan2.li@intel.com>
784
785 * config/riscv/riscv-protos.h (enum frm_field_enum): Adjust
786 literal to int.
787
788 2023-06-09 liuhongt <hongtao.liu@intel.com>
789
790 PR target/110108
791 * config/i386/i386.cc (ix86_gimple_fold_builtin): Explicitly
792 view_convert_expr mask to signed type when folding pblendvb
793 builtins.
794
795 2023-06-09 liuhongt <hongtao.liu@intel.com>
796
797 PR target/110108
798 * config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
799 _mm{,256,512}_abs_{epi8,epi16,epi32,epi64} into gimple
800 ABSU_EXPR + VCE, don't fold _mm_abs_{pi8,pi16,pi32} w/o
801 TARGET_64BIT.
802 * config/i386/i386-builtin.def: Replace CODE_FOR_nothing with
803 real codename for __builtin_ia32_pabs{b,w,d}.
804
805 2023-06-08 Andrew MacLeod <amacleod@redhat.com>
806
807 * gimple-range-op.cc
808 (gimple_range_op_handler::gimple_range_op_handler): Adjust.
809 (gimple_range_op_handler::maybe_builtin_call): Adjust.
810 * gimple-range-op.h (operand1, operand2): Use m_operator.
811 * range-op.cc (integral_table, pointer_table): Relocate.
812 (get_op_handler): Rename from get_handler and handle all types.
813 (range_op_handler::range_op_handler): Relocate.
814 (range_op_handler::set_op_handler): Relocate and adjust.
815 (range_op_handler::range_op_handler): Relocate.
816 (dispatch_trio): New.
817 (RO_III, RO_IFI, RO_IFF, RO_FFF, RO_FIF, RO_FII): New consts.
818 (range_op_handler::dispatch_kind): New.
819 (range_op_handler::fold_range): Relocate and Use new dispatch value.
820 (range_op_handler::op1_range): Ditto.
821 (range_op_handler::op2_range): Ditto.
822 (range_op_handler::lhs_op1_relation): Ditto.
823 (range_op_handler::lhs_op2_relation): Ditto.
824 (range_op_handler::op1_op2_relation): Ditto.
825 (range_op_handler::set_op_handler): Use m_operator member.
826 * range-op.h (range_op_handler::operator bool): Use m_operator.
827 (range_op_handler::dispatch_kind): New.
828 (range_op_handler::m_valid): Delete.
829 (range_op_handler::m_int): Delete
830 (range_op_handler::m_float): Delete
831 (range_op_handler::m_operator): New.
832 (range_op_table::operator[]): Relocate from .cc file.
833 (range_op_table::set): Ditto.
834 * value-range.h (class vrange): Make range_op_handler a friend.
835
836 2023-06-08 Andrew MacLeod <amacleod@redhat.com>
837
838 * gimple-range-op.cc (cfn_constant_float_p): Change base class.
839 (cfn_pass_through_arg1): Adjust using statemenmt.
840 (cfn_signbit): Change base class, adjust using statement.
841 (cfn_copysign): Ditto.
842 (cfn_sqrt): Ditto.
843 (cfn_sincos): Ditto.
844 * range-op-float.cc (fold_range): Change class to range_operator.
845 (rv_fold): Ditto.
846 (op1_range): Ditto
847 (op2_range): Ditto
848 (lhs_op1_relation): Ditto.
849 (lhs_op2_relation): Ditto.
850 (op1_op2_relation): Ditto.
851 (foperator_*): Ditto.
852 (class float_table): New. Inherit from range_op_table.
853 (floating_tree_table) Change to range_op_table pointer.
854 (class floating_op_table): Delete.
855 * range-op.cc (operator_equal): Adjust using statement.
856 (operator_not_equal): Ditto.
857 (operator_lt, operator_le, operator_gt, operator_ge): Ditto.
858 (operator_minus, operator_cast): Ditto.
859 (operator_bitwise_and, pointer_plus_operator): Ditto.
860 (get_float_handle): Change return type.
861 * range-op.h (range_operator_float): Delete. Relocate all methods
862 into class range_operator.
863 (range_op_handler::m_float): Change type to range_operator.
864 (floating_op_table): Delete.
865 (floating_tree_table): Change type.
866
867 2023-06-08 Andrew MacLeod <amacleod@redhat.com>
868
869 * range-op.cc (range_operator::fold_range): Call virtual routine.
870 (range_operator::update_bitmask): New.
871 (operator_equal::update_bitmask): New.
872 (operator_not_equal::update_bitmask): New.
873 (operator_lt::update_bitmask): New.
874 (operator_le::update_bitmask): New.
875 (operator_gt::update_bitmask): New.
876 (operator_ge::update_bitmask): New.
877 (operator_ge::update_bitmask): New.
878 (operator_plus::update_bitmask): New.
879 (operator_minus::update_bitmask): New.
880 (operator_pointer_diff::update_bitmask): New.
881 (operator_min::update_bitmask): New.
882 (operator_max::update_bitmask): New.
883 (operator_mult::update_bitmask): New.
884 (operator_div:operator_div):New.
885 (operator_div::update_bitmask): New.
886 (operator_div::m_code): New member.
887 (operator_exact_divide::operator_exact_divide): New constructor.
888 (operator_lshift::update_bitmask): New.
889 (operator_rshift::update_bitmask): New.
890 (operator_bitwise_and::update_bitmask): New.
891 (operator_bitwise_or::update_bitmask): New.
892 (operator_bitwise_xor::update_bitmask): New.
893 (operator_trunc_mod::update_bitmask): New.
894 (op_ident, op_unknown, op_ptr_min_max): New.
895 (op_nop, op_convert): Delete.
896 (op_ssa, op_paren, op_obj_type): Delete.
897 (op_realpart, op_imagpart): Delete.
898 (op_ptr_min, op_ptr_max): Delete.
899 (pointer_plus_operator:update_bitmask): New.
900 (range_op_table::set): Do not use m_code.
901 (integral_table::integral_table): Adjust to single instances.
902 * range-op.h (range_operator::range_operator): Delete.
903 (range_operator::m_code): Delete.
904 (range_operator::update_bitmask): New.
905
906 2023-06-08 Andrew MacLeod <amacleod@redhat.com>
907
908 * range-op-float.cc (range_operator_float::fold_range): Return
909 NAN of the result type.
910
911 2023-06-08 Jakub Jelinek <jakub@redhat.com>
912
913 * optabs.cc (expand_ffs): Add forward declaration.
914 (expand_doubleword_clz): Rename to ...
915 (expand_doubleword_clz_ctz_ffs): ... this. Add UNOPTAB argument,
916 handle also doubleword CTZ and FFS in addition to CLZ.
917 (expand_unop): Adjust caller. Also call it for doubleword
918 ctz_optab and ffs_optab.
919
920 2023-06-08 Jakub Jelinek <jakub@redhat.com>
921
922 PR target/110152
923 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): For
924 n_words == 2 recurse with mmx_ok as first argument rather than false.
925
926 2023-06-07 Roger Sayle <roger@nextmovesoftware.com>
927
928 * wide-int.cc (wi::bitreverse_large): Use HOST_WIDE_INT_1U to
929 avoid sign extension/undefined behaviour when setting each bit.
930
931 2023-06-07 Roger Sayle <roger@nextmovesoftware.com>
932 Uros Bizjak <ubizjak@gmail.com>
933
934 * config/i386/i386-expand.cc (ix86_expand_builtin) <handlecarry>:
935 Use new x86_stc instruction when the carry flag must be set.
936 * config/i386/i386.cc (ix86_cc_mode): Use CCCmode for *x86_cmc.
937 (ix86_rtx_costs): Provide accurate rtx_costs for *x86_cmc.
938 * config/i386/i386.h (TARGET_SLOW_STC): New define.
939 * config/i386/i386.md (UNSPEC_STC): New UNSPEC for stc.
940 (x86_stc): New define_insn.
941 (define_peephole2): Convert x86_stc into alternate implementation
942 on pentium4 without -Os when a QImode register is available.
943 (*x86_cmc): New define_insn.
944 (define_peephole2): Convert *x86_cmc into alternate implementation
945 on pentium4 without -Os when a QImode register is available.
946 (*setccc): New define_insn_and_split for a no-op CCCmode move.
947 (*setcc_qi_negqi_ccc_1_<mode>): New define_insn_and_split to
948 recognize (and eliminate) the carry flag being copied to itself.
949 (*setcc_qi_negqi_ccc_2_<mode>): Likewise.
950 * config/i386/x86-tune.def (X86_TUNE_SLOW_STC): New tuning flag.
951
952 2023-06-07 Andrew Pinski <apinski@marvell.com>
953
954 * match.pd: Fix comment for the
955 `(zero_one ==/!= 0) ? y : z <op> y` patterns.
956
957 2023-06-07 Jeff Law <jlaw@ventanamicro.com>
958 Jeff Law <jlaw@ventanamicro.com>
959
960 * config/riscv/bitmanip.md (rotrdi3, rotrsi3, rotlsi3): New expanders.
961 (rotrsi3_sext): Expose generator.
962 (rotlsi3 pattern): Hide generator.
963 * config/riscv/riscv-protos.h (riscv_emit_binary): New function
964 declaration.
965 * config/riscv/riscv.cc (riscv_emit_binary): Removed static
966 * config/riscv/riscv.md (addsi3, subsi3, negsi2): Hide generator.
967 (mulsi3, <optab>si3): Likewise.
968 (addsi3, subsi3, negsi2, mulsi3, <optab>si3): New expanders.
969 (addv<mode>4, subv<mode>4, mulv<mode>4): Use riscv_emit_binary.
970 (<u>mulsidi3): Likewise.
971 (addsi3_extended, subsi3_extended, negsi2_extended): Expose generator.
972 (mulsi3_extended, <optab>si3_extended): Likewise.
973 (splitter for shadd feeding divison): Update RTL pattern to account
974 for changes in how 32 bit ops are expanded for TARGET_64BIT.
975 * loop-iv.cc (get_biv_step_1): Process src of extension when it PLUS.
976
977 2023-06-07 Dimitar Dimitrov <dimitar@dinux.eu>
978
979 PR target/109725
980 * config/riscv/riscv.cc (riscv_print_operand): Calculate
981 memmodel only when it is valid.
982
983 2023-06-07 Dimitar Dimitrov <dimitar@dinux.eu>
984
985 * config/riscv/riscv.cc (riscv_const_insns): Recursively call
986 for constant element of a vector.
987
988 2023-06-07 Jakub Jelinek <jakub@redhat.com>
989
990 * match.pd (zero_one_valued_p): Don't handle integer_zerop specially,
991 instead compare tree_nonzero_bits <= 1U rather than just == 1.
992
993 2023-06-07 Alex Coplan <alex.coplan@arm.com>
994
995 PR target/110132
996 * config/aarch64/aarch64-builtins.cc (aarch64_general_simulate_builtin):
997 New. Use it ...
998 (aarch64_init_ls64_builtins): ... here. Switch to declaring public ACLE
999 names for builtins.
1000 (aarch64_general_init_builtins): Ensure we invoke the arm_acle.h
1001 setup if in_lto_p, just like we do for SVE.
1002 * config/aarch64/arm_acle.h: (__arm_ld64b): Delete.
1003 (__arm_st64b): Delete.
1004 (__arm_st64bv): Delete.
1005 (__arm_st64bv0): Delete.
1006
1007 2023-06-07 Alex Coplan <alex.coplan@arm.com>
1008
1009 PR target/110100
1010 * config/aarch64/aarch64-builtins.cc (aarch64_expand_builtin_ls64):
1011 Use input operand for the destination address.
1012 * config/aarch64/aarch64.md (st64b): Fix constraint on address
1013 operand.
1014
1015 2023-06-07 Alex Coplan <alex.coplan@arm.com>
1016
1017 PR target/110100
1018 * config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types):
1019 Replace eight consecutive spaces with tabs.
1020 (aarch64_init_ls64_builtins): Likewise.
1021 (aarch64_expand_builtin_ls64): Likewise.
1022 * config/aarch64/aarch64.md (ld64b): Likewise.
1023 (st64b): Likewise.
1024 (st64bv): Likewise
1025 (st64bv0): Likewise.
1026
1027 2023-06-07 Vladimir N. Makarov <vmakarov@redhat.com>
1028
1029 * ira-costs.cc: (find_costs_and_classes): Constrain classes of pic
1030 offset table pseudo to a general reg subset.
1031
1032 2023-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1033
1034 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode><vczle><vczbe>):
1035 Rename to...
1036 (*aarch64_sqmovun<mode>_insn<vczle><vczbe>): ... This. Reimplement
1037 with RTL codes.
1038 (aarch64_sqmovun<mode> [SD_HSDI]): Reimplement with RTL codes.
1039 (aarch64_sqxtun2<mode>_le): Likewise.
1040 (aarch64_sqxtun2<mode>_be): Likewise.
1041 (aarch64_sqxtun2<mode>): Adjust for the above.
1042 (aarch64_sqmovun<mode>): New define_expand.
1043 * config/aarch64/iterators.md (UNSPEC_SQXTUN): Delete.
1044 (half_mask): New mode attribute.
1045 * config/aarch64/predicates.md (aarch64_simd_umax_half_mode):
1046 New predicate.
1047
1048 2023-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1049
1050 * config/aarch64/aarch64-simd.md (aarch64_addp<mode><vczle><vczbe>):
1051 Reimplement as...
1052 (aarch64_addp<mode>_insn): ... This...
1053 (aarch64_addp<mode><vczle><vczbe>_insn): ... And this.
1054 (aarch64_addp<mode>): New define_expand.
1055
1056 2023-06-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1057
1058 * config/riscv/riscv-protos.h (expand_vec_perm_const): New function.
1059 * config/riscv/riscv-v.cc
1060 (rvv_builder::can_duplicate_repeating_sequence_p): Support POLY
1061 handling.
1062 (rvv_builder::single_step_npatterns_p): New function.
1063 (rvv_builder::npatterns_all_equal_p): Ditto.
1064 (const_vec_all_in_range_p): Support POLY handling.
1065 (gen_const_vector_dup): Ditto.
1066 (emit_vlmax_gather_insn): Add vrgatherei16.
1067 (emit_vlmax_masked_gather_mu_insn): Ditto.
1068 (expand_const_vector): Add VLA SLP const vector support.
1069 (expand_vec_perm): Support POLY.
1070 (struct expand_vec_perm_d): New struct.
1071 (shuffle_generic_patterns): New function.
1072 (expand_vec_perm_const_1): Ditto.
1073 (expand_vec_perm_const): Ditto.
1074 * config/riscv/riscv.cc (riscv_vectorize_vec_perm_const): Ditto.
1075 (TARGET_VECTORIZE_VEC_PERM_CONST): New targethook.
1076
1077 2023-06-07 Andrew Pinski <apinski@marvell.com>
1078
1079 PR middle-end/110117
1080 * expr.cc (expand_single_bit_test): Handle
1081 const_int from expand_expr.
1082
1083 2023-06-07 Andrew Pinski <apinski@marvell.com>
1084
1085 * expr.cc (do_store_flag): Rearrange the
1086 TER code so that it overrides the nonzero bits
1087 info if we had `a & POW2`.
1088
1089 2023-06-07 Andrew Pinski <apinski@marvell.com>
1090
1091 PR tree-optimization/110134
1092 * match.pd (-A CMP -B -> B CMP A): Allow EQ/NE for all integer
1093 types.
1094 (-A CMP CST -> B CMP (-CST)): Likewise.
1095
1096 2023-06-07 Andrew Pinski <apinski@marvell.com>
1097
1098 PR tree-optimization/89263
1099 PR tree-optimization/99069
1100 PR tree-optimization/20083
1101 PR tree-optimization/94898
1102 * match.pd: Add patterns to optimize `a ? onezero : onezero` with
1103 one of the operands are constant.
1104
1105 2023-06-07 Andrew Pinski <apinski@marvell.com>
1106
1107 * match.pd (zero_one_valued_p): Match 0 integer constant
1108 too.
1109
1110 2023-06-07 Pan Li <pan2.li@intel.com>
1111
1112 * config/riscv/riscv-vector-builtins-types.def
1113 (vfloat32mf2_t): Take RVV_REQUIRE_ELEN_FP_16 as requirement.
1114 (vfloat32m1_t): Ditto.
1115 (vfloat32m2_t): Ditto.
1116 (vfloat32m4_t): Ditto.
1117 (vfloat32m8_t): Ditto.
1118 (vint16mf4_t): Ditto.
1119 (vint16mf2_t): Ditto.
1120 (vint16m1_t): Ditto.
1121 (vint16m2_t): Ditto.
1122 (vint16m4_t): Ditto.
1123 (vint16m8_t): Ditto.
1124 (vuint16mf4_t): Ditto.
1125 (vuint16mf2_t): Ditto.
1126 (vuint16m1_t): Ditto.
1127 (vuint16m2_t): Ditto.
1128 (vuint16m4_t): Ditto.
1129 (vuint16m8_t): Ditto.
1130 (vint32mf2_t): Ditto.
1131 (vint32m1_t): Ditto.
1132 (vint32m2_t): Ditto.
1133 (vint32m4_t): Ditto.
1134 (vint32m8_t): Ditto.
1135 (vuint32mf2_t): Ditto.
1136 (vuint32m1_t): Ditto.
1137 (vuint32m2_t): Ditto.
1138 (vuint32m4_t): Ditto.
1139 (vuint32m8_t): Ditto.
1140
1141 2023-06-07 Jason Merrill <jason@redhat.com>
1142
1143 PR c++/58487
1144 * doc/invoke.texi: Document it.
1145
1146 2023-06-06 Roger Sayle <roger@nextmovesoftware.com>
1147
1148 * doc/rtl.texi (bitreverse, copysign): Document new RTX codes.
1149 * rtl.def (BITREVERSE, COPYSIGN): Define new RTX codes.
1150 * simplify-rtx.cc (simplify_unary_operation_1): Optimize
1151 NOT (BITREVERSE x) as BITREVERSE (NOT x).
1152 Optimize POPCOUNT (BITREVERSE x) as POPCOUNT x.
1153 Optimize PARITY (BITREVERSE x) as PARITY x.
1154 Optimize BITREVERSE (BITREVERSE x) as x.
1155 (simplify_const_unary_operation) <case BITREVERSE>: Evaluate
1156 BITREVERSE of a constant integer at compile-time.
1157 (simplify_binary_operation_1) <case COPYSIGN>: Optimize
1158 COPY_SIGN (x, x) as x. Optimize COPYSIGN (x, C) as ABS x
1159 or NEG (ABS x) for constant C. Optimize COPYSIGN (ABS x, y)
1160 and COPYSIGN (NEG x, y) as COPYSIGN (x, y).
1161 Optimize COPYSIGN (x, ABS y) as ABS x.
1162 Optimize COPYSIGN (COPYSIGN (x, y), z) as COPYSIGN (x, z).
1163 Optimize COPYSIGN (x, COPYSIGN (y, z)) as COPYSIGN (x, z).
1164 (simplify_const_binary_operation): Evaluate COPYSIGN of constant
1165 arguments at compile-time.
1166
1167 2023-06-06 Uros Bizjak <ubizjak@gmail.com>
1168
1169 * rtl.h (function_invariant_p): Change return type from int to bool.
1170 * reload1.cc (function_invariant_p): Change return type from
1171 int to bool and adjust function body accordingly.
1172
1173 2023-06-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1174
1175 * config/riscv/autovec-opt.md (*<optab>_fma<mode>): New pattern.
1176 (*single_<optab>mult_plus<mode>): Ditto.
1177 (*double_<optab>mult_plus<mode>): Ditto.
1178 (*sign_zero_extend_fma): Ditto.
1179 (*zero_sign_extend_fma): Ditto.
1180 * config/riscv/riscv-protos.h (enum insn_type): New enum.
1181
1182 2023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com>
1183 Tobias Burnus <tobias@codesourcery.com>
1184
1185 * gimplify.cc (omp_notice_variable): Apply GOVD_MAP_ALLOC_ONLY flag
1186 and defaultmap flags if the defaultmap has GOVD_MAP_FORCE_PRESENT flag
1187 set.
1188 (omp_get_attachment): Handle map clauses with 'present' modifier.
1189 (omp_group_base): Likewise.
1190 (gimplify_scan_omp_clauses): Reorder present maps to come first.
1191 Set GOVD flags for present defaultmaps.
1192 (gimplify_adjust_omp_clauses_1): Set map kind for present defaultmaps.
1193 * omp-low.cc (scan_sharing_clauses): Handle 'always, present' map
1194 clauses.
1195 (lower_omp_target): Handle map clauses with 'present' modifier.
1196 Handle 'to' and 'from' clauses with 'present'.
1197 * tree-core.h (enum omp_clause_defaultmap_kind): Add
1198 OMP_CLAUSE_DEFAULTMAP_PRESENT defaultmap kind.
1199 * tree-pretty-print.cc (dump_omp_clause): Handle 'map', 'to' and
1200 'from' clauses with 'present' modifier. Handle present defaultmap.
1201 * tree.h (OMP_CLAUSE_MOTION_PRESENT): New #define.
1202
1203 2023-06-06 Segher Boessenkool <segher@kernel.crashing.org>
1204
1205 * config/rs6000/genfusion.pl: Delete some dead code.
1206
1207 2023-06-06 Segher Boessenkool <segher@kernel.crashing.org>
1208
1209 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): New, rewritten and
1210 split out from...
1211 (gen_ld_cmpi_p10): ... this.
1212
1213 2023-06-06 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
1214
1215 PR target/106907
1216 * config/rs6000/rs6000.cc (vec_const_128bit_to_bytes): Remove
1217 duplicate expression.
1218
1219 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1220
1221 * config/aarch64/aarch64-builtins.cc (aarch64_general_gimple_fold_builtin):
1222 Handle unsigned reduc_plus_scal_ builtins.
1223 * config/aarch64/aarch64-simd-builtins.def (addp): Delete DImode instances.
1224 * config/aarch64/aarch64-simd.md (aarch64_addpdi): Delete.
1225 * config/aarch64/arm_neon.h (vpaddd_s64): Reimplement with
1226 __builtin_aarch64_reduc_plus_scal_v2di.
1227 (vpaddd_u64): Reimplement with __builtin_aarch64_reduc_plus_scal_v2di_uu.
1228
1229 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1230
1231 * config/aarch64/aarch64-simd.md (aarch64_<sur>shr_n<mode>): Delete.
1232 (aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): New define_insn.
1233 (aarch64_<sra_op>rshr_n<mode>): New define_expand.
1234
1235 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1236
1237 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Delete.
1238 (aarch64_shrn<mode>_insn_be): Delete.
1239 (*aarch64_<srn_op>shrn<mode>_vect): Rename to...
1240 (*aarch64_<srn_op>shrn<mode><vczle><vczbe>): ... This.
1241 (aarch64_shrn<mode>): Remove reference to the above deleted patterns.
1242 (aarch64_rshrn<mode>_insn_le): Delete.
1243 (aarch64_rshrn<mode>_insn_be): Delete.
1244 (aarch64_rshrn<mode><vczle><vczbe>_insn): New define_insn.
1245 (aarch64_rshrn<mode>): Remove references to the above deleted patterns.
1246
1247 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1248
1249 * config/aarch64/aarch64-protos.h (aarch64_parallel_select_half_p):
1250 Define prototype.
1251 (aarch64_pars_overlap_p): Likewise.
1252 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
1253 Express in terms of UNSPEC_ADDV.
1254 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): Likewise.
1255 (*aarch64_<su>addlv<mode>_reduction): Define.
1256 (*aarch64_uaddlv<mode>_reduction_2): Likewise.
1257 * config/aarch64/aarch64.cc (aarch64_parallel_select_half_p): Define.
1258 (aarch64_pars_overlap_p): Likewise.
1259 * config/aarch64/iterators.md (UNSPEC_SADDLV, UNSPEC_UADDLV): Delete.
1260 (VQUADW): New mode attribute.
1261 (VWIDE2X_S): Likewise.
1262 (USADDLV): Delete.
1263 (su): Delete handling of UNSPEC_SADDLV, UNSPEC_UADDLV.
1264 * config/aarch64/predicates.md (vect_par_cnst_select_half): Define.
1265
1266 2023-06-06 Richard Biener <rguenther@suse.de>
1267
1268 PR middle-end/110055
1269 * gimplify.cc (gimplify_target_expr): Do not emit
1270 CLOBBERs for variables which have static storage duration
1271 after gimplifying their initializers.
1272
1273 2023-06-06 Richard Biener <rguenther@suse.de>
1274
1275 PR tree-optimization/109143
1276 * tree-ssa-structalias.cc (solution_set_expand): Avoid
1277 one bitmap iteration and optimize bit range setting.
1278
1279 2023-06-06 Hans-Peter Nilsson <hp@axis.com>
1280
1281 PR bootstrap/110120
1282 * postreload.cc (reload_cse_move2add, move2add_use_add2_insn): Use
1283 XVECEXP, not XEXP, to access first item of a PARALLEL.
1284
1285 2023-06-06 Pan Li <pan2.li@intel.com>
1286
1287 * config/riscv/riscv-vector-builtins-types.def
1288 (vfloat16mf4_t): Add vfloat16mf4_t to WF operations.
1289 (vfloat16mf2_t): Likewise.
1290 (vfloat16m1_t): Likewise.
1291 (vfloat16m2_t): Likewise.
1292 (vfloat16m4_t): Likewise.
1293 (vfloat16m8_t): Likewise.
1294 * config/riscv/vector-iterators.md: Add FP=16 to VWF, VWF_ZVE64,
1295 VWLMUL1, VWLMUL1_ZVE64, vwlmul1 and vwlmul1_zve64.
1296
1297 2023-06-06 Fei Gao <gaofei@eswincomputing.com>
1298
1299 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Use Pmode
1300 for cfi reg/mem machmode
1301 (riscv_adjust_libcall_cfi_epilogue): Use Pmode for cfi reg machmode
1302
1303 2023-06-06 Li Xu <xuli1@eswincomputing.com>
1304
1305 * config/riscv/vector-iterators.md:
1306 Fix 'REQUIREMENT' for machine_mode 'MODE'.
1307 * config/riscv/vector.md (@pred_indexed_<order>store<VNX16_QHS:mode>
1308 <VNX16_QHSI:mode>): change VNX16_QHSI to VNX16_QHSDI.
1309 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSDI:mode>): Ditto.
1310
1311 2023-06-06 Pan Li <pan2.li@intel.com>
1312
1313 * config/riscv/vector-iterators.md: Fix typo in mode attr.
1314
1315 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
1316 Joel Hutton <joel.hutton@arm.com>
1317
1318 * doc/generic.texi: Remove old tree codes.
1319 * expr.cc (expand_expr_real_2): Remove old tree code cases.
1320 * gimple-pretty-print.cc (dump_binary_rhs): Likewise.
1321 * optabs-tree.cc (optab_for_tree_code): Likewise.
1322 (supportable_half_widening_operation): Likewise.
1323 * tree-cfg.cc (verify_gimple_assign_binary): Likewise.
1324 * tree-inline.cc (estimate_operator_cost): Likewise.
1325 (op_symbol_code): Likewise.
1326 * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Likewise.
1327 (vect_analyze_data_ref_accesses): Likewise.
1328 * tree-vect-generic.cc (expand_vector_operations_1): Likewise.
1329 * cfgexpand.cc (expand_debug_expr): Likewise.
1330 * tree-vect-stmts.cc (vectorizable_conversion): Likewise.
1331 (supportable_widening_operation): Likewise.
1332 * gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
1333 Likewise.
1334 * optabs.def (vec_widen_ssubl_hi_optab, vec_widen_ssubl_lo_optab,
1335 vec_widen_saddl_hi_optab, vec_widen_saddl_lo_optab,
1336 vec_widen_usubl_hi_optab, vec_widen_usubl_lo_optab,
1337 vec_widen_uaddl_hi_optab, vec_widen_uaddl_lo_optab): Remove optabs.
1338 * tree-pretty-print.cc (dump_generic_node): Remove tree code definition.
1339 * tree.def (WIDEN_PLUS_EXPR, WIDEN_MINUS_EXPR, VEC_WIDEN_PLUS_HI_EXPR,
1340 VEC_WIDEN_PLUS_LO_EXPR, VEC_WIDEN_MINUS_HI_EXPR,
1341 VEC_WIDEN_MINUS_LO_EXPR): Likewise.
1342
1343 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
1344 Joel Hutton <joel.hutton@arm.com>
1345 Tamar Christina <tamar.christina@arm.com>
1346
1347 * config/aarch64/aarch64-simd.md (vec_widen_<su>addl_lo_<mode>): Rename
1348 this ...
1349 (vec_widen_<su>add_lo_<mode>): ... to this.
1350 (vec_widen_<su>addl_hi_<mode>): Rename this ...
1351 (vec_widen_<su>add_hi_<mode>): ... to this.
1352 (vec_widen_<su>subl_lo_<mode>): Rename this ...
1353 (vec_widen_<su>sub_lo_<mode>): ... to this.
1354 (vec_widen_<su>subl_hi_<mode>): Rename this ...
1355 (vec_widen_<su>sub_hi_<mode>): ...to this.
1356 * doc/generic.texi: Document new IFN codes.
1357 * internal-fn.cc (lookup_hilo_internal_fn): Add lookup function.
1358 (commutative_binary_fn_p): Add widen_plus fn's.
1359 (widening_fn_p): New function.
1360 (narrowing_fn_p): New function.
1361 (direct_internal_fn_optab): Change visibility.
1362 * internal-fn.def (DEF_INTERNAL_WIDENING_OPTAB_FN): Macro to define an
1363 internal_fn that expands into multiple internal_fns for widening.
1364 (IFN_VEC_WIDEN_PLUS, IFN_VEC_WIDEN_PLUS_HI, IFN_VEC_WIDEN_PLUS_LO,
1365 IFN_VEC_WIDEN_PLUS_EVEN, IFN_VEC_WIDEN_PLUS_ODD,
1366 IFN_VEC_WIDEN_MINUS, IFN_VEC_WIDEN_MINUS_HI,
1367 IFN_VEC_WIDEN_MINUS_LO, IFN_VEC_WIDEN_MINUS_ODD,
1368 IFN_VEC_WIDEN_MINUS_EVEN): Define widening plus,minus functions.
1369 * internal-fn.h (direct_internal_fn_optab): Declare new prototype.
1370 (lookup_hilo_internal_fn): Likewise.
1371 (widening_fn_p): Likewise.
1372 (Narrowing_fn_p): Likewise.
1373 * optabs.cc (commutative_optab_p): Add widening plus optabs.
1374 * optabs.def (OPTAB_D): Define widen add, sub optabs.
1375 * tree-vect-patterns.cc (vect_recog_widen_op_pattern): Support
1376 patterns with a hi/lo or even/odd split.
1377 (vect_recog_sad_pattern): Refactor to use new IFN codes.
1378 (vect_recog_widen_plus_pattern): Likewise.
1379 (vect_recog_widen_minus_pattern): Likewise.
1380 (vect_recog_average_pattern): Likewise.
1381 * tree-vect-stmts.cc (vectorizable_conversion): Add support for
1382 _HILO IFNs.
1383 (supportable_widening_operation): Likewise.
1384 * tree.def (WIDEN_SUM_EXPR): Update example to use new IFNs.
1385
1386 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
1387 Joel Hutton <joel.hutton@arm.com>
1388
1389 * tree-vect-patterns.cc: Add include for gimple-iterator.
1390 (vect_recog_widen_op_pattern): Refactor to use code_helper.
1391 (vect_gimple_build): New function.
1392 * tree-vect-stmts.cc (simple_integer_narrowing): Refactor to use
1393 code_helper.
1394 (vectorizable_call): Likewise.
1395 (vect_gen_widened_results_half): Likewise.
1396 (vect_create_vectorized_demotion_stmts): Likewise.
1397 (vect_create_vectorized_promotion_stmts): Likewise.
1398 (vect_create_half_widening_stmts): Likewise.
1399 (vectorizable_conversion): Likewise.
1400 (supportable_widening_operation): Likewise.
1401 (supportable_narrowing_operation): Likewise.
1402 * tree-vectorizer.h (supportable_widening_operation): Change
1403 prototype to use code_helper.
1404 (supportable_narrowing_operation): Likewise.
1405 (vect_gimple_build): New function prototype.
1406 * tree.h (code_helper::safe_as_tree_code): New function.
1407 (code_helper::safe_as_fn_code): New function.
1408
1409 2023-06-05 Roger Sayle <roger@nextmovesoftware.com>
1410
1411 * wide-int.cc (wi::bitreverse_large): New function implementing
1412 bit reversal of an integer.
1413 * wide-int.h (wi::bitreverse): New (template) function prototype.
1414 (bitreverse_large): Prototype helper function/implementation.
1415 (wi::bitreverse): New template wrapper around bitreverse_large.
1416
1417 2023-06-05 Uros Bizjak <ubizjak@gmail.com>
1418
1419 * rtl.h (print_rtl_single): Change return type from int to void.
1420 (print_rtl_single_with_indent): Ditto.
1421 * print-rtl.h (class rtx_writer): Ditto. Change m_sawclose to bool.
1422 * print-rtl.cc (rtx_writer::rtx_writer): Update for m_sawclose change.
1423 (rtx_writer::print_rtx_operand_code_0): Ditto.
1424 (rtx_writer::print_rtx_operand_codes_E_and_V): Ditto.
1425 (rtx_writer::print_rtx_operand_code_i): Ditto.
1426 (rtx_writer::print_rtx_operand_code_u): Ditto.
1427 (rtx_writer::print_rtx_operand): Ditto.
1428 (rtx_writer::print_rtx): Ditto.
1429 (rtx_writer::finish_directive): Ditto.
1430 (print_rtl_single): Change return type from int to void
1431 and adjust function body accordingly.
1432 (rtx_writer::print_rtl_single_with_indent): Ditto.
1433
1434 2023-06-05 Uros Bizjak <ubizjak@gmail.com>
1435
1436 * rtl.h (reg_classes_intersect_p): Change return type from int to bool.
1437 (reg_class_subset_p): Ditto.
1438 * reginfo.cc (reg_classes_intersect_p): Ditto.
1439 (reg_class_subset_p): Ditto.
1440
1441 2023-06-05 Pan Li <pan2.li@intel.com>
1442
1443 * config/riscv/riscv-vector-builtins-types.def
1444 (vfloat32mf2_t): New type for DEF_RVV_WEXTF_OPS.
1445 (vfloat32m1_t): Ditto.
1446 (vfloat32m2_t): Ditto.
1447 (vfloat32m4_t): Ditto.
1448 (vfloat32m8_t): Ditto.
1449 (vint16mf4_t): New type for DEF_RVV_CONVERT_I_OPS.
1450 (vint16mf2_t): Ditto.
1451 (vint16m1_t): Ditto.
1452 (vint16m2_t): Ditto.
1453 (vint16m4_t): Ditto.
1454 (vint16m8_t): Ditto.
1455 (vuint16mf4_t): New type for DEF_RVV_CONVERT_U_OPS.
1456 (vuint16mf2_t): Ditto.
1457 (vuint16m1_t): Ditto.
1458 (vuint16m2_t): Ditto.
1459 (vuint16m4_t): Ditto.
1460 (vuint16m8_t): Ditto.
1461 (vint32mf2_t): New type for DEF_RVV_WCONVERT_I_OPS.
1462 (vint32m1_t): Ditto.
1463 (vint32m2_t): Ditto.
1464 (vint32m4_t): Ditto.
1465 (vint32m8_t): Ditto.
1466 (vuint32mf2_t): New type for DEF_RVV_WCONVERT_U_OPS.
1467 (vuint32m1_t): Ditto.
1468 (vuint32m2_t): Ditto.
1469 (vuint32m4_t): Ditto.
1470 (vuint32m8_t): Ditto.
1471 * config/riscv/vector-iterators.md: Add FP=16 support for V,
1472 VWCONVERTI, VCONVERT, VNCONVERT, VMUL1 and vlmul1.
1473
1474 2023-06-05 Andrew Pinski <apinski@marvell.com>
1475
1476 PR bootstrap/110085
1477 * Makefile.in (clean): Remove the removing of
1478 MULTILIB_DIR/MULTILIB_OPTIONS directories.
1479
1480 2023-06-05 YunQiang Su <yunqiang.su@cipunited.com>
1481
1482 * config/mips/mips-protos.h (mips_emit_speculation_barrier): New
1483 prototype.
1484 * config/mips/mips.cc (speculation_barrier_libfunc): New static
1485 variable.
1486 (mips_init_libfuncs): Initialize it.
1487 (mips_emit_speculation_barrier): New function.
1488 * config/mips/mips.md (speculation_barrier): Call
1489 mips_emit_speculation_barrier.
1490
1491 2023-06-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1492
1493 * config/riscv/riscv-v.cc (class rvv_builder): Reorganize functions.
1494 (rvv_builder::can_duplicate_repeating_sequence_p): Ditto.
1495 (rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto.
1496 (rvv_builder::get_merged_repeating_sequence): Ditto.
1497 (rvv_builder::get_merge_scalar_mask): Ditto.
1498 (emit_scalar_move_insn): Ditto.
1499 (emit_vlmax_integer_move_insn): Ditto.
1500 (emit_nonvlmax_integer_move_insn): Ditto.
1501 (emit_vlmax_gather_insn): Ditto.
1502 (emit_vlmax_masked_gather_mu_insn): Ditto.
1503 (get_repeating_sequence_dup_machine_mode): Ditto.
1504
1505 2023-06-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1506
1507 * config/riscv/autovec.md: Split arguments.
1508 * config/riscv/riscv-protos.h (expand_vec_perm): Ditto.
1509 * config/riscv/riscv-v.cc (expand_vec_perm): Ditto.
1510
1511 2023-06-04 Andrew Pinski <apinski@marvell.com>
1512
1513 * expr.cc (do_store_flag): Improve for single bit testing
1514 not against zero but against that single bit.
1515
1516 2023-06-04 Andrew Pinski <apinski@marvell.com>
1517
1518 * expr.cc (do_store_flag): Extend the one bit checking case
1519 to handle the case where we don't have an and but rather still
1520 one bit is known to be non-zero.
1521
1522 2023-06-04 Jeff Law <jlaw@ventanamicro.com>
1523
1524 * config/h8300/constraints.md (Zz): Make this a normal
1525 constraint.
1526 * config/h8300/h8300.cc (TARGET_LRA_P): Remove.
1527 * config/h8300/logical.md (H8/SX bit patterns): Remove.
1528
1529 2023-06-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1530
1531 * config/xtensa/xtensa.md (*btrue_INT_MIN, *eqne_INT_MIN):
1532 New insn_and_split patterns.
1533
1534 2023-06-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1535
1536 PR target/110109
1537 * config/riscv/riscv-vector-builtins-bases.cc: Change expand approach.
1538 * config/riscv/vector.md (@vlmul_extx2<mode>): Remove it.
1539 (@vlmul_extx4<mode>): Ditto.
1540 (@vlmul_extx8<mode>): Ditto.
1541 (@vlmul_extx16<mode>): Ditto.
1542 (@vlmul_extx32<mode>): Ditto.
1543 (@vlmul_extx64<mode>): Ditto.
1544 (*vlmul_extx2<mode>): Ditto.
1545 (*vlmul_extx4<mode>): Ditto.
1546 (*vlmul_extx8<mode>): Ditto.
1547 (*vlmul_extx16<mode>): Ditto.
1548 (*vlmul_extx32<mode>): Ditto.
1549 (*vlmul_extx64<mode>): Ditto.
1550
1551 2023-06-04 Pan Li <pan2.li@intel.com>
1552
1553 * config/riscv/riscv-vector-builtins-types.def
1554 (vfloat32mf2_t): Add vfloat32mf2_t type to vfncvt.f.f.w operations.
1555 (vfloat32m1_t): Likewise.
1556 (vfloat32m2_t): Likewise.
1557 (vfloat32m4_t): Likewise.
1558 (vfloat32m8_t): Likewise.
1559 * config/riscv/riscv-vector-builtins.def: Fix typo in comments.
1560 * config/riscv/vector-iterators.md: Add single to half machine
1561 mode conversion.
1562
1563 2023-06-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1564
1565 * config/riscv/autovec-opt.md (*<optab>not<mode>): Move to autovec-opt.md.
1566 (*n<optab><mode>): Ditto.
1567 * config/riscv/autovec.md (*<optab>not<mode>): Ditto.
1568 (*n<optab><mode>): Ditto.
1569 * config/riscv/vector.md: Ditto.
1570
1571 2023-06-04 Roger Sayle <roger@nextmovesoftware.com>
1572
1573 PR target/110083
1574 * config/i386/i386-features.cc (scalar_chain::convert_compare):
1575 Update or delete REG_EQUAL notes, converting CONST_INT and
1576 CONST_WIDE_INT immediate operands to a suitable CONST_VECTOR.
1577
1578 2023-06-04 Jason Merrill <jason@redhat.com>
1579
1580 PR c++/97720
1581 * tree-eh.cc (lower_resx): Pass the exception pointer to the
1582 failure_decl.
1583 * except.h: Tweak comment.
1584
1585 2023-06-04 Hans-Peter Nilsson <hp@axis.com>
1586
1587 * postreload.cc (move2add_use_add2_insn): Handle
1588 trivial single_sets. Rename variable PAT to SET.
1589 (move2add_use_add3_insn, reload_cse_move2add): Similar.
1590
1591 2023-06-04 Pan Li <pan2.li@intel.com>
1592
1593 * config/riscv/riscv-vector-builtins-types.def
1594 (vfloat16mf4_t): Add the float16 type to DEF_RVV_F_OPS.
1595 (vfloat16mf2_t): Likewise.
1596 (vfloat16m1_t): Likewise.
1597 (vfloat16m2_t): Likewise.
1598 (vfloat16m4_t): Likewise.
1599 (vfloat16m8_t): Likewise.
1600 * config/riscv/riscv.md: Add vfloat16*_t to attr mode.
1601 * config/riscv/vector-iterators.md: Add vfloat16*_t machine mode
1602 to V, V_WHOLE, V_FRACT, VINDEX, VM, VEL and sew.
1603 * config/riscv/vector.md: Add vfloat16*_t machine mode to sew,
1604 vlmul and ratio.
1605
1606 2023-06-03 Fei Gao <gaofei@eswincomputing.com>
1607
1608 * config/riscv/riscv.cc (riscv_expand_epilogue): fix cfi issue with
1609 correct offset.
1610
1611 2023-06-03 Die Li <lidie@eswincomputing.com>
1612
1613 * config/riscv/thead.md (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Delete.
1614
1615 2023-06-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1616
1617 * config/riscv/predicates.md: Change INTVAL into UINTVAL.
1618
1619 2023-06-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1620
1621 * config/riscv/vector.md: Add vector-opt.md.
1622 * config/riscv/autovec-opt.md: New file.
1623
1624 2023-06-03 liuhongt <hongtao.liu@intel.com>
1625
1626 PR tree-optimization/110067
1627 * gimple-ssa-store-merging.cc (find_bswap_or_nop): Don't try
1628 bswap + rotate when TYPE_PRECISION(n->type) > n->range.
1629
1630 2023-06-03 liuhongt <hongtao.liu@intel.com>
1631
1632 PR target/92658
1633 * config/i386/mmx.md (truncv2hiv2qi2): New define_insn.
1634 (truncv2si<mode>2): Ditto.
1635
1636 2023-06-02 Andrew Pinski <apinski@marvell.com>
1637
1638 PR rtl-optimization/102733
1639 * dse.cc (store_info): Add addrspace field.
1640 (record_store): Record the address space
1641 and check to make sure they are the same.
1642
1643 2023-06-02 Andrew Pinski <apinski@marvell.com>
1644
1645 PR rtl-optimization/110042
1646 * ifcvt.cc (bbs_ok_for_cmove_arith): Allow paradoxical subregs.
1647 (bb_valid_for_noce_process_p): Strip the subreg for the SET_DEST.
1648
1649 2023-06-02 Iain Sandoe <iain@sandoe.co.uk>
1650
1651 PR target/110044
1652 * config/rs6000/rs6000.cc (darwin_rs6000_special_round_type_align):
1653 Make sure that we do not have a cap on field alignment before altering
1654 the struct layout based on the type alignment of the first entry.
1655
1656 2023-06-02 David Faust <david.faust@oracle.com>
1657
1658 PR debug/110073
1659 * btfout.cc (btf_absolute_func_id): New function.
1660 (btf_asm_func_type): Call it here. Change index parameter from
1661 size_t to ctf_id_t. Use PRIu64 formatter.
1662
1663 2023-06-02 Alex Coplan <alex.coplan@arm.com>
1664
1665 * btfout.cc (btf_asm_type): Use PRIu64 instead of %lu for uint64_t.
1666 (btf_asm_datasec_type): Likewise.
1667
1668 2023-06-02 Carl Love <cel@us.ibm.com>
1669
1670 * config/rs6000/rs6000-builtins.def (__builtin_altivec_tr_stxvrhx,
1671 __builtin_altivec_tr_stxvrwx): Fix type of third argument.
1672
1673 2023-06-02 Jason Merrill <jason@redhat.com>
1674
1675 PR c++/110070
1676 PR c++/105838
1677 * tree.h (DECL_MERGEABLE): New.
1678 * tree-core.h (struct tree_decl_common): Mention it.
1679 * gimplify.cc (gimplify_init_constructor): Check it.
1680 * cgraph.cc (symtab_node::address_can_be_compared_p): Likewise.
1681 * varasm.cc (categorize_decl_for_section): Likewise.
1682
1683 2023-06-02 Uros Bizjak <ubizjak@gmail.com>
1684
1685 * rtl.h (stack_regs_mentioned): Change return type from int to bool.
1686 * reg-stack.cc (struct_block_info_def): Change "done" to bool.
1687 (stack_regs_mentioned_p): Change return type from int to bool
1688 and adjust function body accordingly.
1689 (stack_regs_mentioned): Ditto.
1690 (check_asm_stack_operands): Ditto. Change "malformed_asm"
1691 variable to bool.
1692 (move_for_stack_reg): Recode handling of control_flow_insn_deleted.
1693 (swap_rtx_condition_1): Change return type from int to bool
1694 and adjust function body accordingly. Change "r" variable to bool.
1695 (swap_rtx_condition): Change return type from int to bool
1696 and adjust function body accordingly.
1697 (subst_stack_regs_pat): Recode handling of control_flow_insn_deleted.
1698 (subst_stack_regs): Ditto.
1699 (convert_regs_entry): Change return type from int to bool and adjust
1700 function body accordingly. Change "inserted" variable to bool.
1701 (convert_regs_1): Recode handling of control_flow_insn_deleted.
1702 (convert_regs_2): Recode handling of cfg_altered.
1703 (convert_regs): Ditto. Change "inserted" variable to bool.
1704
1705 2023-06-02 Jason Merrill <jason@redhat.com>
1706
1707 PR c++/95226
1708 * varasm.cc (output_constant) [REAL_TYPE]: Check that sizes match.
1709 (initializer_constant_valid_p_1): Compare float precision.
1710
1711 2023-06-02 Alexander Monakov <amonakov@ispras.ru>
1712
1713 * doc/extend.texi (Vector Extensions): Clarify bitwise shift
1714 semantics.
1715
1716 2023-06-02 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1717
1718 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Change decrement IV flow.
1719 (vect_set_loop_condition_partial_vectors): Ditto.
1720
1721 2023-06-02 Georg-Johann Lay <avr@gjlay.de>
1722
1723 PR target/110088
1724 * config/avr/avr.md: Add an RTL peephole to optimize operations on
1725 non-LD_REGS after a move from LD_REGS.
1726 (piaop): New code iterator.
1727
1728 2023-06-02 Thomas Schwinge <thomas@codesourcery.com>
1729
1730 PR testsuite/66005
1731 * doc/install.texi: Document (optional) Perl usage for parallel
1732 testing of libgomp.
1733
1734 2023-06-02 Thomas Schwinge <thomas@codesourcery.com>
1735
1736 PR bootstrap/82856
1737 * doc/install.texi (Perl): Back to requiring "Perl version 5.6.1 (or
1738 later)".
1739
1740 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1741 KuanLin Chen <best124612@gmail.com>
1742
1743 * config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
1744 * config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
1745
1746 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1747
1748 * config/riscv/riscv-v.cc (expand_vec_series): Optimize reverse series index vector.
1749
1750 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1751
1752 * config/riscv/predicates.md: Change INTVAL into UINTVAL.
1753
1754 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1755
1756 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_VXRM_ENUM): Add
1757 __RISCV_ prefix.
1758 (DEF_RVV_FRM_ENUM): Ditto.
1759
1760 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1761
1762 * config/riscv/riscv-vector-builtins-bases.cc: Change vwadd.wv/vwsub.wv
1763 intrinsic API expander
1764 * config/riscv/vector.md
1765 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Remove it.
1766 (@pred_single_widen_sub<any_extend:su><mode>): New pattern.
1767 (@pred_single_widen_add<any_extend:su><mode>): New pattern.
1768
1769 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1770
1771 * config/riscv/autovec.md (vec_perm<mode>): New pattern.
1772 * config/riscv/predicates.md (vector_perm_operand): New predicate.
1773 * config/riscv/riscv-protos.h (enum insn_type): New enum.
1774 (expand_vec_perm): New function.
1775 * config/riscv/riscv-v.cc (const_vec_all_in_range_p): Ditto.
1776 (gen_const_vector_dup): Ditto.
1777 (emit_vlmax_gather_insn): Ditto.
1778 (emit_vlmax_masked_gather_mu_insn): Ditto.
1779 (expand_vec_perm): Ditto.
1780
1781 2023-06-01 Jason Merrill <jason@redhat.com>
1782
1783 * doc/invoke.texi (-Wpedantic): Improve clarity.
1784
1785 2023-06-01 Uros Bizjak <ubizjak@gmail.com>
1786
1787 * rtl.h (exp_equiv_p): Change return type from int to bool.
1788 * cse.cc (mention_regs): Change return type from int to bool
1789 and adjust function body accordingly.
1790 (exp_equiv_p): Ditto.
1791 (insert_regs): Ditto. Change "modified" function argument to bool
1792 and update usage accordingly.
1793 (record_jump_cond): Remove always zero "reversed_nonequality"
1794 function argument and update usage accordingly.
1795 (fold_rtx): Change "changed" variable to bool.
1796 (record_jump_equiv): Remove unneeded "reversed_nonequality" variable.
1797 (is_dead_reg): Change return type from int to bool.
1798
1799 2023-06-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1800
1801 * config/xtensa/xtensa.md (adddi3, subdi3):
1802 New RTL generation patterns implemented according to the instruc-
1803 tion idioms described in the Xtensa ISA reference manual (p. 600).
1804
1805 2023-06-01 Roger Sayle <roger@nextmovesoftware.com>
1806 Uros Bizjak <ubizjak@gmail.com>
1807
1808 PR target/109973
1809 * config/i386/i386-builtin.def (__builtin_ia32_ptestz128): Use new
1810 CODE_for_sse4_1_ptestzv2di.
1811 (__builtin_ia32_ptestc128): Use new CODE_for_sse4_1_ptestcv2di.
1812 (__builtin_ia32_ptestz256): Use new CODE_for_avx_ptestzv4di.
1813 (__builtin_ia32_ptestc256): Use new CODE_for_avx_ptestcv4di.
1814 * config/i386/i386-expand.cc (ix86_expand_branch): Use CCZmode
1815 when expanding UNSPEC_PTEST to compare against zero.
1816 * config/i386/i386-features.cc (scalar_chain::convert_compare):
1817 Likewise generate CCZmode UNSPEC_PTESTs when converting comparisons.
1818 (general_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
1819 (timode_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
1820 * config/i386/i386-protos.h (ix86_match_ptest_ccmode): Prototype.
1821 * config/i386/i386.cc (ix86_match_ptest_ccmode): New predicate to
1822 check for suitable matching modes for the UNSPEC_PTEST pattern.
1823 * config/i386/sse.md (define_split): When splitting UNSPEC_MOVMSK
1824 to UNSPEC_PTEST, preserve the FLAG_REG mode as CCZ.
1825 (*<sse4_1>_ptest<mode>): Add asterisk to hide define_insn. Remove
1826 ":CC" mode of FLAGS_REG, instead use ix86_match_ptest_ccmode.
1827 (<sse4_1>_ptestz<mode>): New define_expand to specify CCZ.
1828 (<sse4_1>_ptestc<mode>): New define_expand to specify CCC.
1829 (<sse4_1>_ptest<mode>): A define_expand using CC to preserve the
1830 current behavior.
1831 (*ptest<mode>_and): Specify CCZ to only perform this optimization
1832 when only the Z flag is required.
1833
1834 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1835
1836 PR target/109954
1837 * doc/invoke.texi (x86 Options): Fix description of -m32 option.
1838
1839 2023-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1840
1841 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>):
1842 Add =r,m and =r,m alternatives.
1843 (load_pair<DREG:mode><DREG2:mode>): Likewise.
1844 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
1845
1846 2023-06-01 Pan Li <pan2.li@intel.com>
1847
1848 * common/config/riscv/riscv-common.cc: Add FP_16 mask to zvfhmin
1849 and zvfh.
1850 * config/riscv/genrvv-type-indexer.cc (valid_type): Allow FP16.
1851 (main): Disable FP16 tuple.
1852 * config/riscv/riscv-opts.h (MASK_VECTOR_ELEN_FP_16): New macro.
1853 (TARGET_VECTOR_ELEN_FP_16): Ditto.
1854 * config/riscv/riscv-vector-builtins.cc (check_required_extensions):
1855 Add FP16.
1856 * config/riscv/riscv-vector-builtins.def (vfloat16mf4_t): New type.
1857 (vfloat16mf2_t): Ditto.
1858 (vfloat16m1_t): Ditto.
1859 (vfloat16m2_t): Ditto.
1860 (vfloat16m4_t): Ditto.
1861 (vfloat16m8_t): Ditto.
1862 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_FP_16):
1863 New macro.
1864 * config/riscv/riscv-vector-switch.def (ENTRY): Allow FP16
1865 machine mode based on TARGET_VECTOR_ELEN_FP_16.
1866
1867 2023-06-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1868
1869 * config/riscv/riscv-vector-builtins.cc (register_frm): New function.
1870 (DEF_RVV_FRM_ENUM): New macro.
1871 (handle_pragma_vector): Add FRM enum
1872 * config/riscv/riscv-vector-builtins.def (DEF_RVV_FRM_ENUM): New macro.
1873 (RNE): Ditto.
1874 (RTZ): Ditto.
1875 (RDN): Ditto.
1876 (RUP): Ditto.
1877 (RMM): Ditto.
1878
1879 2023-05-31 Roger Sayle <roger@nextmovesoftware.com>
1880 Richard Sandiford <richard.sandiford@arm.com>
1881
1882 * fold-const-call.cc (fold_const_call_ss) <CFN_BUILT_IN_BSWAP*>:
1883 Update call to wi::bswap.
1884 * simplify-rtx.cc (simplify_const_unary_operation) <case BSWAP>:
1885 Update call to wi::bswap.
1886 * tree-ssa-ccp.cc (evaluate_stmt) <case BUILT_IN_BSWAP*>:
1887 Update calls to wi::bswap.
1888 * wide-int.cc (wide_int_storage::bswap): Remove/rename to...
1889 (wi::bswap_large): New function, with revised API.
1890 * wide-int.h (wi::bswap): New (template) function prototype.
1891 (wide_int_storage::bswap): Remove method.
1892 (sext_large, zext_large): Consistent indentation/line wrapping.
1893 (bswap_large): Prototype helper function containing implementation.
1894 (wi::bswap): New template wrapper around bswap_large.
1895
1896 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1897
1898 PR target/99195
1899 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Rename to...
1900 (<sur>dot_prod<vsi2qi><vczle><vczbe>): ... This.
1901 (usdot_prod<vsi2qi>): Rename to...
1902 (usdot_prod<vsi2qi><vczle><vczbe>): ... This.
1903 (aarch64_<sur>dot_lane<vsi2qi>): Rename to...
1904 (aarch64_<sur>dot_lane<vsi2qi><vczle><vczbe>): ... This.
1905 (aarch64_<sur>dot_laneq<vsi2qi>): Rename to...
1906 (aarch64_<sur>dot_laneq<vsi2qi><vczle><vczbe>): ... This.
1907 (aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi>): Rename to...
1908 (aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi><vczle><vczbe>):
1909 ... This.
1910
1911 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1912
1913 PR target/99195
1914 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh<mode>): Rename to...
1915 (aarch64_sq<r>dmulh<mode><vczle><vczbe>): ... This.
1916 (aarch64_sq<r>dmulh_n<mode>): Rename to...
1917 (aarch64_sq<r>dmulh_n<mode><vczle><vczbe>): ... This.
1918 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
1919 (aarch64_sq<r>dmulh_lane<mode><vczle><vczbe>): ... This.
1920 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
1921 (aarch64_sq<r>dmulh_laneq<mode><vczle><vczbe>): ... This.
1922 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): Rename to...
1923 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode><vczle><vczbe>): ... This.
1924 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Rename to...
1925 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode><vczle><vczbe>): ... This.
1926 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Rename to...
1927 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode><vczle><vczbe>): ... This.
1928
1929 2023-05-31 David Faust <david.faust@oracle.com>
1930
1931 * btfout.cc (btf_kind_names): New.
1932 (btf_kind_name): New.
1933 (btf_absolute_var_id): New utility function.
1934 (btf_relative_var_id): Likewise.
1935 (btf_relative_func_id): Likewise.
1936 (btf_absolute_datasec_id): Likewise.
1937 (btf_asm_type_ref): New.
1938 (btf_asm_type): Update asm comments and use btf_asm_type_ref ().
1939 (btf_asm_array): Likewise. Accept ctf_container_ref parameter.
1940 (btf_asm_varent): Likewise.
1941 (btf_asm_func_arg): Likewise.
1942 (btf_asm_datasec_entry): Likewise.
1943 (btf_asm_datasec_type): Likewise.
1944 (btf_asm_func_type): Likewise. Add index parameter.
1945 (btf_asm_enum_const): Likewise.
1946 (btf_asm_sou_member): Likewise.
1947 (output_btf_vars): Update btf_asm_* call accordingly.
1948 (output_asm_btf_sou_fields): Likewise.
1949 (output_asm_btf_enum_list): Likewise.
1950 (output_asm_btf_func_args_list): Likewise.
1951 (output_asm_btf_vlen_bytes): Likewise.
1952 (output_btf_func_types): Add ctf_container_ref parameter.
1953 Pass it to btf_asm_func_type.
1954 (output_btf_datasec_types): Update btf_asm_datsec_type call similarly.
1955 (btf_output): Update output_btf_func_types call similarly.
1956
1957 2023-05-31 David Faust <david.faust@oracle.com>
1958
1959 * btfout.cc (btf_asm_type): Add dedicated cases for BTF_KIND_ARRAY
1960 and BTF_KIND_FWD which do not use the size/type field at all.
1961
1962 2023-05-31 Uros Bizjak <ubizjak@gmail.com>
1963
1964 * rtl.h (subreg_lowpart_p): Change return type from int to bool.
1965 (active_insn_p): Ditto.
1966 (in_sequence_p): Ditto.
1967 (unshare_all_rtl): Change return type from int to void.
1968 * emit-rtl.h (mem_expr_equal_p): Change return type from int to bool.
1969 * emit-rtl.cc (subreg_lowpart_p): Change return type from int to bool
1970 and adjust function body accordingly.
1971 (mem_expr_equal_p): Ditto.
1972 (unshare_all_rtl): Change return type from int to void
1973 and adjust function body accordingly.
1974 (verify_rtx_sharing): Remove unneeded return.
1975 (active_insn_p): Change return type from int to bool
1976 and adjust function body accordingly.
1977 (in_sequence_p): Ditto.
1978
1979 2023-05-31 Uros Bizjak <ubizjak@gmail.com>
1980
1981 * rtl.h (true_dependence): Change return type from int to bool.
1982 (canon_true_dependence): Ditto.
1983 (read_dependence): Ditto.
1984 (anti_dependence): Ditto.
1985 (canon_anti_dependence): Ditto.
1986 (output_dependence): Ditto.
1987 (canon_output_dependence): Ditto.
1988 (may_alias_p): Ditto.
1989 * alias.h (alias_sets_conflict_p): Ditto.
1990 (alias_sets_must_conflict_p): Ditto.
1991 (objects_must_conflict_p): Ditto.
1992 (nonoverlapping_memrefs_p): Ditto.
1993 * alias.cc (rtx_equal_for_memref_p): Remove forward declaration.
1994 (record_set): Ditto.
1995 (base_alias_check): Ditto.
1996 (find_base_value): Ditto.
1997 (mems_in_disjoint_alias_sets_p): Ditto.
1998 (get_alias_set_entry): Ditto.
1999 (decl_for_component_ref): Ditto.
2000 (write_dependence_p): Ditto.
2001 (memory_modified_1): Ditto.
2002 (mems_in_disjoint_alias_set_p): Change return type from int to bool
2003 and adjust function body accordingly.
2004 (alias_sets_conflict_p): Ditto.
2005 (alias_sets_must_conflict_p): Ditto.
2006 (objects_must_conflict_p): Ditto.
2007 (rtx_equal_for_memref_p): Ditto.
2008 (base_alias_check): Ditto.
2009 (read_dependence): Ditto.
2010 (nonoverlapping_memrefs_p): Ditto.
2011 (true_dependence_1): Ditto.
2012 (true_dependence): Ditto.
2013 (canon_true_dependence): Ditto.
2014 (write_dependence_p): Ditto.
2015 (anti_dependence): Ditto.
2016 (canon_anti_dependence): Ditto.
2017 (output_dependence): Ditto.
2018 (canon_output_dependence): Ditto.
2019 (may_alias_p): Ditto.
2020 (init_alias_analysis): Change "changed" variable to bool.
2021
2022 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2023
2024 * config/riscv/autovec.md (<optab><v_double_trunc><mode>2): Change
2025 expand into define_insn_and_split.
2026
2027 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2028
2029 * config/riscv/vector.md: Remove FRM.
2030
2031 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2032
2033 * config/riscv/vector.md: Remove FRM.
2034
2035 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2036
2037 * config/riscv/vector.md: Remove FRM.
2038
2039 2023-05-31 Christophe Lyon <christophe.lyon@linaro.org>
2040
2041 PR target/110039
2042 * config/aarch64/aarch64.md (aarch64_rev16si2_alt3): New
2043 pattern.
2044
2045 2023-05-31 Richard Biener <rguenther@suse.de>
2046
2047 PR ipa/109983
2048 PR tree-optimization/109143
2049 * tree-ssa-structalias.cc (struct topo_info): Remove.
2050 (init_topo_info): Likewise.
2051 (free_topo_info): Likewise.
2052 (compute_topo_order): Simplify API, put the component
2053 with ESCAPED last so it's processed first.
2054 (topo_visit): Adjust.
2055 (solve_graph): Likewise.
2056
2057 2023-05-31 Richard Biener <rguenther@suse.de>
2058
2059 * tree-ssa-structalias.cc (constraint_stats::num_avoided_edges):
2060 New.
2061 (add_graph_edge): Count redundant edges we avoid to create.
2062 (dump_sa_stats): Dump them.
2063 (ipa_pta_execute): Do not dump generating constraints when
2064 we are not dumping them.
2065
2066 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2067
2068 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>): Rewrite
2069 output template to avoid explicit switch on which_alternative.
2070 (*aarch64_simd_mov<VQMOV:mode>): Likewise.
2071 (and<mode>3): Likewise.
2072 (ior<mode>3): Likewise.
2073 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Likewise.
2074
2075 2023-05-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2076
2077 * config/xtensa/predicates.md (xtensa_bit_join_operator):
2078 New predicate.
2079 * config/xtensa/xtensa.md (ior_op): Remove.
2080 (*shlrd_reg): Rename from "*shlrd_reg_<code>", and add the
2081 insn_and_split pattern of the same name to express and capture
2082 the bit-combining operation with both sides swapped.
2083 In addition, replace use of code iterator with new operator
2084 predicate.
2085 (*shlrd_const, *shlrd_per_byte):
2086 Likewise regarding the code iterator.
2087
2088 2023-05-31 Cui, Lili <lili.cui@intel.com>
2089
2090 PR tree-optimization/110038
2091 * params.opt: Add a limit on tree-reassoc-width.
2092 * tree-ssa-reassoc.cc
2093 (rewrite_expr_tree_parallel): Add width limit.
2094
2095 2023-05-31 Pan Li <pan2.li@intel.com>
2096
2097 * common/config/riscv/riscv-common.cc:
2098 (riscv_implied_info): Add zvfh item.
2099 (riscv_ext_version_table): Ditto.
2100 (riscv_ext_flag_table): Ditto.
2101 * config/riscv/riscv-opts.h (MASK_ZVFH): New macro.
2102 (TARGET_ZVFH): Ditto.
2103
2104 2023-05-30 liuhongt <hongtao.liu@intel.com>
2105
2106 PR tree-optimization/108804
2107 * tree-vect-patterns.cc (vect_get_range_info): Remove static.
2108 * tree-vect-stmts.cc (vect_create_vectorized_demotion_stmts):
2109 Add new parameter narrow_src_p.
2110 (vectorizable_conversion): Enhance NARROW FLOAT_EXPR
2111 vectorization by truncating to lower precision.
2112 * tree-vectorizer.h (vect_get_range_info): New declare.
2113
2114 2023-05-30 Vladimir N. Makarov <vmakarov@redhat.com>
2115
2116 * lra-int.h (lra_update_sp_offset): Add the prototype.
2117 * lra.cc (setup_sp_offset): Change the return type. Use
2118 lra_update_sp_offset.
2119 * lra-eliminations.cc (lra_update_sp_offset): New function.
2120 (lra_process_new_insns): Push the current insn to reprocess if the
2121 input reload changes sp offset.
2122
2123 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
2124
2125 PR target/110041
2126 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
2127 Fix misleading identation.
2128
2129 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
2130
2131 * rtl.h (comparison_dominates_p): Change return type from int to bool.
2132 (condjump_p): Ditto.
2133 (any_condjump_p): Ditto.
2134 (any_uncondjump_p): Ditto.
2135 (simplejump_p): Ditto.
2136 (returnjump_p): Ditto.
2137 (eh_returnjump_p): Ditto.
2138 (onlyjump_p): Ditto.
2139 (invert_jump_1): Ditto.
2140 (invert_jump): Ditto.
2141 (rtx_renumbered_equal_p): Ditto.
2142 (redirect_jump_1): Ditto.
2143 (redirect_jump): Ditto.
2144 (condjump_in_parallel_p): Ditto.
2145 * jump.cc (invert_exp_1): Adjust forward declaration.
2146 (comparison_dominates_p): Change return type from int to bool
2147 and adjust function body accordingly.
2148 (simplejump_p): Ditto.
2149 (condjump_p): Ditto.
2150 (condjump_in_parallel_p): Ditto.
2151 (any_uncondjump_p): Ditto.
2152 (any_condjump_p): Ditto.
2153 (returnjump_p): Ditto.
2154 (eh_returnjump_p): Ditto.
2155 (onlyjump_p): Ditto.
2156 (redirect_jump_1): Ditto.
2157 (redirect_jump): Ditto.
2158 (invert_exp_1): Ditto.
2159 (invert_jump_1): Ditto.
2160 (invert_jump): Ditto.
2161 (rtx_renumbered_equal_p): Ditto.
2162
2163 2023-05-30 Andrew Pinski <apinski@marvell.com>
2164
2165 * fold-const.cc (minmax_from_comparison): Add support for NE_EXPR.
2166 * match.pd ((cond (cmp (convert1? x) c1) (convert2? x) c2) pattern):
2167 Add ne as a possible cmp.
2168 ((a CMP b) ? minmax<a, c> : minmax<b, c> pattern): Likewise.
2169
2170 2023-05-30 Andrew Pinski <apinski@marvell.com>
2171
2172 * match.pd (`(a CMP CST1) ? max<a,CST2> : a`): New
2173 pattern.
2174
2175 2023-05-30 Roger Sayle <roger@nextmovesoftware.com>
2176
2177 * simplify-rtx.cc (simplify_binary_operation_1) <AND>: Use wide-int
2178 instead of HWI_COMPUTABLE_MODE_P and UINTVAL in transformation of
2179 (and (extend X) C) as (zero_extend (and X C)), to also optimize
2180 modes wider than HOST_WIDE_INT.
2181
2182 2023-05-30 Roger Sayle <roger@nextmovesoftware.com>
2183
2184 PR target/107172
2185 * simplify-rtx.cc (simplify_const_relational_operation): Return
2186 early if we have a MODE_CC comparison that isn't a COMPARE against
2187 const0_rtx.
2188
2189 2023-05-30 Robin Dapp <rdapp@ventanamicro.com>
2190
2191 * config/riscv/riscv.cc (riscv_const_insns): Allow
2192 const_vec_duplicates.
2193
2194 2023-05-30 liuhongt <hongtao.liu@intel.com>
2195
2196 PR middle-end/108938
2197 * gimple-ssa-store-merging.cc (is_bswap_or_nop_p): New
2198 function, cut from original find_bswap_or_nop function.
2199 (find_bswap_or_nop): Add a new parameter, detect bswap +
2200 rotate and save rotate result in the new parameter.
2201 (bswap_replace): Add a new parameter to indicate rotate and
2202 generate rotate stmt if needed.
2203 (maybe_optimize_vector_constructor): Adjust for new rotate
2204 parameter in the upper 2 functions.
2205 (pass_optimize_bswap::execute): Ditto.
2206 (imm_store_chain_info::output_merged_store): Ditto.
2207
2208 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2209
2210 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>): Delete.
2211 (aarch64_<su>adalp<mode>): New define_expand.
2212 (*aarch64_<su>adalp<mode><vczle><vczbe>_insn): New define_insn.
2213 (aarch64_<su>addlp<mode>): Convert to define_expand.
2214 (*aarch64_<su>addlp<mode><vczle><vczbe>_insn): New define_insn.
2215 * config/aarch64/iterators.md (UNSPEC_SADDLP, UNSPEC_UADDLP): Delete.
2216 (ADALP): Likewise.
2217 (USADDLP): Likewise.
2218 * config/aarch64/predicates.md (vect_par_cnst_even_or_odd_half): Define.
2219
2220 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2221
2222 * config/aarch64/aarch64-builtins.cc (VAR1): Move to after inclusion of
2223 aarch64-builtin-iterators.h. Add definition to remap shadd, uhadd,
2224 srhadd, urhadd builtin codes for standard optab ones.
2225 * config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor): Rename to...
2226 (<su_optab>avg<mode>3_floor): ... This. Expand to RTL codes rather than
2227 unspec.
2228 (<u>avg<mode>3_ceil): Rename to...
2229 (<su_optab>avg<mode>3_ceil): ... This. Expand to RTL codes rather than
2230 unspec.
2231 (aarch64_<su>hsub<mode>): New define_expand.
2232 (aarch64_<sur>h<addsub><mode><vczle><vczbe>): Split into...
2233 (*aarch64_<su>h<ADDSUB:optab><mode><vczle><vczbe>_insn): ... This...
2234 (*aarch64_<su>rhadd<mode><vczle><vczbe>_insn): ... And this.
2235
2236 2023-05-30 Andreas Schwab <schwab@suse.de>
2237
2238 PR target/110036
2239 * config/riscv/riscv.cc (riscv_asan_shadow_offset): Update to
2240 match libsanitizer.
2241
2242 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2243
2244 * config/aarch64/aarch64-modes.def (V16HI, V8SI, V4DI, V2TI): New modes.
2245 * config/aarch64/aarch64-protos.h (aarch64_const_vec_rnd_cst_p):
2246 Declare prototype.
2247 (aarch64_const_vec_rsra_rnd_imm_p): Likewise.
2248 * config/aarch64/aarch64-simd.md (*aarch64_simd_sra<mode>): Rename to...
2249 (aarch64_<sra_op>sra_n<mode>_insn): ... This.
2250 (aarch64_<sra_op>rsra_n<mode>_insn): New define_insn.
2251 (aarch64_<sra_op>sra_n<mode>): New define_expand.
2252 (aarch64_<sra_op>rsra_n<mode>): Likewise.
2253 (aarch64_<sur>sra_n<mode>): Rename to...
2254 (aarch64_<sur>sra_ndi): ... This.
2255 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Add
2256 any_target_p argument.
2257 (aarch64_extract_vec_duplicate_wide_int): Define.
2258 (aarch64_const_vec_rsra_rnd_imm_p): Likewise.
2259 (aarch64_const_vec_rnd_cst_p): Likewise.
2260 (aarch64_vector_mode_supported_any_target_p): Likewise.
2261 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
2262 * config/aarch64/iterators.md (UNSPEC_SRSRA, UNSPEC_URSRA): Delete.
2263 (VSRA): Adjust for the above.
2264 (sur): Likewise.
2265 (V2XWIDE): New mode_attr.
2266 (vec_or_offset): Likewise.
2267 (SHIFTEXTEND): Likewise.
2268 * config/aarch64/predicates.md (aarch64_simd_rsra_rnd_imm_vec): New
2269 predicate.
2270 * doc/tm.texi (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
2271 clarify that it applies to current target options.
2272 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Document.
2273 * doc/tm.texi.in: Regenerate.
2274 * stor-layout.cc (mode_for_vector): Check
2275 vector_mode_supported_any_target_p when iterating through vector modes.
2276 * target.def (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
2277 clarify that it applies to current target options.
2278 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Define.
2279
2280 2023-05-30 Lili Cui <lili.cui@intel.com>
2281
2282 PR tree-optimization/98350
2283 * tree-ssa-reassoc.cc
2284 (rewrite_expr_tree_parallel): Rewrite this function.
2285 (rank_ops_for_fma): New.
2286 (reassociate_bb): Handle new function.
2287
2288 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
2289
2290 * rtl.h (rtx_addr_can_trap_p): Change return type from int to bool.
2291 (rtx_unstable_p): Ditto.
2292 (reg_mentioned_p): Ditto.
2293 (reg_referenced_p): Ditto.
2294 (reg_used_between_p): Ditto.
2295 (reg_set_between_p): Ditto.
2296 (modified_between_p): Ditto.
2297 (no_labels_between_p): Ditto.
2298 (modified_in_p): Ditto.
2299 (reg_set_p): Ditto.
2300 (multiple_sets): Ditto.
2301 (set_noop_p): Ditto.
2302 (noop_move_p): Ditto.
2303 (reg_overlap_mentioned_p): Ditto.
2304 (dead_or_set_p): Ditto.
2305 (dead_or_set_regno_p): Ditto.
2306 (find_reg_fusage): Ditto.
2307 (find_regno_fusage): Ditto.
2308 (side_effects_p): Ditto.
2309 (volatile_refs_p): Ditto.
2310 (volatile_insn_p): Ditto.
2311 (may_trap_p_1): Ditto.
2312 (may_trap_p): Ditto.
2313 (may_trap_or_fault_p): Ditto.
2314 (computed_jump_p): Ditto.
2315 (auto_inc_p): Ditto.
2316 (loc_mentioned_in_p): Ditto.
2317 * rtlanal.cc (computed_jump_p_1): Adjust forward declaration.
2318 (rtx_unstable_p): Change return type from int to bool
2319 and adjust function body accordingly.
2320 (rtx_addr_can_trap_p): Ditto.
2321 (reg_mentioned_p): Ditto.
2322 (no_labels_between_p): Ditto.
2323 (reg_used_between_p): Ditto.
2324 (reg_referenced_p): Ditto.
2325 (reg_set_between_p): Ditto.
2326 (reg_set_p): Ditto.
2327 (modified_between_p): Ditto.
2328 (modified_in_p): Ditto.
2329 (multiple_sets): Ditto.
2330 (set_noop_p): Ditto.
2331 (noop_move_p): Ditto.
2332 (reg_overlap_mentioned_p): Ditto.
2333 (dead_or_set_p): Ditto.
2334 (dead_or_set_regno_p): Ditto.
2335 (find_reg_fusage): Ditto.
2336 (find_regno_fusage): Ditto.
2337 (remove_node_from_insn_list): Ditto.
2338 (volatile_insn_p): Ditto.
2339 (volatile_refs_p): Ditto.
2340 (side_effects_p): Ditto.
2341 (may_trap_p_1): Ditto.
2342 (may_trap_p): Ditto.
2343 (may_trap_or_fault_p): Ditto.
2344 (computed_jump_p): Ditto.
2345 (auto_inc_p): Ditto.
2346 (loc_mentioned_in_p): Ditto.
2347 * combine.cc (can_combine_p): Update indirect function.
2348
2349 2023-05-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2350
2351 * config/riscv/autovec.md (<optab><mode><vconvert>2): New pattern.
2352 * config/riscv/iterators.md: New attribute.
2353 * config/riscv/vector-iterators.md: New attribute.
2354
2355 2023-05-30 From: Juzhe-Zhong <juzhe.zhong@rivai.ai>
2356
2357 * config/riscv/riscv.md: Fix signed and unsigned comparison
2358 warning.
2359
2360 2023-05-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2361
2362 * config/riscv/autovec.md (fnma<mode>4): New pattern.
2363 (*fnma<mode>): Ditto.
2364
2365 2023-05-29 Die Li <lidie@eswincomputing.com>
2366
2367 * config/riscv/riscv.cc (riscv_expand_conditional_move_onesided):
2368 Delete.
2369 (riscv_expand_conditional_move): Reuse the TARGET_SFB_ALU expand
2370 process for TARGET_XTHEADCONDMOV
2371
2372 2023-05-29 Uros Bizjak <ubizjak@gmail.com>
2373
2374 PR target/110021
2375 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also require
2376 TARGET_AVX512BW to generate truncv16hiv16qi2.
2377
2378 2023-05-29 Jivan Hakobyan <jivanhakobyan9@gmail.com>
2379
2380 * config/riscv/riscv.md (and<mode>3): New expander.
2381 (*and<mode>3) New pattern.
2382 * config/riscv/predicates.md (arith_operand_or_mode_mask): New
2383 predicate.
2384
2385 2023-05-29 Pan Li <pan2.li@intel.com>
2386
2387 * config/riscv/riscv-v.cc (emit_vlmax_insn): Remove unnecessary
2388 comments and rename local variables.
2389 (emit_nonvlmax_insn): Diito.
2390 (emit_vlmax_merge_insn): Ditto.
2391 (emit_vlmax_cmp_insn): Ditto.
2392 (emit_vlmax_cmp_mu_insn): Ditto.
2393 (emit_scalar_move_insn): Ditto.
2394
2395 2023-05-29 Pan Li <pan2.li@intel.com>
2396
2397 * config/riscv/riscv-v.cc (emit_vlmax_insn): Eliminate the
2398 magic number.
2399 (emit_nonvlmax_insn): Ditto.
2400 (emit_vlmax_merge_insn): Ditto.
2401 (emit_vlmax_cmp_insn): Ditto.
2402 (emit_vlmax_cmp_mu_insn): Ditto.
2403 (expand_vec_series): Ditto.
2404
2405 2023-05-29 Pan Li <pan2.li@intel.com>
2406
2407 * config/riscv/riscv-protos.h (enum insn_type): New type.
2408 * config/riscv/riscv-v.cc (RVV_INSN_OPERANDS_MAX): New macro.
2409 (rvv_builder::can_duplicate_repeating_sequence_p): Align the referenced
2410 class member.
2411 (rvv_builder::get_merged_repeating_sequence): Ditto.
2412 (rvv_builder::repeating_sequence_use_merge_profitable_p): New function
2413 to evaluate the optimization cost.
2414 (rvv_builder::get_merge_scalar_mask): New function to get the merge
2415 mask.
2416 (emit_scalar_move_insn): New function to emit vmv.s.x.
2417 (emit_vlmax_integer_move_insn): New function to emit vlmax vmv.v.x.
2418 (emit_nonvlmax_integer_move_insn): New function to emit nonvlmax
2419 vmv.v.x.
2420 (get_repeating_sequence_dup_machine_mode): New function to get the dup
2421 machine mode.
2422 (expand_vector_init_merge_repeating_sequence): New function to perform
2423 the optimization.
2424 (expand_vec_init): Add this vector init optimization.
2425 * config/riscv/riscv.h (BITS_PER_WORD): New macro.
2426
2427 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2428
2429 * tree-ssa-loop-manip.cc (create_iv): Try harder to find a SLOC to
2430 put onto the increment when it is inserted after the position.
2431
2432 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2433
2434 * match.pd ((T)P - (T)(P + A) -> -(T) A): Avoid artificial overflow
2435 on constants.
2436
2437 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2438
2439 * config/riscv/riscv-vsetvl.cc (source_equal_p): Fix ICE.
2440
2441 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2442
2443 * config/riscv/autovec.md (fma<mode>4): New pattern.
2444 (*fma<mode>): Ditto.
2445 * config/riscv/riscv-protos.h (enum insn_type): New enum.
2446 (emit_vlmax_ternary_insn): New function.
2447 * config/riscv/riscv-v.cc (emit_vlmax_ternary_insn): Ditto.
2448
2449 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2450
2451 * config/riscv/vector.md: Fix vimuladd instruction bug.
2452
2453 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2454
2455 * config/riscv/riscv.cc (global_state_unknown_p): New function.
2456 (riscv_mode_after): Fix incorrect VXM.
2457
2458 2023-05-29 Pan Li <pan2.li@intel.com>
2459
2460 * common/config/riscv/riscv-common.cc:
2461 (riscv_implied_info): Add zvfhmin item.
2462 (riscv_ext_version_table): Ditto.
2463 (riscv_ext_flag_table): Ditto.
2464 * config/riscv/riscv-opts.h (MASK_ZVFHMIN): New macro.
2465 (TARGET_ZFHMIN): Align indent.
2466 (TARGET_ZFH): Ditto.
2467 (TARGET_ZVFHMIN): New macro.
2468
2469 2023-05-27 liuhongt <hongtao.liu@intel.com>
2470
2471 PR target/100711
2472 * config/i386/sse.md (*andnot<mode>3): Extend below splitter
2473 to VI_AVX2 to cover more modes.
2474
2475 2023-05-27 liuhongt <hongtao.liu@intel.com>
2476
2477 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
2478 Remove ATOM and ICELAKE(and later) core processors.
2479
2480 2023-05-26 Robin Dapp <rdapp@ventanamicro.com>
2481
2482 * config/riscv/autovec.md (<optab><mode>2): Add vneg/vnot.
2483 (abs<mode>2): Add.
2484 * config/riscv/riscv-protos.h (emit_vlmax_masked_mu_insn):
2485 Declare.
2486 * config/riscv/riscv-v.cc (emit_vlmax_masked_mu_insn): New
2487 function.
2488
2489 2023-05-26 Robin Dapp <rdapp@ventanamicro.com>
2490 Juzhe Zhong <juzhe.zhong@rivai.ai>
2491
2492 * config/riscv/autovec.md (<optab><v_double_trunc><mode>2): New
2493 expander.
2494 (<optab><v_quad_trunc><mode>2): Dito.
2495 (<optab><v_oct_trunc><mode>2): Dito.
2496 (trunc<mode><v_double_trunc>2): Dito.
2497 (trunc<mode><v_quad_trunc>2): Dito.
2498 (trunc<mode><v_oct_trunc>2): Dito.
2499 * config/riscv/riscv-protos.h (vectorize_related_mode): Define.
2500 (autovectorize_vector_modes): Define.
2501 * config/riscv/riscv-v.cc (vectorize_related_mode): Implement
2502 hook.
2503 (autovectorize_vector_modes): Implement hook.
2504 * config/riscv/riscv.cc (riscv_autovectorize_vector_modes):
2505 Implement target hook.
2506 (riscv_vectorize_related_mode): Implement target hook.
2507 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
2508 (TARGET_VECTORIZE_RELATED_MODE): Define.
2509 * config/riscv/vector-iterators.md: Add lowercase versions of
2510 mode_attr iterators.
2511
2512 2023-05-26 Andrew Stubbs <ams@codesourcery.com>
2513 Tobias Burnus <tobias@codesourcery.com>
2514
2515 * config/gcn/gcn-hsa.h (XNACKOPT): New macro.
2516 (ASM_SPEC): Use XNACKOPT.
2517 * config/gcn/gcn-opts.h (enum sram_ecc_type): Rename to ...
2518 (enum hsaco_attr_type): ... this, and generalize the names.
2519 (TARGET_XNACK): New macro.
2520 * config/gcn/gcn.cc (gcn_option_override): Update to sorry for all
2521 but -mxnack=off.
2522 (output_file_start): Update xnack handling.
2523 (gcn_hsa_declare_function_name): Use TARGET_XNACK.
2524 * config/gcn/gcn.opt (-mxnack): Add the "on/off/any" syntax.
2525 (sram_ecc_type): Rename to ...
2526 (hsaco_attr_type: ... this.)
2527 * config/gcn/mkoffload.cc (SET_XNACK_ANY): New macro.
2528 (TEST_XNACK): Delete.
2529 (TEST_XNACK_ANY): New macro.
2530 (TEST_XNACK_ON): New macro.
2531 (main): Support the new -mxnack=on/off/any syntax.
2532 * doc/invoke.texi (-mxnack): Update for new syntax.
2533
2534 2023-05-26 Andrew Pinski <apinski@marvell.com>
2535
2536 * genmatch.cc (emit_debug_printf): New function.
2537 (dt_simplify::gen_1): Emit printf into the code
2538 before the `return true` or returning the folded result
2539 instead of emitting it always.
2540
2541 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2542
2543 * config/xtensa/xtensa-protos.h
2544 (xtensa_expand_block_set_unrolled_loop,
2545 xtensa_expand_block_set_small_loop): Remove.
2546 (xtensa_expand_block_set): New prototype.
2547 * config/xtensa/xtensa.cc
2548 (xtensa_expand_block_set_libcall): New subfunction.
2549 (xtensa_expand_block_set_unrolled_loop,
2550 xtensa_expand_block_set_small_loop): Rewrite as subfunctions.
2551 (xtensa_expand_block_set): New function that calls the above
2552 subfunctions.
2553 * config/xtensa/xtensa.md (memsetsi): Change to invoke only
2554 xtensa_expand_block_set().
2555
2556 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2557
2558 * config/xtensa/xtensa-protos.h (xtensa_m1_or_1_thru_15):
2559 New prototype.
2560 * config/xtensa/xtensa.cc (xtensa_m1_or_1_thru_15):
2561 New function.
2562 * config/xtensa/constraints.md (O):
2563 Change to use the above function.
2564 * config/xtensa/xtensa.md (*subsi3_from_const):
2565 New insn_and_split pattern.
2566
2567 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2568
2569 * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3):
2570 Retract excessive line folding, and correct the value of
2571 the "length" insn attribute related to TARGET_DENSITY.
2572 (*extzvsi-1bit_addsubx): Ditto.
2573
2574 2023-05-26 Uros Bizjak <ubizjak@gmail.com>
2575
2576 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi):
2577 Do not disable call to ix86_expand_vecop_qihi2.
2578
2579 2023-05-26 liuhongt <hongtao.liu@intel.com>
2580
2581 PR target/109610
2582 PR target/109858
2583 * ira-costs.cc (scan_one_insn): Only use NO_REGS in cost
2584 calculation when !hard_regno_mode_ok for GENERAL_REGS and
2585 mode, otherwise still use GENERAL_REGS.
2586
2587 2023-05-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2588
2589 * config/riscv/riscv.cc (vector_zero_call_used_regs): Add
2590 explict VL and drop VL in ops.
2591
2592 2023-05-25 Jin Ma <jinma@linux.alibaba.com>
2593
2594 * sched-deps.cc (sched_macro_fuse_insns): Insns should not be fusion
2595 in different BB blocks.
2596
2597 2023-05-25 Uros Bizjak <ubizjak@gmail.com>
2598
2599 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
2600 Rewrite to expand to 2x-wider (e.g. V16QI -> V16HImode)
2601 instructions when available. Emulate truncation via
2602 ix86_expand_vec_perm_const_1 when native truncate insn
2603 is not available.
2604 (ix86_expand_vecop_qihi_partial) <case MULT>: Use pmovzx
2605 when available. Trivially rename some variables.
2606 (ix86_expand_vecop_qihi): Unconditionally call ix86_expand_vecop_qihi2.
2607 * config/i386/i386.cc (ix86_multiplication_cost): Rewrite cost
2608 calculation of V*QImode emulations to account for generation of
2609 2x-wider mode instructions.
2610 (ix86_shift_rotate_cost): Update cost calculation of V*QImode
2611 emulations to account for generation of 2x-wider mode instructions.
2612
2613 2023-05-25 Georg-Johann Lay <avr@gjlay.de>
2614
2615 PR target/104327
2616 * config/avr/avr.cc (avr_can_inline_p): New static function.
2617 (TARGET_CAN_INLINE_P): Define to that function.
2618
2619 2023-05-25 Georg-Johann Lay <avr@gjlay.de>
2620
2621 PR target/82931
2622 * config/avr/avr.md (*movbitqi.0): Rename to *movbit<mode>.0-6.
2623 Handle any bit position and use mode QISI.
2624 * config/avr/avr.cc (avr_rtx_costs_1) [IOR]: Return a cost
2625 of 2 insns for bit-transfer of respective style.
2626
2627 2023-05-25 Christophe Lyon <christophe.lyon@linaro.org>
2628
2629 * config/arm/iterators.md (MVE_6): Remove.
2630 * config/arm/mve.md: Replace MVE_6 with MVE_5.
2631
2632 2023-05-25 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2633 Richard Sandiford <richard.sandiford@arm.com>
2634
2635 * tree-vect-loop-manip.cc (vect_adjust_loop_lens_control): New
2636 function.
2637 (vect_set_loop_controls_directly): Add decrement IV support.
2638 (vect_set_loop_condition_partial_vectors): Ditto.
2639 * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): New
2640 variable.
2641 * tree-vectorizer.h (LOOP_VINFO_USING_DECREMENTING_IV_P): New
2642 macro.
2643
2644 2023-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2645
2646 PR target/99195
2647 * config/aarch64/aarch64-simd.md (aarch64_fcadd<rot><mode>): Rename to...
2648 (aarch64_fcadd<rot><mode><vczle><vczbe>): ... This.
2649 Fix canonicalization of PLUS operands.
2650 (aarch64_fcmla<rot><mode>): Rename to...
2651 (aarch64_fcmla<rot><mode><vczle><vczbe>): ... This.
2652 Fix canonicalization of PLUS operands.
2653 (aarch64_fcmla_lane<rot><mode>): Rename to...
2654 (aarch64_fcmla_lane<rot><mode><vczle><vczbe>): ... This.
2655 Fix canonicalization of PLUS operands.
2656 (aarch64_fcmla_laneq<rot>v4hf): Rename to...
2657 (aarch64_fcmla_laneq<rot>v4hf<vczle><vczbe>): ... This.
2658 Fix canonicalization of PLUS operands.
2659 (aarch64_fcmlaq_lane<rot><mode>): Fix canonicalization of PLUS operands.
2660
2661 2023-05-25 Chris Sidebottom <chris.sidebottom@arm.com>
2662
2663 * config/arm/arm.md (rbitsi2): Rename to...
2664 (arm_rbit): ... This.
2665 (ctzsi2): Adjust for the above.
2666 (arm_rev16si2): Convert to define_expand.
2667 (arm_rev16si2_alt1): New pattern.
2668 (arm_rev16si2_alt): Rename to...
2669 (*arm_rev16si2_alt2): ... This.
2670 * config/arm/arm_acle.h (__ror, __rorl, __rorll, __clz, __clzl, __clzll,
2671 __cls, __clsl, __clsll, __revsh, __rev, __revl, __revll, __rev16,
2672 __rev16l, __rev16ll, __rbit, __rbitl, __rbitll): Define intrinsics.
2673 * config/arm/arm_acle_builtins.def (rbit, rev16si2): Define builtins.
2674
2675 2023-05-25 Alex Coplan <alex.coplan@arm.com>
2676
2677 PR target/109800
2678 * config/arm/arm.md (movdf): Generate temporary pseudo in DImode
2679 instead of DFmode.
2680 * config/arm/vfp.md (no_literal_pool_df_immediate): Rather than punning an
2681 lvalue DFmode pseudo into DImode, use a DImode pseudo and pun it into
2682 DFmode as an rvalue.
2683
2684 2023-05-25 Richard Biener <rguenther@suse.de>
2685
2686 PR target/109955
2687 * tree-vect-stmts.cc (vectorizable_condition): For
2688 embedded comparisons also handle the case when the target
2689 only provides vec_cmp and vcond_mask.
2690
2691 2023-05-25 Claudiu Zissulescu <claziss@gmail.com>
2692
2693 * config/arc/arc.cc (arc_call_tls_get_addr): Simplify access using
2694 TLS Local Dynamic.
2695
2696 2023-05-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2697
2698 * config/aarch64/aarch64.cc (scalar_move_insn_p): New function.
2699 (seq_cost_ignoring_scalar_moves): Likewise.
2700 (aarch64_expand_vector_init): Call seq_cost_ignoring_scalar_moves.
2701
2702 2023-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2703
2704 * config/aarch64/arm_neon.h (vcage_f64): Reimplement with builtins.
2705 (vcage_f32): Likewise.
2706 (vcages_f32): Likewise.
2707 (vcageq_f32): Likewise.
2708 (vcaged_f64): Likewise.
2709 (vcageq_f64): Likewise.
2710 (vcagts_f32): Likewise.
2711 (vcagt_f32): Likewise.
2712 (vcagt_f64): Likewise.
2713 (vcagtq_f32): Likewise.
2714 (vcagtd_f64): Likewise.
2715 (vcagtq_f64): Likewise.
2716 (vcale_f32): Likewise.
2717 (vcale_f64): Likewise.
2718 (vcaled_f64): Likewise.
2719 (vcales_f32): Likewise.
2720 (vcaleq_f32): Likewise.
2721 (vcaleq_f64): Likewise.
2722 (vcalt_f32): Likewise.
2723 (vcalt_f64): Likewise.
2724 (vcaltd_f64): Likewise.
2725 (vcaltq_f32): Likewise.
2726 (vcaltq_f64): Likewise.
2727 (vcalts_f32): Likewise.
2728
2729 2023-05-25 Hu, Lin1 <lin1.hu@intel.com>
2730
2731 PR target/109173
2732 PR target/109174
2733 * config/i386/avx512bwintrin.h (_mm512_srli_epi16): Change type from
2734 int to const int or const int to const unsigned int.
2735 (_mm512_mask_srli_epi16): Ditto.
2736 (_mm512_slli_epi16): Ditto.
2737 (_mm512_mask_slli_epi16): Ditto.
2738 (_mm512_maskz_slli_epi16): Ditto.
2739 (_mm512_srai_epi16): Ditto.
2740 (_mm512_mask_srai_epi16): Ditto.
2741 (_mm512_maskz_srai_epi16): Ditto.
2742 * config/i386/avx512fintrin.h (_mm512_slli_epi64): Ditto.
2743 (_mm512_mask_slli_epi64): Ditto.
2744 (_mm512_maskz_slli_epi64): Ditto.
2745 (_mm512_srli_epi64): Ditto.
2746 (_mm512_mask_srli_epi64): Ditto.
2747 (_mm512_maskz_srli_epi64): Ditto.
2748 (_mm512_srai_epi64): Ditto.
2749 (_mm512_mask_srai_epi64): Ditto.
2750 (_mm512_maskz_srai_epi64): Ditto.
2751 (_mm512_slli_epi32): Ditto.
2752 (_mm512_mask_slli_epi32): Ditto.
2753 (_mm512_maskz_slli_epi32): Ditto.
2754 (_mm512_srli_epi32): Ditto.
2755 (_mm512_mask_srli_epi32): Ditto.
2756 (_mm512_maskz_srli_epi32): Ditto.
2757 (_mm512_srai_epi32): Ditto.
2758 (_mm512_mask_srai_epi32): Ditto.
2759 (_mm512_maskz_srai_epi32): Ditto.
2760 * config/i386/avx512vlbwintrin.h (_mm256_mask_srai_epi16): Ditto.
2761 (_mm256_maskz_srai_epi16): Ditto.
2762 (_mm_mask_srai_epi16): Ditto.
2763 (_mm_maskz_srai_epi16): Ditto.
2764 (_mm256_mask_slli_epi16): Ditto.
2765 (_mm256_maskz_slli_epi16): Ditto.
2766 (_mm_mask_slli_epi16): Ditto.
2767 (_mm_maskz_slli_epi16): Ditto.
2768 (_mm_maskz_srli_epi16): Ditto.
2769 * config/i386/avx512vlintrin.h (_mm256_mask_srli_epi32): Ditto.
2770 (_mm256_maskz_srli_epi32): Ditto.
2771 (_mm_mask_srli_epi32): Ditto.
2772 (_mm_maskz_srli_epi32): Ditto.
2773 (_mm256_mask_srli_epi64): Ditto.
2774 (_mm256_maskz_srli_epi64): Ditto.
2775 (_mm_mask_srli_epi64): Ditto.
2776 (_mm_maskz_srli_epi64): Ditto.
2777 (_mm256_mask_srai_epi32): Ditto.
2778 (_mm256_maskz_srai_epi32): Ditto.
2779 (_mm_mask_srai_epi32): Ditto.
2780 (_mm_maskz_srai_epi32): Ditto.
2781 (_mm256_srai_epi64): Ditto.
2782 (_mm256_mask_srai_epi64): Ditto.
2783 (_mm256_maskz_srai_epi64): Ditto.
2784 (_mm_srai_epi64): Ditto.
2785 (_mm_mask_srai_epi64): Ditto.
2786 (_mm_maskz_srai_epi64): Ditto.
2787 (_mm_mask_slli_epi32): Ditto.
2788 (_mm_maskz_slli_epi32): Ditto.
2789 (_mm_mask_slli_epi64): Ditto.
2790 (_mm_maskz_slli_epi64): Ditto.
2791 (_mm256_mask_slli_epi32): Ditto.
2792 (_mm256_maskz_slli_epi32): Ditto.
2793 (_mm256_mask_slli_epi64): Ditto.
2794 (_mm256_maskz_slli_epi64): Ditto.
2795
2796 2023-05-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2797
2798 * config/riscv/vector.md: Remove FRM_REGNUM dependency in rtz
2799 instructions.
2800
2801 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
2802
2803 * data-streamer-in.cc (streamer_read_value_range): Handle NANs.
2804 * data-streamer-out.cc (streamer_write_vrange): Same.
2805 * value-range.h (class vrange): Make streamer_write_vrange a friend.
2806
2807 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
2808
2809 * value-query.cc (range_query::get_tree_range): Set NAN directly
2810 if necessary.
2811 * value-range.cc (frange::set): Assert that bounds are not NAN.
2812
2813 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
2814
2815 * value-range.cc (add_vrange): Handle known NANs.
2816
2817 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
2818
2819 * value-range.h (frange::set_nan): New.
2820
2821 2023-05-25 Alexandre Oliva <oliva@adacore.com>
2822
2823 PR target/100106
2824 * emit-rtl.cc (validate_subreg): Reject a SUBREG of a MEM that
2825 requires stricter alignment than MEM's.
2826
2827 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2828
2829 PR tree-optimization/107822
2830 PR tree-optimization/107986
2831 * Makefile.in (OBJS): Add gimple-range-phi.o.
2832 * gimple-range-cache.h (ranger_cache::m_estimate): New
2833 phi_analyzer pointer member.
2834 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use
2835 phi_analyzer if no loop info is available.
2836 * gimple-range-phi.cc: New file.
2837 * gimple-range-phi.h: New file.
2838 * tree-vrp.cc (execute_ranger_vrp): Utililze a phi_analyzer.
2839
2840 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2841
2842 * gimple-range-fold.cc (fur_list::fur_list): Add range_query param
2843 to contructors.
2844 (fold_range): Add range_query parameter.
2845 (fur_relation::fur_relation): New.
2846 (fur_relation::trio): New.
2847 (fur_relation::register_relation): New.
2848 (fold_relations): New.
2849 * gimple-range-fold.h (fold_range): Adjust prototypes.
2850 (fold_relations): New.
2851
2852 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2853
2854 * gimple-range-cache.cc (ssa_cache::range_of_expr): New.
2855 * gimple-range-cache.h (class ssa_cache): Inherit from range_query.
2856 (ranger_cache::const_query): New.
2857 * gimple-range.cc (gimple_ranger::const_query): New.
2858 * gimple-range.h (gimple_ranger::const_query): New prototype.
2859
2860 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2861
2862 * gimple-range-cache.cc (ssa_cache::dump): Use get_range.
2863 (ssa_cache::dump_range_query): Delete.
2864 (ssa_lazy_cache::dump_range_query): Delete.
2865 (ssa_lazy_cache::get_range): Move from header file.
2866 (ssa_lazy_cache::clear_range): ditto.
2867 (ssa_lazy_cache::clear): Ditto.
2868 * gimple-range-cache.h (class ssa_cache): Virtualize.
2869 (class ssa_lazy_cache): Inherit and virtualize.
2870
2871 2023-05-24 Aldy Hernandez <aldyh@redhat.com>
2872
2873 * value-range.h (vrange::kind): Remove.
2874
2875 2023-05-24 Roger Sayle <roger@nextmovesoftware.com>
2876
2877 PR middle-end/109840
2878 * match.pd <popcount optimizations>: Preserve zero-extension when
2879 optimizing popcount((T)bswap(x)) and popcount((T)rotate(x,y)) as
2880 popcount((T)x), so the popcount's argument keeps the same type.
2881 <parity optimizations>: Likewise preserve extensions when
2882 simplifying parity((T)bswap(x)) and parity((T)rotate(x,y)) as
2883 parity((T)x), so that the parity's argument type is the same.
2884
2885 2023-05-24 Aldy Hernandez <aldyh@redhat.com>
2886
2887 * ipa-cp.cc (ipa_value_range_from_jfunc): Use new ipa_vr API.
2888 (ipcp_store_vr_results): Same.
2889 * ipa-prop.cc (ipa_vr::ipa_vr): New.
2890 (ipa_vr::get_vrange): New.
2891 (ipa_vr::set_unknown): New.
2892 (ipa_vr::streamer_read): New.
2893 (ipa_vr::streamer_write): New.
2894 (write_ipcp_transformation_info): Use new ipa_vr API.
2895 (read_ipcp_transformation_info): Same.
2896 (ipa_vr::nonzero_p): Delete.
2897 (ipcp_update_vr): Use new ipa_vr API.
2898 * ipa-prop.h (class ipa_vr): Provide an API and hide internals.
2899 * ipa-sra.cc (zap_useless_ipcp_results): Use new ipa_vr API.
2900
2901 2023-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2902
2903 * config/mcore/mcore.cc (output_inline_const) Make buffer smaller to
2904 silence overflow warnings later on.
2905
2906 2023-05-24 Uros Bizjak <ubizjak@gmail.com>
2907
2908 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
2909 Remove handling of V8QImode.
2910 * config/i386/mmx.md (v<insn>v8qi3): Move from sse.md.
2911 Call ix86_expand_vecop_qihi_partial. Enable for TARGET_MMX_WITH_SSE.
2912 (v<insn>v4qi3): Ditto.
2913 * config/i386/sse.md (v<insn>v8qi3): Remove.
2914
2915 2023-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2916
2917 PR target/99195
2918 * config/aarch64/aarch64-simd.md (aarch64_simd_lshr<mode>): Rename to...
2919 (aarch64_simd_lshr<mode><vczle><vczbe>): ... This.
2920 (aarch64_simd_ashr<mode>): Rename to...
2921 (aarch64_simd_ashr<mode><vczle><vczbe>): ... This.
2922 (aarch64_simd_imm_shl<mode>): Rename to...
2923 (aarch64_simd_imm_shl<mode><vczle><vczbe>): ... This.
2924 (aarch64_simd_reg_sshl<mode>): Rename to...
2925 (aarch64_simd_reg_sshl<mode><vczle><vczbe>): ... This.
2926 (aarch64_simd_reg_shl<mode>_unsigned): Rename to...
2927 (aarch64_simd_reg_shl<mode>_unsigned<vczle><vczbe>): ... This.
2928 (aarch64_simd_reg_shl<mode>_signed): Rename to...
2929 (aarch64_simd_reg_shl<mode>_signed<vczle><vczbe>): ... This.
2930 (vec_shr_<mode>): Rename to...
2931 (vec_shr_<mode><vczle><vczbe>): ... This.
2932 (aarch64_<sur>shl<mode>): Rename to...
2933 (aarch64_<sur>shl<mode><vczle><vczbe>): ... This.
2934 (aarch64_<sur>q<r>shl<mode>): Rename to...
2935 (aarch64_<sur>q<r>shl<mode><vczle><vczbe>): ... This.
2936
2937 2023-05-24 Richard Biener <rguenther@suse.de>
2938
2939 PR target/109944
2940 * config/i386/i386-expand.cc (ix86_expand_vector_init_general):
2941 Perform final vector composition using
2942 ix86_expand_vector_init_general instead of setting
2943 the highpart and lowpart which causes spilling.
2944
2945 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2946
2947 PR tree-optimization/109695
2948 * gimple-range-cache.cc (ranger_cache::get_global_range): Add
2949 changed param.
2950 * gimple-range-cache.h (ranger_cache::get_global_range): Ditto.
2951 * gimple-range.cc (gimple_ranger::range_of_stmt): Pass changed
2952 flag to set_global_range.
2953 (gimple_ranger::prefill_stmt_dependencies): Ditto.
2954
2955 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2956
2957 PR tree-optimization/109695
2958 * gimple-range-cache.cc (temporal_cache::temporal_value): Return
2959 a positive int.
2960 (temporal_cache::current_p): Check always_current method.
2961 (temporal_cache::set_always_current): Add param and set value
2962 appropriately.
2963 (temporal_cache::always_current_p): New.
2964 (ranger_cache::get_global_range): Adjust.
2965 (ranger_cache::set_global_range): set always current first.
2966
2967 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2968
2969 PR tree-optimization/109695
2970 * gimple-range-cache.cc (ranger_cache::get_global_range): Call
2971 fold_range with global query to choose an initial value.
2972
2973 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2974
2975 * config/riscv/riscv-protos.h (enum frm_field_enum): Add FRM_
2976 prefix.
2977
2978 2023-05-24 Richard Biener <rguenther@suse.de>
2979
2980 PR tree-optimization/109849
2981 * tree-ssa-pre.cc (do_hoist_insertion): Do not intersect
2982 expressions but take the first sets.
2983
2984 2023-05-24 Gaius Mulley <gaiusmod2@gmail.com>
2985
2986 PR modula2/109952
2987 * doc/gm2.texi (High procedure function): New node.
2988 (Using): New menu entry for High procedure function.
2989
2990 2023-05-24 Richard Sandiford <richard.sandiford@arm.com>
2991
2992 PR rtl-optimization/109940
2993 * early-remat.cc (postorder_index): Rename to...
2994 (rpo_index): ...this.
2995 (compare_candidates): Sort by decreasing rpo_index rather than
2996 increasing postorder_index.
2997 (early_remat::sort_candidates): Calculate the forward RPO from
2998 DF_FORWARD.
2999 (early_remat::local_phase): Follow forward RPO using DF_FORWARD,
3000 rather than DF_BACKWARD in reverse.
3001
3002 2023-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3003
3004 PR target/109939
3005 * config/arm/arm-builtins.cc (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS): Use
3006 qualifier_none for the return operand.
3007
3008 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3009
3010 * config/riscv/autovec.md (<optab><mode>3): New pattern.
3011 (one_cmpl<mode>2): Ditto.
3012 (*<optab>not<mode>): Ditto.
3013 (*n<optab><mode>): Ditto.
3014 * config/riscv/riscv-v.cc (expand_vec_cmp_float): Change to
3015 one_cmpl.
3016
3017 2023-05-24 Kewen Lin <linkw@linux.ibm.com>
3018
3019 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Adjust the
3020 calculation on n_perms by considering nvectors_per_build.
3021
3022 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3023 Richard Sandiford <richard.sandiford@arm.com>
3024
3025 * config/riscv/autovec.md (@vcond_mask_<mode><vm>): New pattern.
3026 (vec_cmp<mode><vm>): New pattern.
3027 (vec_cmpu<mode><vm>): New pattern.
3028 (vcond<V:mode><VI:mode>): New pattern.
3029 (vcondu<V:mode><VI:mode>): New pattern.
3030 * config/riscv/riscv-protos.h (enum insn_type): Add new enum.
3031 (emit_vlmax_merge_insn): New function.
3032 (emit_vlmax_cmp_insn): Ditto.
3033 (emit_vlmax_cmp_mu_insn): Ditto.
3034 (expand_vec_cmp): Ditto.
3035 (expand_vec_cmp_float): Ditto.
3036 (expand_vcond): Ditto.
3037 * config/riscv/riscv-v.cc (emit_vlmax_merge_insn): Ditto.
3038 (emit_vlmax_cmp_insn): Ditto.
3039 (emit_vlmax_cmp_mu_insn): Ditto.
3040 (get_cmp_insn_code): Ditto.
3041 (expand_vec_cmp): Ditto.
3042 (expand_vec_cmp_float): Ditto.
3043 (expand_vcond): Ditto.
3044
3045 2023-05-24 Pan Li <pan2.li@intel.com>
3046
3047 * config/riscv/genrvv-type-indexer.cc (main): Add
3048 unsigned_eew*_lmul1_interpret for indexer.
3049 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
3050 Register vuint*m1_t interpret function.
3051 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
3052 New macro for vuint8m1_t.
3053 (DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
3054 (DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
3055 (DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
3056 (vbool1_t): Add to unsigned_eew*_interpret_ops.
3057 (vbool2_t): Likewise.
3058 (vbool4_t): Likewise.
3059 (vbool8_t): Likewise.
3060 (vbool16_t): Likewise.
3061 (vbool32_t): Likewise.
3062 (vbool64_t): Likewise.
3063 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
3064 New macro for vuint*m1_t.
3065 (DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
3066 (DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
3067 (DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
3068 (required_extensions_p): Add vuint*m1_t interpret case.
3069 * config/riscv/riscv-vector-builtins.def (unsigned_eew8_lmul1_interpret):
3070 Add vuint*m1_t interpret to base type.
3071 (unsigned_eew16_lmul1_interpret): Likewise.
3072 (unsigned_eew32_lmul1_interpret): Likewise.
3073 (unsigned_eew64_lmul1_interpret): Likewise.
3074
3075 2023-05-24 Pan Li <pan2.li@intel.com>
3076
3077 * config/riscv/genrvv-type-indexer.cc (EEW_SIZE_LIST): New macro
3078 for the eew size list.
3079 (LMUL1_LOG2): New macro for the log2 value of lmul=1.
3080 (main): Add signed_eew*_lmul1_interpret for indexer.
3081 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
3082 Register vint*m1_t interpret function.
3083 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
3084 New macro for vint8m1_t.
3085 (DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
3086 (DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
3087 (DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
3088 (vbool1_t): Add to signed_eew*_interpret_ops.
3089 (vbool2_t): Likewise.
3090 (vbool4_t): Likewise.
3091 (vbool8_t): Likewise.
3092 (vbool16_t): Likewise.
3093 (vbool32_t): Likewise.
3094 (vbool64_t): Likewise.
3095 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
3096 New macro for vint*m1_t.
3097 (DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
3098 (DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
3099 (DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
3100 (required_extensions_p): Add vint8m1_t interpret case.
3101 * config/riscv/riscv-vector-builtins.def (signed_eew8_lmul1_interpret):
3102 Add vint*m1_t interpret to base type.
3103 (signed_eew16_lmul1_interpret): Likewise.
3104 (signed_eew32_lmul1_interpret): Likewise.
3105 (signed_eew64_lmul1_interpret): Likewise.
3106
3107 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3108
3109 * config/riscv/autovec.md: Adjust for new interface.
3110 * config/riscv/riscv-protos.h (emit_vlmax_insn): Add VL operand.
3111 (emit_nonvlmax_insn): Add AVL operand.
3112 * config/riscv/riscv-v.cc (emit_vlmax_insn): Add VL operand.
3113 (emit_nonvlmax_insn): Add AVL operand.
3114 (sew64_scalar_helper): Adjust for new interface.
3115 (expand_tuple_move): Ditto.
3116 * config/riscv/vector.md: Ditto.
3117
3118 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3119
3120 * config/riscv/riscv-v.cc (expand_vec_series): Remove magic number.
3121 (expand_const_vector): Ditto.
3122 (legitimize_move): Ditto.
3123 (sew64_scalar_helper): Ditto.
3124 (expand_tuple_move): Ditto.
3125 (expand_vector_init_insert_elems): Ditto.
3126 * config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
3127
3128 2023-05-24 liuhongt <hongtao.liu@intel.com>
3129
3130 PR target/109900
3131 * config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
3132 _mm{,256,512}_abs_{epi8,epi16,epi32,epi64} and
3133 _mm_abs_{pi8,pi16,pi32} into gimple ABS_EXPR.
3134 (ix86_masked_all_ones): Handle 64-bit mask.
3135 * config/i386/i386-builtin.def: Replace icode of related
3136 non-mask simd abs builtins with CODE_FOR_nothing.
3137
3138 2023-05-23 Martin Uecker <uecker@tugraz.at>
3139
3140 PR c/109450
3141 * function.cc (gimplify_parm_type): Remove function.
3142 (gimplify_parameters): Call gimplify_type_sizes.
3143
3144 2023-05-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3145
3146 * config/xtensa/xtensa.md (*addsubx): Rename from '*addx',
3147 and change to also accept '*subx' pattern.
3148 (*subx): Remove.
3149
3150 2023-05-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3151
3152 * config/xtensa/predicates.md (addsub_operator): New.
3153 * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3,
3154 *extzvsi-1bit_addsubx): New insn_and_split patterns.
3155 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
3156 Add a special case about ifcvt 'noce_try_cmove()' to handle
3157 constant loads that do not fit into signed 12 bits in the
3158 patterns added above.
3159
3160 2023-05-23 Richard Biener <rguenther@suse.de>
3161
3162 PR tree-optimization/109747
3163 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Pass down
3164 the SLP node only once to the cost hook.
3165
3166 2023-05-23 Georg-Johann Lay <avr@gjlay.de>
3167
3168 * config/avr/avr.cc (avr_insn_cost): New static function.
3169 (TARGET_INSN_COST): Define to that function.
3170
3171 2023-05-23 Richard Biener <rguenther@suse.de>
3172
3173 PR target/109944
3174 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
3175 For vector construction or splats apply GPR->XMM move
3176 costing. QImode memory can be handled directly only
3177 with SSE4.1 pinsrb.
3178
3179 2023-05-23 Richard Biener <rguenther@suse.de>
3180
3181 PR tree-optimization/108752
3182 * tree-vect-stmts.cc (vectorizable_operation): For bit
3183 operations with generic word_mode vectors do not cost
3184 an extra stmt. For plus, minus and negate also cost the
3185 constant materialization.
3186
3187 2023-05-23 Uros Bizjak <ubizjak@gmail.com>
3188
3189 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
3190 Call ix86_expand_vec_shift_qihi_constant for shifts
3191 with constant count operand.
3192 * config/i386/i386.cc (ix86_shift_rotate_cost):
3193 Handle V4QImode and V8QImode.
3194 * config/i386/mmx.md (<insn>v8qi3): New insn pattern.
3195 (<insn>v4qi3): Ditto.
3196
3197 2023-05-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3198
3199 * config/riscv/vector.md: Add mode.
3200
3201 2023-05-23 Aldy Hernandez <aldyh@redhat.com>
3202
3203 PR tree-optimization/109934
3204 * value-range.cc (irange::invert): Remove buggy special case.
3205
3206 2023-05-23 Richard Biener <rguenther@suse.de>
3207
3208 * tree-ssa-pre.cc (compute_antic_aux): Dump the correct
3209 ANTIC_OUT.
3210
3211 2023-05-23 Richard Sandiford <richard.sandiford@arm.com>
3212
3213 PR target/109632
3214 * config/aarch64/aarch64.cc (aarch64_modes_tieable_p): Allow
3215 subregs between any scalars that are 64 bits or smaller.
3216 * config/aarch64/iterators.md (SUBDI_BITS): New int iterator.
3217 (bits_etype): New int attribute.
3218 * config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
3219 (*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>): New patterns.
3220 (*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Likewise.
3221
3222 2023-05-23 Richard Sandiford <richard.sandiford@arm.com>
3223
3224 * doc/md.texi: Document that <FOO> can be used to refer to the
3225 numerical value of an int iterator FOO. Tweak other parts of
3226 the int iterator documentation.
3227 * read-rtl.cc (iterator_group::has_self_attr): New field.
3228 (map_attr_string): When has_self_attr is true, make <FOO>
3229 expand to the current value of iterator FOO.
3230 (initialize_iterators): Set has_self_attr for int iterators.
3231
3232 2023-05-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3233
3234 * config/riscv/autovec.md: Refactor the framework of RVV auto-vectorization.
3235 * config/riscv/riscv-protos.h (RVV_MISC_OP_NUM): Ditto.
3236 (RVV_UNOP_NUM): New macro.
3237 (RVV_BINOP_NUM): Ditto.
3238 (legitimize_move): Refactor the framework of RVV auto-vectorization.
3239 (emit_vlmax_op): Ditto.
3240 (emit_vlmax_reg_op): Ditto.
3241 (emit_len_op): Ditto.
3242 (emit_len_binop): Ditto.
3243 (emit_vlmax_tany_many): Ditto.
3244 (emit_nonvlmax_tany_many): Ditto.
3245 (sew64_scalar_helper): Ditto.
3246 (expand_tuple_move): Ditto.
3247 * config/riscv/riscv-v.cc (emit_pred_op): Ditto.
3248 (emit_pred_binop): Ditto.
3249 (emit_vlmax_op): Ditto.
3250 (emit_vlmax_tany_many): New function.
3251 (emit_len_op): Remove.
3252 (emit_nonvlmax_tany_many): New function.
3253 (emit_vlmax_reg_op): Remove.
3254 (emit_len_binop): Ditto.
3255 (emit_index_op): Ditto.
3256 (expand_vec_series): Refactor the framework of RVV auto-vectorization.
3257 (expand_const_vector): Ditto.
3258 (legitimize_move): Ditto.
3259 (sew64_scalar_helper): Ditto.
3260 (expand_tuple_move): Ditto.
3261 (expand_vector_init_insert_elems): Ditto.
3262 * config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
3263 * config/riscv/vector.md: Ditto.
3264
3265 2023-05-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3266
3267 PR target/109855
3268 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Add predicate
3269 and constraint for operand 0.
3270 (add_vec_concat_subst_be): Likewise.
3271
3272 2023-05-23 Richard Biener <rguenther@suse.de>
3273
3274 PR tree-optimization/109849
3275 * tree-ssa-pre.cc (do_hoist_insertion): Compute ANTIC_OUT
3276 and use that to determine what to hoist.
3277
3278 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3279
3280 * fold-const.cc (native_encode_initializer) <CONSTRUCTOR>: Apply the
3281 specific treatment for bit-fields only if they have an integral type
3282 and filter out non-integral bit-fields that do not start and end on
3283 a byte boundary.
3284
3285 2023-05-23 Aldy Hernandez <aldyh@redhat.com>
3286
3287 PR tree-optimization/109920
3288 * value-range.h (RESIZABLE>::~int_range): Use delete[].
3289
3290 2023-05-22 Uros Bizjak <ubizjak@gmail.com>
3291
3292 * config/i386/i386.cc (ix86_shift_rotate_cost): Correct
3293 calcuation of integer vector mode costs to reflect generated
3294 instruction sequences of different integer vector modes and
3295 different target ABIs. Remove "speed" function argument.
3296 (ix86_rtx_costs): Update call for removed function argument.
3297 (ix86_vector_costs::add_stmt_cost): Ditto.
3298
3299 2023-05-22 Aldy Hernandez <aldyh@redhat.com>
3300
3301 * value-range.h (class Value_Range): Implement set_zero,
3302 set_nonzero, and nonzero_p.
3303
3304 2023-05-22 Uros Bizjak <ubizjak@gmail.com>
3305
3306 * config/i386/i386.cc (ix86_multiplication_cost): Add
3307 the cost of a memory read to the cost of V?QImode sequences.
3308
3309 2023-05-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3310
3311 * config/riscv/riscv-v.cc: Add "m_" prefix.
3312
3313 2023-05-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3314
3315 * tree-vect-loop.cc (vect_get_loop_len): Fix issue for
3316 multiple-rgroup of length.
3317 * tree-vect-stmts.cc (vectorizable_store): Ditto.
3318 (vectorizable_load): Ditto.
3319 * tree-vectorizer.h (vect_get_loop_len): Ditto.
3320
3321 2023-05-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3322
3323 * config/riscv/riscv.cc (riscv_const_insns): Reorganize the
3324 codes.
3325
3326 2023-05-22 Kewen Lin <linkw@linux.ibm.com>
3327
3328 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Refactor the
3329 handling for the case index == count.
3330
3331 2023-05-21 Georg-Johann Lay <avr@gjlay.de>
3332
3333 PR target/90622
3334 * config/avr/avr.cc (avr_fold_builtin) [AVR_BUILTIN_INSERT_BITS]:
3335 Don't fold to XOR / AND / XOR if just one bit is copied to the
3336 same position.
3337
3338 2023-05-21 Roger Sayle <roger@nextmovesoftware.com>
3339
3340 * config/nvptx/nvptx.cc (nvptx_expand_brev): Expand target
3341 builtin for bit reversal using brev instruction.
3342 (enum nvptx_builtins): Add NVPTX_BUILTIN_BREV and
3343 NVPTX_BUILTIN_BREVLL.
3344 (nvptx_init_builtins): Define "brev" and "brevll".
3345 (nvptx_expand_builtin): Expand NVPTX_BUILTIN_BREV and
3346 NVPTX_BUILTIN_BREVLL via nvptx_expand_brev function.
3347 * doc/extend.texi (Nvidia PTX Builtin-in Functions): New
3348 section, document __builtin_nvptx_brev{,ll}.
3349
3350 2023-05-21 Jakub Jelinek <jakub@redhat.com>
3351
3352 PR tree-optimization/109505
3353 * match.pd ((x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2),
3354 Combine successive equal operations with constants,
3355 (A +- CST1) +- CST2 -> A + CST3, (CST1 - A) +- CST2 -> CST3 - A,
3356 CST1 - (CST2 - A) -> CST3 + A): Use ! on ops with 2 CONSTANT_CLASS_P
3357 operands.
3358
3359 2023-05-21 Andrew Pinski <apinski@marvell.com>
3360
3361 * expr.cc (expand_single_bit_test): Correct bitpos for big-endian.
3362
3363 2023-05-21 Pan Li <pan2.li@intel.com>
3364
3365 * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): Add the
3366 rest bool size, aka 2, 4, 8, 16, 32, 64.
3367 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
3368 Register vbool[2|4|8|16|32|64] interpret function.
3369 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_BOOL2_INTERPRET_OPS):
3370 New macro for vbool2_t.
3371 (DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
3372 (DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
3373 (DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
3374 (DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
3375 (DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
3376 (vint8m1_t): Add the type to bool[2|4|8|16|32|64]_interpret_ops.
3377 (vint16m1_t): Likewise.
3378 (vint32m1_t): Likewise.
3379 (vint64m1_t): Likewise.
3380 (vuint8m1_t): Likewise.
3381 (vuint16m1_t): Likewise.
3382 (vuint32m1_t): Likewise.
3383 (vuint64m1_t): Likewise.
3384 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_BOOL2_INTERPRET_OPS):
3385 New macro for vbool2_t.
3386 (DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
3387 (DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
3388 (DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
3389 (DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
3390 (DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
3391 (required_extensions_p): Add vbool[2|4|8|16|32|64] interpret case.
3392 * config/riscv/riscv-vector-builtins.def (bool2_interpret): Add
3393 vbool2_t interprect to base type.
3394 (bool4_interpret): Likewise.
3395 (bool8_interpret): Likewise.
3396 (bool16_interpret): Likewise.
3397 (bool32_interpret): Likewise.
3398 (bool64_interpret): Likewise.
3399
3400 2023-05-21 Andrew Pinski <apinski@marvell.com>
3401
3402 PR middle-end/109919
3403 * expr.cc (expand_single_bit_test): Don't use the
3404 target for expand_expr.
3405
3406 2023-05-20 Gerald Pfeifer <gerald@pfeifer.com>
3407
3408 * doc/install.texi (Specific): Remove de facto empty alpha*-*-*
3409 section.
3410
3411 2023-05-20 Pan Li <pan2.li@intel.com>
3412
3413 * mode-switching.cc (entity_map): Initialize the array to zero.
3414 (bb_info): Ditto.
3415
3416 2023-05-20 Triffid Hunter <triffid.hunter@gmail.com>
3417
3418 PR target/105753
3419 * config/avr/avr.md (divmodpsi, udivmodpsi, divmodsi, udivmodsi):
3420 Remove superfluous "parallel" in insn pattern.
3421 ([u]divmod<mode>4): Tidy code. Use gcc_unreachable() instead of
3422 printing error text to assembly.
3423
3424 2023-05-20 Andrew Pinski <apinski@marvell.com>
3425
3426 * expr.cc (fold_single_bit_test): Rename to ...
3427 (expand_single_bit_test): This and expand directly.
3428 (do_store_flag): Update for the rename function.
3429
3430 2023-05-20 Andrew Pinski <apinski@marvell.com>
3431
3432 * expr.cc (fold_single_bit_test): Use BIT_FIELD_REF
3433 instead of shift/and.
3434
3435 2023-05-20 Andrew Pinski <apinski@marvell.com>
3436
3437 * expr.cc (fold_single_bit_test): Add an assert
3438 and simplify based on code being NE_EXPR or EQ_EXPR.
3439
3440 2023-05-20 Andrew Pinski <apinski@marvell.com>
3441
3442 * expr.cc (fold_single_bit_test): Take inner and bitnum
3443 instead of arg0 and arg1. Update the code.
3444 (do_store_flag): Don't create a tree when calling
3445 fold_single_bit_test instead just call it with the bitnum
3446 and the inner tree.
3447
3448 2023-05-20 Andrew Pinski <apinski@marvell.com>
3449
3450 * expr.cc (fold_single_bit_test): Use get_def_for_expr
3451 instead of checking the inner's code.
3452
3453 2023-05-20 Andrew Pinski <apinski@marvell.com>
3454
3455 * expr.cc (fold_single_bit_test_into_sign_test): Inline into ...
3456 (fold_single_bit_test): This and simplify.
3457
3458 2023-05-20 Andrew Pinski <apinski@marvell.com>
3459
3460 * fold-const.cc (fold_single_bit_test_into_sign_test): Move to
3461 expr.cc.
3462 (fold_single_bit_test): Likewise.
3463 * expr.cc (fold_single_bit_test_into_sign_test): Move from fold-const.cc
3464 (fold_single_bit_test): Likewise and make static.
3465 * fold-const.h (fold_single_bit_test): Remove declaration.
3466
3467 2023-05-20 Die Li <lidie@eswincomputing.com>
3468
3469 * config/riscv/riscv.cc (riscv_expand_conditional_move): Fix mode
3470 checking.
3471
3472 2023-05-20 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
3473
3474 * config/riscv/bitmanip.md (branch<X:mode>_bext): New split pattern.
3475
3476 2023-05-20 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
3477
3478 PR target/106888
3479 * config/riscv/bitmanip.md
3480 (<bitmanip_optab>disi2): Match with any_extend.
3481 (<bitmanip_optab>disi2_sext): New pattern to match
3482 with sign extend using an ANDI instruction.
3483
3484 2023-05-19 Nathan Sidwell <nathan@acm.org>
3485
3486 PR other/99451
3487 * opts.h (handle_deferred_dump_options): Declare.
3488 * opts-global.cc (handle_common_deferred_options): Do not handle
3489 dump options here.
3490 (handle_deferred_dump_options): New.
3491 * toplev.cc (toplev::main): Call it after plugin init.
3492
3493 2023-05-19 Joern Rennecke <joern.rennecke@embecosm.com>
3494
3495 * config/riscv/constraints.md (DsS, DsD): Restore agreement
3496 with shiftm1 mode attribute.
3497
3498 2023-05-19 Andrew Pinski <apinski@marvell.com>
3499
3500 PR driver/33980
3501 * gcc.cc (default_compilers["@c-header"]): Add %w
3502 after the --output-pch.
3503
3504 2023-05-19 Vineet Gupta <vineetg@rivosinc.com>
3505
3506 * config/riscv/riscv.cc (riscv_split_integer): if loval is equal
3507 to hival, ASHIFT the corresponding regs.
3508
3509 2023-05-19 Robin Dapp <rdapp@ventanamicro.com>
3510
3511 * config/riscv/riscv.cc (riscv_const_insns): Remove else.
3512
3513 2023-05-19 Jakub Jelinek <jakub@redhat.com>
3514
3515 PR tree-optimization/105776
3516 * tree-ssa-math-opts.cc (arith_overflow_check_p): If cast_stmt is
3517 non-NULL, allow division statement to have a cast as single imm use
3518 rather than comparison/condition.
3519 (match_arith_overflow): In that case remove the cast stmt in addition
3520 to the division statement.
3521
3522 2023-05-19 Jakub Jelinek <jakub@redhat.com>
3523
3524 PR tree-optimization/101856
3525 * tree-ssa-math-opts.cc (match_arith_overflow): Pattern detect
3526 unsigned __builtin_mul_overflow_p even when umulv4_optab doesn't
3527 support it but umul_highpart_optab does.
3528
3529 2023-05-19 Eric Botcazou <ebotcazou@adacore.com>
3530
3531 * varasm.cc (output_constructor_bitfield): Call tree_to_uhwi instead
3532 of tree_to_shwi on array indices. Minor tweaks.
3533
3534 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3535
3536 * alias.cc (ref_all_alias_ptr_type_p): Use _P() defines from tree.h.
3537 * attribs.cc (diag_attr_exclusions): Ditto.
3538 (decl_attributes): Ditto.
3539 (build_type_attribute_qual_variant): Ditto.
3540 * builtins.cc (fold_builtin_carg): Ditto.
3541 (fold_builtin_next_arg): Ditto.
3542 (do_mpc_arg2): Ditto.
3543 * cfgexpand.cc (expand_return): Ditto.
3544 * cgraph.h (decl_in_symtab_p): Ditto.
3545 (symtab_node::get_create): Ditto.
3546 * dwarf2out.cc (base_type_die): Ditto.
3547 (implicit_ptr_descriptor): Ditto.
3548 (gen_array_type_die): Ditto.
3549 (gen_type_die_with_usage): Ditto.
3550 (optimize_location_into_implicit_ptr): Ditto.
3551 * expr.cc (do_store_flag): Ditto.
3552 * fold-const.cc (negate_expr_p): Ditto.
3553 (fold_negate_expr_1): Ditto.
3554 (fold_convert_const): Ditto.
3555 (fold_convert_loc): Ditto.
3556 (constant_boolean_node): Ditto.
3557 (fold_binary_op_with_conditional_arg): Ditto.
3558 (build_fold_addr_expr_with_type_loc): Ditto.
3559 (fold_comparison): Ditto.
3560 (fold_checksum_tree): Ditto.
3561 (tree_unary_nonnegative_warnv_p): Ditto.
3562 (integer_valued_real_unary_p): Ditto.
3563 (fold_read_from_constant_string): Ditto.
3564 * gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text): Ditto.
3565 * gimple-expr.cc (useless_type_conversion_p): Ditto.
3566 (is_gimple_reg): Ditto.
3567 (is_gimple_asm_val): Ditto.
3568 (mark_addressable): Ditto.
3569 * gimple-expr.h (is_gimple_variable): Ditto.
3570 (virtual_operand_p): Ditto.
3571 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores): Ditto.
3572 * gimplify.cc (gimplify_bind_expr): Ditto.
3573 (gimplify_return_expr): Ditto.
3574 (gimple_add_padding_init_for_auto_var): Ditto.
3575 (gimplify_addr_expr): Ditto.
3576 (omp_add_variable): Ditto.
3577 (omp_notice_variable): Ditto.
3578 (omp_get_base_pointer): Ditto.
3579 (omp_strip_components_and_deref): Ditto.
3580 (omp_strip_indirections): Ditto.
3581 (omp_accumulate_sibling_list): Ditto.
3582 (omp_build_struct_sibling_lists): Ditto.
3583 (gimplify_adjust_omp_clauses_1): Ditto.
3584 (gimplify_adjust_omp_clauses): Ditto.
3585 (gimplify_omp_for): Ditto.
3586 (goa_lhs_expr_p): Ditto.
3587 (gimplify_one_sizepos): Ditto.
3588 * graphite-scop-detection.cc (scop_detection::graphite_can_represent_scev): Ditto.
3589 * ipa-devirt.cc (odr_types_equivalent_p): Ditto.
3590 * ipa-prop.cc (ipa_set_jf_constant): Ditto.
3591 (propagate_controlled_uses): Ditto.
3592 * ipa-sra.cc (type_prevails_p): Ditto.
3593 (scan_expr_access): Ditto.
3594 * optabs-tree.cc (optab_for_tree_code): Ditto.
3595 * toplev.cc (wrapup_global_declaration_1): Ditto.
3596 * trans-mem.cc (transaction_invariant_address_p): Ditto.
3597 * tree-cfg.cc (verify_types_in_gimple_reference): Ditto.
3598 (verify_gimple_comparison): Ditto.
3599 (verify_gimple_assign_binary): Ditto.
3600 (verify_gimple_assign_single): Ditto.
3601 * tree-complex.cc (get_component_ssa_name): Ditto.
3602 * tree-emutls.cc (lower_emutls_2): Ditto.
3603 * tree-inline.cc (copy_tree_body_r): Ditto.
3604 (estimate_move_cost): Ditto.
3605 (copy_decl_for_dup_finish): Ditto.
3606 * tree-nested.cc (convert_nonlocal_omp_clauses): Ditto.
3607 (note_nonlocal_vla_type): Ditto.
3608 (convert_local_omp_clauses): Ditto.
3609 (remap_vla_decls): Ditto.
3610 (fixup_vla_decls): Ditto.
3611 * tree-parloops.cc (loop_has_vector_phi_nodes): Ditto.
3612 * tree-pretty-print.cc (print_declaration): Ditto.
3613 (print_call_name): Ditto.
3614 * tree-sra.cc (compare_access_positions): Ditto.
3615 * tree-ssa-alias.cc (compare_type_sizes): Ditto.
3616 * tree-ssa-ccp.cc (get_default_value): Ditto.
3617 * tree-ssa-coalesce.cc (populate_coalesce_list_for_outofssa): Ditto.
3618 * tree-ssa-dom.cc (reduce_vector_comparison_to_scalar_comparison): Ditto.
3619 * tree-ssa-forwprop.cc (can_propagate_from): Ditto.
3620 * tree-ssa-propagate.cc (may_propagate_copy): Ditto.
3621 * tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Ditto.
3622 * tree-ssa-sink.cc (statement_sink_location): Ditto.
3623 * tree-ssa-structalias.cc (type_must_have_pointers): Ditto.
3624 * tree-ssa-ter.cc (find_replaceable_in_bb): Ditto.
3625 * tree-ssa-uninit.cc (warn_uninit): Ditto.
3626 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Ditto.
3627 (non_rewritable_mem_ref_base): Ditto.
3628 * tree-streamer-in.cc (lto_input_ts_type_non_common_tree_pointers): Ditto.
3629 * tree-streamer-out.cc (write_ts_type_non_common_tree_pointers): Ditto.
3630 * tree-vect-generic.cc (do_binop): Ditto.
3631 (do_cond): Ditto.
3632 * tree-vect-stmts.cc (vect_init_vector): Ditto.
3633 * tree-vector-builder.h (tree_vector_builder::note_representative): Ditto.
3634 * tree.cc (sign_mask_for): Ditto.
3635 (verify_type_variant): Ditto.
3636 (gimple_canonical_types_compatible_p): Ditto.
3637 (verify_type): Ditto.
3638 * ubsan.cc (get_ubsan_type_info_for_type): Ditto.
3639 * var-tracking.cc (prepare_call_arguments): Ditto.
3640 (vt_add_function_parameters): Ditto.
3641 * varasm.cc (decode_addr_const): Ditto.
3642
3643 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3644
3645 * omp-low.cc (scan_sharing_clauses): Use _P() defines from tree.h.
3646 (lower_reduction_clauses): Ditto.
3647 (lower_send_clauses): Ditto.
3648 (lower_omp_task_reductions): Ditto.
3649 * omp-oacc-neuter-broadcast.cc (install_var_field): Ditto.
3650 (worker_single_copy): Ditto.
3651 * omp-offload.cc (oacc_rewrite_var_decl): Ditto.
3652 * omp-simd-clone.cc (plausible_type_for_simd_clone): Ditto.
3653
3654 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3655
3656 * lto-streamer-in.cc (lto_input_var_decl_ref): Use _P defines from
3657 tree.h.
3658 (lto_read_body_or_constructor): Ditto.
3659 * lto-streamer-out.cc (tree_is_indexable): Ditto.
3660 (lto_output_var_decl_ref): Ditto.
3661 (DFS::DFS_write_tree_body): Ditto.
3662 (wrap_refs): Ditto.
3663 (write_symbol_extension_info): Ditto.
3664
3665 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3666
3667 * config/aarch64/aarch64.cc (aarch64_short_vector_p): Use _P
3668 defines from tree.h.
3669 (aarch64_mangle_type): Ditto.
3670 * config/alpha/alpha.cc (alpha_in_small_data_p): Ditto.
3671 (alpha_gimplify_va_arg_1): Ditto.
3672 * config/arc/arc.cc (arc_encode_section_info): Ditto.
3673 (arc_is_aux_reg_p): Ditto.
3674 (arc_is_uncached_mem_p): Ditto.
3675 (arc_handle_aux_attribute): Ditto.
3676 * config/arm/arm.cc (arm_handle_isr_attribute): Ditto.
3677 (arm_handle_cmse_nonsecure_call): Ditto.
3678 (arm_set_default_type_attributes): Ditto.
3679 (arm_is_segment_info_known): Ditto.
3680 (arm_mangle_type): Ditto.
3681 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Ditto.
3682 * config/avr/avr.cc (avr_lookup_function_attribute1): Ditto.
3683 (avr_decl_absdata_p): Ditto.
3684 (avr_insert_attributes): Ditto.
3685 (avr_section_type_flags): Ditto.
3686 (avr_encode_section_info): Ditto.
3687 * config/bfin/bfin.cc (bfin_handle_l2_attribute): Ditto.
3688 * config/bpf/bpf.cc (bpf_core_compute): Ditto.
3689 * config/c6x/c6x.cc (c6x_in_small_data_p): Ditto.
3690 * config/csky/csky.cc (csky_handle_isr_attribute): Ditto.
3691 (csky_mangle_type): Ditto.
3692 * config/darwin-c.cc (darwin_pragma_unused): Ditto.
3693 * config/darwin.cc (is_objc_metadata): Ditto.
3694 * config/epiphany/epiphany.cc (epiphany_function_ok_for_sibcall): Ditto.
3695 * config/epiphany/epiphany.h (ROUND_TYPE_ALIGN): Ditto.
3696 * config/frv/frv.cc (frv_emit_movsi): Ditto.
3697 * config/gcn/gcn-tree.cc (gcn_lockless_update): Ditto.
3698 * config/gcn/gcn.cc (gcn_asm_output_symbol_ref): Ditto.
3699 * config/h8300/h8300.cc (h8300_encode_section_info): Ditto.
3700 * config/i386/i386-expand.cc: Ditto.
3701 * config/i386/i386.cc (type_natural_mode): Ditto.
3702 (ix86_function_arg): Ditto.
3703 (ix86_data_alignment): Ditto.
3704 (ix86_local_alignment): Ditto.
3705 (ix86_simd_clone_compute_vecsize_and_simdlen): Ditto.
3706 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Ditto.
3707 (i386_pe_type_dllexport_p): Ditto.
3708 (i386_pe_adjust_class_at_definition): Ditto.
3709 * config/i386/winnt.cc (i386_pe_determine_dllimport_p): Ditto.
3710 (i386_pe_binds_local_p): Ditto.
3711 (i386_pe_section_type_flags): Ditto.
3712 * config/ia64/ia64.cc (ia64_encode_section_info): Ditto.
3713 (ia64_gimplify_va_arg): Ditto.
3714 (ia64_in_small_data_p): Ditto.
3715 * config/iq2000/iq2000.cc (iq2000_function_arg): Ditto.
3716 * config/lm32/lm32.cc (lm32_in_small_data_p): Ditto.
3717 * config/loongarch/loongarch.cc (loongarch_handle_model_attribute): Ditto.
3718 * config/m32c/m32c.cc (m32c_insert_attributes): Ditto.
3719 * config/mcore/mcore.cc (mcore_mark_dllimport): Ditto.
3720 (mcore_encode_section_info): Ditto.
3721 * config/microblaze/microblaze.cc (microblaze_elf_in_small_data_p): Ditto.
3722 * config/mips/mips.cc (mips_output_aligned_decl_common): Ditto.
3723 * config/mmix/mmix.cc (mmix_encode_section_info): Ditto.
3724 * config/nvptx/nvptx.cc (nvptx_encode_section_info): Ditto.
3725 (pass_in_memory): Ditto.
3726 (nvptx_generate_vector_shuffle): Ditto.
3727 (nvptx_lockless_update): Ditto.
3728 * config/pa/pa.cc (pa_function_arg_padding): Ditto.
3729 (pa_function_value): Ditto.
3730 (pa_function_arg): Ditto.
3731 * config/pa/pa.h (IN_NAMED_SECTION_P): Ditto.
3732 (TEXT_SPACE_P): Ditto.
3733 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Ditto.
3734 * config/pdp11/pdp11.cc (pdp11_return_in_memory): Ditto.
3735 * config/riscv/riscv.cc (riscv_in_small_data_p): Ditto.
3736 (riscv_mangle_type): Ditto.
3737 * config/rl78/rl78.cc (rl78_insert_attributes): Ditto.
3738 (rl78_addsi3_internal): Ditto.
3739 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Ditto.
3740 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Ditto.
3741 * config/rs6000/freebsd64.h (ROUND_TYPE_ALIGN): Ditto.
3742 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Ditto.
3743 * config/rs6000/rs6000-call.cc (rs6000_function_arg_boundary): Ditto.
3744 (rs6000_function_arg_advance_1): Ditto.
3745 (rs6000_function_arg): Ditto.
3746 (rs6000_pass_by_reference): Ditto.
3747 * config/rs6000/rs6000-logue.cc (rs6000_function_ok_for_sibcall): Ditto.
3748 * config/rs6000/rs6000.cc (rs6000_data_alignment): Ditto.
3749 (rs6000_set_default_type_attributes): Ditto.
3750 (rs6000_elf_in_small_data_p): Ditto.
3751 (IN_NAMED_SECTION): Ditto.
3752 (rs6000_xcoff_encode_section_info): Ditto.
3753 (rs6000_function_value): Ditto.
3754 (invalid_arg_for_unprototyped_fn): Ditto.
3755 * config/s390/s390-c.cc (s390_fn_types_compatible): Ditto.
3756 (s390_vec_n_elem): Ditto.
3757 * config/s390/s390.cc (s390_check_type_for_vector_abi): Ditto.
3758 (s390_function_arg_integer): Ditto.
3759 (s390_return_in_memory): Ditto.
3760 (s390_encode_section_info): Ditto.
3761 * config/sh/sh.cc (sh_gimplify_va_arg_expr): Ditto.
3762 (sh_function_value): Ditto.
3763 * config/sol2.cc (solaris_insert_attributes): Ditto.
3764 * config/sparc/sparc.cc (function_arg_slotno): Ditto.
3765 * config/sparc/sparc.h (ROUND_TYPE_ALIGN): Ditto.
3766 * config/stormy16/stormy16.cc (xstormy16_encode_section_info): Ditto.
3767 (xstormy16_handle_below100_attribute): Ditto.
3768 * config/v850/v850.cc (v850_encode_section_info): Ditto.
3769 (v850_insert_attributes): Ditto.
3770 * config/visium/visium.cc (visium_pass_by_reference): Ditto.
3771 (visium_return_in_memory): Ditto.
3772 * config/xtensa/xtensa.cc (xtensa_multibss_section_type_flags): Ditto.
3773
3774 2023-05-18 Uros Bizjak <ubizjak@gmail.com>
3775
3776 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): New.
3777 (ix86_expand_vecop_qihi): Add op2vec bool variable.
3778 Do not set REG_EQUAL note.
3779 * config/i386/i386-protos.h (ix86_expand_vecop_qihi_partial):
3780 Add prototype.
3781 * config/i386/i386.cc (ix86_multiplication_cost): Handle
3782 V4QImode and V8QImode.
3783 * config/i386/mmx.md (mulv8qi3): New expander.
3784 (mulv4qi3): Ditto.
3785 * config/i386/sse.md (mulv8qi3): Remove.
3786
3787 2023-05-18 Georg-Johann Lay <avr@gjlay.de>
3788
3789 * config/avr/gen-avr-mmcu-specs.cc: Remove stale */ after // comment.
3790
3791 2023-05-18 Jonathan Wakely <jwakely@redhat.com>
3792
3793 PR bootstrap/105831
3794 * config.gcc: Use = operator instead of ==.
3795
3796 2023-05-18 Michael Bäuerle <micha@NetBSD.org>
3797
3798 PR bootstrap/105831
3799 * config/nvptx/gen-opt.sh: Use = operator instead of ==.
3800 * configure.ac: Likewise.
3801 * configure: Regenerate.
3802
3803 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
3804
3805 * config/arm/arm_mve.h: (__ARM_mve_typeid): Add more pointer types.
3806 (__ARM_mve_coerce1): Remove.
3807 (__ARM_mve_coerce2): Remove.
3808 (__ARM_mve_coerce3): Remove.
3809 (__ARM_mve_coerce_i_scalar): New.
3810 (__ARM_mve_coerce_s8_ptr): New.
3811 (__ARM_mve_coerce_u8_ptr): New.
3812 (__ARM_mve_coerce_s16_ptr): New.
3813 (__ARM_mve_coerce_u16_ptr): New.
3814 (__ARM_mve_coerce_s32_ptr): New.
3815 (__ARM_mve_coerce_u32_ptr): New.
3816 (__ARM_mve_coerce_s64_ptr): New.
3817 (__ARM_mve_coerce_u64_ptr): New.
3818 (__ARM_mve_coerce_f_scalar): New.
3819 (__ARM_mve_coerce_f16_ptr): New.
3820 (__ARM_mve_coerce_f32_ptr): New.
3821 (__arm_vst4q): Change _coerce_ overloads.
3822 (__arm_vbicq): Change _coerce_ overloads.
3823 (__arm_vld1q): Change _coerce_ overloads.
3824 (__arm_vld1q_z): Change _coerce_ overloads.
3825 (__arm_vld2q): Change _coerce_ overloads.
3826 (__arm_vld4q): Change _coerce_ overloads.
3827 (__arm_vldrhq_gather_offset): Change _coerce_ overloads.
3828 (__arm_vldrhq_gather_offset_z): Change _coerce_ overloads.
3829 (__arm_vldrhq_gather_shifted_offset): Change _coerce_ overloads.
3830 (__arm_vldrhq_gather_shifted_offset_z): Change _coerce_ overloads.
3831 (__arm_vldrwq_gather_offset): Change _coerce_ overloads.
3832 (__arm_vldrwq_gather_offset_z): Change _coerce_ overloads.
3833 (__arm_vldrwq_gather_shifted_offset): Change _coerce_ overloads.
3834 (__arm_vldrwq_gather_shifted_offset_z): Change _coerce_ overloads.
3835 (__arm_vst1q_p): Change _coerce_ overloads.
3836 (__arm_vst2q): Change _coerce_ overloads.
3837 (__arm_vst1q): Change _coerce_ overloads.
3838 (__arm_vstrhq): Change _coerce_ overloads.
3839 (__arm_vstrhq_p): Change _coerce_ overloads.
3840 (__arm_vstrhq_scatter_offset_p): Change _coerce_ overloads.
3841 (__arm_vstrhq_scatter_offset): Change _coerce_ overloads.
3842 (__arm_vstrhq_scatter_shifted_offset_p): Change _coerce_ overloads.
3843 (__arm_vstrhq_scatter_shifted_offset): Change _coerce_ overloads.
3844 (__arm_vstrwq_p): Change _coerce_ overloads.
3845 (__arm_vstrwq): Change _coerce_ overloads.
3846 (__arm_vstrwq_scatter_offset): Change _coerce_ overloads.
3847 (__arm_vstrwq_scatter_offset_p): Change _coerce_ overloads.
3848 (__arm_vstrwq_scatter_shifted_offset): Change _coerce_ overloads.
3849 (__arm_vstrwq_scatter_shifted_offset_p): Change _coerce_ overloads.
3850 (__arm_vsetq_lane): Change _coerce_ overloads.
3851 (__arm_vldrbq_gather_offset): Change _coerce_ overloads.
3852 (__arm_vdwdupq_x_u8): Change _coerce_ overloads.
3853 (__arm_vdwdupq_x_u16): Change _coerce_ overloads.
3854 (__arm_vdwdupq_x_u32): Change _coerce_ overloads.
3855 (__arm_viwdupq_x_u8): Change _coerce_ overloads.
3856 (__arm_viwdupq_x_u16): Change _coerce_ overloads.
3857 (__arm_viwdupq_x_u32): Change _coerce_ overloads.
3858 (__arm_vidupq_x_u8): Change _coerce_ overloads.
3859 (__arm_vddupq_x_u8): Change _coerce_ overloads.
3860 (__arm_vidupq_x_u16): Change _coerce_ overloads.
3861 (__arm_vddupq_x_u16): Change _coerce_ overloads.
3862 (__arm_vidupq_x_u32): Change _coerce_ overloads.
3863 (__arm_vddupq_x_u32): Change _coerce_ overloads.
3864 (__arm_vldrdq_gather_offset): Change _coerce_ overloads.
3865 (__arm_vldrdq_gather_offset_z): Change _coerce_ overloads.
3866 (__arm_vldrdq_gather_shifted_offset): Change _coerce_ overloads.
3867 (__arm_vldrdq_gather_shifted_offset_z): Change _coerce_ overloads.
3868 (__arm_vldrbq_gather_offset_z): Change _coerce_ overloads.
3869 (__arm_vidupq_u16): Change _coerce_ overloads.
3870 (__arm_vidupq_u32): Change _coerce_ overloads.
3871 (__arm_vidupq_u8): Change _coerce_ overloads.
3872 (__arm_vddupq_u16): Change _coerce_ overloads.
3873 (__arm_vddupq_u32): Change _coerce_ overloads.
3874 (__arm_vddupq_u8): Change _coerce_ overloads.
3875 (__arm_viwdupq_m): Change _coerce_ overloads.
3876 (__arm_viwdupq_u16): Change _coerce_ overloads.
3877 (__arm_viwdupq_u32): Change _coerce_ overloads.
3878 (__arm_viwdupq_u8): Change _coerce_ overloads.
3879 (__arm_vdwdupq_m): Change _coerce_ overloads.
3880 (__arm_vdwdupq_u16): Change _coerce_ overloads.
3881 (__arm_vdwdupq_u32): Change _coerce_ overloads.
3882 (__arm_vdwdupq_u8): Change _coerce_ overloads.
3883 (__arm_vstrbq): Change _coerce_ overloads.
3884 (__arm_vstrbq_p): Change _coerce_ overloads.
3885 (__arm_vstrbq_scatter_offset_p): Change _coerce_ overloads.
3886 (__arm_vstrdq_scatter_offset_p): Change _coerce_ overloads.
3887 (__arm_vstrdq_scatter_offset): Change _coerce_ overloads.
3888 (__arm_vstrdq_scatter_shifted_offset_p): Change _coerce_ overloads.
3889 (__arm_vstrdq_scatter_shifted_offset): Change _coerce_ overloads.
3890
3891 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
3892
3893 * config/arm/arm_mve.h (__arm_vbicq): Change coerce on
3894 scalar constant.
3895
3896 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
3897
3898 * config/arm/arm_mve.h (__arm_vadcq_s32): Fix arithmetic.
3899 (__arm_vadcq_u32): Likewise.
3900 (__arm_vadcq_m_s32): Likewise.
3901 (__arm_vadcq_m_u32): Likewise.
3902 (__arm_vsbcq_s32): Likewise.
3903 (__arm_vsbcq_u32): Likewise.
3904 (__arm_vsbcq_m_s32): Likewise.
3905 (__arm_vsbcq_m_u32): Likewise.
3906 * config/arm/mve.md (get_fpscr_nzcvqc): Make unspec_volatile.
3907
3908 2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
3909
3910 * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrev64q_f<mode>)
3911 (mve_vrev32q_fv8hf, mve_vcvttq_f32_f16v4sf)
3912 (mve_vcvtbq_f32_f16v4sf, mve_vcvtq_to_f_<supf><mode>)
3913 (mve_vrev64q_<supf><mode>, mve_vcvtq_from_f_<supf><mode>)
3914 (mve_vmovltq_<supf><mode>, mve_vmovlbq_<supf><mode>)
3915 (mve_vcvtpq_<supf><mode>, mve_vcvtnq_<supf><mode>)
3916 (mve_vcvtmq_<supf><mode>, mve_vcvtaq_<supf><mode>)
3917 (mve_vmvnq_n_<supf><mode>, mve_vrev16q_<supf>v16qi)
3918 (mve_vctp<MVE_vctp>q<MVE_vpred>, mve_vbrsrq_n_f<mode>)
3919 (mve_vbrsrq_n_<supf><mode>, mve_vandq_f<mode>, mve_vbicq_f<mode>)
3920 (mve_vctp<MVE_vctp>q_m<MVE_vpred>, mve_vcvtbq_f16_f32v8hf)
3921 (mve_vcvttq_f16_f32v8hf, mve_veorq_f<mode>)
3922 (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
3923 (mve_vmlsldavxq_s<mode>, mve_vornq_f<mode>, mve_vorrq_f<mode>)
3924 (mve_vrmlaldavhxq_sv4si, mve_vcvtq_m_to_f_<supf><mode>)
3925 (mve_vshlcq_<supf><mode>, mve_vmvnq_m_<supf><mode>)
3926 (mve_vpselq_<supf><mode>, mve_vcvtbq_m_f16_f32v8hf)
3927 (mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f16_f32v8hf)
3928 (mve_vcvttq_m_f32_f16v4sf, mve_vmlaldavq_p_<supf><mode>)
3929 (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
3930 (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>)
3931 (mve_vmvnq_m_n_<supf><mode>, mve_vorrq_m_n_<supf><mode>)
3932 (mve_vpselq_f<mode>, mve_vrev32q_m_fv8hf)
3933 (mve_vrev32q_m_<supf><mode>, mve_vrev64q_m_f<mode>)
3934 (mve_vrmlaldavhaxq_sv4si, mve_vrmlaldavhxq_p_sv4si)
3935 (mve_vrmlsldavhaxq_sv4si, mve_vrmlsldavhq_p_sv4si)
3936 (mve_vrmlsldavhxq_p_sv4si, mve_vrev16q_m_<supf>v16qi)
3937 (mve_vrmlaldavhq_p_<supf>v4si, mve_vrmlsldavhaq_sv4si)
3938 (mve_vandq_m_<supf><mode>, mve_vbicq_m_<supf><mode>)
3939 (mve_veorq_m_<supf><mode>, mve_vornq_m_<supf><mode>)
3940 (mve_vorrq_m_<supf><mode>, mve_vandq_m_f<mode>)
3941 (mve_vbicq_m_f<mode>, mve_veorq_m_f<mode>, mve_vornq_m_f<mode>)
3942 (mve_vorrq_m_f<mode>)
3943 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn)
3944 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn)
3945 (mve_vstrdq_scatter_base_wb_p_<supf>v2di) : Fix spacing and
3946 capitalization in the emitted asm.
3947
3948 2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
3949
3950 * config/arm/constraints.md (mve_vldrd_immediate): Move it to
3951 predicates.md.
3952 (Ri): Move constraint definition from predicates.md.
3953 (Rl): Define new constraint.
3954 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Add
3955 missing constraint.
3956 (mve_vstrwq_scatter_base_wb_p_fv4sf): Add missing Up constraint
3957 for op 1, use mve_vstrw_immediate predicate and Rl constraint for
3958 op 2. Fix asm output spacing.
3959 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Add missing constraint.
3960 * config/arm/predicates.md (Ri) Move constraint to constraints.md
3961 (mve_vldrd_immediate): Move it from
3962 constraints.md.
3963 (mve_vstrw_immediate): New predicate.
3964
3965 2023-05-18 Pan Li <pan2.li@intel.com>
3966 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3967 Kito Cheng <kito.cheng@sifive.com>
3968 Richard Biener <rguenther@suse.de>
3969 Richard Sandiford <richard.sandiford@arm.com>
3970
3971 * combine.cc (struct reg_stat_type): Extend machine_mode to 16 bits.
3972 * cse.cc (struct qty_table_elem): Extend machine_mode to 16 bits
3973 (struct table_elt): Extend machine_mode to 16 bits.
3974 (struct set): Ditto.
3975 * genmodes.cc (emit_mode_wider): Extend type from char to short.
3976 (emit_mode_complex): Ditto.
3977 (emit_mode_inner): Ditto.
3978 (emit_class_narrowest_mode): Ditto.
3979 * genopinit.cc (main): Extend the machine_mode limit.
3980 * ira-int.h (struct ira_allocno): Extend machine_mode to 16 bits and
3981 re-ordered the struct fields for padding.
3982 * machmode.h (MACHINE_MODE_BITSIZE): New macro.
3983 (GET_MODE_2XWIDER_MODE): Extend type from char to short.
3984 (get_mode_alignment): Extend type from char to short.
3985 * ree.cc (struct ext_modified): Extend machine_mode to 16 bits and
3986 removed the ATTRIBUTE_PACKED.
3987 * rtl-ssa/accesses.h: Extend machine_mode to 16 bits, narrow
3988 * rtl-ssa/internals.inl (rtl_ssa::access_info): Adjust the assignment.
3989 m_kind to 2 bits and remove m_spare.
3990 * rtl.h (RTX_CODE_BITSIZE): New macro.
3991 (struct rtx_def): Swap both the bit size and location between the
3992 rtx_code and the machine_mode.
3993 (subreg_shape::unique_id): Extend the machine_mode limit.
3994 * rtlanal.h: Extend machine_mode to 16 bits.
3995 * tree-core.h (struct tree_type_common): Extend machine_mode to 16
3996 bits and re-ordered the struct fields for padding.
3997 (struct tree_decl_common): Extend machine_mode to 16 bits.
3998
3999 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
4000
4001 * genrecog.cc (print_nonbool_test): Fix type error of
4002 switch (SUBREG_BYTE (op))'.
4003
4004 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
4005
4006 * common/config/riscv/riscv-common.cc: Remove
4007 trailing spaces on lines.
4008 * config/riscv/riscv.cc (riscv_legitimize_move): Likewise.
4009 * config/riscv/riscv.h (enum reg_class): Likewise.
4010 * config/riscv/riscv.md: Likewise.
4011
4012 2023-05-17 John David Anglin <danglin@gcc.gnu.org>
4013
4014 * config/pa/pa.md (clear_cache): New.
4015
4016 2023-05-17 Arsen Arsenović <arsen@aarsen.me>
4017
4018 * doc/extend.texi (C++ Concepts) <forall>: Remove extraneous
4019 parenthesis. Fix misnamed index entry.
4020 <concept>: Fix misnamed index entry.
4021
4022 2023-05-17 Jivan Hakobyan <jivanhakobyan9@gmail.com>
4023
4024 * config/riscv/riscv.md (*<optab><GPR:mode>3_mask): New pattern,
4025 combined from ...
4026 (*<optab>si3_mask, *<optab>di3_mask): Here.
4027 (*<optab>si3_mask_1, *<optab>di3_mask_1): And here.
4028 * config/riscv/bitmanip.md (*<bitmanip_optab><GPR:mode>3_mask): New
4029 pattern.
4030 (*<bitmanip_optab>si3_sext_mask): Likewise.
4031 * config/riscv/iterators.md (shiftm1): Use const_si_mask_operand
4032 and const_di_mask_operand.
4033 (bitmanip_rotate): New iterator.
4034 (bitmanip_optab): Add rotates.
4035 * config/riscv/predicates.md (const_si_mask_operand): Renamed
4036 from const31_operand. Generalize to handle more mask constants.
4037 (const_di_mask_operand): Similarly.
4038
4039 2023-05-17 Jakub Jelinek <jakub@redhat.com>
4040
4041 PR c++/109884
4042 * config/i386/i386-builtin-types.def (FLOAT128): Use
4043 float128t_type_node rather than float128_type_node.
4044
4045 2023-05-17 Alexander Monakov <amonakov@ispras.ru>
4046
4047 * tree-ssa-math-opts.cc (convert_mult_to_fma): Enable only for
4048 FP_CONTRACT_FAST (no functional change).
4049
4050 2023-05-17 Uros Bizjak <ubizjak@gmail.com>
4051
4052 * config/i386/i386.cc (ix86_multiplication_cost): Correct
4053 calcuation of integer vector mode costs to reflect generated
4054 instruction sequences of different integer vector modes and
4055 different target ABIs.
4056
4057 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4058
4059 * config/riscv/riscv-opts.h (enum riscv_entity): New enum.
4060 * config/riscv/riscv.cc (riscv_emit_mode_set): New function.
4061 (riscv_mode_needed): Ditto.
4062 (riscv_mode_after): Ditto.
4063 (riscv_mode_entry): Ditto.
4064 (riscv_mode_exit): Ditto.
4065 (riscv_mode_priority): Ditto.
4066 (TARGET_MODE_EMIT): New target hook.
4067 (TARGET_MODE_NEEDED): Ditto.
4068 (TARGET_MODE_AFTER): Ditto.
4069 (TARGET_MODE_ENTRY): Ditto.
4070 (TARGET_MODE_EXIT): Ditto.
4071 (TARGET_MODE_PRIORITY): Ditto.
4072 * config/riscv/riscv.h (OPTIMIZE_MODE_SWITCHING): Ditto.
4073 (NUM_MODES_FOR_MODE_SWITCHING): Ditto.
4074 * config/riscv/riscv.md: Add csrwvxrm.
4075 * config/riscv/vector.md (rnu,rne,rdn,rod,none): New attribute.
4076 (vxrmsi): New pattern.
4077
4078 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4079
4080 * config/riscv/riscv-vector-builtins-bases.cc: Introduce rounding mode.
4081 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
4082 (struct narrow_alu_def): Ditto.
4083 * config/riscv/riscv-vector-builtins.cc (function_builder::apply_predication): Ditto.
4084 (function_expander::use_exact_insn): Ditto.
4085 * config/riscv/riscv-vector-builtins.h (function_checker::arg_num): New function.
4086 (function_base::has_rounding_mode_operand_p): New function.
4087
4088 2023-05-17 Andrew Pinski <apinski@marvell.com>
4089
4090 * tree-ssa-forwprop.cc (simplify_builtin_call): Check
4091 against 0 instead of calling integer_zerop.
4092
4093 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4094
4095 * config/riscv/riscv-vector-builtins.cc (register_vxrm): New function.
4096 (DEF_RVV_VXRM_ENUM): New macro.
4097 (handle_pragma_vector): Add vxrm enum register.
4098 * config/riscv/riscv-vector-builtins.def (DEF_RVV_VXRM_ENUM): New macro.
4099 (RNU): Ditto.
4100 (RNE): Ditto.
4101 (RDN): Ditto.
4102 (ROD): Ditto.
4103
4104 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
4105
4106 * value-range.h (Value_Range::operator=): New.
4107
4108 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
4109
4110 * value-range.cc (vrange::operator=): Add a stub to copy
4111 unsupported ranges.
4112 * value-range.h (is_a <unsupported_range>): New.
4113 (Value_Range::operator=): Support copying unsupported ranges.
4114
4115 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
4116
4117 * data-streamer-in.cc (streamer_read_real_value): New.
4118 (streamer_read_value_range): New.
4119 * data-streamer-out.cc (streamer_write_real_value): New.
4120 (streamer_write_vrange): New.
4121 * data-streamer.h (streamer_write_vrange): New.
4122 (streamer_read_value_range): New.
4123
4124 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
4125
4126 PR c++/109532
4127 * doc/invoke.texi (Code Gen Options): Note that -fshort-enums
4128 is ignored for a fixed underlying type.
4129 (C++ Dialect Options): Likewise for -fstrict-enums.
4130
4131 2023-05-17 Tobias Burnus <tobias@codesourcery.com>
4132
4133 * gimplify.cc (gimplify_scan_omp_clauses): Remove Fortran
4134 special case.
4135
4136 2023-05-17 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4137
4138 * config/s390/s390.cc (TARGET_ATOMIC_ALIGN_FOR_MODE):
4139 New.
4140 (s390_atomic_align_for_mode): New.
4141
4142 2023-05-17 Jakub Jelinek <jakub@redhat.com>
4143
4144 * wide-int.cc (wi::from_array): Add missing closing paren in function
4145 comment.
4146
4147 2023-05-17 Kewen Lin <linkw@linux.ibm.com>
4148
4149 * tree-vect-loop.cc (vect_analyze_loop_1): Don't retry analysis with
4150 suggested unroll factor once the previous analysis fails.
4151
4152 2023-05-17 Pan Li <pan2.li@intel.com>
4153
4154 * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): New
4155 macro.
4156 (main): Add bool1 to the type indexer.
4157 * config/riscv/riscv-vector-builtins-functions.def
4158 (vreinterpret): Register vbool1 interpret function.
4159 * config/riscv/riscv-vector-builtins-types.def
4160 (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
4161 (vint8m1_t): Add the type to bool1_interpret_ops.
4162 (vint16m1_t): Ditto.
4163 (vint32m1_t): Ditto.
4164 (vint64m1_t): Ditto.
4165 (vuint8m1_t): Ditto.
4166 (vuint16m1_t): Ditto.
4167 (vuint32m1_t): Ditto.
4168 (vuint64m1_t): Ditto.
4169 * config/riscv/riscv-vector-builtins.cc
4170 (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
4171 (required_extensions_p): Add bool1 interpret case.
4172 * config/riscv/riscv-vector-builtins.def
4173 (bool1_interpret): Add bool1 interpret to base type.
4174 * config/riscv/vector.md (@vreinterpret<mode>): Add new expand
4175 with VB dest for vreinterpret.
4176
4177 2023-05-17 Jiufu Guo <guojiufu@linux.ibm.com>
4178
4179 PR target/106708
4180 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Support building
4181 constants through "lis; xoris".
4182
4183 2023-05-16 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com>
4184
4185 * common/config/rs6000/rs6000-common.cc: Add REE pass as a
4186 default rs6000 target pass for O2 and above.
4187 * doc/invoke.texi: Document -free
4188
4189 2023-05-16 Kito Cheng <kito.cheng@sifive.com>
4190
4191 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
4192 Fix wrong select_kind...
4193
4194 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4195
4196 * config/s390/s390-protos.h (s390_expand_setmem): Change
4197 function signature.
4198 * config/s390/s390.cc (s390_expand_setmem): For memset's less
4199 than or equal to 256 byte do not perform a libc call.
4200 * config/s390/s390.md: Change expander into a version which
4201 takes 8 operands.
4202
4203 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4204
4205 * config/s390/s390-protos.h (s390_expand_movmem): New.
4206 * config/s390/s390.cc (s390_expand_movmem): New.
4207 * config/s390/s390.md (movmem<mode>): New.
4208 (*mvcrl): New.
4209 (mvcrl): New.
4210
4211 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4212
4213 * config/s390/s390-protos.h (s390_expand_cpymem): Change
4214 function signature.
4215 * config/s390/s390.cc (s390_expand_cpymem): For memcpy's less
4216 than or equal to 256 byte do not perform a libc call.
4217 (s390_expand_insv): Adapt new function signature of
4218 s390_expand_cpymem.
4219 * config/s390/s390.md: Change expander into a version which
4220 takes 8 operands.
4221
4222 2023-05-16 Andrew Pinski <apinski@marvell.com>
4223
4224 PR tree-optimization/109424
4225 * match.pd: Add patterns for min/max of zero_one_valued
4226 values to `&`/`|`.
4227
4228 2023-05-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4229
4230 * config/riscv/riscv-protos.h (enum frm_field_enum): New enum.
4231 * config/riscv/riscv-vector-builtins.cc
4232 (function_expander::use_ternop_insn): Add default rounding mode.
4233 (function_expander::use_widen_ternop_insn): Ditto.
4234 * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add FRM REGNUM.
4235 (riscv_hard_regno_mode_ok): Ditto.
4236 (riscv_conditional_register_usage): Ditto.
4237 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
4238 (FRM_REG_P): Ditto.
4239 (RISCV_DWARF_FRM): Ditto.
4240 * config/riscv/riscv.md: Ditto.
4241 * config/riscv/vector-iterators.md: split no frm and has frm operations.
4242 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
4243 (@pred_<optab><mode>): Ditto.
4244
4245 2023-05-15 Aldy Hernandez <aldyh@redhat.com>
4246
4247 PR tree-optimization/109695
4248 * value-range.cc (irange::operator=): Resize range.
4249 (irange::union_): Same.
4250 (irange::intersect): Same.
4251 (irange::invert): Same.
4252 (int_range_max): Default to 3 sub-ranges and resize as needed.
4253 * value-range.h (irange::maybe_resize): New.
4254 (~int_range): New.
4255 (int_range::int_range): Adjust for resizing.
4256 (int_range::operator=): Same.
4257
4258 2023-05-15 Aldy Hernandez <aldyh@redhat.com>
4259
4260 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Avoid unnecessary
4261 range copying
4262 * value-range.cc (irange::union_nonzero_bits): Return TRUE only
4263 when range changed.
4264
4265 2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4266
4267 * config/riscv/riscv-protos.h (enum vxrm_field_enum): New enum.
4268 * config/riscv/riscv-vector-builtins.cc
4269 (function_expander::use_exact_insn): Add default rounding mode operand.
4270 * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add VXRM_REGNUM.
4271 (riscv_hard_regno_mode_ok): Ditto.
4272 (riscv_conditional_register_usage): Ditto.
4273 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
4274 (VXRM_REG_P): Ditto.
4275 (RISCV_DWARF_VXRM): Ditto.
4276 * config/riscv/riscv.md: Ditto.
4277 * config/riscv/vector.md: Ditto
4278
4279 2023-05-15 Pan Li <pan2.li@intel.com>
4280
4281 * optabs.cc (maybe_gen_insn): Add case to generate instruction
4282 that has 11 operands.
4283
4284 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4285
4286 * config/aarch64/aarch64.cc (aarch64_rtx_costs, NEG case): Add costing
4287 logic for vector modes.
4288
4289 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4290
4291 PR target/99195
4292 * config/aarch64/aarch64-simd.md (aarch64_cm<optab><mode>): Rename to...
4293 (aarch64_cm<optab><mode><vczle><vczbe>): ... This.
4294 (aarch64_cmtst<mode>): Rename to...
4295 (aarch64_cmtst<mode><vczle><vczbe>): ... This.
4296 (*aarch64_cmtst_same_<mode>): Rename to...
4297 (*aarch64_cmtst_same_<mode><vczle><vczbe>): ... This.
4298 (*aarch64_cmtstdi): Rename to...
4299 (*aarch64_cmtstdi<vczle><vczbe>): ... This.
4300 (aarch64_fac<optab><mode>): Rename to...
4301 (aarch64_fac<optab><mode><vczle><vczbe>): ... This.
4302
4303 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4304
4305 PR target/99195
4306 * config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>): Rename to...
4307 (aarch64_s<optab><mode><vczle><vczbe>): ... This.
4308
4309 2023-05-15 Pan Li <pan2.li@intel.com>
4310 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4311 kito-cheng <kito.cheng@sifive.com>
4312
4313 * config/riscv/riscv-v.cc (const_vlmax_p): New function for
4314 deciding the mode is constant or not.
4315 (set_len_and_policy): Optimize VLS-VLMAX code gen to vsetivli.
4316
4317 2023-05-15 Richard Biener <rguenther@suse.de>
4318
4319 PR tree-optimization/109848
4320 * tree-ssa-forwprop.cc (pass_forwprop::execute): Put the
4321 TARGET_MEM_REF address preparation before the store, not
4322 before the CTOR.
4323
4324 2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4325
4326 * config/riscv/riscv.cc
4327 (riscv_vectorize_preferred_vector_alignment): New function.
4328 (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New target hook.
4329
4330 2023-05-14 Andrew Pinski <apinski@marvell.com>
4331
4332 PR tree-optimization/109829
4333 * match.pd: Add pattern for `signbit(x) !=/== 0 ? x : -x`.
4334
4335 2023-05-14 Uros Bizjak <ubizjak@gmail.com>
4336
4337 PR target/109807
4338 * config/i386/i386.cc: Revert the 2023-05-11 change.
4339 (ix86_widen_mult_cost): Return high value instead of
4340 ICEing for unsupported modes.
4341
4342 2023-05-14 Ard Biesheuvel <ardb@kernel.org>
4343
4344 * config/i386/i386.cc (x86_function_profiler): Take
4345 ix86_direct_extern_access into account when generating calls
4346 to __fentry__()
4347
4348 2023-05-14 Pan Li <pan2.li@intel.com>
4349
4350 * config/riscv/riscv-vector-builtins.cc (required_extensions_p):
4351 Refactor the or pattern to switch cases.
4352
4353 2023-05-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4354
4355 * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Rename
4356 aarch64_expand_vector_init to this, and remove interleaving case.
4357 Recursively call aarch64_expand_vector_init_fallback, instead of
4358 aarch64_expand_vector_init.
4359 (aarch64_unzip_vector_init): New function.
4360 (aarch64_expand_vector_init): Likewise.
4361
4362 2023-05-13 Kito Cheng <kito.cheng@sifive.com>
4363
4364 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns):
4365 Pull out function call from the gcc_assert.
4366
4367 2023-05-13 Kito Cheng <kito.cheng@sifive.com>
4368
4369 * config/riscv/riscv-vsetvl.cc (vlmul_to_str): New.
4370 (policy_to_str): New.
4371 (vector_insn_info::dump): Use vlmul_to_str and policy_to_str.
4372
4373 2023-05-13 Andrew Pinski <apinski@marvell.com>
4374
4375 PR tree-optimization/109834
4376 * match.pd (popcount(bswap(x))->popcount(x)): Fix up unsigned type checking.
4377 (popcount(rotate(x,y))->popcount(x)): Likewise.
4378
4379 2023-05-12 Uros Bizjak <ubizjak@gmail.com>
4380
4381 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also
4382 reject ymm instructions for TARGET_PREFER_AVX128. Use generic
4383 gen_extend_insn to generate zero/sign extension instructions.
4384 Fix comments.
4385 (ix86_expand_vecop_qihi): Initialize interleave functions
4386 for MULT code only. Fix comments.
4387
4388 2023-05-12 Uros Bizjak <ubizjak@gmail.com>
4389
4390 PR target/109797
4391 * config/i386/mmx.md (mulv2si3): Remove expander.
4392 (mulv2si3): Rename insn pattern from *mulv2si.
4393
4394 2023-05-12 Tobias Burnus <tobias@codesourcery.com>
4395
4396 PR libstdc++/109816
4397 * lto-cgraph.cc (output_symtab): Guard lto_output_toplevel_asms by
4398 '!lto_stream_offload_p'.
4399
4400 2023-05-12 Kito Cheng <kito.cheng@sifive.com>
4401 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4402
4403 PR target/109743
4404 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vsetvl_at_end): New.
4405 (local_avl_compatible_p): New.
4406 (pass_vsetvl::local_eliminate_vsetvl_insn): Enhance local optimizations
4407 for LCM, rewrite as a backward algorithm.
4408 (pass_vsetvl::cleanup_insns): Use new local_eliminate_vsetvl_insn
4409 interface, handle a BB at once.
4410
4411 2023-05-12 Richard Biener <rguenther@suse.de>
4412
4413 PR tree-optimization/64731
4414 * tree-ssa-forwprop.cc (pass_forwprop::execute): Also
4415 handle TARGET_MEM_REF destinations of stores from vector
4416 CTORs.
4417
4418 2023-05-12 Richard Biener <rguenther@suse.de>
4419
4420 PR tree-optimization/109791
4421 * match.pd (minus (convert ADDR_EXPR@0) (convert (pointer_plus @1 @2))):
4422 New pattern.
4423 (minus (convert (pointer_plus @1 @2)) (convert ADDR_EXPR@0)):
4424 Likewise.
4425
4426 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4427
4428 * config/arm/arm-mve-builtins-base.cc (vsriq): New.
4429 * config/arm/arm-mve-builtins-base.def (vsriq): New.
4430 * config/arm/arm-mve-builtins-base.h (vsriq): New.
4431 * config/arm/arm-mve-builtins.cc
4432 (function_instance::has_inactive_argument): Handle vsriq.
4433 * config/arm/arm_mve.h (vsriq): Remove.
4434 (vsriq_m): Remove.
4435 (vsriq_n_u8): Remove.
4436 (vsriq_n_s8): Remove.
4437 (vsriq_n_u16): Remove.
4438 (vsriq_n_s16): Remove.
4439 (vsriq_n_u32): Remove.
4440 (vsriq_n_s32): Remove.
4441 (vsriq_m_n_s8): Remove.
4442 (vsriq_m_n_u8): Remove.
4443 (vsriq_m_n_s16): Remove.
4444 (vsriq_m_n_u16): Remove.
4445 (vsriq_m_n_s32): Remove.
4446 (vsriq_m_n_u32): Remove.
4447 (__arm_vsriq_n_u8): Remove.
4448 (__arm_vsriq_n_s8): Remove.
4449 (__arm_vsriq_n_u16): Remove.
4450 (__arm_vsriq_n_s16): Remove.
4451 (__arm_vsriq_n_u32): Remove.
4452 (__arm_vsriq_n_s32): Remove.
4453 (__arm_vsriq_m_n_s8): Remove.
4454 (__arm_vsriq_m_n_u8): Remove.
4455 (__arm_vsriq_m_n_s16): Remove.
4456 (__arm_vsriq_m_n_u16): Remove.
4457 (__arm_vsriq_m_n_s32): Remove.
4458 (__arm_vsriq_m_n_u32): Remove.
4459 (__arm_vsriq): Remove.
4460 (__arm_vsriq_m): Remove.
4461
4462 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4463
4464 * config/arm/iterators.md (mve_insn): Add vsri.
4465 * config/arm/mve.md (mve_vsriq_n_<supf><mode>): Rename into ...
4466 (@mve_<mve_insn>q_n_<supf><mode>): .,. this.
4467 (mve_vsriq_m_n_<supf><mode>): Rename into ...
4468 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4469
4470 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4471
4472 * config/arm/arm-mve-builtins-shapes.cc (ternary_rshift): New.
4473 * config/arm/arm-mve-builtins-shapes.h (ternary_rshift): New.
4474
4475 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4476
4477 * config/arm/arm-mve-builtins-base.cc (vsliq): New.
4478 * config/arm/arm-mve-builtins-base.def (vsliq): New.
4479 * config/arm/arm-mve-builtins-base.h (vsliq): New.
4480 * config/arm/arm-mve-builtins.cc
4481 (function_instance::has_inactive_argument): Handle vsliq.
4482 * config/arm/arm_mve.h (vsliq): Remove.
4483 (vsliq_m): Remove.
4484 (vsliq_n_u8): Remove.
4485 (vsliq_n_s8): Remove.
4486 (vsliq_n_u16): Remove.
4487 (vsliq_n_s16): Remove.
4488 (vsliq_n_u32): Remove.
4489 (vsliq_n_s32): Remove.
4490 (vsliq_m_n_s8): Remove.
4491 (vsliq_m_n_s32): Remove.
4492 (vsliq_m_n_s16): Remove.
4493 (vsliq_m_n_u8): Remove.
4494 (vsliq_m_n_u32): Remove.
4495 (vsliq_m_n_u16): Remove.
4496 (__arm_vsliq_n_u8): Remove.
4497 (__arm_vsliq_n_s8): Remove.
4498 (__arm_vsliq_n_u16): Remove.
4499 (__arm_vsliq_n_s16): Remove.
4500 (__arm_vsliq_n_u32): Remove.
4501 (__arm_vsliq_n_s32): Remove.
4502 (__arm_vsliq_m_n_s8): Remove.
4503 (__arm_vsliq_m_n_s32): Remove.
4504 (__arm_vsliq_m_n_s16): Remove.
4505 (__arm_vsliq_m_n_u8): Remove.
4506 (__arm_vsliq_m_n_u32): Remove.
4507 (__arm_vsliq_m_n_u16): Remove.
4508 (__arm_vsliq): Remove.
4509 (__arm_vsliq_m): Remove.
4510
4511 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4512
4513 * config/arm/iterators.md (mve_insn>): Add vsli.
4514 * config/arm/mve.md (mve_vsliq_n_<supf><mode>): Rename into ...
4515 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4516 (mve_vsliq_m_n_<supf><mode>): Rename into ...
4517 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4518
4519 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4520
4521 * config/arm/arm-mve-builtins-shapes.cc (ternary_lshift): New.
4522 * config/arm/arm-mve-builtins-shapes.h (ternary_lshift): New.
4523
4524 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4525
4526 * config/arm/arm-mve-builtins-base.cc (vpselq): New.
4527 * config/arm/arm-mve-builtins-base.def (vpselq): New.
4528 * config/arm/arm-mve-builtins-base.h (vpselq): New.
4529 * config/arm/arm_mve.h (vpselq): Remove.
4530 (vpselq_u8): Remove.
4531 (vpselq_s8): Remove.
4532 (vpselq_u16): Remove.
4533 (vpselq_s16): Remove.
4534 (vpselq_u32): Remove.
4535 (vpselq_s32): Remove.
4536 (vpselq_u64): Remove.
4537 (vpselq_s64): Remove.
4538 (vpselq_f16): Remove.
4539 (vpselq_f32): Remove.
4540 (__arm_vpselq_u8): Remove.
4541 (__arm_vpselq_s8): Remove.
4542 (__arm_vpselq_u16): Remove.
4543 (__arm_vpselq_s16): Remove.
4544 (__arm_vpselq_u32): Remove.
4545 (__arm_vpselq_s32): Remove.
4546 (__arm_vpselq_u64): Remove.
4547 (__arm_vpselq_s64): Remove.
4548 (__arm_vpselq_f16): Remove.
4549 (__arm_vpselq_f32): Remove.
4550 (__arm_vpselq): Remove.
4551
4552 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4553
4554 * config/arm/arm-mve-builtins-shapes.cc (vpsel): New.
4555 * config/arm/arm-mve-builtins-shapes.h (vpsel): New.
4556
4557 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4558
4559 * config/arm/arm.cc (arm_expand_vcond): Use gen_mve_q instead of
4560 gen_mve_vpselq.
4561 * config/arm/iterators.md (MVE_VPSELQ_F): New.
4562 (mve_insn): Add vpsel.
4563 * config/arm/mve.md (@mve_vpselq_<supf><mode>): Rename into ...
4564 (@mve_<mve_insn>q_<supf><mode>): ... this.
4565 (@mve_vpselq_f<mode>): Rename into ...
4566 (@mve_<mve_insn>q_f<mode>): ... this.
4567
4568 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4569
4570 * config/arm/arm-mve-builtins-base.cc (vfmaq, vfmasq, vfmsq): New.
4571 * config/arm/arm-mve-builtins-base.def (vfmaq, vfmasq, vfmsq): New.
4572 * config/arm/arm-mve-builtins-base.h (vfmaq, vfmasq, vfmsq): New.
4573 * config/arm/arm-mve-builtins.cc
4574 (function_instance::has_inactive_argument): Handle vfmaq, vfmasq,
4575 vfmsq.
4576 * config/arm/arm_mve.h (vfmaq): Remove.
4577 (vfmasq): Remove.
4578 (vfmsq): Remove.
4579 (vfmaq_m): Remove.
4580 (vfmasq_m): Remove.
4581 (vfmsq_m): Remove.
4582 (vfmaq_f16): Remove.
4583 (vfmaq_n_f16): Remove.
4584 (vfmasq_n_f16): Remove.
4585 (vfmsq_f16): Remove.
4586 (vfmaq_f32): Remove.
4587 (vfmaq_n_f32): Remove.
4588 (vfmasq_n_f32): Remove.
4589 (vfmsq_f32): Remove.
4590 (vfmaq_m_f32): Remove.
4591 (vfmaq_m_f16): Remove.
4592 (vfmaq_m_n_f32): Remove.
4593 (vfmaq_m_n_f16): Remove.
4594 (vfmasq_m_n_f32): Remove.
4595 (vfmasq_m_n_f16): Remove.
4596 (vfmsq_m_f32): Remove.
4597 (vfmsq_m_f16): Remove.
4598 (__arm_vfmaq_f16): Remove.
4599 (__arm_vfmaq_n_f16): Remove.
4600 (__arm_vfmasq_n_f16): Remove.
4601 (__arm_vfmsq_f16): Remove.
4602 (__arm_vfmaq_f32): Remove.
4603 (__arm_vfmaq_n_f32): Remove.
4604 (__arm_vfmasq_n_f32): Remove.
4605 (__arm_vfmsq_f32): Remove.
4606 (__arm_vfmaq_m_f32): Remove.
4607 (__arm_vfmaq_m_f16): Remove.
4608 (__arm_vfmaq_m_n_f32): Remove.
4609 (__arm_vfmaq_m_n_f16): Remove.
4610 (__arm_vfmasq_m_n_f32): Remove.
4611 (__arm_vfmasq_m_n_f16): Remove.
4612 (__arm_vfmsq_m_f32): Remove.
4613 (__arm_vfmsq_m_f16): Remove.
4614 (__arm_vfmaq): Remove.
4615 (__arm_vfmasq): Remove.
4616 (__arm_vfmsq): Remove.
4617 (__arm_vfmaq_m): Remove.
4618 (__arm_vfmasq_m): Remove.
4619 (__arm_vfmsq_m): Remove.
4620
4621 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4622
4623 * config/arm/iterators.md (MVE_FP_M_BINARY): Add VFMAQ_M_F,
4624 VFMSQ_M_F.
4625 (MVE_FP_M_N_BINARY): Add VFMAQ_M_N_F, VFMASQ_M_N_F.
4626 (MVE_VFMxQ_F, MVE_VFMAxQ_N_F): New.
4627 (mve_insn): Add vfma, vfmas, vfms.
4628 * config/arm/mve.md (mve_vfmaq_f<mode>, mve_vfmsq_f<mode>): Merge
4629 into ...
4630 (@mve_<mve_insn>q_f<mode>): ... this.
4631 (mve_vfmaq_n_f<mode>, mve_vfmasq_n_f<mode>): Merge into ...
4632 (@mve_<mve_insn>q_n_f<mode>): ... this.
4633 (mve_vfmaq_m_f<mode>, mve_vfmsq_m_f<mode>): Merge into
4634 @mve_<mve_insn>q_m_f<mode>.
4635 (mve_vfmaq_m_n_f<mode>, mve_vfmasq_m_n_f<mode>): Merge into
4636 @mve_<mve_insn>q_m_n_f<mode>.
4637
4638 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4639
4640 * config/arm/arm-mve-builtins-shapes.cc (ternary_opt_n): New.
4641 * config/arm/arm-mve-builtins-shapes.h (ternary_opt_n): New.
4642
4643 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4644
4645 * config/arm/arm-mve-builtins-base.cc
4646 (FUNCTION_WITH_RTX_M_N_NO_F): New.
4647 (vmvnq): New.
4648 * config/arm/arm-mve-builtins-base.def (vmvnq): New.
4649 * config/arm/arm-mve-builtins-base.h (vmvnq): New.
4650 * config/arm/arm_mve.h (vmvnq): Remove.
4651 (vmvnq_m): Remove.
4652 (vmvnq_x): Remove.
4653 (vmvnq_s8): Remove.
4654 (vmvnq_s16): Remove.
4655 (vmvnq_s32): Remove.
4656 (vmvnq_n_s16): Remove.
4657 (vmvnq_n_s32): Remove.
4658 (vmvnq_u8): Remove.
4659 (vmvnq_u16): Remove.
4660 (vmvnq_u32): Remove.
4661 (vmvnq_n_u16): Remove.
4662 (vmvnq_n_u32): Remove.
4663 (vmvnq_m_u8): Remove.
4664 (vmvnq_m_s8): Remove.
4665 (vmvnq_m_u16): Remove.
4666 (vmvnq_m_s16): Remove.
4667 (vmvnq_m_u32): Remove.
4668 (vmvnq_m_s32): Remove.
4669 (vmvnq_m_n_s16): Remove.
4670 (vmvnq_m_n_u16): Remove.
4671 (vmvnq_m_n_s32): Remove.
4672 (vmvnq_m_n_u32): Remove.
4673 (vmvnq_x_s8): Remove.
4674 (vmvnq_x_s16): Remove.
4675 (vmvnq_x_s32): Remove.
4676 (vmvnq_x_u8): Remove.
4677 (vmvnq_x_u16): Remove.
4678 (vmvnq_x_u32): Remove.
4679 (vmvnq_x_n_s16): Remove.
4680 (vmvnq_x_n_s32): Remove.
4681 (vmvnq_x_n_u16): Remove.
4682 (vmvnq_x_n_u32): Remove.
4683 (__arm_vmvnq_s8): Remove.
4684 (__arm_vmvnq_s16): Remove.
4685 (__arm_vmvnq_s32): Remove.
4686 (__arm_vmvnq_n_s16): Remove.
4687 (__arm_vmvnq_n_s32): Remove.
4688 (__arm_vmvnq_u8): Remove.
4689 (__arm_vmvnq_u16): Remove.
4690 (__arm_vmvnq_u32): Remove.
4691 (__arm_vmvnq_n_u16): Remove.
4692 (__arm_vmvnq_n_u32): Remove.
4693 (__arm_vmvnq_m_u8): Remove.
4694 (__arm_vmvnq_m_s8): Remove.
4695 (__arm_vmvnq_m_u16): Remove.
4696 (__arm_vmvnq_m_s16): Remove.
4697 (__arm_vmvnq_m_u32): Remove.
4698 (__arm_vmvnq_m_s32): Remove.
4699 (__arm_vmvnq_m_n_s16): Remove.
4700 (__arm_vmvnq_m_n_u16): Remove.
4701 (__arm_vmvnq_m_n_s32): Remove.
4702 (__arm_vmvnq_m_n_u32): Remove.
4703 (__arm_vmvnq_x_s8): Remove.
4704 (__arm_vmvnq_x_s16): Remove.
4705 (__arm_vmvnq_x_s32): Remove.
4706 (__arm_vmvnq_x_u8): Remove.
4707 (__arm_vmvnq_x_u16): Remove.
4708 (__arm_vmvnq_x_u32): Remove.
4709 (__arm_vmvnq_x_n_s16): Remove.
4710 (__arm_vmvnq_x_n_s32): Remove.
4711 (__arm_vmvnq_x_n_u16): Remove.
4712 (__arm_vmvnq_x_n_u32): Remove.
4713 (__arm_vmvnq): Remove.
4714 (__arm_vmvnq_m): Remove.
4715 (__arm_vmvnq_x): Remove.
4716
4717 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4718
4719 * config/arm/iterators.md (mve_insn): Add vmvn.
4720 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Rename into ...
4721 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4722 (mve_vmvnq_m_<supf><mode>): Rename into ...
4723 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
4724 (mve_vmvnq_m_n_<supf><mode>): Rename into ...
4725 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4726
4727 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4728
4729 * config/arm/arm-mve-builtins-shapes.cc (mvn): New.
4730 * config/arm/arm-mve-builtins-shapes.h (mvn): New.
4731
4732 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4733
4734 * config/arm/arm-mve-builtins-base.cc (vbrsrq): New.
4735 * config/arm/arm-mve-builtins-base.def (vbrsrq): New.
4736 * config/arm/arm-mve-builtins-base.h (vbrsrq): New.
4737 * config/arm/arm_mve.h (vbrsrq): Remove.
4738 (vbrsrq_m): Remove.
4739 (vbrsrq_x): Remove.
4740 (vbrsrq_n_f16): Remove.
4741 (vbrsrq_n_f32): Remove.
4742 (vbrsrq_n_u8): Remove.
4743 (vbrsrq_n_s8): Remove.
4744 (vbrsrq_n_u16): Remove.
4745 (vbrsrq_n_s16): Remove.
4746 (vbrsrq_n_u32): Remove.
4747 (vbrsrq_n_s32): Remove.
4748 (vbrsrq_m_n_s8): Remove.
4749 (vbrsrq_m_n_s32): Remove.
4750 (vbrsrq_m_n_s16): Remove.
4751 (vbrsrq_m_n_u8): Remove.
4752 (vbrsrq_m_n_u32): Remove.
4753 (vbrsrq_m_n_u16): Remove.
4754 (vbrsrq_m_n_f32): Remove.
4755 (vbrsrq_m_n_f16): Remove.
4756 (vbrsrq_x_n_s8): Remove.
4757 (vbrsrq_x_n_s16): Remove.
4758 (vbrsrq_x_n_s32): Remove.
4759 (vbrsrq_x_n_u8): Remove.
4760 (vbrsrq_x_n_u16): Remove.
4761 (vbrsrq_x_n_u32): Remove.
4762 (vbrsrq_x_n_f16): Remove.
4763 (vbrsrq_x_n_f32): Remove.
4764 (__arm_vbrsrq_n_u8): Remove.
4765 (__arm_vbrsrq_n_s8): Remove.
4766 (__arm_vbrsrq_n_u16): Remove.
4767 (__arm_vbrsrq_n_s16): Remove.
4768 (__arm_vbrsrq_n_u32): Remove.
4769 (__arm_vbrsrq_n_s32): Remove.
4770 (__arm_vbrsrq_m_n_s8): Remove.
4771 (__arm_vbrsrq_m_n_s32): Remove.
4772 (__arm_vbrsrq_m_n_s16): Remove.
4773 (__arm_vbrsrq_m_n_u8): Remove.
4774 (__arm_vbrsrq_m_n_u32): Remove.
4775 (__arm_vbrsrq_m_n_u16): Remove.
4776 (__arm_vbrsrq_x_n_s8): Remove.
4777 (__arm_vbrsrq_x_n_s16): Remove.
4778 (__arm_vbrsrq_x_n_s32): Remove.
4779 (__arm_vbrsrq_x_n_u8): Remove.
4780 (__arm_vbrsrq_x_n_u16): Remove.
4781 (__arm_vbrsrq_x_n_u32): Remove.
4782 (__arm_vbrsrq_n_f16): Remove.
4783 (__arm_vbrsrq_n_f32): Remove.
4784 (__arm_vbrsrq_m_n_f32): Remove.
4785 (__arm_vbrsrq_m_n_f16): Remove.
4786 (__arm_vbrsrq_x_n_f16): Remove.
4787 (__arm_vbrsrq_x_n_f32): Remove.
4788 (__arm_vbrsrq): Remove.
4789 (__arm_vbrsrq_m): Remove.
4790 (__arm_vbrsrq_x): Remove.
4791
4792 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4793
4794 * config/arm/iterators.md (MVE_VBRSR_M_N_FP, MVE_VBRSR_N_FP): New.
4795 (mve_insn): Add vbrsr.
4796 * config/arm/mve.md (mve_vbrsrq_n_f<mode>): Rename into ...
4797 (@mve_<mve_insn>q_n_f<mode>): ... this.
4798 (mve_vbrsrq_n_<supf><mode>): Rename into ...
4799 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4800 (mve_vbrsrq_m_n_<supf><mode>): Rename into ...
4801 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4802 (mve_vbrsrq_m_n_f<mode>): Rename into ...
4803 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
4804
4805 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4806
4807 * config/arm/arm-mve-builtins-shapes.cc (binary_imm32): New.
4808 * config/arm/arm-mve-builtins-shapes.h (binary_imm32): New.
4809
4810 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4811
4812 * config/arm/arm-mve-builtins-base.cc (vqshluq): New.
4813 * config/arm/arm-mve-builtins-base.def (vqshluq): New.
4814 * config/arm/arm-mve-builtins-base.h (vqshluq): New.
4815 * config/arm/arm_mve.h (vqshluq): Remove.
4816 (vqshluq_m): Remove.
4817 (vqshluq_n_s8): Remove.
4818 (vqshluq_n_s16): Remove.
4819 (vqshluq_n_s32): Remove.
4820 (vqshluq_m_n_s8): Remove.
4821 (vqshluq_m_n_s16): Remove.
4822 (vqshluq_m_n_s32): Remove.
4823 (__arm_vqshluq_n_s8): Remove.
4824 (__arm_vqshluq_n_s16): Remove.
4825 (__arm_vqshluq_n_s32): Remove.
4826 (__arm_vqshluq_m_n_s8): Remove.
4827 (__arm_vqshluq_m_n_s16): Remove.
4828 (__arm_vqshluq_m_n_s32): Remove.
4829 (__arm_vqshluq): Remove.
4830 (__arm_vqshluq_m): Remove.
4831
4832 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4833
4834 * config/arm/iterators.md (mve_insn): Add vqshlu.
4835 (supf): Add VQSHLUQ_M_N_S, VQSHLUQ_N_S.
4836 (VQSHLUQ_M_N, VQSHLUQ_N): New.
4837 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Change name into ...
4838 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4839 (mve_vqshluq_m_n_s<mode>): Change name into ...
4840 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4841
4842 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4843
4844 * config/arm/arm-mve-builtins-shapes.cc
4845 (binary_lshift_unsigned): New.
4846 * config/arm/arm-mve-builtins-shapes.h
4847 (binary_lshift_unsigned): New.
4848
4849 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4850
4851 * config/arm/arm-mve-builtins-base.cc (vrmlaldavhaq)
4852 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
4853 * config/arm/arm-mve-builtins-base.def (vrmlaldavhaq)
4854 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
4855 * config/arm/arm-mve-builtins-base.h (vrmlaldavhaq)
4856 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
4857 * config/arm/arm-mve-builtins-functions.h: Handle vrmlaldavhaq,
4858 vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq.
4859 * config/arm/arm_mve.h (vrmlaldavhaq): Remove.
4860 (vrmlaldavhaxq): Remove.
4861 (vrmlsldavhaq): Remove.
4862 (vrmlsldavhaxq): Remove.
4863 (vrmlaldavhaq_p): Remove.
4864 (vrmlaldavhaxq_p): Remove.
4865 (vrmlsldavhaq_p): Remove.
4866 (vrmlsldavhaxq_p): Remove.
4867 (vrmlaldavhaq_s32): Remove.
4868 (vrmlaldavhaq_u32): Remove.
4869 (vrmlaldavhaxq_s32): Remove.
4870 (vrmlsldavhaq_s32): Remove.
4871 (vrmlsldavhaxq_s32): Remove.
4872 (vrmlaldavhaq_p_s32): Remove.
4873 (vrmlaldavhaq_p_u32): Remove.
4874 (vrmlaldavhaxq_p_s32): Remove.
4875 (vrmlsldavhaq_p_s32): Remove.
4876 (vrmlsldavhaxq_p_s32): Remove.
4877 (__arm_vrmlaldavhaq_s32): Remove.
4878 (__arm_vrmlaldavhaq_u32): Remove.
4879 (__arm_vrmlaldavhaxq_s32): Remove.
4880 (__arm_vrmlsldavhaq_s32): Remove.
4881 (__arm_vrmlsldavhaxq_s32): Remove.
4882 (__arm_vrmlaldavhaq_p_s32): Remove.
4883 (__arm_vrmlaldavhaq_p_u32): Remove.
4884 (__arm_vrmlaldavhaxq_p_s32): Remove.
4885 (__arm_vrmlsldavhaq_p_s32): Remove.
4886 (__arm_vrmlsldavhaxq_p_s32): Remove.
4887 (__arm_vrmlaldavhaq): Remove.
4888 (__arm_vrmlaldavhaxq): Remove.
4889 (__arm_vrmlsldavhaq): Remove.
4890 (__arm_vrmlsldavhaxq): Remove.
4891 (__arm_vrmlaldavhaq_p): Remove.
4892 (__arm_vrmlaldavhaxq_p): Remove.
4893 (__arm_vrmlsldavhaq_p): Remove.
4894 (__arm_vrmlsldavhaxq_p): Remove.
4895
4896 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4897
4898 * config/arm/iterators.md (MVE_VRMLxLDAVHAxQ)
4899 (MVE_VRMLxLDAVHAxQ_P): New.
4900 (mve_insn): Add vrmlaldavha, vrmlaldavhax, vrmlsldavha,
4901 vrmlsldavhax.
4902 (supf): Add VRMLALDAVHAXQ_P_S, VRMLALDAVHAXQ_S, VRMLSLDAVHAQ_P_S,
4903 VRMLSLDAVHAQ_S, VRMLSLDAVHAXQ_P_S, VRMLSLDAVHAXQ_S,
4904 VRMLALDAVHAQ_P_S.
4905 * config/arm/mve.md (mve_vrmlaldavhaq_<supf>v4si)
4906 (mve_vrmlaldavhaxq_sv4si, mve_vrmlsldavhaxq_sv4si)
4907 (mve_vrmlsldavhaq_sv4si): Merge into ...
4908 (@mve_<mve_insn>q_<supf>v4si): ... this.
4909 (mve_vrmlaldavhaq_p_sv4si, mve_vrmlaldavhaq_p_uv4si)
4910 (mve_vrmlaldavhaxq_p_sv4si, mve_vrmlsldavhaq_p_sv4si)
4911 (mve_vrmlsldavhaxq_p_sv4si): Merge into ...
4912 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
4913
4914 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4915
4916 * config/arm/arm-mve-builtins-base.cc (vqdmullbq, vqdmulltq): New.
4917 * config/arm/arm-mve-builtins-base.def (vqdmullbq, vqdmulltq):
4918 New.
4919 * config/arm/arm-mve-builtins-base.h (vqdmullbq, vqdmulltq): New.
4920 * config/arm/arm_mve.h (vqdmulltq): Remove.
4921 (vqdmullbq): Remove.
4922 (vqdmullbq_m): Remove.
4923 (vqdmulltq_m): Remove.
4924 (vqdmulltq_s16): Remove.
4925 (vqdmulltq_n_s16): Remove.
4926 (vqdmullbq_s16): Remove.
4927 (vqdmullbq_n_s16): Remove.
4928 (vqdmulltq_s32): Remove.
4929 (vqdmulltq_n_s32): Remove.
4930 (vqdmullbq_s32): Remove.
4931 (vqdmullbq_n_s32): Remove.
4932 (vqdmullbq_m_n_s32): Remove.
4933 (vqdmullbq_m_n_s16): Remove.
4934 (vqdmullbq_m_s32): Remove.
4935 (vqdmullbq_m_s16): Remove.
4936 (vqdmulltq_m_n_s32): Remove.
4937 (vqdmulltq_m_n_s16): Remove.
4938 (vqdmulltq_m_s32): Remove.
4939 (vqdmulltq_m_s16): Remove.
4940 (__arm_vqdmulltq_s16): Remove.
4941 (__arm_vqdmulltq_n_s16): Remove.
4942 (__arm_vqdmullbq_s16): Remove.
4943 (__arm_vqdmullbq_n_s16): Remove.
4944 (__arm_vqdmulltq_s32): Remove.
4945 (__arm_vqdmulltq_n_s32): Remove.
4946 (__arm_vqdmullbq_s32): Remove.
4947 (__arm_vqdmullbq_n_s32): Remove.
4948 (__arm_vqdmullbq_m_n_s32): Remove.
4949 (__arm_vqdmullbq_m_n_s16): Remove.
4950 (__arm_vqdmullbq_m_s32): Remove.
4951 (__arm_vqdmullbq_m_s16): Remove.
4952 (__arm_vqdmulltq_m_n_s32): Remove.
4953 (__arm_vqdmulltq_m_n_s16): Remove.
4954 (__arm_vqdmulltq_m_s32): Remove.
4955 (__arm_vqdmulltq_m_s16): Remove.
4956 (__arm_vqdmulltq): Remove.
4957 (__arm_vqdmullbq): Remove.
4958 (__arm_vqdmullbq_m): Remove.
4959 (__arm_vqdmulltq_m): Remove.
4960
4961 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4962
4963 * config/arm/iterators.md (MVE_VQDMULLxQ, MVE_VQDMULLxQ_M)
4964 (MVE_VQDMULLxQ_M_N, MVE_VQDMULLxQ_N): New.
4965 (mve_insn): Add vqdmullb, vqdmullt.
4966 (supf): Add VQDMULLBQ_S, VQDMULLBQ_M_S, VQDMULLBQ_M_N_S,
4967 VQDMULLBQ_N_S, VQDMULLTQ_S, VQDMULLTQ_M_S, VQDMULLTQ_M_N_S,
4968 VQDMULLTQ_N_S.
4969 * config/arm/mve.md (mve_vqdmullbq_n_s<mode>)
4970 (mve_vqdmulltq_n_s<mode>): Merge into ...
4971 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4972 (mve_vqdmullbq_s<mode>, mve_vqdmulltq_s<mode>): Merge into ...
4973 (@mve_<mve_insn>q_<supf><mode>): ... this.
4974 (mve_vqdmullbq_m_n_s<mode>, mve_vqdmulltq_m_n_s<mode>): Merge into
4975 ...
4976 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4977 (mve_vqdmullbq_m_s<mode>, mve_vqdmulltq_m_s<mode>): Merge into ...
4978 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
4979
4980 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4981
4982 * config/arm/arm-mve-builtins-shapes.cc (binary_widen_opt_n): New.
4983 * config/arm/arm-mve-builtins-shapes.h (binary_widen_opt_n): New.
4984
4985 2023-05-12 Kito Cheng <kito.cheng@sifive.com>
4986
4987 * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi):
4988 Drop unused parameter.
4989 (riscv_select_multilib): Ditto.
4990 (riscv_compute_multilib): Update call site of
4991 riscv_select_multilib_by_abi and riscv_select_multilib_by_abi.
4992
4993 2023-05-12 Juzhe Zhong <juzhe.zhong@rivai.ai>
4994
4995 * config/riscv/autovec.md (vec_init<mode><vel>): New pattern.
4996 * config/riscv/riscv-protos.h (expand_vec_init): New function.
4997 * config/riscv/riscv-v.cc (class rvv_builder): New class.
4998 (rvv_builder::can_duplicate_repeating_sequence_p): New function.
4999 (rvv_builder::get_merged_repeating_sequence): Ditto.
5000 (expand_vector_init_insert_elems): Ditto.
5001 (expand_vec_init): Ditto.
5002 * config/riscv/vector-iterators.md: New attribute.
5003
5004 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
5005
5006 * config/rs6000/rs6000-builtins.def
5007 (__builtin_vsx_scalar_insert_exp): Replace bif-pattern from xsiexpdp
5008 to xsiexpdp_di.
5009 (__builtin_vsx_scalar_insert_exp_dp): Replace bif-pattern from
5010 xsiexpdpf to xsiexpdpf_di.
5011 * config/rs6000/vsx.md (xsiexpdp): Rename to...
5012 (xsiexpdp_<mode>): ..., set the mode of second operand to GPR and
5013 replace TARGET_64BIT with TARGET_POWERPC64.
5014 (xsiexpdpf): Rename to...
5015 (xsiexpdpf_<mode>): ..., set the mode of second operand to GPR and
5016 replace TARGET_64BIT with TARGET_POWERPC64.
5017
5018 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
5019
5020 * config/rs6000/rs6000-builtins.def
5021 (__builtin_vsx_scalar_extract_sig): Set return type to const signed
5022 long long.
5023 * config/rs6000/vsx.md (xsxsigdp): Replace TARGET_64BIT with
5024 TARGET_POWERPC64.
5025
5026 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
5027
5028 * config/rs6000/rs6000-builtins.def
5029 (__builtin_vsx_scalar_extract_exp): Set return type to const signed
5030 int and set its bif-pattern to xsxexpdp_si, move it from power9-64
5031 to power9 catalog.
5032 * config/rs6000/vsx.md (xsxexpdp): Rename to ...
5033 (xsxexpdp_<mode>): ..., set mode of operand 0 to GPR and remove
5034 TARGET_64BIT check.
5035 * doc/extend.texi (scalar_extract_exp): Remove 64-bit environment
5036 requirement when it has a 64-bit argument.
5037
5038 2023-05-12 Pan Li <pan2.li@intel.com>
5039 Richard Sandiford <richard.sandiford@arm.com>
5040 Richard Biener <rguenther@suse.de>
5041 Jakub Jelinek <jakub@redhat.com>
5042
5043 * mux-utils.h: Add overload operator == and != for pointer_mux.
5044 * var-tracking.cc: Included mux-utils.h for pointer_tmux.
5045 (decl_or_value): Changed from void * to pointer_mux<tree_node, rtx_def>.
5046 (dv_is_decl_p): Reconciled to the new type, aka pointer_mux.
5047 (dv_as_decl): Ditto.
5048 (dv_as_opaque): Removed due to unnecessary.
5049 (struct variable_hasher): Take decl_or_value as compare_type.
5050 (variable_hasher::equal): Diito.
5051 (dv_from_decl): Reconciled to the new type, aka pointer_mux.
5052 (dv_from_value): Ditto.
5053 (attrs_list_member): Ditto.
5054 (vars_copy): Ditto.
5055 (var_reg_decl_set): Ditto.
5056 (var_reg_delete_and_set): Ditto.
5057 (find_loc_in_1pdv): Ditto.
5058 (canonicalize_values_star): Ditto.
5059 (variable_post_merge_new_vals): Ditto.
5060 (dump_onepart_variable_differences): Ditto.
5061 (variable_different_p): Ditto.
5062 (set_slot_part): Ditto.
5063 (clobber_slot_part): Ditto.
5064 (clobber_variable_part): Ditto.
5065
5066 2023-05-11 mtsamis <manolis.tsamis@vrull.eu>
5067
5068 * match.pd: simplify vector shift + bit_and + multiply.
5069
5070 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5071
5072 * config/arm/arm-mve-builtins-base.cc (vmlaq, vmlasq, vqdmlahq)
5073 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
5074 * config/arm/arm-mve-builtins-base.def (vmlaq, vmlasq, vqdmlahq)
5075 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
5076 * config/arm/arm-mve-builtins-base.h (vmlaq, vmlasq, vqdmlahq)
5077 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
5078 * config/arm/arm-mve-builtins.cc
5079 (function_instance::has_inactive_argument): Handle vmlaq, vmlasq,
5080 vqdmlahq, vqdmlashq, vqrdmlahq, vqrdmlashq.
5081 * config/arm/arm_mve.h (vqrdmlashq): Remove.
5082 (vqrdmlahq): Remove.
5083 (vqdmlashq): Remove.
5084 (vqdmlahq): Remove.
5085 (vmlasq): Remove.
5086 (vmlaq): Remove.
5087 (vmlaq_m): Remove.
5088 (vmlasq_m): Remove.
5089 (vqdmlashq_m): Remove.
5090 (vqdmlahq_m): Remove.
5091 (vqrdmlahq_m): Remove.
5092 (vqrdmlashq_m): Remove.
5093 (vmlasq_n_u8): Remove.
5094 (vmlaq_n_u8): Remove.
5095 (vqrdmlashq_n_s8): Remove.
5096 (vqrdmlahq_n_s8): Remove.
5097 (vqdmlahq_n_s8): Remove.
5098 (vqdmlashq_n_s8): Remove.
5099 (vmlasq_n_s8): Remove.
5100 (vmlaq_n_s8): Remove.
5101 (vmlasq_n_u16): Remove.
5102 (vmlaq_n_u16): Remove.
5103 (vqrdmlashq_n_s16): Remove.
5104 (vqrdmlahq_n_s16): Remove.
5105 (vqdmlashq_n_s16): Remove.
5106 (vqdmlahq_n_s16): Remove.
5107 (vmlasq_n_s16): Remove.
5108 (vmlaq_n_s16): Remove.
5109 (vmlasq_n_u32): Remove.
5110 (vmlaq_n_u32): Remove.
5111 (vqrdmlashq_n_s32): Remove.
5112 (vqrdmlahq_n_s32): Remove.
5113 (vqdmlashq_n_s32): Remove.
5114 (vqdmlahq_n_s32): Remove.
5115 (vmlasq_n_s32): Remove.
5116 (vmlaq_n_s32): Remove.
5117 (vmlaq_m_n_s8): Remove.
5118 (vmlaq_m_n_s32): Remove.
5119 (vmlaq_m_n_s16): Remove.
5120 (vmlaq_m_n_u8): Remove.
5121 (vmlaq_m_n_u32): Remove.
5122 (vmlaq_m_n_u16): Remove.
5123 (vmlasq_m_n_s8): Remove.
5124 (vmlasq_m_n_s32): Remove.
5125 (vmlasq_m_n_s16): Remove.
5126 (vmlasq_m_n_u8): Remove.
5127 (vmlasq_m_n_u32): Remove.
5128 (vmlasq_m_n_u16): Remove.
5129 (vqdmlashq_m_n_s8): Remove.
5130 (vqdmlashq_m_n_s32): Remove.
5131 (vqdmlashq_m_n_s16): Remove.
5132 (vqdmlahq_m_n_s8): Remove.
5133 (vqdmlahq_m_n_s32): Remove.
5134 (vqdmlahq_m_n_s16): Remove.
5135 (vqrdmlahq_m_n_s8): Remove.
5136 (vqrdmlahq_m_n_s32): Remove.
5137 (vqrdmlahq_m_n_s16): Remove.
5138 (vqrdmlashq_m_n_s8): Remove.
5139 (vqrdmlashq_m_n_s32): Remove.
5140 (vqrdmlashq_m_n_s16): Remove.
5141 (__arm_vmlasq_n_u8): Remove.
5142 (__arm_vmlaq_n_u8): Remove.
5143 (__arm_vqrdmlashq_n_s8): Remove.
5144 (__arm_vqdmlashq_n_s8): Remove.
5145 (__arm_vqrdmlahq_n_s8): Remove.
5146 (__arm_vqdmlahq_n_s8): Remove.
5147 (__arm_vmlasq_n_s8): Remove.
5148 (__arm_vmlaq_n_s8): Remove.
5149 (__arm_vmlasq_n_u16): Remove.
5150 (__arm_vmlaq_n_u16): Remove.
5151 (__arm_vqrdmlashq_n_s16): Remove.
5152 (__arm_vqdmlashq_n_s16): Remove.
5153 (__arm_vqrdmlahq_n_s16): Remove.
5154 (__arm_vqdmlahq_n_s16): Remove.
5155 (__arm_vmlasq_n_s16): Remove.
5156 (__arm_vmlaq_n_s16): Remove.
5157 (__arm_vmlasq_n_u32): Remove.
5158 (__arm_vmlaq_n_u32): Remove.
5159 (__arm_vqrdmlashq_n_s32): Remove.
5160 (__arm_vqdmlashq_n_s32): Remove.
5161 (__arm_vqrdmlahq_n_s32): Remove.
5162 (__arm_vqdmlahq_n_s32): Remove.
5163 (__arm_vmlasq_n_s32): Remove.
5164 (__arm_vmlaq_n_s32): Remove.
5165 (__arm_vmlaq_m_n_s8): Remove.
5166 (__arm_vmlaq_m_n_s32): Remove.
5167 (__arm_vmlaq_m_n_s16): Remove.
5168 (__arm_vmlaq_m_n_u8): Remove.
5169 (__arm_vmlaq_m_n_u32): Remove.
5170 (__arm_vmlaq_m_n_u16): Remove.
5171 (__arm_vmlasq_m_n_s8): Remove.
5172 (__arm_vmlasq_m_n_s32): Remove.
5173 (__arm_vmlasq_m_n_s16): Remove.
5174 (__arm_vmlasq_m_n_u8): Remove.
5175 (__arm_vmlasq_m_n_u32): Remove.
5176 (__arm_vmlasq_m_n_u16): Remove.
5177 (__arm_vqdmlahq_m_n_s8): Remove.
5178 (__arm_vqdmlahq_m_n_s32): Remove.
5179 (__arm_vqdmlahq_m_n_s16): Remove.
5180 (__arm_vqrdmlahq_m_n_s8): Remove.
5181 (__arm_vqrdmlahq_m_n_s32): Remove.
5182 (__arm_vqrdmlahq_m_n_s16): Remove.
5183 (__arm_vqrdmlashq_m_n_s8): Remove.
5184 (__arm_vqrdmlashq_m_n_s32): Remove.
5185 (__arm_vqrdmlashq_m_n_s16): Remove.
5186 (__arm_vqdmlashq_m_n_s8): Remove.
5187 (__arm_vqdmlashq_m_n_s16): Remove.
5188 (__arm_vqdmlashq_m_n_s32): Remove.
5189 (__arm_vmlasq): Remove.
5190 (__arm_vmlaq): Remove.
5191 (__arm_vqrdmlashq): Remove.
5192 (__arm_vqdmlashq): Remove.
5193 (__arm_vqrdmlahq): Remove.
5194 (__arm_vqdmlahq): Remove.
5195 (__arm_vmlaq_m): Remove.
5196 (__arm_vmlasq_m): Remove.
5197 (__arm_vqdmlahq_m): Remove.
5198 (__arm_vqrdmlahq_m): Remove.
5199 (__arm_vqrdmlashq_m): Remove.
5200 (__arm_vqdmlashq_m): Remove.
5201
5202 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5203
5204 * config/arm/iterators.md (MVE_VMLxQ_N): New.
5205 (mve_insn): Add vmla, vmlas, vqdmlah, vqdmlash, vqrdmlah,
5206 vqrdmlash.
5207 (supf): Add VQDMLAHQ_N_S, VQDMLASHQ_N_S, VQRDMLAHQ_N_S,
5208 VQRDMLASHQ_N_S.
5209 * config/arm/mve.md (mve_vmlaq_n_<supf><mode>)
5210 (mve_vmlasq_n_<supf><mode>, mve_vqdmlahq_n_<supf><mode>)
5211 (mve_vqdmlashq_n_<supf><mode>, mve_vqrdmlahq_n_<supf><mode>)
5212 (mve_vqrdmlashq_n_<supf><mode>): Merge into ...
5213 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
5214
5215 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5216
5217 * config/arm/arm-mve-builtins-shapes.cc (ternary_n): New.
5218 * config/arm/arm-mve-builtins-shapes.h (ternary_n): New.
5219
5220 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5221
5222 * config/arm/arm-mve-builtins-base.cc (vqdmladhq, vqdmladhxq)
5223 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
5224 (vqrdmlsdhxq): New.
5225 * config/arm/arm-mve-builtins-base.def (vqdmladhq, vqdmladhxq)
5226 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
5227 (vqrdmlsdhxq): New.
5228 * config/arm/arm-mve-builtins-base.h (vqdmladhq, vqdmladhxq)
5229 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
5230 (vqrdmlsdhxq): New.
5231 * config/arm/arm-mve-builtins.cc
5232 (function_instance::has_inactive_argument): Handle vqrdmladhq,
5233 vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq vqdmladhq, vqdmladhxq,
5234 vqdmlsdhq, vqdmlsdhxq.
5235 * config/arm/arm_mve.h (vqrdmlsdhxq): Remove.
5236 (vqrdmlsdhq): Remove.
5237 (vqrdmladhxq): Remove.
5238 (vqrdmladhq): Remove.
5239 (vqdmlsdhxq): Remove.
5240 (vqdmlsdhq): Remove.
5241 (vqdmladhxq): Remove.
5242 (vqdmladhq): Remove.
5243 (vqdmladhq_m): Remove.
5244 (vqdmladhxq_m): Remove.
5245 (vqdmlsdhq_m): Remove.
5246 (vqdmlsdhxq_m): Remove.
5247 (vqrdmladhq_m): Remove.
5248 (vqrdmladhxq_m): Remove.
5249 (vqrdmlsdhq_m): Remove.
5250 (vqrdmlsdhxq_m): Remove.
5251 (vqrdmlsdhxq_s8): Remove.
5252 (vqrdmlsdhq_s8): Remove.
5253 (vqrdmladhxq_s8): Remove.
5254 (vqrdmladhq_s8): Remove.
5255 (vqdmlsdhxq_s8): Remove.
5256 (vqdmlsdhq_s8): Remove.
5257 (vqdmladhxq_s8): Remove.
5258 (vqdmladhq_s8): Remove.
5259 (vqrdmlsdhxq_s16): Remove.
5260 (vqrdmlsdhq_s16): Remove.
5261 (vqrdmladhxq_s16): Remove.
5262 (vqrdmladhq_s16): Remove.
5263 (vqdmlsdhxq_s16): Remove.
5264 (vqdmlsdhq_s16): Remove.
5265 (vqdmladhxq_s16): Remove.
5266 (vqdmladhq_s16): Remove.
5267 (vqrdmlsdhxq_s32): Remove.
5268 (vqrdmlsdhq_s32): Remove.
5269 (vqrdmladhxq_s32): Remove.
5270 (vqrdmladhq_s32): Remove.
5271 (vqdmlsdhxq_s32): Remove.
5272 (vqdmlsdhq_s32): Remove.
5273 (vqdmladhxq_s32): Remove.
5274 (vqdmladhq_s32): Remove.
5275 (vqdmladhq_m_s8): Remove.
5276 (vqdmladhq_m_s32): Remove.
5277 (vqdmladhq_m_s16): Remove.
5278 (vqdmladhxq_m_s8): Remove.
5279 (vqdmladhxq_m_s32): Remove.
5280 (vqdmladhxq_m_s16): Remove.
5281 (vqdmlsdhq_m_s8): Remove.
5282 (vqdmlsdhq_m_s32): Remove.
5283 (vqdmlsdhq_m_s16): Remove.
5284 (vqdmlsdhxq_m_s8): Remove.
5285 (vqdmlsdhxq_m_s32): Remove.
5286 (vqdmlsdhxq_m_s16): Remove.
5287 (vqrdmladhq_m_s8): Remove.
5288 (vqrdmladhq_m_s32): Remove.
5289 (vqrdmladhq_m_s16): Remove.
5290 (vqrdmladhxq_m_s8): Remove.
5291 (vqrdmladhxq_m_s32): Remove.
5292 (vqrdmladhxq_m_s16): Remove.
5293 (vqrdmlsdhq_m_s8): Remove.
5294 (vqrdmlsdhq_m_s32): Remove.
5295 (vqrdmlsdhq_m_s16): Remove.
5296 (vqrdmlsdhxq_m_s8): Remove.
5297 (vqrdmlsdhxq_m_s32): Remove.
5298 (vqrdmlsdhxq_m_s16): Remove.
5299 (__arm_vqrdmlsdhxq_s8): Remove.
5300 (__arm_vqrdmlsdhq_s8): Remove.
5301 (__arm_vqrdmladhxq_s8): Remove.
5302 (__arm_vqrdmladhq_s8): Remove.
5303 (__arm_vqdmlsdhxq_s8): Remove.
5304 (__arm_vqdmlsdhq_s8): Remove.
5305 (__arm_vqdmladhxq_s8): Remove.
5306 (__arm_vqdmladhq_s8): Remove.
5307 (__arm_vqrdmlsdhxq_s16): Remove.
5308 (__arm_vqrdmlsdhq_s16): Remove.
5309 (__arm_vqrdmladhxq_s16): Remove.
5310 (__arm_vqrdmladhq_s16): Remove.
5311 (__arm_vqdmlsdhxq_s16): Remove.
5312 (__arm_vqdmlsdhq_s16): Remove.
5313 (__arm_vqdmladhxq_s16): Remove.
5314 (__arm_vqdmladhq_s16): Remove.
5315 (__arm_vqrdmlsdhxq_s32): Remove.
5316 (__arm_vqrdmlsdhq_s32): Remove.
5317 (__arm_vqrdmladhxq_s32): Remove.
5318 (__arm_vqrdmladhq_s32): Remove.
5319 (__arm_vqdmlsdhxq_s32): Remove.
5320 (__arm_vqdmlsdhq_s32): Remove.
5321 (__arm_vqdmladhxq_s32): Remove.
5322 (__arm_vqdmladhq_s32): Remove.
5323 (__arm_vqdmladhq_m_s8): Remove.
5324 (__arm_vqdmladhq_m_s32): Remove.
5325 (__arm_vqdmladhq_m_s16): Remove.
5326 (__arm_vqdmladhxq_m_s8): Remove.
5327 (__arm_vqdmladhxq_m_s32): Remove.
5328 (__arm_vqdmladhxq_m_s16): Remove.
5329 (__arm_vqdmlsdhq_m_s8): Remove.
5330 (__arm_vqdmlsdhq_m_s32): Remove.
5331 (__arm_vqdmlsdhq_m_s16): Remove.
5332 (__arm_vqdmlsdhxq_m_s8): Remove.
5333 (__arm_vqdmlsdhxq_m_s32): Remove.
5334 (__arm_vqdmlsdhxq_m_s16): Remove.
5335 (__arm_vqrdmladhq_m_s8): Remove.
5336 (__arm_vqrdmladhq_m_s32): Remove.
5337 (__arm_vqrdmladhq_m_s16): Remove.
5338 (__arm_vqrdmladhxq_m_s8): Remove.
5339 (__arm_vqrdmladhxq_m_s32): Remove.
5340 (__arm_vqrdmladhxq_m_s16): Remove.
5341 (__arm_vqrdmlsdhq_m_s8): Remove.
5342 (__arm_vqrdmlsdhq_m_s32): Remove.
5343 (__arm_vqrdmlsdhq_m_s16): Remove.
5344 (__arm_vqrdmlsdhxq_m_s8): Remove.
5345 (__arm_vqrdmlsdhxq_m_s32): Remove.
5346 (__arm_vqrdmlsdhxq_m_s16): Remove.
5347 (__arm_vqrdmlsdhxq): Remove.
5348 (__arm_vqrdmlsdhq): Remove.
5349 (__arm_vqrdmladhxq): Remove.
5350 (__arm_vqrdmladhq): Remove.
5351 (__arm_vqdmlsdhxq): Remove.
5352 (__arm_vqdmlsdhq): Remove.
5353 (__arm_vqdmladhxq): Remove.
5354 (__arm_vqdmladhq): Remove.
5355 (__arm_vqdmladhq_m): Remove.
5356 (__arm_vqdmladhxq_m): Remove.
5357 (__arm_vqdmlsdhq_m): Remove.
5358 (__arm_vqdmlsdhxq_m): Remove.
5359 (__arm_vqrdmladhq_m): Remove.
5360 (__arm_vqrdmladhxq_m): Remove.
5361 (__arm_vqrdmlsdhq_m): Remove.
5362 (__arm_vqrdmlsdhxq_m): Remove.
5363
5364 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5365
5366 * config/arm/iterators.md (MVE_VQxDMLxDHxQ_S): New.
5367 (mve_insn): Add vqdmladh, vqdmladhx, vqdmlsdh, vqdmlsdhx,
5368 vqrdmladh, vqrdmladhx, vqrdmlsdh, vqrdmlsdhx.
5369 (supf): Add VQDMLADHQ_S, VQDMLADHXQ_S, VQDMLSDHQ_S, VQDMLSDHXQ_S,
5370 VQRDMLADHQ_S,VQRDMLADHXQ_S, VQRDMLSDHQ_S, VQRDMLSDHXQ_S.
5371 * config/arm/mve.md (mve_vqrdmladhq_s<mode>)
5372 (mve_vqrdmladhxq_s<mode>, mve_vqrdmlsdhq_s<mode>)
5373 (mve_vqrdmlsdhxq_s<mode>, mve_vqdmlsdhxq_s<mode>)
5374 (mve_vqdmlsdhq_s<mode>, mve_vqdmladhxq_s<mode>)
5375 (mve_vqdmladhq_s<mode>): Merge into ...
5376 (@mve_<mve_insn>q_<supf><mode>): ... this.
5377
5378 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5379
5380 * config/arm/arm-mve-builtins-shapes.cc (ternary): New.
5381 * config/arm/arm-mve-builtins-shapes.h (ternary): New.
5382
5383 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5384
5385 * config/arm/arm-mve-builtins-base.cc (vmlaldavaq, vmlaldavaxq)
5386 (vmlsldavaq, vmlsldavaxq): New.
5387 * config/arm/arm-mve-builtins-base.def (vmlaldavaq, vmlaldavaxq)
5388 (vmlsldavaq, vmlsldavaxq): New.
5389 * config/arm/arm-mve-builtins-base.h (vmlaldavaq, vmlaldavaxq)
5390 (vmlsldavaq, vmlsldavaxq): New.
5391 * config/arm/arm_mve.h (vmlaldavaq): Remove.
5392 (vmlaldavaxq): Remove.
5393 (vmlsldavaq): Remove.
5394 (vmlsldavaxq): Remove.
5395 (vmlaldavaq_p): Remove.
5396 (vmlaldavaxq_p): Remove.
5397 (vmlsldavaq_p): Remove.
5398 (vmlsldavaxq_p): Remove.
5399 (vmlaldavaq_s16): Remove.
5400 (vmlaldavaxq_s16): Remove.
5401 (vmlsldavaq_s16): Remove.
5402 (vmlsldavaxq_s16): Remove.
5403 (vmlaldavaq_u16): Remove.
5404 (vmlaldavaq_s32): Remove.
5405 (vmlaldavaxq_s32): Remove.
5406 (vmlsldavaq_s32): Remove.
5407 (vmlsldavaxq_s32): Remove.
5408 (vmlaldavaq_u32): Remove.
5409 (vmlaldavaq_p_s32): Remove.
5410 (vmlaldavaq_p_s16): Remove.
5411 (vmlaldavaq_p_u32): Remove.
5412 (vmlaldavaq_p_u16): Remove.
5413 (vmlaldavaxq_p_s32): Remove.
5414 (vmlaldavaxq_p_s16): Remove.
5415 (vmlsldavaq_p_s32): Remove.
5416 (vmlsldavaq_p_s16): Remove.
5417 (vmlsldavaxq_p_s32): Remove.
5418 (vmlsldavaxq_p_s16): Remove.
5419 (__arm_vmlaldavaq_s16): Remove.
5420 (__arm_vmlaldavaxq_s16): Remove.
5421 (__arm_vmlsldavaq_s16): Remove.
5422 (__arm_vmlsldavaxq_s16): Remove.
5423 (__arm_vmlaldavaq_u16): Remove.
5424 (__arm_vmlaldavaq_s32): Remove.
5425 (__arm_vmlaldavaxq_s32): Remove.
5426 (__arm_vmlsldavaq_s32): Remove.
5427 (__arm_vmlsldavaxq_s32): Remove.
5428 (__arm_vmlaldavaq_u32): Remove.
5429 (__arm_vmlaldavaq_p_s32): Remove.
5430 (__arm_vmlaldavaq_p_s16): Remove.
5431 (__arm_vmlaldavaq_p_u32): Remove.
5432 (__arm_vmlaldavaq_p_u16): Remove.
5433 (__arm_vmlaldavaxq_p_s32): Remove.
5434 (__arm_vmlaldavaxq_p_s16): Remove.
5435 (__arm_vmlsldavaq_p_s32): Remove.
5436 (__arm_vmlsldavaq_p_s16): Remove.
5437 (__arm_vmlsldavaxq_p_s32): Remove.
5438 (__arm_vmlsldavaxq_p_s16): Remove.
5439 (__arm_vmlaldavaq): Remove.
5440 (__arm_vmlaldavaxq): Remove.
5441 (__arm_vmlsldavaq): Remove.
5442 (__arm_vmlsldavaxq): Remove.
5443 (__arm_vmlaldavaq_p): Remove.
5444 (__arm_vmlaldavaxq_p): Remove.
5445 (__arm_vmlsldavaq_p): Remove.
5446 (__arm_vmlsldavaxq_p): Remove.
5447
5448 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5449
5450 * config/arm/iterators.md (MVE_VMLxLDAVAxQ, MVE_VMLxLDAVAxQ_P):
5451 New.
5452 (mve_insn): Add vmlaldava, vmlaldavax, vmlsldava, vmlsldavax.
5453 (supf): Add VMLALDAVAXQ_P_S, VMLALDAVAXQ_S, VMLSLDAVAQ_P_S,
5454 VMLSLDAVAQ_S, VMLSLDAVAXQ_P_S, VMLSLDAVAXQ_S.
5455 * config/arm/mve.md (mve_vmlaldavaq_<supf><mode>)
5456 (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
5457 (mve_vmlaldavaxq_s<mode>): Merge into ...
5458 (@mve_<mve_insn>q_<supf><mode>): ... this.
5459 (mve_vmlaldavaq_p_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>)
5460 (mve_vmlsldavaq_p_s<mode>, mve_vmlsldavaxq_p_s<mode>): Merge into
5461 ...
5462 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
5463
5464 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5465
5466 * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int64): New.
5467 * config/arm/arm-mve-builtins-shapes.h (binary_acca_int64): New.
5468
5469 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5470
5471 * config/arm/arm-mve-builtins-base.cc (vrmlaldavhq, vrmlaldavhxq)
5472 (vrmlsldavhq, vrmlsldavhxq): New.
5473 * config/arm/arm-mve-builtins-base.def (vrmlaldavhq, vrmlaldavhxq)
5474 (vrmlsldavhq, vrmlsldavhxq): New.
5475 * config/arm/arm-mve-builtins-base.h (vrmlaldavhq, vrmlaldavhxq)
5476 (vrmlsldavhq, vrmlsldavhxq): New.
5477 * config/arm/arm-mve-builtins-functions.h
5478 (unspec_mve_function_exact_insn_pred_p): Handle vrmlaldavhq,
5479 vrmlaldavhxq, vrmlsldavhq, vrmlsldavhxq.
5480 * config/arm/arm_mve.h (vrmlaldavhq): Remove.
5481 (vrmlsldavhxq): Remove.
5482 (vrmlsldavhq): Remove.
5483 (vrmlaldavhxq): Remove.
5484 (vrmlaldavhq_p): Remove.
5485 (vrmlaldavhxq_p): Remove.
5486 (vrmlsldavhq_p): Remove.
5487 (vrmlsldavhxq_p): Remove.
5488 (vrmlaldavhq_u32): Remove.
5489 (vrmlsldavhxq_s32): Remove.
5490 (vrmlsldavhq_s32): Remove.
5491 (vrmlaldavhxq_s32): Remove.
5492 (vrmlaldavhq_s32): Remove.
5493 (vrmlaldavhq_p_s32): Remove.
5494 (vrmlaldavhxq_p_s32): Remove.
5495 (vrmlsldavhq_p_s32): Remove.
5496 (vrmlsldavhxq_p_s32): Remove.
5497 (vrmlaldavhq_p_u32): Remove.
5498 (__arm_vrmlaldavhq_u32): Remove.
5499 (__arm_vrmlsldavhxq_s32): Remove.
5500 (__arm_vrmlsldavhq_s32): Remove.
5501 (__arm_vrmlaldavhxq_s32): Remove.
5502 (__arm_vrmlaldavhq_s32): Remove.
5503 (__arm_vrmlaldavhq_p_s32): Remove.
5504 (__arm_vrmlaldavhxq_p_s32): Remove.
5505 (__arm_vrmlsldavhq_p_s32): Remove.
5506 (__arm_vrmlsldavhxq_p_s32): Remove.
5507 (__arm_vrmlaldavhq_p_u32): Remove.
5508 (__arm_vrmlaldavhq): Remove.
5509 (__arm_vrmlsldavhxq): Remove.
5510 (__arm_vrmlsldavhq): Remove.
5511 (__arm_vrmlaldavhxq): Remove.
5512 (__arm_vrmlaldavhq_p): Remove.
5513 (__arm_vrmlaldavhxq_p): Remove.
5514 (__arm_vrmlsldavhq_p): Remove.
5515 (__arm_vrmlsldavhxq_p): Remove.
5516
5517 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5518
5519 * config/arm/iterators.md (MVE_VRMLxLDAVxQ, MVE_VRMLxLDAVHxQ_P):
5520 New.
5521 (mve_insn): Add vrmlaldavh, vrmlaldavhx, vrmlsldavh, vrmlsldavhx.
5522 (supf): Add VRMLALDAVHXQ_P_S, VRMLALDAVHXQ_S, VRMLSLDAVHQ_P_S,
5523 VRMLSLDAVHQ_S, VRMLSLDAVHXQ_P_S, VRMLSLDAVHXQ_S.
5524 * config/arm/mve.md (mve_vrmlaldavhxq_sv4si)
5525 (mve_vrmlsldavhq_sv4si, mve_vrmlsldavhxq_sv4si)
5526 (mve_vrmlaldavhq_<supf>v4si): Merge into ...
5527 (@mve_<mve_insn>q_<supf>v4si): ... this.
5528 (mve_vrmlaldavhxq_p_sv4si, mve_vrmlsldavhq_p_sv4si)
5529 (mve_vrmlsldavhxq_p_sv4si, mve_vrmlaldavhq_p_<supf>v4si): Merge
5530 into ...
5531 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
5532
5533 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5534
5535 * config/arm/arm-mve-builtins-base.cc (vmlaldavq, vmlaldavxq)
5536 (vmlsldavq, vmlsldavxq): New.
5537 * config/arm/arm-mve-builtins-base.def (vmlaldavq, vmlaldavxq)
5538 (vmlsldavq, vmlsldavxq): New.
5539 * config/arm/arm-mve-builtins-base.h (vmlaldavq, vmlaldavxq)
5540 (vmlsldavq, vmlsldavxq): New.
5541 * config/arm/arm_mve.h (vmlaldavq): Remove.
5542 (vmlsldavxq): Remove.
5543 (vmlsldavq): Remove.
5544 (vmlaldavxq): Remove.
5545 (vmlaldavq_p): Remove.
5546 (vmlaldavxq_p): Remove.
5547 (vmlsldavq_p): Remove.
5548 (vmlsldavxq_p): Remove.
5549 (vmlaldavq_u16): Remove.
5550 (vmlsldavxq_s16): Remove.
5551 (vmlsldavq_s16): Remove.
5552 (vmlaldavxq_s16): Remove.
5553 (vmlaldavq_s16): Remove.
5554 (vmlaldavq_u32): Remove.
5555 (vmlsldavxq_s32): Remove.
5556 (vmlsldavq_s32): Remove.
5557 (vmlaldavxq_s32): Remove.
5558 (vmlaldavq_s32): Remove.
5559 (vmlaldavq_p_s16): Remove.
5560 (vmlaldavxq_p_s16): Remove.
5561 (vmlsldavq_p_s16): Remove.
5562 (vmlsldavxq_p_s16): Remove.
5563 (vmlaldavq_p_u16): Remove.
5564 (vmlaldavq_p_s32): Remove.
5565 (vmlaldavxq_p_s32): Remove.
5566 (vmlsldavq_p_s32): Remove.
5567 (vmlsldavxq_p_s32): Remove.
5568 (vmlaldavq_p_u32): Remove.
5569 (__arm_vmlaldavq_u16): Remove.
5570 (__arm_vmlsldavxq_s16): Remove.
5571 (__arm_vmlsldavq_s16): Remove.
5572 (__arm_vmlaldavxq_s16): Remove.
5573 (__arm_vmlaldavq_s16): Remove.
5574 (__arm_vmlaldavq_u32): Remove.
5575 (__arm_vmlsldavxq_s32): Remove.
5576 (__arm_vmlsldavq_s32): Remove.
5577 (__arm_vmlaldavxq_s32): Remove.
5578 (__arm_vmlaldavq_s32): Remove.
5579 (__arm_vmlaldavq_p_s16): Remove.
5580 (__arm_vmlaldavxq_p_s16): Remove.
5581 (__arm_vmlsldavq_p_s16): Remove.
5582 (__arm_vmlsldavxq_p_s16): Remove.
5583 (__arm_vmlaldavq_p_u16): Remove.
5584 (__arm_vmlaldavq_p_s32): Remove.
5585 (__arm_vmlaldavxq_p_s32): Remove.
5586 (__arm_vmlsldavq_p_s32): Remove.
5587 (__arm_vmlsldavxq_p_s32): Remove.
5588 (__arm_vmlaldavq_p_u32): Remove.
5589 (__arm_vmlaldavq): Remove.
5590 (__arm_vmlsldavxq): Remove.
5591 (__arm_vmlsldavq): Remove.
5592 (__arm_vmlaldavxq): Remove.
5593 (__arm_vmlaldavq_p): Remove.
5594 (__arm_vmlaldavxq_p): Remove.
5595 (__arm_vmlsldavq_p): Remove.
5596 (__arm_vmlsldavxq_p): Remove.
5597
5598 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5599
5600 * config/arm/iterators.md (MVE_VMLxLDAVxQ, MVE_VMLxLDAVxQ_P): New.
5601 (mve_insn): Add vmlaldav, vmlaldavx, vmlsldav, vmlsldavx.
5602 (supf): Add VMLALDAVXQ_S, VMLSLDAVQ_S, VMLSLDAVXQ_S,
5603 VMLALDAVXQ_P_S, VMLSLDAVQ_P_S, VMLSLDAVXQ_P_S.
5604 * config/arm/mve.md (mve_vmlaldavq_<supf><mode>)
5605 (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
5606 (mve_vmlsldavxq_s<mode>): Merge into ...
5607 (@mve_<mve_insn>q_<supf><mode>): ... this.
5608 (mve_vmlaldavq_p_<supf><mode>, mve_vmlaldavxq_p_s<mode>)
5609 (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>): Merge into
5610 ...
5611 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
5612
5613 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5614
5615 * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int64): New.
5616 * config/arm/arm-mve-builtins-shapes.h (binary_acc_int64): New.
5617
5618 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5619
5620 * config/arm/arm-mve-builtins-base.cc (vabavq): New.
5621 * config/arm/arm-mve-builtins-base.def (vabavq): New.
5622 * config/arm/arm-mve-builtins-base.h (vabavq): New.
5623 * config/arm/arm_mve.h (vabavq): Remove.
5624 (vabavq_p): Remove.
5625 (vabavq_s8): Remove.
5626 (vabavq_s16): Remove.
5627 (vabavq_s32): Remove.
5628 (vabavq_u8): Remove.
5629 (vabavq_u16): Remove.
5630 (vabavq_u32): Remove.
5631 (vabavq_p_s8): Remove.
5632 (vabavq_p_u8): Remove.
5633 (vabavq_p_s16): Remove.
5634 (vabavq_p_u16): Remove.
5635 (vabavq_p_s32): Remove.
5636 (vabavq_p_u32): Remove.
5637 (__arm_vabavq_s8): Remove.
5638 (__arm_vabavq_s16): Remove.
5639 (__arm_vabavq_s32): Remove.
5640 (__arm_vabavq_u8): Remove.
5641 (__arm_vabavq_u16): Remove.
5642 (__arm_vabavq_u32): Remove.
5643 (__arm_vabavq_p_s8): Remove.
5644 (__arm_vabavq_p_u8): Remove.
5645 (__arm_vabavq_p_s16): Remove.
5646 (__arm_vabavq_p_u16): Remove.
5647 (__arm_vabavq_p_s32): Remove.
5648 (__arm_vabavq_p_u32): Remove.
5649 (__arm_vabavq): Remove.
5650 (__arm_vabavq_p): Remove.
5651
5652 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5653
5654 * config/arm/iterators.md (mve_insn): Add vabav.
5655 * config/arm/mve.md (mve_vabavq_<supf><mode>): Rename into ...
5656 (@mve_<mve_insn>q_<supf><mode>): ... this,.
5657 (mve_vabavq_p_<supf><mode>): Rename into ...
5658 (@mve_<mve_insn>q_p_<supf><mode>): ... this,.
5659
5660 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5661
5662 * config/arm/arm-mve-builtins-base.cc (vmladavaxq, vmladavaq)
5663 (vmlsdavaq, vmlsdavaxq): New.
5664 * config/arm/arm-mve-builtins-base.def (vmladavaxq, vmladavaq)
5665 (vmlsdavaq, vmlsdavaxq): New.
5666 * config/arm/arm-mve-builtins-base.h (vmladavaxq, vmladavaq)
5667 (vmlsdavaq, vmlsdavaxq): New.
5668 * config/arm/arm_mve.h (vmladavaq): Remove.
5669 (vmlsdavaxq): Remove.
5670 (vmlsdavaq): Remove.
5671 (vmladavaxq): Remove.
5672 (vmladavaq_p): Remove.
5673 (vmladavaxq_p): Remove.
5674 (vmlsdavaq_p): Remove.
5675 (vmlsdavaxq_p): Remove.
5676 (vmladavaq_u8): Remove.
5677 (vmlsdavaxq_s8): Remove.
5678 (vmlsdavaq_s8): Remove.
5679 (vmladavaxq_s8): Remove.
5680 (vmladavaq_s8): Remove.
5681 (vmladavaq_u16): Remove.
5682 (vmlsdavaxq_s16): Remove.
5683 (vmlsdavaq_s16): Remove.
5684 (vmladavaxq_s16): Remove.
5685 (vmladavaq_s16): Remove.
5686 (vmladavaq_u32): Remove.
5687 (vmlsdavaxq_s32): Remove.
5688 (vmlsdavaq_s32): Remove.
5689 (vmladavaxq_s32): Remove.
5690 (vmladavaq_s32): Remove.
5691 (vmladavaq_p_s8): Remove.
5692 (vmladavaq_p_s32): Remove.
5693 (vmladavaq_p_s16): Remove.
5694 (vmladavaq_p_u8): Remove.
5695 (vmladavaq_p_u32): Remove.
5696 (vmladavaq_p_u16): Remove.
5697 (vmladavaxq_p_s8): Remove.
5698 (vmladavaxq_p_s32): Remove.
5699 (vmladavaxq_p_s16): Remove.
5700 (vmlsdavaq_p_s8): Remove.
5701 (vmlsdavaq_p_s32): Remove.
5702 (vmlsdavaq_p_s16): Remove.
5703 (vmlsdavaxq_p_s8): Remove.
5704 (vmlsdavaxq_p_s32): Remove.
5705 (vmlsdavaxq_p_s16): Remove.
5706 (__arm_vmladavaq_u8): Remove.
5707 (__arm_vmlsdavaxq_s8): Remove.
5708 (__arm_vmlsdavaq_s8): Remove.
5709 (__arm_vmladavaxq_s8): Remove.
5710 (__arm_vmladavaq_s8): Remove.
5711 (__arm_vmladavaq_u16): Remove.
5712 (__arm_vmlsdavaxq_s16): Remove.
5713 (__arm_vmlsdavaq_s16): Remove.
5714 (__arm_vmladavaxq_s16): Remove.
5715 (__arm_vmladavaq_s16): Remove.
5716 (__arm_vmladavaq_u32): Remove.
5717 (__arm_vmlsdavaxq_s32): Remove.
5718 (__arm_vmlsdavaq_s32): Remove.
5719 (__arm_vmladavaxq_s32): Remove.
5720 (__arm_vmladavaq_s32): Remove.
5721 (__arm_vmladavaq_p_s8): Remove.
5722 (__arm_vmladavaq_p_s32): Remove.
5723 (__arm_vmladavaq_p_s16): Remove.
5724 (__arm_vmladavaq_p_u8): Remove.
5725 (__arm_vmladavaq_p_u32): Remove.
5726 (__arm_vmladavaq_p_u16): Remove.
5727 (__arm_vmladavaxq_p_s8): Remove.
5728 (__arm_vmladavaxq_p_s32): Remove.
5729 (__arm_vmladavaxq_p_s16): Remove.
5730 (__arm_vmlsdavaq_p_s8): Remove.
5731 (__arm_vmlsdavaq_p_s32): Remove.
5732 (__arm_vmlsdavaq_p_s16): Remove.
5733 (__arm_vmlsdavaxq_p_s8): Remove.
5734 (__arm_vmlsdavaxq_p_s32): Remove.
5735 (__arm_vmlsdavaxq_p_s16): Remove.
5736 (__arm_vmladavaq): Remove.
5737 (__arm_vmlsdavaxq): Remove.
5738 (__arm_vmlsdavaq): Remove.
5739 (__arm_vmladavaxq): Remove.
5740 (__arm_vmladavaq_p): Remove.
5741 (__arm_vmladavaxq_p): Remove.
5742 (__arm_vmlsdavaq_p): Remove.
5743 (__arm_vmlsdavaxq_p): Remove.
5744
5745 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5746
5747 * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): New.
5748 * config/arm/arm-mve-builtins-shapes.h (binary_acca_int32): New.
5749
5750 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5751
5752 * config/arm/arm-mve-builtins-base.cc (vmladavq, vmladavxq)
5753 (vmlsdavq, vmlsdavxq): New.
5754 * config/arm/arm-mve-builtins-base.def (vmladavq, vmladavxq)
5755 (vmlsdavq, vmlsdavxq): New.
5756 * config/arm/arm-mve-builtins-base.h (vmladavq, vmladavxq)
5757 (vmlsdavq, vmlsdavxq): New.
5758 * config/arm/arm_mve.h (vmladavq): Remove.
5759 (vmlsdavxq): Remove.
5760 (vmlsdavq): Remove.
5761 (vmladavxq): Remove.
5762 (vmladavq_p): Remove.
5763 (vmlsdavxq_p): Remove.
5764 (vmlsdavq_p): Remove.
5765 (vmladavxq_p): Remove.
5766 (vmladavq_u8): Remove.
5767 (vmlsdavxq_s8): Remove.
5768 (vmlsdavq_s8): Remove.
5769 (vmladavxq_s8): Remove.
5770 (vmladavq_s8): Remove.
5771 (vmladavq_u16): Remove.
5772 (vmlsdavxq_s16): Remove.
5773 (vmlsdavq_s16): Remove.
5774 (vmladavxq_s16): Remove.
5775 (vmladavq_s16): Remove.
5776 (vmladavq_u32): Remove.
5777 (vmlsdavxq_s32): Remove.
5778 (vmlsdavq_s32): Remove.
5779 (vmladavxq_s32): Remove.
5780 (vmladavq_s32): Remove.
5781 (vmladavq_p_u8): Remove.
5782 (vmlsdavxq_p_s8): Remove.
5783 (vmlsdavq_p_s8): Remove.
5784 (vmladavxq_p_s8): Remove.
5785 (vmladavq_p_s8): Remove.
5786 (vmladavq_p_u16): Remove.
5787 (vmlsdavxq_p_s16): Remove.
5788 (vmlsdavq_p_s16): Remove.
5789 (vmladavxq_p_s16): Remove.
5790 (vmladavq_p_s16): Remove.
5791 (vmladavq_p_u32): Remove.
5792 (vmlsdavxq_p_s32): Remove.
5793 (vmlsdavq_p_s32): Remove.
5794 (vmladavxq_p_s32): Remove.
5795 (vmladavq_p_s32): Remove.
5796 (__arm_vmladavq_u8): Remove.
5797 (__arm_vmlsdavxq_s8): Remove.
5798 (__arm_vmlsdavq_s8): Remove.
5799 (__arm_vmladavxq_s8): Remove.
5800 (__arm_vmladavq_s8): Remove.
5801 (__arm_vmladavq_u16): Remove.
5802 (__arm_vmlsdavxq_s16): Remove.
5803 (__arm_vmlsdavq_s16): Remove.
5804 (__arm_vmladavxq_s16): Remove.
5805 (__arm_vmladavq_s16): Remove.
5806 (__arm_vmladavq_u32): Remove.
5807 (__arm_vmlsdavxq_s32): Remove.
5808 (__arm_vmlsdavq_s32): Remove.
5809 (__arm_vmladavxq_s32): Remove.
5810 (__arm_vmladavq_s32): Remove.
5811 (__arm_vmladavq_p_u8): Remove.
5812 (__arm_vmlsdavxq_p_s8): Remove.
5813 (__arm_vmlsdavq_p_s8): Remove.
5814 (__arm_vmladavxq_p_s8): Remove.
5815 (__arm_vmladavq_p_s8): Remove.
5816 (__arm_vmladavq_p_u16): Remove.
5817 (__arm_vmlsdavxq_p_s16): Remove.
5818 (__arm_vmlsdavq_p_s16): Remove.
5819 (__arm_vmladavxq_p_s16): Remove.
5820 (__arm_vmladavq_p_s16): Remove.
5821 (__arm_vmladavq_p_u32): Remove.
5822 (__arm_vmlsdavxq_p_s32): Remove.
5823 (__arm_vmlsdavq_p_s32): Remove.
5824 (__arm_vmladavxq_p_s32): Remove.
5825 (__arm_vmladavq_p_s32): Remove.
5826 (__arm_vmladavq): Remove.
5827 (__arm_vmlsdavxq): Remove.
5828 (__arm_vmlsdavq): Remove.
5829 (__arm_vmladavxq): Remove.
5830 (__arm_vmladavq_p): Remove.
5831 (__arm_vmlsdavxq_p): Remove.
5832 (__arm_vmlsdavq_p): Remove.
5833 (__arm_vmladavxq_p): Remove.
5834
5835 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5836
5837 * config/arm/iterators.md (MVE_VMLxDAVQ, MVE_VMLxDAVQ_P)
5838 (MVE_VMLxDAVAQ, MVE_VMLxDAVAQ_P): New.
5839 (mve_insn): Add vmladava, vmladavax, vmladav, vmladavx, vmlsdava,
5840 vmlsdavax, vmlsdav, vmlsdavx.
5841 (supf): Add VMLADAVAXQ_P_S, VMLADAVAXQ_S, VMLADAVXQ_P_S,
5842 VMLADAVXQ_S, VMLSDAVAQ_P_S, VMLSDAVAQ_S, VMLSDAVAXQ_P_S,
5843 VMLSDAVAXQ_S, VMLSDAVQ_P_S, VMLSDAVQ_S, VMLSDAVXQ_P_S,
5844 VMLSDAVXQ_S.
5845 * config/arm/mve.md (mve_vmladavq_<supf><mode>)
5846 (mve_vmladavxq_s<mode>, mve_vmlsdavq_s<mode>)
5847 (mve_vmlsdavxq_s<mode>): Merge into ...
5848 (@mve_<mve_insn>q_<supf><mode>): ... this.
5849 (mve_vmlsdavaq_s<mode>, mve_vmladavaxq_s<mode>)
5850 (mve_vmlsdavaxq_s<mode>, mve_vmladavaq_<supf><mode>): Merge into
5851 ...
5852 (@mve_<mve_insn>q_<supf><mode>): ... this.
5853 (mve_vmladavq_p_<supf><mode>, mve_vmladavxq_p_s<mode>)
5854 (mve_vmlsdavq_p_s<mode>, mve_vmlsdavxq_p_s<mode>): Merge into ...
5855 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
5856 (mve_vmladavaq_p_<supf><mode>, mve_vmladavaxq_p_s<mode>)
5857 (mve_vmlsdavaq_p_s<mode>, mve_vmlsdavaxq_p_s<mode>): Merge into
5858 ...
5859 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
5860
5861 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5862
5863 * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int32): New.
5864 * config/arm/arm-mve-builtins-shapes.h (binary_acc_int32): New.
5865
5866 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5867
5868 * config/arm/arm-mve-builtins-base.cc (vaddlvaq): New.
5869 * config/arm/arm-mve-builtins-base.def (vaddlvaq): New.
5870 * config/arm/arm-mve-builtins-base.h (vaddlvaq): New.
5871 * config/arm/arm_mve.h (vaddlvaq): Remove.
5872 (vaddlvaq_p): Remove.
5873 (vaddlvaq_u32): Remove.
5874 (vaddlvaq_s32): Remove.
5875 (vaddlvaq_p_s32): Remove.
5876 (vaddlvaq_p_u32): Remove.
5877 (__arm_vaddlvaq_u32): Remove.
5878 (__arm_vaddlvaq_s32): Remove.
5879 (__arm_vaddlvaq_p_s32): Remove.
5880 (__arm_vaddlvaq_p_u32): Remove.
5881 (__arm_vaddlvaq): Remove.
5882 (__arm_vaddlvaq_p): Remove.
5883
5884 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5885
5886 * config/arm/arm-mve-builtins-shapes.cc (unary_widen_acc): New.
5887 * config/arm/arm-mve-builtins-shapes.h (unary_widen_acc): New.
5888
5889 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5890
5891 * config/arm/iterators.md (mve_insn): Add vaddlva.
5892 * config/arm/mve.md (mve_vaddlvaq_<supf>v4si): Rename into ...
5893 (@mve_<mve_insn>q_<supf>v4si): ... this.
5894 (mve_vaddlvaq_p_<supf>v4si): Rename into ...
5895 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
5896
5897 2023-05-11 Uros Bizjak <ubizjak@gmail.com>
5898
5899 PR target/109807
5900 * config/i386/i386.cc (ix86_widen_mult_cost):
5901 Handle V4HImode and V2SImode.
5902
5903 2023-05-11 Andrew Pinski <apinski@marvell.com>
5904
5905 * tree-ssa-dce.cc (simple_dce_from_worklist): For ssa names
5906 defined by a phi node with more than one uses, allow for the
5907 only uses are in that same defining statement.
5908
5909 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
5910
5911 * config/riscv/riscv.cc (riscv_const_insns): Add permissible
5912 vector constants.
5913
5914 2023-05-11 Pan Li <pan2.li@intel.com>
5915
5916 * config/riscv/vector.md: Add comments for simplifying to vmset.
5917
5918 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
5919
5920 * config/riscv/autovec.md (<optab><mode>3): Add scalar shift
5921 pattern.
5922 (v<optab><mode>3): Add vector shift pattern.
5923 * config/riscv/vector-iterators.md: New iterator.
5924
5925 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
5926
5927 * config/riscv/autovec.md: Use renamed functions.
5928 * config/riscv/riscv-protos.h (emit_vlmax_op): Rename.
5929 (emit_vlmax_reg_op): To this.
5930 (emit_nonvlmax_op): Rename.
5931 (emit_len_op): To this.
5932 (emit_nonvlmax_binop): Rename.
5933 (emit_len_binop): To this.
5934 * config/riscv/riscv-v.cc (emit_pred_op): Add default parameter.
5935 (emit_pred_binop): Remove vlmax_p.
5936 (emit_vlmax_op): Rename.
5937 (emit_vlmax_reg_op): To this.
5938 (emit_nonvlmax_op): Rename.
5939 (emit_len_op): To this.
5940 (emit_nonvlmax_binop): Rename.
5941 (emit_len_binop): To this.
5942 (sew64_scalar_helper): Use renamed functions.
5943 (expand_tuple_move): Use renamed functions.
5944 * config/riscv/riscv.cc (vector_zero_call_used_regs): Use
5945 renamed functions.
5946 * config/riscv/vector.md: Use renamed functions.
5947
5948 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
5949 Michael Collison <collison@rivosinc.com>
5950
5951 * config/riscv/autovec.md (<optab><mode>3): Add integer binops.
5952 * config/riscv/riscv-protos.h (emit_nonvlmax_binop): Declare.
5953 * config/riscv/riscv-v.cc (emit_pred_op): New function.
5954 (set_expander_dest_and_mask): New function.
5955 (emit_pred_binop): New function.
5956 (emit_nonvlmax_binop): New function.
5957
5958 2023-05-11 Pan Li <pan2.li@intel.com>
5959
5960 * cfgloopmanip.cc (create_empty_loop_on_edge): Add PLUS_EXPR.
5961 * gimple-loop-interchange.cc
5962 (tree_loop_interchange::map_inductions_to_loop): Ditto.
5963 * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Ditto.
5964 * tree-ssa-loop-ivopts.cc (create_new_iv): Ditto.
5965 * tree-ssa-loop-manip.cc (create_iv): Ditto.
5966 (tree_transform_and_unroll_loop): Ditto.
5967 (canonicalize_loop_ivs): Ditto.
5968 * tree-ssa-loop-manip.h (create_iv): Ditto.
5969 * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Ditto.
5970 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly):
5971 Ditto.
5972 (vect_set_loop_condition_normal): Ditto.
5973 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Ditto.
5974 * tree-vect-stmts.cc (vectorizable_store): Ditto.
5975 (vectorizable_load): Ditto.
5976
5977 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5978
5979 * config/arm/arm-mve-builtins-base.cc (vmovlbq, vmovltq): New.
5980 * config/arm/arm-mve-builtins-base.def (vmovlbq, vmovltq): New.
5981 * config/arm/arm-mve-builtins-base.h (vmovlbq, vmovltq): New.
5982 * config/arm/arm_mve.h (vmovlbq): Remove.
5983 (vmovltq): Remove.
5984 (vmovlbq_m): Remove.
5985 (vmovltq_m): Remove.
5986 (vmovlbq_x): Remove.
5987 (vmovltq_x): Remove.
5988 (vmovlbq_s8): Remove.
5989 (vmovlbq_s16): Remove.
5990 (vmovltq_s8): Remove.
5991 (vmovltq_s16): Remove.
5992 (vmovltq_u8): Remove.
5993 (vmovltq_u16): Remove.
5994 (vmovlbq_u8): Remove.
5995 (vmovlbq_u16): Remove.
5996 (vmovlbq_m_s8): Remove.
5997 (vmovltq_m_s8): Remove.
5998 (vmovlbq_m_u8): Remove.
5999 (vmovltq_m_u8): Remove.
6000 (vmovlbq_m_s16): Remove.
6001 (vmovltq_m_s16): Remove.
6002 (vmovlbq_m_u16): Remove.
6003 (vmovltq_m_u16): Remove.
6004 (vmovlbq_x_s8): Remove.
6005 (vmovlbq_x_s16): Remove.
6006 (vmovlbq_x_u8): Remove.
6007 (vmovlbq_x_u16): Remove.
6008 (vmovltq_x_s8): Remove.
6009 (vmovltq_x_s16): Remove.
6010 (vmovltq_x_u8): Remove.
6011 (vmovltq_x_u16): Remove.
6012 (__arm_vmovlbq_s8): Remove.
6013 (__arm_vmovlbq_s16): Remove.
6014 (__arm_vmovltq_s8): Remove.
6015 (__arm_vmovltq_s16): Remove.
6016 (__arm_vmovltq_u8): Remove.
6017 (__arm_vmovltq_u16): Remove.
6018 (__arm_vmovlbq_u8): Remove.
6019 (__arm_vmovlbq_u16): Remove.
6020 (__arm_vmovlbq_m_s8): Remove.
6021 (__arm_vmovltq_m_s8): Remove.
6022 (__arm_vmovlbq_m_u8): Remove.
6023 (__arm_vmovltq_m_u8): Remove.
6024 (__arm_vmovlbq_m_s16): Remove.
6025 (__arm_vmovltq_m_s16): Remove.
6026 (__arm_vmovlbq_m_u16): Remove.
6027 (__arm_vmovltq_m_u16): Remove.
6028 (__arm_vmovlbq_x_s8): Remove.
6029 (__arm_vmovlbq_x_s16): Remove.
6030 (__arm_vmovlbq_x_u8): Remove.
6031 (__arm_vmovlbq_x_u16): Remove.
6032 (__arm_vmovltq_x_s8): Remove.
6033 (__arm_vmovltq_x_s16): Remove.
6034 (__arm_vmovltq_x_u8): Remove.
6035 (__arm_vmovltq_x_u16): Remove.
6036 (__arm_vmovlbq): Remove.
6037 (__arm_vmovltq): Remove.
6038 (__arm_vmovlbq_m): Remove.
6039 (__arm_vmovltq_m): Remove.
6040 (__arm_vmovlbq_x): Remove.
6041 (__arm_vmovltq_x): Remove.
6042
6043 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6044
6045 * config/arm/arm-mve-builtins-shapes.cc (unary_widen): New.
6046 * config/arm/arm-mve-builtins-shapes.h (unary_widen): New.
6047
6048 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6049
6050 * config/arm/iterators.md (mve_insn): Add vmovlb, vmovlt.
6051 (VMOVLBQ, VMOVLTQ): Merge into ...
6052 (VMOVLxQ): ... this.
6053 (VMOVLTQ_M, VMOVLBQ_M): Merge into ...
6054 (VMOVLxQ_M): ... this.
6055 * config/arm/mve.md (mve_vmovltq_<supf><mode>)
6056 (mve_vmovlbq_<supf><mode>): Merge into ...
6057 (@mve_<mve_insn>q_<supf><mode>): ... this.
6058 (mve_vmovlbq_m_<supf><mode>, mve_vmovltq_m_<supf><mode>): Merge
6059 into ...
6060 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
6061
6062 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6063
6064 * config/arm/arm-mve-builtins-base.cc (vaddlvq): New.
6065 * config/arm/arm-mve-builtins-base.def (vaddlvq): New.
6066 * config/arm/arm-mve-builtins-base.h (vaddlvq): New.
6067 * config/arm/arm-mve-builtins-functions.h
6068 (unspec_mve_function_exact_insn_pred_p): Handle vaddlvq.
6069 * config/arm/arm_mve.h (vaddlvq): Remove.
6070 (vaddlvq_p): Remove.
6071 (vaddlvq_s32): Remove.
6072 (vaddlvq_u32): Remove.
6073 (vaddlvq_p_s32): Remove.
6074 (vaddlvq_p_u32): Remove.
6075 (__arm_vaddlvq_s32): Remove.
6076 (__arm_vaddlvq_u32): Remove.
6077 (__arm_vaddlvq_p_s32): Remove.
6078 (__arm_vaddlvq_p_u32): Remove.
6079 (__arm_vaddlvq): Remove.
6080 (__arm_vaddlvq_p): Remove.
6081
6082 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6083
6084 * config/arm/iterators.md (mve_insn): Add vaddlv.
6085 * config/arm/mve.md (mve_vaddlvq_<supf>v4si): Rename into ...
6086 (@mve_<mve_insn>q_<supf>v4si): ... this.
6087 (mve_vaddlvq_p_<supf>v4si): Rename into ...
6088 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
6089
6090 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6091
6092 * config/arm/arm-mve-builtins-shapes.cc (unary_acc): New.
6093 * config/arm/arm-mve-builtins-shapes.h (unary_acc): New.
6094
6095 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6096
6097 * config/arm/arm-mve-builtins-base.cc (vaddvaq): New.
6098 * config/arm/arm-mve-builtins-base.def (vaddvaq): New.
6099 * config/arm/arm-mve-builtins-base.h (vaddvaq): New.
6100 * config/arm/arm_mve.h (vaddvaq): Remove.
6101 (vaddvaq_p): Remove.
6102 (vaddvaq_u8): Remove.
6103 (vaddvaq_s8): Remove.
6104 (vaddvaq_u16): Remove.
6105 (vaddvaq_s16): Remove.
6106 (vaddvaq_u32): Remove.
6107 (vaddvaq_s32): Remove.
6108 (vaddvaq_p_u8): Remove.
6109 (vaddvaq_p_s8): Remove.
6110 (vaddvaq_p_u16): Remove.
6111 (vaddvaq_p_s16): Remove.
6112 (vaddvaq_p_u32): Remove.
6113 (vaddvaq_p_s32): Remove.
6114 (__arm_vaddvaq_u8): Remove.
6115 (__arm_vaddvaq_s8): Remove.
6116 (__arm_vaddvaq_u16): Remove.
6117 (__arm_vaddvaq_s16): Remove.
6118 (__arm_vaddvaq_u32): Remove.
6119 (__arm_vaddvaq_s32): Remove.
6120 (__arm_vaddvaq_p_u8): Remove.
6121 (__arm_vaddvaq_p_s8): Remove.
6122 (__arm_vaddvaq_p_u16): Remove.
6123 (__arm_vaddvaq_p_s16): Remove.
6124 (__arm_vaddvaq_p_u32): Remove.
6125 (__arm_vaddvaq_p_s32): Remove.
6126 (__arm_vaddvaq): Remove.
6127 (__arm_vaddvaq_p): Remove.
6128
6129 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6130
6131 * config/arm/arm-mve-builtins-shapes.cc (unary_int32_acc): New.
6132 * config/arm/arm-mve-builtins-shapes.h (unary_int32_acc): New.
6133
6134 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6135
6136 * config/arm/iterators.md (mve_insn): Add vaddva.
6137 * config/arm/mve.md (mve_vaddvaq_<supf><mode>): Rename into ...
6138 (@mve_<mve_insn>q_<supf><mode>): ... this.
6139 (mve_vaddvaq_p_<supf><mode>): Rename into ...
6140 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
6141
6142 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6143
6144 * config/arm/arm-mve-builtins-base.cc (vaddvq): New.
6145 * config/arm/arm-mve-builtins-base.def (vaddvq): New.
6146 * config/arm/arm-mve-builtins-base.h (vaddvq): New.
6147 * config/arm/arm_mve.h (vaddvq): Remove.
6148 (vaddvq_p): Remove.
6149 (vaddvq_s8): Remove.
6150 (vaddvq_s16): Remove.
6151 (vaddvq_s32): Remove.
6152 (vaddvq_u8): Remove.
6153 (vaddvq_u16): Remove.
6154 (vaddvq_u32): Remove.
6155 (vaddvq_p_u8): Remove.
6156 (vaddvq_p_s8): Remove.
6157 (vaddvq_p_u16): Remove.
6158 (vaddvq_p_s16): Remove.
6159 (vaddvq_p_u32): Remove.
6160 (vaddvq_p_s32): Remove.
6161 (__arm_vaddvq_s8): Remove.
6162 (__arm_vaddvq_s16): Remove.
6163 (__arm_vaddvq_s32): Remove.
6164 (__arm_vaddvq_u8): Remove.
6165 (__arm_vaddvq_u16): Remove.
6166 (__arm_vaddvq_u32): Remove.
6167 (__arm_vaddvq_p_u8): Remove.
6168 (__arm_vaddvq_p_s8): Remove.
6169 (__arm_vaddvq_p_u16): Remove.
6170 (__arm_vaddvq_p_s16): Remove.
6171 (__arm_vaddvq_p_u32): Remove.
6172 (__arm_vaddvq_p_s32): Remove.
6173 (__arm_vaddvq): Remove.
6174 (__arm_vaddvq_p): Remove.
6175
6176 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6177
6178 * config/arm/arm-mve-builtins-shapes.cc (unary_int32): New.
6179 * config/arm/arm-mve-builtins-shapes.h (unary_int32): New.
6180
6181 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6182
6183 * config/arm/iterators.md (mve_insn): Add vaddv.
6184 * config/arm/mve.md (@mve_vaddvq_<supf><mode>): Rename into ...
6185 (@mve_<mve_insn>q_<supf><mode>): ... this.
6186 (mve_vaddvq_p_<supf><mode>): Rename into ...
6187 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
6188 * config/arm/vec-common.md: Use gen_mve_q instead of
6189 gen_mve_vaddvq.
6190
6191 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6192
6193 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N): New.
6194 (vdupq): New.
6195 * config/arm/arm-mve-builtins-base.def (vdupq): New.
6196 * config/arm/arm-mve-builtins-base.h: (vdupq): New.
6197 * config/arm/arm_mve.h (vdupq_n): Remove.
6198 (vdupq_m): Remove.
6199 (vdupq_n_f16): Remove.
6200 (vdupq_n_f32): Remove.
6201 (vdupq_n_s8): Remove.
6202 (vdupq_n_s16): Remove.
6203 (vdupq_n_s32): Remove.
6204 (vdupq_n_u8): Remove.
6205 (vdupq_n_u16): Remove.
6206 (vdupq_n_u32): Remove.
6207 (vdupq_m_n_u8): Remove.
6208 (vdupq_m_n_s8): Remove.
6209 (vdupq_m_n_u16): Remove.
6210 (vdupq_m_n_s16): Remove.
6211 (vdupq_m_n_u32): Remove.
6212 (vdupq_m_n_s32): Remove.
6213 (vdupq_m_n_f16): Remove.
6214 (vdupq_m_n_f32): Remove.
6215 (vdupq_x_n_s8): Remove.
6216 (vdupq_x_n_s16): Remove.
6217 (vdupq_x_n_s32): Remove.
6218 (vdupq_x_n_u8): Remove.
6219 (vdupq_x_n_u16): Remove.
6220 (vdupq_x_n_u32): Remove.
6221 (vdupq_x_n_f16): Remove.
6222 (vdupq_x_n_f32): Remove.
6223 (__arm_vdupq_n_s8): Remove.
6224 (__arm_vdupq_n_s16): Remove.
6225 (__arm_vdupq_n_s32): Remove.
6226 (__arm_vdupq_n_u8): Remove.
6227 (__arm_vdupq_n_u16): Remove.
6228 (__arm_vdupq_n_u32): Remove.
6229 (__arm_vdupq_m_n_u8): Remove.
6230 (__arm_vdupq_m_n_s8): Remove.
6231 (__arm_vdupq_m_n_u16): Remove.
6232 (__arm_vdupq_m_n_s16): Remove.
6233 (__arm_vdupq_m_n_u32): Remove.
6234 (__arm_vdupq_m_n_s32): Remove.
6235 (__arm_vdupq_x_n_s8): Remove.
6236 (__arm_vdupq_x_n_s16): Remove.
6237 (__arm_vdupq_x_n_s32): Remove.
6238 (__arm_vdupq_x_n_u8): Remove.
6239 (__arm_vdupq_x_n_u16): Remove.
6240 (__arm_vdupq_x_n_u32): Remove.
6241 (__arm_vdupq_n_f16): Remove.
6242 (__arm_vdupq_n_f32): Remove.
6243 (__arm_vdupq_m_n_f16): Remove.
6244 (__arm_vdupq_m_n_f32): Remove.
6245 (__arm_vdupq_x_n_f16): Remove.
6246 (__arm_vdupq_x_n_f32): Remove.
6247 (__arm_vdupq_n): Remove.
6248 (__arm_vdupq_m): Remove.
6249
6250 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6251
6252 * config/arm/arm-mve-builtins-shapes.cc (unary_n): New.
6253 * config/arm/arm-mve-builtins-shapes.h (unary_n): New.
6254
6255 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6256
6257 * config/arm/iterators.md (MVE_FP_M_N_VDUPQ_ONLY)
6258 (MVE_FP_N_VDUPQ_ONLY): New.
6259 (mve_insn): Add vdupq.
6260 * config/arm/mve.md (mve_vdupq_n_f<mode>): Rename into ...
6261 (@mve_<mve_insn>q_n_f<mode>): ... this.
6262 (mve_vdupq_n_<supf><mode>): Rename into ...
6263 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
6264 (mve_vdupq_m_n_<supf><mode>): Rename into ...
6265 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
6266 (mve_vdupq_m_n_f<mode>): Rename into ...
6267 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
6268
6269 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6270
6271 * config/arm/arm-mve-builtins-base.cc (vrev16q, vrev32q, vrev64q):
6272 New.
6273 * config/arm/arm-mve-builtins-base.def (vrev16q, vrev32q)
6274 (vrev64q): New.
6275 * config/arm/arm-mve-builtins-base.h (vrev16q, vrev32q)
6276 (vrev64q): New.
6277 * config/arm/arm_mve.h (vrev16q): Remove.
6278 (vrev32q): Remove.
6279 (vrev64q): Remove.
6280 (vrev64q_m): Remove.
6281 (vrev16q_m): Remove.
6282 (vrev32q_m): Remove.
6283 (vrev16q_x): Remove.
6284 (vrev32q_x): Remove.
6285 (vrev64q_x): Remove.
6286 (vrev64q_f16): Remove.
6287 (vrev64q_f32): Remove.
6288 (vrev32q_f16): Remove.
6289 (vrev16q_s8): Remove.
6290 (vrev32q_s8): Remove.
6291 (vrev32q_s16): Remove.
6292 (vrev64q_s8): Remove.
6293 (vrev64q_s16): Remove.
6294 (vrev64q_s32): Remove.
6295 (vrev64q_u8): Remove.
6296 (vrev64q_u16): Remove.
6297 (vrev64q_u32): Remove.
6298 (vrev32q_u8): Remove.
6299 (vrev32q_u16): Remove.
6300 (vrev16q_u8): Remove.
6301 (vrev64q_m_u8): Remove.
6302 (vrev64q_m_s8): Remove.
6303 (vrev64q_m_u16): Remove.
6304 (vrev64q_m_s16): Remove.
6305 (vrev64q_m_u32): Remove.
6306 (vrev64q_m_s32): Remove.
6307 (vrev16q_m_s8): Remove.
6308 (vrev32q_m_f16): Remove.
6309 (vrev16q_m_u8): Remove.
6310 (vrev32q_m_s8): Remove.
6311 (vrev64q_m_f16): Remove.
6312 (vrev32q_m_u8): Remove.
6313 (vrev32q_m_s16): Remove.
6314 (vrev64q_m_f32): Remove.
6315 (vrev32q_m_u16): Remove.
6316 (vrev16q_x_s8): Remove.
6317 (vrev16q_x_u8): Remove.
6318 (vrev32q_x_s8): Remove.
6319 (vrev32q_x_s16): Remove.
6320 (vrev32q_x_u8): Remove.
6321 (vrev32q_x_u16): Remove.
6322 (vrev64q_x_s8): Remove.
6323 (vrev64q_x_s16): Remove.
6324 (vrev64q_x_s32): Remove.
6325 (vrev64q_x_u8): Remove.
6326 (vrev64q_x_u16): Remove.
6327 (vrev64q_x_u32): Remove.
6328 (vrev32q_x_f16): Remove.
6329 (vrev64q_x_f16): Remove.
6330 (vrev64q_x_f32): Remove.
6331 (__arm_vrev16q_s8): Remove.
6332 (__arm_vrev32q_s8): Remove.
6333 (__arm_vrev32q_s16): Remove.
6334 (__arm_vrev64q_s8): Remove.
6335 (__arm_vrev64q_s16): Remove.
6336 (__arm_vrev64q_s32): Remove.
6337 (__arm_vrev64q_u8): Remove.
6338 (__arm_vrev64q_u16): Remove.
6339 (__arm_vrev64q_u32): Remove.
6340 (__arm_vrev32q_u8): Remove.
6341 (__arm_vrev32q_u16): Remove.
6342 (__arm_vrev16q_u8): Remove.
6343 (__arm_vrev64q_m_u8): Remove.
6344 (__arm_vrev64q_m_s8): Remove.
6345 (__arm_vrev64q_m_u16): Remove.
6346 (__arm_vrev64q_m_s16): Remove.
6347 (__arm_vrev64q_m_u32): Remove.
6348 (__arm_vrev64q_m_s32): Remove.
6349 (__arm_vrev16q_m_s8): Remove.
6350 (__arm_vrev16q_m_u8): Remove.
6351 (__arm_vrev32q_m_s8): Remove.
6352 (__arm_vrev32q_m_u8): Remove.
6353 (__arm_vrev32q_m_s16): Remove.
6354 (__arm_vrev32q_m_u16): Remove.
6355 (__arm_vrev16q_x_s8): Remove.
6356 (__arm_vrev16q_x_u8): Remove.
6357 (__arm_vrev32q_x_s8): Remove.
6358 (__arm_vrev32q_x_s16): Remove.
6359 (__arm_vrev32q_x_u8): Remove.
6360 (__arm_vrev32q_x_u16): Remove.
6361 (__arm_vrev64q_x_s8): Remove.
6362 (__arm_vrev64q_x_s16): Remove.
6363 (__arm_vrev64q_x_s32): Remove.
6364 (__arm_vrev64q_x_u8): Remove.
6365 (__arm_vrev64q_x_u16): Remove.
6366 (__arm_vrev64q_x_u32): Remove.
6367 (__arm_vrev64q_f16): Remove.
6368 (__arm_vrev64q_f32): Remove.
6369 (__arm_vrev32q_f16): Remove.
6370 (__arm_vrev32q_m_f16): Remove.
6371 (__arm_vrev64q_m_f16): Remove.
6372 (__arm_vrev64q_m_f32): Remove.
6373 (__arm_vrev32q_x_f16): Remove.
6374 (__arm_vrev64q_x_f16): Remove.
6375 (__arm_vrev64q_x_f32): Remove.
6376 (__arm_vrev16q): Remove.
6377 (__arm_vrev32q): Remove.
6378 (__arm_vrev64q): Remove.
6379 (__arm_vrev64q_m): Remove.
6380 (__arm_vrev16q_m): Remove.
6381 (__arm_vrev32q_m): Remove.
6382 (__arm_vrev16q_x): Remove.
6383 (__arm_vrev32q_x): Remove.
6384 (__arm_vrev64q_x): Remove.
6385
6386 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6387
6388 * config/arm/iterators.md (MVE_V8HF, MVE_V16QI)
6389 (MVE_FP_VREV64Q_ONLY, MVE_FP_M_VREV64Q_ONLY, MVE_FP_VREV32Q_ONLY)
6390 (MVE_FP_M_VREV32Q_ONLY): New iterators.
6391 (mve_insn): Add vrev16q, vrev32q, vrev64q.
6392 * config/arm/mve.md (mve_vrev64q_f<mode>): Rename into ...
6393 (@mve_<mve_insn>q_f<mode>): ... this
6394 (mve_vrev32q_fv8hf): Rename into @mve_<mve_insn>q_f<mode>.
6395 (mve_vrev64q_<supf><mode>): Rename into ...
6396 (@mve_<mve_insn>q_<supf><mode>): ... this.
6397 (mve_vrev32q_<supf><mode>): Rename into
6398 @mve_<mve_insn>q_<supf><mode>.
6399 (mve_vrev16q_<supf>v16qi): Rename into
6400 @mve_<mve_insn>q_<supf><mode>.
6401 (mve_vrev64q_m_<supf><mode>): Rename into
6402 @mve_<mve_insn>q_m_<supf><mode>.
6403 (mve_vrev32q_m_fv8hf): Rename into @mve_<mve_insn>q_m_f<mode>.
6404 (mve_vrev32q_m_<supf><mode>): Rename into
6405 @mve_<mve_insn>q_m_<supf><mode>.
6406 (mve_vrev64q_m_f<mode>): Rename into @mve_<mve_insn>q_m_f<mode>.
6407 (mve_vrev16q_m_<supf>v16qi): Rename into
6408 @mve_<mve_insn>q_m_<supf><mode>.
6409
6410 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6411
6412 * config/arm/arm-mve-builtins-base.cc (vcmpeqq, vcmpneq, vcmpgeq)
6413 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
6414 * config/arm/arm-mve-builtins-base.def (vcmpeqq, vcmpneq, vcmpgeq)
6415 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
6416 * config/arm/arm-mve-builtins-base.h (vcmpeqq, vcmpneq, vcmpgeq)
6417 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
6418 * config/arm/arm-mve-builtins-functions.h (class
6419 unspec_based_mve_function_exact_insn_vcmp): New.
6420 * config/arm/arm-mve-builtins.cc
6421 (function_instance::has_inactive_argument): Handle vcmp.
6422 * config/arm/arm_mve.h (vcmpneq): Remove.
6423 (vcmphiq): Remove.
6424 (vcmpeqq): Remove.
6425 (vcmpcsq): Remove.
6426 (vcmpltq): Remove.
6427 (vcmpleq): Remove.
6428 (vcmpgtq): Remove.
6429 (vcmpgeq): Remove.
6430 (vcmpneq_m): Remove.
6431 (vcmphiq_m): Remove.
6432 (vcmpeqq_m): Remove.
6433 (vcmpcsq_m): Remove.
6434 (vcmpcsq_m_n): Remove.
6435 (vcmpltq_m): Remove.
6436 (vcmpleq_m): Remove.
6437 (vcmpgtq_m): Remove.
6438 (vcmpgeq_m): Remove.
6439 (vcmpneq_s8): Remove.
6440 (vcmpneq_s16): Remove.
6441 (vcmpneq_s32): Remove.
6442 (vcmpneq_u8): Remove.
6443 (vcmpneq_u16): Remove.
6444 (vcmpneq_u32): Remove.
6445 (vcmpneq_n_u8): Remove.
6446 (vcmphiq_u8): Remove.
6447 (vcmphiq_n_u8): Remove.
6448 (vcmpeqq_u8): Remove.
6449 (vcmpeqq_n_u8): Remove.
6450 (vcmpcsq_u8): Remove.
6451 (vcmpcsq_n_u8): Remove.
6452 (vcmpneq_n_s8): Remove.
6453 (vcmpltq_s8): Remove.
6454 (vcmpltq_n_s8): Remove.
6455 (vcmpleq_s8): Remove.
6456 (vcmpleq_n_s8): Remove.
6457 (vcmpgtq_s8): Remove.
6458 (vcmpgtq_n_s8): Remove.
6459 (vcmpgeq_s8): Remove.
6460 (vcmpgeq_n_s8): Remove.
6461 (vcmpeqq_s8): Remove.
6462 (vcmpeqq_n_s8): Remove.
6463 (vcmpneq_n_u16): Remove.
6464 (vcmphiq_u16): Remove.
6465 (vcmphiq_n_u16): Remove.
6466 (vcmpeqq_u16): Remove.
6467 (vcmpeqq_n_u16): Remove.
6468 (vcmpcsq_u16): Remove.
6469 (vcmpcsq_n_u16): Remove.
6470 (vcmpneq_n_s16): Remove.
6471 (vcmpltq_s16): Remove.
6472 (vcmpltq_n_s16): Remove.
6473 (vcmpleq_s16): Remove.
6474 (vcmpleq_n_s16): Remove.
6475 (vcmpgtq_s16): Remove.
6476 (vcmpgtq_n_s16): Remove.
6477 (vcmpgeq_s16): Remove.
6478 (vcmpgeq_n_s16): Remove.
6479 (vcmpeqq_s16): Remove.
6480 (vcmpeqq_n_s16): Remove.
6481 (vcmpneq_n_u32): Remove.
6482 (vcmphiq_u32): Remove.
6483 (vcmphiq_n_u32): Remove.
6484 (vcmpeqq_u32): Remove.
6485 (vcmpeqq_n_u32): Remove.
6486 (vcmpcsq_u32): Remove.
6487 (vcmpcsq_n_u32): Remove.
6488 (vcmpneq_n_s32): Remove.
6489 (vcmpltq_s32): Remove.
6490 (vcmpltq_n_s32): Remove.
6491 (vcmpleq_s32): Remove.
6492 (vcmpleq_n_s32): Remove.
6493 (vcmpgtq_s32): Remove.
6494 (vcmpgtq_n_s32): Remove.
6495 (vcmpgeq_s32): Remove.
6496 (vcmpgeq_n_s32): Remove.
6497 (vcmpeqq_s32): Remove.
6498 (vcmpeqq_n_s32): Remove.
6499 (vcmpneq_n_f16): Remove.
6500 (vcmpneq_f16): Remove.
6501 (vcmpltq_n_f16): Remove.
6502 (vcmpltq_f16): Remove.
6503 (vcmpleq_n_f16): Remove.
6504 (vcmpleq_f16): Remove.
6505 (vcmpgtq_n_f16): Remove.
6506 (vcmpgtq_f16): Remove.
6507 (vcmpgeq_n_f16): Remove.
6508 (vcmpgeq_f16): Remove.
6509 (vcmpeqq_n_f16): Remove.
6510 (vcmpeqq_f16): Remove.
6511 (vcmpneq_n_f32): Remove.
6512 (vcmpneq_f32): Remove.
6513 (vcmpltq_n_f32): Remove.
6514 (vcmpltq_f32): Remove.
6515 (vcmpleq_n_f32): Remove.
6516 (vcmpleq_f32): Remove.
6517 (vcmpgtq_n_f32): Remove.
6518 (vcmpgtq_f32): Remove.
6519 (vcmpgeq_n_f32): Remove.
6520 (vcmpgeq_f32): Remove.
6521 (vcmpeqq_n_f32): Remove.
6522 (vcmpeqq_f32): Remove.
6523 (vcmpeqq_m_f16): Remove.
6524 (vcmpeqq_m_f32): Remove.
6525 (vcmpneq_m_u8): Remove.
6526 (vcmpneq_m_n_u8): Remove.
6527 (vcmphiq_m_u8): Remove.
6528 (vcmphiq_m_n_u8): Remove.
6529 (vcmpeqq_m_u8): Remove.
6530 (vcmpeqq_m_n_u8): Remove.
6531 (vcmpcsq_m_u8): Remove.
6532 (vcmpcsq_m_n_u8): Remove.
6533 (vcmpneq_m_s8): Remove.
6534 (vcmpneq_m_n_s8): Remove.
6535 (vcmpltq_m_s8): Remove.
6536 (vcmpltq_m_n_s8): Remove.
6537 (vcmpleq_m_s8): Remove.
6538 (vcmpleq_m_n_s8): Remove.
6539 (vcmpgtq_m_s8): Remove.
6540 (vcmpgtq_m_n_s8): Remove.
6541 (vcmpgeq_m_s8): Remove.
6542 (vcmpgeq_m_n_s8): Remove.
6543 (vcmpeqq_m_s8): Remove.
6544 (vcmpeqq_m_n_s8): Remove.
6545 (vcmpneq_m_u16): Remove.
6546 (vcmpneq_m_n_u16): Remove.
6547 (vcmphiq_m_u16): Remove.
6548 (vcmphiq_m_n_u16): Remove.
6549 (vcmpeqq_m_u16): Remove.
6550 (vcmpeqq_m_n_u16): Remove.
6551 (vcmpcsq_m_u16): Remove.
6552 (vcmpcsq_m_n_u16): Remove.
6553 (vcmpneq_m_s16): Remove.
6554 (vcmpneq_m_n_s16): Remove.
6555 (vcmpltq_m_s16): Remove.
6556 (vcmpltq_m_n_s16): Remove.
6557 (vcmpleq_m_s16): Remove.
6558 (vcmpleq_m_n_s16): Remove.
6559 (vcmpgtq_m_s16): Remove.
6560 (vcmpgtq_m_n_s16): Remove.
6561 (vcmpgeq_m_s16): Remove.
6562 (vcmpgeq_m_n_s16): Remove.
6563 (vcmpeqq_m_s16): Remove.
6564 (vcmpeqq_m_n_s16): Remove.
6565 (vcmpneq_m_u32): Remove.
6566 (vcmpneq_m_n_u32): Remove.
6567 (vcmphiq_m_u32): Remove.
6568 (vcmphiq_m_n_u32): Remove.
6569 (vcmpeqq_m_u32): Remove.
6570 (vcmpeqq_m_n_u32): Remove.
6571 (vcmpcsq_m_u32): Remove.
6572 (vcmpcsq_m_n_u32): Remove.
6573 (vcmpneq_m_s32): Remove.
6574 (vcmpneq_m_n_s32): Remove.
6575 (vcmpltq_m_s32): Remove.
6576 (vcmpltq_m_n_s32): Remove.
6577 (vcmpleq_m_s32): Remove.
6578 (vcmpleq_m_n_s32): Remove.
6579 (vcmpgtq_m_s32): Remove.
6580 (vcmpgtq_m_n_s32): Remove.
6581 (vcmpgeq_m_s32): Remove.
6582 (vcmpgeq_m_n_s32): Remove.
6583 (vcmpeqq_m_s32): Remove.
6584 (vcmpeqq_m_n_s32): Remove.
6585 (vcmpeqq_m_n_f16): Remove.
6586 (vcmpgeq_m_f16): Remove.
6587 (vcmpgeq_m_n_f16): Remove.
6588 (vcmpgtq_m_f16): Remove.
6589 (vcmpgtq_m_n_f16): Remove.
6590 (vcmpleq_m_f16): Remove.
6591 (vcmpleq_m_n_f16): Remove.
6592 (vcmpltq_m_f16): Remove.
6593 (vcmpltq_m_n_f16): Remove.
6594 (vcmpneq_m_f16): Remove.
6595 (vcmpneq_m_n_f16): Remove.
6596 (vcmpeqq_m_n_f32): Remove.
6597 (vcmpgeq_m_f32): Remove.
6598 (vcmpgeq_m_n_f32): Remove.
6599 (vcmpgtq_m_f32): Remove.
6600 (vcmpgtq_m_n_f32): Remove.
6601 (vcmpleq_m_f32): Remove.
6602 (vcmpleq_m_n_f32): Remove.
6603 (vcmpltq_m_f32): Remove.
6604 (vcmpltq_m_n_f32): Remove.
6605 (vcmpneq_m_f32): Remove.
6606 (vcmpneq_m_n_f32): Remove.
6607 (__arm_vcmpneq_s8): Remove.
6608 (__arm_vcmpneq_s16): Remove.
6609 (__arm_vcmpneq_s32): Remove.
6610 (__arm_vcmpneq_u8): Remove.
6611 (__arm_vcmpneq_u16): Remove.
6612 (__arm_vcmpneq_u32): Remove.
6613 (__arm_vcmpneq_n_u8): Remove.
6614 (__arm_vcmphiq_u8): Remove.
6615 (__arm_vcmphiq_n_u8): Remove.
6616 (__arm_vcmpeqq_u8): Remove.
6617 (__arm_vcmpeqq_n_u8): Remove.
6618 (__arm_vcmpcsq_u8): Remove.
6619 (__arm_vcmpcsq_n_u8): Remove.
6620 (__arm_vcmpneq_n_s8): Remove.
6621 (__arm_vcmpltq_s8): Remove.
6622 (__arm_vcmpltq_n_s8): Remove.
6623 (__arm_vcmpleq_s8): Remove.
6624 (__arm_vcmpleq_n_s8): Remove.
6625 (__arm_vcmpgtq_s8): Remove.
6626 (__arm_vcmpgtq_n_s8): Remove.
6627 (__arm_vcmpgeq_s8): Remove.
6628 (__arm_vcmpgeq_n_s8): Remove.
6629 (__arm_vcmpeqq_s8): Remove.
6630 (__arm_vcmpeqq_n_s8): Remove.
6631 (__arm_vcmpneq_n_u16): Remove.
6632 (__arm_vcmphiq_u16): Remove.
6633 (__arm_vcmphiq_n_u16): Remove.
6634 (__arm_vcmpeqq_u16): Remove.
6635 (__arm_vcmpeqq_n_u16): Remove.
6636 (__arm_vcmpcsq_u16): Remove.
6637 (__arm_vcmpcsq_n_u16): Remove.
6638 (__arm_vcmpneq_n_s16): Remove.
6639 (__arm_vcmpltq_s16): Remove.
6640 (__arm_vcmpltq_n_s16): Remove.
6641 (__arm_vcmpleq_s16): Remove.
6642 (__arm_vcmpleq_n_s16): Remove.
6643 (__arm_vcmpgtq_s16): Remove.
6644 (__arm_vcmpgtq_n_s16): Remove.
6645 (__arm_vcmpgeq_s16): Remove.
6646 (__arm_vcmpgeq_n_s16): Remove.
6647 (__arm_vcmpeqq_s16): Remove.
6648 (__arm_vcmpeqq_n_s16): Remove.
6649 (__arm_vcmpneq_n_u32): Remove.
6650 (__arm_vcmphiq_u32): Remove.
6651 (__arm_vcmphiq_n_u32): Remove.
6652 (__arm_vcmpeqq_u32): Remove.
6653 (__arm_vcmpeqq_n_u32): Remove.
6654 (__arm_vcmpcsq_u32): Remove.
6655 (__arm_vcmpcsq_n_u32): Remove.
6656 (__arm_vcmpneq_n_s32): Remove.
6657 (__arm_vcmpltq_s32): Remove.
6658 (__arm_vcmpltq_n_s32): Remove.
6659 (__arm_vcmpleq_s32): Remove.
6660 (__arm_vcmpleq_n_s32): Remove.
6661 (__arm_vcmpgtq_s32): Remove.
6662 (__arm_vcmpgtq_n_s32): Remove.
6663 (__arm_vcmpgeq_s32): Remove.
6664 (__arm_vcmpgeq_n_s32): Remove.
6665 (__arm_vcmpeqq_s32): Remove.
6666 (__arm_vcmpeqq_n_s32): Remove.
6667 (__arm_vcmpneq_m_u8): Remove.
6668 (__arm_vcmpneq_m_n_u8): Remove.
6669 (__arm_vcmphiq_m_u8): Remove.
6670 (__arm_vcmphiq_m_n_u8): Remove.
6671 (__arm_vcmpeqq_m_u8): Remove.
6672 (__arm_vcmpeqq_m_n_u8): Remove.
6673 (__arm_vcmpcsq_m_u8): Remove.
6674 (__arm_vcmpcsq_m_n_u8): Remove.
6675 (__arm_vcmpneq_m_s8): Remove.
6676 (__arm_vcmpneq_m_n_s8): Remove.
6677 (__arm_vcmpltq_m_s8): Remove.
6678 (__arm_vcmpltq_m_n_s8): Remove.
6679 (__arm_vcmpleq_m_s8): Remove.
6680 (__arm_vcmpleq_m_n_s8): Remove.
6681 (__arm_vcmpgtq_m_s8): Remove.
6682 (__arm_vcmpgtq_m_n_s8): Remove.
6683 (__arm_vcmpgeq_m_s8): Remove.
6684 (__arm_vcmpgeq_m_n_s8): Remove.
6685 (__arm_vcmpeqq_m_s8): Remove.
6686 (__arm_vcmpeqq_m_n_s8): Remove.
6687 (__arm_vcmpneq_m_u16): Remove.
6688 (__arm_vcmpneq_m_n_u16): Remove.
6689 (__arm_vcmphiq_m_u16): Remove.
6690 (__arm_vcmphiq_m_n_u16): Remove.
6691 (__arm_vcmpeqq_m_u16): Remove.
6692 (__arm_vcmpeqq_m_n_u16): Remove.
6693 (__arm_vcmpcsq_m_u16): Remove.
6694 (__arm_vcmpcsq_m_n_u16): Remove.
6695 (__arm_vcmpneq_m_s16): Remove.
6696 (__arm_vcmpneq_m_n_s16): Remove.
6697 (__arm_vcmpltq_m_s16): Remove.
6698 (__arm_vcmpltq_m_n_s16): Remove.
6699 (__arm_vcmpleq_m_s16): Remove.
6700 (__arm_vcmpleq_m_n_s16): Remove.
6701 (__arm_vcmpgtq_m_s16): Remove.
6702 (__arm_vcmpgtq_m_n_s16): Remove.
6703 (__arm_vcmpgeq_m_s16): Remove.
6704 (__arm_vcmpgeq_m_n_s16): Remove.
6705 (__arm_vcmpeqq_m_s16): Remove.
6706 (__arm_vcmpeqq_m_n_s16): Remove.
6707 (__arm_vcmpneq_m_u32): Remove.
6708 (__arm_vcmpneq_m_n_u32): Remove.
6709 (__arm_vcmphiq_m_u32): Remove.
6710 (__arm_vcmphiq_m_n_u32): Remove.
6711 (__arm_vcmpeqq_m_u32): Remove.
6712 (__arm_vcmpeqq_m_n_u32): Remove.
6713 (__arm_vcmpcsq_m_u32): Remove.
6714 (__arm_vcmpcsq_m_n_u32): Remove.
6715 (__arm_vcmpneq_m_s32): Remove.
6716 (__arm_vcmpneq_m_n_s32): Remove.
6717 (__arm_vcmpltq_m_s32): Remove.
6718 (__arm_vcmpltq_m_n_s32): Remove.
6719 (__arm_vcmpleq_m_s32): Remove.
6720 (__arm_vcmpleq_m_n_s32): Remove.
6721 (__arm_vcmpgtq_m_s32): Remove.
6722 (__arm_vcmpgtq_m_n_s32): Remove.
6723 (__arm_vcmpgeq_m_s32): Remove.
6724 (__arm_vcmpgeq_m_n_s32): Remove.
6725 (__arm_vcmpeqq_m_s32): Remove.
6726 (__arm_vcmpeqq_m_n_s32): Remove.
6727 (__arm_vcmpneq_n_f16): Remove.
6728 (__arm_vcmpneq_f16): Remove.
6729 (__arm_vcmpltq_n_f16): Remove.
6730 (__arm_vcmpltq_f16): Remove.
6731 (__arm_vcmpleq_n_f16): Remove.
6732 (__arm_vcmpleq_f16): Remove.
6733 (__arm_vcmpgtq_n_f16): Remove.
6734 (__arm_vcmpgtq_f16): Remove.
6735 (__arm_vcmpgeq_n_f16): Remove.
6736 (__arm_vcmpgeq_f16): Remove.
6737 (__arm_vcmpeqq_n_f16): Remove.
6738 (__arm_vcmpeqq_f16): Remove.
6739 (__arm_vcmpneq_n_f32): Remove.
6740 (__arm_vcmpneq_f32): Remove.
6741 (__arm_vcmpltq_n_f32): Remove.
6742 (__arm_vcmpltq_f32): Remove.
6743 (__arm_vcmpleq_n_f32): Remove.
6744 (__arm_vcmpleq_f32): Remove.
6745 (__arm_vcmpgtq_n_f32): Remove.
6746 (__arm_vcmpgtq_f32): Remove.
6747 (__arm_vcmpgeq_n_f32): Remove.
6748 (__arm_vcmpgeq_f32): Remove.
6749 (__arm_vcmpeqq_n_f32): Remove.
6750 (__arm_vcmpeqq_f32): Remove.
6751 (__arm_vcmpeqq_m_f16): Remove.
6752 (__arm_vcmpeqq_m_f32): Remove.
6753 (__arm_vcmpeqq_m_n_f16): Remove.
6754 (__arm_vcmpgeq_m_f16): Remove.
6755 (__arm_vcmpgeq_m_n_f16): Remove.
6756 (__arm_vcmpgtq_m_f16): Remove.
6757 (__arm_vcmpgtq_m_n_f16): Remove.
6758 (__arm_vcmpleq_m_f16): Remove.
6759 (__arm_vcmpleq_m_n_f16): Remove.
6760 (__arm_vcmpltq_m_f16): Remove.
6761 (__arm_vcmpltq_m_n_f16): Remove.
6762 (__arm_vcmpneq_m_f16): Remove.
6763 (__arm_vcmpneq_m_n_f16): Remove.
6764 (__arm_vcmpeqq_m_n_f32): Remove.
6765 (__arm_vcmpgeq_m_f32): Remove.
6766 (__arm_vcmpgeq_m_n_f32): Remove.
6767 (__arm_vcmpgtq_m_f32): Remove.
6768 (__arm_vcmpgtq_m_n_f32): Remove.
6769 (__arm_vcmpleq_m_f32): Remove.
6770 (__arm_vcmpleq_m_n_f32): Remove.
6771 (__arm_vcmpltq_m_f32): Remove.
6772 (__arm_vcmpltq_m_n_f32): Remove.
6773 (__arm_vcmpneq_m_f32): Remove.
6774 (__arm_vcmpneq_m_n_f32): Remove.
6775 (__arm_vcmpneq): Remove.
6776 (__arm_vcmphiq): Remove.
6777 (__arm_vcmpeqq): Remove.
6778 (__arm_vcmpcsq): Remove.
6779 (__arm_vcmpltq): Remove.
6780 (__arm_vcmpleq): Remove.
6781 (__arm_vcmpgtq): Remove.
6782 (__arm_vcmpgeq): Remove.
6783 (__arm_vcmpneq_m): Remove.
6784 (__arm_vcmphiq_m): Remove.
6785 (__arm_vcmpeqq_m): Remove.
6786 (__arm_vcmpcsq_m): Remove.
6787 (__arm_vcmpltq_m): Remove.
6788 (__arm_vcmpleq_m): Remove.
6789 (__arm_vcmpgtq_m): Remove.
6790 (__arm_vcmpgeq_m): Remove.
6791
6792 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6793
6794 * config/arm/arm-mve-builtins-shapes.cc (cmp): New.
6795 * config/arm/arm-mve-builtins-shapes.h (cmp): New.
6796
6797 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6798
6799 * config/arm/iterators.md (MVE_CMP_M, MVE_CMP_M_F, MVE_CMP_M_N)
6800 (MVE_CMP_M_N_F, mve_cmp_op1): New.
6801 (isu): Add VCMP*
6802 (supf): Likewise.
6803 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>): Rename into ...
6804 (@mve_vcmp<mve_cmp_op>q_n_<mode>): ... this.
6805 (mve_vcmpeqq_m_f<mode>, mve_vcmpgeq_m_f<mode>)
6806 (mve_vcmpgtq_m_f<mode>, mve_vcmpleq_m_f<mode>)
6807 (mve_vcmpltq_m_f<mode>, mve_vcmpneq_m_f<mode>): Merge into ...
6808 (@mve_vcmp<mve_cmp_op1>q_m_f<mode>): ... this.
6809 (mve_vcmpcsq_m_u<mode>, mve_vcmpeqq_m_<supf><mode>)
6810 (mve_vcmpgeq_m_s<mode>, mve_vcmpgtq_m_s<mode>)
6811 (mve_vcmphiq_m_u<mode>, mve_vcmpleq_m_s<mode>)
6812 (mve_vcmpltq_m_s<mode>, mve_vcmpneq_m_<supf><mode>): Merge into
6813 ...
6814 (@mve_vcmp<mve_cmp_op1>q_m_<supf><mode>): ... this.
6815 (mve_vcmpcsq_m_n_u<mode>, mve_vcmpeqq_m_n_<supf><mode>)
6816 (mve_vcmpgeq_m_n_s<mode>, mve_vcmpgtq_m_n_s<mode>)
6817 (mve_vcmphiq_m_n_u<mode>, mve_vcmpleq_m_n_s<mode>)
6818 (mve_vcmpltq_m_n_s<mode>, mve_vcmpneq_m_n_<supf><mode>): Merge
6819 into ...
6820 (@mve_vcmp<mve_cmp_op1>q_m_n_<supf><mode>): ... this.
6821 (mve_vcmpeqq_m_n_f<mode>, mve_vcmpgeq_m_n_f<mode>)
6822 (mve_vcmpgtq_m_n_f<mode>, mve_vcmpleq_m_n_f<mode>)
6823 (mve_vcmpltq_m_n_f<mode>, mve_vcmpneq_m_n_f<mode>): Merge into ...
6824 (@mve_vcmp<mve_cmp_op1>q_m_n_f<mode>): ... this.
6825
6826 2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
6827
6828 * match.pd <popcount optimizations>: Simplify popcount(X|Y) +
6829 popcount(X&Y) as popcount(X)+popcount(Y). Likewise, simplify
6830 popcount(X)+popcount(Y)-popcount(X&Y) as popcount(X|Y), and
6831 vice versa.
6832
6833 2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
6834
6835 * match.pd <popcount optimizations>: Simplify popcount(bswap(x))
6836 as popcount(x). Simplify popcount(rotate(x,y)) as popcount(x).
6837 <parity optimizations>: Simplify parity(bswap(x)) as parity(x).
6838 Simplify parity(rotate(x,y)) as parity(x).
6839
6840 2023-05-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6841
6842 * config/riscv/autovec.md (@vec_series<mode>): New pattern
6843 * config/riscv/riscv-protos.h (expand_vec_series): New function.
6844 * config/riscv/riscv-v.cc (emit_binop): Ditto.
6845 (emit_index_op): Ditto.
6846 (expand_vec_series): Ditto.
6847 (expand_const_vector): Add series vector handling.
6848 * config/riscv/riscv.cc (riscv_const_insns): Enable series vector for testing.
6849
6850 2023-05-10 Roger Sayle <roger@nextmovesoftware.com>
6851
6852 * config/i386/i386.md (*concat<mode><dwi>3_1): Use preferred
6853 [(const_int 0)] idiom, instead of [(clobber (const_int 0))].
6854 (*concat<mode><dwi>3_2): Likewise.
6855 (*concat<mode><dwi>3_3): Likewise.
6856 (*concat<mode><dwi>3_4): Likewise.
6857 (*concat<mode><dwi>3_5): Likewise.
6858 (*concat<mode><dwi>3_6): Likewise.
6859 (*concat<mode><dwi>3_7): Likewise.
6860
6861 2023-05-10 Uros Bizjak <ubizjak@gmail.com>
6862
6863 PR target/92658
6864 * config/i386/mmx.md (sse4_1_<code>v2qiv2si2): New insn pattern.
6865 (<insn>v4qiv4hi2): New expander.
6866 (<insn>v2hiv2si2): Ditto.
6867 (<insn>v2qiv2si2): Ditto.
6868 (<insn>v2qiv2hi2): Ditto.
6869
6870 2023-05-10 Jeff Law <jlaw@ventanamicro>
6871
6872 * config/h8300/constraints.md (Q): Make this a special memory
6873 constraint.
6874 (Zz): Similarly.
6875
6876 2023-05-10 Jakub Jelinek <jakub@redhat.com>
6877
6878 PR fortran/109788
6879 * ipa-prop.cc (ipa_get_callee_param_type): Don't return TREE_VALUE (t)
6880 if t is void_list_node.
6881
6882 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6883
6884 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>_insn_le): Delete.
6885 (aarch64_sqmovun<mode>_insn_be): Delete.
6886 (aarch64_sqmovun<mode><vczle><vczbe>): New define_insn.
6887 (aarch64_sqmovun<mode>): Delete expander.
6888
6889 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6890
6891 PR target/99195
6892 * config/aarch64/aarch64-simd.md (aarch64_<PERMUTE:perm_insn><mode>):
6893 Rename to...
6894 (aarch64_<PERMUTE:perm_insn><mode><vczle><vczbe>): ... This.
6895 (aarch64_rev<REVERSE:rev_op><mode>): Rename to...
6896 (aarch64_rev<REVERSE:rev_op><mode><vczle><vczbe>): ... This.
6897
6898 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6899
6900 PR target/99195
6901 * config/aarch64/aarch64-simd.md (aarch64_<su_optab>q<addsub><mode>):
6902 Rename to...
6903 (aarch64_<su_optab>q<addsub><mode><vczle><vczbe>): ... This.
6904 (aarch64_<sur>qadd<mode>): Rename to...
6905 (aarch64_<sur>qadd<mode><vczle><vczbe>): ... This.
6906
6907 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6908
6909 * config/aarch64/aarch64-simd.md
6910 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): Delete.
6911 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): Delete.
6912 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn<vczle><vczbe>): New define_insn.
6913 (aarch64_<sur>q<r>shr<u>n_n<mode>): Simplify expander.
6914
6915 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6916
6917 PR target/99195
6918 * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le): Delete.
6919 (aarch64_xtn<mode>_insn_be): Likewise.
6920 (trunc<mode><Vnarrowq>2): Rename to...
6921 (trunc<mode><Vnarrowq>2<vczle><vczbe>): ... This.
6922 (aarch64_xtn<mode>): Move under the above. Just emit the truncate RTL.
6923 (aarch64_<su>qmovn<mode>): Likewise.
6924 (aarch64_<su>qmovn<mode><vczle><vczbe>): New define_insn.
6925 (aarch64_<su>qmovn<mode>_insn_le): Delete.
6926 (aarch64_<su>qmovn<mode>_insn_be): Likewise.
6927
6928 2023-05-10 Li Xu <xuli1@eswincomputing.com>
6929
6930 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): For vfmv.f.s/vmv.x.s
6931 intruction replace null avl with (const_int 0).
6932
6933 2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6934
6935 * config/riscv/riscv.cc (riscv_support_vector_misalignment): Fix
6936 incorrect codes.
6937
6938 2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6939
6940 PR target/109773
6941 * config/riscv/riscv-vsetvl.cc (avl_source_has_vsetvl_p): New function.
6942 (source_equal_p): Fix dead loop in vsetvl avl checking.
6943
6944 2023-05-10 Hans-Peter Nilsson <hp@axis.com>
6945
6946 * config/cris/cris.cc (cris_postdbr_cmpelim): Correct mode
6947 of modeadjusted_dccr.
6948
6949 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6950
6951 * config/arm/arm-mve-builtins-base.cc (vmaxaq, vminaq): New.
6952 * config/arm/arm-mve-builtins-base.def (vmaxaq, vminaq): New.
6953 * config/arm/arm-mve-builtins-base.h (vmaxaq, vminaq): New.
6954 * config/arm/arm-mve-builtins.cc
6955 (function_instance::has_inactive_argument): Handle vmaxaq and
6956 vminaq.
6957 * config/arm/arm_mve.h (vminaq): Remove.
6958 (vmaxaq): Remove.
6959 (vminaq_m): Remove.
6960 (vmaxaq_m): Remove.
6961 (vminaq_s8): Remove.
6962 (vmaxaq_s8): Remove.
6963 (vminaq_s16): Remove.
6964 (vmaxaq_s16): Remove.
6965 (vminaq_s32): Remove.
6966 (vmaxaq_s32): Remove.
6967 (vminaq_m_s8): Remove.
6968 (vmaxaq_m_s8): Remove.
6969 (vminaq_m_s16): Remove.
6970 (vmaxaq_m_s16): Remove.
6971 (vminaq_m_s32): Remove.
6972 (vmaxaq_m_s32): Remove.
6973 (__arm_vminaq_s8): Remove.
6974 (__arm_vmaxaq_s8): Remove.
6975 (__arm_vminaq_s16): Remove.
6976 (__arm_vmaxaq_s16): Remove.
6977 (__arm_vminaq_s32): Remove.
6978 (__arm_vmaxaq_s32): Remove.
6979 (__arm_vminaq_m_s8): Remove.
6980 (__arm_vmaxaq_m_s8): Remove.
6981 (__arm_vminaq_m_s16): Remove.
6982 (__arm_vmaxaq_m_s16): Remove.
6983 (__arm_vminaq_m_s32): Remove.
6984 (__arm_vmaxaq_m_s32): Remove.
6985 (__arm_vminaq): Remove.
6986 (__arm_vmaxaq): Remove.
6987 (__arm_vminaq_m): Remove.
6988 (__arm_vmaxaq_m): Remove.
6989
6990 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
6991
6992 * config/arm/iterators.md (MVE_VMAXAVMINAQ, MVE_VMAXAVMINAQ_M):
6993 New.
6994 (mve_insn): Add vmaxa, vmina.
6995 (supf): Add VMAXAQ_S, VMAXAQ_M_S, VMINAQ_S, VMINAQ_M_S.
6996 * config/arm/mve.md (mve_vmaxaq_s<mode>, mve_vminaq_s<mode>):
6997 Merge into ...
6998 (@mve_<mve_insn>q_<supf><mode>): ... this.
6999 (mve_vmaxaq_m_s<mode>, mve_vminaq_m_s<mode>): Merge into ...
7000 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
7001
7002 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7003
7004 * config/arm/arm-mve-builtins-shapes.cc (binary_maxamina): New.
7005 * config/arm/arm-mve-builtins-shapes.h (binary_maxamina): New.
7006
7007 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7008
7009 * config/arm/arm-mve-builtins-base.cc (vmaxnmaq, vminnmaq): New.
7010 * config/arm/arm-mve-builtins-base.def (vmaxnmaq, vminnmaq): New.
7011 * config/arm/arm-mve-builtins-base.h (vmaxnmaq, vminnmaq): New.
7012 * config/arm/arm-mve-builtins.cc
7013 (function_instance::has_inactive_argument): Handle vmaxnmaq and
7014 vminnmaq.
7015 * config/arm/arm_mve.h (vminnmaq): Remove.
7016 (vmaxnmaq): Remove.
7017 (vmaxnmaq_m): Remove.
7018 (vminnmaq_m): Remove.
7019 (vminnmaq_f16): Remove.
7020 (vmaxnmaq_f16): Remove.
7021 (vminnmaq_f32): Remove.
7022 (vmaxnmaq_f32): Remove.
7023 (vmaxnmaq_m_f16): Remove.
7024 (vminnmaq_m_f16): Remove.
7025 (vmaxnmaq_m_f32): Remove.
7026 (vminnmaq_m_f32): Remove.
7027 (__arm_vminnmaq_f16): Remove.
7028 (__arm_vmaxnmaq_f16): Remove.
7029 (__arm_vminnmaq_f32): Remove.
7030 (__arm_vmaxnmaq_f32): Remove.
7031 (__arm_vmaxnmaq_m_f16): Remove.
7032 (__arm_vminnmaq_m_f16): Remove.
7033 (__arm_vmaxnmaq_m_f32): Remove.
7034 (__arm_vminnmaq_m_f32): Remove.
7035 (__arm_vminnmaq): Remove.
7036 (__arm_vmaxnmaq): Remove.
7037 (__arm_vmaxnmaq_m): Remove.
7038 (__arm_vminnmaq_m): Remove.
7039
7040 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7041
7042 * config/arm/iterators.md (MVE_VMAXNMA_VMINNMAQ)
7043 (MVE_VMAXNMA_VMINNMAQ_M): New.
7044 (mve_insn): Add vmaxnma, vminnma.
7045 * config/arm/mve.md (mve_vmaxnmaq_f<mode>, mve_vminnmaq_f<mode>):
7046 Merge into ...
7047 (@mve_<mve_insn>q_f<mode>): ... this.
7048 (mve_vmaxnmaq_m_f<mode>, mve_vminnmaq_m_f<mode>): Merge into ...
7049 (@mve_<mve_insn>q_m_f<mode>): ... this.
7050
7051 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7052
7053 * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_F): New.
7054 (vmaxnmavq, vmaxnmvq, vminnmavq, vminnmvq): New.
7055 * config/arm/arm-mve-builtins-base.def (vmaxnmavq, vmaxnmvq)
7056 (vminnmavq, vminnmvq): New.
7057 * config/arm/arm-mve-builtins-base.h (vmaxnmavq, vmaxnmvq)
7058 (vminnmavq, vminnmvq): New.
7059 * config/arm/arm_mve.h (vminnmvq): Remove.
7060 (vminnmavq): Remove.
7061 (vmaxnmvq): Remove.
7062 (vmaxnmavq): Remove.
7063 (vmaxnmavq_p): Remove.
7064 (vmaxnmvq_p): Remove.
7065 (vminnmavq_p): Remove.
7066 (vminnmvq_p): Remove.
7067 (vminnmvq_f16): Remove.
7068 (vminnmavq_f16): Remove.
7069 (vmaxnmvq_f16): Remove.
7070 (vmaxnmavq_f16): Remove.
7071 (vminnmvq_f32): Remove.
7072 (vminnmavq_f32): Remove.
7073 (vmaxnmvq_f32): Remove.
7074 (vmaxnmavq_f32): Remove.
7075 (vmaxnmavq_p_f16): Remove.
7076 (vmaxnmvq_p_f16): Remove.
7077 (vminnmavq_p_f16): Remove.
7078 (vminnmvq_p_f16): Remove.
7079 (vmaxnmavq_p_f32): Remove.
7080 (vmaxnmvq_p_f32): Remove.
7081 (vminnmavq_p_f32): Remove.
7082 (vminnmvq_p_f32): Remove.
7083 (__arm_vminnmvq_f16): Remove.
7084 (__arm_vminnmavq_f16): Remove.
7085 (__arm_vmaxnmvq_f16): Remove.
7086 (__arm_vmaxnmavq_f16): Remove.
7087 (__arm_vminnmvq_f32): Remove.
7088 (__arm_vminnmavq_f32): Remove.
7089 (__arm_vmaxnmvq_f32): Remove.
7090 (__arm_vmaxnmavq_f32): Remove.
7091 (__arm_vmaxnmavq_p_f16): Remove.
7092 (__arm_vmaxnmvq_p_f16): Remove.
7093 (__arm_vminnmavq_p_f16): Remove.
7094 (__arm_vminnmvq_p_f16): Remove.
7095 (__arm_vmaxnmavq_p_f32): Remove.
7096 (__arm_vmaxnmvq_p_f32): Remove.
7097 (__arm_vminnmavq_p_f32): Remove.
7098 (__arm_vminnmvq_p_f32): Remove.
7099 (__arm_vminnmvq): Remove.
7100 (__arm_vminnmavq): Remove.
7101 (__arm_vmaxnmvq): Remove.
7102 (__arm_vmaxnmavq): Remove.
7103 (__arm_vmaxnmavq_p): Remove.
7104 (__arm_vmaxnmvq_p): Remove.
7105 (__arm_vminnmavq_p): Remove.
7106 (__arm_vminnmvq_p): Remove.
7107 (__arm_vmaxnmavq_m): Remove.
7108 (__arm_vmaxnmvq_m): Remove.
7109
7110 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7111
7112 * config/arm/arm-mve-builtins-functions.h
7113 (unspec_mve_function_exact_insn_pred_p): Use code_for_mve_q_p_f.
7114
7115 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7116
7117 * config/arm/iterators.md (MVE_VMAXNMxV_MINNMxVQ)
7118 (MVE_VMAXNMxV_MINNMxVQ_P): New.
7119 (mve_insn): Add vmaxnmav, vmaxnmv, vminnmav, vminnmv.
7120 * config/arm/mve.md (mve_vmaxnmavq_f<mode>, mve_vmaxnmvq_f<mode>)
7121 (mve_vminnmavq_f<mode>, mve_vminnmvq_f<mode>): Merge into ...
7122 (@mve_<mve_insn>q_f<mode>): ... this.
7123 (mve_vmaxnmavq_p_f<mode>, mve_vmaxnmvq_p_f<mode>)
7124 (mve_vminnmavq_p_f<mode>, mve_vminnmvq_p_f<mode>): Merge into ...
7125 (@mve_<mve_insn>q_p_f<mode>): ... this.
7126
7127 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7128
7129 * config/arm/arm-mve-builtins-base.cc (vmaxnmq, vminnmq): New.
7130 * config/arm/arm-mve-builtins-base.def (vmaxnmq, vminnmq): New.
7131 * config/arm/arm-mve-builtins-base.h (vmaxnmq, vminnmq): New.
7132 * config/arm/arm_mve.h (vminnmq): Remove.
7133 (vmaxnmq): Remove.
7134 (vmaxnmq_m): Remove.
7135 (vminnmq_m): Remove.
7136 (vminnmq_x): Remove.
7137 (vmaxnmq_x): Remove.
7138 (vminnmq_f16): Remove.
7139 (vmaxnmq_f16): Remove.
7140 (vminnmq_f32): Remove.
7141 (vmaxnmq_f32): Remove.
7142 (vmaxnmq_m_f32): Remove.
7143 (vmaxnmq_m_f16): Remove.
7144 (vminnmq_m_f32): Remove.
7145 (vminnmq_m_f16): Remove.
7146 (vminnmq_x_f16): Remove.
7147 (vminnmq_x_f32): Remove.
7148 (vmaxnmq_x_f16): Remove.
7149 (vmaxnmq_x_f32): Remove.
7150 (__arm_vminnmq_f16): Remove.
7151 (__arm_vmaxnmq_f16): Remove.
7152 (__arm_vminnmq_f32): Remove.
7153 (__arm_vmaxnmq_f32): Remove.
7154 (__arm_vmaxnmq_m_f32): Remove.
7155 (__arm_vmaxnmq_m_f16): Remove.
7156 (__arm_vminnmq_m_f32): Remove.
7157 (__arm_vminnmq_m_f16): Remove.
7158 (__arm_vminnmq_x_f16): Remove.
7159 (__arm_vminnmq_x_f32): Remove.
7160 (__arm_vmaxnmq_x_f16): Remove.
7161 (__arm_vmaxnmq_x_f32): Remove.
7162 (__arm_vminnmq): Remove.
7163 (__arm_vmaxnmq): Remove.
7164 (__arm_vmaxnmq_m): Remove.
7165 (__arm_vminnmq_m): Remove.
7166 (__arm_vminnmq_x): Remove.
7167 (__arm_vmaxnmq_x): Remove.
7168
7169 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7170
7171 * config/arm/iterators.md (MAX_MIN_F): New.
7172 (MVE_FP_M_BINARY): Add VMAXNMQ_M_F, VMINNMQ_M_F.
7173 (mve_insn): Add vmaxnm, vminnm.
7174 (max_min_f_str): New.
7175 * config/arm/mve.md (mve_vmaxnmq_f<mode>, mve_vminnmq_f<mode>):
7176 Merge into ...
7177 (@mve_<max_min_f_str>q_f<mode>): ... this.
7178 (mve_vmaxnmq_m_f<mode>, mve_vminnmq_m_f<mode>): Merge into ...
7179 (@mve_<mve_insn>q_m_f<mode>): ... this.
7180
7181 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7182
7183 * config/arm/vec-common.md (smin<mode>3): Use VDQWH iterator.
7184 (smax<mode>3): Likewise.
7185
7186 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7187
7188 * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_S_U)
7189 (FUNCTION_PRED_P_S): New.
7190 (vmaxavq, vminavq, vmaxvq, vminvq): New.
7191 * config/arm/arm-mve-builtins-base.def (vmaxavq, vminavq, vmaxvq)
7192 (vminvq): New.
7193 * config/arm/arm-mve-builtins-base.h (vmaxavq, vminavq, vmaxvq)
7194 (vminvq): New.
7195 * config/arm/arm_mve.h (vminvq): Remove.
7196 (vmaxvq): Remove.
7197 (vminvq_p): Remove.
7198 (vmaxvq_p): Remove.
7199 (vminvq_u8): Remove.
7200 (vmaxvq_u8): Remove.
7201 (vminvq_s8): Remove.
7202 (vmaxvq_s8): Remove.
7203 (vminvq_u16): Remove.
7204 (vmaxvq_u16): Remove.
7205 (vminvq_s16): Remove.
7206 (vmaxvq_s16): Remove.
7207 (vminvq_u32): Remove.
7208 (vmaxvq_u32): Remove.
7209 (vminvq_s32): Remove.
7210 (vmaxvq_s32): Remove.
7211 (vminvq_p_u8): Remove.
7212 (vmaxvq_p_u8): Remove.
7213 (vminvq_p_s8): Remove.
7214 (vmaxvq_p_s8): Remove.
7215 (vminvq_p_u16): Remove.
7216 (vmaxvq_p_u16): Remove.
7217 (vminvq_p_s16): Remove.
7218 (vmaxvq_p_s16): Remove.
7219 (vminvq_p_u32): Remove.
7220 (vmaxvq_p_u32): Remove.
7221 (vminvq_p_s32): Remove.
7222 (vmaxvq_p_s32): Remove.
7223 (__arm_vminvq_u8): Remove.
7224 (__arm_vmaxvq_u8): Remove.
7225 (__arm_vminvq_s8): Remove.
7226 (__arm_vmaxvq_s8): Remove.
7227 (__arm_vminvq_u16): Remove.
7228 (__arm_vmaxvq_u16): Remove.
7229 (__arm_vminvq_s16): Remove.
7230 (__arm_vmaxvq_s16): Remove.
7231 (__arm_vminvq_u32): Remove.
7232 (__arm_vmaxvq_u32): Remove.
7233 (__arm_vminvq_s32): Remove.
7234 (__arm_vmaxvq_s32): Remove.
7235 (__arm_vminvq_p_u8): Remove.
7236 (__arm_vmaxvq_p_u8): Remove.
7237 (__arm_vminvq_p_s8): Remove.
7238 (__arm_vmaxvq_p_s8): Remove.
7239 (__arm_vminvq_p_u16): Remove.
7240 (__arm_vmaxvq_p_u16): Remove.
7241 (__arm_vminvq_p_s16): Remove.
7242 (__arm_vmaxvq_p_s16): Remove.
7243 (__arm_vminvq_p_u32): Remove.
7244 (__arm_vmaxvq_p_u32): Remove.
7245 (__arm_vminvq_p_s32): Remove.
7246 (__arm_vmaxvq_p_s32): Remove.
7247 (__arm_vminvq): Remove.
7248 (__arm_vmaxvq): Remove.
7249 (__arm_vminvq_p): Remove.
7250 (__arm_vmaxvq_p): Remove.
7251 (vminavq): Remove.
7252 (vmaxavq): Remove.
7253 (vminavq_p): Remove.
7254 (vmaxavq_p): Remove.
7255 (vminavq_s8): Remove.
7256 (vmaxavq_s8): Remove.
7257 (vminavq_s16): Remove.
7258 (vmaxavq_s16): Remove.
7259 (vminavq_s32): Remove.
7260 (vmaxavq_s32): Remove.
7261 (vminavq_p_s8): Remove.
7262 (vmaxavq_p_s8): Remove.
7263 (vminavq_p_s16): Remove.
7264 (vmaxavq_p_s16): Remove.
7265 (vminavq_p_s32): Remove.
7266 (vmaxavq_p_s32): Remove.
7267 (__arm_vminavq_s8): Remove.
7268 (__arm_vmaxavq_s8): Remove.
7269 (__arm_vminavq_s16): Remove.
7270 (__arm_vmaxavq_s16): Remove.
7271 (__arm_vminavq_s32): Remove.
7272 (__arm_vmaxavq_s32): Remove.
7273 (__arm_vminavq_p_s8): Remove.
7274 (__arm_vmaxavq_p_s8): Remove.
7275 (__arm_vminavq_p_s16): Remove.
7276 (__arm_vmaxavq_p_s16): Remove.
7277 (__arm_vminavq_p_s32): Remove.
7278 (__arm_vmaxavq_p_s32): Remove.
7279 (__arm_vminavq): Remove.
7280 (__arm_vmaxavq): Remove.
7281 (__arm_vminavq_p): Remove.
7282 (__arm_vmaxavq_p): Remove.
7283
7284 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7285
7286 * config/arm/iterators.md (MVE_VMAXVQ_VMINVQ, MVE_VMAXVQ_VMINVQ_P): New.
7287 (mve_insn): Add vmaxav, vmaxv, vminav, vminv.
7288 (supf): Add VMAXAVQ_S, VMAXAVQ_P_S, VMINAVQ_S, VMINAVQ_P_S.
7289 * config/arm/mve.md (mve_vmaxavq_s<mode>, mve_vmaxvq_<supf><mode>)
7290 (mve_vminavq_s<mode>, mve_vminvq_<supf><mode>): Merge into ...
7291 (@mve_<mve_insn>q_<supf><mode>): ... this.
7292 (mve_vmaxavq_p_s<mode>, mve_vmaxvq_p_<supf><mode>)
7293 (mve_vminavq_p_s<mode>, mve_vminvq_p_<supf><mode>): Merge into ...
7294 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
7295
7296 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7297
7298 * config/arm/arm-mve-builtins-functions.h (class
7299 unspec_mve_function_exact_insn_pred_p): New.
7300
7301 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7302
7303 * config/arm/arm-mve-builtins-shapes.cc (binary_maxavminav): New.
7304 * config/arm/arm-mve-builtins-shapes.h (binary_maxavminav): New.
7305
7306 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7307
7308 * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New.
7309 * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New.
7310
7311 2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
7312
7313 * config/aarch64/aarch64-protos.h (aarch64_adjust_reg_alloc_order):
7314 Declare.
7315 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
7316 (ADJUST_REG_ALLOC_ORDER): Likewise.
7317 * config/aarch64/aarch64.cc (aarch64_adjust_reg_alloc_order): New
7318 function.
7319 * config/aarch64/aarch64-sve.md (*vcond_mask_<mode><vpred>): Use
7320 Upa rather than Upl for unpredicated movprfx alternatives.
7321
7322 2023-05-09 Jeff Law <jlaw@ventanamicro>
7323
7324 * config/h8300/testcompare.md: Add peephole2 which uses a memory
7325 load to set flags, thus eliminating a compare against zero.
7326
7327 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7328
7329 * config/arm/arm-mve-builtins-base.cc (vshllbq, vshlltq): New.
7330 * config/arm/arm-mve-builtins-base.def (vshllbq, vshlltq): New.
7331 * config/arm/arm-mve-builtins-base.h (vshllbq, vshlltq): New.
7332 * config/arm/arm_mve.h (vshlltq): Remove.
7333 (vshllbq): Remove.
7334 (vshllbq_m): Remove.
7335 (vshlltq_m): Remove.
7336 (vshllbq_x): Remove.
7337 (vshlltq_x): Remove.
7338 (vshlltq_n_u8): Remove.
7339 (vshllbq_n_u8): Remove.
7340 (vshlltq_n_s8): Remove.
7341 (vshllbq_n_s8): Remove.
7342 (vshlltq_n_u16): Remove.
7343 (vshllbq_n_u16): Remove.
7344 (vshlltq_n_s16): Remove.
7345 (vshllbq_n_s16): Remove.
7346 (vshllbq_m_n_s8): Remove.
7347 (vshllbq_m_n_s16): Remove.
7348 (vshllbq_m_n_u8): Remove.
7349 (vshllbq_m_n_u16): Remove.
7350 (vshlltq_m_n_s8): Remove.
7351 (vshlltq_m_n_s16): Remove.
7352 (vshlltq_m_n_u8): Remove.
7353 (vshlltq_m_n_u16): Remove.
7354 (vshllbq_x_n_s8): Remove.
7355 (vshllbq_x_n_s16): Remove.
7356 (vshllbq_x_n_u8): Remove.
7357 (vshllbq_x_n_u16): Remove.
7358 (vshlltq_x_n_s8): Remove.
7359 (vshlltq_x_n_s16): Remove.
7360 (vshlltq_x_n_u8): Remove.
7361 (vshlltq_x_n_u16): Remove.
7362 (__arm_vshlltq_n_u8): Remove.
7363 (__arm_vshllbq_n_u8): Remove.
7364 (__arm_vshlltq_n_s8): Remove.
7365 (__arm_vshllbq_n_s8): Remove.
7366 (__arm_vshlltq_n_u16): Remove.
7367 (__arm_vshllbq_n_u16): Remove.
7368 (__arm_vshlltq_n_s16): Remove.
7369 (__arm_vshllbq_n_s16): Remove.
7370 (__arm_vshllbq_m_n_s8): Remove.
7371 (__arm_vshllbq_m_n_s16): Remove.
7372 (__arm_vshllbq_m_n_u8): Remove.
7373 (__arm_vshllbq_m_n_u16): Remove.
7374 (__arm_vshlltq_m_n_s8): Remove.
7375 (__arm_vshlltq_m_n_s16): Remove.
7376 (__arm_vshlltq_m_n_u8): Remove.
7377 (__arm_vshlltq_m_n_u16): Remove.
7378 (__arm_vshllbq_x_n_s8): Remove.
7379 (__arm_vshllbq_x_n_s16): Remove.
7380 (__arm_vshllbq_x_n_u8): Remove.
7381 (__arm_vshllbq_x_n_u16): Remove.
7382 (__arm_vshlltq_x_n_s8): Remove.
7383 (__arm_vshlltq_x_n_s16): Remove.
7384 (__arm_vshlltq_x_n_u8): Remove.
7385 (__arm_vshlltq_x_n_u16): Remove.
7386 (__arm_vshlltq): Remove.
7387 (__arm_vshllbq): Remove.
7388 (__arm_vshllbq_m): Remove.
7389 (__arm_vshlltq_m): Remove.
7390 (__arm_vshllbq_x): Remove.
7391 (__arm_vshlltq_x): Remove.
7392
7393 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7394
7395 * config/arm/iterators.md (mve_insn): Add vshllb, vshllt.
7396 (VSHLLBQ_N, VSHLLTQ_N): Remove.
7397 (VSHLLxQ_N): New.
7398 (VSHLLBQ_M_N, VSHLLTQ_M_N): Remove.
7399 (VSHLLxQ_M_N): New.
7400 * config/arm/mve.md (mve_vshllbq_n_<supf><mode>)
7401 (mve_vshlltq_n_<supf><mode>): Merge into ...
7402 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
7403 (mve_vshllbq_m_n_<supf><mode>, mve_vshlltq_m_n_<supf><mode>):
7404 Merge into ...
7405 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
7406
7407 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7408
7409 * config/arm/arm-mve-builtins-shapes.cc (binary_widen_n): New.
7410 * config/arm/arm-mve-builtins-shapes.h (binary_widen_n): New.
7411
7412 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7413
7414 * config/arm/arm-mve-builtins-base.cc (vmovnbq, vmovntq, vqmovnbq)
7415 (vqmovntq, vqmovunbq, vqmovuntq): New.
7416 * config/arm/arm-mve-builtins-base.def (vmovnbq, vmovntq)
7417 (vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq): New.
7418 * config/arm/arm-mve-builtins-base.h (vmovnbq, vmovntq, vqmovnbq)
7419 (vqmovntq, vqmovunbq, vqmovuntq): New.
7420 * config/arm/arm-mve-builtins.cc
7421 (function_instance::has_inactive_argument): Handle vmovnbq,
7422 vmovntq, vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq.
7423 * config/arm/arm_mve.h (vqmovntq): Remove.
7424 (vqmovnbq): Remove.
7425 (vqmovnbq_m): Remove.
7426 (vqmovntq_m): Remove.
7427 (vqmovntq_u16): Remove.
7428 (vqmovnbq_u16): Remove.
7429 (vqmovntq_s16): Remove.
7430 (vqmovnbq_s16): Remove.
7431 (vqmovntq_u32): Remove.
7432 (vqmovnbq_u32): Remove.
7433 (vqmovntq_s32): Remove.
7434 (vqmovnbq_s32): Remove.
7435 (vqmovnbq_m_s16): Remove.
7436 (vqmovntq_m_s16): Remove.
7437 (vqmovnbq_m_u16): Remove.
7438 (vqmovntq_m_u16): Remove.
7439 (vqmovnbq_m_s32): Remove.
7440 (vqmovntq_m_s32): Remove.
7441 (vqmovnbq_m_u32): Remove.
7442 (vqmovntq_m_u32): Remove.
7443 (__arm_vqmovntq_u16): Remove.
7444 (__arm_vqmovnbq_u16): Remove.
7445 (__arm_vqmovntq_s16): Remove.
7446 (__arm_vqmovnbq_s16): Remove.
7447 (__arm_vqmovntq_u32): Remove.
7448 (__arm_vqmovnbq_u32): Remove.
7449 (__arm_vqmovntq_s32): Remove.
7450 (__arm_vqmovnbq_s32): Remove.
7451 (__arm_vqmovnbq_m_s16): Remove.
7452 (__arm_vqmovntq_m_s16): Remove.
7453 (__arm_vqmovnbq_m_u16): Remove.
7454 (__arm_vqmovntq_m_u16): Remove.
7455 (__arm_vqmovnbq_m_s32): Remove.
7456 (__arm_vqmovntq_m_s32): Remove.
7457 (__arm_vqmovnbq_m_u32): Remove.
7458 (__arm_vqmovntq_m_u32): Remove.
7459 (__arm_vqmovntq): Remove.
7460 (__arm_vqmovnbq): Remove.
7461 (__arm_vqmovnbq_m): Remove.
7462 (__arm_vqmovntq_m): Remove.
7463 (vmovntq): Remove.
7464 (vmovnbq): Remove.
7465 (vmovnbq_m): Remove.
7466 (vmovntq_m): Remove.
7467 (vmovntq_u16): Remove.
7468 (vmovnbq_u16): Remove.
7469 (vmovntq_s16): Remove.
7470 (vmovnbq_s16): Remove.
7471 (vmovntq_u32): Remove.
7472 (vmovnbq_u32): Remove.
7473 (vmovntq_s32): Remove.
7474 (vmovnbq_s32): Remove.
7475 (vmovnbq_m_s16): Remove.
7476 (vmovntq_m_s16): Remove.
7477 (vmovnbq_m_u16): Remove.
7478 (vmovntq_m_u16): Remove.
7479 (vmovnbq_m_s32): Remove.
7480 (vmovntq_m_s32): Remove.
7481 (vmovnbq_m_u32): Remove.
7482 (vmovntq_m_u32): Remove.
7483 (__arm_vmovntq_u16): Remove.
7484 (__arm_vmovnbq_u16): Remove.
7485 (__arm_vmovntq_s16): Remove.
7486 (__arm_vmovnbq_s16): Remove.
7487 (__arm_vmovntq_u32): Remove.
7488 (__arm_vmovnbq_u32): Remove.
7489 (__arm_vmovntq_s32): Remove.
7490 (__arm_vmovnbq_s32): Remove.
7491 (__arm_vmovnbq_m_s16): Remove.
7492 (__arm_vmovntq_m_s16): Remove.
7493 (__arm_vmovnbq_m_u16): Remove.
7494 (__arm_vmovntq_m_u16): Remove.
7495 (__arm_vmovnbq_m_s32): Remove.
7496 (__arm_vmovntq_m_s32): Remove.
7497 (__arm_vmovnbq_m_u32): Remove.
7498 (__arm_vmovntq_m_u32): Remove.
7499 (__arm_vmovntq): Remove.
7500 (__arm_vmovnbq): Remove.
7501 (__arm_vmovnbq_m): Remove.
7502 (__arm_vmovntq_m): Remove.
7503 (vqmovuntq): Remove.
7504 (vqmovunbq): Remove.
7505 (vqmovunbq_m): Remove.
7506 (vqmovuntq_m): Remove.
7507 (vqmovuntq_s16): Remove.
7508 (vqmovunbq_s16): Remove.
7509 (vqmovuntq_s32): Remove.
7510 (vqmovunbq_s32): Remove.
7511 (vqmovunbq_m_s16): Remove.
7512 (vqmovuntq_m_s16): Remove.
7513 (vqmovunbq_m_s32): Remove.
7514 (vqmovuntq_m_s32): Remove.
7515 (__arm_vqmovuntq_s16): Remove.
7516 (__arm_vqmovunbq_s16): Remove.
7517 (__arm_vqmovuntq_s32): Remove.
7518 (__arm_vqmovunbq_s32): Remove.
7519 (__arm_vqmovunbq_m_s16): Remove.
7520 (__arm_vqmovuntq_m_s16): Remove.
7521 (__arm_vqmovunbq_m_s32): Remove.
7522 (__arm_vqmovuntq_m_s32): Remove.
7523 (__arm_vqmovuntq): Remove.
7524 (__arm_vqmovunbq): Remove.
7525 (__arm_vqmovunbq_m): Remove.
7526 (__arm_vqmovuntq_m): Remove.
7527
7528 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7529
7530 * config/arm/iterators.md (MVE_MOVN, MVE_MOVN_M): New.
7531 (mve_insn): Add vmovnb, vmovnt, vqmovnb, vqmovnt, vqmovunb,
7532 vqmovunt.
7533 (isu): Likewise.
7534 (supf): Add VQMOVUNBQ_M_S, VQMOVUNBQ_S, VQMOVUNTQ_M_S,
7535 VQMOVUNTQ_S.
7536 * config/arm/mve.md (mve_vmovnbq_<supf><mode>)
7537 (mve_vmovntq_<supf><mode>, mve_vqmovnbq_<supf><mode>)
7538 (mve_vqmovntq_<supf><mode>, mve_vqmovunbq_s<mode>)
7539 (mve_vqmovuntq_s<mode>): Merge into ...
7540 (@mve_<mve_insn>q_<supf><mode>): ... this.
7541 (mve_vmovnbq_m_<supf><mode>, mve_vmovntq_m_<supf><mode>)
7542 (mve_vqmovnbq_m_<supf><mode>, mve_vqmovntq_m_<supf><mode>)
7543 (mve_vqmovunbq_m_s<mode>, mve_vqmovuntq_m_s<mode>): Merge into ...
7544 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
7545
7546 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7547
7548 * config/arm/arm-mve-builtins-shapes.cc (binary_move_narrow): New.
7549 (binary_move_narrow_unsigned): New.
7550 * config/arm/arm-mve-builtins-shapes.h (binary_move_narrow): New.
7551 (binary_move_narrow_unsigned): New.
7552
7553 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7554
7555 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_F): New.
7556 (vrndaq, vrndmq, vrndnq, vrndpq, vrndq, vrndxq): New.
7557 * config/arm/arm-mve-builtins-base.def (vrndaq, vrndmq, vrndnq)
7558 (vrndpq, vrndq, vrndxq): New.
7559 * config/arm/arm-mve-builtins-base.h (vrndaq, vrndmq, vrndnq)
7560 (vrndpq, vrndq, vrndxq): New.
7561 * config/arm/arm_mve.h (vrndxq): Remove.
7562 (vrndq): Remove.
7563 (vrndpq): Remove.
7564 (vrndnq): Remove.
7565 (vrndmq): Remove.
7566 (vrndaq): Remove.
7567 (vrndaq_m): Remove.
7568 (vrndmq_m): Remove.
7569 (vrndnq_m): Remove.
7570 (vrndpq_m): Remove.
7571 (vrndq_m): Remove.
7572 (vrndxq_m): Remove.
7573 (vrndq_x): Remove.
7574 (vrndnq_x): Remove.
7575 (vrndmq_x): Remove.
7576 (vrndpq_x): Remove.
7577 (vrndaq_x): Remove.
7578 (vrndxq_x): Remove.
7579 (vrndxq_f16): Remove.
7580 (vrndxq_f32): Remove.
7581 (vrndq_f16): Remove.
7582 (vrndq_f32): Remove.
7583 (vrndpq_f16): Remove.
7584 (vrndpq_f32): Remove.
7585 (vrndnq_f16): Remove.
7586 (vrndnq_f32): Remove.
7587 (vrndmq_f16): Remove.
7588 (vrndmq_f32): Remove.
7589 (vrndaq_f16): Remove.
7590 (vrndaq_f32): Remove.
7591 (vrndaq_m_f16): Remove.
7592 (vrndmq_m_f16): Remove.
7593 (vrndnq_m_f16): Remove.
7594 (vrndpq_m_f16): Remove.
7595 (vrndq_m_f16): Remove.
7596 (vrndxq_m_f16): Remove.
7597 (vrndaq_m_f32): Remove.
7598 (vrndmq_m_f32): Remove.
7599 (vrndnq_m_f32): Remove.
7600 (vrndpq_m_f32): Remove.
7601 (vrndq_m_f32): Remove.
7602 (vrndxq_m_f32): Remove.
7603 (vrndq_x_f16): Remove.
7604 (vrndq_x_f32): Remove.
7605 (vrndnq_x_f16): Remove.
7606 (vrndnq_x_f32): Remove.
7607 (vrndmq_x_f16): Remove.
7608 (vrndmq_x_f32): Remove.
7609 (vrndpq_x_f16): Remove.
7610 (vrndpq_x_f32): Remove.
7611 (vrndaq_x_f16): Remove.
7612 (vrndaq_x_f32): Remove.
7613 (vrndxq_x_f16): Remove.
7614 (vrndxq_x_f32): Remove.
7615 (__arm_vrndxq_f16): Remove.
7616 (__arm_vrndxq_f32): Remove.
7617 (__arm_vrndq_f16): Remove.
7618 (__arm_vrndq_f32): Remove.
7619 (__arm_vrndpq_f16): Remove.
7620 (__arm_vrndpq_f32): Remove.
7621 (__arm_vrndnq_f16): Remove.
7622 (__arm_vrndnq_f32): Remove.
7623 (__arm_vrndmq_f16): Remove.
7624 (__arm_vrndmq_f32): Remove.
7625 (__arm_vrndaq_f16): Remove.
7626 (__arm_vrndaq_f32): Remove.
7627 (__arm_vrndaq_m_f16): Remove.
7628 (__arm_vrndmq_m_f16): Remove.
7629 (__arm_vrndnq_m_f16): Remove.
7630 (__arm_vrndpq_m_f16): Remove.
7631 (__arm_vrndq_m_f16): Remove.
7632 (__arm_vrndxq_m_f16): Remove.
7633 (__arm_vrndaq_m_f32): Remove.
7634 (__arm_vrndmq_m_f32): Remove.
7635 (__arm_vrndnq_m_f32): Remove.
7636 (__arm_vrndpq_m_f32): Remove.
7637 (__arm_vrndq_m_f32): Remove.
7638 (__arm_vrndxq_m_f32): Remove.
7639 (__arm_vrndq_x_f16): Remove.
7640 (__arm_vrndq_x_f32): Remove.
7641 (__arm_vrndnq_x_f16): Remove.
7642 (__arm_vrndnq_x_f32): Remove.
7643 (__arm_vrndmq_x_f16): Remove.
7644 (__arm_vrndmq_x_f32): Remove.
7645 (__arm_vrndpq_x_f16): Remove.
7646 (__arm_vrndpq_x_f32): Remove.
7647 (__arm_vrndaq_x_f16): Remove.
7648 (__arm_vrndaq_x_f32): Remove.
7649 (__arm_vrndxq_x_f16): Remove.
7650 (__arm_vrndxq_x_f32): Remove.
7651 (__arm_vrndxq): Remove.
7652 (__arm_vrndq): Remove.
7653 (__arm_vrndpq): Remove.
7654 (__arm_vrndnq): Remove.
7655 (__arm_vrndmq): Remove.
7656 (__arm_vrndaq): Remove.
7657 (__arm_vrndaq_m): Remove.
7658 (__arm_vrndmq_m): Remove.
7659 (__arm_vrndnq_m): Remove.
7660 (__arm_vrndpq_m): Remove.
7661 (__arm_vrndq_m): Remove.
7662 (__arm_vrndxq_m): Remove.
7663 (__arm_vrndq_x): Remove.
7664 (__arm_vrndnq_x): Remove.
7665 (__arm_vrndmq_x): Remove.
7666 (__arm_vrndpq_x): Remove.
7667 (__arm_vrndaq_x): Remove.
7668 (__arm_vrndxq_x): Remove.
7669
7670 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7671
7672 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N_NO_U_F): New.
7673 (vabsq, vnegq, vclsq, vclzq, vqabsq, vqnegq): New.
7674 * config/arm/arm-mve-builtins-base.def (vabsq, vnegq, vclsq)
7675 (vclzq, vqabsq, vqnegq): New.
7676 * config/arm/arm-mve-builtins-base.h (vabsq, vnegq, vclsq, vclzq)
7677 (vqabsq, vqnegq): New.
7678 * config/arm/arm_mve.h (vabsq): Remove.
7679 (vabsq_m): Remove.
7680 (vabsq_x): Remove.
7681 (vabsq_f16): Remove.
7682 (vabsq_f32): Remove.
7683 (vabsq_s8): Remove.
7684 (vabsq_s16): Remove.
7685 (vabsq_s32): Remove.
7686 (vabsq_m_s8): Remove.
7687 (vabsq_m_s16): Remove.
7688 (vabsq_m_s32): Remove.
7689 (vabsq_m_f16): Remove.
7690 (vabsq_m_f32): Remove.
7691 (vabsq_x_s8): Remove.
7692 (vabsq_x_s16): Remove.
7693 (vabsq_x_s32): Remove.
7694 (vabsq_x_f16): Remove.
7695 (vabsq_x_f32): Remove.
7696 (__arm_vabsq_s8): Remove.
7697 (__arm_vabsq_s16): Remove.
7698 (__arm_vabsq_s32): Remove.
7699 (__arm_vabsq_m_s8): Remove.
7700 (__arm_vabsq_m_s16): Remove.
7701 (__arm_vabsq_m_s32): Remove.
7702 (__arm_vabsq_x_s8): Remove.
7703 (__arm_vabsq_x_s16): Remove.
7704 (__arm_vabsq_x_s32): Remove.
7705 (__arm_vabsq_f16): Remove.
7706 (__arm_vabsq_f32): Remove.
7707 (__arm_vabsq_m_f16): Remove.
7708 (__arm_vabsq_m_f32): Remove.
7709 (__arm_vabsq_x_f16): Remove.
7710 (__arm_vabsq_x_f32): Remove.
7711 (__arm_vabsq): Remove.
7712 (__arm_vabsq_m): Remove.
7713 (__arm_vabsq_x): Remove.
7714 (vnegq): Remove.
7715 (vnegq_m): Remove.
7716 (vnegq_x): Remove.
7717 (vnegq_f16): Remove.
7718 (vnegq_f32): Remove.
7719 (vnegq_s8): Remove.
7720 (vnegq_s16): Remove.
7721 (vnegq_s32): Remove.
7722 (vnegq_m_s8): Remove.
7723 (vnegq_m_s16): Remove.
7724 (vnegq_m_s32): Remove.
7725 (vnegq_m_f16): Remove.
7726 (vnegq_m_f32): Remove.
7727 (vnegq_x_s8): Remove.
7728 (vnegq_x_s16): Remove.
7729 (vnegq_x_s32): Remove.
7730 (vnegq_x_f16): Remove.
7731 (vnegq_x_f32): Remove.
7732 (__arm_vnegq_s8): Remove.
7733 (__arm_vnegq_s16): Remove.
7734 (__arm_vnegq_s32): Remove.
7735 (__arm_vnegq_m_s8): Remove.
7736 (__arm_vnegq_m_s16): Remove.
7737 (__arm_vnegq_m_s32): Remove.
7738 (__arm_vnegq_x_s8): Remove.
7739 (__arm_vnegq_x_s16): Remove.
7740 (__arm_vnegq_x_s32): Remove.
7741 (__arm_vnegq_f16): Remove.
7742 (__arm_vnegq_f32): Remove.
7743 (__arm_vnegq_m_f16): Remove.
7744 (__arm_vnegq_m_f32): Remove.
7745 (__arm_vnegq_x_f16): Remove.
7746 (__arm_vnegq_x_f32): Remove.
7747 (__arm_vnegq): Remove.
7748 (__arm_vnegq_m): Remove.
7749 (__arm_vnegq_x): Remove.
7750 (vclsq): Remove.
7751 (vclsq_m): Remove.
7752 (vclsq_x): Remove.
7753 (vclsq_s8): Remove.
7754 (vclsq_s16): Remove.
7755 (vclsq_s32): Remove.
7756 (vclsq_m_s8): Remove.
7757 (vclsq_m_s16): Remove.
7758 (vclsq_m_s32): Remove.
7759 (vclsq_x_s8): Remove.
7760 (vclsq_x_s16): Remove.
7761 (vclsq_x_s32): Remove.
7762 (__arm_vclsq_s8): Remove.
7763 (__arm_vclsq_s16): Remove.
7764 (__arm_vclsq_s32): Remove.
7765 (__arm_vclsq_m_s8): Remove.
7766 (__arm_vclsq_m_s16): Remove.
7767 (__arm_vclsq_m_s32): Remove.
7768 (__arm_vclsq_x_s8): Remove.
7769 (__arm_vclsq_x_s16): Remove.
7770 (__arm_vclsq_x_s32): Remove.
7771 (__arm_vclsq): Remove.
7772 (__arm_vclsq_m): Remove.
7773 (__arm_vclsq_x): Remove.
7774 (vclzq): Remove.
7775 (vclzq_m): Remove.
7776 (vclzq_x): Remove.
7777 (vclzq_s8): Remove.
7778 (vclzq_s16): Remove.
7779 (vclzq_s32): Remove.
7780 (vclzq_u8): Remove.
7781 (vclzq_u16): Remove.
7782 (vclzq_u32): Remove.
7783 (vclzq_m_u8): Remove.
7784 (vclzq_m_s8): Remove.
7785 (vclzq_m_u16): Remove.
7786 (vclzq_m_s16): Remove.
7787 (vclzq_m_u32): Remove.
7788 (vclzq_m_s32): Remove.
7789 (vclzq_x_s8): Remove.
7790 (vclzq_x_s16): Remove.
7791 (vclzq_x_s32): Remove.
7792 (vclzq_x_u8): Remove.
7793 (vclzq_x_u16): Remove.
7794 (vclzq_x_u32): Remove.
7795 (__arm_vclzq_s8): Remove.
7796 (__arm_vclzq_s16): Remove.
7797 (__arm_vclzq_s32): Remove.
7798 (__arm_vclzq_u8): Remove.
7799 (__arm_vclzq_u16): Remove.
7800 (__arm_vclzq_u32): Remove.
7801 (__arm_vclzq_m_u8): Remove.
7802 (__arm_vclzq_m_s8): Remove.
7803 (__arm_vclzq_m_u16): Remove.
7804 (__arm_vclzq_m_s16): Remove.
7805 (__arm_vclzq_m_u32): Remove.
7806 (__arm_vclzq_m_s32): Remove.
7807 (__arm_vclzq_x_s8): Remove.
7808 (__arm_vclzq_x_s16): Remove.
7809 (__arm_vclzq_x_s32): Remove.
7810 (__arm_vclzq_x_u8): Remove.
7811 (__arm_vclzq_x_u16): Remove.
7812 (__arm_vclzq_x_u32): Remove.
7813 (__arm_vclzq): Remove.
7814 (__arm_vclzq_m): Remove.
7815 (__arm_vclzq_x): Remove.
7816 (vqabsq): Remove.
7817 (vqnegq): Remove.
7818 (vqnegq_m): Remove.
7819 (vqabsq_m): Remove.
7820 (vqabsq_s8): Remove.
7821 (vqabsq_s16): Remove.
7822 (vqabsq_s32): Remove.
7823 (vqnegq_s8): Remove.
7824 (vqnegq_s16): Remove.
7825 (vqnegq_s32): Remove.
7826 (vqnegq_m_s8): Remove.
7827 (vqabsq_m_s8): Remove.
7828 (vqnegq_m_s16): Remove.
7829 (vqabsq_m_s16): Remove.
7830 (vqnegq_m_s32): Remove.
7831 (vqabsq_m_s32): Remove.
7832 (__arm_vqabsq_s8): Remove.
7833 (__arm_vqabsq_s16): Remove.
7834 (__arm_vqabsq_s32): Remove.
7835 (__arm_vqnegq_s8): Remove.
7836 (__arm_vqnegq_s16): Remove.
7837 (__arm_vqnegq_s32): Remove.
7838 (__arm_vqnegq_m_s8): Remove.
7839 (__arm_vqabsq_m_s8): Remove.
7840 (__arm_vqnegq_m_s16): Remove.
7841 (__arm_vqabsq_m_s16): Remove.
7842 (__arm_vqnegq_m_s32): Remove.
7843 (__arm_vqabsq_m_s32): Remove.
7844 (__arm_vqabsq): Remove.
7845 (__arm_vqnegq): Remove.
7846 (__arm_vqnegq_m): Remove.
7847 (__arm_vqabsq_m): Remove.
7848
7849 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7850
7851 * config/arm/iterators.md (MVE_INT_M_UNARY, MVE_INT_UNARY)
7852 (MVE_FP_UNARY, MVE_FP_M_UNARY): New.
7853 (mve_insn): Add vabs, vcls, vclz, vneg, vqabs, vqneg, vrnda,
7854 vrndm, vrndn, vrndp, vrnd, vrndx.
7855 (isu): Add VABSQ_M_S, VCLSQ_M_S, VCLZQ_M_S, VCLZQ_M_U, VNEGQ_M_S,
7856 VQABSQ_M_S, VQNEGQ_M_S.
7857 (mve_mnemo): New.
7858 * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrndxq_f<mode>)
7859 (mve_vrndq_f<mode>, mve_vrndpq_f<mode>, mve_vrndnq_f<mode>)
7860 (mve_vrndmq_f<mode>, mve_vrndaq_f<mode>): Merge into ...
7861 (@mve_<mve_insn>q_f<mode>): ... this.
7862 (mve_vnegq_f<mode>, mve_vabsq_f<mode>): Merge into ...
7863 (mve_v<absneg_str>q_f<mode>): ... this.
7864 (mve_vnegq_s<mode>, mve_vabsq_s<mode>): Merge into ...
7865 (mve_v<absneg_str>q_s<mode>): ... this.
7866 (mve_vclsq_s<mode>, mve_vqnegq_s<mode>, mve_vqabsq_s<mode>): Merge into ...
7867 (@mve_<mve_insn>q_<supf><mode>): ... this.
7868 (mve_vabsq_m_s<mode>, mve_vclsq_m_s<mode>)
7869 (mve_vclzq_m_<supf><mode>, mve_vnegq_m_s<mode>)
7870 (mve_vqabsq_m_s<mode>, mve_vqnegq_m_s<mode>): Merge into ...
7871 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
7872 (mve_vabsq_m_f<mode>, mve_vnegq_m_f<mode>, mve_vrndaq_m_f<mode>)
7873 (mve_vrndmq_m_f<mode>, mve_vrndnq_m_f<mode>, mve_vrndpq_m_f<mode>)
7874 (mve_vrndxq_m_f<mode>): Merge into ...
7875 (@mve_<mve_insn>q_m_f<mode>): ... this.
7876
7877 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7878
7879 * config/arm/arm-mve-builtins-shapes.cc (unary): New.
7880 * config/arm/arm-mve-builtins-shapes.h (unary): New.
7881
7882 2023-05-09 Jakub Jelinek <jakub@redhat.com>
7883
7884 * mux-utils.h: Fix comment typo, avoides -> avoids.
7885
7886 2023-05-09 Jakub Jelinek <jakub@redhat.com>
7887
7888 PR tree-optimization/109778
7889 * wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on
7890 wi::zext (x, width) rather than x if width != precision, rather
7891 than using wi::zext (right, width) after the shift.
7892 * tree-ssa-ccp.cc (bit_value_binop): Call wi::ext on the results
7893 of wi::lrotate or wi::rrotate.
7894
7895 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
7896
7897 * genmatch.cc (get_out_file): Make static and rename to ...
7898 (choose_output): ... this. Reimplement. Update all uses ...
7899 (decision_tree::gen): ... here and ...
7900 (main): ... here.
7901
7902 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
7903
7904 * genmatch.cc (showUsage): Reimplement as ...
7905 (usage): ...this. Adjust all uses.
7906 (main): Print usage when no arguments. Add missing 'return 1'.
7907
7908 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
7909
7910 * genmatch.cc (header_file): Make static.
7911 (emit_func): Rename to...
7912 (fp_decl): ... this. Adjust all uses.
7913 (fp_decl_done): New function. Use it...
7914 (decision_tree::gen): ... here and...
7915 (write_predicate): ... here.
7916 (main): Adjust.
7917
7918 2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
7919
7920 * ira-conflicts.cc (can_use_same_reg_p): Skip over non-matching
7921 earlyclobbers.
7922
7923 2023-05-08 Roger Sayle <roger@nextmovesoftware.com>
7924 Uros Bizjak <ubizjak@gmail.com>
7925
7926 * config/i386/i386.md (any_or_plus): Move definition earlier.
7927 (*insvti_highpart_1): New define_insn_and_split to overwrite
7928 (insv) the highpart of a TImode register/memory.
7929
7930 2023-05-08 Eugene Rozenfeld <erozen@microsoft.com>
7931
7932 * auto-profile.cc (auto_profile): Check todo from early_inline
7933 to see if cleanup_tree_vfg needs to be called.
7934 (early_inline): Return todo from early_inliner.
7935
7936 2023-05-08 Kito Cheng <kito.cheng@sifive.com>
7937
7938 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vector_info):
7939 New.
7940 (pass_vsetvl::get_block_info): New.
7941 (pass_vsetvl::update_vector_info): New.
7942 (pass_vsetvl::simple_vsetvl): Use get_vector_info.
7943 (pass_vsetvl::compute_local_backward_infos): Ditto.
7944 (pass_vsetvl::transfer_before): Ditto.
7945 (pass_vsetvl::transfer_after): Ditto.
7946 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
7947 (pass_vsetvl::local_eliminate_vsetvl_insn): Ditto.
7948 (pass_vsetvl::cleanup_insns): Ditto.
7949 (pass_vsetvl::compute_local_backward_infos): Use
7950 update_vector_info.
7951
7952 2023-05-08 Jeff Law <jlaw@ventanamicro>
7953
7954 * config/stormy16/stormy16.md (zero_extendhisi2): Fix length.
7955
7956 2023-05-08 Richard Biener <rguenther@suse.de>
7957 Michael Meissner <meissner@linux.ibm.com>
7958
7959 PR middle-end/108623
7960 * tree-core.h (tree_type_common): Bump up precision field to 16 bits.
7961 Align bit fields > 1 bit to at least an 8-bit boundary.
7962
7963 2023-05-08 Andrew Pinski <apinski@marvell.com>
7964
7965 PR tree-optimization/109424
7966 PR tree-optimization/59424
7967 * tree-ssa-phiopt.cc (factor_out_conditional_conversion): Rename to ...
7968 (factor_out_conditional_operation): This and add support for all unary
7969 operations.
7970 (pass_phiopt::execute): Update call to factor_out_conditional_conversion
7971 to call factor_out_conditional_operation instead.
7972
7973 2023-05-08 Andrew Pinski <apinski@marvell.com>
7974
7975 * tree-ssa-phiopt.cc (pass_phiopt::execute): Loop
7976 over factor_out_conditional_conversion.
7977
7978 2023-05-08 Andrew Pinski <apinski@marvell.com>
7979
7980 PR tree-optimization/49959
7981 PR tree-optimization/103771
7982 * tree-ssa-phiopt.cc (pass_phiopt::execute): Support
7983 Diamond shapped bb form for factor_out_conditional_conversion.
7984
7985 2023-05-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7986
7987 * config/riscv/autovec.md (movmisalign<mode>): New pattern.
7988 * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): Delete.
7989 (riscv_vector_get_mask_mode): Ditto.
7990 (get_mask_policy_no_pred): Ditto.
7991 (get_tail_policy_no_pred): Ditto.
7992 (get_mask_mode): New function.
7993 * config/riscv/riscv-v.cc (get_mask_policy_no_pred): Delete.
7994 (get_tail_policy_no_pred): Ditto.
7995 (riscv_vector_mask_mode_p): Ditto.
7996 (riscv_vector_get_mask_mode): Ditto.
7997 (get_mask_mode): New function.
7998 * config/riscv/riscv-vector-builtins.cc (use_real_merge_p): Remove
7999 global extern.
8000 (get_tail_policy_for_pred): Ditto.
8001 * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred): Ditto.
8002 (get_mask_policy_for_pred): Ditto
8003 * config/riscv/riscv.cc (riscv_get_mask_mode): Refine codes.
8004
8005 2023-05-08 Kito Cheng <kito.cheng@sifive.com>
8006
8007 * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi): New.
8008 (riscv_select_multilib): New.
8009 (riscv_compute_multilib): Extract logic to riscv_select_multilib and
8010 also handle select_by_abi.
8011 * config/riscv/elf.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Change it
8012 to select_by_abi_arch_cmodel from 1.
8013 * config/riscv/linux.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Define.
8014 * config/riscv/riscv-opts.h (enum riscv_multilib_select_kind): New.
8015
8016 2023-05-08 Alexander Monakov <amonakov@ispras.ru>
8017
8018 * Makefile.in: (gimple-match-head.o-warn): Remove.
8019 (GIMPLE_MATCH_PD_SEQ_SRC): Do not depend on
8020 gimple-match-exports.cc.
8021 (gimple-match-auto.h): Only depend on s-gimple-match.
8022 (generic-match-auto.h): Likewise.
8023
8024 2023-05-08 Andrew Pinski <apinski@marvell.com>
8025
8026 PR tree-optimization/109691
8027 * tree-ssa-dce.cc (simple_dce_from_worklist): Add need_eh_cleanup
8028 argument.
8029 If the removed statement can throw, have need_eh_cleanup
8030 include the bb of that statement.
8031 * tree-ssa-dce.h (simple_dce_from_worklist): Update declaration.
8032 * tree-ssa-propagate.cc (struct prop_stats_d): Remove
8033 num_dce.
8034 (substitute_and_fold_dom_walker::substitute_and_fold_dom_walker):
8035 Initialize dceworklist instead of stmts_to_remove.
8036 (substitute_and_fold_dom_walker::~substitute_and_fold_dom_walker):
8037 Destore dceworklist instead of stmts_to_remove.
8038 (substitute_and_fold_dom_walker::before_dom_children):
8039 Set dceworklist instead of adding to stmts_to_remove.
8040 (substitute_and_fold_engine::substitute_and_fold):
8041 Call simple_dce_from_worklist instead of poping
8042 from the list.
8043 Don't update the stat on removal statements.
8044
8045 2023-05-07 Andrew Pinski <apinski@marvell.com>
8046
8047 PR target/109762
8048 * config/aarch64/aarch64-builtins.cc (aarch64_simd_switcher::aarch64_simd_switcher):
8049 Change argument type to aarch64_feature_flags.
8050 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Change
8051 constructor argument type to aarch64_feature_flags.
8052 Change m_old_asm_isa_flags to be aarch64_feature_flags.
8053
8054 2023-05-07 Jiufu Guo <guojiufu@linux.ibm.com>
8055
8056 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Generate
8057 more parallel code if can_create_pseudo_p.
8058
8059 2023-05-07 Roger Sayle <roger@nextmovesoftware.com>
8060
8061 PR target/43644
8062 * lower-subreg.cc (resolve_simple_move): Don't emit a clobber
8063 immediately before moving a multi-word register by parts.
8064
8065 2023-05-06 Jeff Law <jlaw@ventanamicro>
8066
8067 * config/riscv/riscv-v.cc (riscv_vector_preferred_simd_mode): Delete.
8068
8069 2023-05-06 Michael Collison <collison@rivosinc.com>
8070
8071 * tree-vect-slp.cc (can_duplicate_and_interleave_p):
8072 Check that GET_MODE_NUNITS is a multiple of 2.
8073
8074 2023-05-06 Michael Collison <collison@rivosinc.com>
8075
8076 * config/riscv/riscv.cc
8077 (riscv_estimated_poly_value): Implement
8078 TARGET_ESTIMATED_POLY_VALUE.
8079 (riscv_preferred_simd_mode): Implement
8080 TARGET_VECTORIZE_PREFERRED_SIMD_MODE.
8081 (riscv_get_mask_mode): Implement TARGET_VECTORIZE_GET_MASK_MODE.
8082 (riscv_empty_mask_is_expensive): Implement
8083 TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE.
8084 (riscv_vectorize_create_costs): Implement
8085 TARGET_VECTORIZE_CREATE_COSTS.
8086 (riscv_support_vector_misalignment): Implement
8087 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT.
8088 (TARGET_ESTIMATED_POLY_VALUE): Register target macro.
8089 (TARGET_VECTORIZE_GET_MASK_MODE): Ditto.
8090 (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Ditto.
8091 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Ditto.
8092
8093 2023-05-06 Jeff Law <jlaw@ventanamicro>
8094
8095 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Remove
8096 duplicate definition.
8097
8098 2023-05-06 Michael Collison <collison@rivosinc.com>
8099
8100 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): New function.
8101 (riscv_vector_preferred_simd_mode): Ditto.
8102 (get_mask_policy_no_pred): Ditto.
8103 (get_tail_policy_no_pred): Ditto.
8104 (riscv_vector_mask_mode_p): Ditto.
8105 (riscv_vector_get_mask_mode): Ditto.
8106
8107 2023-05-06 Michael Collison <collison@rivosinc.com>
8108
8109 * config/riscv/riscv-vector-builtins.cc (get_tail_policy_for_pred):
8110 Remove static declaration to to make externally visible.
8111 (get_mask_policy_for_pred): Ditto.
8112 * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred):
8113 New external declaration.
8114 (get_mask_policy_for_pred): Ditto.
8115
8116 2023-05-06 Michael Collison <collison@rivosinc.com>
8117
8118 * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): New.
8119 (riscv_vector_get_mask_mode): Ditto.
8120 (get_mask_policy_no_pred): Ditto.
8121 (get_tail_policy_no_pred): Ditto.
8122
8123 2023-05-06 Xi Ruoyao <xry111@xry111.site>
8124
8125 * config/loongarch/loongarch.h (struct machine_function): Add
8126 reg_is_wrapped_separately array for register wrapping
8127 information.
8128 * config/loongarch/loongarch.cc
8129 (loongarch_get_separate_components): New function.
8130 (loongarch_components_for_bb): Likewise.
8131 (loongarch_disqualify_components): Likewise.
8132 (loongarch_process_components): Likewise.
8133 (loongarch_emit_prologue_components): Likewise.
8134 (loongarch_emit_epilogue_components): Likewise.
8135 (loongarch_set_handled_components): Likewise.
8136 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
8137 (TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
8138 (TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
8139 (TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
8140 (TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
8141 (TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
8142 (loongarch_for_each_saved_reg): Skip registers that are wrapped
8143 separately.
8144
8145 2023-05-06 Xi Ruoyao <xry111@xry111.site>
8146
8147 PR other/109522
8148 * Makefile.in (s-macro_list): Pass -nostdinc to
8149 $(GCC_FOR_TARGET).
8150
8151 2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8152
8153 * config/riscv/riscv-protos.h (preferred_simd_mode): New function.
8154 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Ditto.
8155 (preferred_simd_mode): Ditto.
8156 * config/riscv/riscv.cc (riscv_get_arg_info): Handle RVV type in function arg.
8157 (riscv_convert_vector_bits): Adjust for RVV auto-vectorization.
8158 (riscv_preferred_simd_mode): New function.
8159 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): New target hook support.
8160 * config/riscv/vector.md: Add autovec.md.
8161 * config/riscv/autovec.md: New file.
8162
8163 2023-05-06 Jakub Jelinek <jakub@redhat.com>
8164
8165 * real.h (dconst_pi): Define.
8166 (dconst_e_ptr): Formatting fix.
8167 (dconst_pi_ptr): Declare.
8168 * real.cc (dconst_pi_ptr): New function.
8169 * gimple-range-op.cc (cfn_sincos::fold_range): Intersect the generic
8170 boundaries range with range computed from sin/cos of the particular
8171 bounds if the argument range is shorter than 2*pi.
8172 (cfn_sincos::op1_range): Take bulps into account when determining
8173 which result ranges are always invalid or behave like known NAN.
8174
8175 2023-05-06 Aldy Hernandez <aldyh@redhat.com>
8176
8177 * gimple-range-cache.cc (sbr_sparse_bitmap::set_bb_range): Do not
8178 pass type to vrange_storage::equal_p.
8179 * value-range-storage.cc (vrange_storage::equal_p): Remove type.
8180 (irange_storage::equal_p): Same.
8181 (frange_storage::equal_p): Same.
8182 * value-range-storage.h (class frange_storage): Same.
8183
8184 2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8185
8186 PR target/109748
8187 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): Remove it.
8188 (pass_vsetvl::local_eliminate_vsetvl_insn): New function.
8189
8190 2023-05-06 liuhongt <hongtao.liu@intel.com>
8191
8192 * combine.cc (maybe_swap_commutative_operands): Canonicalize
8193 vec_merge when mask is constant.
8194 * doc/md.texi: Document vec_merge canonicalization.
8195
8196 2023-05-06 Jakub Jelinek <jakub@redhat.com>
8197
8198 * value-range.h (frange_arithmetic): Declare.
8199 * range-op-float.cc (frange_arithmetic): No longer static.
8200 * gimple-range-op.cc (frange_mpfr_arg1): New function.
8201 (cfn_sqrt::fold_range): Intersect the generic boundaries range
8202 with range computed from sqrt of the particular bounds.
8203 (cfn_sqrt::op1_range): Intersect the generic boundaries range
8204 with range computed from squared particular bounds.
8205
8206 2023-05-06 Jakub Jelinek <jakub@redhat.com>
8207
8208 * Makefile.in (check_p_numbers): Rename to one_to_9999, move
8209 earlier with helper variables also renamed.
8210 (MATCH_SPLUT_SEQ): Use $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999))
8211 instead of $(shell seq 1 $(NUM_MATCH_SPLITS)).
8212 (check_p_subdirs): Use $(one_to_9999) instead of $(check_p_numbers).
8213
8214 2023-05-06 Hans-Peter Nilsson <hp@axis.com>
8215
8216 * config/cris/cris.md (splitop): Add PLUS.
8217 * config/cris/cris.cc (cris_split_constant): Also handle
8218 PLUS when a split into two insns may be useful.
8219
8220 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
8221
8222 * config/cris/cris.md (movandsplit1): New define_peephole2.
8223
8224 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
8225
8226 * config/cris/cris.md (lsrandsplit1): New define_peephole2.
8227
8228 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
8229
8230 * doc/md.texi (define_peephole2): Document order of scanning.
8231
8232 2023-05-05 Pan Li <pan2.li@intel.com>
8233 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
8234
8235 * config/riscv/vector.md: Allow const as the operand of RVV
8236 indexed load/store.
8237
8238 2023-05-05 Pan Li <pan2.li@intel.com>
8239
8240 * config/riscv/riscv.h (VECTOR_STORE_FLAG_VALUE): Add new macro
8241 consumed by simplify_rtx.
8242
8243 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8244
8245 * config/arm/arm-mve-builtins-base.cc (vrshrq, vshrq): New.
8246 * config/arm/arm-mve-builtins-base.def (vrshrq, vshrq): New.
8247 * config/arm/arm-mve-builtins-base.h (vrshrq, vshrq): New.
8248 * config/arm/arm_mve.h (vshrq): Remove.
8249 (vrshrq): Remove.
8250 (vrshrq_m): Remove.
8251 (vshrq_m): Remove.
8252 (vrshrq_x): Remove.
8253 (vshrq_x): Remove.
8254 (vshrq_n_s8): Remove.
8255 (vshrq_n_s16): Remove.
8256 (vshrq_n_s32): Remove.
8257 (vshrq_n_u8): Remove.
8258 (vshrq_n_u16): Remove.
8259 (vshrq_n_u32): Remove.
8260 (vrshrq_n_u8): Remove.
8261 (vrshrq_n_s8): Remove.
8262 (vrshrq_n_u16): Remove.
8263 (vrshrq_n_s16): Remove.
8264 (vrshrq_n_u32): Remove.
8265 (vrshrq_n_s32): Remove.
8266 (vrshrq_m_n_s8): Remove.
8267 (vrshrq_m_n_s32): Remove.
8268 (vrshrq_m_n_s16): Remove.
8269 (vrshrq_m_n_u8): Remove.
8270 (vrshrq_m_n_u32): Remove.
8271 (vrshrq_m_n_u16): Remove.
8272 (vshrq_m_n_s8): Remove.
8273 (vshrq_m_n_s32): Remove.
8274 (vshrq_m_n_s16): Remove.
8275 (vshrq_m_n_u8): Remove.
8276 (vshrq_m_n_u32): Remove.
8277 (vshrq_m_n_u16): Remove.
8278 (vrshrq_x_n_s8): Remove.
8279 (vrshrq_x_n_s16): Remove.
8280 (vrshrq_x_n_s32): Remove.
8281 (vrshrq_x_n_u8): Remove.
8282 (vrshrq_x_n_u16): Remove.
8283 (vrshrq_x_n_u32): Remove.
8284 (vshrq_x_n_s8): Remove.
8285 (vshrq_x_n_s16): Remove.
8286 (vshrq_x_n_s32): Remove.
8287 (vshrq_x_n_u8): Remove.
8288 (vshrq_x_n_u16): Remove.
8289 (vshrq_x_n_u32): Remove.
8290 (__arm_vshrq_n_s8): Remove.
8291 (__arm_vshrq_n_s16): Remove.
8292 (__arm_vshrq_n_s32): Remove.
8293 (__arm_vshrq_n_u8): Remove.
8294 (__arm_vshrq_n_u16): Remove.
8295 (__arm_vshrq_n_u32): Remove.
8296 (__arm_vrshrq_n_u8): Remove.
8297 (__arm_vrshrq_n_s8): Remove.
8298 (__arm_vrshrq_n_u16): Remove.
8299 (__arm_vrshrq_n_s16): Remove.
8300 (__arm_vrshrq_n_u32): Remove.
8301 (__arm_vrshrq_n_s32): Remove.
8302 (__arm_vrshrq_m_n_s8): Remove.
8303 (__arm_vrshrq_m_n_s32): Remove.
8304 (__arm_vrshrq_m_n_s16): Remove.
8305 (__arm_vrshrq_m_n_u8): Remove.
8306 (__arm_vrshrq_m_n_u32): Remove.
8307 (__arm_vrshrq_m_n_u16): Remove.
8308 (__arm_vshrq_m_n_s8): Remove.
8309 (__arm_vshrq_m_n_s32): Remove.
8310 (__arm_vshrq_m_n_s16): Remove.
8311 (__arm_vshrq_m_n_u8): Remove.
8312 (__arm_vshrq_m_n_u32): Remove.
8313 (__arm_vshrq_m_n_u16): Remove.
8314 (__arm_vrshrq_x_n_s8): Remove.
8315 (__arm_vrshrq_x_n_s16): Remove.
8316 (__arm_vrshrq_x_n_s32): Remove.
8317 (__arm_vrshrq_x_n_u8): Remove.
8318 (__arm_vrshrq_x_n_u16): Remove.
8319 (__arm_vrshrq_x_n_u32): Remove.
8320 (__arm_vshrq_x_n_s8): Remove.
8321 (__arm_vshrq_x_n_s16): Remove.
8322 (__arm_vshrq_x_n_s32): Remove.
8323 (__arm_vshrq_x_n_u8): Remove.
8324 (__arm_vshrq_x_n_u16): Remove.
8325 (__arm_vshrq_x_n_u32): Remove.
8326 (__arm_vshrq): Remove.
8327 (__arm_vrshrq): Remove.
8328 (__arm_vrshrq_m): Remove.
8329 (__arm_vshrq_m): Remove.
8330 (__arm_vrshrq_x): Remove.
8331 (__arm_vshrq_x): Remove.
8332
8333 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8334
8335 * config/arm/iterators.md (MVE_VSHRQ_M_N, MVE_VSHRQ_N): New.
8336 (mve_insn): Add vrshr, vshr.
8337 * config/arm/mve.md (mve_vshrq_n_<supf><mode>)
8338 (mve_vrshrq_n_<supf><mode>): Merge into ...
8339 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
8340 (mve_vrshrq_m_n_<supf><mode>, mve_vshrq_m_n_<supf><mode>): Merge
8341 into ...
8342 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
8343
8344 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8345
8346 * config/arm/arm-mve-builtins-shapes.cc (binary_rshift): New.
8347 * config/arm/arm-mve-builtins-shapes.h (binary_rshift): New.
8348
8349 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8350
8351 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_U_F): New.
8352 (vqshrunbq, vqshruntq, vqrshrunbq, vqrshruntq): New.
8353 * config/arm/arm-mve-builtins-base.def (vqshrunbq, vqshruntq)
8354 (vqrshrunbq, vqrshruntq): New.
8355 * config/arm/arm-mve-builtins-base.h (vqshrunbq, vqshruntq)
8356 (vqrshrunbq, vqrshruntq): New.
8357 * config/arm/arm-mve-builtins.cc
8358 (function_instance::has_inactive_argument): Handle vqshrunbq,
8359 vqshruntq, vqrshrunbq, vqrshruntq.
8360 * config/arm/arm_mve.h (vqrshrunbq): Remove.
8361 (vqrshruntq): Remove.
8362 (vqrshrunbq_m): Remove.
8363 (vqrshruntq_m): Remove.
8364 (vqrshrunbq_n_s16): Remove.
8365 (vqrshrunbq_n_s32): Remove.
8366 (vqrshruntq_n_s16): Remove.
8367 (vqrshruntq_n_s32): Remove.
8368 (vqrshrunbq_m_n_s32): Remove.
8369 (vqrshrunbq_m_n_s16): Remove.
8370 (vqrshruntq_m_n_s32): Remove.
8371 (vqrshruntq_m_n_s16): Remove.
8372 (__arm_vqrshrunbq_n_s16): Remove.
8373 (__arm_vqrshrunbq_n_s32): Remove.
8374 (__arm_vqrshruntq_n_s16): Remove.
8375 (__arm_vqrshruntq_n_s32): Remove.
8376 (__arm_vqrshrunbq_m_n_s32): Remove.
8377 (__arm_vqrshrunbq_m_n_s16): Remove.
8378 (__arm_vqrshruntq_m_n_s32): Remove.
8379 (__arm_vqrshruntq_m_n_s16): Remove.
8380 (__arm_vqrshrunbq): Remove.
8381 (__arm_vqrshruntq): Remove.
8382 (__arm_vqrshrunbq_m): Remove.
8383 (__arm_vqrshruntq_m): Remove.
8384 (vqshrunbq): Remove.
8385 (vqshruntq): Remove.
8386 (vqshrunbq_m): Remove.
8387 (vqshruntq_m): Remove.
8388 (vqshrunbq_n_s16): Remove.
8389 (vqshruntq_n_s16): Remove.
8390 (vqshrunbq_n_s32): Remove.
8391 (vqshruntq_n_s32): Remove.
8392 (vqshrunbq_m_n_s32): Remove.
8393 (vqshrunbq_m_n_s16): Remove.
8394 (vqshruntq_m_n_s32): Remove.
8395 (vqshruntq_m_n_s16): Remove.
8396 (__arm_vqshrunbq_n_s16): Remove.
8397 (__arm_vqshruntq_n_s16): Remove.
8398 (__arm_vqshrunbq_n_s32): Remove.
8399 (__arm_vqshruntq_n_s32): Remove.
8400 (__arm_vqshrunbq_m_n_s32): Remove.
8401 (__arm_vqshrunbq_m_n_s16): Remove.
8402 (__arm_vqshruntq_m_n_s32): Remove.
8403 (__arm_vqshruntq_m_n_s16): Remove.
8404 (__arm_vqshrunbq): Remove.
8405 (__arm_vqshruntq): Remove.
8406 (__arm_vqshrunbq_m): Remove.
8407 (__arm_vqshruntq_m): Remove.
8408
8409 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8410
8411 * config/arm/iterators.md (MVE_SHRN_N): Add VQRSHRUNBQ,
8412 VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
8413 (MVE_SHRN_M_N): Likewise.
8414 (mve_insn): Add vqrshrunb, vqrshrunt, vqshrunb, vqshrunt.
8415 (isu): Add VQRSHRUNBQ, VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
8416 (supf): Likewise.
8417 * config/arm/mve.md (mve_vqrshrunbq_n_s<mode>): Remove.
8418 (mve_vqrshruntq_n_s<mode>): Remove.
8419 (mve_vqshrunbq_n_s<mode>): Remove.
8420 (mve_vqshruntq_n_s<mode>): Remove.
8421 (mve_vqrshrunbq_m_n_s<mode>): Remove.
8422 (mve_vqrshruntq_m_n_s<mode>): Remove.
8423 (mve_vqshrunbq_m_n_s<mode>): Remove.
8424 (mve_vqshruntq_m_n_s<mode>): Remove.
8425
8426 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8427
8428 * config/arm/arm-mve-builtins-shapes.cc
8429 (binary_rshift_narrow_unsigned): New.
8430 * config/arm/arm-mve-builtins-shapes.h
8431 (binary_rshift_narrow_unsigned): New.
8432
8433 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8434
8435 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_F): New.
8436 (vshrnbq, vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq)
8437 (vqrshrnbq, vqrshrntq): New.
8438 * config/arm/arm-mve-builtins-base.def (vshrnbq, vshrntq)
8439 (vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq):
8440 New.
8441 * config/arm/arm-mve-builtins-base.h (vshrnbq, vshrntq, vrshrnbq)
8442 (vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq): New.
8443 * config/arm/arm-mve-builtins.cc
8444 (function_instance::has_inactive_argument): Handle vshrnbq,
8445 vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq,
8446 vqrshrntq.
8447 * config/arm/arm_mve.h (vshrnbq): Remove.
8448 (vshrntq): Remove.
8449 (vshrnbq_m): Remove.
8450 (vshrntq_m): Remove.
8451 (vshrnbq_n_s16): Remove.
8452 (vshrntq_n_s16): Remove.
8453 (vshrnbq_n_u16): Remove.
8454 (vshrntq_n_u16): Remove.
8455 (vshrnbq_n_s32): Remove.
8456 (vshrntq_n_s32): Remove.
8457 (vshrnbq_n_u32): Remove.
8458 (vshrntq_n_u32): Remove.
8459 (vshrnbq_m_n_s32): Remove.
8460 (vshrnbq_m_n_s16): Remove.
8461 (vshrnbq_m_n_u32): Remove.
8462 (vshrnbq_m_n_u16): Remove.
8463 (vshrntq_m_n_s32): Remove.
8464 (vshrntq_m_n_s16): Remove.
8465 (vshrntq_m_n_u32): Remove.
8466 (vshrntq_m_n_u16): Remove.
8467 (__arm_vshrnbq_n_s16): Remove.
8468 (__arm_vshrntq_n_s16): Remove.
8469 (__arm_vshrnbq_n_u16): Remove.
8470 (__arm_vshrntq_n_u16): Remove.
8471 (__arm_vshrnbq_n_s32): Remove.
8472 (__arm_vshrntq_n_s32): Remove.
8473 (__arm_vshrnbq_n_u32): Remove.
8474 (__arm_vshrntq_n_u32): Remove.
8475 (__arm_vshrnbq_m_n_s32): Remove.
8476 (__arm_vshrnbq_m_n_s16): Remove.
8477 (__arm_vshrnbq_m_n_u32): Remove.
8478 (__arm_vshrnbq_m_n_u16): Remove.
8479 (__arm_vshrntq_m_n_s32): Remove.
8480 (__arm_vshrntq_m_n_s16): Remove.
8481 (__arm_vshrntq_m_n_u32): Remove.
8482 (__arm_vshrntq_m_n_u16): Remove.
8483 (__arm_vshrnbq): Remove.
8484 (__arm_vshrntq): Remove.
8485 (__arm_vshrnbq_m): Remove.
8486 (__arm_vshrntq_m): Remove.
8487 (vrshrnbq): Remove.
8488 (vrshrntq): Remove.
8489 (vrshrnbq_m): Remove.
8490 (vrshrntq_m): Remove.
8491 (vrshrnbq_n_s16): Remove.
8492 (vrshrntq_n_s16): Remove.
8493 (vrshrnbq_n_u16): Remove.
8494 (vrshrntq_n_u16): Remove.
8495 (vrshrnbq_n_s32): Remove.
8496 (vrshrntq_n_s32): Remove.
8497 (vrshrnbq_n_u32): Remove.
8498 (vrshrntq_n_u32): Remove.
8499 (vrshrnbq_m_n_s32): Remove.
8500 (vrshrnbq_m_n_s16): Remove.
8501 (vrshrnbq_m_n_u32): Remove.
8502 (vrshrnbq_m_n_u16): Remove.
8503 (vrshrntq_m_n_s32): Remove.
8504 (vrshrntq_m_n_s16): Remove.
8505 (vrshrntq_m_n_u32): Remove.
8506 (vrshrntq_m_n_u16): Remove.
8507 (__arm_vrshrnbq_n_s16): Remove.
8508 (__arm_vrshrntq_n_s16): Remove.
8509 (__arm_vrshrnbq_n_u16): Remove.
8510 (__arm_vrshrntq_n_u16): Remove.
8511 (__arm_vrshrnbq_n_s32): Remove.
8512 (__arm_vrshrntq_n_s32): Remove.
8513 (__arm_vrshrnbq_n_u32): Remove.
8514 (__arm_vrshrntq_n_u32): Remove.
8515 (__arm_vrshrnbq_m_n_s32): Remove.
8516 (__arm_vrshrnbq_m_n_s16): Remove.
8517 (__arm_vrshrnbq_m_n_u32): Remove.
8518 (__arm_vrshrnbq_m_n_u16): Remove.
8519 (__arm_vrshrntq_m_n_s32): Remove.
8520 (__arm_vrshrntq_m_n_s16): Remove.
8521 (__arm_vrshrntq_m_n_u32): Remove.
8522 (__arm_vrshrntq_m_n_u16): Remove.
8523 (__arm_vrshrnbq): Remove.
8524 (__arm_vrshrntq): Remove.
8525 (__arm_vrshrnbq_m): Remove.
8526 (__arm_vrshrntq_m): Remove.
8527 (vqshrnbq): Remove.
8528 (vqshrntq): Remove.
8529 (vqshrnbq_m): Remove.
8530 (vqshrntq_m): Remove.
8531 (vqshrnbq_n_s16): Remove.
8532 (vqshrntq_n_s16): Remove.
8533 (vqshrnbq_n_u16): Remove.
8534 (vqshrntq_n_u16): Remove.
8535 (vqshrnbq_n_s32): Remove.
8536 (vqshrntq_n_s32): Remove.
8537 (vqshrnbq_n_u32): Remove.
8538 (vqshrntq_n_u32): Remove.
8539 (vqshrnbq_m_n_s32): Remove.
8540 (vqshrnbq_m_n_s16): Remove.
8541 (vqshrnbq_m_n_u32): Remove.
8542 (vqshrnbq_m_n_u16): Remove.
8543 (vqshrntq_m_n_s32): Remove.
8544 (vqshrntq_m_n_s16): Remove.
8545 (vqshrntq_m_n_u32): Remove.
8546 (vqshrntq_m_n_u16): Remove.
8547 (__arm_vqshrnbq_n_s16): Remove.
8548 (__arm_vqshrntq_n_s16): Remove.
8549 (__arm_vqshrnbq_n_u16): Remove.
8550 (__arm_vqshrntq_n_u16): Remove.
8551 (__arm_vqshrnbq_n_s32): Remove.
8552 (__arm_vqshrntq_n_s32): Remove.
8553 (__arm_vqshrnbq_n_u32): Remove.
8554 (__arm_vqshrntq_n_u32): Remove.
8555 (__arm_vqshrnbq_m_n_s32): Remove.
8556 (__arm_vqshrnbq_m_n_s16): Remove.
8557 (__arm_vqshrnbq_m_n_u32): Remove.
8558 (__arm_vqshrnbq_m_n_u16): Remove.
8559 (__arm_vqshrntq_m_n_s32): Remove.
8560 (__arm_vqshrntq_m_n_s16): Remove.
8561 (__arm_vqshrntq_m_n_u32): Remove.
8562 (__arm_vqshrntq_m_n_u16): Remove.
8563 (__arm_vqshrnbq): Remove.
8564 (__arm_vqshrntq): Remove.
8565 (__arm_vqshrnbq_m): Remove.
8566 (__arm_vqshrntq_m): Remove.
8567 (vqrshrnbq): Remove.
8568 (vqrshrntq): Remove.
8569 (vqrshrnbq_m): Remove.
8570 (vqrshrntq_m): Remove.
8571 (vqrshrnbq_n_s16): Remove.
8572 (vqrshrnbq_n_u16): Remove.
8573 (vqrshrnbq_n_s32): Remove.
8574 (vqrshrnbq_n_u32): Remove.
8575 (vqrshrntq_n_s16): Remove.
8576 (vqrshrntq_n_u16): Remove.
8577 (vqrshrntq_n_s32): Remove.
8578 (vqrshrntq_n_u32): Remove.
8579 (vqrshrnbq_m_n_s32): Remove.
8580 (vqrshrnbq_m_n_s16): Remove.
8581 (vqrshrnbq_m_n_u32): Remove.
8582 (vqrshrnbq_m_n_u16): Remove.
8583 (vqrshrntq_m_n_s32): Remove.
8584 (vqrshrntq_m_n_s16): Remove.
8585 (vqrshrntq_m_n_u32): Remove.
8586 (vqrshrntq_m_n_u16): Remove.
8587 (__arm_vqrshrnbq_n_s16): Remove.
8588 (__arm_vqrshrnbq_n_u16): Remove.
8589 (__arm_vqrshrnbq_n_s32): Remove.
8590 (__arm_vqrshrnbq_n_u32): Remove.
8591 (__arm_vqrshrntq_n_s16): Remove.
8592 (__arm_vqrshrntq_n_u16): Remove.
8593 (__arm_vqrshrntq_n_s32): Remove.
8594 (__arm_vqrshrntq_n_u32): Remove.
8595 (__arm_vqrshrnbq_m_n_s32): Remove.
8596 (__arm_vqrshrnbq_m_n_s16): Remove.
8597 (__arm_vqrshrnbq_m_n_u32): Remove.
8598 (__arm_vqrshrnbq_m_n_u16): Remove.
8599 (__arm_vqrshrntq_m_n_s32): Remove.
8600 (__arm_vqrshrntq_m_n_s16): Remove.
8601 (__arm_vqrshrntq_m_n_u32): Remove.
8602 (__arm_vqrshrntq_m_n_u16): Remove.
8603 (__arm_vqrshrnbq): Remove.
8604 (__arm_vqrshrntq): Remove.
8605 (__arm_vqrshrnbq_m): Remove.
8606 (__arm_vqrshrntq_m): Remove.
8607
8608 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8609
8610 * config/arm/iterators.md (MVE_SHRN_N, MVE_SHRN_M_N): New.
8611 (mve_insn): Add vqrshrnb, vqrshrnt, vqshrnb, vqshrnt, vrshrnb,
8612 vrshrnt, vshrnb, vshrnt.
8613 (isu): New.
8614 * config/arm/mve.md (mve_vqrshrnbq_n_<supf><mode>)
8615 (mve_vqrshrntq_n_<supf><mode>, mve_vqshrnbq_n_<supf><mode>)
8616 (mve_vqshrntq_n_<supf><mode>, mve_vrshrnbq_n_<supf><mode>)
8617 (mve_vrshrntq_n_<supf><mode>, mve_vshrnbq_n_<supf><mode>)
8618 (mve_vshrntq_n_<supf><mode>): Merge into ...
8619 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
8620 (mve_vqrshrnbq_m_n_<supf><mode>, mve_vqrshrntq_m_n_<supf><mode>)
8621 (mve_vqshrnbq_m_n_<supf><mode>, mve_vqshrntq_m_n_<supf><mode>)
8622 (mve_vrshrnbq_m_n_<supf><mode>, mve_vrshrntq_m_n_<supf><mode>)
8623 (mve_vshrnbq_m_n_<supf><mode>, mve_vshrntq_m_n_<supf><mode>):
8624 Merge into ...
8625 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
8626
8627 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8628
8629 * config/arm/arm-mve-builtins-shapes.cc (binary_rshift_narrow):
8630 New.
8631 * config/arm/arm-mve-builtins-shapes.h (binary_rshift_narrow): New.
8632
8633 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8634
8635 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_NO_F): New.
8636 (vmaxq, vminq): New.
8637 * config/arm/arm-mve-builtins-base.def (vmaxq, vminq): New.
8638 * config/arm/arm-mve-builtins-base.h (vmaxq, vminq): New.
8639 * config/arm/arm_mve.h (vminq): Remove.
8640 (vmaxq): Remove.
8641 (vmaxq_m): Remove.
8642 (vminq_m): Remove.
8643 (vminq_x): Remove.
8644 (vmaxq_x): Remove.
8645 (vminq_u8): Remove.
8646 (vmaxq_u8): Remove.
8647 (vminq_s8): Remove.
8648 (vmaxq_s8): Remove.
8649 (vminq_u16): Remove.
8650 (vmaxq_u16): Remove.
8651 (vminq_s16): Remove.
8652 (vmaxq_s16): Remove.
8653 (vminq_u32): Remove.
8654 (vmaxq_u32): Remove.
8655 (vminq_s32): Remove.
8656 (vmaxq_s32): Remove.
8657 (vmaxq_m_s8): Remove.
8658 (vmaxq_m_s32): Remove.
8659 (vmaxq_m_s16): Remove.
8660 (vmaxq_m_u8): Remove.
8661 (vmaxq_m_u32): Remove.
8662 (vmaxq_m_u16): Remove.
8663 (vminq_m_s8): Remove.
8664 (vminq_m_s32): Remove.
8665 (vminq_m_s16): Remove.
8666 (vminq_m_u8): Remove.
8667 (vminq_m_u32): Remove.
8668 (vminq_m_u16): Remove.
8669 (vminq_x_s8): Remove.
8670 (vminq_x_s16): Remove.
8671 (vminq_x_s32): Remove.
8672 (vminq_x_u8): Remove.
8673 (vminq_x_u16): Remove.
8674 (vminq_x_u32): Remove.
8675 (vmaxq_x_s8): Remove.
8676 (vmaxq_x_s16): Remove.
8677 (vmaxq_x_s32): Remove.
8678 (vmaxq_x_u8): Remove.
8679 (vmaxq_x_u16): Remove.
8680 (vmaxq_x_u32): Remove.
8681 (__arm_vminq_u8): Remove.
8682 (__arm_vmaxq_u8): Remove.
8683 (__arm_vminq_s8): Remove.
8684 (__arm_vmaxq_s8): Remove.
8685 (__arm_vminq_u16): Remove.
8686 (__arm_vmaxq_u16): Remove.
8687 (__arm_vminq_s16): Remove.
8688 (__arm_vmaxq_s16): Remove.
8689 (__arm_vminq_u32): Remove.
8690 (__arm_vmaxq_u32): Remove.
8691 (__arm_vminq_s32): Remove.
8692 (__arm_vmaxq_s32): Remove.
8693 (__arm_vmaxq_m_s8): Remove.
8694 (__arm_vmaxq_m_s32): Remove.
8695 (__arm_vmaxq_m_s16): Remove.
8696 (__arm_vmaxq_m_u8): Remove.
8697 (__arm_vmaxq_m_u32): Remove.
8698 (__arm_vmaxq_m_u16): Remove.
8699 (__arm_vminq_m_s8): Remove.
8700 (__arm_vminq_m_s32): Remove.
8701 (__arm_vminq_m_s16): Remove.
8702 (__arm_vminq_m_u8): Remove.
8703 (__arm_vminq_m_u32): Remove.
8704 (__arm_vminq_m_u16): Remove.
8705 (__arm_vminq_x_s8): Remove.
8706 (__arm_vminq_x_s16): Remove.
8707 (__arm_vminq_x_s32): Remove.
8708 (__arm_vminq_x_u8): Remove.
8709 (__arm_vminq_x_u16): Remove.
8710 (__arm_vminq_x_u32): Remove.
8711 (__arm_vmaxq_x_s8): Remove.
8712 (__arm_vmaxq_x_s16): Remove.
8713 (__arm_vmaxq_x_s32): Remove.
8714 (__arm_vmaxq_x_u8): Remove.
8715 (__arm_vmaxq_x_u16): Remove.
8716 (__arm_vmaxq_x_u32): Remove.
8717 (__arm_vminq): Remove.
8718 (__arm_vmaxq): Remove.
8719 (__arm_vmaxq_m): Remove.
8720 (__arm_vminq_m): Remove.
8721 (__arm_vminq_x): Remove.
8722 (__arm_vmaxq_x): Remove.
8723
8724 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8725
8726 * config/arm/iterators.md (MAX_MIN_SU): New.
8727 (max_min_su_str): New.
8728 (max_min_supf): New.
8729 * config/arm/mve.md (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>)
8730 (mve_vminq_s<mode>, mve_vminq_u<mode>): Merge into ...
8731 (mve_<max_min_su_str>q_<max_min_supf><mode>): ... this.
8732
8733 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8734
8735 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_R): New.
8736 (vqshlq, vshlq): New.
8737 * config/arm/arm-mve-builtins-base.def (vqshlq, vshlq): New.
8738 * config/arm/arm-mve-builtins-base.h (vqshlq, vshlq): New.
8739 * config/arm/arm_mve.h (vshlq): Remove.
8740 (vshlq_r): Remove.
8741 (vshlq_n): Remove.
8742 (vshlq_m_r): Remove.
8743 (vshlq_m): Remove.
8744 (vshlq_m_n): Remove.
8745 (vshlq_x): Remove.
8746 (vshlq_x_n): Remove.
8747 (vshlq_s8): Remove.
8748 (vshlq_s16): Remove.
8749 (vshlq_s32): Remove.
8750 (vshlq_u8): Remove.
8751 (vshlq_u16): Remove.
8752 (vshlq_u32): Remove.
8753 (vshlq_r_u8): Remove.
8754 (vshlq_n_u8): Remove.
8755 (vshlq_r_s8): Remove.
8756 (vshlq_n_s8): Remove.
8757 (vshlq_r_u16): Remove.
8758 (vshlq_n_u16): Remove.
8759 (vshlq_r_s16): Remove.
8760 (vshlq_n_s16): Remove.
8761 (vshlq_r_u32): Remove.
8762 (vshlq_n_u32): Remove.
8763 (vshlq_r_s32): Remove.
8764 (vshlq_n_s32): Remove.
8765 (vshlq_m_r_u8): Remove.
8766 (vshlq_m_r_s8): Remove.
8767 (vshlq_m_r_u16): Remove.
8768 (vshlq_m_r_s16): Remove.
8769 (vshlq_m_r_u32): Remove.
8770 (vshlq_m_r_s32): Remove.
8771 (vshlq_m_u8): Remove.
8772 (vshlq_m_s8): Remove.
8773 (vshlq_m_u16): Remove.
8774 (vshlq_m_s16): Remove.
8775 (vshlq_m_u32): Remove.
8776 (vshlq_m_s32): Remove.
8777 (vshlq_m_n_s8): Remove.
8778 (vshlq_m_n_s32): Remove.
8779 (vshlq_m_n_s16): Remove.
8780 (vshlq_m_n_u8): Remove.
8781 (vshlq_m_n_u32): Remove.
8782 (vshlq_m_n_u16): Remove.
8783 (vshlq_x_s8): Remove.
8784 (vshlq_x_s16): Remove.
8785 (vshlq_x_s32): Remove.
8786 (vshlq_x_u8): Remove.
8787 (vshlq_x_u16): Remove.
8788 (vshlq_x_u32): Remove.
8789 (vshlq_x_n_s8): Remove.
8790 (vshlq_x_n_s16): Remove.
8791 (vshlq_x_n_s32): Remove.
8792 (vshlq_x_n_u8): Remove.
8793 (vshlq_x_n_u16): Remove.
8794 (vshlq_x_n_u32): Remove.
8795 (__arm_vshlq_s8): Remove.
8796 (__arm_vshlq_s16): Remove.
8797 (__arm_vshlq_s32): Remove.
8798 (__arm_vshlq_u8): Remove.
8799 (__arm_vshlq_u16): Remove.
8800 (__arm_vshlq_u32): Remove.
8801 (__arm_vshlq_r_u8): Remove.
8802 (__arm_vshlq_n_u8): Remove.
8803 (__arm_vshlq_r_s8): Remove.
8804 (__arm_vshlq_n_s8): Remove.
8805 (__arm_vshlq_r_u16): Remove.
8806 (__arm_vshlq_n_u16): Remove.
8807 (__arm_vshlq_r_s16): Remove.
8808 (__arm_vshlq_n_s16): Remove.
8809 (__arm_vshlq_r_u32): Remove.
8810 (__arm_vshlq_n_u32): Remove.
8811 (__arm_vshlq_r_s32): Remove.
8812 (__arm_vshlq_n_s32): Remove.
8813 (__arm_vshlq_m_r_u8): Remove.
8814 (__arm_vshlq_m_r_s8): Remove.
8815 (__arm_vshlq_m_r_u16): Remove.
8816 (__arm_vshlq_m_r_s16): Remove.
8817 (__arm_vshlq_m_r_u32): Remove.
8818 (__arm_vshlq_m_r_s32): Remove.
8819 (__arm_vshlq_m_u8): Remove.
8820 (__arm_vshlq_m_s8): Remove.
8821 (__arm_vshlq_m_u16): Remove.
8822 (__arm_vshlq_m_s16): Remove.
8823 (__arm_vshlq_m_u32): Remove.
8824 (__arm_vshlq_m_s32): Remove.
8825 (__arm_vshlq_m_n_s8): Remove.
8826 (__arm_vshlq_m_n_s32): Remove.
8827 (__arm_vshlq_m_n_s16): Remove.
8828 (__arm_vshlq_m_n_u8): Remove.
8829 (__arm_vshlq_m_n_u32): Remove.
8830 (__arm_vshlq_m_n_u16): Remove.
8831 (__arm_vshlq_x_s8): Remove.
8832 (__arm_vshlq_x_s16): Remove.
8833 (__arm_vshlq_x_s32): Remove.
8834 (__arm_vshlq_x_u8): Remove.
8835 (__arm_vshlq_x_u16): Remove.
8836 (__arm_vshlq_x_u32): Remove.
8837 (__arm_vshlq_x_n_s8): Remove.
8838 (__arm_vshlq_x_n_s16): Remove.
8839 (__arm_vshlq_x_n_s32): Remove.
8840 (__arm_vshlq_x_n_u8): Remove.
8841 (__arm_vshlq_x_n_u16): Remove.
8842 (__arm_vshlq_x_n_u32): Remove.
8843 (__arm_vshlq): Remove.
8844 (__arm_vshlq_r): Remove.
8845 (__arm_vshlq_n): Remove.
8846 (__arm_vshlq_m_r): Remove.
8847 (__arm_vshlq_m): Remove.
8848 (__arm_vshlq_m_n): Remove.
8849 (__arm_vshlq_x): Remove.
8850 (__arm_vshlq_x_n): Remove.
8851 (vqshlq): Remove.
8852 (vqshlq_r): Remove.
8853 (vqshlq_n): Remove.
8854 (vqshlq_m_r): Remove.
8855 (vqshlq_m_n): Remove.
8856 (vqshlq_m): Remove.
8857 (vqshlq_u8): Remove.
8858 (vqshlq_r_u8): Remove.
8859 (vqshlq_n_u8): Remove.
8860 (vqshlq_s8): Remove.
8861 (vqshlq_r_s8): Remove.
8862 (vqshlq_n_s8): Remove.
8863 (vqshlq_u16): Remove.
8864 (vqshlq_r_u16): Remove.
8865 (vqshlq_n_u16): Remove.
8866 (vqshlq_s16): Remove.
8867 (vqshlq_r_s16): Remove.
8868 (vqshlq_n_s16): Remove.
8869 (vqshlq_u32): Remove.
8870 (vqshlq_r_u32): Remove.
8871 (vqshlq_n_u32): Remove.
8872 (vqshlq_s32): Remove.
8873 (vqshlq_r_s32): Remove.
8874 (vqshlq_n_s32): Remove.
8875 (vqshlq_m_r_u8): Remove.
8876 (vqshlq_m_r_s8): Remove.
8877 (vqshlq_m_r_u16): Remove.
8878 (vqshlq_m_r_s16): Remove.
8879 (vqshlq_m_r_u32): Remove.
8880 (vqshlq_m_r_s32): Remove.
8881 (vqshlq_m_n_s8): Remove.
8882 (vqshlq_m_n_s32): Remove.
8883 (vqshlq_m_n_s16): Remove.
8884 (vqshlq_m_n_u8): Remove.
8885 (vqshlq_m_n_u32): Remove.
8886 (vqshlq_m_n_u16): Remove.
8887 (vqshlq_m_s8): Remove.
8888 (vqshlq_m_s32): Remove.
8889 (vqshlq_m_s16): Remove.
8890 (vqshlq_m_u8): Remove.
8891 (vqshlq_m_u32): Remove.
8892 (vqshlq_m_u16): Remove.
8893 (__arm_vqshlq_u8): Remove.
8894 (__arm_vqshlq_r_u8): Remove.
8895 (__arm_vqshlq_n_u8): Remove.
8896 (__arm_vqshlq_s8): Remove.
8897 (__arm_vqshlq_r_s8): Remove.
8898 (__arm_vqshlq_n_s8): Remove.
8899 (__arm_vqshlq_u16): Remove.
8900 (__arm_vqshlq_r_u16): Remove.
8901 (__arm_vqshlq_n_u16): Remove.
8902 (__arm_vqshlq_s16): Remove.
8903 (__arm_vqshlq_r_s16): Remove.
8904 (__arm_vqshlq_n_s16): Remove.
8905 (__arm_vqshlq_u32): Remove.
8906 (__arm_vqshlq_r_u32): Remove.
8907 (__arm_vqshlq_n_u32): Remove.
8908 (__arm_vqshlq_s32): Remove.
8909 (__arm_vqshlq_r_s32): Remove.
8910 (__arm_vqshlq_n_s32): Remove.
8911 (__arm_vqshlq_m_r_u8): Remove.
8912 (__arm_vqshlq_m_r_s8): Remove.
8913 (__arm_vqshlq_m_r_u16): Remove.
8914 (__arm_vqshlq_m_r_s16): Remove.
8915 (__arm_vqshlq_m_r_u32): Remove.
8916 (__arm_vqshlq_m_r_s32): Remove.
8917 (__arm_vqshlq_m_n_s8): Remove.
8918 (__arm_vqshlq_m_n_s32): Remove.
8919 (__arm_vqshlq_m_n_s16): Remove.
8920 (__arm_vqshlq_m_n_u8): Remove.
8921 (__arm_vqshlq_m_n_u32): Remove.
8922 (__arm_vqshlq_m_n_u16): Remove.
8923 (__arm_vqshlq_m_s8): Remove.
8924 (__arm_vqshlq_m_s32): Remove.
8925 (__arm_vqshlq_m_s16): Remove.
8926 (__arm_vqshlq_m_u8): Remove.
8927 (__arm_vqshlq_m_u32): Remove.
8928 (__arm_vqshlq_m_u16): Remove.
8929 (__arm_vqshlq): Remove.
8930 (__arm_vqshlq_r): Remove.
8931 (__arm_vqshlq_n): Remove.
8932 (__arm_vqshlq_m_r): Remove.
8933 (__arm_vqshlq_m_n): Remove.
8934 (__arm_vqshlq_m): Remove.
8935
8936 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8937
8938 * config/arm/arm-mve-builtins-functions.h (class
8939 unspec_mve_function_exact_insn_vshl): New.
8940
8941 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8942
8943 * config/arm/arm-mve-builtins-shapes.cc (binary_lshift_r): New.
8944 * config/arm/arm-mve-builtins-shapes.h (binary_lshift_r): New.
8945
8946 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8947
8948 * config/arm/arm-mve-builtins.cc (has_inactive_argument)
8949 (finish_opt_n_resolution): Handle MODE_r.
8950 * config/arm/arm-mve-builtins.def (r): New mode.
8951
8952 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8953
8954 * config/arm/arm-mve-builtins-shapes.cc (binary_lshift): New.
8955 * config/arm/arm-mve-builtins-shapes.h (binary_lshift): New.
8956
8957 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8958
8959 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N): New.
8960 (vabdq): New.
8961 * config/arm/arm-mve-builtins-base.def (vabdq): New.
8962 * config/arm/arm-mve-builtins-base.h (vabdq): New.
8963 * config/arm/arm_mve.h (vabdq): Remove.
8964 (vabdq_m): Remove.
8965 (vabdq_x): Remove.
8966 (vabdq_u8): Remove.
8967 (vabdq_s8): Remove.
8968 (vabdq_u16): Remove.
8969 (vabdq_s16): Remove.
8970 (vabdq_u32): Remove.
8971 (vabdq_s32): Remove.
8972 (vabdq_f16): Remove.
8973 (vabdq_f32): Remove.
8974 (vabdq_m_s8): Remove.
8975 (vabdq_m_s32): Remove.
8976 (vabdq_m_s16): Remove.
8977 (vabdq_m_u8): Remove.
8978 (vabdq_m_u32): Remove.
8979 (vabdq_m_u16): Remove.
8980 (vabdq_m_f32): Remove.
8981 (vabdq_m_f16): Remove.
8982 (vabdq_x_s8): Remove.
8983 (vabdq_x_s16): Remove.
8984 (vabdq_x_s32): Remove.
8985 (vabdq_x_u8): Remove.
8986 (vabdq_x_u16): Remove.
8987 (vabdq_x_u32): Remove.
8988 (vabdq_x_f16): Remove.
8989 (vabdq_x_f32): Remove.
8990 (__arm_vabdq_u8): Remove.
8991 (__arm_vabdq_s8): Remove.
8992 (__arm_vabdq_u16): Remove.
8993 (__arm_vabdq_s16): Remove.
8994 (__arm_vabdq_u32): Remove.
8995 (__arm_vabdq_s32): Remove.
8996 (__arm_vabdq_m_s8): Remove.
8997 (__arm_vabdq_m_s32): Remove.
8998 (__arm_vabdq_m_s16): Remove.
8999 (__arm_vabdq_m_u8): Remove.
9000 (__arm_vabdq_m_u32): Remove.
9001 (__arm_vabdq_m_u16): Remove.
9002 (__arm_vabdq_x_s8): Remove.
9003 (__arm_vabdq_x_s16): Remove.
9004 (__arm_vabdq_x_s32): Remove.
9005 (__arm_vabdq_x_u8): Remove.
9006 (__arm_vabdq_x_u16): Remove.
9007 (__arm_vabdq_x_u32): Remove.
9008 (__arm_vabdq_f16): Remove.
9009 (__arm_vabdq_f32): Remove.
9010 (__arm_vabdq_m_f32): Remove.
9011 (__arm_vabdq_m_f16): Remove.
9012 (__arm_vabdq_x_f16): Remove.
9013 (__arm_vabdq_x_f32): Remove.
9014 (__arm_vabdq): Remove.
9015 (__arm_vabdq_m): Remove.
9016 (__arm_vabdq_x): Remove.
9017
9018 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9019
9020 * config/arm/iterators.md (MVE_FP_M_BINARY): Add vabdq.
9021 (MVE_FP_VABDQ_ONLY): New.
9022 (mve_insn): Add vabd.
9023 * config/arm/mve.md (mve_vabdq_f<mode>): Move into ...
9024 (@mve_<mve_insn>q_f<mode>): ... this.
9025 (mve_vabdq_m_f<mode>): Remove.
9026
9027 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9028
9029 * config/arm/arm-mve-builtins-base.cc (vqrdmulhq): New.
9030 * config/arm/arm-mve-builtins-base.def (vqrdmulhq): New.
9031 * config/arm/arm-mve-builtins-base.h (vqrdmulhq): New.
9032 * config/arm/arm_mve.h (vqrdmulhq): Remove.
9033 (vqrdmulhq_m): Remove.
9034 (vqrdmulhq_s8): Remove.
9035 (vqrdmulhq_n_s8): Remove.
9036 (vqrdmulhq_s16): Remove.
9037 (vqrdmulhq_n_s16): Remove.
9038 (vqrdmulhq_s32): Remove.
9039 (vqrdmulhq_n_s32): Remove.
9040 (vqrdmulhq_m_n_s8): Remove.
9041 (vqrdmulhq_m_n_s32): Remove.
9042 (vqrdmulhq_m_n_s16): Remove.
9043 (vqrdmulhq_m_s8): Remove.
9044 (vqrdmulhq_m_s32): Remove.
9045 (vqrdmulhq_m_s16): Remove.
9046 (__arm_vqrdmulhq_s8): Remove.
9047 (__arm_vqrdmulhq_n_s8): Remove.
9048 (__arm_vqrdmulhq_s16): Remove.
9049 (__arm_vqrdmulhq_n_s16): Remove.
9050 (__arm_vqrdmulhq_s32): Remove.
9051 (__arm_vqrdmulhq_n_s32): Remove.
9052 (__arm_vqrdmulhq_m_n_s8): Remove.
9053 (__arm_vqrdmulhq_m_n_s32): Remove.
9054 (__arm_vqrdmulhq_m_n_s16): Remove.
9055 (__arm_vqrdmulhq_m_s8): Remove.
9056 (__arm_vqrdmulhq_m_s32): Remove.
9057 (__arm_vqrdmulhq_m_s16): Remove.
9058 (__arm_vqrdmulhq): Remove.
9059 (__arm_vqrdmulhq_m): Remove.
9060
9061 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9062
9063 * config/arm/iterators.md (MVE_SHIFT_M_R, MVE_SHIFT_M_N)
9064 (MVE_SHIFT_N, MVE_SHIFT_R): New.
9065 (mve_insn): Add vqshl, vshl.
9066 * config/arm/mve.md (mve_vqshlq_n_<supf><mode>)
9067 (mve_vshlq_n_<supf><mode>): Merge into ...
9068 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
9069 (mve_vqshlq_r_<supf><mode>, mve_vshlq_r_<supf><mode>): Merge into
9070 ...
9071 (@mve_<mve_insn>q_r_<supf><mode>): ... this.
9072 (mve_vqshlq_m_r_<supf><mode>, mve_vshlq_m_r_<supf><mode>): Merge
9073 into ...
9074 (@mve_<mve_insn>q_m_r_<supf><mode>): ... this.
9075 (mve_vqshlq_m_n_<supf><mode>, mve_vshlq_m_n_<supf><mode>): Merge
9076 into ...
9077 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
9078 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Transform
9079 into ...
9080 (@mve_<mve_insn>q_<supf><mode>): ... this.
9081
9082 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9083
9084 * config/arm/arm-mve-builtins-base.cc (vqrshlq, vrshlq): New.
9085 * config/arm/arm-mve-builtins-base.def (vqrshlq, vrshlq): New.
9086 * config/arm/arm-mve-builtins-base.h (vqrshlq, vrshlq): New.
9087 * config/arm/arm-mve-builtins.cc (has_inactive_argument): Handle
9088 vqrshlq, vrshlq.
9089 * config/arm/arm_mve.h (vrshlq): Remove.
9090 (vrshlq_m_n): Remove.
9091 (vrshlq_m): Remove.
9092 (vrshlq_x): Remove.
9093 (vrshlq_u8): Remove.
9094 (vrshlq_n_u8): Remove.
9095 (vrshlq_s8): Remove.
9096 (vrshlq_n_s8): Remove.
9097 (vrshlq_u16): Remove.
9098 (vrshlq_n_u16): Remove.
9099 (vrshlq_s16): Remove.
9100 (vrshlq_n_s16): Remove.
9101 (vrshlq_u32): Remove.
9102 (vrshlq_n_u32): Remove.
9103 (vrshlq_s32): Remove.
9104 (vrshlq_n_s32): Remove.
9105 (vrshlq_m_n_u8): Remove.
9106 (vrshlq_m_n_s8): Remove.
9107 (vrshlq_m_n_u16): Remove.
9108 (vrshlq_m_n_s16): Remove.
9109 (vrshlq_m_n_u32): Remove.
9110 (vrshlq_m_n_s32): Remove.
9111 (vrshlq_m_s8): Remove.
9112 (vrshlq_m_s32): Remove.
9113 (vrshlq_m_s16): Remove.
9114 (vrshlq_m_u8): Remove.
9115 (vrshlq_m_u32): Remove.
9116 (vrshlq_m_u16): Remove.
9117 (vrshlq_x_s8): Remove.
9118 (vrshlq_x_s16): Remove.
9119 (vrshlq_x_s32): Remove.
9120 (vrshlq_x_u8): Remove.
9121 (vrshlq_x_u16): Remove.
9122 (vrshlq_x_u32): Remove.
9123 (__arm_vrshlq_u8): Remove.
9124 (__arm_vrshlq_n_u8): Remove.
9125 (__arm_vrshlq_s8): Remove.
9126 (__arm_vrshlq_n_s8): Remove.
9127 (__arm_vrshlq_u16): Remove.
9128 (__arm_vrshlq_n_u16): Remove.
9129 (__arm_vrshlq_s16): Remove.
9130 (__arm_vrshlq_n_s16): Remove.
9131 (__arm_vrshlq_u32): Remove.
9132 (__arm_vrshlq_n_u32): Remove.
9133 (__arm_vrshlq_s32): Remove.
9134 (__arm_vrshlq_n_s32): Remove.
9135 (__arm_vrshlq_m_n_u8): Remove.
9136 (__arm_vrshlq_m_n_s8): Remove.
9137 (__arm_vrshlq_m_n_u16): Remove.
9138 (__arm_vrshlq_m_n_s16): Remove.
9139 (__arm_vrshlq_m_n_u32): Remove.
9140 (__arm_vrshlq_m_n_s32): Remove.
9141 (__arm_vrshlq_m_s8): Remove.
9142 (__arm_vrshlq_m_s32): Remove.
9143 (__arm_vrshlq_m_s16): Remove.
9144 (__arm_vrshlq_m_u8): Remove.
9145 (__arm_vrshlq_m_u32): Remove.
9146 (__arm_vrshlq_m_u16): Remove.
9147 (__arm_vrshlq_x_s8): Remove.
9148 (__arm_vrshlq_x_s16): Remove.
9149 (__arm_vrshlq_x_s32): Remove.
9150 (__arm_vrshlq_x_u8): Remove.
9151 (__arm_vrshlq_x_u16): Remove.
9152 (__arm_vrshlq_x_u32): Remove.
9153 (__arm_vrshlq): Remove.
9154 (__arm_vrshlq_m_n): Remove.
9155 (__arm_vrshlq_m): Remove.
9156 (__arm_vrshlq_x): Remove.
9157 (vqrshlq): Remove.
9158 (vqrshlq_m_n): Remove.
9159 (vqrshlq_m): Remove.
9160 (vqrshlq_u8): Remove.
9161 (vqrshlq_n_u8): Remove.
9162 (vqrshlq_s8): Remove.
9163 (vqrshlq_n_s8): Remove.
9164 (vqrshlq_u16): Remove.
9165 (vqrshlq_n_u16): Remove.
9166 (vqrshlq_s16): Remove.
9167 (vqrshlq_n_s16): Remove.
9168 (vqrshlq_u32): Remove.
9169 (vqrshlq_n_u32): Remove.
9170 (vqrshlq_s32): Remove.
9171 (vqrshlq_n_s32): Remove.
9172 (vqrshlq_m_n_u8): Remove.
9173 (vqrshlq_m_n_s8): Remove.
9174 (vqrshlq_m_n_u16): Remove.
9175 (vqrshlq_m_n_s16): Remove.
9176 (vqrshlq_m_n_u32): Remove.
9177 (vqrshlq_m_n_s32): Remove.
9178 (vqrshlq_m_s8): Remove.
9179 (vqrshlq_m_s32): Remove.
9180 (vqrshlq_m_s16): Remove.
9181 (vqrshlq_m_u8): Remove.
9182 (vqrshlq_m_u32): Remove.
9183 (vqrshlq_m_u16): Remove.
9184 (__arm_vqrshlq_u8): Remove.
9185 (__arm_vqrshlq_n_u8): Remove.
9186 (__arm_vqrshlq_s8): Remove.
9187 (__arm_vqrshlq_n_s8): Remove.
9188 (__arm_vqrshlq_u16): Remove.
9189 (__arm_vqrshlq_n_u16): Remove.
9190 (__arm_vqrshlq_s16): Remove.
9191 (__arm_vqrshlq_n_s16): Remove.
9192 (__arm_vqrshlq_u32): Remove.
9193 (__arm_vqrshlq_n_u32): Remove.
9194 (__arm_vqrshlq_s32): Remove.
9195 (__arm_vqrshlq_n_s32): Remove.
9196 (__arm_vqrshlq_m_n_u8): Remove.
9197 (__arm_vqrshlq_m_n_s8): Remove.
9198 (__arm_vqrshlq_m_n_u16): Remove.
9199 (__arm_vqrshlq_m_n_s16): Remove.
9200 (__arm_vqrshlq_m_n_u32): Remove.
9201 (__arm_vqrshlq_m_n_s32): Remove.
9202 (__arm_vqrshlq_m_s8): Remove.
9203 (__arm_vqrshlq_m_s32): Remove.
9204 (__arm_vqrshlq_m_s16): Remove.
9205 (__arm_vqrshlq_m_u8): Remove.
9206 (__arm_vqrshlq_m_u32): Remove.
9207 (__arm_vqrshlq_m_u16): Remove.
9208 (__arm_vqrshlq): Remove.
9209 (__arm_vqrshlq_m_n): Remove.
9210 (__arm_vqrshlq_m): Remove.
9211
9212 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9213
9214 * config/arm/iterators.md (MVE_RSHIFT_M_N, MVE_RSHIFT_N): New.
9215 (mve_insn): Add vqrshl, vrshl.
9216 * config/arm/mve.md (mve_vqrshlq_n_<supf><mode>)
9217 (mve_vrshlq_n_<supf><mode>): Merge into ...
9218 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
9219 (mve_vqrshlq_m_n_<supf><mode>, mve_vrshlq_m_n_<supf><mode>): Merge
9220 into ...
9221 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
9222
9223 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9224
9225 * config/arm/arm-mve-builtins-shapes.cc (binary_round_lshift): New.
9226 * config/arm/arm-mve-builtins-shapes.h (binary_round_lshift): New.
9227
9228 2023-05-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
9229
9230 PR target/109615
9231 * config/riscv/riscv-vsetvl.cc (avl_info::multiple_source_equal_p): Add
9232 denegrate PHI optmization.
9233
9234 2023-05-05 Uros Bizjak <ubizjak@gmail.com>
9235
9236 * config/i386/predicates.md (register_no_SP_operand):
9237 Rename from index_register_operand.
9238 (call_register_operand): Update for rename.
9239 * config/i386/i386.md (*lea<mode>_general_[1234]): Update for rename.
9240
9241 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9242
9243 PR bootstrap/84402
9244 * Makefile.in (NUM_MATCH_SPLITS, MATCH_SPLITS_SEQ,
9245 GIMPLE_MATCH_PD_SEQ_SRC, GIMPLE_MATCH_PD_SEQ_O,
9246 GENERIC_MATCH_PD_SEQ_SRC, GENERIC_MATCH_PD_SEQ_O): New.
9247 (OBJS, MOSTLYCLEANFILES, .PRECIOUS): Use them.
9248 (s-match): Split into s-generic-match and s-gimple-match.
9249 * configure.ac (with-matchpd-partitions,
9250 DEFAULT_MATCHPD_PARTITIONS): New.
9251 * configure: Regenerate.
9252
9253 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9254
9255 PR bootstrap/84402
9256 * genmatch.cc (emit_func, SIZED_BASED_CHUNKS, get_out_file): New.
9257 (decision_tree::gen): Accept list of files instead of single and update
9258 to write function definition to header and main file.
9259 (write_predicate): Likewise.
9260 (write_header): Emit pragmas and new includes.
9261 (main): Create file buffers and cleanup.
9262 (showUsage, write_header_includes): New.
9263
9264 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9265
9266 PR bootstrap/84402
9267 * Makefile.in (OBJS): Add gimple-match-exports.o.
9268 * genmatch.cc (decision_tree::gen): Export gimple_gimplify helpers.
9269 * gimple-match-head.cc (gimple_simplify, gimple_resimplify1,
9270 gimple_resimplify2, gimple_resimplify3, gimple_resimplify4,
9271 gimple_resimplify5, constant_for_folding, convert_conditional_op,
9272 maybe_resimplify_conditional_op, gimple_match_op::resimplify,
9273 maybe_build_generic_op, build_call_internal, maybe_push_res_to_seq,
9274 do_valueize, try_conditional_simplification, gimple_extract,
9275 gimple_extract_op, canonicalize_code, commutative_binary_op_p,
9276 commutative_ternary_op_p, first_commutative_argument,
9277 associative_binary_op_p, directly_supported_p,
9278 get_conditional_internal_fn): Moved to gimple-match-exports.cc
9279 * gimple-match-exports.cc: New file.
9280
9281 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9282
9283 PR bootstrap/84402
9284 * genmatch.cc (decision_tree::gen, write_predicate): Generate new
9285 debug_dump var.
9286 (dt_simplify::gen_1): Use it.
9287
9288 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9289
9290 PR bootstrap/84402
9291 * genmatch.cc (output_line_directive): Only emit commented directive
9292 when -vv.
9293
9294 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9295
9296 PR bootstrap/84402
9297 * genmatch.cc (dt_simplify::gen_1): Only emit labels if used.
9298
9299 2023-05-05 Tobias Burnus <tobias@codesourcery.com>
9300
9301 * config/gcn/gcn.cc (gcn_vectorize_builtin_vectorized_function): Remove
9302 unused in_mode/in_n variables.
9303
9304 2023-05-05 Richard Biener <rguenther@suse.de>
9305
9306 PR tree-optimization/109735
9307 * tree-vect-stmts.cc (vectorizable_operation): Perform
9308 conversion for POINTER_DIFF_EXPR unconditionally.
9309
9310 2023-05-05 Uros Bizjak <ubizjak@gmail.com>
9311
9312 * config/i386/mmx.md (mulv2si3): New expander.
9313 (*mulv2si3): New insn pattern.
9314
9315 2023-05-05 Tobias Burnus <tobias@codesourcery.com>
9316 Thomas Schwinge <thomas@codesourcery.com>
9317
9318 PR libgomp/108098
9319 * config/nvptx/mkoffload.cc (process): Emit dummy procedure
9320 alongside reverse-offload function table to prevent NULL values
9321 of the function addresses.
9322
9323 2023-05-05 Jakub Jelinek <jakub@redhat.com>
9324
9325 * builtins.cc (do_mpfr_ckconv, do_mpc_ckconv): Fix comment typo,
9326 mpft_t -> mpfr_t.
9327 * fold-const-call.cc (do_mpfr_ckconv, do_mpc_ckconv): Likewise.
9328
9329 2023-05-05 Andrew Pinski <apinski@marvell.com>
9330
9331 PR tree-optimization/109732
9332 * tree-ssa-phiopt.cc (match_simplify_replacement): Fix the selection
9333 of the argtrue/argfalse.
9334
9335 2023-05-05 Andrew Pinski <apinski@marvell.com>
9336
9337 PR tree-optimization/109722
9338 * match.pd: Extend the `ABS<a> == 0` pattern
9339 to cover `ABSU<a> == 0` too.
9340
9341 2023-05-04 Uros Bizjak <ubizjak@gmail.com>
9342
9343 PR target/109733
9344 * config/i386/predicates.md (index_reg_operand): New predicate.
9345 * config/i386/i386.md (ashift to lea spliter): Use
9346 general_reg_operand and index_reg_operand predicates.
9347
9348 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9349
9350 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>_insn_le):
9351 Rename and reimplement with RTL codes to...
9352 (aarch64_<optab>hn2<mode>_insn_le): .. This.
9353 (aarch64_r<optab>hn2<mode>_insn_le): New pattern.
9354 (aarch64_<sur><addsub>hn2<mode>_insn_be): Rename and reimplement with RTL
9355 codes to...
9356 (aarch64_<optab>hn2<mode>_insn_be): ... This.
9357 (aarch64_r<optab>hn2<mode>_insn_be): New pattern.
9358 (aarch64_<sur><addsub>hn2<mode>): Rename and adjust expander to...
9359 (aarch64_<optab>hn2<mode>): ... This.
9360 (aarch64_r<optab>hn2<mode>): New expander.
9361 * config/aarch64/iterators.md (UNSPEC_ADDHN, UNSPEC_RADDHN,
9362 UNSPEC_SUBHN, UNSPEC_RSUBHN): Delete unspecs.
9363 (ADDSUBHN): Delete.
9364 (sur): Remove handling of the above.
9365 (addsub): Likewise.
9366
9367 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9368
9369 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>_insn_le):
9370 Delete.
9371 (aarch64_<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
9372 (aarch64_<sur><addsub>hn<mode>_insn_be): Delete.
9373 (aarch64_r<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
9374 (aarch64_<sur><addsub>hn<mode>): Delete.
9375 (aarch64_<optab>hn<mode>): New define_expand.
9376 (aarch64_r<optab>hn<mode>): Likewise.
9377 * config/aarch64/predicates.md (aarch64_simd_raddsubhn_imm_vec):
9378 New predicate.
9379
9380 2023-05-04 Andrew Pinski <apinski@marvell.com>
9381
9382 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Handle
9383 diamond form bb with forwarder only empty blocks better.
9384
9385 2023-05-04 Andrew Pinski <apinski@marvell.com>
9386
9387 * tree-ssa-threadupdate.cc (copy_phi_arg_into_existing_phi): Move to ...
9388 * tree-cfg.cc (copy_phi_arg_into_existing_phi): Here and remove static.
9389 (gimple_duplicate_sese_tail): Use copy_phi_arg_into_existing_phi instead
9390 of an inline version of it.
9391 * tree-cfgcleanup.cc (remove_forwarder_block): Likewise.
9392 * tree-cfg.h (copy_phi_arg_into_existing_phi): New declaration.
9393
9394 2023-05-04 Andrew Pinski <apinski@marvell.com>
9395
9396 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Change
9397 the default argument value for dce_ssa_names to nullptr.
9398 Check to make sure dce_ssa_names is a non-nullptr before
9399 calling simple_dce_from_worklist.
9400
9401 2023-05-04 Uros Bizjak <ubizjak@gmail.com>
9402
9403 * config/i386/predicates.md (index_register_operand): Reject
9404 arg_pointer_rtx, frame_pointer_rtx, stack_pointer_rtx and
9405 VIRTUAL_REGISTER_P operands. Allow subregs of memory before reload.
9406 (call_register_no_elim_operand): Rewrite as ...
9407 (call_register_operand): ... this.
9408 (call_insn_operand): Use call_register_operand predicate.
9409
9410 2023-05-04 Richard Biener <rguenther@suse.de>
9411
9412 PR tree-optimization/109721
9413 * tree-vect-stmts.cc (vectorizable_operation): Make sure
9414 to test word_mode for all !target_support_p operations.
9415
9416 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9417
9418 PR target/99195
9419 * config/aarch64/aarch64-simd.md (aarch64_<su>aba<mode>): Rename to...
9420 (aarch64_<su>aba<mode><vczle><vczbe>): ... This.
9421 (aarch64_mla<mode>): Rename to...
9422 (aarch64_mla<mode><vczle><vczbe>): ... This.
9423 (*aarch64_mla_elt<mode>): Rename to...
9424 (*aarch64_mla_elt<mode><vczle><vczbe>): ... This.
9425 (*aarch64_mla_elt_<vswap_width_name><mode>): Rename to...
9426 (*aarch64_mla_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
9427 (aarch64_mla_n<mode>): Rename to...
9428 (aarch64_mla_n<mode><vczle><vczbe>): ... This.
9429 (aarch64_mls<mode>): Rename to...
9430 (aarch64_mls<mode><vczle><vczbe>): ... This.
9431 (*aarch64_mls_elt<mode>): Rename to...
9432 (*aarch64_mls_elt<mode><vczle><vczbe>): ... This.
9433 (*aarch64_mls_elt_<vswap_width_name><mode>): Rename to...
9434 (*aarch64_mls_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
9435 (aarch64_mls_n<mode>): Rename to...
9436 (aarch64_mls_n<mode><vczle><vczbe>): ... This.
9437 (fma<mode>4): Rename to...
9438 (fma<mode>4<vczle><vczbe>): ... This.
9439 (*aarch64_fma4_elt<mode>): Rename to...
9440 (*aarch64_fma4_elt<mode><vczle><vczbe>): ... This.
9441 (*aarch64_fma4_elt_<vswap_width_name><mode>): Rename to...
9442 (*aarch64_fma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
9443 (*aarch64_fma4_elt_from_dup<mode>): Rename to...
9444 (*aarch64_fma4_elt_from_dup<mode><vczle><vczbe>): ... This.
9445 (fnma<mode>4): Rename to...
9446 (fnma<mode>4<vczle><vczbe>): ... This.
9447 (*aarch64_fnma4_elt<mode>): Rename to...
9448 (*aarch64_fnma4_elt<mode><vczle><vczbe>): ... This.
9449 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Rename to...
9450 (*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
9451 (*aarch64_fnma4_elt_from_dup<mode>): Rename to...
9452 (*aarch64_fnma4_elt_from_dup<mode><vczle><vczbe>): ... This.
9453 (aarch64_simd_bsl<mode>_internal): Rename to...
9454 (aarch64_simd_bsl<mode>_internal<vczle><vczbe>): ... This.
9455 (*aarch64_simd_bsl<mode>_alt): Rename to...
9456 (*aarch64_simd_bsl<mode>_alt<vczle><vczbe>): ... This.
9457
9458 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9459
9460 PR target/99195
9461 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>): Rename to...
9462 (aarch64_<su>abd<mode><vczle><vczbe>): ... This.
9463 (fabd<mode>3): Rename to...
9464 (fabd<mode>3<vczle><vczbe>): ... This.
9465 (aarch64_<optab>p<mode>): Rename to...
9466 (aarch64_<optab>p<mode><vczle><vczbe>): ... This.
9467 (aarch64_faddp<mode>): Rename to...
9468 (aarch64_faddp<mode><vczle><vczbe>): ... This.
9469
9470 2023-05-04 Martin Liska <mliska@suse.cz>
9471
9472 * gcov.cc (GCOV_JSON_FORMAT_VERSION): New definition.
9473 (print_version): Use it.
9474 (generate_results): Likewise.
9475
9476 2023-05-04 Richard Biener <rguenther@suse.de>
9477
9478 * tree-cfg.h (last_stmt): Rename to ...
9479 (last_nondebug_stmt): ... this.
9480 * tree-cfg.cc (last_stmt): Rename to ...
9481 (last_nondebug_stmt): ... this.
9482 (assign_discriminators): Adjust.
9483 (group_case_labels_stmt): Likewise.
9484 (gimple_can_duplicate_bb_p): Likewise.
9485 (execute_fixup_cfg): Likewise.
9486 * auto-profile.cc (afdo_propagate_circuit): Likewise.
9487 * gimple-range.cc (gimple_ranger::range_on_exit): Likewise.
9488 * omp-expand.cc (workshare_safe_to_combine_p): Likewise.
9489 (determine_parallel_type): Likewise.
9490 (adjust_context_and_scope): Likewise.
9491 (expand_task_call): Likewise.
9492 (remove_exit_barrier): Likewise.
9493 (expand_omp_taskreg): Likewise.
9494 (expand_omp_for_init_counts): Likewise.
9495 (expand_omp_for_init_vars): Likewise.
9496 (expand_omp_for_static_chunk): Likewise.
9497 (expand_omp_simd): Likewise.
9498 (expand_oacc_for): Likewise.
9499 (expand_omp_for): Likewise.
9500 (expand_omp_sections): Likewise.
9501 (expand_omp_atomic_fetch_op): Likewise.
9502 (expand_omp_atomic_cas): Likewise.
9503 (expand_omp_atomic): Likewise.
9504 (expand_omp_target): Likewise.
9505 (expand_omp): Likewise.
9506 (omp_make_gimple_edges): Likewise.
9507 * trans-mem.cc (tm_region_init): Likewise.
9508 * tree-inline.cc (redirect_all_calls): Likewise.
9509 * tree-parloops.cc (gen_parallel_loop): Likewise.
9510 * tree-ssa-loop-ch.cc (do_while_loop_p): Likewise.
9511 * tree-ssa-loop-ivcanon.cc (canonicalize_loop_induction_variables):
9512 Likewise.
9513 * tree-ssa-loop-ivopts.cc (stmt_after_ip_normal_pos): Likewise.
9514 (may_eliminate_iv): Likewise.
9515 * tree-ssa-loop-manip.cc (standard_iv_increment_position): Likewise.
9516 * tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations):
9517 Likewise.
9518 (estimate_numbers_of_iterations): Likewise.
9519 * tree-ssa-loop-split.cc (compute_added_num_insns): Likewise.
9520 * tree-ssa-loop-unswitch.cc (get_predicates_for_bb): Likewise.
9521 (set_predicates_for_bb): Likewise.
9522 (init_loop_unswitch_info): Likewise.
9523 (hoist_guard): Likewise.
9524 * tree-ssa-phiopt.cc (match_simplify_replacement): Likewise.
9525 (minmax_replacement): Likewise.
9526 * tree-ssa-reassoc.cc (update_range_test): Likewise.
9527 (optimize_range_tests_to_bit_test): Likewise.
9528 (optimize_range_tests_var_bound): Likewise.
9529 (optimize_range_tests): Likewise.
9530 (no_side_effect_bb): Likewise.
9531 (suitable_cond_bb): Likewise.
9532 (maybe_optimize_range_tests): Likewise.
9533 (reassociate_bb): Likewise.
9534 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Likewise.
9535
9536 2023-05-04 Jakub Jelinek <jakub@redhat.com>
9537
9538 PR debug/109676
9539 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
9540 If src is REG, change its mode to V1TImode and call fix_debug_reg_uses
9541 for it only if it still has TImode. Don't decide whether to call
9542 fix_debug_reg_uses based on whether SRC is ever set or not.
9543
9544 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
9545
9546 * config/cris/cris.cc (cris_split_constant): New function.
9547 * config/cris/cris.md (splitop): New iterator.
9548 (opsplit1): New define_peephole2.
9549 * config/cris/cris-protos.h (cris_split_constant): Declare.
9550 (cris_splittable_constant_p): New macro.
9551
9552 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
9553
9554 * config/cris/cris.cc (TARGET_SPILL_CLASS): Define
9555 to ALL_REGS.
9556
9557 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
9558
9559 * config/cris/cris.cc (cris_side_effect_mode_ok): Use
9560 lra_in_progress, not reload_in_progress.
9561 * config/cris/cris.md ("movdi", "*addi_reload"): Ditto.
9562 * config/cris/constraints.md ("Q"): Ditto.
9563
9564 2023-05-03 Andrew Pinski <apinski@marvell.com>
9565
9566 * tree-ssa-dce.cc (simple_dce_from_worklist): Record
9567 stats on removed number of statements and phis.
9568
9569 2023-05-03 Aldy Hernandez <aldyh@redhat.com>
9570
9571 PR tree-optimization/109711
9572 * value-range.cc (irange::verify_range): Allow types of
9573 error_mark_node.
9574
9575 2023-05-03 Alexander Monakov <amonakov@ispras.ru>
9576
9577 PR sanitizer/90746
9578 * calls.cc (can_implement_as_sibling_call_p): Reject calls
9579 to __sanitizer_cov_trace_pc.
9580
9581 2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
9582
9583 PR target/109661
9584 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Add
9585 a new ABI break parameter for GCC 14. Set it to the alignment
9586 of enums that have an underlying type. Take the true alignment
9587 of such enums from the TYPE_ALIGN of the underlying type's
9588 TYPE_MAIN_VARIANT.
9589 (aarch64_function_arg_boundary): Update accordingly.
9590 (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Likewise.
9591 Warn about ABI differences.
9592
9593 2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
9594
9595 PR target/109661
9596 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Rename
9597 ABI break variables to abi_break_gcc_9 and abi_break_gcc_13.
9598 (aarch64_layout_arg, aarch64_function_arg_boundary): Likewise.
9599 (aarch64_gimplify_va_arg_expr): Likewise.
9600
9601 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9602
9603 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_NO_F)
9604 (FUNCTION_WITHOUT_N_NO_F, FUNCTION_WITH_M_N_NO_U_F): New.
9605 (vhaddq, vhsubq, vmulhq, vqaddq, vqsubq, vqdmulhq, vrhaddq)
9606 (vrmulhq): New.
9607 * config/arm/arm-mve-builtins-base.def (vhaddq, vhsubq, vmulhq)
9608 (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
9609 * config/arm/arm-mve-builtins-base.h (vhaddq, vhsubq, vmulhq)
9610 (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
9611 * config/arm/arm_mve.h (vhsubq): Remove.
9612 (vhaddq): Remove.
9613 (vhaddq_m): Remove.
9614 (vhsubq_m): Remove.
9615 (vhaddq_x): Remove.
9616 (vhsubq_x): Remove.
9617 (vhsubq_u8): Remove.
9618 (vhsubq_n_u8): Remove.
9619 (vhaddq_u8): Remove.
9620 (vhaddq_n_u8): Remove.
9621 (vhsubq_s8): Remove.
9622 (vhsubq_n_s8): Remove.
9623 (vhaddq_s8): Remove.
9624 (vhaddq_n_s8): Remove.
9625 (vhsubq_u16): Remove.
9626 (vhsubq_n_u16): Remove.
9627 (vhaddq_u16): Remove.
9628 (vhaddq_n_u16): Remove.
9629 (vhsubq_s16): Remove.
9630 (vhsubq_n_s16): Remove.
9631 (vhaddq_s16): Remove.
9632 (vhaddq_n_s16): Remove.
9633 (vhsubq_u32): Remove.
9634 (vhsubq_n_u32): Remove.
9635 (vhaddq_u32): Remove.
9636 (vhaddq_n_u32): Remove.
9637 (vhsubq_s32): Remove.
9638 (vhsubq_n_s32): Remove.
9639 (vhaddq_s32): Remove.
9640 (vhaddq_n_s32): Remove.
9641 (vhaddq_m_n_s8): Remove.
9642 (vhaddq_m_n_s32): Remove.
9643 (vhaddq_m_n_s16): Remove.
9644 (vhaddq_m_n_u8): Remove.
9645 (vhaddq_m_n_u32): Remove.
9646 (vhaddq_m_n_u16): Remove.
9647 (vhaddq_m_s8): Remove.
9648 (vhaddq_m_s32): Remove.
9649 (vhaddq_m_s16): Remove.
9650 (vhaddq_m_u8): Remove.
9651 (vhaddq_m_u32): Remove.
9652 (vhaddq_m_u16): Remove.
9653 (vhsubq_m_n_s8): Remove.
9654 (vhsubq_m_n_s32): Remove.
9655 (vhsubq_m_n_s16): Remove.
9656 (vhsubq_m_n_u8): Remove.
9657 (vhsubq_m_n_u32): Remove.
9658 (vhsubq_m_n_u16): Remove.
9659 (vhsubq_m_s8): Remove.
9660 (vhsubq_m_s32): Remove.
9661 (vhsubq_m_s16): Remove.
9662 (vhsubq_m_u8): Remove.
9663 (vhsubq_m_u32): Remove.
9664 (vhsubq_m_u16): Remove.
9665 (vhaddq_x_n_s8): Remove.
9666 (vhaddq_x_n_s16): Remove.
9667 (vhaddq_x_n_s32): Remove.
9668 (vhaddq_x_n_u8): Remove.
9669 (vhaddq_x_n_u16): Remove.
9670 (vhaddq_x_n_u32): Remove.
9671 (vhaddq_x_s8): Remove.
9672 (vhaddq_x_s16): Remove.
9673 (vhaddq_x_s32): Remove.
9674 (vhaddq_x_u8): Remove.
9675 (vhaddq_x_u16): Remove.
9676 (vhaddq_x_u32): Remove.
9677 (vhsubq_x_n_s8): Remove.
9678 (vhsubq_x_n_s16): Remove.
9679 (vhsubq_x_n_s32): Remove.
9680 (vhsubq_x_n_u8): Remove.
9681 (vhsubq_x_n_u16): Remove.
9682 (vhsubq_x_n_u32): Remove.
9683 (vhsubq_x_s8): Remove.
9684 (vhsubq_x_s16): Remove.
9685 (vhsubq_x_s32): Remove.
9686 (vhsubq_x_u8): Remove.
9687 (vhsubq_x_u16): Remove.
9688 (vhsubq_x_u32): Remove.
9689 (__arm_vhsubq_u8): Remove.
9690 (__arm_vhsubq_n_u8): Remove.
9691 (__arm_vhaddq_u8): Remove.
9692 (__arm_vhaddq_n_u8): Remove.
9693 (__arm_vhsubq_s8): Remove.
9694 (__arm_vhsubq_n_s8): Remove.
9695 (__arm_vhaddq_s8): Remove.
9696 (__arm_vhaddq_n_s8): Remove.
9697 (__arm_vhsubq_u16): Remove.
9698 (__arm_vhsubq_n_u16): Remove.
9699 (__arm_vhaddq_u16): Remove.
9700 (__arm_vhaddq_n_u16): Remove.
9701 (__arm_vhsubq_s16): Remove.
9702 (__arm_vhsubq_n_s16): Remove.
9703 (__arm_vhaddq_s16): Remove.
9704 (__arm_vhaddq_n_s16): Remove.
9705 (__arm_vhsubq_u32): Remove.
9706 (__arm_vhsubq_n_u32): Remove.
9707 (__arm_vhaddq_u32): Remove.
9708 (__arm_vhaddq_n_u32): Remove.
9709 (__arm_vhsubq_s32): Remove.
9710 (__arm_vhsubq_n_s32): Remove.
9711 (__arm_vhaddq_s32): Remove.
9712 (__arm_vhaddq_n_s32): Remove.
9713 (__arm_vhaddq_m_n_s8): Remove.
9714 (__arm_vhaddq_m_n_s32): Remove.
9715 (__arm_vhaddq_m_n_s16): Remove.
9716 (__arm_vhaddq_m_n_u8): Remove.
9717 (__arm_vhaddq_m_n_u32): Remove.
9718 (__arm_vhaddq_m_n_u16): Remove.
9719 (__arm_vhaddq_m_s8): Remove.
9720 (__arm_vhaddq_m_s32): Remove.
9721 (__arm_vhaddq_m_s16): Remove.
9722 (__arm_vhaddq_m_u8): Remove.
9723 (__arm_vhaddq_m_u32): Remove.
9724 (__arm_vhaddq_m_u16): Remove.
9725 (__arm_vhsubq_m_n_s8): Remove.
9726 (__arm_vhsubq_m_n_s32): Remove.
9727 (__arm_vhsubq_m_n_s16): Remove.
9728 (__arm_vhsubq_m_n_u8): Remove.
9729 (__arm_vhsubq_m_n_u32): Remove.
9730 (__arm_vhsubq_m_n_u16): Remove.
9731 (__arm_vhsubq_m_s8): Remove.
9732 (__arm_vhsubq_m_s32): Remove.
9733 (__arm_vhsubq_m_s16): Remove.
9734 (__arm_vhsubq_m_u8): Remove.
9735 (__arm_vhsubq_m_u32): Remove.
9736 (__arm_vhsubq_m_u16): Remove.
9737 (__arm_vhaddq_x_n_s8): Remove.
9738 (__arm_vhaddq_x_n_s16): Remove.
9739 (__arm_vhaddq_x_n_s32): Remove.
9740 (__arm_vhaddq_x_n_u8): Remove.
9741 (__arm_vhaddq_x_n_u16): Remove.
9742 (__arm_vhaddq_x_n_u32): Remove.
9743 (__arm_vhaddq_x_s8): Remove.
9744 (__arm_vhaddq_x_s16): Remove.
9745 (__arm_vhaddq_x_s32): Remove.
9746 (__arm_vhaddq_x_u8): Remove.
9747 (__arm_vhaddq_x_u16): Remove.
9748 (__arm_vhaddq_x_u32): Remove.
9749 (__arm_vhsubq_x_n_s8): Remove.
9750 (__arm_vhsubq_x_n_s16): Remove.
9751 (__arm_vhsubq_x_n_s32): Remove.
9752 (__arm_vhsubq_x_n_u8): Remove.
9753 (__arm_vhsubq_x_n_u16): Remove.
9754 (__arm_vhsubq_x_n_u32): Remove.
9755 (__arm_vhsubq_x_s8): Remove.
9756 (__arm_vhsubq_x_s16): Remove.
9757 (__arm_vhsubq_x_s32): Remove.
9758 (__arm_vhsubq_x_u8): Remove.
9759 (__arm_vhsubq_x_u16): Remove.
9760 (__arm_vhsubq_x_u32): Remove.
9761 (__arm_vhsubq): Remove.
9762 (__arm_vhaddq): Remove.
9763 (__arm_vhaddq_m): Remove.
9764 (__arm_vhsubq_m): Remove.
9765 (__arm_vhaddq_x): Remove.
9766 (__arm_vhsubq_x): Remove.
9767 (vmulhq): Remove.
9768 (vmulhq_m): Remove.
9769 (vmulhq_x): Remove.
9770 (vmulhq_u8): Remove.
9771 (vmulhq_s8): Remove.
9772 (vmulhq_u16): Remove.
9773 (vmulhq_s16): Remove.
9774 (vmulhq_u32): Remove.
9775 (vmulhq_s32): Remove.
9776 (vmulhq_m_s8): Remove.
9777 (vmulhq_m_s32): Remove.
9778 (vmulhq_m_s16): Remove.
9779 (vmulhq_m_u8): Remove.
9780 (vmulhq_m_u32): Remove.
9781 (vmulhq_m_u16): Remove.
9782 (vmulhq_x_s8): Remove.
9783 (vmulhq_x_s16): Remove.
9784 (vmulhq_x_s32): Remove.
9785 (vmulhq_x_u8): Remove.
9786 (vmulhq_x_u16): Remove.
9787 (vmulhq_x_u32): Remove.
9788 (__arm_vmulhq_u8): Remove.
9789 (__arm_vmulhq_s8): Remove.
9790 (__arm_vmulhq_u16): Remove.
9791 (__arm_vmulhq_s16): Remove.
9792 (__arm_vmulhq_u32): Remove.
9793 (__arm_vmulhq_s32): Remove.
9794 (__arm_vmulhq_m_s8): Remove.
9795 (__arm_vmulhq_m_s32): Remove.
9796 (__arm_vmulhq_m_s16): Remove.
9797 (__arm_vmulhq_m_u8): Remove.
9798 (__arm_vmulhq_m_u32): Remove.
9799 (__arm_vmulhq_m_u16): Remove.
9800 (__arm_vmulhq_x_s8): Remove.
9801 (__arm_vmulhq_x_s16): Remove.
9802 (__arm_vmulhq_x_s32): Remove.
9803 (__arm_vmulhq_x_u8): Remove.
9804 (__arm_vmulhq_x_u16): Remove.
9805 (__arm_vmulhq_x_u32): Remove.
9806 (__arm_vmulhq): Remove.
9807 (__arm_vmulhq_m): Remove.
9808 (__arm_vmulhq_x): Remove.
9809 (vqsubq): Remove.
9810 (vqaddq): Remove.
9811 (vqaddq_m): Remove.
9812 (vqsubq_m): Remove.
9813 (vqsubq_u8): Remove.
9814 (vqsubq_n_u8): Remove.
9815 (vqaddq_u8): Remove.
9816 (vqaddq_n_u8): Remove.
9817 (vqsubq_s8): Remove.
9818 (vqsubq_n_s8): Remove.
9819 (vqaddq_s8): Remove.
9820 (vqaddq_n_s8): Remove.
9821 (vqsubq_u16): Remove.
9822 (vqsubq_n_u16): Remove.
9823 (vqaddq_u16): Remove.
9824 (vqaddq_n_u16): Remove.
9825 (vqsubq_s16): Remove.
9826 (vqsubq_n_s16): Remove.
9827 (vqaddq_s16): Remove.
9828 (vqaddq_n_s16): Remove.
9829 (vqsubq_u32): Remove.
9830 (vqsubq_n_u32): Remove.
9831 (vqaddq_u32): Remove.
9832 (vqaddq_n_u32): Remove.
9833 (vqsubq_s32): Remove.
9834 (vqsubq_n_s32): Remove.
9835 (vqaddq_s32): Remove.
9836 (vqaddq_n_s32): Remove.
9837 (vqaddq_m_n_s8): Remove.
9838 (vqaddq_m_n_s32): Remove.
9839 (vqaddq_m_n_s16): Remove.
9840 (vqaddq_m_n_u8): Remove.
9841 (vqaddq_m_n_u32): Remove.
9842 (vqaddq_m_n_u16): Remove.
9843 (vqaddq_m_s8): Remove.
9844 (vqaddq_m_s32): Remove.
9845 (vqaddq_m_s16): Remove.
9846 (vqaddq_m_u8): Remove.
9847 (vqaddq_m_u32): Remove.
9848 (vqaddq_m_u16): Remove.
9849 (vqsubq_m_n_s8): Remove.
9850 (vqsubq_m_n_s32): Remove.
9851 (vqsubq_m_n_s16): Remove.
9852 (vqsubq_m_n_u8): Remove.
9853 (vqsubq_m_n_u32): Remove.
9854 (vqsubq_m_n_u16): Remove.
9855 (vqsubq_m_s8): Remove.
9856 (vqsubq_m_s32): Remove.
9857 (vqsubq_m_s16): Remove.
9858 (vqsubq_m_u8): Remove.
9859 (vqsubq_m_u32): Remove.
9860 (vqsubq_m_u16): Remove.
9861 (__arm_vqsubq_u8): Remove.
9862 (__arm_vqsubq_n_u8): Remove.
9863 (__arm_vqaddq_u8): Remove.
9864 (__arm_vqaddq_n_u8): Remove.
9865 (__arm_vqsubq_s8): Remove.
9866 (__arm_vqsubq_n_s8): Remove.
9867 (__arm_vqaddq_s8): Remove.
9868 (__arm_vqaddq_n_s8): Remove.
9869 (__arm_vqsubq_u16): Remove.
9870 (__arm_vqsubq_n_u16): Remove.
9871 (__arm_vqaddq_u16): Remove.
9872 (__arm_vqaddq_n_u16): Remove.
9873 (__arm_vqsubq_s16): Remove.
9874 (__arm_vqsubq_n_s16): Remove.
9875 (__arm_vqaddq_s16): Remove.
9876 (__arm_vqaddq_n_s16): Remove.
9877 (__arm_vqsubq_u32): Remove.
9878 (__arm_vqsubq_n_u32): Remove.
9879 (__arm_vqaddq_u32): Remove.
9880 (__arm_vqaddq_n_u32): Remove.
9881 (__arm_vqsubq_s32): Remove.
9882 (__arm_vqsubq_n_s32): Remove.
9883 (__arm_vqaddq_s32): Remove.
9884 (__arm_vqaddq_n_s32): Remove.
9885 (__arm_vqaddq_m_n_s8): Remove.
9886 (__arm_vqaddq_m_n_s32): Remove.
9887 (__arm_vqaddq_m_n_s16): Remove.
9888 (__arm_vqaddq_m_n_u8): Remove.
9889 (__arm_vqaddq_m_n_u32): Remove.
9890 (__arm_vqaddq_m_n_u16): Remove.
9891 (__arm_vqaddq_m_s8): Remove.
9892 (__arm_vqaddq_m_s32): Remove.
9893 (__arm_vqaddq_m_s16): Remove.
9894 (__arm_vqaddq_m_u8): Remove.
9895 (__arm_vqaddq_m_u32): Remove.
9896 (__arm_vqaddq_m_u16): Remove.
9897 (__arm_vqsubq_m_n_s8): Remove.
9898 (__arm_vqsubq_m_n_s32): Remove.
9899 (__arm_vqsubq_m_n_s16): Remove.
9900 (__arm_vqsubq_m_n_u8): Remove.
9901 (__arm_vqsubq_m_n_u32): Remove.
9902 (__arm_vqsubq_m_n_u16): Remove.
9903 (__arm_vqsubq_m_s8): Remove.
9904 (__arm_vqsubq_m_s32): Remove.
9905 (__arm_vqsubq_m_s16): Remove.
9906 (__arm_vqsubq_m_u8): Remove.
9907 (__arm_vqsubq_m_u32): Remove.
9908 (__arm_vqsubq_m_u16): Remove.
9909 (__arm_vqsubq): Remove.
9910 (__arm_vqaddq): Remove.
9911 (__arm_vqaddq_m): Remove.
9912 (__arm_vqsubq_m): Remove.
9913 (vqdmulhq): Remove.
9914 (vqdmulhq_m): Remove.
9915 (vqdmulhq_s8): Remove.
9916 (vqdmulhq_n_s8): Remove.
9917 (vqdmulhq_s16): Remove.
9918 (vqdmulhq_n_s16): Remove.
9919 (vqdmulhq_s32): Remove.
9920 (vqdmulhq_n_s32): Remove.
9921 (vqdmulhq_m_n_s8): Remove.
9922 (vqdmulhq_m_n_s32): Remove.
9923 (vqdmulhq_m_n_s16): Remove.
9924 (vqdmulhq_m_s8): Remove.
9925 (vqdmulhq_m_s32): Remove.
9926 (vqdmulhq_m_s16): Remove.
9927 (__arm_vqdmulhq_s8): Remove.
9928 (__arm_vqdmulhq_n_s8): Remove.
9929 (__arm_vqdmulhq_s16): Remove.
9930 (__arm_vqdmulhq_n_s16): Remove.
9931 (__arm_vqdmulhq_s32): Remove.
9932 (__arm_vqdmulhq_n_s32): Remove.
9933 (__arm_vqdmulhq_m_n_s8): Remove.
9934 (__arm_vqdmulhq_m_n_s32): Remove.
9935 (__arm_vqdmulhq_m_n_s16): Remove.
9936 (__arm_vqdmulhq_m_s8): Remove.
9937 (__arm_vqdmulhq_m_s32): Remove.
9938 (__arm_vqdmulhq_m_s16): Remove.
9939 (__arm_vqdmulhq): Remove.
9940 (__arm_vqdmulhq_m): Remove.
9941 (vrhaddq): Remove.
9942 (vrhaddq_m): Remove.
9943 (vrhaddq_x): Remove.
9944 (vrhaddq_u8): Remove.
9945 (vrhaddq_s8): Remove.
9946 (vrhaddq_u16): Remove.
9947 (vrhaddq_s16): Remove.
9948 (vrhaddq_u32): Remove.
9949 (vrhaddq_s32): Remove.
9950 (vrhaddq_m_s8): Remove.
9951 (vrhaddq_m_s32): Remove.
9952 (vrhaddq_m_s16): Remove.
9953 (vrhaddq_m_u8): Remove.
9954 (vrhaddq_m_u32): Remove.
9955 (vrhaddq_m_u16): Remove.
9956 (vrhaddq_x_s8): Remove.
9957 (vrhaddq_x_s16): Remove.
9958 (vrhaddq_x_s32): Remove.
9959 (vrhaddq_x_u8): Remove.
9960 (vrhaddq_x_u16): Remove.
9961 (vrhaddq_x_u32): Remove.
9962 (__arm_vrhaddq_u8): Remove.
9963 (__arm_vrhaddq_s8): Remove.
9964 (__arm_vrhaddq_u16): Remove.
9965 (__arm_vrhaddq_s16): Remove.
9966 (__arm_vrhaddq_u32): Remove.
9967 (__arm_vrhaddq_s32): Remove.
9968 (__arm_vrhaddq_m_s8): Remove.
9969 (__arm_vrhaddq_m_s32): Remove.
9970 (__arm_vrhaddq_m_s16): Remove.
9971 (__arm_vrhaddq_m_u8): Remove.
9972 (__arm_vrhaddq_m_u32): Remove.
9973 (__arm_vrhaddq_m_u16): Remove.
9974 (__arm_vrhaddq_x_s8): Remove.
9975 (__arm_vrhaddq_x_s16): Remove.
9976 (__arm_vrhaddq_x_s32): Remove.
9977 (__arm_vrhaddq_x_u8): Remove.
9978 (__arm_vrhaddq_x_u16): Remove.
9979 (__arm_vrhaddq_x_u32): Remove.
9980 (__arm_vrhaddq): Remove.
9981 (__arm_vrhaddq_m): Remove.
9982 (__arm_vrhaddq_x): Remove.
9983 (vrmulhq): Remove.
9984 (vrmulhq_m): Remove.
9985 (vrmulhq_x): Remove.
9986 (vrmulhq_u8): Remove.
9987 (vrmulhq_s8): Remove.
9988 (vrmulhq_u16): Remove.
9989 (vrmulhq_s16): Remove.
9990 (vrmulhq_u32): Remove.
9991 (vrmulhq_s32): Remove.
9992 (vrmulhq_m_s8): Remove.
9993 (vrmulhq_m_s32): Remove.
9994 (vrmulhq_m_s16): Remove.
9995 (vrmulhq_m_u8): Remove.
9996 (vrmulhq_m_u32): Remove.
9997 (vrmulhq_m_u16): Remove.
9998 (vrmulhq_x_s8): Remove.
9999 (vrmulhq_x_s16): Remove.
10000 (vrmulhq_x_s32): Remove.
10001 (vrmulhq_x_u8): Remove.
10002 (vrmulhq_x_u16): Remove.
10003 (vrmulhq_x_u32): Remove.
10004 (__arm_vrmulhq_u8): Remove.
10005 (__arm_vrmulhq_s8): Remove.
10006 (__arm_vrmulhq_u16): Remove.
10007 (__arm_vrmulhq_s16): Remove.
10008 (__arm_vrmulhq_u32): Remove.
10009 (__arm_vrmulhq_s32): Remove.
10010 (__arm_vrmulhq_m_s8): Remove.
10011 (__arm_vrmulhq_m_s32): Remove.
10012 (__arm_vrmulhq_m_s16): Remove.
10013 (__arm_vrmulhq_m_u8): Remove.
10014 (__arm_vrmulhq_m_u32): Remove.
10015 (__arm_vrmulhq_m_u16): Remove.
10016 (__arm_vrmulhq_x_s8): Remove.
10017 (__arm_vrmulhq_x_s16): Remove.
10018 (__arm_vrmulhq_x_s32): Remove.
10019 (__arm_vrmulhq_x_u8): Remove.
10020 (__arm_vrmulhq_x_u16): Remove.
10021 (__arm_vrmulhq_x_u32): Remove.
10022 (__arm_vrmulhq): Remove.
10023 (__arm_vrmulhq_m): Remove.
10024 (__arm_vrmulhq_x): Remove.
10025
10026 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10027
10028 * config/arm/iterators.md (MVE_INT_SU_BINARY): New.
10029 (mve_insn): Add vabdq, vhaddq, vhsubq, vmulhq, vqaddq, vqdmulhq,
10030 vqrdmulhq, vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq.
10031 (supf): Add VQDMULHQ_S, VQRDMULHQ_S.
10032 * config/arm/mve.md (mve_vabdq_<supf><mode>)
10033 (@mve_vhaddq_<supf><mode>, mve_vhsubq_<supf><mode>)
10034 (mve_vmulhq_<supf><mode>, mve_vqaddq_<supf><mode>)
10035 (mve_vqdmulhq_s<mode>, mve_vqrdmulhq_s<mode>)
10036 (mve_vqrshlq_<supf><mode>, mve_vqshlq_<supf><mode>)
10037 (mve_vqsubq_<supf><mode>, @mve_vrhaddq_<supf><mode>)
10038 (mve_vrmulhq_<supf><mode>, mve_vrshlq_<supf><mode>): Merge into
10039 ...
10040 (@mve_<mve_insn>q_<supf><mode>): ... this.
10041 * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
10042 (avg<mode>3_ceil, uavg<mode>3_ceil): Use gen_mve_q instead of
10043 gen_mve_vhaddq / gen_mve_vrhaddq.
10044
10045 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10046
10047 * config/arm/iterators.md (MVE_INT_SU_M_N_BINARY): New.
10048 (mve_insn): Add vhaddq, vhsubq, vmlaq, vmlasq, vqaddq, vqdmlahq,
10049 vqdmlashq, vqdmulhq, vqrdmlahq, vqrdmlashq, vqrdmulhq, vqsubq.
10050 (supf): Add VQDMLAHQ_M_N_S, VQDMLASHQ_M_N_S, VQRDMLAHQ_M_N_S,
10051 VQRDMLASHQ_M_N_S, VQDMULHQ_M_N_S, VQRDMULHQ_M_N_S.
10052 * config/arm/mve.md (mve_vhaddq_m_n_<supf><mode>)
10053 (mve_vhsubq_m_n_<supf><mode>, mve_vmlaq_m_n_<supf><mode>)
10054 (mve_vmlasq_m_n_<supf><mode>, mve_vqaddq_m_n_<supf><mode>)
10055 (mve_vqdmlahq_m_n_s<mode>, mve_vqdmlashq_m_n_s<mode>)
10056 (mve_vqrdmlahq_m_n_s<mode>, mve_vqrdmlashq_m_n_s<mode>)
10057 (mve_vqsubq_m_n_<supf><mode>, mve_vqdmulhq_m_n_s<mode>)
10058 (mve_vqrdmulhq_m_n_s<mode>): Merge into ...
10059 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
10060
10061 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10062
10063 * config/arm/iterators.md (MVE_INT_SU_N_BINARY): New.
10064 (mve_insn): Add vhaddq, vhsubq, vqaddq, vqdmulhq, vqrdmulhq,
10065 vqsubq.
10066 (supf): Add VQDMULHQ_N_S, VQRDMULHQ_N_S.
10067 * config/arm/mve.md (mve_vhaddq_n_<supf><mode>)
10068 (mve_vhsubq_n_<supf><mode>, mve_vqaddq_n_<supf><mode>)
10069 (mve_vqdmulhq_n_s<mode>, mve_vqrdmulhq_n_s<mode>)
10070 (mve_vqsubq_n_<supf><mode>): Merge into ...
10071 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
10072
10073 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10074
10075 * config/arm/iterators.md (MVE_INT_SU_M_BINARY): New.
10076 (mve_insn): Add vabdq, vhaddq, vhsubq, vmaxq, vminq, vmulhq,
10077 vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq, vqdmulhq,
10078 vqrdmladhq, vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq, vqrdmulhq,
10079 vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq, vshlq.
10080 (supf): Add VQDMLADHQ_M_S, VQDMLADHXQ_M_S, VQDMLSDHQ_M_S,
10081 VQDMLSDHXQ_M_S, VQDMULHQ_M_S, VQRDMLADHQ_M_S, VQRDMLADHXQ_M_S,
10082 VQRDMLSDHQ_M_S, VQRDMLSDHXQ_M_S, VQRDMULHQ_M_S.
10083 * config/arm/mve.md (@mve_<mve_insn>q_m_<supf><mode>): New.
10084 (mve_vshlq_m_<supf><mode>): Merged into
10085 @mve_<mve_insn>q_m_<supf><mode>.
10086 (mve_vabdq_m_<supf><mode>): Likewise.
10087 (mve_vhaddq_m_<supf><mode>): Likewise.
10088 (mve_vhsubq_m_<supf><mode>): Likewise.
10089 (mve_vmaxq_m_<supf><mode>): Likewise.
10090 (mve_vminq_m_<supf><mode>): Likewise.
10091 (mve_vmulhq_m_<supf><mode>): Likewise.
10092 (mve_vqaddq_m_<supf><mode>): Likewise.
10093 (mve_vqrshlq_m_<supf><mode>): Likewise.
10094 (mve_vqshlq_m_<supf><mode>): Likewise.
10095 (mve_vqsubq_m_<supf><mode>): Likewise.
10096 (mve_vrhaddq_m_<supf><mode>): Likewise.
10097 (mve_vrmulhq_m_<supf><mode>): Likewise.
10098 (mve_vrshlq_m_<supf><mode>): Likewise.
10099 (mve_vqdmladhq_m_s<mode>): Likewise.
10100 (mve_vqdmladhxq_m_s<mode>): Likewise.
10101 (mve_vqdmlsdhq_m_s<mode>): Likewise.
10102 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
10103 (mve_vqdmulhq_m_s<mode>): Likewise.
10104 (mve_vqrdmladhq_m_s<mode>): Likewise.
10105 (mve_vqrdmladhxq_m_s<mode>): Likewise.
10106 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
10107 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
10108 (mve_vqrdmulhq_m_s<mode>): Likewise.
10109
10110 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10111
10112 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_M_N): New. (vcreateq): New.
10113 * config/arm/arm-mve-builtins-base.def (vcreateq): New.
10114 * config/arm/arm-mve-builtins-base.h (vcreateq): New.
10115 * config/arm/arm_mve.h (vcreateq_f16): Remove.
10116 (vcreateq_f32): Remove.
10117 (vcreateq_u8): Remove.
10118 (vcreateq_u16): Remove.
10119 (vcreateq_u32): Remove.
10120 (vcreateq_u64): Remove.
10121 (vcreateq_s8): Remove.
10122 (vcreateq_s16): Remove.
10123 (vcreateq_s32): Remove.
10124 (vcreateq_s64): Remove.
10125 (__arm_vcreateq_u8): Remove.
10126 (__arm_vcreateq_u16): Remove.
10127 (__arm_vcreateq_u32): Remove.
10128 (__arm_vcreateq_u64): Remove.
10129 (__arm_vcreateq_s8): Remove.
10130 (__arm_vcreateq_s16): Remove.
10131 (__arm_vcreateq_s32): Remove.
10132 (__arm_vcreateq_s64): Remove.
10133 (__arm_vcreateq_f16): Remove.
10134 (__arm_vcreateq_f32): Remove.
10135
10136 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10137
10138 * config/arm/iterators.md (MVE_FP_CREATE_ONLY): New.
10139 (mve_insn): Add VCREATEQ_S, VCREATEQ_U, VCREATEQ_F.
10140 * config/arm/mve.md (mve_vcreateq_f<mode>): Rename into ...
10141 (@mve_<mve_insn>q_f<mode>): ... this.
10142 (mve_vcreateq_<supf><mode>): Rename into ...
10143 (@mve_<mve_insn>q_<supf><mode>): ... this.
10144
10145 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10146
10147 * config/arm/arm-mve-builtins-shapes.cc (create): New.
10148 * config/arm/arm-mve-builtins-shapes.h: (create): New.
10149
10150 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10151
10152 * config/arm/arm-mve-builtins-functions.h (class
10153 unspec_mve_function_exact_insn): New.
10154
10155 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10156
10157 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N_NO_N_F): New.
10158 (vorrq): New.
10159 * config/arm/arm-mve-builtins-base.def (vorrq): New.
10160 * config/arm/arm-mve-builtins-base.h (vorrq): New.
10161 * config/arm/arm-mve-builtins.cc
10162 (function_instance::has_inactive_argument): Handle vorrq.
10163 * config/arm/arm_mve.h (vorrq): Remove.
10164 (vorrq_m_n): Remove.
10165 (vorrq_m): Remove.
10166 (vorrq_x): Remove.
10167 (vorrq_u8): Remove.
10168 (vorrq_s8): Remove.
10169 (vorrq_u16): Remove.
10170 (vorrq_s16): Remove.
10171 (vorrq_u32): Remove.
10172 (vorrq_s32): Remove.
10173 (vorrq_n_u16): Remove.
10174 (vorrq_f16): Remove.
10175 (vorrq_n_s16): Remove.
10176 (vorrq_n_u32): Remove.
10177 (vorrq_f32): Remove.
10178 (vorrq_n_s32): Remove.
10179 (vorrq_m_n_s16): Remove.
10180 (vorrq_m_n_u16): Remove.
10181 (vorrq_m_n_s32): Remove.
10182 (vorrq_m_n_u32): Remove.
10183 (vorrq_m_s8): Remove.
10184 (vorrq_m_s32): Remove.
10185 (vorrq_m_s16): Remove.
10186 (vorrq_m_u8): Remove.
10187 (vorrq_m_u32): Remove.
10188 (vorrq_m_u16): Remove.
10189 (vorrq_m_f32): Remove.
10190 (vorrq_m_f16): Remove.
10191 (vorrq_x_s8): Remove.
10192 (vorrq_x_s16): Remove.
10193 (vorrq_x_s32): Remove.
10194 (vorrq_x_u8): Remove.
10195 (vorrq_x_u16): Remove.
10196 (vorrq_x_u32): Remove.
10197 (vorrq_x_f16): Remove.
10198 (vorrq_x_f32): Remove.
10199 (__arm_vorrq_u8): Remove.
10200 (__arm_vorrq_s8): Remove.
10201 (__arm_vorrq_u16): Remove.
10202 (__arm_vorrq_s16): Remove.
10203 (__arm_vorrq_u32): Remove.
10204 (__arm_vorrq_s32): Remove.
10205 (__arm_vorrq_n_u16): Remove.
10206 (__arm_vorrq_n_s16): Remove.
10207 (__arm_vorrq_n_u32): Remove.
10208 (__arm_vorrq_n_s32): Remove.
10209 (__arm_vorrq_m_n_s16): Remove.
10210 (__arm_vorrq_m_n_u16): Remove.
10211 (__arm_vorrq_m_n_s32): Remove.
10212 (__arm_vorrq_m_n_u32): Remove.
10213 (__arm_vorrq_m_s8): Remove.
10214 (__arm_vorrq_m_s32): Remove.
10215 (__arm_vorrq_m_s16): Remove.
10216 (__arm_vorrq_m_u8): Remove.
10217 (__arm_vorrq_m_u32): Remove.
10218 (__arm_vorrq_m_u16): Remove.
10219 (__arm_vorrq_x_s8): Remove.
10220 (__arm_vorrq_x_s16): Remove.
10221 (__arm_vorrq_x_s32): Remove.
10222 (__arm_vorrq_x_u8): Remove.
10223 (__arm_vorrq_x_u16): Remove.
10224 (__arm_vorrq_x_u32): Remove.
10225 (__arm_vorrq_f16): Remove.
10226 (__arm_vorrq_f32): Remove.
10227 (__arm_vorrq_m_f32): Remove.
10228 (__arm_vorrq_m_f16): Remove.
10229 (__arm_vorrq_x_f16): Remove.
10230 (__arm_vorrq_x_f32): Remove.
10231 (__arm_vorrq): Remove.
10232 (__arm_vorrq_m_n): Remove.
10233 (__arm_vorrq_m): Remove.
10234 (__arm_vorrq_x): Remove.
10235
10236 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10237
10238 * config/arm/arm-mve-builtins-shapes.cc (binary_orrq): New.
10239 * config/arm/arm-mve-builtins-shapes.h (binary_orrq): New.
10240 * config/arm/arm-mve-builtins.cc (preds_m_or_none): Remove static.
10241 * config/arm/arm-mve-builtins.h (preds_m_or_none): Declare.
10242
10243 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10244
10245 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M): New.
10246 (vandq,veorq): New.
10247 * config/arm/arm-mve-builtins-base.def (vandq, veorq): New.
10248 * config/arm/arm-mve-builtins-base.h (vandq, veorq): New.
10249 * config/arm/arm_mve.h (vandq): Remove.
10250 (vandq_m): Remove.
10251 (vandq_x): Remove.
10252 (vandq_u8): Remove.
10253 (vandq_s8): Remove.
10254 (vandq_u16): Remove.
10255 (vandq_s16): Remove.
10256 (vandq_u32): Remove.
10257 (vandq_s32): Remove.
10258 (vandq_f16): Remove.
10259 (vandq_f32): Remove.
10260 (vandq_m_s8): Remove.
10261 (vandq_m_s32): Remove.
10262 (vandq_m_s16): Remove.
10263 (vandq_m_u8): Remove.
10264 (vandq_m_u32): Remove.
10265 (vandq_m_u16): Remove.
10266 (vandq_m_f32): Remove.
10267 (vandq_m_f16): Remove.
10268 (vandq_x_s8): Remove.
10269 (vandq_x_s16): Remove.
10270 (vandq_x_s32): Remove.
10271 (vandq_x_u8): Remove.
10272 (vandq_x_u16): Remove.
10273 (vandq_x_u32): Remove.
10274 (vandq_x_f16): Remove.
10275 (vandq_x_f32): Remove.
10276 (__arm_vandq_u8): Remove.
10277 (__arm_vandq_s8): Remove.
10278 (__arm_vandq_u16): Remove.
10279 (__arm_vandq_s16): Remove.
10280 (__arm_vandq_u32): Remove.
10281 (__arm_vandq_s32): Remove.
10282 (__arm_vandq_m_s8): Remove.
10283 (__arm_vandq_m_s32): Remove.
10284 (__arm_vandq_m_s16): Remove.
10285 (__arm_vandq_m_u8): Remove.
10286 (__arm_vandq_m_u32): Remove.
10287 (__arm_vandq_m_u16): Remove.
10288 (__arm_vandq_x_s8): Remove.
10289 (__arm_vandq_x_s16): Remove.
10290 (__arm_vandq_x_s32): Remove.
10291 (__arm_vandq_x_u8): Remove.
10292 (__arm_vandq_x_u16): Remove.
10293 (__arm_vandq_x_u32): Remove.
10294 (__arm_vandq_f16): Remove.
10295 (__arm_vandq_f32): Remove.
10296 (__arm_vandq_m_f32): Remove.
10297 (__arm_vandq_m_f16): Remove.
10298 (__arm_vandq_x_f16): Remove.
10299 (__arm_vandq_x_f32): Remove.
10300 (__arm_vandq): Remove.
10301 (__arm_vandq_m): Remove.
10302 (__arm_vandq_x): Remove.
10303 (veorq_m): Remove.
10304 (veorq_x): Remove.
10305 (veorq_u8): Remove.
10306 (veorq_s8): Remove.
10307 (veorq_u16): Remove.
10308 (veorq_s16): Remove.
10309 (veorq_u32): Remove.
10310 (veorq_s32): Remove.
10311 (veorq_f16): Remove.
10312 (veorq_f32): Remove.
10313 (veorq_m_s8): Remove.
10314 (veorq_m_s32): Remove.
10315 (veorq_m_s16): Remove.
10316 (veorq_m_u8): Remove.
10317 (veorq_m_u32): Remove.
10318 (veorq_m_u16): Remove.
10319 (veorq_m_f32): Remove.
10320 (veorq_m_f16): Remove.
10321 (veorq_x_s8): Remove.
10322 (veorq_x_s16): Remove.
10323 (veorq_x_s32): Remove.
10324 (veorq_x_u8): Remove.
10325 (veorq_x_u16): Remove.
10326 (veorq_x_u32): Remove.
10327 (veorq_x_f16): Remove.
10328 (veorq_x_f32): Remove.
10329 (__arm_veorq_u8): Remove.
10330 (__arm_veorq_s8): Remove.
10331 (__arm_veorq_u16): Remove.
10332 (__arm_veorq_s16): Remove.
10333 (__arm_veorq_u32): Remove.
10334 (__arm_veorq_s32): Remove.
10335 (__arm_veorq_m_s8): Remove.
10336 (__arm_veorq_m_s32): Remove.
10337 (__arm_veorq_m_s16): Remove.
10338 (__arm_veorq_m_u8): Remove.
10339 (__arm_veorq_m_u32): Remove.
10340 (__arm_veorq_m_u16): Remove.
10341 (__arm_veorq_x_s8): Remove.
10342 (__arm_veorq_x_s16): Remove.
10343 (__arm_veorq_x_s32): Remove.
10344 (__arm_veorq_x_u8): Remove.
10345 (__arm_veorq_x_u16): Remove.
10346 (__arm_veorq_x_u32): Remove.
10347 (__arm_veorq_f16): Remove.
10348 (__arm_veorq_f32): Remove.
10349 (__arm_veorq_m_f32): Remove.
10350 (__arm_veorq_m_f16): Remove.
10351 (__arm_veorq_x_f16): Remove.
10352 (__arm_veorq_x_f32): Remove.
10353 (__arm_veorq): Remove.
10354 (__arm_veorq_m): Remove.
10355 (__arm_veorq_x): Remove.
10356
10357 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10358
10359 * config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC)
10360 (MVE_FP_M_BINARY_LOGIC): New.
10361 (MVE_INT_M_N_BINARY_LOGIC): New.
10362 (MVE_INT_N_BINARY_LOGIC): New.
10363 (mve_insn): Add vand, veor, vorr, vbic.
10364 * config/arm/mve.md (mve_vandq_m_<supf><mode>)
10365 (mve_veorq_m_<supf><mode>, mve_vorrq_m_<supf><mode>)
10366 (mve_vbicq_m_<supf><mode>): Merge into ...
10367 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
10368 (mve_vandq_m_f<mode>, mve_veorq_m_f<mode>, mve_vorrq_m_f<mode>)
10369 (mve_vbicq_m_f<mode>): Merge into ...
10370 (@mve_<mve_insn>q_m_f<mode>): ... this.
10371 (mve_vorrq_n_<supf><mode>)
10372 (mve_vbicq_n_<supf><mode>): Merge into ...
10373 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
10374 (mve_vorrq_m_n_<supf><mode>, mve_vbicq_m_n_<supf><mode>): Merge
10375 into ...
10376 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
10377
10378 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10379
10380 * config/arm/arm-mve-builtins-shapes.cc (binary): New.
10381 * config/arm/arm-mve-builtins-shapes.h (binary): New.
10382
10383 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10384
10385 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N):
10386 New.
10387 (vaddq, vmulq, vsubq): New.
10388 * config/arm/arm-mve-builtins-base.def (vaddq, vmulq, vsubq): New.
10389 * config/arm/arm-mve-builtins-base.h (vaddq, vmulq, vsubq): New.
10390 * config/arm/arm_mve.h (vaddq): Remove.
10391 (vaddq_m): Remove.
10392 (vaddq_x): Remove.
10393 (vaddq_n_u8): Remove.
10394 (vaddq_n_s8): Remove.
10395 (vaddq_n_u16): Remove.
10396 (vaddq_n_s16): Remove.
10397 (vaddq_n_u32): Remove.
10398 (vaddq_n_s32): Remove.
10399 (vaddq_n_f16): Remove.
10400 (vaddq_n_f32): Remove.
10401 (vaddq_m_n_s8): Remove.
10402 (vaddq_m_n_s32): Remove.
10403 (vaddq_m_n_s16): Remove.
10404 (vaddq_m_n_u8): Remove.
10405 (vaddq_m_n_u32): Remove.
10406 (vaddq_m_n_u16): Remove.
10407 (vaddq_m_s8): Remove.
10408 (vaddq_m_s32): Remove.
10409 (vaddq_m_s16): Remove.
10410 (vaddq_m_u8): Remove.
10411 (vaddq_m_u32): Remove.
10412 (vaddq_m_u16): Remove.
10413 (vaddq_m_f32): Remove.
10414 (vaddq_m_f16): Remove.
10415 (vaddq_m_n_f32): Remove.
10416 (vaddq_m_n_f16): Remove.
10417 (vaddq_s8): Remove.
10418 (vaddq_s16): Remove.
10419 (vaddq_s32): Remove.
10420 (vaddq_u8): Remove.
10421 (vaddq_u16): Remove.
10422 (vaddq_u32): Remove.
10423 (vaddq_f16): Remove.
10424 (vaddq_f32): Remove.
10425 (vaddq_x_s8): Remove.
10426 (vaddq_x_s16): Remove.
10427 (vaddq_x_s32): Remove.
10428 (vaddq_x_n_s8): Remove.
10429 (vaddq_x_n_s16): Remove.
10430 (vaddq_x_n_s32): Remove.
10431 (vaddq_x_u8): Remove.
10432 (vaddq_x_u16): Remove.
10433 (vaddq_x_u32): Remove.
10434 (vaddq_x_n_u8): Remove.
10435 (vaddq_x_n_u16): Remove.
10436 (vaddq_x_n_u32): Remove.
10437 (vaddq_x_f16): Remove.
10438 (vaddq_x_f32): Remove.
10439 (vaddq_x_n_f16): Remove.
10440 (vaddq_x_n_f32): Remove.
10441 (__arm_vaddq_n_u8): Remove.
10442 (__arm_vaddq_n_s8): Remove.
10443 (__arm_vaddq_n_u16): Remove.
10444 (__arm_vaddq_n_s16): Remove.
10445 (__arm_vaddq_n_u32): Remove.
10446 (__arm_vaddq_n_s32): Remove.
10447 (__arm_vaddq_m_n_s8): Remove.
10448 (__arm_vaddq_m_n_s32): Remove.
10449 (__arm_vaddq_m_n_s16): Remove.
10450 (__arm_vaddq_m_n_u8): Remove.
10451 (__arm_vaddq_m_n_u32): Remove.
10452 (__arm_vaddq_m_n_u16): Remove.
10453 (__arm_vaddq_m_s8): Remove.
10454 (__arm_vaddq_m_s32): Remove.
10455 (__arm_vaddq_m_s16): Remove.
10456 (__arm_vaddq_m_u8): Remove.
10457 (__arm_vaddq_m_u32): Remove.
10458 (__arm_vaddq_m_u16): Remove.
10459 (__arm_vaddq_s8): Remove.
10460 (__arm_vaddq_s16): Remove.
10461 (__arm_vaddq_s32): Remove.
10462 (__arm_vaddq_u8): Remove.
10463 (__arm_vaddq_u16): Remove.
10464 (__arm_vaddq_u32): Remove.
10465 (__arm_vaddq_x_s8): Remove.
10466 (__arm_vaddq_x_s16): Remove.
10467 (__arm_vaddq_x_s32): Remove.
10468 (__arm_vaddq_x_n_s8): Remove.
10469 (__arm_vaddq_x_n_s16): Remove.
10470 (__arm_vaddq_x_n_s32): Remove.
10471 (__arm_vaddq_x_u8): Remove.
10472 (__arm_vaddq_x_u16): Remove.
10473 (__arm_vaddq_x_u32): Remove.
10474 (__arm_vaddq_x_n_u8): Remove.
10475 (__arm_vaddq_x_n_u16): Remove.
10476 (__arm_vaddq_x_n_u32): Remove.
10477 (__arm_vaddq_n_f16): Remove.
10478 (__arm_vaddq_n_f32): Remove.
10479 (__arm_vaddq_m_f32): Remove.
10480 (__arm_vaddq_m_f16): Remove.
10481 (__arm_vaddq_m_n_f32): Remove.
10482 (__arm_vaddq_m_n_f16): Remove.
10483 (__arm_vaddq_f16): Remove.
10484 (__arm_vaddq_f32): Remove.
10485 (__arm_vaddq_x_f16): Remove.
10486 (__arm_vaddq_x_f32): Remove.
10487 (__arm_vaddq_x_n_f16): Remove.
10488 (__arm_vaddq_x_n_f32): Remove.
10489 (__arm_vaddq): Remove.
10490 (__arm_vaddq_m): Remove.
10491 (__arm_vaddq_x): Remove.
10492 (vmulq): Remove.
10493 (vmulq_m): Remove.
10494 (vmulq_x): Remove.
10495 (vmulq_u8): Remove.
10496 (vmulq_n_u8): Remove.
10497 (vmulq_s8): Remove.
10498 (vmulq_n_s8): Remove.
10499 (vmulq_u16): Remove.
10500 (vmulq_n_u16): Remove.
10501 (vmulq_s16): Remove.
10502 (vmulq_n_s16): Remove.
10503 (vmulq_u32): Remove.
10504 (vmulq_n_u32): Remove.
10505 (vmulq_s32): Remove.
10506 (vmulq_n_s32): Remove.
10507 (vmulq_n_f16): Remove.
10508 (vmulq_f16): Remove.
10509 (vmulq_n_f32): Remove.
10510 (vmulq_f32): Remove.
10511 (vmulq_m_n_s8): Remove.
10512 (vmulq_m_n_s32): Remove.
10513 (vmulq_m_n_s16): Remove.
10514 (vmulq_m_n_u8): Remove.
10515 (vmulq_m_n_u32): Remove.
10516 (vmulq_m_n_u16): Remove.
10517 (vmulq_m_s8): Remove.
10518 (vmulq_m_s32): Remove.
10519 (vmulq_m_s16): Remove.
10520 (vmulq_m_u8): Remove.
10521 (vmulq_m_u32): Remove.
10522 (vmulq_m_u16): Remove.
10523 (vmulq_m_f32): Remove.
10524 (vmulq_m_f16): Remove.
10525 (vmulq_m_n_f32): Remove.
10526 (vmulq_m_n_f16): Remove.
10527 (vmulq_x_s8): Remove.
10528 (vmulq_x_s16): Remove.
10529 (vmulq_x_s32): Remove.
10530 (vmulq_x_n_s8): Remove.
10531 (vmulq_x_n_s16): Remove.
10532 (vmulq_x_n_s32): Remove.
10533 (vmulq_x_u8): Remove.
10534 (vmulq_x_u16): Remove.
10535 (vmulq_x_u32): Remove.
10536 (vmulq_x_n_u8): Remove.
10537 (vmulq_x_n_u16): Remove.
10538 (vmulq_x_n_u32): Remove.
10539 (vmulq_x_f16): Remove.
10540 (vmulq_x_f32): Remove.
10541 (vmulq_x_n_f16): Remove.
10542 (vmulq_x_n_f32): Remove.
10543 (__arm_vmulq_u8): Remove.
10544 (__arm_vmulq_n_u8): Remove.
10545 (__arm_vmulq_s8): Remove.
10546 (__arm_vmulq_n_s8): Remove.
10547 (__arm_vmulq_u16): Remove.
10548 (__arm_vmulq_n_u16): Remove.
10549 (__arm_vmulq_s16): Remove.
10550 (__arm_vmulq_n_s16): Remove.
10551 (__arm_vmulq_u32): Remove.
10552 (__arm_vmulq_n_u32): Remove.
10553 (__arm_vmulq_s32): Remove.
10554 (__arm_vmulq_n_s32): Remove.
10555 (__arm_vmulq_m_n_s8): Remove.
10556 (__arm_vmulq_m_n_s32): Remove.
10557 (__arm_vmulq_m_n_s16): Remove.
10558 (__arm_vmulq_m_n_u8): Remove.
10559 (__arm_vmulq_m_n_u32): Remove.
10560 (__arm_vmulq_m_n_u16): Remove.
10561 (__arm_vmulq_m_s8): Remove.
10562 (__arm_vmulq_m_s32): Remove.
10563 (__arm_vmulq_m_s16): Remove.
10564 (__arm_vmulq_m_u8): Remove.
10565 (__arm_vmulq_m_u32): Remove.
10566 (__arm_vmulq_m_u16): Remove.
10567 (__arm_vmulq_x_s8): Remove.
10568 (__arm_vmulq_x_s16): Remove.
10569 (__arm_vmulq_x_s32): Remove.
10570 (__arm_vmulq_x_n_s8): Remove.
10571 (__arm_vmulq_x_n_s16): Remove.
10572 (__arm_vmulq_x_n_s32): Remove.
10573 (__arm_vmulq_x_u8): Remove.
10574 (__arm_vmulq_x_u16): Remove.
10575 (__arm_vmulq_x_u32): Remove.
10576 (__arm_vmulq_x_n_u8): Remove.
10577 (__arm_vmulq_x_n_u16): Remove.
10578 (__arm_vmulq_x_n_u32): Remove.
10579 (__arm_vmulq_n_f16): Remove.
10580 (__arm_vmulq_f16): Remove.
10581 (__arm_vmulq_n_f32): Remove.
10582 (__arm_vmulq_f32): Remove.
10583 (__arm_vmulq_m_f32): Remove.
10584 (__arm_vmulq_m_f16): Remove.
10585 (__arm_vmulq_m_n_f32): Remove.
10586 (__arm_vmulq_m_n_f16): Remove.
10587 (__arm_vmulq_x_f16): Remove.
10588 (__arm_vmulq_x_f32): Remove.
10589 (__arm_vmulq_x_n_f16): Remove.
10590 (__arm_vmulq_x_n_f32): Remove.
10591 (__arm_vmulq): Remove.
10592 (__arm_vmulq_m): Remove.
10593 (__arm_vmulq_x): Remove.
10594 (vsubq): Remove.
10595 (vsubq_m): Remove.
10596 (vsubq_x): Remove.
10597 (vsubq_n_f16): Remove.
10598 (vsubq_n_f32): Remove.
10599 (vsubq_u8): Remove.
10600 (vsubq_n_u8): Remove.
10601 (vsubq_s8): Remove.
10602 (vsubq_n_s8): Remove.
10603 (vsubq_u16): Remove.
10604 (vsubq_n_u16): Remove.
10605 (vsubq_s16): Remove.
10606 (vsubq_n_s16): Remove.
10607 (vsubq_u32): Remove.
10608 (vsubq_n_u32): Remove.
10609 (vsubq_s32): Remove.
10610 (vsubq_n_s32): Remove.
10611 (vsubq_f16): Remove.
10612 (vsubq_f32): Remove.
10613 (vsubq_m_s8): Remove.
10614 (vsubq_m_u8): Remove.
10615 (vsubq_m_s16): Remove.
10616 (vsubq_m_u16): Remove.
10617 (vsubq_m_s32): Remove.
10618 (vsubq_m_u32): Remove.
10619 (vsubq_m_n_s8): Remove.
10620 (vsubq_m_n_s32): Remove.
10621 (vsubq_m_n_s16): Remove.
10622 (vsubq_m_n_u8): Remove.
10623 (vsubq_m_n_u32): Remove.
10624 (vsubq_m_n_u16): Remove.
10625 (vsubq_m_f32): Remove.
10626 (vsubq_m_f16): Remove.
10627 (vsubq_m_n_f32): Remove.
10628 (vsubq_m_n_f16): Remove.
10629 (vsubq_x_s8): Remove.
10630 (vsubq_x_s16): Remove.
10631 (vsubq_x_s32): Remove.
10632 (vsubq_x_n_s8): Remove.
10633 (vsubq_x_n_s16): Remove.
10634 (vsubq_x_n_s32): Remove.
10635 (vsubq_x_u8): Remove.
10636 (vsubq_x_u16): Remove.
10637 (vsubq_x_u32): Remove.
10638 (vsubq_x_n_u8): Remove.
10639 (vsubq_x_n_u16): Remove.
10640 (vsubq_x_n_u32): Remove.
10641 (vsubq_x_f16): Remove.
10642 (vsubq_x_f32): Remove.
10643 (vsubq_x_n_f16): Remove.
10644 (vsubq_x_n_f32): Remove.
10645 (__arm_vsubq_u8): Remove.
10646 (__arm_vsubq_n_u8): Remove.
10647 (__arm_vsubq_s8): Remove.
10648 (__arm_vsubq_n_s8): Remove.
10649 (__arm_vsubq_u16): Remove.
10650 (__arm_vsubq_n_u16): Remove.
10651 (__arm_vsubq_s16): Remove.
10652 (__arm_vsubq_n_s16): Remove.
10653 (__arm_vsubq_u32): Remove.
10654 (__arm_vsubq_n_u32): Remove.
10655 (__arm_vsubq_s32): Remove.
10656 (__arm_vsubq_n_s32): Remove.
10657 (__arm_vsubq_m_s8): Remove.
10658 (__arm_vsubq_m_u8): Remove.
10659 (__arm_vsubq_m_s16): Remove.
10660 (__arm_vsubq_m_u16): Remove.
10661 (__arm_vsubq_m_s32): Remove.
10662 (__arm_vsubq_m_u32): Remove.
10663 (__arm_vsubq_m_n_s8): Remove.
10664 (__arm_vsubq_m_n_s32): Remove.
10665 (__arm_vsubq_m_n_s16): Remove.
10666 (__arm_vsubq_m_n_u8): Remove.
10667 (__arm_vsubq_m_n_u32): Remove.
10668 (__arm_vsubq_m_n_u16): Remove.
10669 (__arm_vsubq_x_s8): Remove.
10670 (__arm_vsubq_x_s16): Remove.
10671 (__arm_vsubq_x_s32): Remove.
10672 (__arm_vsubq_x_n_s8): Remove.
10673 (__arm_vsubq_x_n_s16): Remove.
10674 (__arm_vsubq_x_n_s32): Remove.
10675 (__arm_vsubq_x_u8): Remove.
10676 (__arm_vsubq_x_u16): Remove.
10677 (__arm_vsubq_x_u32): Remove.
10678 (__arm_vsubq_x_n_u8): Remove.
10679 (__arm_vsubq_x_n_u16): Remove.
10680 (__arm_vsubq_x_n_u32): Remove.
10681 (__arm_vsubq_n_f16): Remove.
10682 (__arm_vsubq_n_f32): Remove.
10683 (__arm_vsubq_f16): Remove.
10684 (__arm_vsubq_f32): Remove.
10685 (__arm_vsubq_m_f32): Remove.
10686 (__arm_vsubq_m_f16): Remove.
10687 (__arm_vsubq_m_n_f32): Remove.
10688 (__arm_vsubq_m_n_f16): Remove.
10689 (__arm_vsubq_x_f16): Remove.
10690 (__arm_vsubq_x_f32): Remove.
10691 (__arm_vsubq_x_n_f16): Remove.
10692 (__arm_vsubq_x_n_f32): Remove.
10693 (__arm_vsubq): Remove.
10694 (__arm_vsubq_m): Remove.
10695 (__arm_vsubq_x): Remove.
10696 * config/arm/arm_mve_builtins.def (vsubq_u, vsubq_s, vsubq_f):
10697 Remove.
10698 (vmulq_u, vmulq_s, vmulq_f): Remove.
10699 * config/arm/mve.md (mve_vsubq_<supf><mode>): Remove.
10700 (mve_vmulq_<supf><mode>): Remove.
10701
10702 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10703
10704 * config/arm/iterators.md (MVE_INT_BINARY_RTX, MVE_INT_M_BINARY)
10705 (MVE_INT_M_N_BINARY, MVE_INT_N_BINARY, MVE_FP_M_BINARY)
10706 (MVE_FP_M_N_BINARY, MVE_FP_N_BINARY, mve_addsubmul, mve_insn): New
10707 iterators.
10708 * config/arm/mve.md
10709 (mve_vsubq_n_f<mode>, mve_vaddq_n_f<mode>, mve_vmulq_n_f<mode>):
10710 Factorize into ...
10711 (@mve_<mve_insn>q_n_f<mode>): ... this.
10712 (mve_vaddq_n_<supf><mode>, mve_vmulq_n_<supf><mode>)
10713 (mve_vsubq_n_<supf><mode>): Factorize into ...
10714 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
10715 (mve_vaddq<mode>, mve_vmulq<mode>, mve_vsubq<mode>): Factorize
10716 into ...
10717 (mve_<mve_addsubmul>q<mode>): ... this.
10718 (mve_vaddq_f<mode>, mve_vmulq_f<mode>, mve_vsubq_f<mode>):
10719 Factorize into ...
10720 (mve_<mve_addsubmul>q_f<mode>): ... this.
10721 (mve_vaddq_m_<supf><mode>, mve_vmulq_m_<supf><mode>)
10722 (mve_vsubq_m_<supf><mode>): Factorize into ...
10723 (@mve_<mve_insn>q_m_<supf><mode>): ... this,
10724 (mve_vaddq_m_n_<supf><mode>, mve_vmulq_m_n_<supf><mode>)
10725 (mve_vsubq_m_n_<supf><mode>): Factorize into ...
10726 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
10727 (mve_vaddq_m_f<mode>, mve_vmulq_m_f<mode>, mve_vsubq_m_f<mode>):
10728 Factorize into ...
10729 (@mve_<mve_insn>q_m_f<mode>): ... this.
10730 (mve_vaddq_m_n_f<mode>, mve_vmulq_m_n_f<mode>)
10731 (mve_vsubq_m_n_f<mode>): Factorize into ...
10732 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
10733
10734 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10735
10736 * config/arm/arm-mve-builtins-functions.h (class
10737 unspec_based_mve_function_base): New.
10738 (class unspec_based_mve_function_exact_insn): New.
10739
10740 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10741
10742 * config/arm/arm-mve-builtins-shapes.cc (binary_opt_n): New.
10743 * config/arm/arm-mve-builtins-shapes.h (binary_opt_n): New.
10744
10745 2023-05-03 Murray Steele <murray.steele@arm.com>
10746 Christophe Lyon <christophe.lyon@arm.com>
10747
10748 * config/arm/arm-mve-builtins-base.cc (class
10749 vuninitializedq_impl): New.
10750 * config/arm/arm-mve-builtins-base.def (vuninitializedq): New.
10751 * config/arm/arm-mve-builtins-base.h (vuninitializedq): New
10752 declaration.
10753 * config/arm/arm-mve-builtins-shapes.cc (inherent): New.
10754 * config/arm/arm-mve-builtins-shapes.h (inherent): New
10755 declaration.
10756 * config/arm/arm_mve_types.h (__arm_vuninitializedq): Move to ...
10757 * config/arm/arm_mve.h (__arm_vuninitializedq): ... here.
10758 (__arm_vuninitializedq_u8): Remove.
10759 (__arm_vuninitializedq_u16): Remove.
10760 (__arm_vuninitializedq_u32): Remove.
10761 (__arm_vuninitializedq_u64): Remove.
10762 (__arm_vuninitializedq_s8): Remove.
10763 (__arm_vuninitializedq_s16): Remove.
10764 (__arm_vuninitializedq_s32): Remove.
10765 (__arm_vuninitializedq_s64): Remove.
10766 (__arm_vuninitializedq_f16): Remove.
10767 (__arm_vuninitializedq_f32): Remove.
10768
10769 2023-05-03 Murray Steele <murray.steele@arm.com>
10770 Christophe Lyon <christophe.lyon@arm.com>
10771
10772 * config/arm/arm-mve-builtins-base.cc (vreinterpretq_impl): New class.
10773 * config/arm/arm-mve-builtins-base.def: Define vreinterpretq.
10774 * config/arm/arm-mve-builtins-base.h (vreinterpretq): New declaration.
10775 * config/arm/arm-mve-builtins-shapes.cc (parse_element_type): New function.
10776 (parse_type): Likewise.
10777 (parse_signature): Likewise.
10778 (build_one): Likewise.
10779 (build_all): Likewise.
10780 (overloaded_base): New struct.
10781 (unary_convert_def): Likewise.
10782 * config/arm/arm-mve-builtins-shapes.h (unary_convert): Declare.
10783 * config/arm/arm-mve-builtins.cc (TYPES_reinterpret_signed1): New
10784 macro.
10785 (TYPES_reinterpret_unsigned1): Likewise.
10786 (TYPES_reinterpret_integer): Likewise.
10787 (TYPES_reinterpret_integer1): Likewise.
10788 (TYPES_reinterpret_float1): Likewise.
10789 (TYPES_reinterpret_float): Likewise.
10790 (reinterpret_integer): New.
10791 (reinterpret_float): New.
10792 (handle_arm_mve_h): Register builtins.
10793 * config/arm/arm_mve.h (vreinterpretq_s16): Remove.
10794 (vreinterpretq_s32): Likewise.
10795 (vreinterpretq_s64): Likewise.
10796 (vreinterpretq_s8): Likewise.
10797 (vreinterpretq_u16): Likewise.
10798 (vreinterpretq_u32): Likewise.
10799 (vreinterpretq_u64): Likewise.
10800 (vreinterpretq_u8): Likewise.
10801 (vreinterpretq_f16): Likewise.
10802 (vreinterpretq_f32): Likewise.
10803 (vreinterpretq_s16_s32): Likewise.
10804 (vreinterpretq_s16_s64): Likewise.
10805 (vreinterpretq_s16_s8): Likewise.
10806 (vreinterpretq_s16_u16): Likewise.
10807 (vreinterpretq_s16_u32): Likewise.
10808 (vreinterpretq_s16_u64): Likewise.
10809 (vreinterpretq_s16_u8): Likewise.
10810 (vreinterpretq_s32_s16): Likewise.
10811 (vreinterpretq_s32_s64): Likewise.
10812 (vreinterpretq_s32_s8): Likewise.
10813 (vreinterpretq_s32_u16): Likewise.
10814 (vreinterpretq_s32_u32): Likewise.
10815 (vreinterpretq_s32_u64): Likewise.
10816 (vreinterpretq_s32_u8): Likewise.
10817 (vreinterpretq_s64_s16): Likewise.
10818 (vreinterpretq_s64_s32): Likewise.
10819 (vreinterpretq_s64_s8): Likewise.
10820 (vreinterpretq_s64_u16): Likewise.
10821 (vreinterpretq_s64_u32): Likewise.
10822 (vreinterpretq_s64_u64): Likewise.
10823 (vreinterpretq_s64_u8): Likewise.
10824 (vreinterpretq_s8_s16): Likewise.
10825 (vreinterpretq_s8_s32): Likewise.
10826 (vreinterpretq_s8_s64): Likewise.
10827 (vreinterpretq_s8_u16): Likewise.
10828 (vreinterpretq_s8_u32): Likewise.
10829 (vreinterpretq_s8_u64): Likewise.
10830 (vreinterpretq_s8_u8): Likewise.
10831 (vreinterpretq_u16_s16): Likewise.
10832 (vreinterpretq_u16_s32): Likewise.
10833 (vreinterpretq_u16_s64): Likewise.
10834 (vreinterpretq_u16_s8): Likewise.
10835 (vreinterpretq_u16_u32): Likewise.
10836 (vreinterpretq_u16_u64): Likewise.
10837 (vreinterpretq_u16_u8): Likewise.
10838 (vreinterpretq_u32_s16): Likewise.
10839 (vreinterpretq_u32_s32): Likewise.
10840 (vreinterpretq_u32_s64): Likewise.
10841 (vreinterpretq_u32_s8): Likewise.
10842 (vreinterpretq_u32_u16): Likewise.
10843 (vreinterpretq_u32_u64): Likewise.
10844 (vreinterpretq_u32_u8): Likewise.
10845 (vreinterpretq_u64_s16): Likewise.
10846 (vreinterpretq_u64_s32): Likewise.
10847 (vreinterpretq_u64_s64): Likewise.
10848 (vreinterpretq_u64_s8): Likewise.
10849 (vreinterpretq_u64_u16): Likewise.
10850 (vreinterpretq_u64_u32): Likewise.
10851 (vreinterpretq_u64_u8): Likewise.
10852 (vreinterpretq_u8_s16): Likewise.
10853 (vreinterpretq_u8_s32): Likewise.
10854 (vreinterpretq_u8_s64): Likewise.
10855 (vreinterpretq_u8_s8): Likewise.
10856 (vreinterpretq_u8_u16): Likewise.
10857 (vreinterpretq_u8_u32): Likewise.
10858 (vreinterpretq_u8_u64): Likewise.
10859 (vreinterpretq_s32_f16): Likewise.
10860 (vreinterpretq_s32_f32): Likewise.
10861 (vreinterpretq_u16_f16): Likewise.
10862 (vreinterpretq_u16_f32): Likewise.
10863 (vreinterpretq_u32_f16): Likewise.
10864 (vreinterpretq_u32_f32): Likewise.
10865 (vreinterpretq_u64_f16): Likewise.
10866 (vreinterpretq_u64_f32): Likewise.
10867 (vreinterpretq_u8_f16): Likewise.
10868 (vreinterpretq_u8_f32): Likewise.
10869 (vreinterpretq_f16_f32): Likewise.
10870 (vreinterpretq_f16_s16): Likewise.
10871 (vreinterpretq_f16_s32): Likewise.
10872 (vreinterpretq_f16_s64): Likewise.
10873 (vreinterpretq_f16_s8): Likewise.
10874 (vreinterpretq_f16_u16): Likewise.
10875 (vreinterpretq_f16_u32): Likewise.
10876 (vreinterpretq_f16_u64): Likewise.
10877 (vreinterpretq_f16_u8): Likewise.
10878 (vreinterpretq_f32_f16): Likewise.
10879 (vreinterpretq_f32_s16): Likewise.
10880 (vreinterpretq_f32_s32): Likewise.
10881 (vreinterpretq_f32_s64): Likewise.
10882 (vreinterpretq_f32_s8): Likewise.
10883 (vreinterpretq_f32_u16): Likewise.
10884 (vreinterpretq_f32_u32): Likewise.
10885 (vreinterpretq_f32_u64): Likewise.
10886 (vreinterpretq_f32_u8): Likewise.
10887 (vreinterpretq_s16_f16): Likewise.
10888 (vreinterpretq_s16_f32): Likewise.
10889 (vreinterpretq_s64_f16): Likewise.
10890 (vreinterpretq_s64_f32): Likewise.
10891 (vreinterpretq_s8_f16): Likewise.
10892 (vreinterpretq_s8_f32): Likewise.
10893 (__arm_vreinterpretq_f16): Likewise.
10894 (__arm_vreinterpretq_f32): Likewise.
10895 (__arm_vreinterpretq_s16): Likewise.
10896 (__arm_vreinterpretq_s32): Likewise.
10897 (__arm_vreinterpretq_s64): Likewise.
10898 (__arm_vreinterpretq_s8): Likewise.
10899 (__arm_vreinterpretq_u16): Likewise.
10900 (__arm_vreinterpretq_u32): Likewise.
10901 (__arm_vreinterpretq_u64): Likewise.
10902 (__arm_vreinterpretq_u8): Likewise.
10903 * config/arm/arm_mve_types.h (__arm_vreinterpretq_s16_s32): Remove.
10904 (__arm_vreinterpretq_s16_s64): Likewise.
10905 (__arm_vreinterpretq_s16_s8): Likewise.
10906 (__arm_vreinterpretq_s16_u16): Likewise.
10907 (__arm_vreinterpretq_s16_u32): Likewise.
10908 (__arm_vreinterpretq_s16_u64): Likewise.
10909 (__arm_vreinterpretq_s16_u8): Likewise.
10910 (__arm_vreinterpretq_s32_s16): Likewise.
10911 (__arm_vreinterpretq_s32_s64): Likewise.
10912 (__arm_vreinterpretq_s32_s8): Likewise.
10913 (__arm_vreinterpretq_s32_u16): Likewise.
10914 (__arm_vreinterpretq_s32_u32): Likewise.
10915 (__arm_vreinterpretq_s32_u64): Likewise.
10916 (__arm_vreinterpretq_s32_u8): Likewise.
10917 (__arm_vreinterpretq_s64_s16): Likewise.
10918 (__arm_vreinterpretq_s64_s32): Likewise.
10919 (__arm_vreinterpretq_s64_s8): Likewise.
10920 (__arm_vreinterpretq_s64_u16): Likewise.
10921 (__arm_vreinterpretq_s64_u32): Likewise.
10922 (__arm_vreinterpretq_s64_u64): Likewise.
10923 (__arm_vreinterpretq_s64_u8): Likewise.
10924 (__arm_vreinterpretq_s8_s16): Likewise.
10925 (__arm_vreinterpretq_s8_s32): Likewise.
10926 (__arm_vreinterpretq_s8_s64): Likewise.
10927 (__arm_vreinterpretq_s8_u16): Likewise.
10928 (__arm_vreinterpretq_s8_u32): Likewise.
10929 (__arm_vreinterpretq_s8_u64): Likewise.
10930 (__arm_vreinterpretq_s8_u8): Likewise.
10931 (__arm_vreinterpretq_u16_s16): Likewise.
10932 (__arm_vreinterpretq_u16_s32): Likewise.
10933 (__arm_vreinterpretq_u16_s64): Likewise.
10934 (__arm_vreinterpretq_u16_s8): Likewise.
10935 (__arm_vreinterpretq_u16_u32): Likewise.
10936 (__arm_vreinterpretq_u16_u64): Likewise.
10937 (__arm_vreinterpretq_u16_u8): Likewise.
10938 (__arm_vreinterpretq_u32_s16): Likewise.
10939 (__arm_vreinterpretq_u32_s32): Likewise.
10940 (__arm_vreinterpretq_u32_s64): Likewise.
10941 (__arm_vreinterpretq_u32_s8): Likewise.
10942 (__arm_vreinterpretq_u32_u16): Likewise.
10943 (__arm_vreinterpretq_u32_u64): Likewise.
10944 (__arm_vreinterpretq_u32_u8): Likewise.
10945 (__arm_vreinterpretq_u64_s16): Likewise.
10946 (__arm_vreinterpretq_u64_s32): Likewise.
10947 (__arm_vreinterpretq_u64_s64): Likewise.
10948 (__arm_vreinterpretq_u64_s8): Likewise.
10949 (__arm_vreinterpretq_u64_u16): Likewise.
10950 (__arm_vreinterpretq_u64_u32): Likewise.
10951 (__arm_vreinterpretq_u64_u8): Likewise.
10952 (__arm_vreinterpretq_u8_s16): Likewise.
10953 (__arm_vreinterpretq_u8_s32): Likewise.
10954 (__arm_vreinterpretq_u8_s64): Likewise.
10955 (__arm_vreinterpretq_u8_s8): Likewise.
10956 (__arm_vreinterpretq_u8_u16): Likewise.
10957 (__arm_vreinterpretq_u8_u32): Likewise.
10958 (__arm_vreinterpretq_u8_u64): Likewise.
10959 (__arm_vreinterpretq_s32_f16): Likewise.
10960 (__arm_vreinterpretq_s32_f32): Likewise.
10961 (__arm_vreinterpretq_s16_f16): Likewise.
10962 (__arm_vreinterpretq_s16_f32): Likewise.
10963 (__arm_vreinterpretq_s64_f16): Likewise.
10964 (__arm_vreinterpretq_s64_f32): Likewise.
10965 (__arm_vreinterpretq_s8_f16): Likewise.
10966 (__arm_vreinterpretq_s8_f32): Likewise.
10967 (__arm_vreinterpretq_u16_f16): Likewise.
10968 (__arm_vreinterpretq_u16_f32): Likewise.
10969 (__arm_vreinterpretq_u32_f16): Likewise.
10970 (__arm_vreinterpretq_u32_f32): Likewise.
10971 (__arm_vreinterpretq_u64_f16): Likewise.
10972 (__arm_vreinterpretq_u64_f32): Likewise.
10973 (__arm_vreinterpretq_u8_f16): Likewise.
10974 (__arm_vreinterpretq_u8_f32): Likewise.
10975 (__arm_vreinterpretq_f16_f32): Likewise.
10976 (__arm_vreinterpretq_f16_s16): Likewise.
10977 (__arm_vreinterpretq_f16_s32): Likewise.
10978 (__arm_vreinterpretq_f16_s64): Likewise.
10979 (__arm_vreinterpretq_f16_s8): Likewise.
10980 (__arm_vreinterpretq_f16_u16): Likewise.
10981 (__arm_vreinterpretq_f16_u32): Likewise.
10982 (__arm_vreinterpretq_f16_u64): Likewise.
10983 (__arm_vreinterpretq_f16_u8): Likewise.
10984 (__arm_vreinterpretq_f32_f16): Likewise.
10985 (__arm_vreinterpretq_f32_s16): Likewise.
10986 (__arm_vreinterpretq_f32_s32): Likewise.
10987 (__arm_vreinterpretq_f32_s64): Likewise.
10988 (__arm_vreinterpretq_f32_s8): Likewise.
10989 (__arm_vreinterpretq_f32_u16): Likewise.
10990 (__arm_vreinterpretq_f32_u32): Likewise.
10991 (__arm_vreinterpretq_f32_u64): Likewise.
10992 (__arm_vreinterpretq_f32_u8): Likewise.
10993 (__arm_vreinterpretq_s16): Likewise.
10994 (__arm_vreinterpretq_s32): Likewise.
10995 (__arm_vreinterpretq_s64): Likewise.
10996 (__arm_vreinterpretq_s8): Likewise.
10997 (__arm_vreinterpretq_u16): Likewise.
10998 (__arm_vreinterpretq_u32): Likewise.
10999 (__arm_vreinterpretq_u64): Likewise.
11000 (__arm_vreinterpretq_u8): Likewise.
11001 (__arm_vreinterpretq_f16): Likewise.
11002 (__arm_vreinterpretq_f32): Likewise.
11003 * config/arm/mve.md (@arm_mve_reinterpret<mode>): New pattern.
11004 * config/arm/unspecs.md: (REINTERPRET): New unspec.
11005
11006 2023-05-03 Murray Steele <murray.steele@arm.com>
11007 Christophe Lyon <christophe.lyon@arm.com>
11008 Christophe Lyon <christophe.lyon@arm.com
11009
11010 * config.gcc: Add arm-mve-builtins-base.o and
11011 arm-mve-builtins-shapes.o to extra_objs.
11012 * config/arm/arm-builtins.cc (arm_builtin_decl): Handle MVE builtin
11013 numberspace.
11014 (arm_expand_builtin): Likewise
11015 (arm_check_builtin_call): Likewise
11016 (arm_describe_resolver): Likewise.
11017 * config/arm/arm-builtins.h (enum resolver_ident): Add
11018 arm_mve_resolver.
11019 * config/arm/arm-c.cc (arm_pragma_arm): Handle new pragma.
11020 (arm_resolve_overloaded_builtin): Handle MVE builtins.
11021 (arm_register_target_pragmas): Register arm_check_builtin_call.
11022 * config/arm/arm-mve-builtins.cc (class registered_function): New
11023 class.
11024 (struct registered_function_hasher): New struct.
11025 (pred_suffixes): New table.
11026 (mode_suffixes): New table.
11027 (type_suffix_info): New table.
11028 (TYPES_float16): New.
11029 (TYPES_all_float): New.
11030 (TYPES_integer_8): New.
11031 (TYPES_integer_8_16): New.
11032 (TYPES_integer_16_32): New.
11033 (TYPES_integer_32): New.
11034 (TYPES_signed_16_32): New.
11035 (TYPES_signed_32): New.
11036 (TYPES_all_signed): New.
11037 (TYPES_all_unsigned): New.
11038 (TYPES_all_integer): New.
11039 (TYPES_all_integer_with_64): New.
11040 (DEF_VECTOR_TYPE): New.
11041 (DEF_DOUBLE_TYPE): New.
11042 (DEF_MVE_TYPES_ARRAY): New.
11043 (all_integer): New.
11044 (all_integer_with_64): New.
11045 (float16): New.
11046 (all_float): New.
11047 (all_signed): New.
11048 (all_unsigned): New.
11049 (integer_8): New.
11050 (integer_8_16): New.
11051 (integer_16_32): New.
11052 (integer_32): New.
11053 (signed_16_32): New.
11054 (signed_32): New.
11055 (register_vector_type): Use void_type_node for mve.fp-only types when
11056 mve.fp is not enabled.
11057 (register_builtin_tuple_types): Likewise.
11058 (handle_arm_mve_h): New function..
11059 (matches_type_p): Likewise..
11060 (report_out_of_range): Likewise.
11061 (report_not_enum): Likewise.
11062 (report_missing_float): Likewise.
11063 (report_non_ice): Likewise.
11064 (check_requires_float): Likewise.
11065 (function_instance::hash): Likewise
11066 (function_instance::call_properties): Likewise.
11067 (function_instance::reads_global_state_p): Likewise.
11068 (function_instance::modifies_global_state_p): Likewise.
11069 (function_instance::could_trap_p): Likewise.
11070 (function_instance::has_inactive_argument): Likewise.
11071 (registered_function_hasher::hash): Likewise.
11072 (registered_function_hasher::equal): Likewise.
11073 (function_builder::function_builder): Likewise.
11074 (function_builder::~function_builder): Likewise.
11075 (function_builder::append_name): Likewise.
11076 (function_builder::finish_name): Likewise.
11077 (function_builder::get_name): Likewise.
11078 (add_attribute): Likewise.
11079 (function_builder::get_attributes): Likewise.
11080 (function_builder::add_function): Likewise.
11081 (function_builder::add_unique_function): Likewise.
11082 (function_builder::add_overloaded_function): Likewise.
11083 (function_builder::add_overloaded_functions): Likewise.
11084 (function_builder::register_function_group): Likewise.
11085 (function_call_info::function_call_info): Likewise.
11086 (function_resolver::function_resolver): Likewise.
11087 (function_resolver::get_vector_type): Likewise.
11088 (function_resolver::get_scalar_type_name): Likewise.
11089 (function_resolver::get_argument_type): Likewise.
11090 (function_resolver::scalar_argument_p): Likewise.
11091 (function_resolver::report_no_such_form): Likewise.
11092 (function_resolver::lookup_form): Likewise.
11093 (function_resolver::resolve_to): Likewise.
11094 (function_resolver::infer_vector_or_tuple_type): Likewise.
11095 (function_resolver::infer_vector_type): Likewise.
11096 (function_resolver::require_vector_or_scalar_type): Likewise.
11097 (function_resolver::require_vector_type): Likewise.
11098 (function_resolver::require_matching_vector_type): Likewise.
11099 (function_resolver::require_derived_vector_type): Likewise.
11100 (function_resolver::require_derived_scalar_type): Likewise.
11101 (function_resolver::require_integer_immediate): Likewise.
11102 (function_resolver::require_scalar_type): Likewise.
11103 (function_resolver::check_num_arguments): Likewise.
11104 (function_resolver::check_gp_argument): Likewise.
11105 (function_resolver::finish_opt_n_resolution): Likewise.
11106 (function_resolver::resolve_unary): Likewise.
11107 (function_resolver::resolve_unary_n): Likewise.
11108 (function_resolver::resolve_uniform): Likewise.
11109 (function_resolver::resolve_uniform_opt_n): Likewise.
11110 (function_resolver::resolve): Likewise.
11111 (function_checker::function_checker): Likewise.
11112 (function_checker::argument_exists_p): Likewise.
11113 (function_checker::require_immediate): Likewise.
11114 (function_checker::require_immediate_enum): Likewise.
11115 (function_checker::require_immediate_range): Likewise.
11116 (function_checker::check): Likewise.
11117 (gimple_folder::gimple_folder): Likewise.
11118 (gimple_folder::fold): Likewise.
11119 (function_expander::function_expander): Likewise.
11120 (function_expander::direct_optab_handler): Likewise.
11121 (function_expander::get_fallback_value): Likewise.
11122 (function_expander::get_reg_target): Likewise.
11123 (function_expander::add_output_operand): Likewise.
11124 (function_expander::add_input_operand): Likewise.
11125 (function_expander::add_integer_operand): Likewise.
11126 (function_expander::generate_insn): Likewise.
11127 (function_expander::use_exact_insn): Likewise.
11128 (function_expander::use_unpred_insn): Likewise.
11129 (function_expander::use_pred_x_insn): Likewise.
11130 (function_expander::use_cond_insn): Likewise.
11131 (function_expander::map_to_rtx_codes): Likewise.
11132 (function_expander::expand): Likewise.
11133 (resolve_overloaded_builtin): Likewise.
11134 (check_builtin_call): Likewise.
11135 (gimple_fold_builtin): Likewise.
11136 (expand_builtin): Likewise.
11137 (gt_ggc_mx): Likewise.
11138 (gt_pch_nx): Likewise.
11139 (gt_pch_nx): Likewise.
11140 * config/arm/arm-mve-builtins.def(s8): Define new type suffix.
11141 (s16): Likewise.
11142 (s32): Likewise.
11143 (s64): Likewise.
11144 (u8): Likewise.
11145 (u16): Likewise.
11146 (u32): Likewise.
11147 (u64): Likewise.
11148 (f16): Likewise.
11149 (f32): Likewise.
11150 (n): New mode.
11151 (offset): New mode.
11152 * config/arm/arm-mve-builtins.h (MAX_TUPLE_SIZE): New constant.
11153 (CP_READ_FPCR): Likewise.
11154 (CP_RAISE_FP_EXCEPTIONS): Likewise.
11155 (CP_READ_MEMORY): Likewise.
11156 (CP_WRITE_MEMORY): Likewise.
11157 (enum units_index): New enum.
11158 (enum predication_index): New.
11159 (enum type_class_index): New.
11160 (enum mode_suffix_index): New enum.
11161 (enum type_suffix_index): New.
11162 (struct mode_suffix_info): New struct.
11163 (struct type_suffix_info): New.
11164 (struct function_group_info): Likewise.
11165 (class function_instance): Likewise.
11166 (class registered_function): Likewise.
11167 (class function_builder): Likewise.
11168 (class function_call_info): Likewise.
11169 (class function_resolver): Likewise.
11170 (class function_checker): Likewise.
11171 (class gimple_folder): Likewise.
11172 (class function_expander): Likewise.
11173 (get_mve_pred16_t): Likewise.
11174 (find_mode_suffix): New function.
11175 (class function_base): Likewise.
11176 (class function_shape): Likewise.
11177 (function_instance::operator==): New function.
11178 (function_instance::operator!=): Likewise.
11179 (function_instance::vectors_per_tuple): Likewise.
11180 (function_instance::mode_suffix): Likewise.
11181 (function_instance::type_suffix): Likewise.
11182 (function_instance::scalar_type): Likewise.
11183 (function_instance::vector_type): Likewise.
11184 (function_instance::tuple_type): Likewise.
11185 (function_instance::vector_mode): Likewise.
11186 (function_call_info::function_returns_void_p): Likewise.
11187 (function_base::call_properties): Likewise.
11188 * config/arm/arm-protos.h (enum arm_builtin_class): Add
11189 ARM_BUILTIN_MVE.
11190 (handle_arm_mve_h): New.
11191 (resolve_overloaded_builtin): New.
11192 (check_builtin_call): New.
11193 (gimple_fold_builtin): New.
11194 (expand_builtin): New.
11195 * config/arm/arm.cc (TARGET_GIMPLE_FOLD_BUILTIN): Define as
11196 arm_gimple_fold_builtin.
11197 (arm_gimple_fold_builtin): New function.
11198 * config/arm/arm_mve.h: Use new arm_mve.h pragma.
11199 * config/arm/predicates.md (arm_any_register_operand): New predicate.
11200 * config/arm/t-arm: (arm-mve-builtins.o): Add includes.
11201 (arm-mve-builtins-shapes.o): New target.
11202 (arm-mve-builtins-base.o): New target.
11203 * config/arm/arm-mve-builtins-base.cc: New file.
11204 * config/arm/arm-mve-builtins-base.def: New file.
11205 * config/arm/arm-mve-builtins-base.h: New file.
11206 * config/arm/arm-mve-builtins-functions.h: New file.
11207 * config/arm/arm-mve-builtins-shapes.cc: New file.
11208 * config/arm/arm-mve-builtins-shapes.h: New file.
11209
11210 2023-05-03 Murray Steele <murray.steele@arm.com>
11211 Christophe Lyon <christophe.lyon@arm.com>
11212 Christophe Lyon <christophe.lyon@arm.com>
11213
11214 * config/arm/arm-builtins.cc (arm_general_add_builtin_function):
11215 New function.
11216 (arm_init_builtin): Use arm_general_add_builtin_function instead
11217 of arm_add_builtin_function.
11218 (arm_init_acle_builtins): Likewise.
11219 (arm_init_mve_builtins): Likewise.
11220 (arm_init_crypto_builtins): Likewise.
11221 (arm_init_builtins): Likewise.
11222 (arm_general_builtin_decl): New function.
11223 (arm_builtin_decl): Defer to numberspace-specialized functions.
11224 (arm_expand_builtin_args): Rename into arm_general_expand_builtin_args.
11225 (arm_expand_builtin_1): Rename into arm_general_expand_builtin_1 and ...
11226 (arm_general_expand_builtin_1): ... specialize for general builtins.
11227 (arm_expand_acle_builtin): Use arm_general_expand_builtin
11228 instead of arm_expand_builtin.
11229 (arm_expand_mve_builtin): Likewise.
11230 (arm_expand_neon_builtin): Likewise.
11231 (arm_expand_vfp_builtin): Likewise.
11232 (arm_general_expand_builtin): New function.
11233 (arm_expand_builtin): Specialize for general builtins.
11234 (arm_general_check_builtin_call): New function.
11235 (arm_check_builtin_call): Specialize for general builtins.
11236 (arm_describe_resolver): Validate numberspace.
11237 (arm_cde_end_args): Likewise.
11238 * config/arm/arm-protos.h (enum arm_builtin_class): New enum.
11239 (ARM_BUILTIN_SHIFT, ARM_BUILTIN_CLASS): New constants.
11240
11241 2023-05-03 Martin Liska <mliska@suse.cz>
11242
11243 PR target/109713
11244 * config/riscv/sync.md: Add gcc_unreachable to a switch.
11245
11246 2023-05-03 Richard Biener <rguenther@suse.de>
11247
11248 * tree-ssa-loop-split.cc (split_at_bb_p): Avoid last_stmt.
11249 (patch_loop_exit): Likewise.
11250 (connect_loops): Likewise.
11251 (split_loop): Likewise.
11252 (control_dep_semi_invariant_p): Likewise.
11253 (do_split_loop_on_cond): Likewise.
11254 (split_loop_on_cond): Likewise.
11255 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
11256 Likewise.
11257 (simplify_loop_version): Likewise.
11258 (evaluate_bbs): Likewise.
11259 (find_loop_guard): Likewise.
11260 (clean_up_after_unswitching): Likewise.
11261 * tree-ssa-math-opts.cc (maybe_optimize_guarding_check):
11262 Likewise.
11263 (optimize_spaceship): Take a gcond * argument, avoid
11264 last_stmt.
11265 (math_opts_dom_walker::after_dom_children): Adjust call to
11266 optimize_spaceship.
11267 * tree-vrp.cc (maybe_set_nonzero_bits): Avoid last_stmt.
11268 * value-pointer-equiv.cc (pointer_equiv_analyzer::visit_edge):
11269 Likewise.
11270
11271 2023-05-03 Andreas Schwab <schwab@suse.de>
11272
11273 * config/riscv/linux.h (LIB_SPEC): Don't redefine.
11274
11275 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11276
11277 * config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load):
11278 New function.
11279 (class vlseg): New class.
11280 (class vsseg): Ditto.
11281 (class vlsseg): Ditto.
11282 (class vssseg): Ditto.
11283 (class seg_indexed_load): Ditto.
11284 (class seg_indexed_store): Ditto.
11285 (class vlsegff): Ditto.
11286 (BASE): Ditto.
11287 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
11288 * config/riscv/riscv-vector-builtins-functions.def (vlseg):
11289 Ditto.
11290 (vsseg): Ditto.
11291 (vlsseg): Ditto.
11292 (vssseg): Ditto.
11293 (vluxseg): Ditto.
11294 (vloxseg): Ditto.
11295 (vsuxseg): Ditto.
11296 (vsoxseg): Ditto.
11297 (vlsegff): Ditto.
11298 * config/riscv/riscv-vector-builtins-shapes.cc (struct
11299 seg_loadstore_def): Ditto.
11300 (struct seg_indexed_loadstore_def): Ditto.
11301 (struct seg_fault_load_def): Ditto.
11302 (SHAPE): Ditto.
11303 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
11304 * config/riscv/riscv-vector-builtins.cc
11305 (function_builder::append_nf): New function.
11306 * config/riscv/riscv-vector-builtins.def (vfloat32m1x2_t):
11307 Change ptr from double into float.
11308 (vfloat32m1x3_t): Ditto.
11309 (vfloat32m1x4_t): Ditto.
11310 (vfloat32m1x5_t): Ditto.
11311 (vfloat32m1x6_t): Ditto.
11312 (vfloat32m1x7_t): Ditto.
11313 (vfloat32m1x8_t): Ditto.
11314 (vfloat32m2x2_t): Ditto.
11315 (vfloat32m2x3_t): Ditto.
11316 (vfloat32m2x4_t): Ditto.
11317 (vfloat32m4x2_t): Ditto.
11318 * config/riscv/riscv-vector-builtins.h: Add segment intrinsics.
11319 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Adapt for
11320 segment ff load.
11321 * config/riscv/riscv.md: Add segment instructions.
11322 * config/riscv/vector-iterators.md: Support segment intrinsics.
11323 * config/riscv/vector.md (@pred_unit_strided_load<mode>): New
11324 pattern.
11325 (@pred_unit_strided_store<mode>): Ditto.
11326 (@pred_strided_load<mode>): Ditto.
11327 (@pred_strided_store<mode>): Ditto.
11328 (@pred_fault_load<mode>): Ditto.
11329 (@pred_indexed_<order>load<V1T:mode><V1I:mode>): Ditto.
11330 (@pred_indexed_<order>load<V2T:mode><V2I:mode>): Ditto.
11331 (@pred_indexed_<order>load<V4T:mode><V4I:mode>): Ditto.
11332 (@pred_indexed_<order>load<V8T:mode><V8I:mode>): Ditto.
11333 (@pred_indexed_<order>load<V16T:mode><V16I:mode>): Ditto.
11334 (@pred_indexed_<order>load<V32T:mode><V32I:mode>): Ditto.
11335 (@pred_indexed_<order>load<V64T:mode><V64I:mode>): Ditto.
11336 (@pred_indexed_<order>store<V1T:mode><V1I:mode>): Ditto.
11337 (@pred_indexed_<order>store<V2T:mode><V2I:mode>): Ditto.
11338 (@pred_indexed_<order>store<V4T:mode><V4I:mode>): Ditto.
11339 (@pred_indexed_<order>store<V8T:mode><V8I:mode>): Ditto.
11340 (@pred_indexed_<order>store<V16T:mode><V16I:mode>): Ditto.
11341 (@pred_indexed_<order>store<V32T:mode><V32I:mode>): Ditto.
11342 (@pred_indexed_<order>store<V64T:mode><V64I:mode>): Ditto.
11343
11344 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11345
11346 * config/riscv/genrvv-type-indexer.cc (valid_type): Adapt for
11347 tuple type support.
11348 (inttype): Ditto.
11349 (floattype): Ditto.
11350 (main): Ditto.
11351 * config/riscv/riscv-vector-builtins-bases.cc: Ditto.
11352 * config/riscv/riscv-vector-builtins-functions.def (vset): Add
11353 tuple type vset.
11354 (vget): Add tuple type vget.
11355 * config/riscv/riscv-vector-builtins-types.def
11356 (DEF_RVV_TUPLE_OPS): New macro.
11357 (vint8mf8x2_t): Ditto.
11358 (vuint8mf8x2_t): Ditto.
11359 (vint8mf8x3_t): Ditto.
11360 (vuint8mf8x3_t): Ditto.
11361 (vint8mf8x4_t): Ditto.
11362 (vuint8mf8x4_t): Ditto.
11363 (vint8mf8x5_t): Ditto.
11364 (vuint8mf8x5_t): Ditto.
11365 (vint8mf8x6_t): Ditto.
11366 (vuint8mf8x6_t): Ditto.
11367 (vint8mf8x7_t): Ditto.
11368 (vuint8mf8x7_t): Ditto.
11369 (vint8mf8x8_t): Ditto.
11370 (vuint8mf8x8_t): Ditto.
11371 (vint8mf4x2_t): Ditto.
11372 (vuint8mf4x2_t): Ditto.
11373 (vint8mf4x3_t): Ditto.
11374 (vuint8mf4x3_t): Ditto.
11375 (vint8mf4x4_t): Ditto.
11376 (vuint8mf4x4_t): Ditto.
11377 (vint8mf4x5_t): Ditto.
11378 (vuint8mf4x5_t): Ditto.
11379 (vint8mf4x6_t): Ditto.
11380 (vuint8mf4x6_t): Ditto.
11381 (vint8mf4x7_t): Ditto.
11382 (vuint8mf4x7_t): Ditto.
11383 (vint8mf4x8_t): Ditto.
11384 (vuint8mf4x8_t): Ditto.
11385 (vint8mf2x2_t): Ditto.
11386 (vuint8mf2x2_t): Ditto.
11387 (vint8mf2x3_t): Ditto.
11388 (vuint8mf2x3_t): Ditto.
11389 (vint8mf2x4_t): Ditto.
11390 (vuint8mf2x4_t): Ditto.
11391 (vint8mf2x5_t): Ditto.
11392 (vuint8mf2x5_t): Ditto.
11393 (vint8mf2x6_t): Ditto.
11394 (vuint8mf2x6_t): Ditto.
11395 (vint8mf2x7_t): Ditto.
11396 (vuint8mf2x7_t): Ditto.
11397 (vint8mf2x8_t): Ditto.
11398 (vuint8mf2x8_t): Ditto.
11399 (vint8m1x2_t): Ditto.
11400 (vuint8m1x2_t): Ditto.
11401 (vint8m1x3_t): Ditto.
11402 (vuint8m1x3_t): Ditto.
11403 (vint8m1x4_t): Ditto.
11404 (vuint8m1x4_t): Ditto.
11405 (vint8m1x5_t): Ditto.
11406 (vuint8m1x5_t): Ditto.
11407 (vint8m1x6_t): Ditto.
11408 (vuint8m1x6_t): Ditto.
11409 (vint8m1x7_t): Ditto.
11410 (vuint8m1x7_t): Ditto.
11411 (vint8m1x8_t): Ditto.
11412 (vuint8m1x8_t): Ditto.
11413 (vint8m2x2_t): Ditto.
11414 (vuint8m2x2_t): Ditto.
11415 (vint8m2x3_t): Ditto.
11416 (vuint8m2x3_t): Ditto.
11417 (vint8m2x4_t): Ditto.
11418 (vuint8m2x4_t): Ditto.
11419 (vint8m4x2_t): Ditto.
11420 (vuint8m4x2_t): Ditto.
11421 (vint16mf4x2_t): Ditto.
11422 (vuint16mf4x2_t): Ditto.
11423 (vint16mf4x3_t): Ditto.
11424 (vuint16mf4x3_t): Ditto.
11425 (vint16mf4x4_t): Ditto.
11426 (vuint16mf4x4_t): Ditto.
11427 (vint16mf4x5_t): Ditto.
11428 (vuint16mf4x5_t): Ditto.
11429 (vint16mf4x6_t): Ditto.
11430 (vuint16mf4x6_t): Ditto.
11431 (vint16mf4x7_t): Ditto.
11432 (vuint16mf4x7_t): Ditto.
11433 (vint16mf4x8_t): Ditto.
11434 (vuint16mf4x8_t): Ditto.
11435 (vint16mf2x2_t): Ditto.
11436 (vuint16mf2x2_t): Ditto.
11437 (vint16mf2x3_t): Ditto.
11438 (vuint16mf2x3_t): Ditto.
11439 (vint16mf2x4_t): Ditto.
11440 (vuint16mf2x4_t): Ditto.
11441 (vint16mf2x5_t): Ditto.
11442 (vuint16mf2x5_t): Ditto.
11443 (vint16mf2x6_t): Ditto.
11444 (vuint16mf2x6_t): Ditto.
11445 (vint16mf2x7_t): Ditto.
11446 (vuint16mf2x7_t): Ditto.
11447 (vint16mf2x8_t): Ditto.
11448 (vuint16mf2x8_t): Ditto.
11449 (vint16m1x2_t): Ditto.
11450 (vuint16m1x2_t): Ditto.
11451 (vint16m1x3_t): Ditto.
11452 (vuint16m1x3_t): Ditto.
11453 (vint16m1x4_t): Ditto.
11454 (vuint16m1x4_t): Ditto.
11455 (vint16m1x5_t): Ditto.
11456 (vuint16m1x5_t): Ditto.
11457 (vint16m1x6_t): Ditto.
11458 (vuint16m1x6_t): Ditto.
11459 (vint16m1x7_t): Ditto.
11460 (vuint16m1x7_t): Ditto.
11461 (vint16m1x8_t): Ditto.
11462 (vuint16m1x8_t): Ditto.
11463 (vint16m2x2_t): Ditto.
11464 (vuint16m2x2_t): Ditto.
11465 (vint16m2x3_t): Ditto.
11466 (vuint16m2x3_t): Ditto.
11467 (vint16m2x4_t): Ditto.
11468 (vuint16m2x4_t): Ditto.
11469 (vint16m4x2_t): Ditto.
11470 (vuint16m4x2_t): Ditto.
11471 (vint32mf2x2_t): Ditto.
11472 (vuint32mf2x2_t): Ditto.
11473 (vint32mf2x3_t): Ditto.
11474 (vuint32mf2x3_t): Ditto.
11475 (vint32mf2x4_t): Ditto.
11476 (vuint32mf2x4_t): Ditto.
11477 (vint32mf2x5_t): Ditto.
11478 (vuint32mf2x5_t): Ditto.
11479 (vint32mf2x6_t): Ditto.
11480 (vuint32mf2x6_t): Ditto.
11481 (vint32mf2x7_t): Ditto.
11482 (vuint32mf2x7_t): Ditto.
11483 (vint32mf2x8_t): Ditto.
11484 (vuint32mf2x8_t): Ditto.
11485 (vint32m1x2_t): Ditto.
11486 (vuint32m1x2_t): Ditto.
11487 (vint32m1x3_t): Ditto.
11488 (vuint32m1x3_t): Ditto.
11489 (vint32m1x4_t): Ditto.
11490 (vuint32m1x4_t): Ditto.
11491 (vint32m1x5_t): Ditto.
11492 (vuint32m1x5_t): Ditto.
11493 (vint32m1x6_t): Ditto.
11494 (vuint32m1x6_t): Ditto.
11495 (vint32m1x7_t): Ditto.
11496 (vuint32m1x7_t): Ditto.
11497 (vint32m1x8_t): Ditto.
11498 (vuint32m1x8_t): Ditto.
11499 (vint32m2x2_t): Ditto.
11500 (vuint32m2x2_t): Ditto.
11501 (vint32m2x3_t): Ditto.
11502 (vuint32m2x3_t): Ditto.
11503 (vint32m2x4_t): Ditto.
11504 (vuint32m2x4_t): Ditto.
11505 (vint32m4x2_t): Ditto.
11506 (vuint32m4x2_t): Ditto.
11507 (vint64m1x2_t): Ditto.
11508 (vuint64m1x2_t): Ditto.
11509 (vint64m1x3_t): Ditto.
11510 (vuint64m1x3_t): Ditto.
11511 (vint64m1x4_t): Ditto.
11512 (vuint64m1x4_t): Ditto.
11513 (vint64m1x5_t): Ditto.
11514 (vuint64m1x5_t): Ditto.
11515 (vint64m1x6_t): Ditto.
11516 (vuint64m1x6_t): Ditto.
11517 (vint64m1x7_t): Ditto.
11518 (vuint64m1x7_t): Ditto.
11519 (vint64m1x8_t): Ditto.
11520 (vuint64m1x8_t): Ditto.
11521 (vint64m2x2_t): Ditto.
11522 (vuint64m2x2_t): Ditto.
11523 (vint64m2x3_t): Ditto.
11524 (vuint64m2x3_t): Ditto.
11525 (vint64m2x4_t): Ditto.
11526 (vuint64m2x4_t): Ditto.
11527 (vint64m4x2_t): Ditto.
11528 (vuint64m4x2_t): Ditto.
11529 (vfloat32mf2x2_t): Ditto.
11530 (vfloat32mf2x3_t): Ditto.
11531 (vfloat32mf2x4_t): Ditto.
11532 (vfloat32mf2x5_t): Ditto.
11533 (vfloat32mf2x6_t): Ditto.
11534 (vfloat32mf2x7_t): Ditto.
11535 (vfloat32mf2x8_t): Ditto.
11536 (vfloat32m1x2_t): Ditto.
11537 (vfloat32m1x3_t): Ditto.
11538 (vfloat32m1x4_t): Ditto.
11539 (vfloat32m1x5_t): Ditto.
11540 (vfloat32m1x6_t): Ditto.
11541 (vfloat32m1x7_t): Ditto.
11542 (vfloat32m1x8_t): Ditto.
11543 (vfloat32m2x2_t): Ditto.
11544 (vfloat32m2x3_t): Ditto.
11545 (vfloat32m2x4_t): Ditto.
11546 (vfloat32m4x2_t): Ditto.
11547 (vfloat64m1x2_t): Ditto.
11548 (vfloat64m1x3_t): Ditto.
11549 (vfloat64m1x4_t): Ditto.
11550 (vfloat64m1x5_t): Ditto.
11551 (vfloat64m1x6_t): Ditto.
11552 (vfloat64m1x7_t): Ditto.
11553 (vfloat64m1x8_t): Ditto.
11554 (vfloat64m2x2_t): Ditto.
11555 (vfloat64m2x3_t): Ditto.
11556 (vfloat64m2x4_t): Ditto.
11557 (vfloat64m4x2_t): Ditto.
11558 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_OPS):
11559 Ditto.
11560 (DEF_RVV_TYPE_INDEX): Ditto.
11561 (rvv_arg_type_info::get_tuple_subpart_type): New function.
11562 (DEF_RVV_TUPLE_TYPE): New macro.
11563 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX):
11564 Adapt for tuple vget/vset support.
11565 (vint8mf4_t): Ditto.
11566 (vuint8mf4_t): Ditto.
11567 (vint8mf2_t): Ditto.
11568 (vuint8mf2_t): Ditto.
11569 (vint8m1_t): Ditto.
11570 (vuint8m1_t): Ditto.
11571 (vint8m2_t): Ditto.
11572 (vuint8m2_t): Ditto.
11573 (vint8m4_t): Ditto.
11574 (vuint8m4_t): Ditto.
11575 (vint8m8_t): Ditto.
11576 (vuint8m8_t): Ditto.
11577 (vint16mf4_t): Ditto.
11578 (vuint16mf4_t): Ditto.
11579 (vint16mf2_t): Ditto.
11580 (vuint16mf2_t): Ditto.
11581 (vint16m1_t): Ditto.
11582 (vuint16m1_t): Ditto.
11583 (vint16m2_t): Ditto.
11584 (vuint16m2_t): Ditto.
11585 (vint16m4_t): Ditto.
11586 (vuint16m4_t): Ditto.
11587 (vint16m8_t): Ditto.
11588 (vuint16m8_t): Ditto.
11589 (vint32mf2_t): Ditto.
11590 (vuint32mf2_t): Ditto.
11591 (vint32m1_t): Ditto.
11592 (vuint32m1_t): Ditto.
11593 (vint32m2_t): Ditto.
11594 (vuint32m2_t): Ditto.
11595 (vint32m4_t): Ditto.
11596 (vuint32m4_t): Ditto.
11597 (vint32m8_t): Ditto.
11598 (vuint32m8_t): Ditto.
11599 (vint64m1_t): Ditto.
11600 (vuint64m1_t): Ditto.
11601 (vint64m2_t): Ditto.
11602 (vuint64m2_t): Ditto.
11603 (vint64m4_t): Ditto.
11604 (vuint64m4_t): Ditto.
11605 (vint64m8_t): Ditto.
11606 (vuint64m8_t): Ditto.
11607 (vfloat32mf2_t): Ditto.
11608 (vfloat32m1_t): Ditto.
11609 (vfloat32m2_t): Ditto.
11610 (vfloat32m4_t): Ditto.
11611 (vfloat32m8_t): Ditto.
11612 (vfloat64m1_t): Ditto.
11613 (vfloat64m2_t): Ditto.
11614 (vfloat64m4_t): Ditto.
11615 (vfloat64m8_t): Ditto.
11616 (tuple_subpart): Add tuple subpart base type.
11617 * config/riscv/riscv-vector-builtins.h (struct
11618 rvv_arg_type_info): Ditto.
11619 (tuple_type_field): New function.
11620
11621 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11622
11623 * config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
11624 (RVV_TUPLE_PARTIAL_MODES): Ditto.
11625 * config/riscv/riscv-protos.h (riscv_v_ext_tuple_mode_p): New
11626 function.
11627 (get_nf): Ditto.
11628 (get_subpart_mode): Ditto.
11629 (get_tuple_mode): Ditto.
11630 (expand_tuple_move): Ditto.
11631 * config/riscv/riscv-v.cc (ENTRY): New macro.
11632 (TUPLE_ENTRY): Ditto.
11633 (get_nf): New function.
11634 (get_subpart_mode): Ditto.
11635 (get_tuple_mode): Ditto.
11636 (expand_tuple_move): Ditto.
11637 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_TYPE):
11638 New macro.
11639 (register_tuple_type): New function
11640 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TUPLE_TYPE):
11641 New macro.
11642 (vint8mf8x2_t): New macro.
11643 (vuint8mf8x2_t): Ditto.
11644 (vint8mf8x3_t): Ditto.
11645 (vuint8mf8x3_t): Ditto.
11646 (vint8mf8x4_t): Ditto.
11647 (vuint8mf8x4_t): Ditto.
11648 (vint8mf8x5_t): Ditto.
11649 (vuint8mf8x5_t): Ditto.
11650 (vint8mf8x6_t): Ditto.
11651 (vuint8mf8x6_t): Ditto.
11652 (vint8mf8x7_t): Ditto.
11653 (vuint8mf8x7_t): Ditto.
11654 (vint8mf8x8_t): Ditto.
11655 (vuint8mf8x8_t): Ditto.
11656 (vint8mf4x2_t): Ditto.
11657 (vuint8mf4x2_t): Ditto.
11658 (vint8mf4x3_t): Ditto.
11659 (vuint8mf4x3_t): Ditto.
11660 (vint8mf4x4_t): Ditto.
11661 (vuint8mf4x4_t): Ditto.
11662 (vint8mf4x5_t): Ditto.
11663 (vuint8mf4x5_t): Ditto.
11664 (vint8mf4x6_t): Ditto.
11665 (vuint8mf4x6_t): Ditto.
11666 (vint8mf4x7_t): Ditto.
11667 (vuint8mf4x7_t): Ditto.
11668 (vint8mf4x8_t): Ditto.
11669 (vuint8mf4x8_t): Ditto.
11670 (vint8mf2x2_t): Ditto.
11671 (vuint8mf2x2_t): Ditto.
11672 (vint8mf2x3_t): Ditto.
11673 (vuint8mf2x3_t): Ditto.
11674 (vint8mf2x4_t): Ditto.
11675 (vuint8mf2x4_t): Ditto.
11676 (vint8mf2x5_t): Ditto.
11677 (vuint8mf2x5_t): Ditto.
11678 (vint8mf2x6_t): Ditto.
11679 (vuint8mf2x6_t): Ditto.
11680 (vint8mf2x7_t): Ditto.
11681 (vuint8mf2x7_t): Ditto.
11682 (vint8mf2x8_t): Ditto.
11683 (vuint8mf2x8_t): Ditto.
11684 (vint8m1x2_t): Ditto.
11685 (vuint8m1x2_t): Ditto.
11686 (vint8m1x3_t): Ditto.
11687 (vuint8m1x3_t): Ditto.
11688 (vint8m1x4_t): Ditto.
11689 (vuint8m1x4_t): Ditto.
11690 (vint8m1x5_t): Ditto.
11691 (vuint8m1x5_t): Ditto.
11692 (vint8m1x6_t): Ditto.
11693 (vuint8m1x6_t): Ditto.
11694 (vint8m1x7_t): Ditto.
11695 (vuint8m1x7_t): Ditto.
11696 (vint8m1x8_t): Ditto.
11697 (vuint8m1x8_t): Ditto.
11698 (vint8m2x2_t): Ditto.
11699 (vuint8m2x2_t): Ditto.
11700 (vint8m2x3_t): Ditto.
11701 (vuint8m2x3_t): Ditto.
11702 (vint8m2x4_t): Ditto.
11703 (vuint8m2x4_t): Ditto.
11704 (vint8m4x2_t): Ditto.
11705 (vuint8m4x2_t): Ditto.
11706 (vint16mf4x2_t): Ditto.
11707 (vuint16mf4x2_t): Ditto.
11708 (vint16mf4x3_t): Ditto.
11709 (vuint16mf4x3_t): Ditto.
11710 (vint16mf4x4_t): Ditto.
11711 (vuint16mf4x4_t): Ditto.
11712 (vint16mf4x5_t): Ditto.
11713 (vuint16mf4x5_t): Ditto.
11714 (vint16mf4x6_t): Ditto.
11715 (vuint16mf4x6_t): Ditto.
11716 (vint16mf4x7_t): Ditto.
11717 (vuint16mf4x7_t): Ditto.
11718 (vint16mf4x8_t): Ditto.
11719 (vuint16mf4x8_t): Ditto.
11720 (vint16mf2x2_t): Ditto.
11721 (vuint16mf2x2_t): Ditto.
11722 (vint16mf2x3_t): Ditto.
11723 (vuint16mf2x3_t): Ditto.
11724 (vint16mf2x4_t): Ditto.
11725 (vuint16mf2x4_t): Ditto.
11726 (vint16mf2x5_t): Ditto.
11727 (vuint16mf2x5_t): Ditto.
11728 (vint16mf2x6_t): Ditto.
11729 (vuint16mf2x6_t): Ditto.
11730 (vint16mf2x7_t): Ditto.
11731 (vuint16mf2x7_t): Ditto.
11732 (vint16mf2x8_t): Ditto.
11733 (vuint16mf2x8_t): Ditto.
11734 (vint16m1x2_t): Ditto.
11735 (vuint16m1x2_t): Ditto.
11736 (vint16m1x3_t): Ditto.
11737 (vuint16m1x3_t): Ditto.
11738 (vint16m1x4_t): Ditto.
11739 (vuint16m1x4_t): Ditto.
11740 (vint16m1x5_t): Ditto.
11741 (vuint16m1x5_t): Ditto.
11742 (vint16m1x6_t): Ditto.
11743 (vuint16m1x6_t): Ditto.
11744 (vint16m1x7_t): Ditto.
11745 (vuint16m1x7_t): Ditto.
11746 (vint16m1x8_t): Ditto.
11747 (vuint16m1x8_t): Ditto.
11748 (vint16m2x2_t): Ditto.
11749 (vuint16m2x2_t): Ditto.
11750 (vint16m2x3_t): Ditto.
11751 (vuint16m2x3_t): Ditto.
11752 (vint16m2x4_t): Ditto.
11753 (vuint16m2x4_t): Ditto.
11754 (vint16m4x2_t): Ditto.
11755 (vuint16m4x2_t): Ditto.
11756 (vint32mf2x2_t): Ditto.
11757 (vuint32mf2x2_t): Ditto.
11758 (vint32mf2x3_t): Ditto.
11759 (vuint32mf2x3_t): Ditto.
11760 (vint32mf2x4_t): Ditto.
11761 (vuint32mf2x4_t): Ditto.
11762 (vint32mf2x5_t): Ditto.
11763 (vuint32mf2x5_t): Ditto.
11764 (vint32mf2x6_t): Ditto.
11765 (vuint32mf2x6_t): Ditto.
11766 (vint32mf2x7_t): Ditto.
11767 (vuint32mf2x7_t): Ditto.
11768 (vint32mf2x8_t): Ditto.
11769 (vuint32mf2x8_t): Ditto.
11770 (vint32m1x2_t): Ditto.
11771 (vuint32m1x2_t): Ditto.
11772 (vint32m1x3_t): Ditto.
11773 (vuint32m1x3_t): Ditto.
11774 (vint32m1x4_t): Ditto.
11775 (vuint32m1x4_t): Ditto.
11776 (vint32m1x5_t): Ditto.
11777 (vuint32m1x5_t): Ditto.
11778 (vint32m1x6_t): Ditto.
11779 (vuint32m1x6_t): Ditto.
11780 (vint32m1x7_t): Ditto.
11781 (vuint32m1x7_t): Ditto.
11782 (vint32m1x8_t): Ditto.
11783 (vuint32m1x8_t): Ditto.
11784 (vint32m2x2_t): Ditto.
11785 (vuint32m2x2_t): Ditto.
11786 (vint32m2x3_t): Ditto.
11787 (vuint32m2x3_t): Ditto.
11788 (vint32m2x4_t): Ditto.
11789 (vuint32m2x4_t): Ditto.
11790 (vint32m4x2_t): Ditto.
11791 (vuint32m4x2_t): Ditto.
11792 (vint64m1x2_t): Ditto.
11793 (vuint64m1x2_t): Ditto.
11794 (vint64m1x3_t): Ditto.
11795 (vuint64m1x3_t): Ditto.
11796 (vint64m1x4_t): Ditto.
11797 (vuint64m1x4_t): Ditto.
11798 (vint64m1x5_t): Ditto.
11799 (vuint64m1x5_t): Ditto.
11800 (vint64m1x6_t): Ditto.
11801 (vuint64m1x6_t): Ditto.
11802 (vint64m1x7_t): Ditto.
11803 (vuint64m1x7_t): Ditto.
11804 (vint64m1x8_t): Ditto.
11805 (vuint64m1x8_t): Ditto.
11806 (vint64m2x2_t): Ditto.
11807 (vuint64m2x2_t): Ditto.
11808 (vint64m2x3_t): Ditto.
11809 (vuint64m2x3_t): Ditto.
11810 (vint64m2x4_t): Ditto.
11811 (vuint64m2x4_t): Ditto.
11812 (vint64m4x2_t): Ditto.
11813 (vuint64m4x2_t): Ditto.
11814 (vfloat32mf2x2_t): Ditto.
11815 (vfloat32mf2x3_t): Ditto.
11816 (vfloat32mf2x4_t): Ditto.
11817 (vfloat32mf2x5_t): Ditto.
11818 (vfloat32mf2x6_t): Ditto.
11819 (vfloat32mf2x7_t): Ditto.
11820 (vfloat32mf2x8_t): Ditto.
11821 (vfloat32m1x2_t): Ditto.
11822 (vfloat32m1x3_t): Ditto.
11823 (vfloat32m1x4_t): Ditto.
11824 (vfloat32m1x5_t): Ditto.
11825 (vfloat32m1x6_t): Ditto.
11826 (vfloat32m1x7_t): Ditto.
11827 (vfloat32m1x8_t): Ditto.
11828 (vfloat32m2x2_t): Ditto.
11829 (vfloat32m2x3_t): Ditto.
11830 (vfloat32m2x4_t): Ditto.
11831 (vfloat32m4x2_t): Ditto.
11832 (vfloat64m1x2_t): Ditto.
11833 (vfloat64m1x3_t): Ditto.
11834 (vfloat64m1x4_t): Ditto.
11835 (vfloat64m1x5_t): Ditto.
11836 (vfloat64m1x6_t): Ditto.
11837 (vfloat64m1x7_t): Ditto.
11838 (vfloat64m1x8_t): Ditto.
11839 (vfloat64m2x2_t): Ditto.
11840 (vfloat64m2x3_t): Ditto.
11841 (vfloat64m2x4_t): Ditto.
11842 (vfloat64m4x2_t): Ditto.
11843 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TUPLE_TYPE):
11844 Ditto.
11845 * config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): Ditto.
11846 * config/riscv/riscv.cc (riscv_v_ext_tuple_mode_p): New
11847 function.
11848 (TUPLE_ENTRY): Ditto.
11849 (riscv_v_ext_mode_p): New function.
11850 (riscv_v_adjust_nunits): Add tuple mode adjustment.
11851 (riscv_classify_address): Ditto.
11852 (riscv_binary_cost): Ditto.
11853 (riscv_rtx_costs): Ditto.
11854 (riscv_secondary_memory_needed): Ditto.
11855 (riscv_hard_regno_nregs): Ditto.
11856 (riscv_hard_regno_mode_ok): Ditto.
11857 (riscv_vector_mode_supported_p): Ditto.
11858 (riscv_regmode_natural_size): Ditto.
11859 (riscv_array_mode): New function.
11860 (TARGET_ARRAY_MODE): New target hook.
11861 * config/riscv/riscv.md: Add tuple modes.
11862 * config/riscv/vector-iterators.md: Ditto.
11863 * config/riscv/vector.md (mov<mode>): Add tuple modes data
11864 movement.
11865 (*mov<VT:mode>_<P:mode>): Ditto.
11866
11867 2023-05-03 Richard Biener <rguenther@suse.de>
11868
11869 * cse.cc (cse_insn): Track an equivalence to the destination
11870 separately and delay using src_related for it.
11871
11872 2023-05-03 Richard Biener <rguenther@suse.de>
11873
11874 * cse.cc (HASH): Turn into inline function and mix
11875 in another HASH_SHIFT bits.
11876 (SAFE_HASH): Likewise.
11877
11878 2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11879
11880 PR target/99195
11881 * config/aarch64/aarch64-simd.md (aarch64_<sur>h<addsub><mode>): Rename to...
11882 (aarch64_<sur>h<addsub><mode><vczle><vczbe>): ... This.
11883
11884 2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11885
11886 PR target/99195
11887 * config/aarch64/aarch64-simd.md (add<mode>3): Rename to...
11888 (add<mode>3<vczle><vczbe>): ... This.
11889 (sub<mode>3): Rename to...
11890 (sub<mode>3<vczle><vczbe>): ... This.
11891 (mul<mode>3): Rename to...
11892 (mul<mode>3<vczle><vczbe>): ... This.
11893 (*div<mode>3): Rename to...
11894 (*div<mode>3<vczle><vczbe>): ... This.
11895 (neg<mode>2): Rename to...
11896 (neg<mode>2<vczle><vczbe>): ... This.
11897 (abs<mode>2): Rename to...
11898 (abs<mode>2<vczle><vczbe>): ... This.
11899 (<frint_pattern><mode>2): Rename to...
11900 (<frint_pattern><mode>2<vczle><vczbe>): ... This.
11901 (<fmaxmin><mode>3): Rename to...
11902 (<fmaxmin><mode>3<vczle><vczbe>): ... This.
11903 (*sqrt<mode>2): Rename to...
11904 (*sqrt<mode>2<vczle><vczbe>): ... This.
11905
11906 2023-05-03 Kito Cheng <kito.cheng@sifive.com>
11907
11908 * doc/md.texi (RISC-V): Add vr, vm, vd constarint.
11909
11910 2023-05-03 Martin Liska <mliska@suse.cz>
11911
11912 PR tree-optimization/109693
11913 * value-range-storage.cc (vrange_allocator::vrange_allocator):
11914 Remove unused field.
11915 * value-range-storage.h: Likewise.
11916
11917 2023-05-02 Andrew Pinski <apinski@marvell.com>
11918
11919 * tree-ssa-phiopt.cc (move_stmt): New function.
11920 (match_simplify_replacement): Use move_stmt instead
11921 of the inlined version.
11922
11923 2023-05-02 Andrew Pinski <apinski@marvell.com>
11924
11925 * match.pd (a != 0 ? CLRSB(a) : CST -> CLRSB(a)): New
11926 pattern.
11927
11928 2023-05-02 Andrew Pinski <apinski@marvell.com>
11929
11930 PR tree-optimization/109702
11931 * match.pd: Fix "a != 0 ? FUNC(a) : CST" patterns
11932 for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
11933
11934 2023-05-02 Andrew Pinski <apinski@marvell.com>
11935
11936 PR target/109657
11937 * config/aarch64/aarch64.md (*cmov<mode>_insn_m1): New
11938 insn_and_split pattern.
11939
11940 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11941
11942 * config/riscv/sync.md (atomic_load<mode>): Implement atomic
11943 load mapping.
11944
11945 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11946
11947 * config/riscv/sync.md (mem_thread_fence_1): Change fence
11948 depending on the given memory model.
11949
11950 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11951
11952 * config/riscv/riscv-protos.h (riscv_union_memmodels): Expose
11953 riscv_union_memmodels function to sync.md.
11954 * config/riscv/riscv.cc (riscv_union_memmodels): Add function to
11955 get the union of two memmodels in sync.md.
11956 (riscv_print_operand): Add %I and %J flags that output the
11957 optimal LR/SC flag bits for a given memory model.
11958 * config/riscv/sync.md: Remove static .aqrl bits on LR op/.rl
11959 bits on SC op and replace with optimized %I, %J flags.
11960
11961 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11962
11963 * config/riscv/riscv.cc
11964 (riscv_memmodel_needs_amo_release): Change function name.
11965 (riscv_print_operand): Remove unneeded %F case.
11966 * config/riscv/sync.md: Remove unneeded fences.
11967
11968 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11969
11970 PR target/89835
11971 * config/riscv/sync.md (atomic_store<mode>): Use simple store
11972 instruction in combination with fence(s).
11973
11974 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11975
11976 * config/riscv/riscv.cc (riscv_print_operand): Change behavior
11977 of %A to include release bits.
11978
11979 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11980
11981 * config/riscv/sync.md (atomic_cas_value_strong<mode>): Change
11982 FENCE/LR.aq/SC.aq into sequentially consistent LR.aqrl/SC.rl
11983 pair.
11984
11985 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11986
11987 * config/riscv/sync.md: Change LR.aq/SC.rl pairs into
11988 sequentially consistent LR.aqrl/SC.rl pairs.
11989
11990 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
11991
11992 * config/riscv/riscv.cc: Remove MEMMODEL_SYNC_* cases and
11993 sanitize memmodel input with memmodel_base.
11994
11995 2023-05-02 Yanzhang Wang <yanzhang.wang@intel.com>
11996 Pan Li <pan2.li@intel.com>
11997
11998 PR target/109617
11999 * config/riscv/vector-iterators.md: Support VNx2HI and VNX4DI when MIN_VLEN >= 128.
12000
12001 2023-05-02 Romain Naour <romain.naour@gmail.com>
12002
12003 * config/riscv/genrvv-type-indexer.cc: Use log2 from the C header, without
12004 the namespace.
12005
12006 2023-05-02 Martin Liska <mliska@suse.cz>
12007
12008 * doc/invoke.texi: Update documentation based on param.opt file.
12009
12010 2023-05-02 Richard Biener <rguenther@suse.de>
12011
12012 PR tree-optimization/109672
12013 * tree-vect-stmts.cc (vectorizable_operation): For plus,
12014 minus and negate always check the vector mode is word mode.
12015
12016 2023-05-01 Andrew Pinski <apinski@marvell.com>
12017
12018 * tree-ssa-phiopt.cc: Update comment about
12019 how the transformation are implemented.
12020
12021 2023-05-01 Jeff Law <jlaw@ventanamicro>
12022
12023 * config/stormy16/stormy16.cc (TARGET_LRA_P): Remove defintion.
12024
12025 2023-05-01 Jeff Law <jlaw@ventanamicro>
12026
12027 * config/cris/cris.cc (TARGET_LRA_P): Remove.
12028 * config/epiphany/epiphany.cc (TARGET_LRA_P): Remove.
12029 * config/iq2000/iq2000.cc (TARGET_LRA_P): Remove.
12030 * config/m32r/m32r.cc (TARGET_LRA_P): Remove.
12031 * config/microblaze/microblaze.cc (TARGET_LRA_P): Remove.
12032 * config/mmix/mmix.cc (TARGET_LRA_P): Remove.
12033
12034 2023-05-01 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
12035
12036 * print-tree.h (PRINT_DECL_REMAP_DEBUG): New flag.
12037 * print-tree.cc (print_decl_identifier): Implement it.
12038 * toplev.cc (output_stack_usage_1): Use it.
12039
12040 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12041
12042 * value-range.h (class int_range): Remove gt_ggc_mx and gt_pch_nx
12043 friends.
12044
12045 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12046
12047 * value-range.h (irange::set_nonzero): Inline.
12048
12049 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12050
12051 * gimple-range-op.cc (cfn_ffs::fold_range): Use the correct
12052 precision.
12053 * gimple-ssa-warn-alloca.cc (alloca_call_type): Use <2> for
12054 invalid_range, as it is an inverse range.
12055 * tree-vrp.cc (find_case_label_range): Avoid trees.
12056 * value-range.cc (irange::irange_set): Delete.
12057 (irange::irange_set_1bit_anti_range): Delete.
12058 (irange::irange_set_anti_range): Delete.
12059 (irange::set): Cleanup.
12060 * value-range.h (class irange): Remove irange_set,
12061 irange_set_anti_range, irange_set_1bit_anti_range.
12062 (irange::set_undefined): Remove set to m_type.
12063
12064 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12065
12066 * range-op.cc (update_known_bitmask): Adjust for irange containing
12067 wide_ints internally.
12068 * tree-ssanames.cc (set_nonzero_bits): Same.
12069 * tree-ssanames.h (set_nonzero_bits): Same.
12070 * value-range-storage.cc (irange_storage::set_irange): Same.
12071 (irange_storage::get_irange): Same.
12072 * value-range.cc (irange::operator=): Same.
12073 (irange::irange_set): Same.
12074 (irange::irange_set_1bit_anti_range): Same.
12075 (irange::irange_set_anti_range): Same.
12076 (irange::set): Same.
12077 (irange::verify_range): Same.
12078 (irange::contains_p): Same.
12079 (irange::irange_single_pair_union): Same.
12080 (irange::union_): Same.
12081 (irange::irange_contains_p): Same.
12082 (irange::intersect): Same.
12083 (irange::invert): Same.
12084 (irange::set_range_from_nonzero_bits): Same.
12085 (irange::set_nonzero_bits): Same.
12086 (mask_to_wi): Same.
12087 (irange::intersect_nonzero_bits): Same.
12088 (irange::union_nonzero_bits): Same.
12089 (gt_ggc_mx): Same.
12090 (gt_pch_nx): Same.
12091 (tree_range): Same.
12092 (range_tests_strict_enum): Same.
12093 (range_tests_misc): Same.
12094 (range_tests_nonzero_bits): Same.
12095 * value-range.h (irange::type): Same.
12096 (irange::varying_compatible_p): Same.
12097 (irange::irange): Same.
12098 (int_range::int_range): Same.
12099 (irange::set_undefined): Same.
12100 (irange::set_varying): Same.
12101 (irange::lower_bound): Same.
12102 (irange::upper_bound): Same.
12103
12104 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12105
12106 * gimple-range-fold.cc (tree_lower_bound): Delete.
12107 (tree_upper_bound): Delete.
12108 (vrp_val_max): Delete.
12109 (vrp_val_min): Delete.
12110 (fold_using_range::range_of_ssa_name_with_loop_info): Call
12111 range_of_var_in_loop.
12112 * vr-values.cc (valid_value_p): Delete.
12113 (fix_overflow): Delete.
12114 (get_scev_info): New.
12115 (bounds_of_var_in_loop): Refactor into...
12116 (induction_variable_may_overflow_p): ...this,
12117 (range_from_loop_direction): ...and this,
12118 (range_of_var_in_loop): ...and this.
12119 * vr-values.h (bounds_of_var_in_loop): Delete.
12120 (range_of_var_in_loop): New.
12121
12122 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12123
12124 * gimple-range-fold.cc (adjust_pointer_diff_expr): Rewrite with
12125 irange_val*.
12126 (vrp_val_max): New.
12127 (vrp_val_min): New.
12128 * gimple-range-op.cc (cfn_strlen::fold_range): Use irange_val_*.
12129 * range-op.cc (max_limit): Same.
12130 (min_limit): Same.
12131 (plus_minus_ranges): Same.
12132 (operator_rshift::op1_range): Same.
12133 (operator_cast::inside_domain_p): Same.
12134 * value-range.cc (vrp_val_is_max): Delete.
12135 (vrp_val_is_min): Delete.
12136 (range_tests_misc): Use irange_val_*.
12137 * value-range.h (vrp_val_is_min): Delete.
12138 (vrp_val_is_max): Delete.
12139 (vrp_val_max): Delete.
12140 (irange_val_min): New.
12141 (vrp_val_min): Delete.
12142 (irange_val_max): New.
12143 * vr-values.cc (check_for_binary_op_overflow): Use irange_val_*.
12144
12145 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12146
12147 * fold-const.cc (expr_not_equal_to): Convert to irange wide_int API.
12148 * gimple-fold.cc (size_must_be_zero_p): Same.
12149 * gimple-loop-versioning.cc
12150 (loop_versioning::prune_loop_conditions): Same.
12151 * gimple-range-edge.cc (gcond_edge_range): Same.
12152 (gimple_outgoing_range::calc_switch_ranges): Same.
12153 * gimple-range-fold.cc (adjust_imagpart_expr): Same.
12154 (adjust_realpart_expr): Same.
12155 (fold_using_range::range_of_address): Same.
12156 (fold_using_range::relation_fold_and_or): Same.
12157 * gimple-range-gori.cc (gori_compute::gori_compute): Same.
12158 (range_is_either_true_or_false): Same.
12159 * gimple-range-op.cc (cfn_toupper_tolower::get_letter_range): Same.
12160 (cfn_clz::fold_range): Same.
12161 (cfn_ctz::fold_range): Same.
12162 * gimple-range-tests.cc (class test_expr_eval): Same.
12163 * gimple-ssa-warn-alloca.cc (alloca_call_type): Same.
12164 * ipa-cp.cc (ipa_value_range_from_jfunc): Same.
12165 (propagate_vr_across_jump_function): Same.
12166 (decide_whether_version_node): Same.
12167 * ipa-prop.cc (ipa_get_value_range): Same.
12168 * ipa-prop.h (ipa_range_set_and_normalize): Same.
12169 * range-op.cc (get_shift_range): Same.
12170 (value_range_from_overflowed_bounds): Same.
12171 (value_range_with_overflow): Same.
12172 (create_possibly_reversed_range): Same.
12173 (equal_op1_op2_relation): Same.
12174 (not_equal_op1_op2_relation): Same.
12175 (lt_op1_op2_relation): Same.
12176 (le_op1_op2_relation): Same.
12177 (gt_op1_op2_relation): Same.
12178 (ge_op1_op2_relation): Same.
12179 (operator_mult::op1_range): Same.
12180 (operator_exact_divide::op1_range): Same.
12181 (operator_lshift::op1_range): Same.
12182 (operator_rshift::op1_range): Same.
12183 (operator_cast::op1_range): Same.
12184 (operator_logical_and::fold_range): Same.
12185 (set_nonzero_range_from_mask): Same.
12186 (operator_bitwise_or::op1_range): Same.
12187 (operator_bitwise_xor::op1_range): Same.
12188 (operator_addr_expr::fold_range): Same.
12189 (pointer_plus_operator::wi_fold): Same.
12190 (pointer_or_operator::op1_range): Same.
12191 (INT): Same.
12192 (UINT): Same.
12193 (INT16): Same.
12194 (UINT16): Same.
12195 (SCHAR): Same.
12196 (UCHAR): Same.
12197 (range_op_cast_tests): Same.
12198 (range_op_lshift_tests): Same.
12199 (range_op_rshift_tests): Same.
12200 (range_op_bitwise_and_tests): Same.
12201 (range_relational_tests): Same.
12202 * range.cc (range_zero): Same.
12203 (range_nonzero): Same.
12204 * range.h (range_true): Same.
12205 (range_false): Same.
12206 (range_true_and_false): Same.
12207 * tree-data-ref.cc (split_constant_offset_1): Same.
12208 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
12209 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
12210 (find_unswitching_predicates_for_bb): Same.
12211 * tree-ssa-phiopt.cc (value_replacement): Same.
12212 * tree-ssa-threadbackward.cc
12213 (back_threader::find_taken_edge_cond): Same.
12214 * tree-ssanames.cc (ssa_name_has_boolean_range): Same.
12215 * tree-vrp.cc (find_case_label_range): Same.
12216 * value-query.cc (range_query::get_tree_range): Same.
12217 * value-range.cc (irange::set_nonnegative): Same.
12218 (frange::contains_p): Same.
12219 (frange::singleton_p): Same.
12220 (frange::internal_singleton_p): Same.
12221 (irange::irange_set): Same.
12222 (irange::irange_set_1bit_anti_range): Same.
12223 (irange::irange_set_anti_range): Same.
12224 (irange::set): Same.
12225 (irange::operator==): Same.
12226 (irange::singleton_p): Same.
12227 (irange::contains_p): Same.
12228 (irange::set_range_from_nonzero_bits): Same.
12229 (DEFINE_INT_RANGE_INSTANCE): Same.
12230 (INT): Same.
12231 (UINT): Same.
12232 (SCHAR): Same.
12233 (UINT128): Same.
12234 (UCHAR): Same.
12235 (range): New.
12236 (tree_range): New.
12237 (range_int): New.
12238 (range_uint): New.
12239 (range_uint128): New.
12240 (range_uchar): New.
12241 (range_char): New.
12242 (build_range3): Convert to irange wide_int API.
12243 (range_tests_irange3): Same.
12244 (range_tests_int_range_max): Same.
12245 (range_tests_strict_enum): Same.
12246 (range_tests_misc): Same.
12247 (range_tests_nonzero_bits): Same.
12248 (range_tests_nan): Same.
12249 (range_tests_signed_zeros): Same.
12250 * value-range.h (Value_Range::Value_Range): Same.
12251 (irange::set): Same.
12252 (irange::nonzero_p): Same.
12253 (irange::contains_p): Same.
12254 (range_includes_zero_p): Same.
12255 (irange::set_nonzero): Same.
12256 (irange::set_zero): Same.
12257 (contains_zero_p): Same.
12258 (frange::contains_p): Same.
12259 * vr-values.cc
12260 (simplify_using_ranges::op_with_boolean_value_range_p): Same.
12261 (bounds_of_var_in_loop): Same.
12262 (simplify_using_ranges::legacy_fold_cond_overflow): Same.
12263
12264 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12265
12266 * value-range.cc (irange::irange_union): Rename to...
12267 (irange::union_): ...this.
12268 (irange::irange_intersect): Rename to...
12269 (irange::intersect): ...this.
12270 * value-range.h (irange::union_): Delete.
12271 (irange::intersect): Delete.
12272
12273 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12274
12275 * vr-values.cc (bounds_of_var_in_loop): Convert to irange API.
12276
12277 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12278
12279 * vr-values.cc (check_for_binary_op_overflow): Tidy up by using
12280 ranger API.
12281 (compare_ranges): Delete.
12282 (compare_range_with_value): Delete.
12283 (bounds_of_var_in_loop): Tidy up by using ranger API.
12284 (simplify_using_ranges::fold_cond_with_ops): Cleanup and rename
12285 from vrp_evaluate_conditional_warnv_with_ops_using_ranges.
12286 (simplify_using_ranges::legacy_fold_cond_overflow): Remove
12287 strict_overflow_p and only_ranges.
12288 (simplify_using_ranges::legacy_fold_cond): Adjust call to
12289 legacy_fold_cond_overflow.
12290 (simplify_using_ranges::simplify_abs_using_ranges): Adjust for
12291 rename.
12292 (range_fits_type_p): Rename value_range to irange.
12293 * vr-values.h (range_fits_type_p): Adjust prototype.
12294
12295 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12296
12297 * value-range.cc (irange::irange_set_anti_range): Remove uses of
12298 tree_lower_bound and tree_upper_bound.
12299 (irange::verify_range): Same.
12300 (irange::operator==): Same.
12301 (irange::singleton_p): Same.
12302 * value-range.h (irange::tree_lower_bound): Delete.
12303 (irange::tree_upper_bound): Delete.
12304 (irange::lower_bound): Delete.
12305 (irange::upper_bound): Delete.
12306 (irange::zero_p): Remove uses of tree_lower_bound and
12307 tree_upper_bound.
12308
12309 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12310
12311 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Remove
12312 kind() call.
12313 (determine_value_range): Same.
12314 (record_nonwrapping_iv): Same.
12315 (infer_loop_bounds_from_signedness): Same.
12316 (scev_var_range_cant_overflow): Same.
12317 * tree-vrp.cc (operand_less_p): Delete.
12318 * tree-vrp.h (operand_less_p): Delete.
12319 * value-range.cc (get_legacy_range): Remove uses of deprecated API.
12320 (irange::value_inside_range): Delete.
12321 * value-range.h (vrange::kind): Delete.
12322 (irange::num_pairs): Remove check of m_kind.
12323 (irange::min): Delete.
12324 (irange::max): Delete.
12325
12326 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12327
12328 * gimple-fold.cc (maybe_fold_comparisons_from_match_pd): Adjust
12329 for vrange_storage.
12330 * gimple-range-cache.cc (sbr_vector::sbr_vector): Same.
12331 (sbr_vector::grow): Same.
12332 (sbr_vector::set_bb_range): Same.
12333 (sbr_vector::get_bb_range): Same.
12334 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
12335 (sbr_sparse_bitmap::set_bb_range): Same.
12336 (sbr_sparse_bitmap::get_bb_range): Same.
12337 (block_range_cache::block_range_cache): Same.
12338 (ssa_global_cache::ssa_global_cache): Same.
12339 (ssa_global_cache::get_global_range): Same.
12340 (ssa_global_cache::set_global_range): Same.
12341 * gimple-range-cache.h: Same.
12342 * gimple-range-edge.cc
12343 (gimple_outgoing_range::gimple_outgoing_range): Same.
12344 (gimple_outgoing_range::switch_edge_range): Same.
12345 (gimple_outgoing_range::calc_switch_ranges): Same.
12346 * gimple-range-edge.h: Same.
12347 * gimple-range-infer.cc
12348 (infer_range_manager::infer_range_manager): Same.
12349 (infer_range_manager::get_nonzero): Same.
12350 (infer_range_manager::maybe_adjust_range): Same.
12351 (infer_range_manager::add_range): Same.
12352 * gimple-range-infer.h: Rename obstack_vrange_allocator to
12353 vrange_allocator.
12354 * tree-core.h (struct irange_storage_slot): Remove.
12355 (struct tree_ssa_name): Remove irange_info and frange_info. Make
12356 range_info a pointer to vrange_storage.
12357 * tree-ssanames.cc (range_info_fits_p): Adjust for vrange_storage.
12358 (range_info_alloc): Same.
12359 (range_info_free): Same.
12360 (range_info_get_range): Same.
12361 (range_info_set_range): Same.
12362 (get_nonzero_bits): Same.
12363 * value-query.cc (get_ssa_name_range_info): Same.
12364 * value-range-storage.cc (class vrange_internal_alloc): New.
12365 (class vrange_obstack_alloc): New.
12366 (class vrange_ggc_alloc): New.
12367 (vrange_allocator::vrange_allocator): New.
12368 (vrange_allocator::~vrange_allocator): New.
12369 (vrange_storage::alloc_slot): New.
12370 (vrange_allocator::alloc): New.
12371 (vrange_allocator::free): New.
12372 (vrange_allocator::clone): New.
12373 (vrange_allocator::clone_varying): New.
12374 (vrange_allocator::clone_undefined): New.
12375 (vrange_storage::alloc): New.
12376 (vrange_storage::set_vrange): Remove slot argument.
12377 (vrange_storage::get_vrange): Same.
12378 (vrange_storage::fits_p): Same.
12379 (vrange_storage::equal_p): New.
12380 (irange_storage::write_lengths_address): New.
12381 (irange_storage::lengths_address): New.
12382 (irange_storage_slot::alloc_slot): Remove.
12383 (irange_storage::alloc): New.
12384 (irange_storage_slot::irange_storage_slot): Remove.
12385 (irange_storage::irange_storage): New.
12386 (write_wide_int): New.
12387 (irange_storage_slot::set_irange): Remove.
12388 (irange_storage::set_irange): New.
12389 (read_wide_int): New.
12390 (irange_storage_slot::get_irange): Remove.
12391 (irange_storage::get_irange): New.
12392 (irange_storage_slot::size): Remove.
12393 (irange_storage::equal_p): New.
12394 (irange_storage_slot::num_wide_ints_needed): Remove.
12395 (irange_storage::size): New.
12396 (irange_storage_slot::fits_p): Remove.
12397 (irange_storage::fits_p): New.
12398 (irange_storage_slot::dump): Remove.
12399 (irange_storage::dump): New.
12400 (frange_storage_slot::alloc_slot): Remove.
12401 (frange_storage::alloc): New.
12402 (frange_storage_slot::set_frange): Remove.
12403 (frange_storage::set_frange): New.
12404 (frange_storage_slot::get_frange): Remove.
12405 (frange_storage::get_frange): New.
12406 (frange_storage_slot::fits_p): Remove.
12407 (frange_storage::equal_p): New.
12408 (frange_storage::fits_p): New.
12409 (ggc_vrange_allocator): New.
12410 (ggc_alloc_vrange_storage): New.
12411 * value-range-storage.h (class vrange_storage): Rewrite.
12412 (class irange_storage): Rewrite.
12413 (class frange_storage): Rewrite.
12414 (class obstack_vrange_allocator): Remove.
12415 (class ggc_vrange_allocator): Remove.
12416 (vrange_allocator::alloc_vrange): Remove.
12417 (vrange_allocator::alloc_irange): Remove.
12418 (vrange_allocator::alloc_frange): Remove.
12419 (ggc_alloc_vrange_storage): New.
12420 * value-range.h (class irange): Rename vrange_allocator to
12421 irange_storage.
12422 (class frange): Same.
12423
12424 2023-04-30 Roger Sayle <roger@nextmovesoftware.com>
12425
12426 * config/stormy16/stormy16.md (neghi2): Rewrite pattern using
12427 inc to avoid clobbering the carry flag.
12428
12429 2023-04-30 Andrew Pinski <apinski@marvell.com>
12430
12431 * match.pd: Add patterns for "a != 0 ? FUNC(a) : CST"
12432 for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
12433
12434 2023-04-30 Andrew Pinski <apinski@marvell.com>
12435
12436 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
12437 Allow some builtin/internal function calls which
12438 are known not to trap/throw.
12439 (phiopt_worker::match_simplify_replacement):
12440 Use name instead of getting the lhs again.
12441
12442 2023-04-30 Joakim Nohlgård <joakim@nohlgard.se>
12443
12444 * configure: Regenerate.
12445 * configure.ac: Use ld -r in the check for HAVE_LD_RO_RW_SECTION_MIXING
12446
12447 2023-04-29 Hans-Peter Nilsson <hp@axis.com>
12448
12449 * reload1.cc (emit_insn_if_valid_for_reload_1): Rename from
12450 emit_insn_if_valid_for_reload.
12451 (emit_insn_if_valid_for_reload): Call new helper, and if a SET fails
12452 to be recognized, also try emitting a parallel that clobbers
12453 TARGET_FLAGS_REGNUM, as applicable.
12454
12455 2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
12456
12457 * config/stormy16/stormy16.md (neghi2): Convert from a define_expand
12458 to a define_insn.
12459 (*rotatehi_1): New define_insn for efficient 2 insn sequence.
12460 (*rotatehi_8, *rotaterthi_8): New define_insn to emit a swpb.
12461
12462 2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
12463
12464 * config/stormy16/stormy16.md (any_lshift): New code iterator.
12465 (any_or_plus): Likewise.
12466 (any_rotate): Likewise.
12467 (*<any_lshift>_and_internal): New define_insn_and_split to
12468 recognize a logical shift followed by an AND, and split it
12469 again after reload.
12470 (*swpn): New define_insn matching xstormy16's swpn.
12471 (*swpn_zext): New define_insn recognizing swpn followed by
12472 zero_extendqihi2, i.e. with the high byte set to zero.
12473 (*swpn_sext): Likewise, for swpn followed by cbw.
12474 (*swpn_sext_2): Likewise, for an alternate RTL form.
12475 (*swpn_zext_ior): A pre-reload splitter so that an swpn+zext+ior
12476 sequence is split in the correct place to recognize the *swpn_zext
12477 followed by any_or_plus (ior, xor or plus) instruction.
12478
12479 2023-04-29 Mikael Pettersson <mikpelinux@gmail.com>
12480
12481 PR target/105525
12482 * config.gcc (vax-*-linux*): Add glibc-stdint.h.
12483 (lm32-*-uclinux*): Likewise.
12484
12485 2023-04-29 Fei Gao <gaofei@eswincomputing.com>
12486
12487 * config/riscv/riscv.cc (riscv_avoid_save_libcall): helper function
12488 for riscv_use_save_libcall.
12489 (riscv_use_save_libcall): call riscv_avoid_save_libcall.
12490 (riscv_compute_frame_info): restructure to decouple stack allocation
12491 for rv32e w/o save-restore.
12492
12493 2023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
12494
12495 * doc/install.texi: Fix documentation typo
12496
12497 2023-04-28 Matevos Mehrabyan <matevosmehrabyan@gmail.com>
12498
12499 * config/riscv/iterators.md (only_div, paired_mod): New iterators.
12500 (u): Add div/udiv cases.
12501 * config/riscv/riscv-protos.h (riscv_use_divmod_expander): Prototype.
12502 * config/riscv/riscv.cc (struct riscv_tune_param): Add field for
12503 divmod expansion.
12504 (rocket_tune_info, sifive_7_tune_info): Initialize new field.
12505 (thead_c906_tune_info): Likewise.
12506 (optimize_size_tune_info): Likewise.
12507 (riscv_use_divmod_expander): New function.
12508 * config/riscv/riscv.md (<u>divmod<mode>4): New expander.
12509
12510 2023-04-28 Karen Sargsyan <karen1999411@gmail.com>
12511
12512 * config/riscv/bitmanip.md: Added clmulr instruction.
12513 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
12514 * config/riscv/riscv.md: (UNSPEC_CLMULR): Add new unspec type.
12515 (type): Add clmul
12516 * config/riscv/riscv-cmo.def: Added built-in function for clmulr.
12517 * config/riscv/crypto.md: Move clmul[h] instructions to bitmanip.md.
12518 * config/riscv/riscv-scalar-crypto.def: Move clmul[h] built-in
12519 functions to riscv-cmo.def.
12520 * config/riscv/generic.md: Add clmul to list of instructions
12521 using the generic_imul reservation.
12522
12523 2023-04-28 Jivan Hakobyan <jivanhakobyan9@gmail.com>
12524
12525 * config/riscv/bitmanip.md: Added expanders for minu/maxu instructions
12526
12527 2023-04-28 Andrew Pinski <apinski@marvell.com>
12528
12529 PR tree-optimization/100958
12530 * tree-ssa-phiopt.cc (two_value_replacement): Remove.
12531 (pass_phiopt::execute): Don't call two_value_replacement.
12532 * match.pd (a !=/== CST1 ? CST2 : CST3): Add pattern to
12533 handle what two_value_replacement did.
12534
12535 2023-04-28 Andrew Pinski <apinski@marvell.com>
12536
12537 * match.pd: Add patterns for
12538 "(A CMP B) ? MIN/MAX<A, C> : MIN/MAX <B, C>".
12539
12540 2023-04-28 Andrew Pinski <apinski@marvell.com>
12541
12542 * match.pd: Factor out the deciding the min/max from
12543 the "(cond (cmp (convert1? x) c1) (convert2? x) c2)"
12544 pattern to ...
12545 * fold-const.cc (minmax_from_comparison): this new function.
12546 * fold-const.h (minmax_from_comparison): New prototype.
12547
12548 2023-04-28 Roger Sayle <roger@nextmovesoftware.com>
12549
12550 PR rtl-optimization/109476
12551 * lower-subreg.cc: Include explow.h for force_reg.
12552 (find_decomposable_shift_zext): Pass an additional SPEED_P argument.
12553 If decomposing a suitable LSHIFTRT and we're not splitting
12554 ZERO_EXTEND (based on the current SPEED_P), then use a ZERO_EXTEND
12555 instead of setting a high part SUBREG to zero, which helps combine.
12556 (decompose_multiword_subregs): Update call to resolve_shift_zext.
12557
12558 2023-04-28 Richard Biener <rguenther@suse.de>
12559
12560 * tree-vect-data-refs.cc (vect_analyze_data_refs): Always
12561 consider scatters.
12562 * tree-vect-stmts.cc (vect_model_store_cost): Pass in the
12563 gather-scatter info and cost emulated scatters accordingly.
12564 (get_load_store_type): Support emulated scatters.
12565 (vectorizable_store): Likewise. Emulate them by extracting
12566 scalar offsets and data, doing scalar stores.
12567
12568 2023-04-28 Richard Biener <rguenther@suse.de>
12569
12570 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
12571 Tame down element extracts and scalar loads for gather/scatter
12572 similar to elementwise strided accesses.
12573
12574 2023-04-28 Pan Li <pan2.li@intel.com>
12575 kito-cheng <kito.cheng@sifive.com>
12576
12577 * config/riscv/vector.md: Add new define split to perform
12578 the simplification.
12579
12580 2023-04-28 Richard Biener <rguenther@suse.de>
12581
12582 PR ipa/109652
12583 * ipa-param-manipulation.cc
12584 (ipa_param_body_adjustments::modify_expression): Allow
12585 conversion of a register to a non-register type. Elide
12586 conversions inside BIT_FIELD_REFs.
12587
12588 2023-04-28 Richard Biener <rguenther@suse.de>
12589
12590 PR tree-optimization/109644
12591 * tree-cfg.cc (verify_types_in_gimple_reference): Check
12592 register constraints on the outermost VIEW_CONVERT_EXPR
12593 only. Do not allow register or invariant bases on
12594 multi-level or possibly variable index handled components.
12595
12596 2023-04-28 Richard Biener <rguenther@suse.de>
12597
12598 * gimplify.cc (gimplify_compound_lval): When there's a
12599 non-register type produced by one of the handled component
12600 operations make sure we get a non-register base.
12601
12602 2023-04-28 Richard Biener <rguenther@suse.de>
12603
12604 PR tree-optimization/108752
12605 * tree-vect-generic.cc (build_replicated_const): Rename
12606 to build_replicated_int_cst and move to tree.{h,cc}.
12607 (do_plus_minus): Adjust.
12608 (do_negate): Likewise.
12609 * tree-vect-stmts.cc (vectorizable_operation): Emit emulated
12610 arithmetic vector operations in lowered form.
12611 * tree.h (build_replicated_int_cst): Declare.
12612 * tree.cc (build_replicated_int_cst): Moved from
12613 tree-vect-generic.cc build_replicated_const.
12614
12615 2023-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12616
12617 PR target/99195
12618 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): Rename to...
12619 (aarch64_rbit<mode><vczle><vczbe>): ... This.
12620 (neg<mode>2): Rename to...
12621 (neg<mode>2<vczle><vczbe>): ... This.
12622 (abs<mode>2): Rename to...
12623 (abs<mode>2<vczle><vczbe>): ... This.
12624 (aarch64_abs<mode>): Rename to...
12625 (aarch64_abs<mode><vczle><vczbe>): ... This.
12626 (one_cmpl<mode>2): Rename to...
12627 (one_cmpl<mode>2<vczle><vczbe>): ... This.
12628 (clrsb<mode>2): Rename to...
12629 (clrsb<mode>2<vczle><vczbe>): ... This.
12630 (clz<mode>2): Rename to...
12631 (clz<mode>2<vczle><vczbe>): ... This.
12632 (popcount<mode>2): Rename to...
12633 (popcount<mode>2<vczle><vczbe>): ... This.
12634
12635 2023-04-28 Jakub Jelinek <jakub@redhat.com>
12636
12637 * gimple-range-op.cc (class cfn_sqrt): New type.
12638 (op_cfn_sqrt): New variable.
12639 (gimple_range_op_handler::maybe_builtin_call): Handle
12640 CASE_CFN_SQRT{,_FN}.
12641
12642 2023-04-28 Aldy Hernandez <aldyh@redhat.com>
12643 Jakub Jelinek <jakub@redhat.com>
12644
12645 * value-range.h (frange_nextafter): Declare.
12646 * gimple-range-op.cc (class cfn_sincos): New.
12647 (op_cfn_sin, op_cfn_cos): New variables.
12648 (gimple_range_op_handler::maybe_builtin_call): Handle
12649 CASE_CFN_{SIN,COS}{,_FN}.
12650
12651 2023-04-28 Jakub Jelinek <jakub@redhat.com>
12652
12653 * target.def (libm_function_max_error): New target hook.
12654 * doc/tm.texi.in (TARGET_LIBM_FUNCTION_MAX_ERROR): Add.
12655 * doc/tm.texi: Regenerated.
12656 * targhooks.h (default_libm_function_max_error,
12657 glibc_linux_libm_function_max_error): Declare.
12658 * targhooks.cc: Include case-cfn-macros.h.
12659 (default_libm_function_max_error,
12660 glibc_linux_libm_function_max_error): New functions.
12661 * config/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12662 * config/linux-protos.h (linux_libm_function_max_error): Declare.
12663 * config/linux.cc: Include target.h and targhooks.h.
12664 (linux_libm_function_max_error): New function.
12665 * config/arc/arc.cc: Include targhooks.h and case-cfn-macros.h.
12666 (arc_libm_function_max_error): New function.
12667 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12668 * config/i386/i386.cc (ix86_libc_has_fast_function): Formatting fix.
12669 (ix86_libm_function_max_error): New function.
12670 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12671 * config/rs6000/rs6000-protos.h
12672 (rs6000_linux_libm_function_max_error): Declare.
12673 * config/rs6000/rs6000-linux.cc: Include target.h, targhooks.h, tree.h
12674 and case-cfn-macros.h.
12675 (rs6000_linux_libm_function_max_error): New function.
12676 * config/rs6000/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12677 * config/rs6000/linux64.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12678 * config/or1k/or1k.cc: Include targhooks.h and case-cfn-macros.h.
12679 (or1k_libm_function_max_error): New function.
12680 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12681
12682 2023-04-28 Alexandre Oliva <oliva@adacore.com>
12683
12684 * gimple-harden-conditionals.cc (insert_edge_check_and_trap):
12685 Move detach value calls...
12686 (pass_harden_conditional_branches::execute): ... here.
12687 (pass_harden_compares::execute): Detach values before
12688 compares.
12689
12690 2023-04-27 Andrew Stubbs <ams@codesourcery.com>
12691
12692 * config/gcn/gcn-valu.md (cmul<conj_op><mode>3): Use gcn_gen_undef.
12693 (cml<addsub_as><mode>4): Likewise.
12694 (vec_addsub<mode>3): Likewise.
12695 (cadd<rot><mode>3): Likewise.
12696 (vec_fmaddsub<mode>4): Likewise.
12697 (vec_fmsubadd<mode>4): Likewise, and use sub for the odd lanes.
12698
12699 2023-04-27 Andrew Pinski <apinski@marvell.com>
12700
12701 * tree-ssa-phiopt.cc (phiopt_early_allow): Allow for
12702 up to 2 min/max expressions in the sequence/match code.
12703
12704 2023-04-27 Andrew Pinski <apinski@marvell.com>
12705
12706 * rtlanal.cc (may_trap_p_1): Treat SMIN/SMAX similar as
12707 COMPARISON.
12708 * tree-eh.cc (operation_could_trap_helper_p): Treate
12709 MIN_EXPR/MAX_EXPR similar as other comparisons.
12710
12711 2023-04-27 Andrew Pinski <apinski@marvell.com>
12712
12713 * tree-ssa-phiopt.cc (cond_store_replacement): Remove
12714 prototype.
12715 (cond_if_else_store_replacement): Likewise.
12716 (get_non_trapping): Likewise.
12717 (store_elim_worker): Move into ...
12718 (pass_cselim::execute): This.
12719
12720 2023-04-27 Andrew Pinski <apinski@marvell.com>
12721
12722 * tree-ssa-phiopt.cc (two_value_replacement): Remove
12723 prototype.
12724 (match_simplify_replacement): Likewise.
12725 (factor_out_conditional_conversion): Likewise.
12726 (value_replacement): Likewise.
12727 (minmax_replacement): Likewise.
12728 (spaceship_replacement): Likewise.
12729 (cond_removal_in_builtin_zero_pattern): Likewise.
12730 (hoist_adjacent_loads): Likewise.
12731 (tree_ssa_phiopt_worker): Move into ...
12732 (pass_phiopt::execute): this.
12733
12734 2023-04-27 Andrew Pinski <apinski@marvell.com>
12735
12736 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove
12737 do_store_elim argument and split that part out to ...
12738 (store_elim_worker): This new function.
12739 (pass_cselim::execute): Call store_elim_worker.
12740 (pass_phiopt::execute): Update call to tree_ssa_phiopt_worker.
12741
12742 2023-04-27 Jan Hubicka <jh@suse.cz>
12743
12744 * cfgloopmanip.h (unloop_loops): Export.
12745 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Unloop loops
12746 that no longer loop.
12747 * tree-ssa-loop-ivcanon.cc (unloop_loops): Export; do not free
12748 vectors of loops to unloop.
12749 (canonicalize_induction_variables): Free vectors here.
12750 (tree_unroll_loops_completely): Free vectors here.
12751
12752 2023-04-27 Richard Biener <rguenther@suse.de>
12753
12754 PR tree-optimization/109170
12755 * gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call):
12756 Handle __builtin_expect and similar via cfn_pass_through_arg1
12757 and inspecting the calls fnspec.
12758 * builtins.cc (builtin_fnspec): Handle BUILT_IN_EXPECT
12759 and BUILT_IN_EXPECT_WITH_PROBABILITY.
12760
12761 2023-04-27 Alexandre Oliva <oliva@adacore.com>
12762
12763 * genmultilib: Use CONFIG_SHELL to run sub-scripts.
12764
12765 2023-04-27 Aldy Hernandez <aldyh@redhat.com>
12766
12767 PR tree-optimization/109639
12768 * ipa-cp.cc (ipa_value_range_from_jfunc): Normalize range.
12769 (propagate_vr_across_jump_function): Same.
12770 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
12771 * ipa-prop.h (ipa_range_set_and_normalize): New.
12772 * value-range.cc (irange::set): Assert min and max are INTEGER_CST.
12773
12774 2023-04-27 Richard Biener <rguenther@suse.de>
12775
12776 * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Do not
12777 create a CTOR operand in the result when simplifying GIMPLE.
12778
12779 2023-04-27 Richard Biener <rguenther@suse.de>
12780
12781 * gimplify.cc (gimplify_compound_lval): When the base
12782 gimplified to a register make sure to split up chains
12783 of operations.
12784
12785 2023-04-27 Richard Biener <rguenther@suse.de>
12786
12787 PR ipa/109607
12788 * ipa-param-manipulation.h
12789 (ipa_param_body_adjustments::modify_expression): Add extra_stmts
12790 argument.
12791 * ipa-param-manipulation.cc
12792 (ipa_param_body_adjustments::modify_expression): Likewise.
12793 When we need a conversion and the replacement is a register
12794 split the conversion out.
12795 (ipa_param_body_adjustments::modify_assignment): Pass
12796 extra_stmts to RHS modify_expression.
12797
12798 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
12799
12800 * doc/extend.texi (Zero Length): Describe example.
12801
12802 2023-04-27 Richard Biener <rguenther@suse.de>
12803
12804 PR tree-optimization/109594
12805 * tree-ssa.cc (non_rewritable_mem_ref_base): Constrain
12806 what we rewrite to a register based on the above.
12807
12808 2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
12809
12810 * config/riscv/riscv.cc: Fix whitespace.
12811 * config/riscv/sync.md: Fix whitespace.
12812
12813 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
12814
12815 PR tree-optimization/108697
12816 * gimple-range-cache.cc (ssa_global_cache::clear_range): Do
12817 not clear the vector on an out of range query.
12818 (ssa_cache::dump): Use dump_range_query instead of get_range.
12819 (ssa_cache::dump_range_query): New.
12820 (ssa_lazy_cache::dump_range_query): New.
12821 (ssa_lazy_cache::set_range): New.
12822 * gimple-range-cache.h (ssa_cache::dump_range_query): New.
12823 (class ssa_lazy_cache): New.
12824 (ssa_lazy_cache::ssa_lazy_cache): New.
12825 (ssa_lazy_cache::~ssa_lazy_cache): New.
12826 (ssa_lazy_cache::get_range): New.
12827 (ssa_lazy_cache::clear_range): New.
12828 (ssa_lazy_cache::clear): New.
12829 (ssa_lazy_cache::dump): New.
12830 * gimple-range-path.cc (path_range_query::path_range_query): Do
12831 not allocate a ssa_cache object nor has_cache bitmap.
12832 (path_range_query::~path_range_query): Do not free objects.
12833 (path_range_query::clear_cache): Remove.
12834 (path_range_query::get_cache): Adjust.
12835 (path_range_query::set_cache): Remove.
12836 (path_range_query::dump): Don't call through a pointer.
12837 (path_range_query::internal_range_of_expr): Set cache directly.
12838 (path_range_query::reset_path): Clear cache directly.
12839 (path_range_query::ssa_range_in_phi): Fold with globals only.
12840 (path_range_query::compute_ranges_in_phis): Simply set range.
12841 (path_range_query::compute_ranges_in_block): Call cache directly.
12842 * gimple-range-path.h (class path_range_query): Replace bitmap
12843 and cache pointer with lazy cache object.
12844 * gimple-range.h (class assume_query): Use ssa_lazy_cache.
12845
12846 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
12847
12848 * gimple-range-cache.cc (ssa_cache::ssa_cache): Rename.
12849 (ssa_cache::~ssa_cache): Rename.
12850 (ssa_cache::has_range): New.
12851 (ssa_cache::get_range): Rename.
12852 (ssa_cache::set_range): Rename.
12853 (ssa_cache::clear_range): Rename.
12854 (ssa_cache::clear): Rename.
12855 (ssa_cache::dump): Rename and use get_range.
12856 (ranger_cache::get_global_range): Use get_range and set_range.
12857 (ranger_cache::range_of_def): Use get_range.
12858 * gimple-range-cache.h (class ssa_cache): Rename class and methods.
12859 (class ranger_cache): Use ssa_cache.
12860 * gimple-range-path.cc (path_range_query::path_range_query): Use
12861 ssa_cache.
12862 (path_range_query::get_cache): Use get_range.
12863 (path_range_query::set_cache): Use set_range.
12864 * gimple-range-path.h (class path_range_query): Use ssa_cache.
12865 * gimple-range.cc (assume_query::assume_range_p): Use get_range.
12866 (assume_query::range_of_expr): Use get_range.
12867 (assume_query::assume_query): Use set_range.
12868 (assume_query::calculate_op): Use get_range and set_range.
12869 * gimple-range.h (class assume_query): Use ssa_cache.
12870
12871 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
12872
12873 * gimple-range-cache.cc (sbr_vector::sbr_vector): Add parameter
12874 and local to optionally zero memory.
12875 (br_vector::grow): Only zero memory if flag is set.
12876 (class sbr_lazy_vector): New.
12877 (sbr_lazy_vector::sbr_lazy_vector): New.
12878 (sbr_lazy_vector::set_bb_range): New.
12879 (sbr_lazy_vector::get_bb_range): New.
12880 (sbr_lazy_vector::bb_range_p): New.
12881 (block_range_cache::set_bb_range): Check flags and Use sbr_lazy_vector.
12882 * gimple-range-gori.cc (gori_map::calculate_gori): Use
12883 param_vrp_switch_limit.
12884 (gori_compute::gori_compute): Use param_vrp_switch_limit.
12885 * params.opt (vrp_sparse_threshold): Rename from evrp_sparse_threshold.
12886 (vrp_switch_limit): Rename from evrp_switch_limit.
12887 (vrp_vector_threshold): New.
12888
12889 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
12890
12891 * value-relation.cc (dom_oracle::query_relation): Check early for lack
12892 of any relation.
12893 * value-relation.h (equiv_oracle::has_equiv_p): New.
12894
12895 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
12896
12897 PR tree-optimization/109417
12898 * gimple-range-gori.cc (range_def_chain::register_dependency):
12899 Save the ssa version number, not the pointer.
12900 (gori_compute::may_recompute_p): No need to check if a dependency
12901 is in the free list.
12902 * gimple-range-gori.h (class range_def_chain): Change ssa1 and ssa2
12903 fields to be unsigned int instead of trees.
12904 (ange_def_chain::depend1): Adjust.
12905 (ange_def_chain::depend2): Adjust.
12906 * gimple-range.h: Include "ssa.h" to inline ssa_name().
12907
12908 2023-04-26 David Edelsohn <dje.gcc@gmail.com>
12909
12910 * config/rs6000/aix72.h (TARGET_DEFAULT): Use ISA_2_6_MASKS_SERVER.
12911 * config/rs6000/aix73.h (TARGET_DEFAULT): Use ISA_2_7_MASKS_SERVER.
12912 (PROCESSOR_DEFAULT): Use PROCESSOR_POWER8.
12913
12914 2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
12915
12916 PR target/104338
12917 * config/riscv/riscv-protos.h: Add helper function stubs.
12918 * config/riscv/riscv.cc: Add helper functions for subword masking.
12919 * config/riscv/riscv.opt: Add command-line flags -minline-atomics and
12920 -mno-inline-atomics.
12921 * config/riscv/sync.md: Add masking logic and inline asm for fetch_and_op,
12922 fetch_and_nand, CAS, and exchange ops.
12923 * doc/invoke.texi: Add blurb regarding new command-line flags
12924 -minline-atomics and -mno-inline-atomics.
12925
12926 2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12927
12928 * config/aarch64/aarch64-simd.md (aarch64_rshrn2<mode>_insn_le):
12929 Reimplement using standard RTL codes instead of unspec.
12930 (aarch64_rshrn2<mode>_insn_be): Likewise.
12931 (aarch64_rshrn2<mode>): Adjust for the above.
12932 * config/aarch64/aarch64.md (UNSPEC_RSHRN): Delete.
12933
12934 2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12935
12936 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le): Reimplement
12937 with standard RTL codes instead of an UNSPEC.
12938 (aarch64_rshrn<mode>_insn_be): Likewise.
12939 (aarch64_rshrn<mode>): Adjust for the above.
12940 * config/aarch64/predicates.md (aarch64_simd_rshrn_imm_vec): Define.
12941
12942 2023-04-26 Pan Li <pan2.li@intel.com>
12943 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12944
12945 * config/riscv/riscv.cc (riscv_classify_address): Allow
12946 const0_rtx for the RVV load/store.
12947
12948 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12949
12950 * range-op.cc (range_op_cast_tests): Remove legacy support.
12951 * value-range-storage.h (vrange_allocator::alloc_irange): Same.
12952 * value-range.cc (irange::operator=): Same.
12953 (get_legacy_range): Same.
12954 (irange::copy_legacy_to_multi_range): Delete.
12955 (irange::copy_to_legacy): Delete.
12956 (irange::irange_set_anti_range): Delete.
12957 (irange::set): Remove legacy support.
12958 (irange::verify_range): Same.
12959 (irange::legacy_lower_bound): Delete.
12960 (irange::legacy_upper_bound): Delete.
12961 (irange::legacy_equal_p): Delete.
12962 (irange::operator==): Remove legacy support.
12963 (irange::singleton_p): Same.
12964 (irange::value_inside_range): Same.
12965 (irange::contains_p): Same.
12966 (intersect_ranges): Delete.
12967 (irange::legacy_intersect): Delete.
12968 (union_ranges): Delete.
12969 (irange::legacy_union): Delete.
12970 (irange::legacy_verbose_union_): Delete.
12971 (irange::legacy_verbose_intersect): Delete.
12972 (irange::irange_union): Remove legacy support.
12973 (irange::irange_intersect): Same.
12974 (irange::intersect): Same.
12975 (irange::invert): Same.
12976 (ranges_from_anti_range): Delete.
12977 (gt_pch_nx): Adjust for legacy removal.
12978 (gt_ggc_mx): Same.
12979 (range_tests_legacy): Delete.
12980 (range_tests_misc): Adjust for legacy removal.
12981 (range_tests): Same.
12982 * value-range.h (class irange): Same.
12983 (irange::legacy_mode_p): Delete.
12984 (ranges_from_anti_range): Delete.
12985 (irange::nonzero_p): Adjust for legacy removal.
12986 (irange::lower_bound): Same.
12987 (irange::upper_bound): Same.
12988 (irange::union_): Same.
12989 (irange::intersect): Same.
12990 (irange::set_nonzero): Same.
12991 (irange::set_zero): Same.
12992 * vr-values.cc (simplify_using_ranges::legacy_fold_cond_overflow): Same.
12993
12994 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
12995
12996 * value-range.cc (irange::copy_legacy_to_multi_range): Rewrite use
12997 of range_has_numeric_bounds_p with irange API.
12998 (range_has_numeric_bounds_p): Delete.
12999 * value-range.h (range_has_numeric_bounds_p): Delete.
13000
13001 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13002
13003 * tree-data-ref.cc (compute_distributive_range): Replace uses of
13004 range_int_cst_p with irange API.
13005 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.
13006 * tree-vrp.h (range_int_cst_p): Delete.
13007 * vr-values.cc (check_for_binary_op_overflow): Replace usees of
13008 range_int_cst_p with irange API.
13009 (vr_set_zero_nonzero_bits): Same.
13010 (range_fits_type_p): Same.
13011 (simplify_using_ranges::simplify_casted_cond): Same.
13012 * tree-vrp.cc (range_int_cst_p): Remove.
13013
13014 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13015
13016 * tree-ssa-strlen.cc (compare_nonzero_chars): Convert to wide_ints.
13017
13018 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13019
13020 * builtins.cc (expand_builtin_strnlen): Rewrite deprecated irange
13021 API uses to new API.
13022 * gimple-predicate-analysis.cc (find_var_cmp_const): Same.
13023 * internal-fn.cc (get_min_precision): Same.
13024 * match.pd: Same.
13025 * tree-affine.cc (expr_to_aff_combination): Same.
13026 * tree-data-ref.cc (dr_step_indicator): Same.
13027 * tree-dfa.cc (get_ref_base_and_extent): Same.
13028 * tree-scalar-evolution.cc (iv_can_overflow_p): Same.
13029 * tree-ssa-phiopt.cc (two_value_replacement): Same.
13030 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
13031 * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
13032 * tree-ssa-strlen.cc (compare_nonzero_chars): Same.
13033 * tree-switch-conversion.cc (bit_test_cluster::emit): Same.
13034 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Same.
13035 * tree.cc (get_range_pos_neg): Same.
13036
13037 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13038
13039 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Use
13040 vrange::dump instead of ad-hoc dumper.
13041 * tree-ssa-strlen.cc (dump_strlen_info): Same.
13042 * value-range-pretty-print.cc (visit): Pass TDF_NOUID to
13043 dump_generic_node.
13044
13045 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13046
13047 * range-op.cc (operator_cast::op1_range): Use
13048 create_possibly_reversed_range.
13049 (operator_bitwise_and::simple_op1_range_solver): Same.
13050 * value-range.cc (swap_out_of_order_endpoints): Delete.
13051 (irange::set): Remove call to swap_out_of_order_endpoints.
13052
13053 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13054
13055 * builtins.cc (determine_block_size): Convert use of legacy API to
13056 get_legacy_range.
13057 * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same.
13058 (array_bounds_checker::check_array_ref): Same.
13059 * gimple-ssa-warn-restrict.cc
13060 (builtin_memref::extend_offset_range): Same.
13061 * ipa-cp.cc (ipcp_store_vr_results): Same.
13062 * ipa-fnsummary.cc (set_switch_stmt_execution_predicate): Same.
13063 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
13064 (ipa_write_jump_function): Same.
13065 * pointer-query.cc (get_size_range): Same.
13066 * tree-data-ref.cc (split_constant_offset): Same.
13067 * tree-ssa-strlen.cc (get_range): Same.
13068 (maybe_diag_stxncpy_trunc): Same.
13069 (strlen_pass::get_len_or_size): Same.
13070 (strlen_pass::count_nonzero_bytes_addr): Same.
13071 * tree-vect-patterns.cc (vect_get_range_info): Same.
13072 * value-range.cc (irange::maybe_anti_range): Remove.
13073 (get_legacy_range): New.
13074 (irange::copy_to_legacy): Use get_legacy_range.
13075 (ranges_from_anti_range): Same.
13076 * value-range.h (class irange): Remove maybe_anti_range.
13077 (get_legacy_range): New.
13078 * vr-values.cc (check_for_binary_op_overflow): Convert use of
13079 legacy API to get_legacy_range.
13080 (compare_ranges): Same.
13081 (compare_range_with_value): Same.
13082 (bounds_of_var_in_loop): Same.
13083 (find_case_label_ranges): Same.
13084 (simplify_using_ranges::simplify_switch_using_ranges): Same.
13085
13086 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13087
13088 * value-range-pretty-print.cc (vrange_printer::visit): Remove
13089 constant_p use.
13090 * value-range.cc (irange::constant_p): Remove.
13091 (irange::get_nonzero_bits_from_range): Remove constant_p use.
13092 * value-range.h (class irange): Remove constant_p.
13093 (irange::num_pairs): Remove constant_p use.
13094
13095 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13096
13097 * value-range.cc (irange::copy_legacy_to_multi_range): Remove
13098 symbolics support.
13099 (irange::set): Same.
13100 (irange::legacy_lower_bound): Same.
13101 (irange::legacy_upper_bound): Same.
13102 (irange::contains_p): Same.
13103 (range_tests_legacy): Same.
13104 (irange::normalize_addresses): Remove.
13105 (irange::normalize_symbolics): Remove.
13106 (irange::symbolic_p): Remove.
13107 * value-range.h (class irange): Remove symbolic_p,
13108 normalize_symbolics, and normalize_addresses.
13109 * vr-values.cc (simplify_using_ranges::two_valued_val_range_p):
13110 Remove symbolics support.
13111
13112 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13113
13114 * value-range.cc (irange::may_contain_p): Remove.
13115 * value-range.h (range_includes_zero_p): Rewrite may_contain_p
13116 usage with contains_p.
13117 * vr-values.cc (compare_range_with_value): Same.
13118
13119 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13120
13121 * tree-vrp.cc (supported_types_p): Remove.
13122 (defined_ranges_p): Remove.
13123 (range_fold_binary_expr): Remove.
13124 (range_fold_unary_expr): Remove.
13125 * tree-vrp.h (range_fold_unary_expr): Remove.
13126 (range_fold_binary_expr): Remove.
13127
13128 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13129
13130 * ipa-cp.cc (ipa_vr_operation_and_type_effects): Convert to ranger API.
13131 (ipa_value_range_from_jfunc): Same.
13132 (propagate_vr_across_jump_function): Same.
13133 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
13134 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
13135 * vr-values.cc (bounds_of_var_in_loop): Same.
13136
13137 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13138
13139 * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
13140 Add irange argument.
13141 (check_out_of_bounds_and_warn): Remove check for vr.
13142 (array_bounds_checker::check_array_ref): Remove pointer qualifier
13143 for vr and adjust accordingly.
13144 * gimple-array-bounds.h (get_value_range): Add irange argument.
13145 * value-query.cc (class equiv_allocator): Delete.
13146 (range_query::get_value_range): Delete.
13147 (range_query::range_query): Remove allocator access.
13148 (range_query::~range_query): Same.
13149 * value-query.h (get_value_range): Delete.
13150 * vr-values.cc
13151 (simplify_using_ranges::op_with_boolean_value_range_p): Remove
13152 call to get_value_range.
13153 (check_for_binary_op_overflow): Same.
13154 (simplify_using_ranges::legacy_fold_cond_overflow): Same.
13155 (simplify_using_ranges::simplify_abs_using_ranges): Same.
13156 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
13157 (simplify_using_ranges::simplify_casted_cond): Same.
13158 (simplify_using_ranges::simplify_switch_using_ranges): Same.
13159 (simplify_using_ranges::two_valued_val_range_p): Same.
13160
13161 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13162
13163 * vr-values.cc
13164 (simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops):
13165 Rename to...
13166 (simplify_using_ranges::legacy_fold_cond_overflow): ...this.
13167 (simplify_using_ranges::vrp_visit_cond_stmt): Rename to...
13168 (simplify_using_ranges::legacy_fold_cond): ...this.
13169 (simplify_using_ranges::fold_cond): Rename
13170 vrp_evaluate_conditional_warnv_with_ops to
13171 legacy_fold_cond_overflow.
13172 * vr-values.h (class vr_values): Replace vrp_visit_cond_stmt and
13173 vrp_evaluate_conditional_warnv_with_ops with legacy_fold_cond and
13174 legacy_fold_cond_overflow respectively.
13175
13176 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13177
13178 * vr-values.cc (get_vr_for_comparison): Remove.
13179 (compare_name_with_value): Same.
13180 (vrp_evaluate_conditional_warnv_with_ops): Remove calls to
13181 compare_name_with_value.
13182 * vr-values.h: Remove compare_name_with_value.
13183 Remove get_vr_for_comparison.
13184
13185 2023-04-26 Roger Sayle <roger@nextmovesoftware.com>
13186
13187 * config/stormy16/stormy16.md (bswaphi2): New define_insn.
13188 (bswapsi2): New define_insn.
13189 (swaphi): New define_insn to exchange two registers (swpw).
13190 (define_peephole2): Recognize exchange of registers as swaphi.
13191
13192 2023-04-26 Richard Biener <rguenther@suse.de>
13193
13194 * gimple-range-path.cc (path_range_query::compute_outgoing_relations):
13195 Avoid last_stmt.
13196 * ipa-pure-const.cc (pass_nothrow::execute): Likewise.
13197 * predict.cc (apply_return_prediction): Likewise.
13198 * sese.cc (set_ifsese_condition): Likewise. Simplify.
13199 * tree-cfg.cc (assert_unreachable_fallthru_edge_p): Avoid last_stmt.
13200 (make_edges_bb): Likewise.
13201 (make_cond_expr_edges): Likewise.
13202 (end_recording_case_labels): Likewise.
13203 (make_gimple_asm_edges): Likewise.
13204 (cleanup_dead_labels): Likewise.
13205 (group_case_labels): Likewise.
13206 (gimple_can_merge_blocks_p): Likewise.
13207 (gimple_merge_blocks): Likewise.
13208 (find_taken_edge): Likewise. Also handle empty fallthru blocks.
13209 (gimple_duplicate_sese_tail): Avoid last_stmt.
13210 (find_loop_dist_alias): Likewise.
13211 (gimple_block_ends_with_condjump_p): Likewise.
13212 (gimple_purge_dead_eh_edges): Likewise.
13213 (gimple_purge_dead_abnormal_call_edges): Likewise.
13214 (pass_warn_function_return::execute): Likewise.
13215 (execute_fixup_cfg): Likewise.
13216 * tree-eh.cc (redirect_eh_edge_1): Likewise.
13217 (pass_lower_resx::execute): Likewise.
13218 (pass_lower_eh_dispatch::execute): Likewise.
13219 (cleanup_empty_eh): Likewise.
13220 * tree-if-conv.cc (if_convertible_bb_p): Likewise.
13221 (predicate_bbs): Likewise.
13222 (ifcvt_split_critical_edges): Likewise.
13223 * tree-loop-distribution.cc (create_edge_for_control_dependence):
13224 Likewise.
13225 (loop_distribution::transform_reduction_loop): Likewise.
13226 * tree-parloops.cc (transform_to_exit_first_loop_alt): Likewise.
13227 (try_transform_to_exit_first_loop_alt): Likewise.
13228 (transform_to_exit_first_loop): Likewise.
13229 (create_parallel_loop): Likewise.
13230 * tree-scalar-evolution.cc (get_loop_exit_condition): Likewise.
13231 * tree-ssa-dce.cc (mark_last_stmt_necessary): Likewise.
13232 (eliminate_unnecessary_stmts): Likewise.
13233 * tree-ssa-dom.cc
13234 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
13235 Likewise.
13236 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Likewise.
13237 (pass_tree_ifcombine::execute): Likewise.
13238 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Likewise.
13239 (should_duplicate_loop_header_p): Likewise.
13240 * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Likewise.
13241 (tree_estimate_loop_size): Likewise.
13242 (try_unroll_loop_completely): Likewise.
13243 * tree-ssa-loop-ivopts.cc (tree_ssa_iv_optimize_loop): Likewise.
13244 * tree-ssa-loop-manip.cc (ip_normal_pos): Likewise.
13245 (canonicalize_loop_ivs): Likewise.
13246 * tree-ssa-loop-niter.cc (determine_value_range): Likewise.
13247 (bound_difference): Likewise.
13248 (number_of_iterations_popcount): Likewise.
13249 (number_of_iterations_cltz): Likewise.
13250 (number_of_iterations_cltz_complement): Likewise.
13251 (simplify_using_initial_conditions): Likewise.
13252 (number_of_iterations_exit_assumptions): Likewise.
13253 (loop_niter_by_eval): Likewise.
13254 (estimate_numbers_of_iterations): Likewise.
13255
13256 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13257
13258 * config/riscv/vector.md: Refine vmadc/vmsbc RA constraint.
13259
13260 2023-04-26 Kewen Lin <linkw@linux.ibm.com>
13261
13262 PR target/108758
13263 * config/rs6000/rs6000-builtins.def
13264 (__builtin_vsx_scalar_cmp_exp_qp_eq, __builtin_vsx_scalar_cmp_exp_qp_gt
13265 __builtin_vsx_scalar_cmp_exp_qp_lt,
13266 __builtin_vsx_scalar_cmp_exp_qp_unordered): Move from stanza ieee128-hw
13267 to power9-vector.
13268
13269 2023-04-26 Kewen Lin <linkw@linux.ibm.com>
13270
13271 PR target/109069
13272 * config/rs6000/altivec.md (sldoi_to_mov<mode>): Replace predicate
13273 easy_vector_constant with const_vector_each_byte_same, add
13274 handlings in preparation for !easy_vector_constant, and update
13275 VECTOR_UNIT_ALTIVEC_OR_VSX_P with VECTOR_MEM_ALTIVEC_OR_VSX_P.
13276 * config/rs6000/predicates.md (const_vector_each_byte_same): New
13277 predicate.
13278
13279 2023-04-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13280
13281 * config/riscv/vector.md (*pred_cmp<mode>_merge_tie_mask): New pattern.
13282 (*pred_ltge<mode>_merge_tie_mask): Ditto.
13283 (*pred_cmp<mode>_scalar_merge_tie_mask): Ditto.
13284 (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto.
13285 (*pred_cmp<mode>_extended_scalar_merge_tie_mask): Ditto.
13286 (*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto.
13287 (*pred_cmp<mode>_narrow_merge_tie_mask): Ditto.
13288
13289 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13290
13291 * config/riscv/vector.md: Fix redundant vmv1r.v.
13292
13293 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13294
13295 * config/riscv/vector.md: Fix RA constraint.
13296
13297 2023-04-26 Pan Li <pan2.li@intel.com>
13298
13299 PR target/109272
13300 * tree-ssa-sccvn.cc (vn_reference_eq): add type vector subparts
13301 check for vn_reference equal.
13302
13303 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13304
13305 * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Add enum for
13306 auto-vectorization preference.
13307 (enum riscv_autovec_lmul_enum): Add enum for choosing LMUL of RVV
13308 auto-vectorization.
13309 * config/riscv/riscv.opt: Add compile option for RVV auto-vectorization.
13310
13311 2023-04-26 Jivan Hakobyan <jivanhakobyan9@gmail.com>
13312
13313 * config/riscv/bitmanip.md: Updated predicates of bclri<mode>_nottwobits
13314 and bclridisi_nottwobits patterns.
13315 * config/riscv/predicates.md: (not_uimm_extra_bit_or_nottwobits): Adjust
13316 predicate to avoid splitting arith constants.
13317 (const_nottwobits_not_arith_operand): New predicate.
13318
13319 2023-04-25 Hans-Peter Nilsson <hp@axis.com>
13320
13321 * recog.cc (peep2_attempt, peep2_update_life): Correct
13322 head-comment description of parameter match_len.
13323
13324 2023-04-25 Vineet Gupta <vineetg@rivosinc.com>
13325
13326 * config/riscv/riscv.md: riscv_move_integer() drop in_splitter arg.
13327 riscv_split_symbol() drop in_splitter arg.
13328 * config/riscv/riscv.cc: riscv_move_integer() drop in_splitter arg.
13329 riscv_split_symbol() drop in_splitter arg.
13330 riscv_force_temporary() drop in_splitter arg.
13331 * config/riscv/riscv-protos.h: riscv_move_integer() drop in_splitter arg.
13332 riscv_split_symbol() drop in_splitter arg.
13333
13334 2023-04-25 Eric Botcazou <ebotcazou@adacore.com>
13335
13336 * tree-ssa.cc (insert_debug_temp_for_var_def): Do not create
13337 superfluous debug temporaries for single GIMPLE assignments.
13338
13339 2023-04-25 Richard Biener <rguenther@suse.de>
13340
13341 PR tree-optimization/109609
13342 * attr-fnspec.h (arg_max_access_size_given_by_arg_p):
13343 Clarify semantics.
13344 * tree-ssa-alias.cc (check_fnspec): Correctly interpret
13345 the size given by arg_max_access_size_given_by_arg_p as
13346 maximum, not exact, size.
13347
13348 2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13349
13350 PR target/99195
13351 * config/aarch64/aarch64-simd.md (orn<mode>3): Rename to...
13352 (orn<mode>3<vczle><vczbe>): ... This.
13353 (bic<mode>3): Rename to...
13354 (bic<mode>3<vczle><vczbe>): ... This.
13355 (<su><maxmin><mode>3): Rename to...
13356 (<su><maxmin><mode>3<vczle><vczbe>): ... This.
13357
13358 2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13359
13360 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3): New define_expand.
13361 * config/aarch64/iterators.md (VQDIV): New mode iterator.
13362 (vnx2di): New mode attribute.
13363
13364 2023-04-25 Richard Biener <rguenther@suse.de>
13365
13366 PR rtl-optimization/109585
13367 * tree-ssa-alias.cc (aliasing_component_refs_p): Fix typo.
13368
13369 2023-04-25 Jakub Jelinek <jakub@redhat.com>
13370
13371 PR target/109566
13372 * config/rs6000/rs6000.cc (rs6000_is_valid_rotate_dot_mask): For
13373 !TARGET_64BIT, don't return true if UINTVAL (mask) << (63 - nb)
13374 is larger than signed int maximum.
13375
13376 2023-04-25 Martin Liska <mliska@suse.cz>
13377
13378 * doc/gcov.texi: Document the new "calls" field and document
13379 the API bump. Mention also "block_ids" for lines.
13380 * gcov.cc (output_intermediate_json_line): Output info about
13381 calls and extend branches as well.
13382 (generate_results): Bump version to 2.
13383 (output_line_details): Use block ID instead of a non-sensual
13384 index.
13385
13386 2023-04-25 Roger Sayle <roger@nextmovesoftware.com>
13387
13388 * config/stormy16/stormy16.md (zero_extendqihi2): Restore/fix
13389 length attribute for the first (memory operand) alternative.
13390
13391 2023-04-25 Victor Do Nascimento <victor.donascimento@arm.com>
13392
13393 * config/aarch64/aarch64-simd.md(aarch64_simd_stp<mode>): New.
13394 * config/aarch64/constraints.md: Make "Umn" relaxed memory
13395 constraint.
13396 * config/aarch64/iterators.md(ldpstp_vel_sz): New.
13397
13398 2023-04-25 Aldy Hernandez <aldyh@redhat.com>
13399
13400 * value-range.cc (frange::set): Adjust constructor.
13401 * value-range.h (nan_state::nan_state): Replace default
13402 constructor with one taking an argument.
13403
13404 2023-04-25 Aldy Hernandez <aldyh@redhat.com>
13405
13406 * ipa-cp.cc (ipa_range_contains_p): New.
13407 (decide_whether_version_node): Use it.
13408
13409 2023-04-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13410
13411 * tree-ssa-forwprop.cc (is_combined_permutation_identity): Try to
13412 simplify two successive VEC_PERM_EXPRs with same VLA mask,
13413 where mask chooses elements in reverse order.
13414
13415 2023-04-24 Andrew Pinski <apinski@marvell.com>
13416
13417 * tree-ssa-phiopt.cc (match_simplify_replacement): Add new arguments
13418 and support diamond shaped basic block form.
13419 (tree_ssa_phiopt_worker): Update call to match_simplify_replacement
13420
13421 2023-04-24 Andrew Pinski <apinski@marvell.com>
13422
13423 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
13424 Instead of calling last_and_only_stmt, look for the last statement
13425 manually.
13426
13427 2023-04-24 Andrew Pinski <apinski@marvell.com>
13428
13429 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
13430 New function.
13431 (match_simplify_replacement): Call
13432 empty_bb_or_one_feeding_into_p instead of doing it inline.
13433
13434 2023-04-24 Andrew Pinski <apinski@marvell.com>
13435
13436 PR tree-optimization/68894
13437 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove the
13438 continue for the do_hoist_loads diamond case.
13439
13440 2023-04-24 Andrew Pinski <apinski@marvell.com>
13441
13442 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Rearrange
13443 code for better code readability.
13444
13445 2023-04-24 Andrew Pinski <apinski@marvell.com>
13446
13447 PR tree-optimization/109604
13448 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Move the
13449 diamond form check from ...
13450 (minmax_replacement): Here.
13451
13452 2023-04-24 Patrick Palka <ppalka@redhat.com>
13453
13454 * tree.cc (strip_array_types): Don't define here.
13455 (is_typedef_decl): Don't define here.
13456 (typedef_variant_p): Don't define here.
13457 * tree.h (strip_array_types): Define here.
13458 (is_typedef_decl): Define here.
13459 (typedef_variant_p): Define here.
13460
13461 2023-04-24 Frederik Harwath <frederik@codesourcery.com>
13462
13463 * doc/generic.texi (OpenMP): Add != to allowed
13464 conditions and state that vars can be unsigned.
13465 * tree.def (OMP_FOR): Likewise.
13466
13467 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13468
13469 * config/aarch64/aarch64-simd.md (mulv2di3): New expander.
13470
13471 2023-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13472
13473 * doc/install.texi: Consistently use Solaris rather than Solaris 2.
13474 Remove explicit Solaris 11 references.
13475 Markup fixes.
13476 (Options specification, --with-gnu-as): as and gas always differ
13477 on Solaris.
13478 Remove /usr/ccs/bin reference.
13479 (Installing GCC: Binaries, Solaris (SPARC, Intel)): Remove.
13480 (i?86-*-solaris2*): Merge assembler, linker recommendations ...
13481 (*-*-solaris2*): ... here.
13482 Update bundled GCC versions.
13483 Don't refer to pre-built binaries.
13484 Remove /bin/sh warning.
13485 Update assembler, linker recommendations.
13486 Document GNAT bootstrap compiler.
13487 (sparc-sun-solaris2*): Remove non-UltraSPARC reference.
13488 (sparc64-*-solaris2*): Move content...
13489 (sparcv9-*-solaris2*): ...here.
13490 Add GDC for 64-bit bootstrap compilers.
13491
13492 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13493
13494 PR target/109406
13495 * config/aarch64/aarch64-sve.md (<optab><mode>3): Handle TARGET_SVE2 MUL
13496 case.
13497 * config/aarch64/aarch64-sve2.md (*aarch64_mul_unpredicated_<mode>): New
13498 pattern.
13499
13500 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13501
13502 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): Rename to...
13503 (aarch64_<su>abal2<mode>_insn): ... This. Use RTL codes instead of unspec.
13504 (aarch64_<su>abal2<mode>): New define_expand.
13505 * config/aarch64/aarch64.cc (aarch64_abd_rtx_p): New function.
13506 (aarch64_rtx_costs): Handle ABD rtxes.
13507 * config/aarch64/aarch64.md (UNSPEC_SABAL2, UNSPEC_UABAL2): Delete.
13508 * config/aarch64/iterators.md (ABAL2): Delete.
13509 (sur): Remove handling of UNSPEC_UABAL2 and UNSPEC_SABAL2.
13510
13511 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13512
13513 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>): Rename to...
13514 (aarch64_<su>abal<mode>): ... This. Use RTL codes instead of unspec.
13515 (<sur>sadv16qi): Rename to...
13516 (<su>sadv16qi): ... This. Adjust for the above.
13517 * config/aarch64/aarch64-sve.md (<sur>sad<vsi2qi>): Rename to...
13518 (<su>sad<vsi2qi>): ... This. Adjust for the above.
13519 * config/aarch64/aarch64.md (UNSPEC_SABAL, UNSPEC_UABAL): Delete.
13520 * config/aarch64/iterators.md (ABAL): Delete.
13521 (sur): Remove handling of UNSPEC_SABAL and UNSPEC_UABAL.
13522
13523 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13524
13525 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>): Rename to...
13526 (aarch64_<su>abdl2<mode>_insn): ... This. Use RTL codes instead of unspec.
13527 (aarch64_<su>abdl2<mode>): New define_expand.
13528 * config/aarch64/aarch64.md (UNSPEC_SABDL2, UNSPEC_UABDL2): Delete.
13529 * config/aarch64/iterators.md (ABDL2): Delete.
13530 (sur): Remove handling of UNSPEC_SABDL2 and UNSPEC_UABDL2.
13531
13532 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13533
13534 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): Rename to...
13535 (aarch64_<su>abdl<mode>): ... This. Use standard RTL ops instead of
13536 unspec.
13537 * config/aarch64/aarch64.md (UNSPEC_SABDL, UNSPEC_UABDL): Delete.
13538 * config/aarch64/iterators.md (ABDL): Delete.
13539 (sur): Remove handling of UNSPEC_SABDL and UNSPEC_UABDL.
13540
13541 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13542
13543 * config/aarch64/aarch64-simd.md
13544 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): New pattern.
13545
13546 2023-04-24 Richard Biener <rguenther@suse.de>
13547
13548 * gimple-ssa-split-paths.cc (is_feasible_trace): Avoid
13549 last_stmt.
13550 * graphite-scop-detection.cc (single_pred_cond_non_loop_exit):
13551 Likewise.
13552 * ipa-fnsummary.cc (set_cond_stmt_execution_predicate): Likewise.
13553 (set_switch_stmt_execution_predicate): Likewise.
13554 (phi_result_unknown_predicate): Likewise.
13555 * ipa-prop.cc (compute_complex_ancestor_jump_func): Likewise.
13556 (ipa_analyze_indirect_call_uses): Likewise.
13557 * predict.cc (predict_iv_comparison): Likewise.
13558 (predict_extra_loop_exits): Likewise.
13559 (predict_loops): Likewise.
13560 (tree_predict_by_opcode): Likewise.
13561 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
13562 Likewise.
13563 * gimple-pretty-print.cc (dump_implicit_edges): Likewise.
13564 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Likewise.
13565 (replace_phi_edge_with_variable): Likewise.
13566 (two_value_replacement): Likewise.
13567 (value_replacement): Likewise.
13568 (minmax_replacement): Likewise.
13569 (spaceship_replacement): Likewise.
13570 (cond_removal_in_builtin_zero_pattern): Likewise.
13571 * tree-ssa-reassoc.cc (maybe_optimize_range_tests): Likewise.
13572 * tree-ssa-sccvn.cc (vn_phi_eq): Likewise.
13573 (vn_phi_lookup): Likewise.
13574 (vn_phi_insert): Likewise.
13575 * tree-ssa-structalias.cc (compute_points_to_sets): Likewise.
13576 * tree-ssa-threadbackward.cc (back_threader::maybe_thread_block):
13577 Likewise.
13578 (back_threader_profitability::possibly_profitable_path_p):
13579 Likewise.
13580 * tree-ssa-threadedge.cc (jump_threader::thread_outgoing_edges):
13581 Likewise.
13582 * tree-switch-conversion.cc (pass_convert_switch::execute):
13583 Likewise.
13584 (pass_lower_switch<O0>::execute): Likewise.
13585 * tree-tailcall.cc (tree_optimize_tail_calls_1): Likewise.
13586 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
13587 * tree-vect-slp.cc (vect_slp_function): Likewise.
13588 * tree-vect-stmts.cc (cfun_returns): Likewise.
13589 * tree-vectorizer.cc (vect_loop_vectorized_call): Likewise.
13590 (vect_loop_dist_alias_call): Likewise.
13591
13592 2023-04-24 Richard Biener <rguenther@suse.de>
13593
13594 * cfgcleanup.cc (outgoing_edges_match): Use FORWARDER_BLOCK_P.
13595
13596 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13597
13598 * config/riscv/riscv-vsetvl.cc
13599 (vector_infos_manager::all_avail_in_compatible_p): New function.
13600 (pass_vsetvl::refine_vsetvls): Optimize vsetvls.
13601 * config/riscv/riscv-vsetvl.h: New function.
13602
13603 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13604
13605 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::pre_vsetvl): Add function
13606 comment for cleanup_insns.
13607
13608 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13609
13610 * config/riscv/vector-iterators.md: New unspec to refine fault first load pattern.
13611 * config/riscv/vector.md: Refine fault first load pattern to erase avl from instructions
13612 with the fault first load property.
13613
13614 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13615
13616 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
13617 (aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.
13618
13619 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13620
13621 PR target/99195
13622 * config/aarch64/aarch64-simd.md (aarch64_addp<mode>): Rename to...
13623 (aarch64_addp<mode><vczle><vczbe>): ... This.
13624
13625 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
13626
13627 * config/stormy16/stormy16.cc (xstormy16_rtx_costs): Rewrite to
13628 provide reasonable values for common arithmetic operations and
13629 immediate operands (in several machine modes).
13630
13631 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
13632
13633 * config/stormy16/stormy16.cc (xstormy16_print_operand): Add %h
13634 format specifier to output high_part register name of SImode reg.
13635 * config/stormy16/stormy16.md (extendhisi2): New define_insn.
13636 (zero_extendqihi2): Fix lengths, consistent formatting and add
13637 "and Rx,#255" alternative, for documentation purposes.
13638 (zero_extendhisi2): New define_insn.
13639
13640 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
13641
13642 * config/stormy16/stormy16.cc (xstormy16_output_shift): Implement
13643 SImode shifts by two by performing a single bit SImode shift twice.
13644
13645 2023-04-23 Aldy Hernandez <aldyh@redhat.com>
13646
13647 PR tree-optimization/109593
13648 * value-range.cc (frange::operator==): Handle NANs.
13649
13650 2023-04-23 liuhongt <hongtao.liu@intel.com>
13651
13652 PR rtl-optimization/108707
13653 * ira-costs.cc (scan_one_insn): Use NO_REGS instead of
13654 GENERAL_REGS when preferred reg_class is not known.
13655
13656 2023-04-22 Andrew Pinski <apinski@marvell.com>
13657
13658 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
13659 Change the code around slightly to move diamond
13660 handling for do_store_elim/do_hoist_loads out of
13661 the big if/else.
13662
13663 2023-04-22 Andrew Pinski <apinski@marvell.com>
13664
13665 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
13666 Remove check on empty_block_p.
13667
13668 2023-04-22 Jakub Jelinek <jakub@redhat.com>
13669
13670 PR bootstrap/109589
13671 * system.h (class auto_mpz): Workaround PR62101 bug in GCC 4.8 and 4.9.
13672 * realmpfr.h (class auto_mpfr): Likewise.
13673
13674 2023-04-22 Jakub Jelinek <jakub@redhat.com>
13675
13676 PR tree-optimization/109583
13677 * match.pd (fneg/fadd simplify): Don't call related_vector_mode
13678 if vec_mode is not VECTOR_MODE_P.
13679
13680 2023-04-22 Jan Hubicka <hubicka@ucw.cz>
13681 Ondrej Kubanek <kubanek0ondrej@gmail.com>
13682
13683 * cfgloopmanip.h (adjust_loop_info_after_peeling): Declare.
13684 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix updating of
13685 loop profile and bounds after header duplication.
13686 * tree-ssa-loop-ivcanon.cc (adjust_loop_info_after_peeling):
13687 Break out from try_peel_loop; fix handling of 0 iterations.
13688 (try_peel_loop): Use adjust_loop_info_after_peeling.
13689
13690 2023-04-21 Andrew MacLeod <amacleod@redhat.com>
13691
13692 PR tree-optimization/109546
13693 * tree-vrp.cc (remove_unreachable::remove_and_update_globals): Do
13694 not fold conditions with ADDR_EXPR early.
13695
13696 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13697
13698 * config/aarch64/aarch64.md (aarch64_umax<mode>3_insn): Delete.
13699 (umax<mode>3): Emit raw UMAX RTL instead of going through gen_ function
13700 for umax.
13701 (<optab><mode>3): New define_expand for MAXMIN_NOUMAX codes.
13702 (*aarch64_<optab><mode>3_zero): Define.
13703 (*aarch64_<optab><mode>3_cssc): Likewise.
13704 * config/aarch64/iterators.md (maxminand): New code attribute.
13705
13706 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13707
13708 PR target/108779
13709 * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Define.
13710 * config/aarch64/aarch64-protos.h (aarch64_output_load_tp):
13711 Define prototype.
13712 * config/aarch64/aarch64.cc (aarch64_tpidr_register): Declare.
13713 (aarch64_override_options_internal): Handle the above.
13714 (aarch64_output_load_tp): New function.
13715 * config/aarch64/aarch64.md (aarch64_load_tp_hard): Call
13716 aarch64_output_load_tp.
13717 * config/aarch64/aarch64.opt (aarch64_tp_reg): Define enum.
13718 (mtp=): New option.
13719 * doc/invoke.texi (AArch64 Options): Document -mtp=.
13720
13721 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13722
13723 PR target/99195
13724 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Define.
13725 (add_vec_concat_subst_be): Likewise.
13726 (vczle): Likewise.
13727 (vczbe): Likewise.
13728 (add<mode>3): Rename to...
13729 (add<mode>3<vczle><vczbe>): ... This.
13730 (sub<mode>3): Rename to...
13731 (sub<mode>3<vczle><vczbe>): ... This.
13732 (mul<mode>3): Rename to...
13733 (mul<mode>3<vczle><vczbe>): ... This.
13734 (and<mode>3): Rename to...
13735 (and<mode>3<vczle><vczbe>): ... This.
13736 (ior<mode>3): Rename to...
13737 (ior<mode>3<vczle><vczbe>): ... This.
13738 (xor<mode>3): Rename to...
13739 (xor<mode>3<vczle><vczbe>): ... This.
13740 * config/aarch64/iterators.md (VDZ): Define.
13741
13742 2023-04-21 Patrick Palka <ppalka@redhat.com>
13743
13744 * tree.cc (walk_tree_1): Avoid repeatedly dereferencing tp
13745 and type_p.
13746
13747 2023-04-21 Jan Hubicka <jh@suse.cz>
13748
13749 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix previous
13750 commit.
13751
13752 2023-04-21 Vineet Gupta <vineetg@rivosinc.com>
13753
13754 * expmed.h (x_shift*_cost): convert to int [speed][mode][shift].
13755 (shift*_cost_ptr ()): Access x_shift*_cost array directly.
13756
13757 2023-04-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13758
13759 * config/aarch64/aarch64.cc (aarch64_simd_dup_constant): Use
13760 force_reg instead of copy_to_mode_reg.
13761 (aarch64_expand_vector_init): Likewise.
13762
13763 2023-04-21 Uroš Bizjak <ubizjak@gmail.com>
13764
13765 * config/i386/i386.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Remove.
13766 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P): Ditto.
13767 (REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P): Ditto.
13768 (FIRST_INDEX_REG, LAST_INDEX_REG): New defines.
13769 (LEGACY_INDEX_REG_P, LEGACY_INDEX_REGNO_P): New macros.
13770 (INDEX_REG_P, INDEX_REGNO_P): Ditto.
13771 (REGNO_OK_FOR_INDEX_P): Use INDEX_REGNO_P predicates.
13772 (REGNO_OK_FOR_INDEX_NONSTRICT_P): New macro.
13773 (EG_OK_FOR_BASE_NONSTRICT_P): Ditto.
13774 * config/i386/predicates.md (index_register_operand):
13775 Use REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
13776 * config/i386/i386.cc (ix86_legitimate_address_p): Use
13777 REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_BASE_NONSTRICT_P,
13778 REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
13779
13780 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
13781 Ondrej Kubanek <kubanek0ondrej@gmail.com>
13782
13783 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Update loop header and
13784 latch.
13785
13786 2023-04-21 Richard Biener <rguenther@suse.de>
13787
13788 * is-a.h (safe_is_a): New.
13789
13790 2023-04-21 Richard Biener <rguenther@suse.de>
13791
13792 * gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
13793 (gphi_iterator::operator*): Likewise.
13794
13795 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
13796 Michal Jires <michal@jires.eu>
13797
13798 * ipa-inline.cc (class inline_badness): New class.
13799 (edge_heap_t, edge_heap_node_t): Use inline_badness for badness instead
13800 of sreal.
13801 (update_edge_key): Update.
13802 (lookup_recursive_calls): Likewise.
13803 (recursive_inlining): Likewise.
13804 (add_new_edges_to_heap): Likewise.
13805 (inline_small_functions): Likewise.
13806
13807 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
13808
13809 * ipa-devirt.cc (odr_types_equivalent_p): Cleanup warned checks.
13810
13811 2023-04-21 Richard Biener <rguenther@suse.de>
13812
13813 PR tree-optimization/109573
13814 * tree-vect-loop.cc (vectorizable_live_operation): Allow
13815 unhandled SSA copy as well. Demote assert to checking only.
13816
13817 2023-04-21 Richard Biener <rguenther@suse.de>
13818
13819 * df-core.cc (df_analyze): Compute RPO on the reverse graph
13820 for DF_BACKWARD problems.
13821 (loop_post_order_compute): Rename to ...
13822 (loop_rev_post_order_compute): ... this, compute a RPO.
13823 (loop_inverted_post_order_compute): Rename to ...
13824 (loop_inverted_rev_post_order_compute): ... this, compute a RPO.
13825 (df_analyze_loop): Use RPO on the forward graph for DF_FORWARD
13826 problems, RPO on the inverted graph for DF_BACKWARD.
13827
13828 2023-04-21 Richard Biener <rguenther@suse.de>
13829
13830 * cfganal.h (inverted_rev_post_order_compute): Rename
13831 from ...
13832 (inverted_post_order_compute): ... this. Add struct function
13833 argument, change allocation to a C array.
13834 * cfganal.cc (inverted_rev_post_order_compute): Likewise.
13835 * lcm.cc (compute_antinout_edge): Adjust.
13836 * lra-lives.cc (lra_create_live_ranges_1): Likewise.
13837 * tree-ssa-dce.cc (remove_dead_stmt): Likewise.
13838 * tree-ssa-pre.cc (compute_antic): Likewise.
13839
13840 2023-04-21 Richard Biener <rguenther@suse.de>
13841
13842 * df.h (df_d::postorder_inverted): Change back to int *,
13843 clarify comments.
13844 * df-core.cc (rest_of_handle_df_finish): Adjust.
13845 (df_analyze_1): Likewise.
13846 (df_analyze): For DF_FORWARD problems use RPO on the forward
13847 graph. Adjust.
13848 (loop_inverted_post_order_compute): Adjust API.
13849 (df_analyze_loop): Adjust.
13850 (df_get_n_blocks): Likewise.
13851 (df_get_postorder): Likewise.
13852
13853 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13854
13855 PR target/108270
13856 * config/riscv/riscv-vsetvl.cc
13857 (vector_infos_manager::all_empty_predecessor_p): New function.
13858 (pass_vsetvl::backward_demand_fusion): Ditto.
13859 * config/riscv/riscv-vsetvl.h: Ditto.
13860
13861 2023-04-21 Robin Dapp <rdapp@ventanamicro.com>
13862
13863 PR target/109582
13864 * config/riscv/generic.md: Change standard names to insn names.
13865
13866 2023-04-21 Richard Biener <rguenther@suse.de>
13867
13868 * lcm.cc (compute_antinout_edge): Use RPO on the inverted graph.
13869 (compute_laterin): Use RPO.
13870 (compute_available): Likewise.
13871
13872 2023-04-21 Peng Fan <fanpeng@loongson.cn>
13873
13874 * config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
13875
13876 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13877
13878 PR target/109547
13879 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): New function.
13880 (vector_insn_info::skip_avl_compatible_p): Ditto.
13881 (vector_insn_info::merge): Remove default value.
13882 (pass_vsetvl::compute_local_backward_infos): Ditto.
13883 (pass_vsetvl::cleanup_insns): Add local vsetvl elimination.
13884 * config/riscv/riscv-vsetvl.h: Ditto.
13885
13886 2023-04-20 Alejandro Colomar <alx.manpages@gmail.com>
13887
13888 * doc/extend.texi (Common Function Attributes): Remove duplicate
13889 word.
13890
13891 2023-04-20 Andrew MacLeod <amacleod@redhat.com>
13892
13893 PR tree-optimization/109564
13894 * gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore
13895 UNDEFINED range names when deciding if all PHI arguments are the same,
13896
13897 2023-04-20 Jakub Jelinek <jakub@redhat.com>
13898
13899 PR tree-optimization/109011
13900 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Use
13901 .CTZ (X) = .POPCOUNT ((X - 1) & ~X) in preference to
13902 .CTZ (X) = PREC - .POPCOUNT (X | -X).
13903
13904 2023-04-20 Vladimir N. Makarov <vmakarov@redhat.com>
13905
13906 * lra-constraints.cc (match_reload): Exclude some hard regs for
13907 multi-reg inout reload pseudos used in asm in different mode.
13908
13909 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
13910
13911 * config/arm/arm.cc (thumb1_legitimate_address_p):
13912 Use VIRTUAL_REGISTER_P predicate.
13913 (arm_eliminable_register): Ditto.
13914 * config/avr/avr.md (push<mode>_1): Ditto.
13915 * config/bfin/predicates.md (register_no_elim_operand): Ditto.
13916 * config/h8300/predicates.md (register_no_sp_elim_operand): Ditto.
13917 * config/i386/predicates.md (register_no_elim_operand): Ditto.
13918 * config/iq2000/predicates.md (call_insn_operand): Ditto.
13919 * config/microblaze/microblaze.h (CALL_INSN_OP): Ditto.
13920
13921 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
13922
13923 PR target/78952
13924 * config/i386/predicates.md (extract_operator): New predicate.
13925 * config/i386/i386.md (any_extract): Remove code iterator.
13926 (*cmpqi_ext<mode>_1_mem_rex64): Use extract_operator predicate.
13927 (*cmpqi_ext<mode>_1): Ditto.
13928 (*cmpqi_ext<mode>_2): Ditto.
13929 (*cmpqi_ext<mode>_3_mem_rex64): Ditto.
13930 (*cmpqi_ext<mode>_3): Ditto.
13931 (*cmpqi_ext<mode>_4): Ditto.
13932 (*extzvqi_mem_rex64): Ditto.
13933 (*extzvqi): Ditto.
13934 (*insvqi_2): Ditto.
13935 (*extendqi<SWI24:mode>_ext_1): Ditto.
13936 (*addqi_ext<mode>_0): Ditto.
13937 (*addqi_ext<mode>_1): Ditto.
13938 (*addqi_ext<mode>_2): Ditto.
13939 (*subqi_ext<mode>_0): Ditto.
13940 (*subqi_ext<mode>_2): Ditto.
13941 (*testqi_ext<mode>_1): Ditto.
13942 (*testqi_ext<mode>_2): Ditto.
13943 (*andqi_ext<mode>_0): Ditto.
13944 (*andqi_ext<mode>_1): Ditto.
13945 (*andqi_ext<mode>_1_cc): Ditto.
13946 (*andqi_ext<mode>_2): Ditto.
13947 (*<any_or:code>qi_ext<mode>_0): Ditto.
13948 (*<any_or:code>qi_ext<mode>_1): Ditto.
13949 (*<any_or:code>qi_ext<mode>_2): Ditto.
13950 (*xorqi_ext<mode>_1_cc): Ditto.
13951 (*negqi_ext<mode>_2): Ditto.
13952 (*ashlqi_ext<mode>_2): Ditto.
13953 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
13954
13955 2023-04-20 Raphael Zinsly <rzinsly@ventanamicro.com>
13956
13957 PR target/108248
13958 * config/riscv/bitmanip.md (clz, ctz, pcnt, min, max patterns): Use
13959 <bitmanip_insn> as the type to allow for fine grained control of
13960 scheduling these insns.
13961 * config/riscv/generic.md (generic_alu): Add bitmanip, clz, ctz, pcnt,
13962 min, max.
13963 * config/riscv/riscv.md (type attribute): Add types for clz, ctz,
13964 pcnt, signed and unsigned min/max.
13965
13966 2023-04-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13967 kito-cheng <kito.cheng@sifive.com>
13968
13969 * config/riscv/riscv.h (enum reg_class): Fix RVV register order.
13970
13971 2023-04-20 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13972 kito-cheng <kito.cheng@sifive.com>
13973
13974 PR target/109535
13975 * config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
13976 (pass_vsetvl::cleanup_insns): Fix bug.
13977
13978 2023-04-20 Andrew Stubbs <ams@codesourcery.com>
13979
13980 * config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes.
13981 (ldexp<mode>3): Delete.
13982 (ldexp<mode>3<exec>): Change "B" to "A".
13983
13984 2023-04-20 Jakub Jelinek <jakub@redhat.com>
13985 Jonathan Wakely <jwakely@redhat.com>
13986
13987 * tree.h (built_in_function_equal_p): New helper function.
13988 (fndecl_built_in_p): Turn into variadic template to support
13989 1 or more built_in_function arguments.
13990 * builtins.cc (fold_builtin_expect): Use 3 argument fndecl_built_in_p.
13991 * gimplify.cc (goa_stabilize_expr): Likewise.
13992 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
13993 * ipa-fnsummary.cc (compute_fn_summary): Likewise.
13994 * omp-low.cc (setjmp_or_longjmp_p): Likewise.
13995 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
13996 cgraph_update_edges_for_call_stmt_node,
13997 cgraph_edge::verify_corresponds_to_fndecl,
13998 cgraph_node::verify_node): Likewise.
13999 * tree-stdarg.cc (optimize_va_list_gpr_fpr_size): Likewise.
14000 * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Likewise.
14001 * ipa-prop.cc (try_make_edge_direct_virtual_call): Likewise.
14002
14003 2023-04-20 Jakub Jelinek <jakub@redhat.com>
14004
14005 PR tree-optimization/109011
14006 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): New function.
14007 (vect_recog_popcount_clz_ctz_ffs_pattern): Move vect_pattern_detected
14008 call later. Don't punt for IFN_CTZ or IFN_FFS if it doesn't have
14009 direct optab support, but has instead IFN_CLZ, IFN_POPCOUNT or
14010 for IFN_FFS IFN_CTZ support, use vect_recog_ctz_ffs_pattern for that
14011 case.
14012 (vect_vect_recog_func_ptrs): Add ctz_ffs entry.
14013
14014 2023-04-20 Richard Biener <rguenther@suse.de>
14015
14016 * df-core.cc (rest_of_handle_df_initialize): Remove
14017 computation of df->postorder, df->postorder_inverted and
14018 df->n_blocks.
14019
14020 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14021
14022 * common/config/i386/i386-common.cc
14023 (OPTION_MASK_ISA2_AVX_UNSET): Add OPTION_MASK_ISA2_VAES_UNSET.
14024 (ix86_handle_option): Set AVX flag for VAES.
14025 * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
14026 Add OPTION_MASK_ISA2_VAES_UNSET.
14027 (def_builtin): Share builtin between AES and VAES.
14028 * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
14029 Ditto.
14030 * config/i386/i386.md (aes): New isa attribute.
14031 * config/i386/sse.md (aesenc): Add pattern for VAES with xmm.
14032 (aesenclast): Ditto.
14033 (aesdec): Ditto.
14034 (aesdeclast): Ditto.
14035 * config/i386/vaesintrin.h: Remove redundant avx target push.
14036 * config/i386/wmmintrin.h (_mm_aesdec_si128): Change to macro.
14037 (_mm_aesdeclast_si128): Ditto.
14038 (_mm_aesenc_si128): Ditto.
14039 (_mm_aesenclast_si128): Ditto.
14040
14041 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
14042
14043 * config/i386/avx2intrin.h
14044 (_MM_REDUCE_OPERATOR_BASIC_EPI16): New macro.
14045 (_MM_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
14046 (_MM256_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
14047 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
14048 (_MM_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
14049 (_MM_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
14050 (_MM256_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
14051 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
14052 (_mm_reduce_add_epi16): New instrinsics.
14053 (_mm_reduce_mul_epi16): Ditto.
14054 (_mm_reduce_and_epi16): Ditto.
14055 (_mm_reduce_or_epi16): Ditto.
14056 (_mm_reduce_max_epi16): Ditto.
14057 (_mm_reduce_max_epu16): Ditto.
14058 (_mm_reduce_min_epi16): Ditto.
14059 (_mm_reduce_min_epu16): Ditto.
14060 (_mm256_reduce_add_epi16): Ditto.
14061 (_mm256_reduce_mul_epi16): Ditto.
14062 (_mm256_reduce_and_epi16): Ditto.
14063 (_mm256_reduce_or_epi16): Ditto.
14064 (_mm256_reduce_max_epi16): Ditto.
14065 (_mm256_reduce_max_epu16): Ditto.
14066 (_mm256_reduce_min_epi16): Ditto.
14067 (_mm256_reduce_min_epu16): Ditto.
14068 (_mm_reduce_add_epi8): Ditto.
14069 (_mm_reduce_mul_epi8): Ditto.
14070 (_mm_reduce_and_epi8): Ditto.
14071 (_mm_reduce_or_epi8): Ditto.
14072 (_mm_reduce_max_epi8): Ditto.
14073 (_mm_reduce_max_epu8): Ditto.
14074 (_mm_reduce_min_epi8): Ditto.
14075 (_mm_reduce_min_epu8): Ditto.
14076 (_mm256_reduce_add_epi8): Ditto.
14077 (_mm256_reduce_mul_epi8): Ditto.
14078 (_mm256_reduce_and_epi8): Ditto.
14079 (_mm256_reduce_or_epi8): Ditto.
14080 (_mm256_reduce_max_epi8): Ditto.
14081 (_mm256_reduce_max_epu8): Ditto.
14082 (_mm256_reduce_min_epi8): Ditto.
14083 (_mm256_reduce_min_epu8): Ditto.
14084 * config/i386/avx512vlbwintrin.h:
14085 (_mm_mask_reduce_add_epi16): Ditto.
14086 (_mm_mask_reduce_mul_epi16): Ditto.
14087 (_mm_mask_reduce_and_epi16): Ditto.
14088 (_mm_mask_reduce_or_epi16): Ditto.
14089 (_mm_mask_reduce_max_epi16): Ditto.
14090 (_mm_mask_reduce_max_epu16): Ditto.
14091 (_mm_mask_reduce_min_epi16): Ditto.
14092 (_mm_mask_reduce_min_epu16): Ditto.
14093 (_mm256_mask_reduce_add_epi16): Ditto.
14094 (_mm256_mask_reduce_mul_epi16): Ditto.
14095 (_mm256_mask_reduce_and_epi16): Ditto.
14096 (_mm256_mask_reduce_or_epi16): Ditto.
14097 (_mm256_mask_reduce_max_epi16): Ditto.
14098 (_mm256_mask_reduce_max_epu16): Ditto.
14099 (_mm256_mask_reduce_min_epi16): Ditto.
14100 (_mm256_mask_reduce_min_epu16): Ditto.
14101 (_mm_mask_reduce_add_epi8): Ditto.
14102 (_mm_mask_reduce_mul_epi8): Ditto.
14103 (_mm_mask_reduce_and_epi8): Ditto.
14104 (_mm_mask_reduce_or_epi8): Ditto.
14105 (_mm_mask_reduce_max_epi8): Ditto.
14106 (_mm_mask_reduce_max_epu8): Ditto.
14107 (_mm_mask_reduce_min_epi8): Ditto.
14108 (_mm_mask_reduce_min_epu8): Ditto.
14109 (_mm256_mask_reduce_add_epi8): Ditto.
14110 (_mm256_mask_reduce_mul_epi8): Ditto.
14111 (_mm256_mask_reduce_and_epi8): Ditto.
14112 (_mm256_mask_reduce_or_epi8): Ditto.
14113 (_mm256_mask_reduce_max_epi8): Ditto.
14114 (_mm256_mask_reduce_max_epu8): Ditto.
14115 (_mm256_mask_reduce_min_epi8): Ditto.
14116 (_mm256_mask_reduce_min_epu8): Ditto.
14117
14118 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14119
14120 * common/config/i386/i386-common.cc
14121 (OPTION_MASK_ISA_VPCLMULQDQ_SET):
14122 Add OPTION_MASK_ISA_PCLMUL_SET and OPTION_MASK_ISA_AVX_SET.
14123 (OPTION_MASK_ISA_AVX_UNSET):
14124 Add OPTION_MASK_ISA_VPCLMULQDQ_UNSET.
14125 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
14126 * config/i386/i386.md (vpclmulqdqvl): New.
14127 * config/i386/sse.md (pclmulqdq): Add evex encoding.
14128 * config/i386/vpclmulqdqintrin.h: Remove redudant avx target
14129 push.
14130
14131 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14132
14133 * config/i386/avx512vlbwintrin.h
14134 (_mm_mask_blend_epi16): Remove __OPTIMIZE__ wrapper.
14135 (_mm_mask_blend_epi8): Ditto.
14136 (_mm256_mask_blend_epi16): Ditto.
14137 (_mm256_mask_blend_epi8): Ditto.
14138 * config/i386/avx512vlintrin.h
14139 (_mm256_mask_blend_pd): Ditto.
14140 (_mm256_mask_blend_ps): Ditto.
14141 (_mm256_mask_blend_epi64): Ditto.
14142 (_mm256_mask_blend_epi32): Ditto.
14143 (_mm_mask_blend_pd): Ditto.
14144 (_mm_mask_blend_ps): Ditto.
14145 (_mm_mask_blend_epi64): Ditto.
14146 (_mm_mask_blend_epi32): Ditto.
14147 * config/i386/sse.md (VF_AVX512BWHFBF16): Removed.
14148 (VF_AVX512HFBFVL): Move it before the first usage.
14149 (<avx512>_blendm<mode>): Change iterator from VF_AVX512BWHFBF16
14150 to VF_AVX512HFBFVL.
14151
14152 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14153
14154 * common/config/i386/i386-common.cc
14155 (OPTION_MASK_ISA_AVX512VBMI2_SET): Change OPTION_MASK_ISA_AVX512F_SET
14156 to OPTION_MASK_ISA_AVX512BW_SET.
14157 (OPTION_MASK_ISA_AVX512F_UNSET):
14158 Remove OPTION_MASK_ISA_AVX512VBMI2_UNSET.
14159 (OPTION_MASK_ISA_AVX512BW_UNSET):
14160 Add OPTION_MASK_ISA_AVX512VBMI2_UNSET.
14161 * config/i386/avx512vbmi2intrin.h: Do not push avx512bw.
14162 * config/i386/avx512vbmi2vlintrin.h: Ditto.
14163 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_AVX512BW.
14164 * config/i386/sse.md (VI12_AVX512VLBW): Removed.
14165 (VI12_VI48F_AVX512VLBW): Rename to VI12_VI48F_AVX512VL.
14166 (compress<mode>_mask): Change iterator from VI12_AVX512VLBW to
14167 VI12_AVX512VL.
14168 (compressstore<mode>_mask): Ditto.
14169 (expand<mode>_mask): Ditto.
14170 (expand<mode>_maskz): Ditto.
14171 (*expand<mode>_mask): Change iterator from VI12_VI48F_AVX512VLBW to
14172 VI12_VI48F_AVX512VL.
14173
14174 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14175
14176 * common/config/i386/i386-common.cc
14177 (OPTION_MASK_ISA_AVX512BITALG_SET):
14178 Change OPTION_MASK_ISA_AVX512F_SET
14179 to OPTION_MASK_ISA_AVX512BW_SET.
14180 (OPTION_MASK_ISA_AVX512F_UNSET):
14181 Remove OPTION_MASK_ISA_AVX512BITALG_SET.
14182 (OPTION_MASK_ISA_AVX512BW_UNSET):
14183 Add OPTION_MASK_ISA_AVX512BITALG_SET.
14184 * config/i386/avx512bitalgintrin.h: Do not push avx512bw.
14185 * config/i386/i386-builtin.def:
14186 Remove redundant OPTION_MASK_ISA_AVX512BW.
14187 * config/i386/sse.md (VI1_AVX512VLBW): Removed.
14188 (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>):
14189 Change the iterator from VI1_AVX512VLBW to VI1_AVX512VL.
14190
14191 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14192
14193 * config/i386/i386-expand.cc
14194 (ix86_check_builtin_isa_match): Correct wrong comments.
14195 Add a new macro SHARE_BUILTIN and refactor the current if
14196 clauses to macro.
14197
14198 2023-04-20 Mo, Zewei <zewei.mo@intel.com>
14199
14200 * config/i386/cpuid.h: Open a new section for Extended Features
14201 Leaf (%eax == 7, %ecx == 0) and Extended Features Sub-leaf (%eax == 7,
14202 %ecx == 1).
14203
14204 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
14205
14206 * config/i386/sse.md: Modify insn vperm{i,f}
14207 and vshuf{i,f}.
14208
14209 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
14210
14211 * config/xtensa/xtensa-opts.h: New header.
14212 * config/xtensa/xtensa.h (STRICT_ALIGNMENT): Redefine as
14213 xtensa_strict_align.
14214 * config/xtensa/xtensa.cc (xtensa_option_override): When
14215 -m[no-]strict-align is not specified in the command line set
14216 xtensa_strict_align to 0 if the hardware supports both unaligned
14217 loads and stores or to 1 otherwise.
14218 * config/xtensa/xtensa.opt (mstrict-align): New option.
14219 * doc/invoke.texi (Xtensa Options): Document -m[no-]strict-align.
14220
14221 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
14222
14223 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v4): New
14224 function.
14225
14226 2023-04-19 Andrew Pinski <apinski@marvell.com>
14227
14228 * config/i386/i386.md (*movsicc_noc_zext_1): New pattern.
14229
14230 2023-04-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
14231
14232 * config/riscv/riscv-modes.def (FLOAT_MODE): Add chunk 128 support.
14233 (VECTOR_BOOL_MODE): Ditto.
14234 (ADJUST_NUNITS): Ditto.
14235 (ADJUST_ALIGNMENT): Ditto.
14236 (ADJUST_BYTESIZE): Ditto.
14237 (ADJUST_PRECISION): Ditto.
14238 (RVV_MODES): Ditto.
14239 (VECTOR_MODE_WITH_PREFIX): Ditto.
14240 * config/riscv/riscv-v.cc (ENTRY): Ditto.
14241 (get_vlmul): Ditto.
14242 (get_ratio): Ditto.
14243 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
14244 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
14245 (vbool64_t): Ditto.
14246 (vbool32_t): Ditto.
14247 (vbool16_t): Ditto.
14248 (vbool8_t): Ditto.
14249 (vbool4_t): Ditto.
14250 (vbool2_t): Ditto.
14251 (vbool1_t): Ditto.
14252 (vint8mf8_t): Ditto.
14253 (vuint8mf8_t): Ditto.
14254 (vint8mf4_t): Ditto.
14255 (vuint8mf4_t): Ditto.
14256 (vint8mf2_t): Ditto.
14257 (vuint8mf2_t): Ditto.
14258 (vint8m1_t): Ditto.
14259 (vuint8m1_t): Ditto.
14260 (vint8m2_t): Ditto.
14261 (vuint8m2_t): Ditto.
14262 (vint8m4_t): Ditto.
14263 (vuint8m4_t): Ditto.
14264 (vint8m8_t): Ditto.
14265 (vuint8m8_t): Ditto.
14266 (vint16mf4_t): Ditto.
14267 (vuint16mf4_t): Ditto.
14268 (vint16mf2_t): Ditto.
14269 (vuint16mf2_t): Ditto.
14270 (vint16m1_t): Ditto.
14271 (vuint16m1_t): Ditto.
14272 (vint16m2_t): Ditto.
14273 (vuint16m2_t): Ditto.
14274 (vint16m4_t): Ditto.
14275 (vuint16m4_t): Ditto.
14276 (vint16m8_t): Ditto.
14277 (vuint16m8_t): Ditto.
14278 (vint32mf2_t): Ditto.
14279 (vuint32mf2_t): Ditto.
14280 (vint32m1_t): Ditto.
14281 (vuint32m1_t): Ditto.
14282 (vint32m2_t): Ditto.
14283 (vuint32m2_t): Ditto.
14284 (vint32m4_t): Ditto.
14285 (vuint32m4_t): Ditto.
14286 (vint32m8_t): Ditto.
14287 (vuint32m8_t): Ditto.
14288 (vint64m1_t): Ditto.
14289 (vuint64m1_t): Ditto.
14290 (vint64m2_t): Ditto.
14291 (vuint64m2_t): Ditto.
14292 (vint64m4_t): Ditto.
14293 (vuint64m4_t): Ditto.
14294 (vint64m8_t): Ditto.
14295 (vuint64m8_t): Ditto.
14296 (vfloat32mf2_t): Ditto.
14297 (vfloat32m1_t): Ditto.
14298 (vfloat32m2_t): Ditto.
14299 (vfloat32m4_t): Ditto.
14300 (vfloat32m8_t): Ditto.
14301 (vfloat64m1_t): Ditto.
14302 (vfloat64m2_t): Ditto.
14303 (vfloat64m4_t): Ditto.
14304 (vfloat64m8_t): Ditto.
14305 * config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
14306 * config/riscv/riscv.cc (riscv_legitimize_poly_move): Ditto.
14307 (riscv_convert_vector_bits): Ditto.
14308 * config/riscv/riscv.md:
14309 * config/riscv/vector-iterators.md:
14310 * config/riscv/vector.md
14311 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
14312 (@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
14313 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
14314 (@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
14315 (@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
14316 (@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
14317 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
14318 (@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
14319 (@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
14320
14321 2023-04-19 Pan Li <pan2.li@intel.com>
14322
14323 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
14324 Align IOR (A | (~A) -> -1) optimization MODE_CLASS condition to AND.
14325
14326 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
14327
14328 PR target/78904
14329 PR target/78952
14330 * config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64): New insn pattern.
14331 (*cmpqi_ext<mode>_1): Use nonimmediate_operand predicate
14332 for operand 0. Use any_extract code iterator.
14333 (*cmpqi_ext<mode>_1 peephole2): New peephole2 pattern.
14334 (*cmpqi_ext<mode>_2): Use any_extract code iterator.
14335 (*cmpqi_ext<mode>_3_mem_rex64): New insn pattern.
14336 (*cmpqi_ext<mode>_1): Use general_operand predicate
14337 for operand 1. Use any_extract code iterator.
14338 (*cmpqi_ext<mode>_3 peephole2): New peephole2 pattern.
14339 (*cmpqi_ext<mode>_4): Use any_extract code iterator.
14340
14341 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14342
14343 * config/aarch64/aarch64-simd.md (aarch64_saddw2<mode>): Delete.
14344 (aarch64_uaddw2<mode>): Delete.
14345 (aarch64_ssubw2<mode>): Delete.
14346 (aarch64_usubw2<mode>): Delete.
14347 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>): New define_expand.
14348
14349 2023-04-19 Richard Biener <rguenther@suse.de>
14350
14351 * tree-ssa-structalias.cc (do_ds_constraint): Use
14352 solve_add_graph_edge.
14353
14354 2023-04-19 Richard Biener <rguenther@suse.de>
14355
14356 * tree-ssa-structalias.cc (solve_add_graph_edge): New function,
14357 split out from ...
14358 (do_sd_constraint): ... here.
14359
14360 2023-04-19 Richard Biener <rguenther@suse.de>
14361
14362 * tree-cfg.cc (gimple_can_merge_blocks_p): Remove condition
14363 rejecting the merge when A contains only a non-local label.
14364
14365 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
14366
14367 * rtl.h (VIRTUAL_REGISTER_P): New predicate.
14368 (VIRTUAL_REGISTER_NUM_P): Ditto.
14369 (REGNO_PTR_FRAME_P): Use VIRTUAL_REGISTER_NUM_P predicate.
14370 * expr.cc (force_operand): Use VIRTUAL_REGISTER_P predicate.
14371 * function.cc (instantiate_decl_rtl): Ditto.
14372 * rtlanal.cc (rtx_addr_can_trap_p_1): Ditto.
14373 (nonzero_address_p): Ditto.
14374 (refers_to_regno_p): Use VIRTUAL_REGISTER_NUM_P predicate.
14375
14376 2023-04-19 Aldy Hernandez <aldyh@redhat.com>
14377
14378 * value-range.h (Value_Range::Value_Range): Avoid pointer sharing.
14379
14380 2023-04-19 Richard Biener <rguenther@suse.de>
14381
14382 * system.h (auto_mpz::operator->()): New.
14383 * realmpfr.h (auto_mpfr::operator->()): New.
14384 * builtins.cc (do_mpfr_lgamma_r): Use auto_mpfr.
14385 * real.cc (real_from_string): Likewise.
14386 (dconst_e_ptr): Likewise.
14387 (dconst_sqrt2_ptr): Likewise.
14388 * tree-ssa-loop-niter.cc (refine_value_range_using_guard):
14389 Use auto_mpz.
14390 (bound_difference_of_offsetted_base): Likewise.
14391 (number_of_iterations_ne): Likewise.
14392 (number_of_iterations_lt_to_ne): Likewise.
14393 * ubsan.cc: Include realmpfr.h.
14394 (ubsan_instrument_float_cast): Use auto_mpfr.
14395
14396 2023-04-19 Richard Biener <rguenther@suse.de>
14397
14398 * tree-ssa-structalias.cc (solve_graph): Remove self-copy
14399 edges, remove edges from escaped after special-casing them.
14400
14401 2023-04-19 Richard Biener <rguenther@suse.de>
14402
14403 * tree-ssa-structalias.cc (do_sd_constraint): Fixup escape
14404 special casing.
14405
14406 2023-04-19 Richard Biener <rguenther@suse.de>
14407
14408 * tree-ssa-structalias.cc (do_sd_constraint): Do not write
14409 to the LHS varinfo solution member.
14410
14411 2023-04-19 Richard Biener <rguenther@suse.de>
14412
14413 * tree-ssa-structalias.cc (topo_visit): Look at the real
14414 destination of edges.
14415
14416 2023-04-19 Richard Biener <rguenther@suse.de>
14417
14418 PR tree-optimization/44794
14419 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
14420 If an epilogue loop is required set its iteration upper bound.
14421
14422 2023-04-19 Xi Ruoyao <xry111@xry111.site>
14423
14424 PR target/109465
14425 * config/loongarch/loongarch-protos.h
14426 (loongarch_expand_block_move): Add a parameter as alignment RTX.
14427 * config/loongarch/loongarch.h:
14428 (LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER): Remove.
14429 (LARCH_MAX_MOVE_BYTES_STRAIGHT): Remove.
14430 (LARCH_MAX_MOVE_OPS_PER_LOOP_ITER): Define.
14431 (LARCH_MAX_MOVE_OPS_STRAIGHT): Define.
14432 (MOVE_RATIO): Use LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
14433 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
14434 * config/loongarch/loongarch.cc (loongarch_expand_block_move):
14435 Take the alignment from the parameter, but set it to
14436 UNITS_PER_WORD if !TARGET_STRICT_ALIGN. Limit the length of
14437 straight-line implementation with LARCH_MAX_MOVE_OPS_STRAIGHT
14438 instead of LARCH_MAX_MOVE_BYTES_STRAIGHT.
14439 (loongarch_block_move_straight): When there are left-over bytes,
14440 half the mode size instead of falling back to byte mode at once.
14441 (loongarch_block_move_loop): Limit the length of loop body with
14442 LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
14443 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
14444 * config/loongarch/loongarch.md (cpymemsi): Pass the alignment
14445 to loongarch_expand_block_move.
14446
14447 2023-04-19 Xi Ruoyao <xry111@xry111.site>
14448
14449 * config/loongarch/loongarch.cc
14450 (loongarch_setup_incoming_varargs): Don't save more GARs than
14451 cfun->va_list_gpr_size / UNITS_PER_WORD.
14452
14453 2023-04-19 Richard Biener <rguenther@suse.de>
14454
14455 * tree-ssa-loop-manip.cc (determine_exit_conditions): Fix
14456 no epilogue condition.
14457
14458 2023-04-19 Richard Biener <rguenther@suse.de>
14459
14460 * gimple.h (gimple_assign_load): Outline...
14461 * gimple.cc (gimple_assign_load): ... here. Avoid
14462 get_base_address and instead just strip the outermost
14463 handled component, treating a remaining handled component
14464 as load.
14465
14466 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14467
14468 * config/aarch64/aarch64-simd-builtins.def (neg): Delete builtins
14469 definition.
14470 * config/aarch64/arm_fp16.h (vnegh_f16): Reimplement using normal negation.
14471
14472 2023-04-19 Jakub Jelinek <jakub@redhat.com>
14473
14474 PR tree-optimization/109011
14475 * tree-vect-patterns.cc (vect_recog_popcount_pattern): Rename to ...
14476 (vect_recog_popcount_clz_ctz_ffs_pattern): ... this. Handle also
14477 CLZ, CTZ and FFS. Remove vargs variable, use
14478 gimple_build_call_internal rather than gimple_build_call_internal_vec.
14479 (vect_vect_recog_func_ptrs): Adjust popcount entry.
14480
14481 2023-04-19 Jakub Jelinek <jakub@redhat.com>
14482
14483 PR target/109040
14484 * dse.cc (replace_read): If read_reg is a SUBREG of a word mode
14485 REG, for WORD_REGISTER_OPERATIONS copy SUBREG_REG of it into
14486 a new REG rather than the SUBREG.
14487
14488 2023-04-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14489
14490 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
14491 New pattern.
14492
14493 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14494
14495 PR target/108840
14496 * config/aarch64/aarch64.cc (aarch64_rtx_costs): Merge ASHIFT and
14497 ROTATE, ROTATERT, LSHIFTRT, ASHIFTRT cases. Handle subregs in op1.
14498
14499 2023-04-19 Richard Biener <rguenther@suse.de>
14500
14501 PR rtl-optimization/109237
14502 * cse.cc (insn_live_p): Remove NEXT_INSN walk, instead check
14503 TREE_VISITED on INSN_VAR_LOCATION_DECL.
14504 (delete_trivially_dead_insns): Maintain TREE_VISITED on
14505 active debug bind INSN_VAR_LOCATION_DECL.
14506
14507 2023-04-19 Richard Biener <rguenther@suse.de>
14508
14509 PR rtl-optimization/109237
14510 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
14511
14512 2023-04-19 Christophe Lyon <christophe.lyon@arm.com>
14513
14514 * doc/install.texi (enable-decimal-float): Add AArch64.
14515
14516 2023-04-19 liuhongt <hongtao.liu@intel.com>
14517
14518 PR rtl-optimization/109351
14519 * ira.cc (setup_class_subset_and_memory_move_costs): Check
14520 hard_regno_mode_ok before setting lowest memory move cost for
14521 the mode with different reg classes.
14522
14523 2023-04-18 Jason Merrill <jason@redhat.com>
14524
14525 * doc/invoke.texi: Remove stray @gol.
14526
14527 2023-04-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14528
14529 * ifcvt.cc (cond_move_process_if_block): Consider the result of
14530 targetm.noce_conversion_profitable_p() when replacing the original
14531 sequence with the converted one.
14532
14533 2023-04-18 Mark Harmstone <mark@harmstone.com>
14534
14535 * common.opt (gcodeview): Add new option.
14536 * gcc.cc (driver_handle_option); Handle OPT_gcodeview.
14537 * opts.cc (command_handle_option): Similarly.
14538 * doc/invoke.texi: Add documentation for -gcodeview.
14539
14540 2023-04-18 Andrew Pinski <apinski@marvell.com>
14541
14542 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove declaration.
14543 (make_pass_phiopt): Make execute out of line.
14544 (tree_ssa_cs_elim): Move code into ...
14545 (pass_cselim::execute): here.
14546
14547 2023-04-18 Sam James <sam@gentoo.org>
14548
14549 * system.h: Drop unused INCLUDE_PTHREAD_H.
14550
14551 2023-04-18 Kevin Lee <kevinl@rivosinc.com>
14552
14553 * tree-vect-data-refs.cc (vect_grouped_store_supported): Add new
14554 condition.
14555
14556 2023-04-18 Sinan Lin <sinan.lin@linux.alibaba.com>
14557
14558 * config/riscv/bitmanip.md (rotr<mode>3 expander): Enable for ZBKB.
14559 (bswapdi2, bswapsi2): Similarly.
14560
14561 2023-04-18 Uros Bizjak <ubizjak@gmail.com>
14562
14563 PR target/94908
14564 * config/i386/i386-builtin.def (__builtin_ia32_insertps128):
14565 Use CODE_FOR_sse4_1_insertps_v4sf.
14566 * config/i386/i386-expand.cc (expand_vec_perm_insertps): New.
14567 (expand_vec_perm_1): Call expand_vec_per_insertps.
14568 * config/i386/i386.md ("unspec"): Declare UNSPEC_INSERTPS here.
14569 * config/i386/mmx.md (mmxscalarmode): New mode attribute.
14570 (@sse4_1_insertps_<mode>): New insn pattern.
14571 * config/i386/sse.md (@sse4_1_insertps_<mode>): Macroize insn
14572 pattern from sse4_1_insertps using VI4F_128 mode iterator.
14573
14574 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14575
14576 * value-range.cc (gt_ggc_mx): New.
14577 (gt_pch_nx): New.
14578 * value-range.h (class vrange): Add GTY marker.
14579 (class frange): Same.
14580 (gt_ggc_mx): Remove.
14581 (gt_pch_nx): Remove.
14582
14583 2023-04-18 Victor L. Do Nascimento <victor.donascimento@arm.com>
14584
14585 * lra-constraints.cc (constraint_unique): New.
14586 (process_address_1): Apply constraint_unique test.
14587 * recog.cc (constrain_operands): Allow relaxed memory
14588 constaints.
14589
14590 2023-04-18 Kito Cheng <kito.cheng@sifive.com>
14591
14592 * doc/extend.texi (Target Builtins): Add RISC-V Vector
14593 Intrinsics.
14594 (RISC-V Vector Intrinsics): Document GCC implemented which
14595 version of RISC-V vector intrinsics and its reference.
14596
14597 2023-04-18 Richard Biener <rguenther@suse.de>
14598
14599 PR middle-end/108786
14600 * bitmap.h (bitmap_clear_first_set_bit): New.
14601 * bitmap.cc (bitmap_first_set_bit_worker): Rename from
14602 bitmap_first_set_bit and add optional clearing of the bit.
14603 (bitmap_first_set_bit): Wrap bitmap_first_set_bit_worker.
14604 (bitmap_clear_first_set_bit): Likewise.
14605 * df-core.cc (df_worklist_dataflow_doublequeue): Use
14606 bitmap_clear_first_set_bit.
14607 * graphite-scop-detection.cc (scop_detection::merge_sese):
14608 Likewise.
14609 * sanopt.cc (sanitize_asan_mark_unpoison): Likewise.
14610 (sanitize_asan_mark_poison): Likewise.
14611 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise.
14612 * tree-into-ssa.cc (rewrite_blocks): Likewise.
14613 * tree-ssa-dce.cc (simple_dce_from_worklist): Likewise.
14614 * tree-ssa-sccvn.cc (do_rpo_vn_1): Likewise.
14615
14616 2023-04-18 Richard Biener <rguenther@suse.de>
14617
14618 * tree-ssa-structalias.cc (dump_sa_stats): Split out from...
14619 (dump_sa_points_to_info): ... this function.
14620 (compute_points_to_sets): Guard large dumps with TDF_DETAILS,
14621 and call dump_sa_stats guarded with TDF_STATS.
14622 (ipa_pta_execute): Likewise.
14623 (compute_may_aliases): Guard dump_alias_info with
14624 TDF_DETAILS|TDF_ALIAS.
14625
14626 2023-04-18 Andrew Pinski <apinski@marvell.com>
14627
14628 * tree-ssa-phiopt.cc (gimple_simplify_phiopt): Dump
14629 the expression that is being tried when TDF_FOLDING
14630 is true.
14631 (phiopt_worker::match_simplify_replacement): Dump
14632 the sequence which was created by gimple_simplify_phiopt
14633 when TDF_FOLDING is true.
14634
14635 2023-04-18 Andrew Pinski <apinski@marvell.com>
14636
14637 * tree-ssa-phiopt.cc (match_simplify_replacement):
14638 Simplify code that does the movement slightly.
14639
14640 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14641
14642 * config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
14643 define_expand.
14644 (rev16<mode>2): Rename to...
14645 (aarch64_rev16<mode>2_alt1): ... This.
14646 (rev16<mode>2_alt): Rename to...
14647 (*aarch64_rev16<mode>2_alt2): ... This.
14648
14649 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14650
14651 * emit-rtl.cc (init_emit_once): Initialize dconstm0.
14652 * gimple-range-op.cc (class cfn_signbit): Remove dconstm0
14653 declaration.
14654 * range-op-float.cc (zero_range): Use dconstm0.
14655 (zero_to_inf_range): Same.
14656 * real.h (dconstm0): New.
14657 * value-range.cc (frange::flush_denormals_to_zero): Use dconstm0.
14658 (frange::set_zero): Do not declare dconstm0.
14659
14660 2023-04-18 Richard Biener <rguenther@suse.de>
14661
14662 * system.h (class auto_mpz): New,
14663 * realmpfr.h (class auto_mpfr): Likewise.
14664 * fold-const-call.cc (do_mpfr_arg1): Use auto_mpfr.
14665 (do_mpfr_arg2): Likewise.
14666 * tree-ssa-loop-niter.cc (bound_difference): Use auto_mpz;
14667
14668 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14669
14670 * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_intrinsics): Take
14671 builtin flags from intrinsic data rather than hardcoded FLAG_AUTO_FP.
14672
14673 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14674
14675 * value-range.cc (frange::operator==): Adjust for NAN.
14676 (range_tests_nan): Remove some NAN tests.
14677
14678 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14679
14680 * inchash.cc (hash::add_real_value): New.
14681 * inchash.h (class hash): Add add_real_value.
14682 * value-range.cc (add_vrange): New.
14683 * value-range.h (inchash::add_vrange): New.
14684
14685 2023-04-18 Richard Biener <rguenther@suse.de>
14686
14687 PR tree-optimization/109539
14688 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
14689 Re-implement pointer relatedness for PHIs.
14690
14691 2023-04-18 Andrew Stubbs <ams@codesourcery.com>
14692
14693 * config/gcn/gcn-valu.md (SV_SFDF): New iterator.
14694 (SV_FP): New iterator.
14695 (scalar_mode, SCALAR_MODE): Add identity mappings for scalar modes.
14696 (recip<mode>2): Unify the two patterns using SV_FP.
14697 (div_scale<mode><exec_vcc>): New insn.
14698 (div_fmas<mode><exec>): New insn.
14699 (div_fixup<mode><exec>): New insn.
14700 (div<mode>3): Unify the two expanders and rewrite using hardfp.
14701 * config/gcn/gcn.cc (gcn_md_reorg): Support "vccwait" attribute.
14702 * config/gcn/gcn.md (unspec): Add UNSPEC_DIV_SCALE, UNSPEC_DIV_FMAS,
14703 and UNSPEC_DIV_FIXUP.
14704 (vccwait): New attribute.
14705
14706 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14707
14708 * config/aarch64/aarch64.cc (aarch64_validate_mcpu): Add hint to use -march
14709 if the argument matches that.
14710
14711 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14712
14713 * config/aarch64/atomics.md
14714 (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
14715 Use SD_HSDI for destination mode iterator.
14716
14717 2023-04-18 Jin Ma <jinma@linux.alibaba.com>
14718
14719 * common/config/riscv/riscv-common.cc (multi_letter_subset_rank): Swap the order
14720 of z-extensions and s-extensions.
14721 (riscv_subset_list::parse): Likewise.
14722
14723 2023-04-18 Jakub Jelinek <jakub@redhat.com>
14724
14725 PR tree-optimization/109240
14726 * match.pd (fneg/fadd): Rewrite such that it handles both plus as
14727 first vec_perm operand and minus as second using fneg/fadd and
14728 minus as first vec_perm operand and plus as second using fneg/fsub.
14729
14730 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14731
14732 * data-streamer.cc (bp_pack_real_value): New.
14733 (bp_unpack_real_value): New.
14734 * data-streamer.h (bp_pack_real_value): New.
14735 (bp_unpack_real_value): New.
14736 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields): Use
14737 bp_unpack_real_value.
14738 * tree-streamer-out.cc (pack_ts_real_cst_value_fields): Use
14739 bp_pack_real_value.
14740
14741 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14742
14743 * wide-int.h (WIDE_INT_MAX_HWIS): New.
14744 (class fixed_wide_int_storage): Use it.
14745 (trailing_wide_ints <N>::set_precision): Use it.
14746 (trailing_wide_ints <N>::extra_size): Use it.
14747
14748 2023-04-18 Xi Ruoyao <xry111@xry111.site>
14749
14750 * config/loongarch/loongarch-protos.h
14751 (loongarch_addu16i_imm12_operand_p): New function prototype.
14752 (loongarch_split_plus_constant): Likewise.
14753 * config/loongarch/loongarch.cc
14754 (loongarch_addu16i_imm12_operand_p): New function.
14755 (loongarch_split_plus_constant): Likewise.
14756 * config/loongarch/loongarch.h (ADDU16I_OPERAND): New macro.
14757 (DUAL_IMM12_OPERAND): Likewise.
14758 (DUAL_ADDU16I_OPERAND): Likewise.
14759 * config/loongarch/constraints.md (La, Lb, Lc, Ld, Le): New
14760 constraint.
14761 * config/loongarch/predicates.md (const_dual_imm12_operand): New
14762 predicate.
14763 (const_addu16i_operand): Likewise.
14764 (const_addu16i_imm12_di_operand): Likewise.
14765 (const_addu16i_imm12_si_operand): Likewise.
14766 (plus_di_operand): Likewise.
14767 (plus_si_operand): Likewise.
14768 (plus_si_extend_operand): Likewise.
14769 * config/loongarch/loongarch.md (add<mode>3): Convert to
14770 define_insn_and_split. Use plus_<mode>_operand predicate
14771 instead of arith_operand. Add alternatives for La, Lb, Lc, Ld,
14772 and Le constraints.
14773 (*addsi3_extended): Convert to define_insn_and_split. Use
14774 plus_si_extend_operand instead of arith_operand. Add
14775 alternatives for La and Le alternatives.
14776
14777 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14778
14779 * value-range.h (Value_Range::Value_Range): New.
14780 (Value_Range::contains_p): New.
14781
14782 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14783
14784 * value-range.h (class vrange): Make m_discriminator const.
14785 (class irange): Make m_max_ranges const. Adjust constructors
14786 accordingly.
14787 (class unsupported_range): Construct vrange appropriately.
14788 (class frange): Same.
14789
14790 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
14791
14792 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove the macro
14793 definition.
14794
14795 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
14796
14797 * doc/extend.texi: Add section for LoongArch Base Built-in functions.
14798
14799 2023-04-18 Fei Gao <gaofei@eswincomputing.com>
14800
14801 * config/riscv/riscv.cc (riscv_first_stack_step): Make codes more
14802 readable.
14803 (riscv_expand_epilogue): Likewise.
14804
14805 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
14806
14807 * config/riscv/riscv.cc (riscv_expand_prologue): Consider save-restore in
14808 stack allocation.
14809 (riscv_expand_epilogue): Consider save-restore in stack deallocation.
14810
14811 2023-04-17 Andrew Pinski <apinski@marvell.com>
14812
14813 * tree-ssa-phiopt.cc (gate_hoist_loads): Remove
14814 prototype.
14815
14816 2023-04-17 Aldy Hernandez <aldyh@redhat.com>
14817
14818 * gimple-ssa-warn-alloca.cc (pass_walloca::execute): Do not export
14819 global ranges.
14820
14821 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
14822
14823 * config/riscv/riscv.cc (riscv_first_stack_step): Add a new function
14824 parameter remaining_size.
14825 (riscv_compute_frame_info): Adapt new riscv_first_stack_step interface.
14826 (riscv_expand_prologue): Likewise.
14827 (riscv_expand_epilogue): Likewise.
14828
14829 2023-04-17 Feng Wang <wangfeng@eswincomputing.com>
14830
14831 * config/riscv/bitmanip.md (rotrsi3_sext): Support generating
14832 roriw for constant counts.
14833 * rtl.h (reverse_rotate_by_imm_p): Add function declartion
14834 * simplify-rtx.cc (reverse_rotate_by_imm_p): New function.
14835 (simplify_context::simplify_binary_operation_1): Use it.
14836 * expmed.cc (expand_shift_1): Likewise.
14837
14838 2023-04-17 Martin Jambor <mjambor@suse.cz>
14839
14840 PR ipa/107769
14841 PR ipa/109318
14842 * cgraph.h (symtab_node::find_reference): Add parameter use_type.
14843 * ipa-prop.h (ipa_pass_through_data): New flag refdesc_decremented.
14844 (ipa_zap_jf_refdesc): New function.
14845 (ipa_get_jf_pass_through_refdesc_decremented): Likewise.
14846 (ipa_set_jf_pass_through_refdesc_decremented): Likewise.
14847 * ipa-cp.cc (ipcp_discover_new_direct_edges): Provide a value for
14848 the new parameter of find_reference.
14849 (adjust_references_in_caller): Likewise. Make sure the constant jump
14850 function is not used to decrement a refdec counter again. Only
14851 decrement refdesc counters when the pass_through jump function allows
14852 it. Added a detailed dump when decrementing refdesc counters.
14853 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Dump new flag.
14854 (ipa_set_jf_simple_pass_through): Initialize the new flag.
14855 (ipa_set_jf_unary_pass_through): Likewise.
14856 (ipa_set_jf_arith_pass_through): Likewise.
14857 (remove_described_reference): Provide a value for the new parameter of
14858 find_reference.
14859 (update_jump_functions_after_inlining): Zap refdesc of new jfunc if
14860 the previous pass_through had a flag mandating that we do so.
14861 (propagate_controlled_uses): Likewise. Only decrement refdesc
14862 counters when the pass_through jump function allows it.
14863 (ipa_edge_args_sum_t::duplicate): Provide a value for the new
14864 parameter of find_reference.
14865 (ipa_write_jump_function): Assert the new flag does not have to be
14866 streamed.
14867 * symtab.cc (symtab_node::find_reference): Add parameter use_type, use
14868 it in searching.
14869
14870 2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
14871 Di Zhao <di.zhao@amperecomputing.com>
14872
14873 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
14874 Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
14875 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
14876 Check for the above tuning option when processing loads.
14877
14878 2023-04-17 Richard Biener <rguenther@suse.de>
14879
14880 PR tree-optimization/109524
14881 * tree-vrp.cc (remove_unreachable::m_list): Change to a
14882 vector of pairs of block indices.
14883 (remove_unreachable::maybe_register_block): Adjust.
14884 (remove_unreachable::remove_and_update_globals): Likewise.
14885 Deal with removed blocks.
14886
14887 2023-04-16 Jeff Law <jlaw@ventanamicro>
14888
14889 PR target/109508
14890 * config/riscv/riscv.cc (riscv_expand_conditional_move): For
14891 TARGET_SFB_ALU, force the true arm into a register.
14892
14893 2023-04-15 John David Anglin <danglin@gcc.gnu.org>
14894
14895 PR target/104989
14896 * config/pa/pa-protos.h (pa_function_arg_size): Update prototype.
14897 * config/pa/pa.cc (pa_function_arg): Return NULL_RTX if argument
14898 size is zero.
14899 (pa_arg_partial_bytes): Don't call pa_function_arg_size twice.
14900 (pa_function_arg_size): Change return type to int. Return zero
14901 for arguments larger than 1 GB. Update comments.
14902
14903 2023-04-15 Jakub Jelinek <jakub@redhat.com>
14904
14905 PR tree-optimization/109154
14906 * tree-if-conv.cc (predicate_scalar_phi): For complex PHIs, emit just
14907 args_len - 1 COND_EXPRs rather than args_len. Formatting fix.
14908
14909 2023-04-15 Jason Merrill <jason@redhat.com>
14910
14911 PR c++/109514
14912 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
14913 Overhaul lhs_ref.ref analysis.
14914
14915 2023-04-14 Richard Biener <rguenther@suse.de>
14916
14917 PR tree-optimization/109502
14918 * tree-vect-stmts.cc (vectorizable_assignment): Fix
14919 check for conversion between mask and non-mask types.
14920
14921 2023-04-14 Jeff Law <jlaw@ventanamicro.com>
14922 Jakub Jelinek <jakub@redhat.com>
14923
14924 PR target/108947
14925 PR target/109040
14926 * combine.cc (simplify_and_const_int_1): Compute nonzero_bits in
14927 word_mode rather than mode if WORD_REGISTER_OPERATIONS and mode is
14928 smaller than word_mode.
14929 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
14930 <case AND>: Likewise.
14931
14932 2023-04-14 Jakub Jelinek <jakub@redhat.com>
14933
14934 * loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
14935 of GEN_INT.
14936
14937 2023-04-13 Andrew MacLeod <amacleod@redhat.com>
14938
14939 PR tree-optimization/108139
14940 PR tree-optimization/109462
14941 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Remove
14942 equivalency check for PHI nodes.
14943 * gimple-range-fold.cc (fold_using_range::range_of_phi): Ensure def
14944 does not dominate single-arg equivalency edges.
14945
14946 2023-04-13 Richard Sandiford <richard.sandiford@arm.com>
14947
14948 PR target/108910
14949 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
14950 not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
14951
14952 2023-04-13 Richard Biener <rguenther@suse.de>
14953
14954 PR tree-optimization/109491
14955 * tree-ssa-sccvn.cc (expressions_equal_p): Restore the
14956 NULL operands test.
14957
14958 2023-04-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
14959
14960 PR target/109479
14961 * config/riscv/riscv-vector-builtins-types.def (vint8mf8_t): Fix predicate.
14962 (vint16mf4_t): Ditto.
14963 (vint32mf2_t): Ditto.
14964 (vint64m1_t): Ditto.
14965 (vint64m2_t): Ditto.
14966 (vint64m4_t): Ditto.
14967 (vint64m8_t): Ditto.
14968 (vuint8mf8_t): Ditto.
14969 (vuint16mf4_t): Ditto.
14970 (vuint32mf2_t): Ditto.
14971 (vuint64m1_t): Ditto.
14972 (vuint64m2_t): Ditto.
14973 (vuint64m4_t): Ditto.
14974 (vuint64m8_t): Ditto.
14975 (vfloat32mf2_t): Ditto.
14976 (vbool64_t): Ditto.
14977 * config/riscv/riscv-vector-builtins.cc (register_builtin_type): Add comments.
14978 (register_vector_type): Ditto.
14979 (check_required_extensions): Fix condition.
14980 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ZVE64): Remove it.
14981 (RVV_REQUIRE_ELEN_64): New define.
14982 (RVV_REQUIRE_MIN_VLEN_64): Ditto.
14983 * config/riscv/riscv-vector-switch.def (TARGET_VECTOR_FP32): Remove it.
14984 (TARGET_VECTOR_FP64): Ditto.
14985 (ENTRY): Fix predicate.
14986 * config/riscv/vector-iterators.md: Fix predicate.
14987
14988 2023-04-12 Jakub Jelinek <jakub@redhat.com>
14989
14990 PR tree-optimization/109410
14991 * tree-ssa-reassoc.cc (build_and_add_sum): Split edge from entry
14992 block if first statement of the function is a call to returns_twice
14993 function.
14994
14995 2023-04-12 Jakub Jelinek <jakub@redhat.com>
14996
14997 PR target/109458
14998 * config/i386/i386.cc: Include rtl-error.h.
14999 (ix86_print_operand): For z modifier warning, use warning_for_asm
15000 if this_is_asm_operands. For Z modifier errors, use %c and code
15001 instead of hardcoded Z.
15002
15003 2023-04-12 Costas Argyris <costas.argyris@gmail.com>
15004
15005 * config/i386/x-mingw32-utf8: Remove extrataneous $@
15006
15007 2023-04-12 Andrew MacLeod <amacleod@redhat.com>
15008
15009 PR tree-optimization/109462
15010 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't
15011 check for equivalences if NAME is a phi node.
15012
15013 2023-04-12 Richard Biener <rguenther@suse.de>
15014
15015 PR tree-optimization/109473
15016 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
15017 Convert scalar result to the computation type before performing
15018 the reduction adjustment.
15019
15020 2023-04-12 Richard Biener <rguenther@suse.de>
15021
15022 PR tree-optimization/109469
15023 * tree-vect-slp.cc (vect_slp_function): Skip region starts with
15024 a returns-twice call.
15025
15026 2023-04-12 Richard Biener <rguenther@suse.de>
15027
15028 PR tree-optimization/109434
15029 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly
15030 handle possibly throwing calls when processing the LHS
15031 and may-defs are not OK.
15032
15033 2023-04-11 Lin Sinan <mynameisxiaou@gmail.com>
15034
15035 * config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
15036 predicate to avoid splitting arith constants.
15037
15038 2023-04-11 Yanzhang Wang <yanzhang.wang@intel.com>
15039 Pan Li <pan2.li@intel.com>
15040 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15041 Kito Cheng <kito.cheng@sifive.com>
15042
15043 PR target/109104
15044 * config/riscv/riscv-protos.h (emit_hard_vlmax_vsetvl): New.
15045 * config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): New.
15046 (emit_vlmax_vsetvl): Use emit_hard_vlmax_vsetvl.
15047 * config/riscv/riscv.cc (vector_zero_call_used_regs): New.
15048 (riscv_zero_call_used_regs): New.
15049 (TARGET_ZERO_CALL_USED_REGS): New.
15050
15051 2023-04-11 Martin Liska <mliska@suse.cz>
15052
15053 PR driver/108241
15054 * opts.cc (finish_options): Drop also
15055 x_flag_var_tracking_assignments.
15056
15057 2023-04-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
15058
15059 PR tree-optimization/108888
15060 * tree-if-conv.cc (predicate_statements): Fix gimple call check.
15061
15062 2023-04-11 Haochen Gui <guihaoc@gcc.gnu.org>
15063
15064 PR target/108812
15065 * config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
15066 (vsx_sign_extend_v16qi_<mode>): ... this.
15067 (vsx_sign_extend_hi_<mode>): Rename to...
15068 (vsx_sign_extend_v8hi_<mode>): ... this.
15069 (vsx_sign_extend_si_v2di): Rename to...
15070 (vsx_sign_extend_v4si_v2di): ... this.
15071 (vsignextend_qi_<mode>): Remove.
15072 (vsignextend_hi_<mode>): Remove.
15073 (vsignextend_si_v2di): Remove.
15074 (vsignextend_v2di_v1ti): Remove.
15075 (*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
15076 gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
15077 with gen_vsx_sign_extend_v16qi_v4si.
15078 * config/rs6000/rs6000.md (split for DI constant generation):
15079 Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
15080 (split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
15081 with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
15082 with gen_vsx_sign_extend_v16qi_si.
15083 * config/rs6000/rs6000-builtins.def (__builtin_altivec_vsignextsb2d):
15084 Set bif-pattern to vsx_sign_extend_v16qi_v2di.
15085 (__builtin_altivec_vsignextsb2w): Set bif-pattern to
15086 vsx_sign_extend_v16qi_v4si.
15087 (__builtin_altivec_visgnextsh2d): Set bif-pattern to
15088 vsx_sign_extend_v8hi_v2di.
15089 (__builtin_altivec_vsignextsh2w): Set bif-pattern to
15090 vsx_sign_extend_v8hi_v4si.
15091 (__builtin_altivec_vsignextsw2d): Set bif-pattern to
15092 vsx_sign_extend_si_v2di.
15093 (__builtin_altivec_vsignext): Set bif-pattern to
15094 vsx_sign_extend_v2di_v1ti.
15095 * config/rs6000/rs6000-builtin.cc (lxvrse_expand_builtin): Replace
15096 gen_vsx_sign_extend_qi_v2di with gen_vsx_sign_extend_v16qi_v2di,
15097 gen_vsx_sign_extend_hi_v2di with gen_vsx_sign_extend_v8hi_v2di and
15098 gen_vsx_sign_extend_si_v2di with gen_vsx_sign_extend_v4si_v2di.
15099
15100 2023-04-10 Michael Meissner <meissner@linux.ibm.com>
15101
15102 PR target/70243
15103 * config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
15104 (vsx_nfmsv4sf4): Do not generate vnmsubfp.
15105
15106 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
15107
15108 * config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
15109
15110 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
15111
15112 * common/config/i386/cpuinfo.h (get_available_features):
15113 Detect AMX-COMPLEX.
15114 * common/config/i386/i386-common.cc
15115 (OPTION_MASK_ISA2_AMX_COMPLEX_SET,
15116 OPTION_MASK_ISA2_AMX_COMPLEX_UNSET): New.
15117 (ix86_handle_option): Handle -mamx-complex.
15118 * common/config/i386/i386-cpuinfo.h (enum processor_features):
15119 Add FEATURE_AMX_COMPLEX.
15120 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
15121 amx-complex.
15122 * config.gcc: Add amxcomplexintrin.h.
15123 * config/i386/cpuid.h (bit_AMX_COMPLEX): New.
15124 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
15125 __AMX_COMPLEX__.
15126 * config/i386/i386-isa.def (AMX_COMPLEX): Add DEF_PTA(AMX_COMPLEX).
15127 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
15128 Handle amx-complex.
15129 * config/i386/i386.opt: Add option -mamx-complex.
15130 * config/i386/immintrin.h: Include amxcomplexintrin.h.
15131 * doc/extend.texi: Document amx-complex.
15132 * doc/invoke.texi: Document -mamx-complex.
15133 * doc/sourcebuild.texi: Document target amx-complex.
15134 * config/i386/amxcomplexintrin.h: New file.
15135
15136 2023-04-08 Jakub Jelinek <jakub@redhat.com>
15137
15138 PR tree-optimization/109392
15139 * tree-vect-generic.cc (tree_vec_extract): Handle failure
15140 of maybe_push_res_to_seq better.
15141
15142 2023-04-08 Jakub Jelinek <jakub@redhat.com>
15143
15144 * Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
15145 poly-int-types.h.
15146 (SYSTEM_H): Depend on $(HASHTAB_H).
15147 * config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused
15148 dependency on $(RTL_BASE_H), remove redundant dependency on
15149 insn-modes.h.
15150
15151 2023-04-06 Richard Earnshaw <rearnsha@arm.com>
15152
15153 PR target/107674
15154 * config/arm/arm.cc (arm_effective_regno): New function.
15155 (mve_vector_mem_operand): Use it.
15156
15157 2023-04-06 Andrew MacLeod <amacleod@redhat.com>
15158
15159 PR tree-optimization/109417
15160 * gimple-range-gori.cc (gori_compute::may_recompute_p): Check if
15161 dependency is in SSA_NAME_FREE_LIST.
15162
15163 2023-04-06 Andrew Pinski <apinski@marvell.com>
15164
15165 PR tree-optimization/109427
15166 * params.opt (-param=vect-induction-float=):
15167 Fix option attribute typo for IntegerRange.
15168
15169 2023-04-05 Jeff Law <jlaw@ventanamicro>
15170
15171 PR target/108892
15172 * combine.cc (combine_instructions): Force re-recognition when
15173 after restoring the body of an insn to its original form.
15174
15175 2023-04-05 Martin Jambor <mjambor@suse.cz>
15176
15177 PR ipa/108959
15178 * ipa-sra.cc (zap_useless_ipcp_results): New function.
15179 (process_isra_node_results): Call it.
15180
15181 2023-04-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15182
15183 * config/riscv/vector.md: Fix incorrect operand order.
15184
15185 2023-04-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
15186
15187 * config/riscv/riscv-vsetvl.cc
15188 (pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
15189 demand fusion.
15190
15191 2023-04-05 Li Xu <xuli1@eswincomputing.com>
15192
15193 * config/riscv/riscv-vector-builtins.def: Fix typo.
15194 * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
15195 * config/riscv/vector-iterators.md: Ditto.
15196
15197 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
15198
15199 * doc/md.texi (Including Patterns): Fix page break.
15200
15201 2023-04-04 Jakub Jelinek <jakub@redhat.com>
15202
15203 PR tree-optimization/109386
15204 * range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
15205 foperator_le::op1_range, foperator_le::op2_range,
15206 foperator_gt::op1_range, foperator_gt::op2_range,
15207 foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
15208 BRS_FALSE case even if the other op is maybe_isnan, not just
15209 known_isnan.
15210 (foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
15211 foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
15212 foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
15213 foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
15214 Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
15215 not just known_isnan.
15216
15217 2023-04-04 Marek Polacek <polacek@redhat.com>
15218
15219 PR sanitizer/109107
15220 * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
15221 when associating.
15222 * match.pd: Use TYPE_OVERFLOW_SANITIZED.
15223
15224 2023-04-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
15225
15226 * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
15227 (mve_vcreateq_f<mode>): Swap operands.
15228
15229 2023-04-04 Andrew Stubbs <ams@codesourcery.com>
15230
15231 * config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
15232
15233 2023-04-04 Jakub Jelinek <jakub@redhat.com>
15234
15235 PR target/109384
15236 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
15237 Reword diagnostics about zfinx conflict with f, formatting fixes.
15238
15239 2023-04-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15240
15241 * config/sol2.h (LIB_SPEC): Don't link with -lpthread.
15242
15243 2023-04-04 Richard Biener <rguenther@suse.de>
15244
15245 PR tree-optimization/109304
15246 * tree-profile.cc (tree_profiling): Use symtab node
15247 availability to decide whether to skip adjusting calls.
15248 Do not adjust calls to internal functions.
15249
15250 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
15251
15252 PR target/108807
15253 * config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
15254 function for permutation control vector by considering big endianness.
15255
15256 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
15257
15258 PR target/108699
15259 * config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
15260 (rs6000_vprtyb<mode>2): ... this.
15261 * config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
15262 rs6000_vprtybv2di2.
15263 (VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
15264 (VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
15265 * config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
15266 popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
15267
15268 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
15269 Sandra Loosemore <sandra@codesourcery.com>
15270
15271 * doc/md.texi (Insn Splitting): Tweak wording for readability.
15272
15273 2023-04-03 Martin Jambor <mjambor@suse.cz>
15274
15275 PR ipa/109303
15276 * ipa-prop.cc (determine_known_aggregate_parts): Check that the
15277 offset + size will be representable in unsigned int.
15278
15279 2023-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15280
15281 * configure.ac (ZSTD_LIB): Move before zstd.h check.
15282 Unset gcc_cv_header_zstd_h without libzstd.
15283 * configure: Regenerate.
15284
15285 2023-04-03 Martin Liska <mliska@suse.cz>
15286
15287 * doc/invoke.texi: Document new param.
15288
15289 2023-04-03 Cupertino Miranda <cupertino.miranda@oracle.com>
15290
15291 * doc/sourcebuild.texi (const_volatile_readonly_section): Document
15292 new check_effective_target function.
15293
15294 2023-04-03 Li Xu <xuli1@eswincomputing.com>
15295
15296 * config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
15297 (vfloat32m8_t): Likewise
15298
15299 2023-04-03 liuhongt <hongtao.liu@intel.com>
15300
15301 * doc/md.texi: Document signbitm2.
15302
15303 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
15304 kito-cheng <kito.cheng@sifive.com>
15305
15306 * config/riscv/vector.md: Fix RA constraint.
15307
15308 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
15309
15310 * config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
15311 * config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
15312 * config/riscv/vector.md: Fix scalar move bug.
15313
15314 2023-04-01 Jakub Jelinek <jakub@redhat.com>
15315
15316 * range-op-float.cc (foperator_equal::fold_range): If at least
15317 one of the op ranges is not singleton and neither is NaN and all
15318 4 bounds are zero, return [1, 1].
15319 (foperator_not_equal::fold_range): In the same case return [0, 0].
15320
15321 2023-04-01 Jakub Jelinek <jakub@redhat.com>
15322
15323 * range-op-float.cc (foperator_equal::fold_range): Perform the
15324 non-singleton handling regardless of maybe_isnan (op1, op2).
15325 (foperator_not_equal::fold_range): Likewise.
15326 (foperator_lt::fold_range, foperator_le::fold_range,
15327 foperator_gt::fold_range, foperator_ge::fold_range): Perform the
15328 real_* comparison check which results in range_false (type)
15329 even if maybe_isnan (op1, op2). Simplify.
15330 (foperator_ltgt): New class.
15331 (fop_ltgt): New variable.
15332 (floating_op_table::floating_op_table): Handle LTGT_EXPR using
15333 fop_ltgt.
15334
15335 2023-04-01 Jakub Jelinek <jakub@redhat.com>
15336
15337 PR target/109254
15338 * builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
15339 returns VOIDmode, handle it like if the register isn't used for
15340 passing arguments at all.
15341 (apply_result_size): If targetm.calls.get_raw_result_mode returns
15342 VOIDmode, handle it like if the register isn't used for returning
15343 results at all.
15344 * target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
15345 means to return VOIDmode.
15346 * doc/tm.texi: Regenerated.
15347 * config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
15348 TARGET_SVE for P0_REGNUM.
15349 (aarch64_function_arg_regno_p): Also return true for p0-p3.
15350 (aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
15351
15352 2023-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
15353
15354 * lra-constraints.cc: (combine_reload_insn): New function.
15355
15356 2023-03-31 Jakub Jelinek <jakub@redhat.com>
15357
15358 PR tree-optimization/91645
15359 * range-op-float.cc (foperator_unordered_lt::fold_range,
15360 foperator_unordered_le::fold_range,
15361 foperator_unordered_gt::fold_range,
15362 foperator_unordered_ge::fold_range,
15363 foperator_unordered_equal::fold_range): Call the ordered
15364 fold_range on ranges with cleared NaNs.
15365 * value-query.cc (range_query::get_tree_range): Handle also
15366 COMPARISON_CLASS_P trees.
15367
15368 2023-03-31 Kito Cheng <kito.cheng@sifive.com>
15369 Andrew Pinski <pinskia@gmail.com>
15370
15371 PR target/109328
15372 * config/riscv/t-riscv: Add missing dependencies.
15373
15374 2023-03-31 liuhongt <hongtao.liu@intel.com>
15375
15376 * config/i386/i386.cc (inline_memory_move_cost): Return 100
15377 for MASK_REGS when MODE_SIZE > 8.
15378
15379 2023-03-31 liuhongt <hongtao.liu@intel.com>
15380
15381 PR target/85048
15382 * config/i386/i386-builtin.def (BDESC): Adjust icode name from
15383 ufloat/ufix to floatuns/fixuns.
15384 * config/i386/i386-expand.cc
15385 (ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
15386 * config/i386/sse.md
15387 (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
15388 Renamed to ..
15389 (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
15390 (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
15391 Renamed to ..
15392 (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
15393 .. this.
15394 (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
15395 Renamed to ..
15396 (fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
15397 (ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
15398 (floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
15399 (ufloatv2siv2df2<mask_name>): Renamed to ..
15400 (<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
15401 (ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
15402 Renamed to ..
15403 (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
15404 .. this.
15405 (ufix_notruncv2dfv2si2): Renamed to ..
15406 (fixuns_notruncv2dfv2si2):.. this.
15407 (ufix_notruncv2dfv2si2_mask): Renamed to ..
15408 (fixuns_notruncv2dfv2si2_mask): .. this.
15409 (*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
15410 (*fixuns_notruncv2dfv2si2_mask_1): .. this.
15411 (ufix_truncv2dfv2si2): Renamed to ..
15412 (*fixuns_truncv2dfv2si2): .. this.
15413 (ufix_truncv2dfv2si2_mask): Renamed to ..
15414 (fixuns_truncv2dfv2si2_mask): .. this.
15415 (*ufix_truncv2dfv2si2_mask_1): Renamed to ..
15416 (*fixuns_truncv2dfv2si2_mask_1): .. this.
15417 (ufix_truncv4dfv4si2<mask_name>): Renamed to ..
15418 (fixuns_truncv4dfv4si2<mask_name>): .. this.
15419 (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
15420 Renamed to ..
15421 (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
15422 .. this.
15423 (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
15424 (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
15425 .. this.
15426
15427 2023-03-30 Andrew MacLeod <amacleod@redhat.com>
15428
15429 PR tree-optimization/109154
15430 * gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
15431 * gimple-range-gori.h (may_recompute_p): Add depth param.
15432 * params.opt (ranger-recompute-depth): New param.
15433
15434 2023-03-30 Jason Merrill <jason@redhat.com>
15435
15436 PR c++/107897
15437 PR c++/108887
15438 * cgraph.h: Move reset() from cgraph_node to symtab_node.
15439 * cgraphunit.cc (symtab_node::reset): Adjust. Also call
15440 remove_from_same_comdat_group.
15441
15442 2023-03-30 Richard Biener <rguenther@suse.de>
15443
15444 PR tree-optimization/107561
15445 * gimple-ssa-warn-access.cc (get_size_range): Add flags
15446 argument and pass it on.
15447 (check_access): When querying for the size range pass
15448 SR_ALLOW_ZERO when the known destination size is zero.
15449
15450 2023-03-30 Richard Biener <rguenther@suse.de>
15451
15452 PR tree-optimization/109342
15453 * tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
15454 overload for edge. When that edge is a backedge use
15455 dominated_by_p directly.
15456
15457 2023-03-30 liuhongt <hongtao.liu@intel.com>
15458
15459 * config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
15460 vpblendd instead of vpblendw for V4SI under avx2.
15461
15462 2023-03-29 Hans-Peter Nilsson <hp@axis.com>
15463
15464 * config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
15465 for many quick operands, for register-sized modes.
15466
15467 2023-03-29 Jiawei <jiawei@iscas.ac.cn>
15468
15469 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
15470 New check.
15471
15472 2023-03-29 Martin Liska <mliska@suse.cz>
15473
15474 PR bootstrap/109310
15475 * configure.ac: Emit a warning for deprecated option
15476 --enable-link-mutex.
15477 * configure: Regenerate.
15478
15479 2023-03-29 Richard Biener <rguenther@suse.de>
15480
15481 PR tree-optimization/109331
15482 * tree-ssa-forwprop.cc (pass_forwprop::execute): When we
15483 discover a taken edge make sure to cleanup the CFG.
15484
15485 2023-03-29 Richard Biener <rguenther@suse.de>
15486
15487 PR tree-optimization/109327
15488 * tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
15489 already removed stmts when draining to_remove.
15490
15491 2023-03-29 Richard Biener <rguenther@suse.de>
15492
15493 PR ipa/106124
15494 * dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
15495 so we can re-create the DIE for the type if required.
15496
15497 2023-03-29 Jakub Jelinek <jakub@redhat.com>
15498 Richard Biener <rguenther@suse.de>
15499
15500 PR tree-optimization/109301
15501 * tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
15502 properties_provided from PROP_gimple_opt_math to 0.
15503 (pass_data_expand_powcabs): Change properties_provided from 0 to
15504 PROP_gimple_opt_math.
15505
15506 2023-03-29 Richard Biener <rguenther@suse.de>
15507
15508 PR tree-optimization/109154
15509 * tree-if-conv.cc (gen_phi_arg_condition): Handle single
15510 inverted condition specially by inverting at the caller.
15511 (gen_phi_arg_condition): Swap COND_EXPR arms if requested.
15512
15513 2023-03-28 David Malcolm <dmalcolm@redhat.com>
15514
15515 PR c/107002
15516 * diagnostic-show-locus.cc (column_range::column_range): Factor
15517 out assertion conditional into...
15518 (column_range::valid_p): ...this new function.
15519 (line_corrections::add_hint): Don't attempt to consolidate hints
15520 if it would lead to invalid column_range instances.
15521
15522 2023-03-28 Kito Cheng <kito.cheng@sifive.com>
15523
15524 PR target/109312
15525 * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
15526 (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
15527 minor refactor.
15528
15529 2023-03-28 Alexander Monakov <amonakov@ispras.ru>
15530
15531 PR rtl-optimization/109187
15532 * haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
15533 subtraction in three-way comparison.
15534
15535 2023-03-28 Andrew MacLeod <amacleod@redhat.com>
15536
15537 PR tree-optimization/109265
15538 PR tree-optimization/109274
15539 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
15540 not create a relation record is op1 and op2 are the same symbol.
15541 (gori_compute::compute_operand1_range): Pass op1 == op2 to the
15542 handler for this stmt, but create a new record only if this statement
15543 generates a relation based on the ranges.
15544 (gori_compute::compute_operand2_range): Ditto.
15545 * value-relation.h (value_relation::set_relation): Always create the
15546 record that is requested.
15547
15548 2023-03-28 Richard Biener <rguenther@suse.de>
15549
15550 PR tree-optimization/107087
15551 * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
15552 executable regions to avoid useless work and to better
15553 propagate degenerate PHIs.
15554
15555 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
15556
15557 * config/i386/x-mingw32-utf8: update comments.
15558
15559 2023-03-28 Richard Sandiford <richard.sandiford@arm.com>
15560
15561 PR target/109072
15562 * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
15563 * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
15564 variable.
15565 * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
15566 New function.
15567 (aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
15568 after inlining. Record which decls are loaded from. Fix handling
15569 of vops for loads and stores.
15570 * config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
15571 (aarch64_accesses_vector_load_decl_p): Likewise.
15572 (aarch64_vector_costs::m_stores_to_vector_load_decl): New member
15573 variable.
15574 (aarch64_vector_costs::add_stmt_cost): If the function has a vld1
15575 that loads from a decl, treat vector stores to those decls as
15576 zero cost.
15577 (aarch64_vector_costs::finish_cost): ...and in that case,
15578 if the vector code does nothing more than a store, give the
15579 prologue a zero cost as well.
15580
15581 2023-03-28 Richard Biener <rguenther@suse.de>
15582
15583 PR bootstrap/84402
15584 PR tree-optimization/108129
15585 * genmatch.cc (lower_for): For (match ...) delay
15586 substituting into the match operator if possible.
15587 (dt_operand::gen_gimple_expr): For user_id look at the
15588 first substitute for determining how to access operands.
15589 (dt_operand::gen_generic_expr): Likewise.
15590 (dt_node::gen_kids): Properly sort user_ids according
15591 to their substitutes.
15592 (dt_node::gen_kids_1): Code-generate user_id matching.
15593
15594 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15595 Jonathan Wakely <jwakely@redhat.com>
15596
15597 * gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
15598 Use subcommand rather than sub-command in function comments.
15599
15600 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15601
15602 PR tree-optimization/109154
15603 * value-range.h (frange::flush_denormals_to_zero): Make it public
15604 rather than private.
15605 * value-range.cc (frange::set): Don't call flush_denormals_to_zero
15606 here.
15607 * range-op-float.cc (range_operator_float::fold_range): Call
15608 flush_denormals_to_zero.
15609
15610 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15611
15612 PR middle-end/106190
15613 * sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
15614 of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
15615
15616 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15617
15618 * range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
15619 as 4th argument to set to avoid clear_nan and union_ calls.
15620
15621 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15622
15623 PR target/109276
15624 * config/i386/i386.cc (assign_386_stack_local): For DImode
15625 with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
15626 align 32 rather than 0 to assign_stack_local.
15627
15628 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
15629
15630 PR target/109140
15631 * config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
15632 on operand #3 to get the final condition code. Use std::swap.
15633 * config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
15634 (fucmp<gcond:code>8<P:mode>_vis): Move around.
15635 (fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
15636 (vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
15637
15638 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
15639
15640 * doc/gm2.texi: Add missing Next, Previous and Top fields to most
15641 top-level sections.
15642
15643 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
15644
15645 * config.host: Pull in i386/x-mingw32-utf8 Makefile
15646 fragment and reference utf8rc-mingw32.o explicitly
15647 for mingw hosts.
15648 * config/i386/sym-mingw32.cc: prevent name mangling of
15649 stub symbol.
15650 * config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
15651 depend on manifest file explicitly.
15652
15653 2023-03-28 Richard Biener <rguenther@suse.de>
15654
15655 Revert:
15656 2023-03-27 Richard Biener <rguenther@suse.de>
15657
15658 PR rtl-optimization/109237
15659 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
15660
15661 2023-03-28 Richard Biener <rguenther@suse.de>
15662
15663 * common.opt (gdwarf): Remove Negative(gdwarf-).
15664
15665 2023-03-28 Richard Biener <rguenther@suse.de>
15666
15667 * common.opt (gdwarf): Add RejectNegative.
15668 (gdwarf-): Likewise.
15669 (ggdb): Likewise.
15670 (gvms): Likewise.
15671
15672 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
15673
15674 * config/cris/constraints.md ("T"): Correct to
15675 define_memory_constraint.
15676
15677 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
15678
15679 * config/cris/cris.md (BW2): New mode-iterator.
15680 (lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
15681 peephole2s.
15682
15683 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
15684
15685 * config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
15686 for possible eliminable compares.
15687
15688 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
15689
15690 * config/cris/constraints.md ("R"): Remove unused constraint.
15691
15692 2023-03-27 Jonathan Wakely <jwakely@redhat.com>
15693
15694 PR gcov-profile/109297
15695 * gcov-tool.cc (merge_usage): Fix "subcomand" typo.
15696 (merge_stream_usage): Likewise.
15697 (overlap_usage): Likewise.
15698
15699 2023-03-27 Christoph Müllner <christoph.muellner@vrull.eu>
15700
15701 PR target/109296
15702 * config/riscv/thead.md: Add missing mode specifiers.
15703
15704 2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
15705 Jiangning Liu <jiangning.liu@amperecomputing.com>
15706 Manolis Tsamis <manolis.tsamis@vrull.eu>
15707
15708 * config/aarch64/aarch64.cc: Update vector costs for ampere1.
15709
15710 2023-03-27 Richard Biener <rguenther@suse.de>
15711
15712 PR rtl-optimization/109237
15713 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
15714
15715 2023-03-27 Richard Biener <rguenther@suse.de>
15716
15717 PR lto/109263
15718 * lto-wrapper.cc (run_gcc): Parse alternate debug options
15719 as well, they always enable debug.
15720
15721 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
15722
15723 PR target/109167
15724 * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
15725 from ...
15726 (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
15727
15728 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
15729
15730 PR target/109082
15731 * config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
15732 than zero when calling vec_sld.
15733 (_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
15734 zero when calling vec_sld.
15735 (_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
15736 than zero when calling vec_sld.
15737
15738 2023-03-27 Sandra Loosemore <sandra@codesourcery.com>
15739
15740 * doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
15741 OMP_TASKLOOP, and OMP_LOOP with OMP_FOR. Document how collapsed
15742 loops are represented and which fields are vectors. Add
15743 documentation for OMP_FOR_PRE_BODY field. Document internal
15744 form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
15745 * tree.def (OMP_FOR): Make documentation consistent with the
15746 Texinfo manual, to fill some gaps and correct errors.
15747
15748 2023-03-26 Andreas Schwab <schwab@linux-m68k.org>
15749
15750 PR target/106282
15751 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
15752 * config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
15753 (handle_move_double): Call it before handle_movsi.
15754 * config/m68k/m68k-protos.h: Declare it.
15755
15756 2023-03-26 Jakub Jelinek <jakub@redhat.com>
15757
15758 PR tree-optimization/109230
15759 * match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
15760
15761 2023-03-26 Jakub Jelinek <jakub@redhat.com>
15762
15763 PR ipa/105685
15764 * predict.cc (compute_function_frequency): Don't call
15765 warn_function_cold if function already has cold attribute.
15766
15767 2023-03-26 Gerald Pfeifer <gerald@pfeifer.com>
15768
15769 * doc/install.texi: Remove anachronistic note
15770 related to languages built and separate source tarballs.
15771
15772 2023-03-25 David Malcolm <dmalcolm@redhat.com>
15773
15774 PR analyzer/109098
15775 * diagnostic-format-sarif.cc (read_until_eof): Delete.
15776 (maybe_read_file): Delete.
15777 (sarif_builder::maybe_make_artifact_content_object): Use
15778 get_source_file_content rather than maybe_read_file.
15779 Reject it if it's not valid UTF-8.
15780 * input.cc (file_cache_slot::get_full_file_content): New.
15781 (get_source_file_content): New.
15782 (selftest::check_cpp_valid_utf8_p): New.
15783 (selftest::test_cpp_valid_utf8_p): New.
15784 (selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
15785 * input.h (get_source_file_content): New prototype.
15786
15787 2023-03-24 David Malcolm <dmalcolm@redhat.com>
15788
15789 * doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
15790 debugging options.
15791 (Special Functions for Debugging the Analyzer): Convert to a
15792 table, and rewrite in places.
15793 (Other Debugging Techniques): Add notes on how to compare two
15794 different exploded graphs.
15795
15796 2023-03-24 David Malcolm <dmalcolm@redhat.com>
15797
15798 PR other/109163
15799 * json.cc: Update comments to indicate that we now preserve
15800 insertion order of keys within objects.
15801 (object::print): Traverse keys in insertion order.
15802 (object::set): Preserve insertion order of keys.
15803 (selftest::test_writing_objects): Add an additional key to verify
15804 that we preserve insertion order.
15805 * json.h (object::m_keys): New field.
15806
15807 2023-03-24 Andrew MacLeod <amacleod@redhat.com>
15808
15809 PR tree-optimization/109238
15810 * gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
15811 predecessors which this block dominates.
15812
15813 2023-03-24 Richard Biener <rguenther@suse.de>
15814
15815 PR tree-optimization/106912
15816 * tree-profile.cc (tree_profiling): Update stmts only when
15817 profiling or testing coverage. Make sure to update calls
15818 fntype, stripping 'const' there.
15819
15820 2023-03-24 Jakub Jelinek <jakub@redhat.com>
15821
15822 PR middle-end/109258
15823 * builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
15824 if target == const0_rtx.
15825
15826 2023-03-24 Alexandre Oliva <oliva@adacore.com>
15827
15828 * doc/sourcebuild.texi (weak_undefined, posix_memalign):
15829 Document options and effective targets.
15830
15831 2023-03-24 Costas Argyris <costas.argyris@gmail.com>
15832
15833 * config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
15834 optional.
15835
15836 2023-03-23 Pat Haugen <pthaugen@linux.ibm.com>
15837
15838 * config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
15839 non-earlyclobber alternative.
15840
15841 2023-03-23 Andrew Pinski <apinski@marvell.com>
15842
15843 PR c/84900
15844 * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
15845 as a lvalue.
15846
15847 2023-03-23 Richard Biener <rguenther@suse.de>
15848
15849 PR tree-optimization/107569
15850 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
15851 Do not push SSA names with zero uses as available leader.
15852 (process_bb): Likewise.
15853
15854 2023-03-23 Richard Biener <rguenther@suse.de>
15855
15856 PR tree-optimization/109262
15857 * tree-ssa-forwprop.cc (pass_forwprop::execute): When
15858 combining a piecewise complex load avoid touching loads
15859 that throw internally. Use fun, not cfun throughout.
15860
15861 2023-03-23 Jakub Jelinek <jakub@redhat.com>
15862
15863 * value-range.cc (irange::irange_union, irange::intersect): Fix
15864 comment spelling bugs.
15865 * gimple-range-trace.cc (range_tracer::do_header): Likewise.
15866 * gimple-range-trace.h: Likewise.
15867 * gimple-range-edge.cc: Likewise.
15868 (gimple_outgoing_range_stmt_p,
15869 gimple_outgoing_range::switch_edge_range,
15870 gimple_outgoing_range::edge_range_p): Likewise.
15871 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
15872 gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
15873 assume_query::assume_query, assume_query::calculate_phi): Likewise.
15874 * gimple-range-edge.h: Likewise.
15875 * value-range.h (Value_Range::set, Value_Range::lower_bound,
15876 Value_Range::upper_bound, frange::set_undefined): Likewise.
15877 * gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
15878 gori_compute): Likewise.
15879 * gimple-range-fold.h (fold_using_range): Likewise.
15880 * gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
15881 Likewise.
15882 * gimple-range-gori.cc (range_def_chain::in_chain_p,
15883 range_def_chain::dump, gori_map::calculate_gori,
15884 gori_compute::compute_operand_range_switch,
15885 gori_compute::logical_combine, gori_compute::refine_using_relation,
15886 gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
15887 Likewise.
15888 * gimple-range.h: Likewise.
15889 (enable_ranger): Likewise.
15890 * range-op.h (empty_range_varying): Likewise.
15891 * value-query.h (value_query): Likewise.
15892 * gimple-range-cache.cc (block_range_cache::set_bb_range,
15893 block_range_cache::dump, ssa_global_cache::clear_global_range,
15894 temporal_cache::temporal_value, temporal_cache::current_p,
15895 ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
15896 ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
15897 Likewise.
15898 * gimple-range-fold.cc (fur_edge::get_phi_operand,
15899 fur_stmt::get_operand, gimple_range_adjustment,
15900 fold_using_range::range_of_phi,
15901 fold_using_range::relation_fold_and_or): Likewise.
15902 * value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
15903 * value-query.cc (range_query::value_of_expr,
15904 range_query::value_on_edge, range_query::query_relation): Likewise.
15905 * tree-vrp.cc (remove_unreachable::remove_and_update_globals,
15906 intersect_range_with_nonzero_bits): Likewise.
15907 * gimple-range-infer.cc (gimple_infer_range::check_assume_func,
15908 exit_range): Likewise.
15909 * value-relation.h: Likewise.
15910 (equiv_oracle, relation_trio::relation_trio, value_relation,
15911 value_relation::value_relation, pe_min): Likewise.
15912 * range-op-float.cc (range_operator_float::rv_fold,
15913 frange_arithmetic, foperator_unordered_equal::op1_range,
15914 foperator_div::rv_fold): Likewise.
15915 * gimple-range-op.cc (cfn_clz::fold_range): Likewise.
15916 * value-relation.cc (equiv_oracle::query_relation,
15917 equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
15918 value_relation::apply_transitive, relation_chain_head::find_relation,
15919 dom_oracle::query_relation, dom_oracle::find_relation_block,
15920 dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
15921 * range-op.cc (range_operator::wi_fold_in_parts_equiv,
15922 create_possibly_reversed_range, adjust_op1_for_overflow,
15923 operator_mult::wi_fold, operator_exact_divide::op1_range,
15924 operator_cast::lhs_op1_relation, operator_cast::fold_pair,
15925 operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
15926 range_op_lshift_tests): Likewise.
15927
15928 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
15929
15930 * config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
15931 (move_callee_saved_registers): Detect the bug condition early.
15932
15933 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
15934
15935 * config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
15936 * config/gcn/gcn-valu.md (V_1REG_ALT): New.
15937 (V_2REG_ALT): New.
15938 (vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
15939 (vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
15940 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
15941 * config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
15942 * config/gcn/predicates.md (ascending_zero_int_parallel): New.
15943
15944 2023-03-23 Jakub Jelinek <jakub@redhat.com>
15945
15946 PR tree-optimization/109176
15947 * tree-vect-generic.cc (expand_vector_condition): If a has
15948 vector boolean type and is a comparison, also check if both
15949 the comparison and VEC_COND_EXPR could be successfully expanded
15950 individually.
15951
15952 2023-03-23 Pan Li <pan2.li@intel.com>
15953 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15954
15955 PR target/108654
15956 PR target/108185
15957 * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
15958 for vector mask modes.
15959 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
15960 * config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
15961
15962 2023-03-23 Songhe Zhu <zhusonghe@eswincomputing.com>
15963
15964 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
15965
15966 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15967
15968 PR target/109244
15969 * config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
15970 (emit_vlmax_op): Ditto.
15971 * config/riscv/riscv-v.cc (get_sew): New function.
15972 (emit_vlmax_vsetvl): Adapt function.
15973 (emit_pred_op): Ditto.
15974 (emit_vlmax_op): Ditto.
15975 (emit_nonvlmax_op): Ditto.
15976 (legitimize_move): Fix LRA ICE.
15977 (gen_no_side_effects_vsetvl_rtx): Adapt function.
15978 * config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
15979 (@mov<VB:mode><P:mode>_lra): Ditto.
15980 (*mov<V_FRACT:mode><P:mode>_lra): Ditto.
15981 (*mov<VB:mode><P:mode>_lra): Ditto.
15982
15983 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15984
15985 PR target/109228
15986 * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
15987 __riscv_vlenb support.
15988 (BASE): Ditto.
15989 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15990 * config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
15991 * config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
15992 (SHAPE): Ditto.
15993 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
15994 * config/riscv/riscv-vector-builtins.cc: Ditto.
15995
15996 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15997 kito-cheng <kito.cheng@sifive.com>
15998
15999 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
16000 (pass_vsetvl::compute_local_backward_infos): Fix bugs.
16001 (pass_vsetvl::need_vsetvl): Fix bugs.
16002 (pass_vsetvl::backward_demand_fusion): Fix bugs.
16003 (pass_vsetvl::demand_fusion): Fix bugs.
16004 (eliminate_insn): Fix bugs.
16005 (insert_vsetvl): Ditto.
16006 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
16007 * config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
16008 * config/riscv/vector.md: Ditto.
16009
16010 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16011 kito-cheng <kito.cheng@sifive.com>
16012
16013 * config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
16014 * config/riscv/vector-iterators.md (nmsac): Ditto.
16015 (nmsub): Ditto.
16016 (msac): Ditto.
16017 (msub): Ditto.
16018 (nmadd): Ditto.
16019 (nmacc): Ditto.
16020 * config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
16021 (@pred_mul_plus<mode>): Ditto.
16022 (*pred_madd<mode>): Ditto.
16023 (*pred_macc<mode>): Ditto.
16024 (*pred_mul_plus<mode>): Ditto.
16025 (@pred_mul_plus<mode>_scalar): Ditto.
16026 (*pred_madd<mode>_scalar): Ditto.
16027 (*pred_macc<mode>_scalar): Ditto.
16028 (*pred_mul_plus<mode>_scalar): Ditto.
16029 (*pred_madd<mode>_extended_scalar): Ditto.
16030 (*pred_macc<mode>_extended_scalar): Ditto.
16031 (*pred_mul_plus<mode>_extended_scalar): Ditto.
16032 (@pred_minus_mul<mode>): Ditto.
16033 (*pred_<madd_nmsub><mode>): Ditto.
16034 (*pred_nmsub<mode>): Ditto.
16035 (*pred_<macc_nmsac><mode>): Ditto.
16036 (*pred_nmsac<mode>): Ditto.
16037 (*pred_mul_<optab><mode>): Ditto.
16038 (*pred_minus_mul<mode>): Ditto.
16039 (@pred_mul_<optab><mode>_scalar): Ditto.
16040 (@pred_minus_mul<mode>_scalar): Ditto.
16041 (*pred_<madd_nmsub><mode>_scalar): Ditto.
16042 (*pred_nmsub<mode>_scalar): Ditto.
16043 (*pred_<macc_nmsac><mode>_scalar): Ditto.
16044 (*pred_nmsac<mode>_scalar): Ditto.
16045 (*pred_mul_<optab><mode>_scalar): Ditto.
16046 (*pred_minus_mul<mode>_scalar): Ditto.
16047 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
16048 (*pred_nmsub<mode>_extended_scalar): Ditto.
16049 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
16050 (*pred_nmsac<mode>_extended_scalar): Ditto.
16051 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
16052 (*pred_minus_mul<mode>_extended_scalar): Ditto.
16053 (*pred_<madd_msub><mode>): Ditto.
16054 (*pred_<macc_msac><mode>): Ditto.
16055 (*pred_<madd_msub><mode>_scalar): Ditto.
16056 (*pred_<macc_msac><mode>_scalar): Ditto.
16057 (@pred_neg_mul_<optab><mode>): Ditto.
16058 (@pred_mul_neg_<optab><mode>): Ditto.
16059 (*pred_<nmadd_msub><mode>): Ditto.
16060 (*pred_<nmsub_nmadd><mode>): Ditto.
16061 (*pred_<nmacc_msac><mode>): Ditto.
16062 (*pred_<nmsac_nmacc><mode>): Ditto.
16063 (*pred_neg_mul_<optab><mode>): Ditto.
16064 (*pred_mul_neg_<optab><mode>): Ditto.
16065 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
16066 (@pred_mul_neg_<optab><mode>_scalar): Ditto.
16067 (*pred_<nmadd_msub><mode>_scalar): Ditto.
16068 (*pred_<nmsub_nmadd><mode>_scalar): Ditto.
16069 (*pred_<nmacc_msac><mode>_scalar): Ditto.
16070 (*pred_<nmsac_nmacc><mode>_scalar): Ditto.
16071 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
16072 (*pred_mul_neg_<optab><mode>_scalar): Ditto.
16073 (@pred_widen_neg_mul_<optab><mode>): Ditto.
16074 (@pred_widen_mul_neg_<optab><mode>): Ditto.
16075 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
16076 (@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
16077
16078 2023-03-23 liuhongt <hongtao.liu@intel.com>
16079
16080 * builtins.cc (builtin_memset_read_str): Replace
16081 targetm.gen_memset_scratch_rtx with gen_reg_rtx.
16082 (builtin_memset_gen_str): Ditto.
16083 * config/i386/i386-expand.cc
16084 (ix86_convert_const_wide_int_to_broadcast): Replace
16085 ix86_gen_scratch_sse_rtx with gen_reg_rtx.
16086 (ix86_expand_vector_move): Ditto.
16087 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
16088 Removed.
16089 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
16090 (TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
16091 * doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
16092 * doc/tm.texi.in: Ditto.
16093 * target.def: Ditto.
16094
16095 2023-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
16096
16097 * lra.cc (lra): Do not repeat inheritance and live range splitting
16098 when asm error is found.
16099
16100 2023-03-22 Andrew Jenner <andrew@codesourcery.com>
16101
16102 * config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
16103 (gcn_expand_dpp_distribute_even_insn)
16104 (gcn_expand_dpp_distribute_odd_insn): Declare.
16105 * config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
16106 (@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
16107 (cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
16108 (cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
16109 (fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
16110 (fms<mode>4_negop2): New patterns.
16111 * config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
16112 (gcn_expand_dpp_distribute_even_insn)
16113 (gcn_expand_dpp_distribute_odd_insn): New functions.
16114 * config/gcn/gcn.md: Add entries to unspec enum.
16115
16116 2023-03-22 Aldy Hernandez <aldyh@redhat.com>
16117
16118 PR tree-optimization/109008
16119 * value-range.cc (frange::set): Add nan_state argument.
16120 * value-range.h (class nan_state): New.
16121 (frange::get_nan_state): New.
16122
16123 2023-03-22 Martin Liska <mliska@suse.cz>
16124
16125 * configure: Regenerate.
16126
16127 2023-03-21 Joseph Myers <joseph@codesourcery.com>
16128
16129 * stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
16130 to variants.
16131
16132 2023-03-21 Andrew MacLeod <amacleod@redhat.com>
16133
16134 PR tree-optimization/109192
16135 * gimple-range-gori.cc (gori_compute::compute_operand_range):
16136 Terminate gori calculations if a relation is not relevant.
16137 * value-relation.h (value_relation::set_relation): Allow
16138 equality between op1 and op2 if they are the same.
16139
16140 2023-03-21 Richard Biener <rguenther@suse.de>
16141
16142 PR tree-optimization/109219
16143 * tree-vect-loop.cc (vectorizable_reduction): Check
16144 slp_node, not STMT_SLP_TYPE.
16145 * tree-vect-stmts.cc (vectorizable_condition): Likewise.
16146 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
16147 Remove assertion on STMT_SLP_TYPE.
16148
16149 2023-03-21 Jakub Jelinek <jakub@redhat.com>
16150
16151 PR tree-optimization/109215
16152 * tree.h (enum special_array_member): Adjust comments for int_0
16153 and trail_0.
16154 * tree.cc (component_ref_sam_type): Clear zero_elts if memtype
16155 has zero sized element type and the array has variable number of
16156 elements or constant one or more elements.
16157 (component_ref_size): Adjust comments, formatting fix.
16158
16159 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16160
16161 * configure.ac: Add check for the Texinfo 6.8
16162 CONTENTS_OUTPUT_LOCATION customization variable and set it if
16163 supported.
16164 * configure: Regenerate.
16165 * Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable. Set by
16166 configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
16167 CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
16168 ($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
16169
16170 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16171
16172 * doc/extend.texi: Associate use_hazard_barrier_return index
16173 entry with its attribute.
16174 * doc/invoke.texi: Associate -fcanon-prefix-map index entry with
16175 its attribute
16176
16177 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16178
16179 * doc/implement-c.texi: Remove usage of @gol.
16180 * doc/invoke.texi: Ditto.
16181 * doc/sourcebuild.texi: Ditto.
16182 * doc/include/gcc-common.texi: Remove @gol. In new Makeinfo and
16183 texinfo.tex versions, the bug it was working around appears to
16184 be gone.
16185
16186 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16187
16188 * doc/include/texinfo.tex: Update to 2023-01-17.19.
16189
16190 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16191
16192 * doc/include/gcc-common.texi: Add @defbuiltin{,x} and
16193 @enddefbuiltin for defining built-in functions.
16194 * doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
16195 places where it should be used.
16196
16197 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16198
16199 * doc/extend.texi (Formatted Output Function Checking): New
16200 subsection for grouping together printf et al.
16201 (Exception handling) Fix missing @ sign before copyright
16202 header, which lead to the copyright line leaking into
16203 '(gcc)Exception handling'.
16204 * doc/gcc.texi: Set document language to en_US.
16205 (@copying): Wrap front cover texts in quotations, move in manual
16206 description text.
16207
16208 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16209
16210 * doc/gcc.texi: Add the Indices appendix, to make texinfo
16211 generate nice indices overview page.
16212
16213 2023-03-21 Richard Biener <rguenther@suse.de>
16214
16215 PR tree-optimization/109170
16216 * gimple-range-op.cc (cfn_pass_through_arg1): New.
16217 (gimple_range_op_handler::maybe_builtin_call): Handle
16218 __builtin_expect via cfn_pass_through_arg1.
16219
16220 2023-03-20 Michael Meissner <meissner@linux.ibm.com>
16221
16222 PR target/109067
16223 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
16224 (init_float128_ieee): Delete code to switch complex multiply and divide
16225 for long double.
16226 (complex_multiply_builtin_code): New helper function.
16227 (complex_divide_builtin_code): Likewise.
16228 (rs6000_mangle_decl_assembler_name): Add support for mangling the name
16229 of complex 128-bit multiply and divide built-in functions.
16230
16231 2023-03-20 Peter Bergner <bergner@linux.ibm.com>
16232
16233 PR target/109178
16234 * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
16235
16236 2023-03-19 Jonny Grant <jg@jguk.org>
16237
16238 * doc/extend.texi (Common Function Attributes) <nonnull>:
16239 Correct typo.
16240
16241 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
16242
16243 PR rtl-optimization/109179
16244 * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
16245 insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
16246
16247 2023-03-17 Jakub Jelinek <jakub@redhat.com>
16248
16249 PR target/105554
16250 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
16251 to false.
16252 * function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
16253 to allocate_struct_function instead of false.
16254 * tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
16255 nor DECL_RESULT here. Pass true as ABSTRACT_P to
16256 push_struct_function. Call targetm.target_option.relayout_function
16257 after it.
16258 (tree_function_versioning): Formatting fix.
16259
16260 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
16261
16262 * lra-constraints.cc: Include hooks.h.
16263 (combine_reload_insn): New function.
16264 (lra_constraints): Call it.
16265
16266 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16267 kito-cheng <kito.cheng@sifive.com>
16268
16269 * config/riscv/riscv-v.cc (legitimize_move): Allow undef value
16270 as legitimate value.
16271 * config/riscv/riscv-vector-builtins.cc
16272 (function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
16273 (function_expander::use_widen_ternop_insn): Ditto.
16274 * config/riscv/vector.md (@vundefined<mode>): New pattern.
16275 (pred_mul_<optab><mode>_undef_merge): Remove.
16276 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
16277 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
16278 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
16279 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
16280
16281 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16282
16283 PR target/109092
16284 * config/riscv/riscv.md: Fix subreg bug.
16285
16286 2023-03-17 Jakub Jelinek <jakub@redhat.com>
16287
16288 PR middle-end/108685
16289 * omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
16290 use its loop_father rather than BODY_BB's loop_father.
16291 (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
16292 If broken_loop with ordered > collapse and at least one of those
16293 extra loops aren't guaranteed to have at least one iteration, change
16294 l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
16295 loop_father to l0_bb's loop_father rather than l1_bb's.
16296
16297 2023-03-17 Jakub Jelinek <jakub@redhat.com>
16298
16299 PR plugins/108634
16300 * gdbhooks.py (TreePrinter.to_string): Wrap
16301 gdb.parse_and_eval('tree_code_type') in a try block, parse
16302 and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
16303 raises exception. Update comments for the recent tree_code_type
16304 changes.
16305
16306 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
16307
16308 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
16309 issues. Add more line breaks to example so it doesn't overflow
16310 the margins.
16311
16312 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
16313
16314 * doc/extend.texi (Common Function Attributes) <access>: Fix bad
16315 line breaks in examples.
16316 <malloc>: Fix bad line breaks in running text, also copy-edit
16317 for consistency.
16318 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
16319 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
16320 @gol.
16321 (C++ Dialect Options) <-fcontracts>: Add line break in example.
16322 <-Wctad-maybe-unsupported>: Likewise.
16323 <-Winvalid-constexpr>: Likewise.
16324 (Warning Options) <-Wdangling-pointer>: Likewise.
16325 <-Winterference-size>: Likewise.
16326 <-Wvla-parameter>: Likewise.
16327 (Static Analyzer Options): Fix bad line breaks in running text,
16328 plus add some missing markup.
16329 (Optimize Options) <openacc-privatization>: Fix more bad line
16330 breaks in running text.
16331
16332 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
16333
16334 * config/i386/i386-expand.cc (expand_vec_perm_pblendv):
16335 Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
16336 (expand_vec_perm_2perm_pblendv): Ditto.
16337
16338 2023-03-16 Martin Liska <mliska@suse.cz>
16339
16340 PR middle-end/106133
16341 * gcc.cc (driver_handle_option): Use x_main_input_basename
16342 if x_dump_base_name is null.
16343 * opts.cc (common_handle_option): Likewise.
16344
16345 2023-03-16 Richard Biener <rguenther@suse.de>
16346
16347 PR tree-optimization/109123
16348 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
16349 Do not emit -Wuse-after-free late.
16350 (pass_waccess::check_call): Always check call pointer uses.
16351
16352 2023-03-16 Richard Biener <rguenther@suse.de>
16353
16354 PR tree-optimization/109141
16355 * tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
16356 * tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
16357 out from ...
16358 (renumber_gimple_stmt_uids): ... here and
16359 (renumber_gimple_stmt_uids_in_blocks): ... here.
16360 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
16361 Use renumber_gimple_stmt_uids_in_block to also assign UIDs
16362 to PHIs.
16363 (pass_waccess::check_pointer_uses): Process all PHIs.
16364
16365 2023-03-15 David Malcolm <dmalcolm@redhat.com>
16366
16367 PR analyzer/109097
16368 * diagnostic-format-sarif.cc (class sarif_invocation): New.
16369 (class sarif_ice_notification): New.
16370 (sarif_builder::m_invocation_obj): New field.
16371 (sarif_invocation::add_notification_for_ice): New.
16372 (sarif_invocation::prepare_to_flush): New.
16373 (sarif_ice_notification::sarif_ice_notification): New.
16374 (sarif_builder::sarif_builder): Add m_invocation_obj.
16375 (sarif_builder::end_diagnostic): Special-case DK_ICE and
16376 DK_ICE_NOBT.
16377 (sarif_builder::flush_to_file): Call prepare_to_flush on
16378 m_invocation_obj. Pass the latter to make_top_level_object.
16379 (sarif_builder::make_result_object): Move creation of "locations"
16380 array to...
16381 (sarif_builder::make_locations_arr): ...this new function.
16382 (sarif_builder::make_top_level_object): Add "invocation_obj" param
16383 and pass it to make_run_object.
16384 (sarif_builder::make_run_object): Add "invocation_obj" param and
16385 use it.
16386 (sarif_ice_handler): New callback.
16387 (diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
16388 * diagnostic.cc (diagnostic_initialize): Initialize new field
16389 "ice_handler_cb".
16390 (diagnostic_action_after_output): If it is set, make one attempt
16391 to call ice_handler_cb.
16392 * diagnostic.h (diagnostic_context::ice_handler_cb): New field.
16393
16394 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
16395
16396 * config/i386/i386-expand.cc (expand_vec_perm_blend):
16397 Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
16398 and fix V2HImode handling.
16399 (expand_vec_perm_1): Try to emit BLEND instruction
16400 before MOVSS/MOVSD.
16401 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
16402
16403 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
16404
16405 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
16406
16407 2023-03-15 Richard Biener <rguenther@suse.de>
16408
16409 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
16410 Do not diagnose clobbers.
16411
16412 2023-03-15 Richard Biener <rguenther@suse.de>
16413
16414 PR tree-optimization/109139
16415 * tree-ssa-live.cc (remove_unused_locals): Look at the
16416 base address for unused decls on the LHS of .DEFERRED_INIT.
16417
16418 2023-03-15 Xi Ruoyao <xry111@xry111.site>
16419
16420 PR other/109086
16421 * builtins.cc (inline_string_cmp): Force the character
16422 difference into "result" pseudo-register, instead of reassign
16423 the pseudo-register.
16424
16425 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16426
16427 * config.gcc: Add thead.o to RISC-V extra_objs.
16428 * config/riscv/peephole.md: Add mempair peephole passes.
16429 * config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
16430 prototype.
16431 (th_mempair_operands_p): Likewise.
16432 (th_mempair_order_operands): Likewise.
16433 (th_mempair_prepare_save_restore_operands): Likewise.
16434 (th_mempair_save_restore_regs): Likewise.
16435 (th_mempair_output_move): Likewise.
16436 * config/riscv/riscv.cc (riscv_save_reg): Move code.
16437 (riscv_restore_reg): Move code.
16438 (riscv_for_each_saved_reg): Add code to emit mempair insns.
16439 * config/riscv/t-riscv: Add thead.cc.
16440 * config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
16441 New insn.
16442 (*th_mempair_store_<GPR:mode>2): Likewise.
16443 (*th_mempair_load_extendsidi2): Likewise.
16444 (*th_mempair_load_zero_extendsidi2): Likewise.
16445 * config/riscv/thead.cc: New file.
16446
16447 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16448
16449 * config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
16450 New constraint "th_f_fmv".
16451 (TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
16452 "th_r_fmv".
16453 * config/riscv/riscv.cc (riscv_split_doubleword_move):
16454 Add split code for XTheadFmv.
16455 (riscv_secondary_memory_needed): XTheadFmv does not need
16456 secondary memory.
16457 * config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
16458 UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
16459 movdf_hardfloat_rv32.
16460 * config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
16461 (th_fmv_x_w): New INSN.
16462 (th_fmv_x_hw): New INSN.
16463
16464 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16465
16466 * config/riscv/riscv.md (maddhisi4): New expand.
16467 (msubhisi4): New expand.
16468 * config/riscv/thead.md (*th_mula<mode>): New pattern.
16469 (*th_mulawsi): New pattern.
16470 (*th_mulawsi2): New pattern.
16471 (*th_maddhisi4): New pattern.
16472 (*th_sextw_maddhisi4): New pattern.
16473 (*th_muls<mode>): New pattern.
16474 (*th_mulswsi): New pattern.
16475 (*th_mulswsi2): New pattern.
16476 (*th_msubhisi4): New pattern.
16477 (*th_sextw_msubhisi4): New pattern.
16478
16479 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16480
16481 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
16482 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
16483 Add prototype.
16484 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
16485 XTheadCondMov.
16486 (riscv_expand_conditional_move): New function.
16487 (riscv_expand_conditional_move_onesided): New function.
16488 * config/riscv/riscv.md: Add support for XTheadCondMov.
16489 * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
16490 support for XTheadCondMov.
16491 (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
16492
16493 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16494
16495 * config/riscv/bitmanip.md (clzdi2): New expand.
16496 (clzsi2): New expand.
16497 (ctz<mode>2): New expand.
16498 (popcount<mode>2): New expand.
16499 (<bitmanip_optab>si2): Rename INSN.
16500 (*<bitmanip_optab>si2): Hide INSN name.
16501 (<bitmanip_optab>di2): Rename INSN.
16502 (*<bitmanip_optab>di2): Hide INSN name.
16503 (rotrsi3): Remove INSN.
16504 (rotr<mode>3): Add expand.
16505 (*rotrsi3): New INSN.
16506 (rotrdi3): Rename INSN.
16507 (*rotrdi3): Hide INSN name.
16508 (rotrsi3_sext): Rename INSN.
16509 (*rotrsi3_sext): Hide INSN name.
16510 (bswap<mode>2): Remove INSN.
16511 (bswapdi2): Add expand.
16512 (bswapsi2): Add expand.
16513 (*bswap<mode>2): Hide INSN name.
16514 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
16515 extraction.
16516 * config/riscv/riscv.md (extv<mode>): New expand.
16517 (extzv<mode>): New expand.
16518 * config/riscv/thead.md (*th_srri<mode>3): New INSN.
16519 (*th_ext<mode>): New INSN.
16520 (*th_extu<mode>): New INSN.
16521 (*th_clz<mode>2): New INSN.
16522 (*th_rev<mode>2): New INSN.
16523
16524 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16525
16526 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
16527 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
16528
16529 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16530
16531 * config/riscv/riscv.md: Include thead.md
16532 * config/riscv/thead.md: New file.
16533
16534 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16535
16536 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
16537
16538 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16539
16540 * common/config/riscv/riscv-common.cc: Add xthead* extensions.
16541 * config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
16542 (MASK_XTHEADBB): New.
16543 (MASK_XTHEADBS): New.
16544 (MASK_XTHEADCMO): New.
16545 (MASK_XTHEADCONDMOV): New.
16546 (MASK_XTHEADFMEMIDX): New.
16547 (MASK_XTHEADFMV): New.
16548 (MASK_XTHEADINT): New.
16549 (MASK_XTHEADMAC): New.
16550 (MASK_XTHEADMEMIDX): New.
16551 (MASK_XTHEADMEMPAIR): New.
16552 (MASK_XTHEADSYNC): New.
16553 (TARGET_XTHEADBA): New.
16554 (TARGET_XTHEADBB): New.
16555 (TARGET_XTHEADBS): New.
16556 (TARGET_XTHEADCMO): New.
16557 (TARGET_XTHEADCONDMOV): New.
16558 (TARGET_XTHEADFMEMIDX): New.
16559 (TARGET_XTHEADFMV): New.
16560 (TARGET_XTHEADINT): New.
16561 (TARGET_XTHEADMAC): New.
16562 (TARGET_XTHEADMEMIDX): New.
16563 (TARGET_XTHEADMEMPAIR): new.
16564 (TARGET_XTHEADSYNC): New.
16565 * config/riscv/riscv.opt: Add riscv_xthead_subext.
16566
16567 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
16568
16569 PR target/109117
16570 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
16571 __builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
16572 __builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
16573
16574 2023-03-14 Jakub Jelinek <jakub@redhat.com>
16575
16576 PR target/109109
16577 * config/i386/i386-expand.cc (split_double_concat): Fix splitting
16578 when lo is equal to dhi and hi is a MEM which uses dlo register.
16579
16580 2023-03-14 Martin Jambor <mjambor@suse.cz>
16581
16582 PR ipa/107925
16583 * ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
16584 global0 instead of zeroing when it does not have as many counts as
16585 it should.
16586
16587 2023-03-14 Martin Jambor <mjambor@suse.cz>
16588
16589 PR ipa/107925
16590 * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
16591 ipa count, remove assert, lenient_count_portion_handling, dump
16592 also orig_node_count.
16593
16594 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
16595
16596 * config/i386/i386-expand.cc (expand_vec_perm_movs):
16597 Handle V2SImode for TARGET_MMX_WITH_SSE.
16598 * config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
16599 using V2FI mode iterator to handle both V2SI and V2SF modes.
16600
16601 2023-03-14 Sam James <sam@gentoo.org>
16602
16603 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
16604 including <sstream> earlier.
16605 * system.h: Add INCLUDE_SSTREAM.
16606
16607 2023-03-14 Richard Biener <rguenther@suse.de>
16608
16609 * tree-ssa-live.cc (remove_unused_locals): Do not treat
16610 the .DEFERRED_INIT of a variable as use, instead remove
16611 that if it is the only use.
16612
16613 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
16614
16615 PR rtl-optimization/107762
16616 * expr.cc (emit_group_store): Revert latest change.
16617
16618 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
16619
16620 PR tree-optimization/109005
16621 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
16622 aggregate type check.
16623
16624 2023-03-14 Jakub Jelinek <jakub@redhat.com>
16625
16626 PR tree-optimization/109115
16627 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
16628 r.upper_bound () on r.undefined_p () range.
16629
16630 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
16631
16632 PR tree-optimization/106896
16633 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
16634 implementatoin with probability_in; avoid some asserts.
16635
16636 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
16637
16638 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
16639
16640 2023-03-13 Sean Bright <sean@seanbright.com>
16641
16642 * doc/invoke.texi (Warning Options): Remove errant 'See'
16643 before @xref.
16644
16645 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
16646
16647 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
16648 REG_OK_FOR_BASE_P): Remove.
16649
16650 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16651
16652 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
16653 (=vd,vd,vr,vr): Ditto.
16654 * config/riscv/vector.md: Ditto.
16655
16656 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16657
16658 * config/riscv/riscv-vector-builtins.cc
16659 (function_expander::use_compare_insn): Add operand predicate check.
16660
16661 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16662
16663 * config/riscv/vector.md: Fine tune RA constraints.
16664
16665 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
16666
16667 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
16668 hsaco assemble/link.
16669
16670 2023-03-13 Richard Biener <rguenther@suse.de>
16671
16672 PR tree-optimization/109046
16673 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
16674 piecewise complex loads.
16675
16676 2023-03-12 Jakub Jelinek <jakub@redhat.com>
16677
16678 * config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
16679 (aarch64_bf16_ptr_type_node): Adjust comment.
16680 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
16681 bfloat16_type_node rather than aarch64_bf16_type_node.
16682 (aarch64_libgcc_floating_mode_supported_p,
16683 aarch64_scalar_mode_supported_p): Also support BFmode.
16684 (aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
16685 (aarch64_invalid_binary_op): Remove BFmode related rejections.
16686 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
16687 * config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
16688 (aarch64_int_or_fp_type): Use bfloat16_type_node rather than
16689 aarch64_bf16_type_node.
16690 (aarch64_init_simd_builtin_types): Likewise.
16691 (aarch64_init_bf16_types): Likewise. Don't create bfloat16_type_node,
16692 which is created in tree.cc already.
16693 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
16694
16695 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
16696
16697 PR middle-end/109031
16698 * tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
16699 ensure that the type of x is as wide or wider than the type of a.
16700
16701 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16702
16703 PR target/108583
16704 * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
16705 (*bitmask_shift_plus<mode>): New.
16706 * config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
16707 (@aarch64_bitmask_udiv<mode>3): Remove.
16708 * config/aarch64/aarch64.cc
16709 (aarch64_vectorize_can_special_div_by_constant,
16710 TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
16711 (TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
16712 aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
16713
16714 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16715
16716 PR target/108583
16717 * target.def (preferred_div_as_shifts_over_mult): New.
16718 * doc/tm.texi.in: Document it.
16719 * doc/tm.texi: Regenerate.
16720 * targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
16721 * targhooks.h (default_preferred_div_as_shifts_over_mult): New.
16722 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
16723
16724 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16725 Richard Sandiford <richard.sandiford@arm.com>
16726
16727 PR target/108583
16728 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
16729 single use.
16730
16731 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16732 Andrew MacLeod <amacleod@redhat.com>
16733
16734 PR target/108583
16735 * gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
16736 * gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
16737 Use it.
16738 (gimple_range_op_handler::maybe_non_standard): New.
16739 * range-op.cc (class operator_widen_plus_signed,
16740 operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
16741 operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
16742 operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
16743 operator_widen_mult_unsigned::wi_fold,
16744 ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
16745 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
16746 * range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
16747 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
16748
16749 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16750
16751 PR target/108583
16752 * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
16753 * doc/tm.texi.in: Likewise.
16754 * explow.cc (round_push, align_dynamic_address): Revert previous patch.
16755 * expmed.cc (expand_divmod): Likewise.
16756 * expmed.h (expand_divmod): Likewise.
16757 * expr.cc (force_operand, expand_expr_divmod): Likewise.
16758 * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
16759 * target.def (can_special_div_by_const): Remove.
16760 * target.h: Remove tree-core.h include
16761 * targhooks.cc (default_can_special_div_by_const): Remove.
16762 * targhooks.h (default_can_special_div_by_const): Remove.
16763 * tree-vect-generic.cc (expand_vector_operation): Remove hook.
16764 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
16765 * tree-vect-stmts.cc (vectorizable_operation): Remove hook.
16766
16767 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
16768
16769 * doc/install.texi2html: Fix issue number typo in comment.
16770
16771 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
16772
16773 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
16774 bool.
16775
16776 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
16777
16778 * doc/invoke.texi (Optimize Options): Add markup to
16779 description of asan-kernel-mem-intrinsic-prefix, and clarify
16780 wording slightly.
16781
16782 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
16783
16784 * doc/extend.texi (Named Address Spaces): Drop a redundant link
16785 to AVR-LibC.
16786
16787 2023-03-11 Jeff Law <jlaw@ventanamicro>
16788
16789 PR web/88860
16790 * doc/extend.texi: Clarify Attribute Syntax a bit.
16791
16792 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
16793
16794 * doc/install.texi (Prerequisites): Suggest using newer versions
16795 of Texinfo.
16796 (Final install): Clean up and modernize discussion of how to
16797 build or obtain the GCC manuals.
16798 * doc/install.texi2html: Update comment to point to the PR instead
16799 of "makeinfo 4.7 brokenness" (it's not specific to that version).
16800
16801 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16802
16803 PR target/107703
16804 * optabs.cc (expand_fix): For conversions from BFmode to integral,
16805 use shifts to convert it to SFmode first and then convert SFmode
16806 to integral.
16807
16808 2023-03-10 Andrew Pinski <apinski@marvell.com>
16809
16810 * config/aarch64/aarch64.md: Add a new define_split
16811 to help combine.
16812
16813 2023-03-10 Richard Biener <rguenther@suse.de>
16814
16815 * tree-ssa-structalias.cc (solve_graph): Immediately
16816 iterate self-cycles.
16817
16818 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16819
16820 PR tree-optimization/109008
16821 * range-op-float.cc (float_widen_lhs_range): If not
16822 -frounding-math and not IBM double double format, extend lhs
16823 range just by 0.5ulp rather than 1ulp in each direction.
16824
16825 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16826
16827 PR target/107998
16828 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
16829 $tmake_file.
16830 * config/i386/t-cygwin-w64: Remove.
16831
16832 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16833
16834 PR plugins/108634
16835 * tree-core.h (tree_code_type, tree_code_length): For C++11 or
16836 C++14, don't declare as extern const arrays.
16837 (tree_code_type_tmpl, tree_code_length_tmpl): New types with
16838 static constexpr member arrays for C++11 or C++14.
16839 * tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
16840 tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
16841 (TREE_CODE_LENGTH): For C++11 or C++14 use
16842 tree_code_length_tmpl <0>::tree_code_length instead of
16843 tree_code_length.
16844 * tree.cc (tree_code_type, tree_code_length): Remove.
16845
16846 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16847
16848 PR other/108464
16849 * common.opt (fcanon-prefix-map): New option.
16850 * opts.cc: Include file-prefix-map.h.
16851 (flag_canon_prefix_map): New variable.
16852 (common_handle_option): Handle OPT_fcanon_prefix_map.
16853 (gen_command_line_string): Ignore OPT_fcanon_prefix_map.
16854 * file-prefix-map.h (flag_canon_prefix_map): Declare.
16855 * file-prefix-map.cc (struct file_prefix_map): Add canonicalize
16856 member.
16857 (add_prefix_map): Initialize canonicalize member from
16858 flag_canon_prefix_map, and if true canonicalize it using lrealpath.
16859 (remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
16860 use lrealpath result only for map->canonicalize map entries.
16861 * lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
16862 * opts-global.cc (handle_common_deferred_options): Clear
16863 flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
16864 * doc/invoke.texi (-fcanon-prefix-map): Document.
16865 (-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
16866 see also for -fcanon-prefix-map.
16867 * doc/cppopts.texi (-fmacro-prefix-map): Likewise.
16868
16869 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16870
16871 PR c/108079
16872 * cgraphunit.cc (check_global_declaration): Don't warn for unused
16873 variables which have OPT_Wunused_variable warning suppressed.
16874
16875 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16876
16877 PR tree-optimization/109008
16878 * range-op-float.cc (float_widen_lhs_range): If lb is
16879 minimum representable finite number or ub is maximum
16880 representable finite number, instead of widening it to
16881 -inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
16882 Temporarily clear flag_finite_math_only when canonicalizing
16883 the widened range.
16884
16885 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16886
16887 * config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
16888 * config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
16889 (gimple_fold_builtin): Ditto.
16890 * config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
16891 (class vleff): Ditto.
16892 (BASE): Ditto.
16893 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16894 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
16895 (vleff): Ditto.
16896 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
16897 (struct fault_load_def): Ditto.
16898 (SHAPE): Ditto.
16899 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
16900 * config/riscv/riscv-vector-builtins.cc
16901 (rvv_arg_type_info::get_tree_type): Add size_ptr.
16902 (gimple_folder::gimple_folder): New class.
16903 (gimple_folder::fold): Ditto.
16904 (gimple_fold_builtin): New function.
16905 (get_read_vl_instance): Ditto.
16906 (get_read_vl_decl): Ditto.
16907 * config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
16908 * config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
16909 (get_read_vl_instance): New function.
16910 (get_read_vl_decl): Ditto.
16911 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
16912 (read_vl_insn_p): Ditto.
16913 (available_occurrence_p): Ditto.
16914 (backward_propagate_worthwhile_p): Ditto.
16915 (gen_vsetvl_pat): Adapt for vleff support.
16916 (get_forward_read_vl_insn): New function.
16917 (get_backward_fault_first_load_insn): Ditto.
16918 (source_equal_p): Adapt for vleff support.
16919 (first_ratio_invalid_for_second_sew_p): Remove.
16920 (first_ratio_invalid_for_second_lmul_p): Ditto.
16921 (first_lmul_less_than_second_lmul_p): Ditto.
16922 (first_ratio_less_than_second_ratio_p): Ditto.
16923 (support_relaxed_compatible_p): New function.
16924 (vector_insn_info::operator>): Remove.
16925 (vector_insn_info::operator>=): Refine.
16926 (vector_insn_info::parse_insn): Adapt for vleff support.
16927 (vector_insn_info::compatible_p): Ditto.
16928 (vector_insn_info::update_fault_first_load_avl): New function.
16929 (pass_vsetvl::transfer_after): Adapt for vleff support.
16930 (pass_vsetvl::demand_fusion): Ditto.
16931 (pass_vsetvl::cleanup_insns): Ditto.
16932 * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
16933 redundant condtions.
16934 * config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
16935 * config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
16936 * config/riscv/riscv.md: Adapt for vleff support.
16937 * config/riscv/t-riscv: Ditto.
16938 * config/riscv/vector-iterators.md: New iterator.
16939 * config/riscv/vector.md (read_vlsi): New pattern.
16940 (read_vldi_zero_extend): Ditto.
16941 (@pred_fault_load<mode>): Ditto.
16942
16943 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16944
16945 * config/riscv/riscv-vector-builtins.cc
16946 (function_expander::use_ternop_insn): Use maybe_gen_insn instead.
16947 (function_expander::use_widen_ternop_insn): Ditto.
16948 * optabs.cc (maybe_gen_insn): Extend nops handling.
16949
16950 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16951
16952 * config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
16953 patterns according to RVV ISA.
16954 * config/riscv/vector-iterators.md: New iterators.
16955 * config/riscv/vector.md
16956 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
16957 (@pred_indexed_<order>load<mode>_same_eew): New pattern.
16958 (@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
16959 (@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
16960 (@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
16961 (@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
16962 (@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
16963 (@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
16964 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
16965 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
16966 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
16967 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
16968 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
16969 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
16970
16971 2023-03-10 Michael Collison <collison@rivosinc.com>
16972
16973 * tree-vect-loop-manip.cc (vect_do_peeling): Use
16974 result of constant_lower_bound instead of vf for the lower
16975 bound of the epilog loop trip count.
16976
16977 2023-03-09 Tamar Christina <tamar.christina@arm.com>
16978
16979 * passes.cc (emergency_dump_function): Finish graph generation.
16980
16981 2023-03-09 Tamar Christina <tamar.christina@arm.com>
16982
16983 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
16984 and bottom bit only.
16985
16986 2023-03-09 Andrew Pinski <apinski@marvell.com>
16987
16988 PR tree-optimization/108980
16989 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
16990 Reorgnize the call to warning for not strict flexible arrays
16991 to be before the check of warned.
16992
16993 2023-03-09 Jason Merrill <jason@redhat.com>
16994
16995 * doc/extend.texi: Comment out __is_deducible docs.
16996
16997 2023-03-09 Jason Merrill <jason@redhat.com>
16998
16999 PR c++/105841
17000 * doc/extend.texi (Type Traits):: Document __is_deducible.
17001
17002 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
17003
17004 PR driver/108865
17005 * config.host: add object for x86_64-*-mingw*.
17006 * config/i386/sym-mingw32.cc: dummy file to attach
17007 symbol.
17008 * config/i386/utf8-mingw32.rc: windres resource file.
17009 * config/i386/winnt-utf8.manifest: XML manifest to
17010 enable UTF-8.
17011 * config/i386/x-mingw32: reference to x-mingw32-utf8.
17012 * config/i386/x-mingw32-utf8: Makefile fragment to
17013 embed UTF-8 manifest.
17014
17015 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
17016
17017 * lra-constraints.cc (process_alt_operands): Use operand modes for
17018 clobbered regs instead of the biggest access mode.
17019
17020 2023-03-09 Richard Biener <rguenther@suse.de>
17021
17022 PR middle-end/108995
17023 * fold-const.cc (extract_muldiv_1): Avoid folding
17024 (CST * b) / CST2 when sanitizing overflow and we rely on
17025 overflow being undefined.
17026
17027 2023-03-09 Jakub Jelinek <jakub@redhat.com>
17028 Richard Biener <rguenther@suse.de>
17029
17030 PR tree-optimization/109008
17031 * range-op-float.cc (float_widen_lhs_range): New function.
17032 (foperator_plus::op1_range, foperator_minus::op1_range,
17033 foperator_minus::op2_range, foperator_mult::op1_range,
17034 foperator_div::op1_range, foperator_div::op2_range): Use it.
17035
17036 2023-03-07 Jonathan Grant <jg@jguk.org>
17037
17038 PR sanitizer/81649
17039 * doc/invoke.texi (Instrumentation Options): Clarify
17040 LeakSanitizer behavior.
17041
17042 2023-03-07 Benson Muite <benson_muite@emailplus.org>
17043
17044 * doc/install.texi (Prerequisites): Add link to gmplib.org.
17045
17046 2023-03-07 Pan Li <pan2.li@intel.com>
17047 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17048
17049 PR target/108185
17050 PR target/108654
17051 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
17052 modes.
17053 * config/riscv/riscv.cc (riscv_v_adjust_precision): New.
17054 * config/riscv/riscv.h (riscv_v_adjust_precision): New.
17055 * genmodes.cc (adj_precision): New.
17056 (ADJUST_PRECISION): New.
17057 (emit_mode_adjustments): Handle ADJUST_PRECISION.
17058
17059 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
17060
17061 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
17062
17063 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
17064
17065 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
17066 {s|u}{max|min} in QI, HI and DI modes.
17067 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
17068 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
17069 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
17070 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
17071 saved in SGPRs.
17072
17073 2023-03-06 Richard Biener <rguenther@suse.de>
17074
17075 PR tree-optimization/109025
17076 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
17077 the inner LC PHI use is the inner loop PHI latch definition
17078 before classifying an outer PHI as double reduction.
17079
17080 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
17081
17082 PR target/108429
17083 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
17084 generic.
17085 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
17086 (X86_TUNE_USE_SCATTER): Likewise.
17087
17088 2023-03-06 Xi Ruoyao <xry111@xry111.site>
17089
17090 PR target/109000
17091 * config/loongarch/loongarch.h (FP_RETURN): Use
17092 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
17093 (UNITS_PER_FP_ARG): Likewise.
17094
17095 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17096
17097 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
17098 (pass_vsetvl::backward_demand_fusion): Ditto.
17099
17100 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17101 SiYu Wu <siyu@isrc.iscas.ac.cn>
17102
17103 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
17104 instructions.
17105 (riscv_sm3p1_<mode>): New.
17106 (riscv_sm4ed_<mode>): New.
17107 (riscv_sm4ks_<mode>): New.
17108 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
17109 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
17110 ZKSH's built-in functions.
17111
17112 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17113 SiYu Wu <siyu@isrc.iscas.ac.cn>
17114
17115 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
17116 (riscv_sha256sig1_<mode>): New.
17117 (riscv_sha256sum0_<mode>): New.
17118 (riscv_sha256sum1_<mode>): New.
17119 (riscv_sha512sig0h): New.
17120 (riscv_sha512sig0l): New.
17121 (riscv_sha512sig1h): New.
17122 (riscv_sha512sig1l): New.
17123 (riscv_sha512sum0r): New.
17124 (riscv_sha512sum1r): New.
17125 (riscv_sha512sig0): New.
17126 (riscv_sha512sig1): New.
17127 (riscv_sha512sum0): New.
17128 (riscv_sha512sum1): New.
17129 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
17130 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
17131 built-in functions.
17132 (DIRECT_BUILTIN): Add new.
17133
17134 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17135 SiYu Wu <siyu@isrc.iscas.ac.cn>
17136
17137 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
17138 (DsA): New.
17139 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
17140 (riscv_aes32dsmi): New.
17141 (riscv_aes64ds): New.
17142 (riscv_aes64dsm): New.
17143 (riscv_aes64im): New.
17144 (riscv_aes64ks1i): New.
17145 (riscv_aes64ks2): New.
17146 (riscv_aes32esi): New.
17147 (riscv_aes32esmi): New.
17148 (riscv_aes64es): New.
17149 (riscv_aes64esm): New.
17150 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
17151 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
17152 ZKNE's built-in functions.
17153
17154 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17155 SiYu Wu <siyu@isrc.iscas.ac.cn>
17156
17157 * config/riscv/bitmanip.md: Add ZBKB's instructions.
17158 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
17159 * config/riscv/riscv.md: Add new type for crypto instructions.
17160 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
17161 description file.
17162 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
17163 extension's built-in function file.
17164
17165 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17166 SiYu Wu <siyu@isrc.iscas.ac.cn>
17167
17168 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
17169 (RISCV_FTYPE_NAME3): New.
17170 (RISCV_ATYPE_QI): New.
17171 (RISCV_ATYPE_HI): New.
17172 (RISCV_FTYPE_ATYPES2): New.
17173 (RISCV_FTYPE_ATYPES3): New.
17174 * config/riscv/riscv-ftypes.def (2): New.
17175 (3): New.
17176
17177 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
17178
17179 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
17180 use exact_log2().
17181
17182 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17183 kito-cheng <kito.cheng@sifive.com>
17184
17185 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
17186 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
17187 (riscv_register_pragmas): Add builtin function check call.
17188 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
17189 (check_builtin_call): New function.
17190 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
17191 (class vreinterpret): Ditto.
17192 (class vlmul_ext): Ditto.
17193 (class vlmul_trunc): Ditto.
17194 (class vset): Ditto.
17195 (class vget): Ditto.
17196 (BASE): Ditto.
17197 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17198 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
17199 (vluxei16): Ditto.
17200 (vluxei32): Ditto.
17201 (vluxei64): Ditto.
17202 (vloxei8): Ditto.
17203 (vloxei16): Ditto.
17204 (vloxei32): Ditto.
17205 (vloxei64): Ditto.
17206 (vsuxei8): Ditto.
17207 (vsuxei16): Ditto.
17208 (vsuxei32): Ditto.
17209 (vsuxei64): Ditto.
17210 (vsoxei8): Ditto.
17211 (vsoxei16): Ditto.
17212 (vsoxei32): Ditto.
17213 (vsoxei64): Ditto.
17214 (vundefined): Add new intrinsic.
17215 (vreinterpret): Ditto.
17216 (vlmul_ext): Ditto.
17217 (vlmul_trunc): Ditto.
17218 (vset): Ditto.
17219 (vget): Ditto.
17220 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
17221 (struct narrow_alu_def): Ditto.
17222 (struct reduc_alu_def): Ditto.
17223 (struct vundefined_def): Ditto.
17224 (struct misc_def): Ditto.
17225 (struct vset_def): Ditto.
17226 (struct vget_def): Ditto.
17227 (SHAPE): Ditto.
17228 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
17229 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
17230 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
17231 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
17232 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
17233 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
17234 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
17235 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
17236 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
17237 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
17238 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
17239 (DEF_RVV_LMUL1_OPS): Ditto.
17240 (DEF_RVV_LMUL2_OPS): Ditto.
17241 (DEF_RVV_LMUL4_OPS): Ditto.
17242 (vint16mf4_t): Ditto.
17243 (vint16mf2_t): Ditto.
17244 (vint16m1_t): Ditto.
17245 (vint16m2_t): Ditto.
17246 (vint16m4_t): Ditto.
17247 (vint16m8_t): Ditto.
17248 (vint32mf2_t): Ditto.
17249 (vint32m1_t): Ditto.
17250 (vint32m2_t): Ditto.
17251 (vint32m4_t): Ditto.
17252 (vint32m8_t): Ditto.
17253 (vint64m1_t): Ditto.
17254 (vint64m2_t): Ditto.
17255 (vint64m4_t): Ditto.
17256 (vint64m8_t): Ditto.
17257 (vuint16mf4_t): Ditto.
17258 (vuint16mf2_t): Ditto.
17259 (vuint16m1_t): Ditto.
17260 (vuint16m2_t): Ditto.
17261 (vuint16m4_t): Ditto.
17262 (vuint16m8_t): Ditto.
17263 (vuint32mf2_t): Ditto.
17264 (vuint32m1_t): Ditto.
17265 (vuint32m2_t): Ditto.
17266 (vuint32m4_t): Ditto.
17267 (vuint32m8_t): Ditto.
17268 (vuint64m1_t): Ditto.
17269 (vuint64m2_t): Ditto.
17270 (vuint64m4_t): Ditto.
17271 (vuint64m8_t): Ditto.
17272 (vint8mf4_t): Ditto.
17273 (vint8mf2_t): Ditto.
17274 (vint8m1_t): Ditto.
17275 (vint8m2_t): Ditto.
17276 (vint8m4_t): Ditto.
17277 (vint8m8_t): Ditto.
17278 (vuint8mf4_t): Ditto.
17279 (vuint8mf2_t): Ditto.
17280 (vuint8m1_t): Ditto.
17281 (vuint8m2_t): Ditto.
17282 (vuint8m4_t): Ditto.
17283 (vuint8m8_t): Ditto.
17284 (vint8mf8_t): Ditto.
17285 (vuint8mf8_t): Ditto.
17286 (vfloat32mf2_t): Ditto.
17287 (vfloat32m1_t): Ditto.
17288 (vfloat32m2_t): Ditto.
17289 (vfloat32m4_t): Ditto.
17290 (vfloat64m1_t): Ditto.
17291 (vfloat64m2_t): Ditto.
17292 (vfloat64m4_t): Ditto.
17293 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
17294 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
17295 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
17296 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
17297 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
17298 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
17299 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
17300 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
17301 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
17302 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
17303 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
17304 (DEF_RVV_LMUL1_OPS): Ditto.
17305 (DEF_RVV_LMUL2_OPS): Ditto.
17306 (DEF_RVV_LMUL4_OPS): Ditto.
17307 (DEF_RVV_TYPE_INDEX): Ditto.
17308 (required_extensions_p): Adapt for new intrinsic support/
17309 (get_required_extensions): New function.
17310 (check_required_extensions): Ditto.
17311 (unsigned_base_type_p): Remove.
17312 (rvv_arg_type_info::get_scalar_ptr_type): New function.
17313 (get_mode_for_bitsize): Remove.
17314 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
17315 (rvv_arg_type_info::get_base_vector_type): Ditto.
17316 (rvv_arg_type_info::get_function_type_index): Ditto.
17317 (DEF_RVV_BASE_TYPE): New def.
17318 (function_builder::apply_predication): New class.
17319 (function_expander::mask_mode): Ditto.
17320 (function_checker::function_checker): Ditto.
17321 (function_checker::report_non_ice): Ditto.
17322 (function_checker::report_out_of_range): Ditto.
17323 (function_checker::require_immediate): Ditto.
17324 (function_checker::require_immediate_range): Ditto.
17325 (function_checker::check): Ditto.
17326 (check_builtin_call): Ditto.
17327 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
17328 (DEF_RVV_BASE_TYPE): Ditto.
17329 (DEF_RVV_TYPE_INDEX): Ditto.
17330 (vbool64_t): Ditto.
17331 (vbool32_t): Ditto.
17332 (vbool16_t): Ditto.
17333 (vbool8_t): Ditto.
17334 (vbool4_t): Ditto.
17335 (vbool2_t): Ditto.
17336 (vbool1_t): Ditto.
17337 (vuint8mf8_t): Ditto.
17338 (vuint8mf4_t): Ditto.
17339 (vuint8mf2_t): Ditto.
17340 (vuint8m1_t): Ditto.
17341 (vuint8m2_t): Ditto.
17342 (vint8m4_t): Ditto.
17343 (vuint8m4_t): Ditto.
17344 (vint8m8_t): Ditto.
17345 (vuint8m8_t): Ditto.
17346 (vint16mf4_t): Ditto.
17347 (vuint16mf2_t): Ditto.
17348 (vuint16m1_t): Ditto.
17349 (vuint16m2_t): Ditto.
17350 (vuint16m4_t): Ditto.
17351 (vuint16m8_t): Ditto.
17352 (vint32mf2_t): Ditto.
17353 (vuint32m1_t): Ditto.
17354 (vuint32m2_t): Ditto.
17355 (vuint32m4_t): Ditto.
17356 (vuint32m8_t): Ditto.
17357 (vuint64m1_t): Ditto.
17358 (vuint64m2_t): Ditto.
17359 (vuint64m4_t): Ditto.
17360 (vuint64m8_t): Ditto.
17361 (vfloat32mf2_t): Ditto.
17362 (vfloat32m1_t): Ditto.
17363 (vfloat32m2_t): Ditto.
17364 (vfloat32m4_t): Ditto.
17365 (vfloat32m8_t): Ditto.
17366 (vfloat64m1_t): Ditto.
17367 (vfloat64m4_t): Ditto.
17368 (vector): Move it def.
17369 (scalar): Ditto.
17370 (mask): Ditto.
17371 (signed_vector): Ditto.
17372 (unsigned_vector): Ditto.
17373 (unsigned_scalar): Ditto.
17374 (vector_ptr): Ditto.
17375 (scalar_ptr): Ditto.
17376 (scalar_const_ptr): Ditto.
17377 (void): Ditto.
17378 (size): Ditto.
17379 (ptrdiff): Ditto.
17380 (unsigned_long): Ditto.
17381 (long): Ditto.
17382 (eew8_index): Ditto.
17383 (eew16_index): Ditto.
17384 (eew32_index): Ditto.
17385 (eew64_index): Ditto.
17386 (shift_vector): Ditto.
17387 (double_trunc_vector): Ditto.
17388 (quad_trunc_vector): Ditto.
17389 (oct_trunc_vector): Ditto.
17390 (double_trunc_scalar): Ditto.
17391 (double_trunc_signed_vector): Ditto.
17392 (double_trunc_unsigned_vector): Ditto.
17393 (double_trunc_unsigned_scalar): Ditto.
17394 (double_trunc_float_vector): Ditto.
17395 (float_vector): Ditto.
17396 (lmul1_vector): Ditto.
17397 (widen_lmul1_vector): Ditto.
17398 (eew8_interpret): Ditto.
17399 (eew16_interpret): Ditto.
17400 (eew32_interpret): Ditto.
17401 (eew64_interpret): Ditto.
17402 (vlmul_ext_x2): Ditto.
17403 (vlmul_ext_x4): Ditto.
17404 (vlmul_ext_x8): Ditto.
17405 (vlmul_ext_x16): Ditto.
17406 (vlmul_ext_x32): Ditto.
17407 (vlmul_ext_x64): Ditto.
17408 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
17409 (struct function_type_info): New function.
17410 (struct rvv_arg_type_info): Ditto.
17411 (class function_checker): New class.
17412 (rvv_arg_type_info::get_scalar_type): New function.
17413 (rvv_arg_type_info::get_vector_type): Ditto.
17414 (function_expander::ret_mode): New function.
17415 (function_checker::arg_mode): Ditto.
17416 (function_checker::ret_mode): Ditto.
17417 * config/riscv/t-riscv: Add generator.
17418 * config/riscv/vector-iterators.md: New iterators.
17419 * config/riscv/vector.md (vundefined<mode>): New pattern.
17420 (@vundefined<mode>): Ditto.
17421 (@vreinterpret<mode>): Ditto.
17422 (@vlmul_extx2<mode>): Ditto.
17423 (@vlmul_extx4<mode>): Ditto.
17424 (@vlmul_extx8<mode>): Ditto.
17425 (@vlmul_extx16<mode>): Ditto.
17426 (@vlmul_extx32<mode>): Ditto.
17427 (@vlmul_extx64<mode>): Ditto.
17428 (*vlmul_extx2<mode>): Ditto.
17429 (*vlmul_extx4<mode>): Ditto.
17430 (*vlmul_extx8<mode>): Ditto.
17431 (*vlmul_extx16<mode>): Ditto.
17432 (*vlmul_extx32<mode>): Ditto.
17433 (*vlmul_extx64<mode>): Ditto.
17434 * config/riscv/genrvv-type-indexer.cc: New file.
17435
17436 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17437
17438 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
17439 (slide1_sew64_helper): New function.
17440 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
17441 (get_unknown_min_value): Ditto.
17442 (force_vector_length_operand): Ditto.
17443 (gen_no_side_effects_vsetvl_rtx): Ditto.
17444 (get_vl_x2_rtx): Ditto.
17445 (slide1_sew64_helper): Ditto.
17446 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
17447 (class vrgather): Ditto.
17448 (class vrgatherei16): Ditto.
17449 (class vcompress): Ditto.
17450 (BASE): Ditto.
17451 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17452 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
17453 (vslidedown): Ditto.
17454 (vslide1up): Ditto.
17455 (vslide1down): Ditto.
17456 (vfslide1up): Ditto.
17457 (vfslide1down): Ditto.
17458 (vrgather): Ditto.
17459 (vrgatherei16): Ditto.
17460 (vcompress): Ditto.
17461 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
17462 (vint8mf8_t): Ditto.
17463 (vint8mf4_t): Ditto.
17464 (vint8mf2_t): Ditto.
17465 (vint8m1_t): Ditto.
17466 (vint8m2_t): Ditto.
17467 (vint8m4_t): Ditto.
17468 (vint16mf4_t): Ditto.
17469 (vint16mf2_t): Ditto.
17470 (vint16m1_t): Ditto.
17471 (vint16m2_t): Ditto.
17472 (vint16m4_t): Ditto.
17473 (vint16m8_t): Ditto.
17474 (vint32mf2_t): Ditto.
17475 (vint32m1_t): Ditto.
17476 (vint32m2_t): Ditto.
17477 (vint32m4_t): Ditto.
17478 (vint32m8_t): Ditto.
17479 (vint64m1_t): Ditto.
17480 (vint64m2_t): Ditto.
17481 (vint64m4_t): Ditto.
17482 (vint64m8_t): Ditto.
17483 (vuint8mf8_t): Ditto.
17484 (vuint8mf4_t): Ditto.
17485 (vuint8mf2_t): Ditto.
17486 (vuint8m1_t): Ditto.
17487 (vuint8m2_t): Ditto.
17488 (vuint8m4_t): Ditto.
17489 (vuint16mf4_t): Ditto.
17490 (vuint16mf2_t): Ditto.
17491 (vuint16m1_t): Ditto.
17492 (vuint16m2_t): Ditto.
17493 (vuint16m4_t): Ditto.
17494 (vuint16m8_t): Ditto.
17495 (vuint32mf2_t): Ditto.
17496 (vuint32m1_t): Ditto.
17497 (vuint32m2_t): Ditto.
17498 (vuint32m4_t): Ditto.
17499 (vuint32m8_t): Ditto.
17500 (vuint64m1_t): Ditto.
17501 (vuint64m2_t): Ditto.
17502 (vuint64m4_t): Ditto.
17503 (vuint64m8_t): Ditto.
17504 (vfloat32mf2_t): Ditto.
17505 (vfloat32m1_t): Ditto.
17506 (vfloat32m2_t): Ditto.
17507 (vfloat32m4_t): Ditto.
17508 (vfloat32m8_t): Ditto.
17509 (vfloat64m1_t): Ditto.
17510 (vfloat64m2_t): Ditto.
17511 (vfloat64m4_t): Ditto.
17512 (vfloat64m8_t): Ditto.
17513 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
17514 * config/riscv/riscv.md: Adjust RVV instruction types.
17515 * config/riscv/vector-iterators.md (down): New iterator.
17516 (=vd,vr): New attribute.
17517 (UNSPEC_VSLIDE1UP): New unspec.
17518 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
17519 (*pred_slide<ud><mode>): Ditto.
17520 (*pred_slide<ud><mode>_extended): Ditto.
17521 (@pred_gather<mode>): Ditto.
17522 (@pred_gather<mode>_scalar): Ditto.
17523 (@pred_gatherei16<mode>): Ditto.
17524 (@pred_compress<mode>): Ditto.
17525
17526 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17527
17528 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
17529
17530 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17531
17532 * config/riscv/constraints.md (Wb1): New constraint.
17533 * config/riscv/predicates.md
17534 (vector_least_significant_set_mask_operand): New predicate.
17535 (vector_broadcast_mask_operand): Ditto.
17536 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
17537 (gen_scalar_move_mask): New function.
17538 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
17539 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
17540 (class vmv_s): Ditto.
17541 (BASE): Ditto.
17542 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17543 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
17544 (vmv_s): Ditto.
17545 (vfmv_f): Ditto.
17546 (vfmv_s): Ditto.
17547 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
17548 (SHAPE): Ditto.
17549 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
17550 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
17551 (function_expander::use_exact_insn): New function.
17552 (function_expander::use_contiguous_load_insn): New function.
17553 (function_expander::use_contiguous_store_insn): New function.
17554 (function_expander::use_ternop_insn): New function.
17555 (function_expander::use_widen_ternop_insn): New function.
17556 (function_expander::use_scalar_move_insn): New function.
17557 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
17558 * config/riscv/riscv-vector-builtins.h
17559 (function_expander::add_scalar_move_mask_operand): New class.
17560 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
17561 (scalar_move_insn_p): Ditto.
17562 (has_vsetvl_killed_avl_p): Ditto.
17563 (anticipatable_occurrence_p): Ditto.
17564 (insert_vsetvl): Ditto.
17565 (get_vl_vtype_info): Ditto.
17566 (calculate_sew): Ditto.
17567 (calculate_vlmul): Ditto.
17568 (incompatible_avl_p): Ditto.
17569 (different_sew_p): Ditto.
17570 (different_lmul_p): Ditto.
17571 (different_ratio_p): Ditto.
17572 (different_tail_policy_p): Ditto.
17573 (different_mask_policy_p): Ditto.
17574 (possible_zero_avl_p): Ditto.
17575 (first_ratio_invalid_for_second_sew_p): Ditto.
17576 (first_ratio_invalid_for_second_lmul_p): Ditto.
17577 (second_ratio_invalid_for_first_sew_p): Ditto.
17578 (second_ratio_invalid_for_first_lmul_p): Ditto.
17579 (second_sew_less_than_first_sew_p): Ditto.
17580 (first_sew_less_than_second_sew_p): Ditto.
17581 (compare_lmul): Ditto.
17582 (second_lmul_less_than_first_lmul_p): Ditto.
17583 (first_lmul_less_than_second_lmul_p): Ditto.
17584 (first_ratio_less_than_second_ratio_p): Ditto.
17585 (second_ratio_less_than_first_ratio_p): Ditto.
17586 (DEF_INCOMPATIBLE_COND): Ditto.
17587 (greatest_sew): Ditto.
17588 (first_sew): Ditto.
17589 (second_sew): Ditto.
17590 (first_vlmul): Ditto.
17591 (second_vlmul): Ditto.
17592 (first_ratio): Ditto.
17593 (second_ratio): Ditto.
17594 (vlmul_for_first_sew_second_ratio): Ditto.
17595 (ratio_for_second_sew_first_vlmul): Ditto.
17596 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
17597 (always_unavailable): Ditto.
17598 (avl_unavailable_p): Ditto.
17599 (sew_unavailable_p): Ditto.
17600 (lmul_unavailable_p): Ditto.
17601 (ge_sew_unavailable_p): Ditto.
17602 (ge_sew_lmul_unavailable_p): Ditto.
17603 (ge_sew_ratio_unavailable_p): Ditto.
17604 (DEF_UNAVAILABLE_COND): Ditto.
17605 (same_sew_lmul_demand_p): Ditto.
17606 (propagate_avl_across_demands_p): Ditto.
17607 (reg_available_p): Ditto.
17608 (avl_info::has_non_zero_avl): Ditto.
17609 (vl_vtype_info::has_non_zero_avl): Ditto.
17610 (vector_insn_info::operator>=): Refactor.
17611 (vector_insn_info::parse_insn): Adjust for scalar move.
17612 (vector_insn_info::demand_vl_vtype): Remove.
17613 (vector_insn_info::compatible_p): New function.
17614 (vector_insn_info::compatible_avl_p): Ditto.
17615 (vector_insn_info::compatible_vtype_p): Ditto.
17616 (vector_insn_info::available_p): Ditto.
17617 (vector_insn_info::merge): Ditto.
17618 (vector_insn_info::fuse_avl): Ditto.
17619 (vector_insn_info::fuse_sew_lmul): Ditto.
17620 (vector_insn_info::fuse_tail_policy): Ditto.
17621 (vector_insn_info::fuse_mask_policy): Ditto.
17622 (vector_insn_info::dump): Ditto.
17623 (vector_infos_manager::release): Ditto.
17624 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
17625 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
17626 (pass_vsetvl::hard_empty_block_p): Ditto.
17627 (pass_vsetvl::backward_demand_fusion): Ditto.
17628 (pass_vsetvl::forward_demand_fusion): Ditto.
17629 (pass_vsetvl::refine_vsetvls): Ditto.
17630 (pass_vsetvl::cleanup_vsetvls): Ditto.
17631 (pass_vsetvl::commit_vsetvls): Ditto.
17632 (pass_vsetvl::propagate_avl): Ditto.
17633 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
17634 (struct demands_pair): Ditto.
17635 (struct demands_cond): Ditto.
17636 (struct demands_fuse_rule): Ditto.
17637 * config/riscv/vector-iterators.md: New iterator.
17638 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
17639 (*pred_broadcast<mode>): Ditto.
17640 (*pred_broadcast<mode>_extended_scalar): Ditto.
17641 (@pred_extract_first<mode>): Ditto.
17642 (*pred_extract_first<mode>): Ditto.
17643 (@pred_extract_first_trunc<mode>): Ditto.
17644 * config/riscv/riscv-vsetvl.def: New file.
17645
17646 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
17647
17648 * config/riscv/bitmanip.md: allow 0 constant in max/min
17649 pattern.
17650
17651 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
17652
17653 * config/riscv/bitmanip.md: Fix wrong index in the check.
17654
17655 2023-03-04 Jakub Jelinek <jakub@redhat.com>
17656
17657 PR middle-end/109006
17658 * vec.cc (test_auto_alias): Adjust comment for removal of
17659 m_vecdata.
17660 * read-rtl-function.cc (function_reader::parse_block): Likewise.
17661 * gdbhooks.py: Likewise.
17662
17663 2023-03-04 Jakub Jelinek <jakub@redhat.com>
17664
17665 PR testsuite/108973
17666 * selftest-diagnostic.cc
17667 (test_diagnostic_context::test_diagnostic_context): Set
17668 caret_max_width to 80.
17669
17670 2023-03-03 Alexandre Oliva <oliva@adacore.com>
17671
17672 * gimple-ssa-warn-access.cc
17673 (pass_waccess::check_dangling_stores): Skip non-stores.
17674
17675 2023-03-03 Alexandre Oliva <oliva@adacore.com>
17676
17677 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
17678 after vmsr and vmrs, and lower the case of P0.
17679
17680 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
17681
17682 PR middle-end/109006
17683 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
17684
17685 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
17686
17687 PR middle-end/109006
17688 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
17689
17690 2023-03-03 Jakub Jelinek <jakub@redhat.com>
17691
17692 PR c/108986
17693 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
17694 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
17695 suppressed on stmt. For [static %E] warning, print access_nelts
17696 rather than access_size. Fix up comment wording.
17697
17698 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
17699
17700 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
17701 arch14 instead of z16.
17702
17703 2023-03-03 Anthony Green <green@moxielogic.com>
17704
17705 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
17706
17707 2023-03-03 Anthony Green <green@moxielogic.com>
17708
17709 * config/moxie/constraints.md (A, B, W): Change
17710 define_constraint to define_memory_constraint.
17711
17712 2023-03-03 Xi Ruoyao <xry111@xry111.site>
17713
17714 * toplev.cc (process_options): Fix the spelling of
17715 "-fstack-clash-protection".
17716
17717 2023-03-03 Richard Biener <rguenther@suse.de>
17718
17719 PR tree-optimization/109002
17720 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
17721 PHI-translate ANTIC_IN.
17722
17723 2023-03-03 Jakub Jelinek <jakub@redhat.com>
17724
17725 PR tree-optimization/108988
17726 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
17727 size_type_node before passing it as argument to fwrite. Formatting
17728 fixes.
17729
17730 2023-03-03 Richard Biener <rguenther@suse.de>
17731
17732 PR target/108738
17733 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
17734 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
17735 * config/i386/i386-features.h (scalar_chain::max_visits): New.
17736 (scalar_chain::build): Add bitmap parameter, return boolean.
17737 (scalar_chain::add_insn): Likewise.
17738 (scalar_chain::analyze_register_chain): Likewise.
17739 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
17740 Initialize max_visits.
17741 (scalar_chain::analyze_register_chain): When we exhaust
17742 max_visits, abort. Also abort when running into any
17743 disallowed insn.
17744 (scalar_chain::add_insn): Propagate abort.
17745 (scalar_chain::build): Likewise. When aborting amend
17746 the set of disallowed insn with the insns set.
17747 (convert_scalars_to_vector): Adjust. Do not convert aborted
17748 chains.
17749
17750 2023-03-03 Richard Biener <rguenther@suse.de>
17751
17752 PR debug/108772
17753 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
17754 generate a DIE for a function scope static.
17755
17756 2023-03-03 Alexandre Oliva <oliva@adacore.com>
17757
17758 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
17759
17760 2023-03-02 Jakub Jelinek <jakub@redhat.com>
17761
17762 PR target/108883
17763 * target.h (emit_support_tinfos_callback): New typedef.
17764 * targhooks.h (default_emit_support_tinfos): Declare.
17765 * targhooks.cc (default_emit_support_tinfos): New function.
17766 * target.def (emit_support_tinfos): New target hook.
17767 * doc/tm.texi.in (emit_support_tinfos): Document it.
17768 * doc/tm.texi: Regenerated.
17769 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
17770 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
17771
17772 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
17773
17774 * ira-costs.cc: Include print-rtl.h.
17775 (record_reg_classes, scan_one_insn): Add code to print debug info.
17776 (record_operand_costs): Find and use smaller cost for hard reg
17777 move.
17778
17779 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
17780 Paul-Antoine Arras <pa@codesourcery.com>
17781
17782 * builtins.cc (mathfn_built_in_explicit): New.
17783 * config/gcn/gcn.cc: Include case-cfn-macros.h.
17784 (mathfn_built_in_explicit): Add prototype.
17785 (gcn_vectorize_builtin_vectorized_function): New.
17786 (gcn_libc_has_function): New.
17787 (TARGET_LIBC_HAS_FUNCTION): Define.
17788 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
17789
17790 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
17791
17792 PR tree-optimization/108979
17793 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
17794 operations on invariants.
17795
17796 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
17797
17798 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
17799 * config/s390/s390.cc (s390_option_override_internal): Make
17800 partial vector usage the default from z13 on.
17801 * config/s390/vector.md (len_load_v16qi): Add.
17802 (len_store_v16qi): Add.
17803
17804 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
17805
17806 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
17807 of constant 0 offset.
17808
17809 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
17810
17811 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
17812 instead of long.
17813 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
17814
17815 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
17816
17817 * config.gcc: add -with-{no-}msa build option.
17818 * config/mips/mips.h: Likewise.
17819 * doc/install.texi: Likewise.
17820
17821 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
17822
17823 PR tree-optimization/108603
17824 * explow.cc (convert_memory_address_addr_space_1): Only wrap
17825 the result of a recursive call in a CONST if no instructions
17826 were emitted.
17827
17828 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
17829
17830 PR tree-optimization/108430
17831 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
17832 of inverted condition.
17833
17834 2023-03-02 Jakub Jelinek <jakub@redhat.com>
17835
17836 PR c++/108934
17837 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
17838 comparison copy the bytes from ptr to a temporary buffer and clearing
17839 padding bits in there.
17840
17841 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
17842
17843 PR middle-end/108545
17844 * gimplify.cc (struct tree_operand_hash_no_se): New.
17845 (omp_index_mapping_groups_1, omp_index_mapping_groups,
17846 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
17847 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
17848 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
17849 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
17850 of tree_operand_hash.
17851
17852 2023-03-01 LIU Hao <lh_mouse@126.com>
17853
17854 PR pch/14940
17855 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
17856 Remove the size limit `pch_VA_max_size`
17857
17858 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
17859
17860 PR middle-end/108546
17861 * omp-low.cc (lower_omp_target): Remove optional handling
17862 on the receiver side, i.e. inside target (data), for
17863 use_device_ptr.
17864
17865 2023-03-01 Jakub Jelinek <jakub@redhat.com>
17866
17867 PR debug/108967
17868 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
17869 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
17870
17871 2023-03-01 Richard Biener <rguenther@suse.de>
17872
17873 PR tree-optimization/108970
17874 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
17875 Check we can copy the BBs.
17876 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
17877 check.
17878 (vect_do_peeling): Streamline error handling.
17879
17880 2023-03-01 Richard Biener <rguenther@suse.de>
17881
17882 PR tree-optimization/108950
17883 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
17884 Check oprnd0 is defined in the loop.
17885 * tree-vect-loop.cc (vectorizable_reduction): Record all
17886 operands vector types, compute that of invariants and
17887 properly update their SLP nodes.
17888
17889 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
17890
17891 PR target/108240
17892 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
17893 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
17894
17895 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
17896
17897 PR middle-end/107411
17898 PR middle-end/107411
17899 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
17900 xasprintf.
17901 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
17902 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
17903
17904 2023-02-28 Jakub Jelinek <jakub@redhat.com>
17905
17906 PR sanitizer/108894
17907 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
17908 comparison rather than index > bound.
17909 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
17910 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
17911 * doc/invoke.texi (-fsanitize=bounds): Document that whether
17912 flexible array member-like arrays are instrumented or not depends
17913 on -fstrict-flex-arrays* options of strict_flex_array attributes.
17914 (-fsanitize=bounds-strict): Document that flexible array members
17915 are not instrumented.
17916
17917 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
17918
17919 PR target/108922
17920 Revert:
17921 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
17922 (fmod<mode>3): Ditto.
17923 (fpremxf4_i387): Ditto.
17924 (reminderxf3): Ditto.
17925 (reminder<mode>3): Ditto.
17926 (fprem1xf4_i387): Ditto.
17927
17928 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
17929
17930 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
17931 generating FFS with mismatched operand and result modes, by using
17932 an explicit SIGN_EXTEND/ZERO_EXTEND.
17933 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
17934 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
17935
17936 2023-02-27 Patrick Palka <ppalka@redhat.com>
17937
17938 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
17939 * lra-int.h (lra_change_class): Likewise.
17940 * recog.h (which_op_alt): Likewise.
17941 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
17942 instead of static.
17943
17944 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17945
17946 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
17947 New prototype.
17948 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
17949 New function.
17950 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
17951 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
17952
17953 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
17954
17955 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
17956 (xtensa_get_config_v3): New functions.
17957
17958 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17959
17960 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
17961
17962 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
17963
17964 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
17965 the macro to 0x1000000000.
17966
17967 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
17968
17969 PR modula2/108261
17970 * doc/gm2.texi (-fm2-pathname): New option documented.
17971 (-fm2-pathnameI): New option documented.
17972 (-fm2-prefix=): New option documented.
17973 (-fruntime-modules=): Update default module list.
17974
17975 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
17976
17977 PR target/108919
17978 * config/xtensa/xtensa-protos.h
17979 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
17980 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
17981 to xtensa_expand_call.
17982 (xtensa_expand_call): Emit the call and add a clobber expression
17983 for the static chain to it in case of windowed ABI.
17984 * config/xtensa/xtensa.md (call, call_value, sibcall)
17985 (sibcall_value): Call xtensa_expand_call and complete expansion
17986 right after that call.
17987
17988 2023-02-24 Richard Biener <rguenther@suse.de>
17989
17990 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
17991 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
17992 changing alignment of vec<T, A, vl_embed> and simplifying
17993 address.
17994 (vec<T, A, vl_embed>::address): Compute as this + 1.
17995 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
17996 vector instead of the offset of the m_vecdata member.
17997 (auto_vec<T, N>::m_data): Turn storage into
17998 uninitialized unsigned char.
17999 (auto_vec<T, N>::auto_vec): Allow allocation of one
18000 stack member. Initialize m_vec in a special way to
18001 avoid later stringop overflow diagnostics.
18002 * vec.cc (test_auto_alias): New.
18003 (vec_cc_tests): Call it.
18004
18005 2023-02-24 Richard Biener <rguenther@suse.de>
18006
18007 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
18008 take a const reference to the object, use address to
18009 access data.
18010 (vec<T, A, vl_embed>::contains): Use address to access data.
18011 (vec<T, A, vl_embed>::operator[]): Use address instead of
18012 m_vecdata to access data.
18013 (vec<T, A, vl_embed>::iterate): Likewise.
18014 (vec<T, A, vl_embed>::copy): Likewise.
18015 (vec<T, A, vl_embed>::quick_push): Likewise.
18016 (vec<T, A, vl_embed>::pop): Likewise.
18017 (vec<T, A, vl_embed>::quick_insert): Likewise.
18018 (vec<T, A, vl_embed>::ordered_remove): Likewise.
18019 (vec<T, A, vl_embed>::unordered_remove): Likewise.
18020 (vec<T, A, vl_embed>::block_remove): Likewise.
18021 (vec<T, A, vl_heap>::address): Likewise.
18022
18023 2023-02-24 Martin Liska <mliska@suse.cz>
18024
18025 PR sanitizer/108834
18026 * asan.cc (asan_add_global): Use proper TU name for normal
18027 global variables (and aux_base_name for the artificial one).
18028
18029 2023-02-24 Jakub Jelinek <jakub@redhat.com>
18030
18031 * config/i386/i386-builtin.def: Update description of BDESC
18032 and BDESC_FIRST in file comment to include mask2.
18033
18034 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18035
18036 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
18037
18038 2023-02-24 Jakub Jelinek <jakub@redhat.com>
18039
18040 PR middle-end/108854
18041 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
18042 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
18043 nodes and adjust their DECL_CONTEXT.
18044
18045 2023-02-24 Jakub Jelinek <jakub@redhat.com>
18046
18047 PR target/108881
18048 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
18049 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
18050 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
18051 __builtin_ia32_cvtne2ps2bf16_v8bf,
18052 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
18053 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
18054 __builtin_ia32_cvtneps2bf16_v8sf_mask,
18055 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
18056 __builtin_ia32_cvtneps2bf16_v4sf_mask,
18057 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
18058 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
18059 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
18060 __builtin_ia32_dpbf16ps_v4sf_mask,
18061 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
18062 OPTION_MASK_ISA_AVX512VL.
18063
18064 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
18065
18066 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
18067 Add non-compact 32-bit multilibs.
18068
18069 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
18070
18071 * config/mips/mips.md (*clo<mode>2): New pattern.
18072
18073 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
18074
18075 * config/mips/mips.h (machine_function): New variable
18076 use_hazard_barrier_return_p.
18077 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
18078 (mips_hb_return_internal): New insn pattern.
18079 * config/mips/mips.cc (mips_attribute_table): Add attribute
18080 use_hazard_barrier_return.
18081 (mips_use_hazard_barrier_return_p): New static function.
18082 (mips_function_attr_inlinable_p): Likewise.
18083 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
18084 Emit error for unsupported architecture choice.
18085 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
18086 Return false for use_hazard_barrier_return.
18087 (mips_expand_epilogue): Emit hazard barrier return.
18088 * doc/extend.texi: Document use_hazard_barrier_return.
18089
18090 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
18091
18092 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
18093 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
18094 for the gcc-internal headers.
18095
18096 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
18097
18098 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
18099 and $(POSTCOMPILE) instead of manual dependency listing.
18100 * config/xtensa/xtensa-dynconfig.c: Rename to ...
18101 * config/xtensa/xtensa-dynconfig.cc: ... this.
18102
18103 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
18104
18105 * doc/cfg.texi: Reorder index entries around @items.
18106 * doc/cpp.texi: Ditto.
18107 * doc/cppenv.texi: Ditto.
18108 * doc/cppopts.texi: Ditto.
18109 * doc/generic.texi: Ditto.
18110 * doc/install.texi: Ditto.
18111 * doc/extend.texi: Ditto.
18112 * doc/invoke.texi: Ditto.
18113 * doc/md.texi: Ditto.
18114 * doc/rtl.texi: Ditto.
18115 * doc/tm.texi.in: Ditto.
18116 * doc/trouble.texi: Ditto.
18117 * doc/tm.texi: Regenerate.
18118
18119 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18120
18121 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
18122 the occurrence of general-purpose register used only once and for
18123 transferring intermediate value.
18124
18125 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18126
18127 * config/xtensa/xtensa.cc (machine_function): Add new member
18128 'eliminated_callee_saved_bmp'.
18129 (xtensa_can_eliminate_callee_saved_reg_p): New function to
18130 determine whether the register can be eliminated or not.
18131 (xtensa_expand_prologue): Add invoking the above function and
18132 elimination the use of callee-saved register by using its stack
18133 slot through the stack pointer (or the frame pointer if needed)
18134 directly.
18135 (xtensa_expand_prologue): Modify to not emit register restoration
18136 insn from its stack slot if the register is already eliminated.
18137
18138 2023-02-23 Jakub Jelinek <jakub@redhat.com>
18139
18140 PR translation/108890
18141 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
18142 around fatal_error format strings.
18143
18144 2023-02-23 Richard Biener <rguenther@suse.de>
18145
18146 * tree-ssa-structalias.cc (handle_lhs_call): Do not
18147 re-create rhsc, only truncate it.
18148
18149 2023-02-23 Jakub Jelinek <jakub@redhat.com>
18150
18151 PR middle-end/106258
18152 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
18153 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
18154
18155 2023-02-23 Richard Biener <rguenther@suse.de>
18156
18157 * tree-if-conv.cc (tree_if_conversion): Properly manage
18158 memory of refs and the contained data references.
18159
18160 2023-02-23 Richard Biener <rguenther@suse.de>
18161
18162 PR tree-optimization/108888
18163 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
18164 calls to predicate.
18165 (predicate_statements): Only predicate calls with PLF_2.
18166
18167 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18168
18169 * config/xtensa/xtensa.md
18170 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
18171 Add missing "SI:" to PLUS RTXes.
18172
18173 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
18174
18175 PR target/108876
18176 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
18177 Emit (use (reg:SI A0_REG)) at the end in the sibling call
18178 (i.e. the same place as (return) in the normal call).
18179
18180 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
18181
18182 Revert:
18183 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
18184
18185 PR target/108876
18186 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
18187 for A0_REG.
18188 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
18189 (sibcall_value, sibcall_value_internal): Add 'use' expression
18190 for A0_REG.
18191
18192 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
18193
18194 * doc/cppdiropts.texi: Reorder @opindex commands to precede
18195 @items they relate to.
18196 * doc/cppopts.texi: Ditto.
18197 * doc/cppwarnopts.texi: Ditto.
18198 * doc/invoke.texi: Ditto.
18199 * doc/lto.texi: Ditto.
18200
18201 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
18202
18203 * internal-fn.cc (expand_MASK_CALL): New.
18204 * internal-fn.def (MASK_CALL): New.
18205 * internal-fn.h (expand_MASK_CALL): New prototype.
18206 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
18207 for mask arguments also.
18208 * tree-if-conv.cc: Include cgraph.h.
18209 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
18210 (predicate_statements): Convert functions to IFN_MASK_CALL.
18211 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
18212 IFN_MASK_CALL as a SIMD function call.
18213 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
18214 IFN_MASK_CALL as an inbranch SIMD function call.
18215 Generate the mask vector arguments.
18216
18217 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18218
18219 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
18220 (class widen_reducop): Ditto.
18221 (class freducop): Ditto.
18222 (class widen_freducop): Ditto.
18223 (BASE): Ditto.
18224 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18225 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
18226 (vredmaxu): Ditto.
18227 (vredmax): Ditto.
18228 (vredminu): Ditto.
18229 (vredmin): Ditto.
18230 (vredand): Ditto.
18231 (vredor): Ditto.
18232 (vredxor): Ditto.
18233 (vwredsum): Ditto.
18234 (vwredsumu): Ditto.
18235 (vfredusum): Ditto.
18236 (vfredosum): Ditto.
18237 (vfredmax): Ditto.
18238 (vfredmin): Ditto.
18239 (vfwredosum): Ditto.
18240 (vfwredusum): Ditto.
18241 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
18242 (SHAPE): Ditto.
18243 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
18244 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
18245 (DEF_RVV_WU_OPS): Ditto.
18246 (DEF_RVV_WF_OPS): Ditto.
18247 (vint8mf8_t): Ditto.
18248 (vint8mf4_t): Ditto.
18249 (vint8mf2_t): Ditto.
18250 (vint8m1_t): Ditto.
18251 (vint8m2_t): Ditto.
18252 (vint8m4_t): Ditto.
18253 (vint8m8_t): Ditto.
18254 (vint16mf4_t): Ditto.
18255 (vint16mf2_t): Ditto.
18256 (vint16m1_t): Ditto.
18257 (vint16m2_t): Ditto.
18258 (vint16m4_t): Ditto.
18259 (vint16m8_t): Ditto.
18260 (vint32mf2_t): Ditto.
18261 (vint32m1_t): Ditto.
18262 (vint32m2_t): Ditto.
18263 (vint32m4_t): Ditto.
18264 (vint32m8_t): Ditto.
18265 (vuint8mf8_t): Ditto.
18266 (vuint8mf4_t): Ditto.
18267 (vuint8mf2_t): Ditto.
18268 (vuint8m1_t): Ditto.
18269 (vuint8m2_t): Ditto.
18270 (vuint8m4_t): Ditto.
18271 (vuint8m8_t): Ditto.
18272 (vuint16mf4_t): Ditto.
18273 (vuint16mf2_t): Ditto.
18274 (vuint16m1_t): Ditto.
18275 (vuint16m2_t): Ditto.
18276 (vuint16m4_t): Ditto.
18277 (vuint16m8_t): Ditto.
18278 (vuint32mf2_t): Ditto.
18279 (vuint32m1_t): Ditto.
18280 (vuint32m2_t): Ditto.
18281 (vuint32m4_t): Ditto.
18282 (vuint32m8_t): Ditto.
18283 (vfloat32mf2_t): Ditto.
18284 (vfloat32m1_t): Ditto.
18285 (vfloat32m2_t): Ditto.
18286 (vfloat32m4_t): Ditto.
18287 (vfloat32m8_t): Ditto.
18288 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
18289 (DEF_RVV_WU_OPS): Ditto.
18290 (DEF_RVV_WF_OPS): Ditto.
18291 (required_extensions_p): Add reduction support.
18292 (rvv_arg_type_info::get_base_vector_type): Ditto.
18293 (rvv_arg_type_info::get_tree_type): Ditto.
18294 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
18295 * config/riscv/riscv.md: Ditto.
18296 * config/riscv/vector-iterators.md (minu): Ditto.
18297 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
18298 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
18299 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
18300 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
18301 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
18302 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
18303 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
18304
18305 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18306
18307 * config/riscv/iterators.md: New iterator.
18308 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
18309 (enum ternop_type): New enum.
18310 (class vmacc): New class.
18311 (class imac): Ditto.
18312 (class vnmsac): Ditto.
18313 (enum widen_ternop_type): New enum.
18314 (class vmadd): Ditto.
18315 (class vnmsub): Ditto.
18316 (class iwmac): Ditto.
18317 (class vwmacc): Ditto.
18318 (class vwmaccu): Ditto.
18319 (class vwmaccsu): Ditto.
18320 (class vwmaccus): Ditto.
18321 (class reverse_binop): Ditto.
18322 (class vfmacc): Ditto.
18323 (class vfnmsac): Ditto.
18324 (class vfmadd): Ditto.
18325 (class vfnmsub): Ditto.
18326 (class vfnmacc): Ditto.
18327 (class vfmsac): Ditto.
18328 (class vfnmadd): Ditto.
18329 (class vfmsub): Ditto.
18330 (class vfwmacc): Ditto.
18331 (class vfwnmacc): Ditto.
18332 (class vfwmsac): Ditto.
18333 (class vfwnmsac): Ditto.
18334 (class float_misc): Ditto.
18335 (class fcmp): Ditto.
18336 (class vfclass): Ditto.
18337 (class vfcvt_x): Ditto.
18338 (class vfcvt_rtz_x): Ditto.
18339 (class vfcvt_f): Ditto.
18340 (class vfwcvt_x): Ditto.
18341 (class vfwcvt_rtz_x): Ditto.
18342 (class vfwcvt_f): Ditto.
18343 (class vfncvt_x): Ditto.
18344 (class vfncvt_rtz_x): Ditto.
18345 (class vfncvt_f): Ditto.
18346 (class vfncvt_rod_f): Ditto.
18347 (BASE): Ditto.
18348 * config/riscv/riscv-vector-builtins-bases.h:
18349 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
18350 (vsext): Ditto.
18351 (vfadd): Ditto.
18352 (vfsub): Ditto.
18353 (vfrsub): Ditto.
18354 (vfwadd): Ditto.
18355 (vfwsub): Ditto.
18356 (vfmul): Ditto.
18357 (vfdiv): Ditto.
18358 (vfrdiv): Ditto.
18359 (vfwmul): Ditto.
18360 (vfmacc): Ditto.
18361 (vfnmsac): Ditto.
18362 (vfmadd): Ditto.
18363 (vfnmsub): Ditto.
18364 (vfnmacc): Ditto.
18365 (vfmsac): Ditto.
18366 (vfnmadd): Ditto.
18367 (vfmsub): Ditto.
18368 (vfwmacc): Ditto.
18369 (vfwnmacc): Ditto.
18370 (vfwmsac): Ditto.
18371 (vfwnmsac): Ditto.
18372 (vfsqrt): Ditto.
18373 (vfrsqrt7): Ditto.
18374 (vfrec7): Ditto.
18375 (vfmin): Ditto.
18376 (vfmax): Ditto.
18377 (vfsgnj): Ditto.
18378 (vfsgnjn): Ditto.
18379 (vfsgnjx): Ditto.
18380 (vfneg): Ditto.
18381 (vfabs): Ditto.
18382 (vmfeq): Ditto.
18383 (vmfne): Ditto.
18384 (vmflt): Ditto.
18385 (vmfle): Ditto.
18386 (vmfgt): Ditto.
18387 (vmfge): Ditto.
18388 (vfclass): Ditto.
18389 (vfmerge): Ditto.
18390 (vfmv_v): Ditto.
18391 (vfcvt_x): Ditto.
18392 (vfcvt_xu): Ditto.
18393 (vfcvt_rtz_x): Ditto.
18394 (vfcvt_rtz_xu): Ditto.
18395 (vfcvt_f): Ditto.
18396 (vfwcvt_x): Ditto.
18397 (vfwcvt_xu): Ditto.
18398 (vfwcvt_rtz_x): Ditto.
18399 (vfwcvt_rtz_xu): Ditto.
18400 (vfwcvt_f): Ditto.
18401 (vfncvt_x): Ditto.
18402 (vfncvt_xu): Ditto.
18403 (vfncvt_rtz_x): Ditto.
18404 (vfncvt_rtz_xu): Ditto.
18405 (vfncvt_f): Ditto.
18406 (vfncvt_rod_f): Ditto.
18407 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
18408 (struct move_def): Ditto.
18409 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
18410 (DEF_RVV_CONVERT_I_OPS): Ditto.
18411 (DEF_RVV_CONVERT_U_OPS): Ditto.
18412 (DEF_RVV_WCONVERT_I_OPS): Ditto.
18413 (DEF_RVV_WCONVERT_U_OPS): Ditto.
18414 (DEF_RVV_WCONVERT_F_OPS): Ditto.
18415 (vfloat64m1_t): Ditto.
18416 (vfloat64m2_t): Ditto.
18417 (vfloat64m4_t): Ditto.
18418 (vfloat64m8_t): Ditto.
18419 (vint32mf2_t): Ditto.
18420 (vint32m1_t): Ditto.
18421 (vint32m2_t): Ditto.
18422 (vint32m4_t): Ditto.
18423 (vint32m8_t): Ditto.
18424 (vint64m1_t): Ditto.
18425 (vint64m2_t): Ditto.
18426 (vint64m4_t): Ditto.
18427 (vint64m8_t): Ditto.
18428 (vuint32mf2_t): Ditto.
18429 (vuint32m1_t): Ditto.
18430 (vuint32m2_t): Ditto.
18431 (vuint32m4_t): Ditto.
18432 (vuint32m8_t): Ditto.
18433 (vuint64m1_t): Ditto.
18434 (vuint64m2_t): Ditto.
18435 (vuint64m4_t): Ditto.
18436 (vuint64m8_t): Ditto.
18437 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
18438 (DEF_RVV_CONVERT_U_OPS): Ditto.
18439 (DEF_RVV_WCONVERT_I_OPS): Ditto.
18440 (DEF_RVV_WCONVERT_U_OPS): Ditto.
18441 (DEF_RVV_WCONVERT_F_OPS): Ditto.
18442 (DEF_RVV_F_OPS): Ditto.
18443 (DEF_RVV_WEXTF_OPS): Ditto.
18444 (required_extensions_p): Adjust for floating-point support.
18445 (check_required_extensions): Ditto.
18446 (unsigned_base_type_p): Ditto.
18447 (get_mode_for_bitsize): Ditto.
18448 (rvv_arg_type_info::get_base_vector_type): Ditto.
18449 (rvv_arg_type_info::get_tree_type): Ditto.
18450 * config/riscv/riscv-vector-builtins.def (v_f): New define.
18451 (f): New define.
18452 (f_v): New define.
18453 (xu_v): New define.
18454 (f_w): New define.
18455 (xu_w): New define.
18456 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
18457 (function_expander::arg_mode): New function.
18458 * config/riscv/vector-iterators.md (sof): New iterator.
18459 (vfrecp): Ditto.
18460 (copysign): Ditto.
18461 (n): Ditto.
18462 (msac): Ditto.
18463 (msub): Ditto.
18464 (fixuns_trunc): Ditto.
18465 (floatuns): Ditto.
18466 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
18467 (@pred_<optab><mode>): Ditto.
18468 (@pred_<optab><mode>_scalar): Ditto.
18469 (@pred_<optab><mode>_reverse_scalar): Ditto.
18470 (@pred_<copysign><mode>): Ditto.
18471 (@pred_<copysign><mode>_scalar): Ditto.
18472 (@pred_mul_<optab><mode>): Ditto.
18473 (pred_mul_<optab><mode>_undef_merge): Ditto.
18474 (*pred_<madd_nmsub><mode>): Ditto.
18475 (*pred_<macc_nmsac><mode>): Ditto.
18476 (*pred_mul_<optab><mode>): Ditto.
18477 (@pred_mul_<optab><mode>_scalar): Ditto.
18478 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
18479 (*pred_<madd_nmsub><mode>_scalar): Ditto.
18480 (*pred_<macc_nmsac><mode>_scalar): Ditto.
18481 (*pred_mul_<optab><mode>_scalar): Ditto.
18482 (@pred_neg_mul_<optab><mode>): Ditto.
18483 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
18484 (*pred_<nmadd_msub><mode>): Ditto.
18485 (*pred_<nmacc_msac><mode>): Ditto.
18486 (*pred_neg_mul_<optab><mode>): Ditto.
18487 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
18488 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
18489 (*pred_<nmadd_msub><mode>_scalar): Ditto.
18490 (*pred_<nmacc_msac><mode>_scalar): Ditto.
18491 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
18492 (@pred_<misc_op><mode>): Ditto.
18493 (@pred_class<mode>): Ditto.
18494 (@pred_dual_widen_<optab><mode>): Ditto.
18495 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
18496 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
18497 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
18498 (@pred_widen_mul_<optab><mode>): Ditto.
18499 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
18500 (@pred_widen_neg_mul_<optab><mode>): Ditto.
18501 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
18502 (@pred_cmp<mode>): Ditto.
18503 (*pred_cmp<mode>): Ditto.
18504 (*pred_cmp<mode>_narrow): Ditto.
18505 (@pred_cmp<mode>_scalar): Ditto.
18506 (*pred_cmp<mode>_scalar): Ditto.
18507 (*pred_cmp<mode>_scalar_narrow): Ditto.
18508 (@pred_eqne<mode>_scalar): Ditto.
18509 (*pred_eqne<mode>_scalar): Ditto.
18510 (*pred_eqne<mode>_scalar_narrow): Ditto.
18511 (@pred_merge<mode>_scalar): Ditto.
18512 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
18513 (@pred_<fix_cvt><mode>): Ditto.
18514 (@pred_<float_cvt><mode>): Ditto.
18515 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
18516 (@pred_widen_<fix_cvt><mode>): Ditto.
18517 (@pred_widen_<float_cvt><mode>): Ditto.
18518 (@pred_extend<mode>): Ditto.
18519 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
18520 (@pred_narrow_<fix_cvt><mode>): Ditto.
18521 (@pred_narrow_<float_cvt><mode>): Ditto.
18522 (@pred_trunc<mode>): Ditto.
18523 (@pred_rod_trunc<mode>): Ditto.
18524
18525 2023-02-22 Jakub Jelinek <jakub@redhat.com>
18526
18527 PR middle-end/106258
18528 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
18529 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
18530 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
18531 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
18532
18533 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
18534
18535 * common.opt (-Wcomplain-wrong-lang): New.
18536 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
18537 * opts-common.cc (prune_options): Handle it.
18538 * opts-global.cc (complain_wrong_lang): Use it.
18539
18540 2023-02-21 David Malcolm <dmalcolm@redhat.com>
18541
18542 PR analyzer/108830
18543 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
18544
18545 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
18546
18547 PR target/108876
18548 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
18549 for A0_REG.
18550 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
18551 (sibcall_value, sibcall_value_internal): Add 'use' expression
18552 for A0_REG.
18553
18554 2023-02-21 Richard Biener <rguenther@suse.de>
18555
18556 PR tree-optimization/108691
18557 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
18558 assert about calls_setjmp not becoming true when it was false.
18559
18560 2023-02-21 Richard Biener <rguenther@suse.de>
18561
18562 PR tree-optimization/108793
18563 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
18564 Use convert operands to niter_type when computing num.
18565
18566 2023-02-21 Richard Biener <rguenther@suse.de>
18567
18568 Revert:
18569 2023-02-13 Richard Biener <rguenther@suse.de>
18570
18571 PR tree-optimization/108691
18572 * tree-cfg.cc (notice_special_calls): When the CFG is built
18573 honor gimple_call_ctrl_altering_p.
18574 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
18575 temporarily if the call is not control-altering.
18576 * calls.cc (emit_call_1): Do not add REG_SETJMP if
18577 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
18578
18579 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18580
18581 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
18582 true if register A0 (return address register) when -Og is specified.
18583
18584 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
18585
18586 * config/i386/predicates.md
18587 (general_x64constmem_operand): New predicate.
18588 * config/i386/i386.md (*cmpqi_ext<mode>_1):
18589 Use nonimm_x64constmem_operand.
18590 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
18591 (*addqi_ext<mode>_1): Ditto.
18592 (*testqi_ext<mode>_1): Ditto.
18593 (*andqi_ext<mode>_1): Ditto.
18594 (*andqi_ext<mode>_1_cc): Ditto.
18595 (*<any_or:code>qi_ext<mode>_1): Ditto.
18596 (*xorqi_ext<mode>_1_cc): Ditto.
18597
18598 2023-02-20 Jakub Jelinek <jakub2redhat.com>
18599
18600 PR target/108862
18601 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
18602 gen_umadddi4_highpart{,_le}.
18603
18604 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
18605
18606 * config/riscv/riscv.md (prefetch): Use r instead of p for the
18607 address operand.
18608 (riscv_prefetchi_<mode>): Ditto.
18609
18610 2023-02-20 Richard Biener <rguenther@suse.de>
18611
18612 PR tree-optimization/108816
18613 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
18614 versioning condition split prerequesite, assert required
18615 invariant.
18616
18617 2023-02-20 Richard Biener <rguenther@suse.de>
18618
18619 PR tree-optimization/108825
18620 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
18621 loop-local verfication only verify there's no pending SSA
18622 update.
18623
18624 2023-02-20 Richard Biener <rguenther@suse.de>
18625
18626 PR tree-optimization/108819
18627 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
18628 we have an SSA name as iv_2 as expected.
18629
18630 2023-02-18 Jakub Jelinek <jakub@redhat.com>
18631
18632 PR tree-optimization/108819
18633 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
18634
18635 2023-02-18 Jakub Jelinek <jakub@redhat.com>
18636
18637 PR target/108832
18638 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
18639 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
18640 function.
18641 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
18642 with ix86_replace_reg_with_reg.
18643
18644 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
18645
18646 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
18647
18648 2023-02-18 Xi Ruoyao <xry111@xry111.site>
18649
18650 * config.gcc (triplet_abi): Set its value based on $with_abi,
18651 instead of $target.
18652 (la_canonical_triplet): Set it after $triplet_abi is set
18653 correctly.
18654 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
18655 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
18656 "f64" suffix).
18657
18658 2023-02-18 Andrew Pinski <apinski@marvell.com>
18659
18660 * match.pd: Remove #if GIMPLE around the
18661 "1 - a" pattern
18662
18663 2023-02-18 Andrew Pinski <apinski@marvell.com>
18664
18665 * value-query.h (get_range_query): Return the global ranges
18666 for a nullptr func.
18667
18668 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
18669
18670 * doc/invoke.texi (@item -Wall): Fix typo in
18671 -Wuse-after-free.
18672
18673 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
18674
18675 PR target/108831
18676 * config/i386/predicates.md
18677 (nonimm_x64constmem_operand): New predicate.
18678 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
18679 (*subqi_ext<mode>_0): Ditto.
18680 (*andqi_ext<mode>_0): Ditto.
18681 (*<any_or:code>qi_ext<mode>_0): Ditto.
18682
18683 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
18684
18685 PR target/108805
18686 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
18687 int_outermode instead of GET_MODE (tem) to prevent
18688 VOIDmode from entering simplify_gen_subreg.
18689
18690 2023-02-17 Richard Biener <rguenther@suse.de>
18691
18692 PR tree-optimization/108821
18693 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
18694 move volatile accesses.
18695
18696 2023-02-17 Richard Biener <rguenther@suse.de>
18697
18698 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
18699 called on virtual operands.
18700 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
18701 ssa_undefined_value_p calls.
18702 (vn_phi_insert): Likewise.
18703 (set_ssa_val_to): Likewise.
18704 (visit_phi): Avoid extra work with equivalences for
18705 virtual operand PHIs.
18706
18707 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18708
18709 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
18710 class.
18711 (class mask_nlogic): Ditto.
18712 (class mask_notlogic): Ditto.
18713 (class vmmv): Ditto.
18714 (class vmclr): Ditto.
18715 (class vmset): Ditto.
18716 (class vmnot): Ditto.
18717 (class vcpop): Ditto.
18718 (class vfirst): Ditto.
18719 (class mask_misc): Ditto.
18720 (class viota): Ditto.
18721 (class vid): Ditto.
18722 (BASE): Ditto.
18723 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18724 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
18725 (vmnand): Ditto.
18726 (vmandn): Ditto.
18727 (vmxor): Ditto.
18728 (vmor): Ditto.
18729 (vmnor): Ditto.
18730 (vmorn): Ditto.
18731 (vmxnor): Ditto.
18732 (vmmv): Ditto.
18733 (vmclr): Ditto.
18734 (vmset): Ditto.
18735 (vmnot): Ditto.
18736 (vcpop): Ditto.
18737 (vfirst): Ditto.
18738 (vmsbf): Ditto.
18739 (vmsif): Ditto.
18740 (vmsof): Ditto.
18741 (viota): Ditto.
18742 (vid): Ditto.
18743 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
18744 (struct mask_alu_def): Ditto.
18745 (SHAPE): Ditto.
18746 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
18747 * config/riscv/riscv-vector-builtins.cc: Ditto.
18748 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
18749 for dest it scalar RVV intrinsics.
18750 * config/riscv/vector-iterators.md (sof): New iterator.
18751 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
18752 (@pred_<optab>not<mode>): New pattern.
18753 (@pred_popcount<VB:mode><P:mode>): New pattern.
18754 (@pred_ffs<VB:mode><P:mode>): New pattern.
18755 (@pred_<misc_op><mode>): New pattern.
18756 (@pred_iota<mode>): New pattern.
18757 (@pred_series<mode>): New pattern.
18758
18759 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18760
18761 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
18762 (vsbc): Ditto.
18763 (vmerge): Ditto.
18764 (vmv_v): Ditto.
18765 * config/riscv/riscv-vector-builtins.cc: Ditto.
18766
18767 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18768 kito-cheng <kito.cheng@sifive.com>
18769
18770 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
18771 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
18772 (sew64_scalar_helper): New function.
18773 * config/riscv/vector.md: Normalization.
18774
18775 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18776
18777 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
18778 (vsm): Ditto.
18779 (vsse): Ditto.
18780 (vsoxei64): Ditto.
18781 (vsub): Ditto.
18782 (vand): Ditto.
18783 (vor): Ditto.
18784 (vxor): Ditto.
18785 (vsll): Ditto.
18786 (vsra): Ditto.
18787 (vsrl): Ditto.
18788 (vmin): Ditto.
18789 (vmax): Ditto.
18790 (vminu): Ditto.
18791 (vmaxu): Ditto.
18792 (vmul): Ditto.
18793 (vmulh): Ditto.
18794 (vmulhu): Ditto.
18795 (vmulhsu): Ditto.
18796 (vdiv): Ditto.
18797 (vrem): Ditto.
18798 (vdivu): Ditto.
18799 (vremu): Ditto.
18800 (vnot): Ditto.
18801 (vsext): Ditto.
18802 (vzext): Ditto.
18803 (vwadd): Ditto.
18804 (vwsub): Ditto.
18805 (vwmul): Ditto.
18806 (vwmulu): Ditto.
18807 (vwmulsu): Ditto.
18808 (vwaddu): Ditto.
18809 (vwsubu): Ditto.
18810 (vsbc): Ditto.
18811 (vmsbc): Ditto.
18812 (vnsra): Ditto.
18813 (vmerge): Ditto.
18814 (vmv_v): Ditto.
18815 (vmsne): Ditto.
18816 (vmslt): Ditto.
18817 (vmsgt): Ditto.
18818 (vmsle): Ditto.
18819 (vmsge): Ditto.
18820 (vmsltu): Ditto.
18821 (vmsgtu): Ditto.
18822 (vmsleu): Ditto.
18823 (vmsgeu): Ditto.
18824 (vnmsac): Ditto.
18825 (vmadd): Ditto.
18826 (vnmsub): Ditto.
18827 (vwmacc): Ditto.
18828 (vsadd): Ditto.
18829 (vssub): Ditto.
18830 (vssubu): Ditto.
18831 (vaadd): Ditto.
18832 (vasub): Ditto.
18833 (vasubu): Ditto.
18834 (vsmul): Ditto.
18835 (vssra): Ditto.
18836 (vssrl): Ditto.
18837 (vnclip): Ditto.
18838
18839 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18840
18841 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
18842 (@pred_<optab><mode>_scalar): Ditto.
18843 (*pred_<optab><mode>_scalar): Ditto.
18844 (*pred_<optab><mode>_extended_scalar): Ditto.
18845
18846 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18847
18848 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
18849 (init_builtins): Ditto.
18850 (mangle_builtin_type): Ditto.
18851 (verify_type_context): Ditto.
18852 (handle_pragma_vector): Ditto.
18853 (builtin_decl): Ditto.
18854 (expand_builtin): Ditto.
18855 (const_vec_all_same_in_range_p): Ditto.
18856 (legitimize_move): Ditto.
18857 (emit_vlmax_op): Ditto.
18858 (emit_nonvlmax_op): Ditto.
18859 (get_vlmul): Ditto.
18860 (get_ratio): Ditto.
18861 (get_ta): Ditto.
18862 (get_ma): Ditto.
18863 (get_avl_type): Ditto.
18864 (calculate_ratio): Ditto.
18865 (enum vlmul_type): Ditto.
18866 (simm5_p): Ditto.
18867 (neg_simm5_p): Ditto.
18868 (has_vi_variant_p): Ditto.
18869
18870 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18871
18872 * config/riscv/riscv-protos.h (simm32_p): Remove.
18873 * config/riscv/riscv-v.cc (simm32_p): Ditto.
18874 * config/riscv/vector.md: Use immediate_operand
18875 instead of riscv_vector::simm32_p.
18876
18877 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
18878
18879 * doc/invoke.texi (Optimize Options): Reword the explanation
18880 getting minimal, maximal and default values of a parameter.
18881
18882 2023-02-16 Patrick Palka <ppalka@redhat.com>
18883
18884 * addresses.h: Mechanically drop 'static' from 'static inline'
18885 functions via s/^static inline/inline/g.
18886 * asan.h: Likewise.
18887 * attribs.h: Likewise.
18888 * basic-block.h: Likewise.
18889 * bitmap.h: Likewise.
18890 * cfghooks.h: Likewise.
18891 * cfgloop.h: Likewise.
18892 * cgraph.h: Likewise.
18893 * cselib.h: Likewise.
18894 * data-streamer.h: Likewise.
18895 * debug.h: Likewise.
18896 * df.h: Likewise.
18897 * diagnostic.h: Likewise.
18898 * dominance.h: Likewise.
18899 * dumpfile.h: Likewise.
18900 * emit-rtl.h: Likewise.
18901 * except.h: Likewise.
18902 * expmed.h: Likewise.
18903 * expr.h: Likewise.
18904 * fixed-value.h: Likewise.
18905 * gengtype.h: Likewise.
18906 * gimple-expr.h: Likewise.
18907 * gimple-iterator.h: Likewise.
18908 * gimple-predict.h: Likewise.
18909 * gimple-range-fold.h: Likewise.
18910 * gimple-ssa.h: Likewise.
18911 * gimple.h: Likewise.
18912 * graphite.h: Likewise.
18913 * hard-reg-set.h: Likewise.
18914 * hash-map.h: Likewise.
18915 * hash-set.h: Likewise.
18916 * hash-table.h: Likewise.
18917 * hwint.h: Likewise.
18918 * input.h: Likewise.
18919 * insn-addr.h: Likewise.
18920 * internal-fn.h: Likewise.
18921 * ipa-fnsummary.h: Likewise.
18922 * ipa-icf-gimple.h: Likewise.
18923 * ipa-inline.h: Likewise.
18924 * ipa-modref.h: Likewise.
18925 * ipa-prop.h: Likewise.
18926 * ira-int.h: Likewise.
18927 * ira.h: Likewise.
18928 * lra-int.h: Likewise.
18929 * lra.h: Likewise.
18930 * lto-streamer.h: Likewise.
18931 * memmodel.h: Likewise.
18932 * omp-general.h: Likewise.
18933 * optabs-query.h: Likewise.
18934 * optabs.h: Likewise.
18935 * plugin.h: Likewise.
18936 * pretty-print.h: Likewise.
18937 * range.h: Likewise.
18938 * read-md.h: Likewise.
18939 * recog.h: Likewise.
18940 * regs.h: Likewise.
18941 * rtl-iter.h: Likewise.
18942 * rtl.h: Likewise.
18943 * sbitmap.h: Likewise.
18944 * sched-int.h: Likewise.
18945 * sel-sched-ir.h: Likewise.
18946 * sese.h: Likewise.
18947 * sparseset.h: Likewise.
18948 * ssa-iterators.h: Likewise.
18949 * system.h: Likewise.
18950 * target-globals.h: Likewise.
18951 * target.h: Likewise.
18952 * timevar.h: Likewise.
18953 * tree-chrec.h: Likewise.
18954 * tree-data-ref.h: Likewise.
18955 * tree-iterator.h: Likewise.
18956 * tree-outof-ssa.h: Likewise.
18957 * tree-phinodes.h: Likewise.
18958 * tree-scalar-evolution.h: Likewise.
18959 * tree-sra.h: Likewise.
18960 * tree-ssa-alias.h: Likewise.
18961 * tree-ssa-live.h: Likewise.
18962 * tree-ssa-loop-manip.h: Likewise.
18963 * tree-ssa-loop.h: Likewise.
18964 * tree-ssa-operands.h: Likewise.
18965 * tree-ssa-propagate.h: Likewise.
18966 * tree-ssa-sccvn.h: Likewise.
18967 * tree-ssa.h: Likewise.
18968 * tree-ssanames.h: Likewise.
18969 * tree-streamer.h: Likewise.
18970 * tree-switch-conversion.h: Likewise.
18971 * tree-vectorizer.h: Likewise.
18972 * tree.h: Likewise.
18973 * wide-int.h: Likewise.
18974
18975 2023-02-16 Jakub Jelinek <jakub@redhat.com>
18976
18977 PR tree-optimization/108657
18978 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
18979 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
18980 is a call to internal or builtin function.
18981
18982 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
18983
18984 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
18985 using-declaration to unhide functions.
18986
18987 2023-02-16 Jakub Jelinek <jakub@redhat.com>
18988
18989 PR tree-optimization/108783
18990 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
18991 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
18992 t to curr->op. Otherwise, punt if either newop1 or newop2 are
18993 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
18994
18995 2023-02-16 Richard Biener <rguenther@suse.de>
18996
18997 PR tree-optimization/108791
18998 * tree-ssa-forwprop.cc (optimize_vector_load): Build
18999 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
19000 type.
19001
19002 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
19003
19004 PR target/90458
19005 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
19006 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
19007 (ix86_expand_prologue): Likewise.
19008
19009 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
19010
19011 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
19012
19013 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
19014
19015 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
19016 int248_register_operand predicate in zero_extract sub-RTX.
19017 (*cmpqi_ext<mode>_2): Ditto.
19018 (*cmpqi_ext<mode>_3): Ditto.
19019 (*cmpqi_ext<mode>_4): Ditto.
19020 (*extzvqi_mem_rex64): Ditto.
19021 (*extzvqi): Ditto.
19022 (*insvqi_1_mem_rex64): Ditto.
19023 (@insv<mode>_1): Ditto.
19024 (*insvqi_1): Ditto.
19025 (*insvqi_2): Ditto.
19026 (*insvqi_3): Ditto.
19027 (*extendqi<SWI24:mode>_ext_1): Ditto.
19028 (*addqi_ext<mode>_1): Ditto.
19029 (*addqi_ext<mode>_2): Ditto.
19030 (*subqi_ext<mode>_2): Ditto.
19031 (*testqi_ext<mode>_1): Ditto.
19032 (*testqi_ext<mode>_2): Ditto.
19033 (*andqi_ext<mode>_1): Ditto.
19034 (*andqi_ext<mode>_1_cc): Ditto.
19035 (*andqi_ext<mode>_2): Ditto.
19036 (*<any_or:code>qi_ext<mode>_1): Ditto.
19037 (*<any_or:code>qi_ext<mode>_2): Ditto.
19038 (*xorqi_ext<mode>_1_cc): Ditto.
19039 (*negqi_ext<mode>_2): Ditto.
19040 (*ashlqi_ext<mode>_2): Ditto.
19041 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
19042
19043 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
19044
19045 * config/i386/predicates.md (int248_register_operand):
19046 Rename from extr_register_operand.
19047 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
19048 (*extzx<mode>): Ditto.
19049 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
19050 (*ashl<mode>3_mask): Ditto.
19051 (*<any_shiftrt:insn><mode>3_mask): Ditto.
19052 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
19053 (*<any_rotate:insn><mode>3_mask): Ditto.
19054 (*<btsc><mode>_mask): Ditto.
19055 (*btr<mode>_mask): Ditto.
19056 (*jcc_bt<mode>_mask_1): Ditto.
19057
19058 2023-02-15 Richard Biener <rguenther@suse.de>
19059
19060 PR middle-end/26854
19061 * df-core.cc (df_worklist_propagate_forward): Put later
19062 blocks on worklist and only earlier blocks on pending.
19063 (df_worklist_propagate_backward): Likewise.
19064 (df_worklist_dataflow_doublequeue): Change the iteration
19065 to process new blocks in the same iteration if that
19066 maintains the iteration order.
19067
19068 2023-02-15 Marek Polacek <polacek@redhat.com>
19069
19070 PR middle-end/106080
19071 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
19072 instead.
19073
19074 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19075
19076 * config/riscv/predicates.md: Refine codes.
19077 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
19078 * config/riscv/riscv-v.cc: Refine codes.
19079 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
19080 enum.
19081 (class imac): New class.
19082 (enum widen_ternop_type): New enum.
19083 (class iwmac): New class.
19084 (BASE): New class.
19085 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19086 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
19087 (vnmsac): Ditto.
19088 (vmadd): Ditto.
19089 (vnmsub): Ditto.
19090 (vwmacc): Ditto.
19091 (vwmaccu): Ditto.
19092 (vwmaccsu): Ditto.
19093 (vwmaccus): Ditto.
19094 * config/riscv/riscv-vector-builtins.cc
19095 (function_builder::apply_predication): Adjust for multiply-add support.
19096 (function_expander::add_vundef_operand): Refine codes.
19097 (function_expander::use_ternop_insn): New function.
19098 (function_expander::use_widen_ternop_insn): Ditto.
19099 * config/riscv/riscv-vector-builtins.h: New function.
19100 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
19101 (pred_mul_<optab><mode>_undef_merge): Ditto.
19102 (*pred_<madd_nmsub><mode>): Ditto.
19103 (*pred_<macc_nmsac><mode>): Ditto.
19104 (*pred_mul_<optab><mode>): Ditto.
19105 (@pred_mul_<optab><mode>_scalar): Ditto.
19106 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
19107 (*pred_<madd_nmsub><mode>_scalar): Ditto.
19108 (*pred_<macc_nmsac><mode>_scalar): Ditto.
19109 (*pred_mul_<optab><mode>_scalar): Ditto.
19110 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
19111 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
19112 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
19113 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
19114 (@pred_widen_mul_plus<su><mode>): Ditto.
19115 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
19116 (@pred_widen_mul_plussu<mode>): Ditto.
19117 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
19118 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
19119
19120 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19121
19122 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
19123 (vector_all_trues_mask_operand): New predicate.
19124 (vector_undef_operand): New predicate.
19125 (ltge_operator): New predicate.
19126 (comparison_except_ltge_operator): New predicate.
19127 (comparison_except_eqge_operator): New predicate.
19128 (ge_operator): New predicate.
19129 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
19130 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
19131 (BASE): Ditto.
19132 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19133 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
19134 (vmsne): Ditto.
19135 (vmslt): Ditto.
19136 (vmsgt): Ditto.
19137 (vmsle): Ditto.
19138 (vmsge): Ditto.
19139 (vmsltu): Ditto.
19140 (vmsgtu): Ditto.
19141 (vmsleu): Ditto.
19142 (vmsgeu): Ditto.
19143 * config/riscv/riscv-vector-builtins-shapes.cc
19144 (struct return_mask_def): Adjust for compare support.
19145 * config/riscv/riscv-vector-builtins.cc
19146 (function_expander::use_compare_insn): New function.
19147 * config/riscv/riscv-vector-builtins.h
19148 (function_expander::add_integer_operand): Ditto.
19149 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
19150 * config/riscv/riscv.md: Add vector min/max attributes.
19151 * config/riscv/vector-iterators.md (xnor): New iterator.
19152 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
19153 (*pred_cmp<mode>): Ditto.
19154 (*pred_cmp<mode>_narrow): Ditto.
19155 (@pred_ltge<mode>): Ditto.
19156 (*pred_ltge<mode>): Ditto.
19157 (*pred_ltge<mode>_narrow): Ditto.
19158 (@pred_cmp<mode>_scalar): Ditto.
19159 (*pred_cmp<mode>_scalar): Ditto.
19160 (*pred_cmp<mode>_scalar_narrow): Ditto.
19161 (@pred_eqne<mode>_scalar): Ditto.
19162 (*pred_eqne<mode>_scalar): Ditto.
19163 (*pred_eqne<mode>_scalar_narrow): Ditto.
19164 (*pred_cmp<mode>_extended_scalar): Ditto.
19165 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
19166 (*pred_eqne<mode>_extended_scalar): Ditto.
19167 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
19168 (@pred_ge<mode>_scalar): Ditto.
19169 (@pred_<optab><mode>): Ditto.
19170 (@pred_n<optab><mode>): Ditto.
19171 (@pred_<optab>n<mode>): Ditto.
19172 (@pred_not<mode>): Ditto.
19173
19174 2023-02-15 Martin Jambor <mjambor@suse.cz>
19175
19176 PR ipa/108679
19177 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
19178 creation of non-scalar replacements even if IPA-CP knows their
19179 contents.
19180
19181 2023-02-15 Jakub Jelinek <jakub@redhat.com>
19182
19183 PR target/108787
19184 PR target/103109
19185 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
19186 expander, change operand 3 to be TImode, emit maddlddi4 and
19187 umadddi4_highpart{,_le} with its low half and finally add the high
19188 half to the result.
19189
19190 2023-02-15 Martin Liska <mliska@suse.cz>
19191
19192 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
19193
19194 2023-02-15 Richard Biener <rguenther@suse.de>
19195
19196 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
19197 for with_poison and alias worklist to it.
19198 (sanitize_asan_mark_poison): Likewise.
19199
19200 2023-02-15 Richard Biener <rguenther@suse.de>
19201
19202 PR target/108738
19203 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
19204 Combine bitmap test and set.
19205 (scalar_chain::add_insn): Likewise.
19206 (scalar_chain::analyze_register_chain): Remove redundant
19207 attempt to add to queue and instead strengthen assert.
19208 Sink common attempts to mark the def dual-mode.
19209 (scalar_chain::add_to_queue): Remove redundant insn bitmap
19210 check.
19211
19212 2023-02-15 Richard Biener <rguenther@suse.de>
19213
19214 PR target/108738
19215 * config/i386/i386-features.cc (convert_scalars_to_vector):
19216 Switch candidates bitmaps to tree view before building the chains.
19217
19218 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
19219
19220 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
19221 "failure trying to reload" call.
19222
19223 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
19224
19225 * gdbinit.in (phrs): New command.
19226 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
19227 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
19228
19229 2023-02-14 David Faust <david.faust@oracle.com>
19230
19231 PR target/108790
19232 * config/bpf/constraints.md (q): New memory constraint.
19233 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
19234 (zero_extendqidi2): Likewise.
19235 (zero_extendsidi2): Likewise.
19236 (*mov<MM:mode>): Likewise.
19237
19238 2023-02-14 Andrew Pinski <apinski@marvell.com>
19239
19240 PR tree-optimization/108355
19241 PR tree-optimization/96921
19242 * match.pd: Add pattern for "1 - bool_val".
19243
19244 2023-02-14 Richard Biener <rguenther@suse.de>
19245
19246 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
19247 basic block index hashing on the availability of ->cclhs.
19248 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
19249 rely on ->cclhs availability.
19250 (vn_phi_lookup): Set ->cclhs only when we are eventually
19251 going to CSE the PHI.
19252 (vn_phi_insert): Likewise.
19253
19254 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
19255
19256 * gimplify.cc (gimplify_save_expr): Add missing guard.
19257
19258 2023-02-14 Richard Biener <rguenther@suse.de>
19259
19260 PR tree-optimization/108782
19261 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
19262 Make sure we're not vectorizing an inner loop.
19263
19264 2023-02-14 Jakub Jelinek <jakub@redhat.com>
19265
19266 PR sanitizer/108777
19267 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
19268 * asan.h (asan_memfn_rtl): Declare.
19269 * asan.cc (asan_memfn_rtls): New variable.
19270 (asan_memfn_rtl): New function.
19271 * builtins.cc (expand_builtin): If
19272 param_asan_kernel_mem_intrinsic_prefix and function is
19273 kernel-{,hw}address sanitized, emit calls to
19274 __{,hw}asan_{memcpy,memmove,memset} rather than
19275 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
19276 instead of flag_sanitize & SANITIZE_ADDRESS to check if
19277 asan_intercepted_p functions shouldn't be expanded inline.
19278
19279 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
19280
19281 PR tree-optimization/96373
19282 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
19283 operations on the loop mask. Reject partial vectors if this isn't
19284 possible.
19285
19286 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
19287
19288 PR rtl-optimization/108681
19289 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
19290 code to handle bare uses and clobbers.
19291
19292 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
19293
19294 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
19295 caller_save_p flag when clearing defined_p flag.
19296 (setup_reg_equiv): Ditto.
19297 * lra-constraints.cc (lra_constraints): Ditto.
19298
19299 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
19300
19301 PR target/108516
19302 * config/i386/predicates.md (extr_register_operand):
19303 New special predicate.
19304 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
19305 as operand 1 predicate.
19306 (*exzv<mode>): Ditto.
19307 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
19308
19309 2023-02-13 Richard Biener <rguenther@suse.de>
19310
19311 PR tree-optimization/28614
19312 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
19313 walking all edges in most cases.
19314 (vn_nary_op_insert_pieces_predicated): Avoid repeated
19315 calls to can_track_predicate_on_edge unless checking is
19316 enabled.
19317 (process_bb): Instead call it once here for each edge
19318 we register possibly multiple predicates on.
19319
19320 2023-02-13 Richard Biener <rguenther@suse.de>
19321
19322 PR tree-optimization/108691
19323 * tree-cfg.cc (notice_special_calls): When the CFG is built
19324 honor gimple_call_ctrl_altering_p.
19325 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
19326 temporarily if the call is not control-altering.
19327 * calls.cc (emit_call_1): Do not add REG_SETJMP if
19328 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
19329
19330 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
19331
19332 PR target/108102
19333 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
19334 (struct s390_sched_state): Initialise to zero.
19335 (s390_sched_variable_issue): For better debuggability also emit
19336 the current side.
19337 (s390_sched_init): Unconditionally reset scheduler state.
19338
19339 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
19340
19341 * ifcvt.h (noce_if_info::cond_inverted): New field.
19342 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
19343 values when cond_inverted is true.
19344 (noce_find_if_block): Allow the condition to be inverted when
19345 handling conditional moves.
19346
19347 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
19348
19349 * config/s390/predicates.md (execute_operation): Use
19350 constrain_operands instead of extract_constrain_insn in order to
19351 determine wheter there exists a valid alternative.
19352
19353 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
19354
19355 * common/config/arc/arc-common.cc (arc_option_optimization_table):
19356 Remove millicode from list.
19357
19358 2023-02-13 Martin Liska <mliska@suse.cz>
19359
19360 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
19361
19362 2023-02-13 Richard Biener <rguenther@suse.de>
19363
19364 PR tree-optimization/106722
19365 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
19366 whether we marked a stmt.
19367 (mark_control_dependent_edges_necessary): When
19368 mark_last_stmt_necessary didn't mark any stmt make sure
19369 to mark its control dependent edges.
19370 (propagate_necessity): Likewise.
19371
19372 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
19373
19374 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
19375 (DWARF_FRAME_REGISTERS): New.
19376 (DWARF_REG_TO_UNWIND_COLUMN): New.
19377
19378 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
19379
19380 * doc/sourcebuild.texi: Remove (broken) direct reference to
19381 "The GNU configure and build system".
19382
19383 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
19384
19385 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
19386 gen_add3_insn to gen_rtx_SET.
19387 (riscv_adjust_libcall_cfi_epilogue): Likewise.
19388
19389 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19390
19391 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
19392 (class vnclip): Ditto.
19393 (BASE): Ditto.
19394 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19395 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
19396 (vasub): Ditto.
19397 (vaaddu): Ditto.
19398 (vasubu): Ditto.
19399 (vsmul): Ditto.
19400 (vssra): Ditto.
19401 (vssrl): Ditto.
19402 (vnclipu): Ditto.
19403 (vnclip): Ditto.
19404 * config/riscv/vector-iterators.md (su): Add instruction.
19405 (aadd): Ditto.
19406 (vaalu): Ditto.
19407 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
19408 (@pred_<sat_op><mode>_scalar): Ditto.
19409 (*pred_<sat_op><mode>_scalar): Ditto.
19410 (*pred_<sat_op><mode>_extended_scalar): Ditto.
19411 (@pred_narrow_clip<v_su><mode>): Ditto.
19412 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
19413
19414 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19415
19416 * config/riscv/constraints.md (Wbr): Remove unused constraint.
19417 * config/riscv/predicates.md: Fix move operand predicate.
19418 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
19419 (class vncvt_x): Ditto.
19420 (class vmerge): Ditto.
19421 (class vmv_v): Ditto.
19422 (BASE): Ditto.
19423 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19424 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
19425 (vsrl): Ditto.
19426 (vnsrl): Ditto.
19427 (vnsra): Ditto.
19428 (vncvt_x): Ditto.
19429 (vmerge): Ditto.
19430 (vmv_v): Ditto.
19431 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
19432 (struct move_def): Ditto.
19433 (SHAPE): Ditto.
19434 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19435 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
19436 (DEF_RVV_WEXTU_OPS): Ditto
19437 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
19438 (v_v): Ditto.
19439 (v_x): Ditto.
19440 (x_w): Ditto.
19441 (x): Ditto.
19442 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
19443 * config/riscv/vector-iterators.md (nmsac):New iterator.
19444 (nmsub): New iterator.
19445 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
19446 (@pred_merge<mode>_scalar): New pattern.
19447 (*pred_merge<mode>_scalar): New pattern.
19448 (*pred_merge<mode>_extended_scalar): New pattern.
19449 (@pred_narrow_<optab><mode>): New pattern.
19450 (@pred_narrow_<optab><mode>_scalar): New pattern.
19451 (@pred_trunc<mode>): New pattern.
19452
19453 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19454
19455 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
19456 (class vmsbc): Ditto.
19457 (BASE): Define new class.
19458 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19459 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
19460 (vmsbc): Ditto.
19461 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
19462 New class.
19463 (SHAPE): Ditto.
19464 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19465 * config/riscv/riscv-vector-builtins.cc
19466 (function_expander::use_exact_insn): Adjust for new support
19467 * config/riscv/riscv-vector-builtins.h
19468 (function_base::has_merge_operand_p): New function.
19469 * config/riscv/vector-iterators.md: New iterator.
19470 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
19471 (@pred_msbc<mode>): Ditto.
19472 (@pred_madc<mode>_scalar): Ditto.
19473 (@pred_msbc<mode>_scalar): Ditto.
19474 (*pred_madc<mode>_scalar): Ditto.
19475 (*pred_madc<mode>_extended_scalar): Ditto.
19476 (*pred_msbc<mode>_scalar): Ditto.
19477 (*pred_msbc<mode>_extended_scalar): Ditto.
19478 (@pred_madc<mode>_overflow): Ditto.
19479 (@pred_msbc<mode>_overflow): Ditto.
19480 (@pred_madc<mode>_overflow_scalar): Ditto.
19481 (@pred_msbc<mode>_overflow_scalar): Ditto.
19482 (*pred_madc<mode>_overflow_scalar): Ditto.
19483 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
19484 (*pred_msbc<mode>_overflow_scalar): Ditto.
19485 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
19486
19487 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19488
19489 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
19490 * config/riscv/riscv-v.cc (simm32_p): Ditto.
19491 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
19492 (class vsbc): Ditto.
19493 (BASE): Ditto.
19494 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19495 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
19496 (vsbc): Ditto.
19497 * config/riscv/riscv-vector-builtins-shapes.cc
19498 (struct no_mask_policy_def): Ditto.
19499 (SHAPE): Ditto.
19500 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19501 * config/riscv/riscv-vector-builtins.cc
19502 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
19503 (rvv_arg_type_info::get_tree_type): Ditto.
19504 (function_expander::use_exact_insn): Ditto.
19505 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
19506 (function_base::use_mask_predication_p): New function.
19507 * config/riscv/vector-iterators.md: New iterator.
19508 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
19509 (@pred_sbc<mode>): Ditto.
19510 (@pred_adc<mode>_scalar): Ditto.
19511 (@pred_sbc<mode>_scalar): Ditto.
19512 (*pred_adc<mode>_scalar): Ditto.
19513 (*pred_adc<mode>_extended_scalar): Ditto.
19514 (*pred_sbc<mode>_scalar): Ditto.
19515 (*pred_sbc<mode>_extended_scalar): Ditto.
19516
19517 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19518
19519 * config/riscv/vector.md: use "zero" reg.
19520
19521 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19522
19523 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
19524 class.
19525 (class vwmulsu): Ditto.
19526 (class vwcvt): Ditto.
19527 (BASE): Add integer widening support.
19528 * config/riscv/riscv-vector-builtins-bases.h: Ditto
19529 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
19530 (vwsub): New class.
19531 (vwmul): New class.
19532 (vwmulu): New class.
19533 (vwmulsu): New class.
19534 (vwaddu): New class.
19535 (vwsubu): New class.
19536 (vwcvt_x): New class.
19537 (vwcvtu_x): New class.
19538 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
19539 class.
19540 (struct widen_alu_def): New class.
19541 (SHAPE): New class.
19542 * config/riscv/riscv-vector-builtins-shapes.h: New class.
19543 * config/riscv/riscv-vector-builtins.cc
19544 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
19545 (rvv_arg_type_info::get_tree_type): Ditto.
19546 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
19547 (x_v): Ditto.
19548 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
19549 widening support.
19550 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
19551 * config/riscv/riscv.h (X0_REGNUM): New constant.
19552 * config/riscv/vector-iterators.md: New iterators.
19553 * config/riscv/vector.md
19554 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
19555 pattern.
19556 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
19557 Ditto.
19558 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
19559 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
19560 Ditto.
19561 (@pred_widen_mulsu<mode>): Ditto.
19562 (@pred_widen_mulsu<mode>_scalar): Ditto.
19563 (@pred_<optab><mode>): Ditto.
19564
19565 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19566 kito-cheng <kito.cheng@sifive.com>
19567
19568 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
19569 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
19570 (BASE): Ditto.
19571 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19572 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
19573 API support.
19574 (vmulhu): Ditto.
19575 (vmulhsu): Ditto.
19576 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
19577 New macro.
19578 (DEF_RVV_FULL_V_U_OPS): Ditto.
19579 (vint8mf8_t): Ditto.
19580 (vint8mf4_t): Ditto.
19581 (vint8mf2_t): Ditto.
19582 (vint8m1_t): Ditto.
19583 (vint8m2_t): Ditto.
19584 (vint8m4_t): Ditto.
19585 (vint8m8_t): Ditto.
19586 (vint16mf4_t): Ditto.
19587 (vint16mf2_t): Ditto.
19588 (vint16m1_t): Ditto.
19589 (vint16m2_t): Ditto.
19590 (vint16m4_t): Ditto.
19591 (vint16m8_t): Ditto.
19592 (vint32mf2_t): Ditto.
19593 (vint32m1_t): Ditto.
19594 (vint32m2_t): Ditto.
19595 (vint32m4_t): Ditto.
19596 (vint32m8_t): Ditto.
19597 (vint64m1_t): Ditto.
19598 (vint64m2_t): Ditto.
19599 (vint64m4_t): Ditto.
19600 (vint64m8_t): Ditto.
19601 (vuint8mf8_t): Ditto.
19602 (vuint8mf4_t): Ditto.
19603 (vuint8mf2_t): Ditto.
19604 (vuint8m1_t): Ditto.
19605 (vuint8m2_t): Ditto.
19606 (vuint8m4_t): Ditto.
19607 (vuint8m8_t): Ditto.
19608 (vuint16mf4_t): Ditto.
19609 (vuint16mf2_t): Ditto.
19610 (vuint16m1_t): Ditto.
19611 (vuint16m2_t): Ditto.
19612 (vuint16m4_t): Ditto.
19613 (vuint16m8_t): Ditto.
19614 (vuint32mf2_t): Ditto.
19615 (vuint32m1_t): Ditto.
19616 (vuint32m2_t): Ditto.
19617 (vuint32m4_t): Ditto.
19618 (vuint32m8_t): Ditto.
19619 (vuint64m1_t): Ditto.
19620 (vuint64m2_t): Ditto.
19621 (vuint64m4_t): Ditto.
19622 (vuint64m8_t): Ditto.
19623 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
19624 (DEF_RVV_FULL_V_U_OPS): Ditto.
19625 (check_required_extensions): Add vmulh support.
19626 (rvv_arg_type_info::get_tree_type): Ditto.
19627 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
19628 (enum rvv_base_type): Ditto.
19629 * config/riscv/riscv.opt: Add 'V' extension flag.
19630 * config/riscv/vector-iterators.md (su): New iterator.
19631 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
19632 (@pred_mulh<v_su><mode>_scalar): Ditto.
19633 (*pred_mulh<v_su><mode>_scalar): Ditto.
19634 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
19635
19636 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19637
19638 * config/riscv/iterators.md: Add sign_extend/zero_extend.
19639 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
19640 (BASE): Ditto.
19641 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
19642 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
19643 define.
19644 (vzext): Ditto.
19645 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
19646 for vsext/vzext support.
19647 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
19648 macro define.
19649 (DEF_RVV_QEXTI_OPS): Ditto.
19650 (DEF_RVV_OEXTI_OPS): Ditto.
19651 (DEF_RVV_WEXTU_OPS): Ditto.
19652 (DEF_RVV_QEXTU_OPS): Ditto.
19653 (DEF_RVV_OEXTU_OPS): Ditto.
19654 (vint16mf4_t): Ditto.
19655 (vint16mf2_t): Ditto.
19656 (vint16m1_t): Ditto.
19657 (vint16m2_t): Ditto.
19658 (vint16m4_t): Ditto.
19659 (vint16m8_t): Ditto.
19660 (vint32mf2_t): Ditto.
19661 (vint32m1_t): Ditto.
19662 (vint32m2_t): Ditto.
19663 (vint32m4_t): Ditto.
19664 (vint32m8_t): Ditto.
19665 (vint64m1_t): Ditto.
19666 (vint64m2_t): Ditto.
19667 (vint64m4_t): Ditto.
19668 (vint64m8_t): Ditto.
19669 (vuint16mf4_t): Ditto.
19670 (vuint16mf2_t): Ditto.
19671 (vuint16m1_t): Ditto.
19672 (vuint16m2_t): Ditto.
19673 (vuint16m4_t): Ditto.
19674 (vuint16m8_t): Ditto.
19675 (vuint32mf2_t): Ditto.
19676 (vuint32m1_t): Ditto.
19677 (vuint32m2_t): Ditto.
19678 (vuint32m4_t): Ditto.
19679 (vuint32m8_t): Ditto.
19680 (vuint64m1_t): Ditto.
19681 (vuint64m2_t): Ditto.
19682 (vuint64m4_t): Ditto.
19683 (vuint64m8_t): Ditto.
19684 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
19685 (DEF_RVV_QEXTI_OPS): Ditto.
19686 (DEF_RVV_OEXTI_OPS): Ditto.
19687 (DEF_RVV_WEXTU_OPS): Ditto.
19688 (DEF_RVV_QEXTU_OPS): Ditto.
19689 (DEF_RVV_OEXTU_OPS): Ditto.
19690 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
19691 support.
19692 (rvv_arg_type_info::get_tree_type): Ditto.
19693 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
19694 * config/riscv/vector-iterators.md (z): New attribute.
19695 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
19696 (@pred_<optab><mode>_vf4): Ditto.
19697 (@pred_<optab><mode>_vf8): Ditto.
19698
19699 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19700
19701 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
19702 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
19703 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
19704 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19705 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
19706 (vssub): Ditto.
19707 (vsaddu): Ditto.
19708 (vssubu): Ditto.
19709 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
19710 support.
19711 (sll.vv): Ditto.
19712 (%3,%v4): Ditto.
19713 (%3,%4): Ditto.
19714 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
19715 (@pred_<optab><mode>_scalar): New pattern.
19716 (*pred_<optab><mode>_scalar): New pattern.
19717 (*pred_<optab><mode>_extended_scalar): New pattern.
19718
19719 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19720
19721 * config/riscv/iterators.md: Add neg and not.
19722 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
19723 (BASE): Ditto.
19724 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19725 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
19726 into alu.
19727 (vsub): Ditto.
19728 (vand): Ditto.
19729 (vor): Ditto.
19730 (vxor): Ditto.
19731 (vsll): Ditto.
19732 (vsra): Ditto.
19733 (vsrl): Ditto.
19734 (vmin): Ditto.
19735 (vmax): Ditto.
19736 (vminu): Ditto.
19737 (vmaxu): Ditto.
19738 (vmul): Ditto.
19739 (vdiv): Ditto.
19740 (vrem): Ditto.
19741 (vdivu): Ditto.
19742 (vremu): Ditto.
19743 (vrsub): Ditto.
19744 (vneg): Ditto.
19745 (vnot): Ditto.
19746 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
19747 (struct alu_def): Ditto.
19748 (SHAPE): Ditto.
19749 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19750 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
19751 * config/riscv/vector-iterators.md: New iterator.
19752 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
19753
19754 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19755
19756 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
19757
19758 2023-02-11 Jakub Jelinek <jakub@redhat.com>
19759
19760 PR ipa/108605
19761 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
19762 item->offset bit position is too large to be representable as
19763 unsigned int byte position.
19764
19765 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
19766
19767 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
19768
19769 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
19770
19771 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
19772 valid_combine only when ira_use_lra_p is true.
19773
19774 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
19775
19776 * params.opt (ira-simple-lra-insn-threshold): Add new param.
19777 * ira.cc (ira): Use the param to switch on simple LRA.
19778
19779 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
19780
19781 PR tree-optimization/108687
19782 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
19783 back to RFD_NONE mode for calculations.
19784 (ranger_cache::propagate_cache): Call the internal edge range API
19785 with RFD_READ_ONLY instead of changing the external routine.
19786
19787 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
19788
19789 PR tree-optimization/108520
19790 * gimple-range-infer.cc (check_assume_func): Invoke
19791 gimple_range_global directly instead using global_range_query.
19792 * value-query.cc (get_range_global): Add function context and
19793 avoid calling nonnull_arg_p if not cfun.
19794 (gimple_range_global): Add function context pointer.
19795 * value-query.h (imple_range_global): Add function context.
19796
19797 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19798
19799 * config/riscv/constraints.md (Wdm): Adjust constraint.
19800 (Wbr): New constraint.
19801 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
19802 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
19803 (emit_vlmax_op): New function.
19804 (emit_nonvlmax_op): Ditto.
19805 (simm32_p): Ditto.
19806 (neg_simm5_p): Ditto.
19807 (has_vi_variant_p): Ditto.
19808 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
19809 (emit_vlmax_op): New function.
19810 (emit_nonvlmax_op): Ditto.
19811 (expand_const_vector): Adjust function.
19812 (legitimize_move): Ditto.
19813 (simm32_p): New function.
19814 (simm5_p): Ditto.
19815 (neg_simm5_p): Ditto.
19816 (has_vi_variant_p): Ditto.
19817 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
19818 (BASE): Ditto.
19819 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19820 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
19821 unsigned cases.
19822 (vmax): Ditto.
19823 (vminu): Remove signed cases.
19824 (vmaxu): Ditto.
19825 (vdiv): Remove unsigned cases.
19826 (vrem): Ditto.
19827 (vdivu): Remove signed cases.
19828 (vremu): Ditto.
19829 (vadd): Adjust.
19830 (vsub): Ditto.
19831 (vrsub): New class.
19832 (vand): Adjust.
19833 (vor): Ditto.
19834 (vxor): Ditto.
19835 (vmul): Ditto.
19836 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
19837 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
19838 * config/riscv/vector-iterators.md: New iterators.
19839 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
19840 support.
19841 (@pred_<optab><mode>_scalar): New pattern.
19842 (@pred_sub<mode>_reverse_scalar): Ditto.
19843 (*pred_<optab><mode>_scalar): Ditto.
19844 (*pred_<optab><mode>_extended_scalar): Ditto.
19845 (*pred_sub<mode>_reverse_scalar): Ditto.
19846 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
19847
19848 2023-02-10 Richard Biener <rguenther@suse.de>
19849
19850 PR tree-optimization/108724
19851 * tree-vect-stmts.cc (vectorizable_operation): Avoid
19852 using word_mode vectors when vector lowering will
19853 decompose them to elementwise operations.
19854
19855 2023-02-10 Jakub Jelinek <jakub@redhat.com>
19856
19857 Revert:
19858 2023-02-09 Martin Liska <mliska@suse.cz>
19859
19860 PR target/100758
19861 * doc/extend.texi: Document that the function
19862 does not work correctly for old VIA processors.
19863
19864 2023-02-10 Andrew Pinski <apinski@marvell.com>
19865 Andrew Macleod <amacleod@redhat.com>
19866
19867 PR tree-optimization/108684
19868 * tree-ssa-dce.cc (simple_dce_from_worklist):
19869 Check all ssa names and not just non-vdef ones
19870 before accepting the inline-asm.
19871 Call unlink_stmt_vdef on the statement before
19872 removing it.
19873
19874 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
19875
19876 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
19877 * ira.cc (validate_equiv_mem): Check memref address variance.
19878 (no_equiv): Clear caller_save_p flag.
19879 (update_equiv_regs): Define caller save equivalence for
19880 valid_combine.
19881 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
19882 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
19883 call_save_p. Use caller save equivalence depending on the arg.
19884 (split_reg): Adjust the call.
19885
19886 2023-02-09 Jakub Jelinek <jakub@redhat.com>
19887
19888 PR target/100758
19889 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
19890 (cpu_indicator_init): Call get_available_features for all CPUs with
19891 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
19892 fixes.
19893
19894 2023-02-09 Jakub Jelinek <jakub@redhat.com>
19895
19896 PR tree-optimization/108688
19897 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
19898 of BIT_INSERT_EXPR extracting exactly all inserted bits even
19899 when without mode precision. Formatting fixes.
19900
19901 2023-02-09 Andrew Pinski <apinski@marvell.com>
19902
19903 PR tree-optimization/108688
19904 * match.pd (bit_field_ref [bit_insert]): Avoid generating
19905 BIT_FIELD_REFs of non-mode-precision integral operands.
19906
19907 2023-02-09 Martin Liska <mliska@suse.cz>
19908
19909 PR target/100758
19910 * doc/extend.texi: Document that the function
19911 does not work correctly for old VIA processors.
19912
19913 2023-02-09 Andreas Schwab <schwab@suse.de>
19914
19915 * lto-wrapper.cc (merge_and_complain): Handle
19916 -funwind-tables and -fasynchronous-unwind-tables.
19917 (append_compiler_options): Likewise.
19918
19919 2023-02-09 Richard Biener <rguenther@suse.de>
19920
19921 PR tree-optimization/26854
19922 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
19923 view around insert_updated_phi_nodes_for.
19924 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
19925 in tree view.
19926 (walk_aliased_vdefs_1): Likewise.
19927
19928 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
19929
19930 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
19931
19932 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
19933
19934 PR target/108505
19935 * config.gcc (tm_mlib_file): Define new variable.
19936
19937 2023-02-08 Jakub Jelinek <jakub@redhat.com>
19938
19939 PR tree-optimization/108692
19940 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
19941 widened_code which is different from code, don't call
19942 vect_look_through_possible_promotion but instead just check op is
19943 SSA_NAME with integral type for which vect_is_simple_use is true
19944 and call set_op on this_unprom.
19945
19946 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
19947
19948 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
19949 declaration.
19950 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
19951 definition.
19952 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
19953 to 'aarch_ra_sign_key'.
19954 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
19955 declaration.
19956 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
19957 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
19958 * config/arm/arm.opt: Define.
19959
19960 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
19961
19962 PR tree-optimization/108316
19963 * tree-vect-stmts.cc (get_load_store_type): When using
19964 internal functions for gather/scatter, make sure that the type
19965 of the offset argument is consistent with the offset vector type.
19966
19967 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
19968
19969 Revert:
19970 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
19971
19972 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
19973 * ira.cc (validate_equiv_mem): Check memref address variance.
19974 (update_equiv_regs): Define caller save equivalence for
19975 valid_combine.
19976 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
19977 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
19978 call_save_p. Use caller save equivalence depending on the arg.
19979 (split_reg): Adjust the call.
19980
19981 2023-02-08 Jakub Jelinek <jakub@redhat.com>
19982
19983 * tree.def (SAD_EXPR): Remove outdated comment about missing
19984 WIDEN_MINUS_EXPR.
19985
19986 2023-02-07 Marek Polacek <polacek@redhat.com>
19987
19988 * doc/invoke.texi: Update -fchar8_t documentation.
19989
19990 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
19991
19992 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
19993 * ira.cc (validate_equiv_mem): Check memref address variance.
19994 (update_equiv_regs): Define caller save equivalence for
19995 valid_combine.
19996 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
19997 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
19998 call_save_p. Use caller save equivalence depending on the arg.
19999 (split_reg): Adjust the call.
20000
20001 2023-02-07 Richard Biener <rguenther@suse.de>
20002
20003 PR tree-optimization/26854
20004 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
20005 instead of immediate uses.
20006
20007 2023-02-07 Jakub Jelinek <jakub@redhat.com>
20008
20009 PR tree-optimization/106923
20010 * ipa-split.cc (execute_split_functions): Don't split returns_twice
20011 functions.
20012
20013 2023-02-07 Jakub Jelinek <jakub@redhat.com>
20014
20015 PR tree-optimization/106433
20016 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
20017 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
20018
20019 2023-02-07 Jan Hubicka <jh@suse.cz>
20020
20021 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
20022 for znver4.
20023
20024 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
20025
20026 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
20027 (process_asm): Create a constructor for GCN_STACK_SIZE.
20028 (main): Parse the -mstack-size option.
20029
20030 2023-02-06 Alex Coplan <alex.coplan@arm.com>
20031
20032 PR target/104921
20033 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
20034 Use correct constraint for operand 3.
20035
20036 2023-02-06 Martin Jambor <mjambor@suse.cz>
20037
20038 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
20039
20040 2023-02-06 Xi Ruoyao <xry111@xry111.site>
20041
20042 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
20043 New define_int_iterator.
20044 (bytepick_d_ashift_amount): Likewise.
20045 (bytepick_imm): New define_int_attr.
20046 (bytepick_w_lshiftrt_amount): Likewise.
20047 (bytepick_d_lshiftrt_amount): Likewise.
20048 (bytepick_w_<bytepick_imm>): New define_insn template.
20049 (bytepick_w_<bytepick_imm>_extend): Likewise.
20050 (bytepick_d_<bytepick_imm>): Likewise.
20051 (bytepick_w): Remove unused define_insn.
20052 (bytepick_d): Likewise.
20053 (UNSPEC_BYTEPICK_W): Remove unused unspec.
20054 (UNSPEC_BYTEPICK_D): Likewise.
20055 * config/loongarch/predicates.md (const_0_to_3_operand):
20056 Remove unused define_predicate.
20057 (const_0_to_7_operand): Likewise.
20058
20059 2023-02-06 Jakub Jelinek <jakub@redhat.com>
20060
20061 PR tree-optimization/108655
20062 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
20063 or -fsanitize=unreachable -fsanitize-trap=unreachable return
20064 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
20065
20066 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
20067
20068 * doc/install.texi (Specific): Remove PW32.
20069
20070 2023-02-03 Jakub Jelinek <jakub@redhat.com>
20071
20072 PR tree-optimization/108647
20073 * range-op.cc (operator_equal::op1_range,
20074 operator_not_equal::op1_range): Don't test op2 bound
20075 equality if op2.undefined_p (), instead set_varying.
20076 (operator_lt::op1_range, operator_le::op1_range,
20077 operator_gt::op1_range, operator_ge::op1_range): Return false if
20078 op2.undefined_p ().
20079 (operator_lt::op2_range, operator_le::op2_range,
20080 operator_gt::op2_range, operator_ge::op2_range): Return false if
20081 op1.undefined_p ().
20082
20083 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
20084
20085 PR tree-optimization/108639
20086 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
20087 widest_int.
20088 (irange::operator==): Same.
20089
20090 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
20091
20092 PR tree-optimization/108647
20093 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
20094 (foperator_lt::op2_range): Same.
20095 (foperator_le::op1_range): Same.
20096 (foperator_le::op2_range): Same.
20097 (foperator_gt::op1_range): Same.
20098 (foperator_gt::op2_range): Same.
20099 (foperator_ge::op1_range): Same.
20100 (foperator_ge::op2_range): Same.
20101 (foperator_unordered_lt::op1_range): Same.
20102 (foperator_unordered_lt::op2_range): Same.
20103 (foperator_unordered_le::op1_range): Same.
20104 (foperator_unordered_le::op2_range): Same.
20105 (foperator_unordered_gt::op1_range): Same.
20106 (foperator_unordered_gt::op2_range): Same.
20107 (foperator_unordered_ge::op1_range): Same.
20108 (foperator_unordered_ge::op2_range): Same.
20109
20110 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
20111
20112 PR tree-optimization/107570
20113 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
20114
20115 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
20116
20117 * doc/gm2.texi (Internals): Remove from menu.
20118 (Using): Comment out ifnohtml conditional.
20119 (Documentation): Use gcc url.
20120 (License): Node simplified.
20121 (Copying): New node. Include gpl_v3_without_node.
20122 (Contributing): Node simplified.
20123 (Internals): Commented out.
20124 (Libraries): Node simplified.
20125 (Indices): Ditto.
20126 (Contents): Ditto.
20127 (Functions): Ditto.
20128
20129 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
20130
20131 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
20132 attribute.
20133 (mve_vqshluq_m_n_s<mode>): Likewise.
20134 (mve_vshlq_m_<supf><mode>): Likewise.
20135 (mve_vsriq_m_n_<supf><mode>): Likewise.
20136 (mve_vsubq_m_<supf><mode>): Likewise.
20137
20138 2023-02-03 Martin Jambor <mjambor@suse.cz>
20139
20140 PR ipa/108384
20141 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
20142 when comparing to an IPA-CP value.
20143 (dump_list_of_param_indices): New function.
20144 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
20145 Dump removed candidates using dump_list_of_param_indices.
20146 * ipa-param-manipulation.cc
20147 (ipa_param_body_adjustments::modify_expression): Add assert checking
20148 sizes of a VIEW_CONVERT_EXPR will match.
20149 (ipa_param_body_adjustments::modify_assignment): Likewise.
20150
20151 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
20152
20153 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
20154 * config/riscv/riscv.cc: Ditto.
20155
20156 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20157
20158 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
20159 (sll.vv): Ditto.
20160 (%3,%4): Ditto.
20161 (%3,%v4): Ditto.
20162 * config/riscv/vector.md: Ditto.
20163
20164 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20165
20166 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
20167 * config/riscv/riscv-vector-builtins-bases.cc: New class.
20168 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
20169 (vsra): Ditto.
20170 (vsrl): Ditto.
20171 * config/riscv/riscv-vector-builtins.cc: Ditto.
20172 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
20173
20174 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
20175
20176 * toplev.cc (toplev::main): Only print the version information header
20177 from toplevel main().
20178
20179 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
20180
20181 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
20182 cond_{ashl|ashr|lshr}
20183
20184 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
20185
20186 PR rtl-optimization/108086
20187 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
20188 Adjust size-related commentary accordingly.
20189
20190 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
20191
20192 PR rtl-optimization/108508
20193 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
20194 the splay tree search gives the first clobber in the second group,
20195 make sure that the root of the first clobber group is updated
20196 correctly. Enter the new clobber group into the definition splay
20197 tree.
20198
20199 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
20200
20201 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
20202 Fix finding best match score.
20203
20204 2023-02-02 Jakub Jelinek <jakub@redhat.com>
20205
20206 PR debug/106746
20207 PR rtl-optimization/108463
20208 PR target/108484
20209 * cselib.cc (cselib_current_insn): Move declaration earlier.
20210 (cselib_hasher::equal): For debug only locs, temporarily override
20211 cselib_current_insn to their l->setting_insn for the
20212 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
20213 promote some debug locs.
20214 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
20215 when using cselib call cselib_lookup_from_insn on the address but
20216 don't substitute it.
20217
20218 2023-02-02 Richard Biener <rguenther@suse.de>
20219
20220 PR middle-end/108625
20221 * genmatch.cc (expr::gen_transform): Also disallow resimplification
20222 from pushing to lseq with force_leaf.
20223 (dt_simplify::gen_1): Likewise.
20224
20225 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
20226
20227 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
20228 (struct kernargs): Replace the common content with kernargs_abi.
20229 (struct heap): Delete.
20230 (main): Read GCN_STACK_SIZE envvar.
20231 Allocate space for the device stacks.
20232 Write the new kernargs fields.
20233 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
20234 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
20235 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
20236 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
20237 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
20238 Set up the stacks from the values in the kernargs, not private.
20239 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
20240 (gcn_hsa_declare_function_name): Turn off the private segment.
20241 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
20242 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
20243 * config/gcn/gcn.opt (mstack-size): Change the description.
20244
20245 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
20246
20247 PR target/108443
20248 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
20249 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
20250 addressing MVE predicate modes.
20251 (mve_bool_vec_to_const): Change to represent correct MVE predicate
20252 format.
20253 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
20254 modes.
20255 (arm_vector_mode_supported_p): Likewise.
20256 (arm_mode_to_pred_mode): Add V2QI.
20257 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
20258 qualifier.
20259 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
20260 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
20261 (v2qi_UP): New macro.
20262 (v4bi_UP): New macro.
20263 (v8bi_UP): New macro.
20264 (v16bi_UP): New macro.
20265 (arm_expand_builtin_args): Make it able to expand the new predicate
20266 modes.
20267 * config/arm/arm-modes.def (V2QI): New mode.
20268 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
20269 Pred4x4_t): Remove unused predicate builtin types.
20270 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
20271 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
20272 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
20273 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
20274 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
20275 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
20276 of MODE_VECTOR_BOOL.
20277 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
20278 (MVE_VPRED): Likewise.
20279 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
20280 (MVE_vctp): New mode attribute.
20281 (mode1): Remove.
20282 (VCTPQ): Remove.
20283 (VCTPQ_M): Remove.
20284 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
20285 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
20286 attributes.
20287 (mve_vpnothi): Rename this...
20288 (mve_vpnotv16bi): ... to this.
20289 (mve_vctp<mode1>q_mhi): Rename this...
20290 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
20291 (mve_vldrdq_gather_base_z_<supf>v2di,
20292 mve_vldrdq_gather_offset_z_<supf>v2di,
20293 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
20294 mve_vstrdq_scatter_base_p_<supf>v2di,
20295 mve_vstrdq_scatter_offset_p_<supf>v2di,
20296 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
20297 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
20298 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
20299 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
20300 mve_vldrdq_gather_base_wb_z_<supf>v2di,
20301 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
20302 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
20303 predicates.
20304 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
20305 these...
20306 (VCTP): ... with this.
20307 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
20308 (VCTP_M): ... with this.
20309 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
20310 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
20311
20312 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
20313
20314 PR target/107674
20315 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
20316 (arm_modes_tieable_p): Make MVE predicate modes tieable.
20317 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
20318 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
20319 simplify_subreg to simplify subregs where the outermode is not scalar.
20320
20321 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
20322
20323 PR target/107674
20324 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
20325 new qualifiers parameter and use unsigned short type for MVE predicate.
20326 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
20327 parameter.
20328 (arm_init_crypto_builtins): Likewise.
20329
20330 2023-02-02 Jakub Jelinek <jakub@redhat.com>
20331
20332 PR ipa/107300
20333 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
20334 * internal-fn.def (TRAP): Remove.
20335 * internal-fn.cc (expand_TRAP): Remove.
20336 * tree.cc (build_common_builtin_nodes): Define
20337 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
20338 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
20339 instead of BUILT_IN_TRAP.
20340 * gimple.cc (gimple_build_builtin_unreachable): Remove
20341 emitting internal function for BUILT_IN_TRAP.
20342 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
20343 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
20344 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
20345 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
20346 BUILT_IN_UNREACHABLE_TRAP.
20347 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
20348 * tree-cfg.cc (verify_gimple_call,
20349 pass_warn_function_return::execute): Likewise.
20350 * attribs.cc (decl_attributes): Don't report exclusions on
20351 BUILT_IN_UNREACHABLE_TRAP either.
20352
20353 2023-02-02 liuhongt <hongtao.liu@intel.com>
20354
20355 PR tree-optimization/108601
20356 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
20357 * tree-vect-loop.cc
20358 (vectorizable_nonlinear_induction): Remove
20359 vect_can_peel_nonlinear_iv_p.
20360 (vect_can_peel_nonlinear_iv_p): Don't peel
20361 nonlinear iv(mult or shift) for epilog when vf is not
20362 constant and moved the defination to ..
20363 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
20364 .. Here.
20365
20366 2023-02-02 Jakub Jelinek <jakub@redhat.com>
20367
20368 PR middle-end/108435
20369 * tree-nested.cc (convert_nonlocal_omp_clauses)
20370 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
20371 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
20372 before calling declare_vars.
20373 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
20374 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
20375 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
20376 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
20377
20378 2023-02-01 Tamar Christina <tamar.christina@arm.com>
20379
20380 * common/config/aarch64/aarch64-common.cc
20381 (struct aarch64_option_extension): Add native_detect and document struct
20382 a bit more.
20383 (all_extensions): Set new field native_detect.
20384 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
20385 unused struct.
20386
20387 2023-02-01 Martin Liska <mliska@suse.cz>
20388
20389 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
20390 value if set.
20391
20392 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
20393
20394 PR tree-optimization/108356
20395 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
20396 do a search of the DOM tree for a range.
20397
20398 2023-02-01 Martin Liska <mliska@suse.cz>
20399
20400 PR ipa/108509
20401 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
20402 ony non-null values.
20403 * ipa.cc (walk_polymorphic_call_targets): Likewise.
20404
20405 2023-02-01 Martin Liska <mliska@suse.cz>
20406
20407 PR driver/108572
20408 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
20409 -gz=zstd.
20410
20411 2023-02-01 Jakub Jelinek <jakub@redhat.com>
20412
20413 PR debug/108573
20414 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
20415 subregs in DEBUG_INSNs.
20416
20417 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
20418
20419 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
20420
20421 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
20422
20423 * config/s390/s390.cc (s390_restore_gpr_p): New function.
20424 (s390_preserve_gpr_arg_in_range_p): New function.
20425 (s390_preserve_gpr_arg_p): New function.
20426 (s390_preserve_fpr_arg_p): New function.
20427 (s390_register_info_stdarg_fpr): Rename to ...
20428 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
20429 (s390_register_info_stdarg_gpr): Rename to ...
20430 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
20431 (s390_register_info): Use the renamed functions above.
20432 (s390_optimize_register_info): Likewise.
20433 (save_fpr): Generate CFI for -mpreserve-args.
20434 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
20435 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
20436 (s390_optimize_prologue): Likewise.
20437 * config/s390/s390.opt: New option -mpreserve-args
20438
20439 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
20440
20441 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
20442 (restore_gprs): Likewise.
20443 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
20444 frame pointer if a frame-pointer is used.
20445 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
20446 * config/s390/s390.md (stack_tie): Add a register operand and
20447 rename to ...
20448 (@stack_tie<mode>): ... this.
20449
20450 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
20451
20452 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
20453 EMIT_CFI parameter.
20454 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
20455 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
20456
20457 2023-02-01 Richard Biener <rguenther@suse.de>
20458
20459 PR middle-end/108500
20460 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
20461 with tree traversal algorithm.
20462
20463 2023-02-01 Jason Merrill <jason@redhat.com>
20464
20465 * doc/invoke.texi: Document -Wno-changes-meaning.
20466
20467 2023-02-01 David Malcolm <dmalcolm@redhat.com>
20468
20469 * doc/invoke.texi (Static Analyzer Options): Add notes about
20470 limitations of -fanalyzer.
20471
20472 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20473
20474 * config/riscv/constraints.md (vj): New.
20475 (vk): Ditto
20476 * config/riscv/iterators.md: Add more opcode.
20477 * config/riscv/predicates.md (vector_arith_operand): New.
20478 (vector_neg_arith_operand): New.
20479 (vector_shift_operand): New.
20480 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
20481 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
20482 (vsub): Ditto.
20483 (vand): Ditto.
20484 (vor): Ditto.
20485 (vxor): Ditto.
20486 (vsll): Ditto.
20487 (vsra): Ditto.
20488 (vsrl): Ditto.
20489 (vmin): Ditto.
20490 (vmax): Ditto.
20491 (vminu): Ditto.
20492 (vmaxu): Ditto.
20493 (vmul): Ditto.
20494 (vdiv): Ditto.
20495 (vrem): Ditto.
20496 (vdivu): Ditto.
20497 (vremu): Ditto.
20498 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
20499 (vsub): Ditto.
20500 (vand): Ditto.
20501 (vor): Ditto.
20502 (vxor): Ditto.
20503 (vsll): Ditto.
20504 (vsra): Ditto.
20505 (vsrl): Ditto.
20506 (vmin): Ditto.
20507 (vmax): Ditto.
20508 (vminu): Ditto.
20509 (vmaxu): Ditto.
20510 (vmul): Ditto.
20511 (vdiv): Ditto.
20512 (vrem): Ditto.
20513 (vdivu): Ditto.
20514 (vremu): Ditto.
20515 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
20516 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
20517 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
20518 (DEF_RVV_U_OPS): New.
20519 (rvv_arg_type_info::get_base_vector_type): Handle
20520 RVV_BASE_shift_vector.
20521 (rvv_arg_type_info::get_tree_type): Ditto.
20522 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
20523 RVV_BASE_shift_vector.
20524 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
20525 * config/riscv/vector-iterators.md: Handle more opcode.
20526 * config/riscv/vector.md (@pred_<optab><mode>): New.
20527
20528 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
20529
20530 PR target/108589
20531 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
20532 REG_P on SET_DEST.
20533
20534 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
20535
20536 PR tree-optimization/108608
20537 * tree-vect-loop.cc (vect_transform_reduction): Handle single
20538 def-use cycles that involve function calls rather than tree codes.
20539
20540 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
20541
20542 PR tree-optimization/108385
20543 * gimple-range-gori.cc (gori_compute::compute_operand_range):
20544 Allow VARYING computations to continue if there is a relation.
20545 * range-op.cc (pointer_plus_operator::op2_range): New.
20546
20547 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
20548
20549 PR tree-optimization/108359
20550 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
20551 (range_operator::fold_range): If op1 is equivalent to op2 then
20552 invoke new fold_in_parts_equiv to operate on sub-components.
20553 * range-op.h (wi_fold_in_parts_equiv): New prototype.
20554
20555 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
20556
20557 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
20558 not abort calculations if there is a valid relation available.
20559 (gori_compute::refine_using_relation): Pass correct relation trio.
20560 (gori_compute::compute_operand1_range): Create trio and use it.
20561 (gori_compute::compute_operand2_range): Ditto.
20562 * range-op.cc (operator_plus::op1_range): Use correct trio member.
20563 (operator_minus::op1_range): Use correct trio member.
20564 * value-relation.cc (value_relation::create_trio): New.
20565 * value-relation.h (value_relation::create_trio): New prototype.
20566
20567 2023-01-31 Jakub Jelinek <jakub@redhat.com>
20568
20569 PR target/108599
20570 * config/i386/i386-expand.cc
20571 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
20572 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
20573 equal to bitsize of mode.
20574
20575 2023-01-31 Jakub Jelinek <jakub@redhat.com>
20576
20577 PR rtl-optimization/108596
20578 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
20579 ends with asm goto and has a crossing fallthrough edge to the same bb
20580 that contains at least one of its labels by restoring EDGE_CROSSING
20581 flag even on possible edge from cur_bb to new_bb successor.
20582
20583 2023-01-31 Jakub Jelinek <jakub@redhat.com>
20584
20585 PR c++/105593
20586 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
20587 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
20588 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
20589 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
20590 uninitialized automatic variable __W.
20591
20592 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
20593
20594 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
20595
20596 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20597
20598 * config/riscv/riscv-protos.h (get_vector_mode): New function.
20599 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
20600 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
20601 (class loadstore): Adjust for indexed loads/stores support.
20602 (BASE): Ditto.
20603 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
20604 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
20605 (vluxei16): Ditto.
20606 (vluxei32): Ditto.
20607 (vluxei64): Ditto.
20608 (vloxei8): Ditto.
20609 (vloxei16): Ditto.
20610 (vloxei32): Ditto.
20611 (vloxei64): Ditto.
20612 (vsuxei8): Ditto.
20613 (vsuxei16): Ditto.
20614 (vsuxei32): Ditto.
20615 (vsuxei64): Ditto.
20616 (vsoxei8): Ditto.
20617 (vsoxei16): Ditto.
20618 (vsoxei32): Ditto.
20619 (vsoxei64): Ditto.
20620 * config/riscv/riscv-vector-builtins-shapes.cc
20621 (struct indexed_loadstore_def): New class.
20622 (SHAPE): Ditto.
20623 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
20624 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
20625 for indexed loads/stores support.
20626 (check_required_extensions): Ditto.
20627 (rvv_arg_type_info::get_base_vector_type): New function.
20628 (rvv_arg_type_info::get_tree_type): Ditto.
20629 (function_builder::add_unique_function): Adjust for indexed loads/stores
20630 support.
20631 (function_expander::use_exact_insn): New function.
20632 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
20633 indexed loads/stores support.
20634 (struct rvv_arg_type_info): Ditto.
20635 (function_expander::index_mode): New function.
20636 (function_base::apply_tail_policy_p): Ditto.
20637 (function_base::apply_mask_policy_p): Ditto.
20638 * config/riscv/vector-iterators.md (unspec): New unspec.
20639 * config/riscv/vector.md (unspec): Ditto.
20640 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
20641 pattern.
20642 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
20643 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
20644 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
20645 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
20646 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
20647 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
20648 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
20649 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
20650 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
20651 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
20652 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
20653 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
20654 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
20655
20656 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
20657
20658 * config.gcc: Recognize x86_64-*-gnu* targets and include
20659 i386/gnu64.h.
20660 * config/i386/gnu64.h: Define configuration for new target
20661 including ld.so location.
20662
20663 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
20664
20665 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
20666 ampere1a to include SM4.
20667
20668 2023-01-30 Andrew Pinski <apinski@marvell.com>
20669
20670 PR tree-optimization/108582
20671 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
20672 for middlebb to have no phi nodes.
20673
20674 2023-01-30 Richard Biener <rguenther@suse.de>
20675
20676 PR tree-optimization/108574
20677 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
20678 sameval and def, ignore the equivalence if there's the
20679 danger of oscillating between two values.
20680
20681 2023-01-30 Andreas Schwab <schwab@suse.de>
20682
20683 * common/config/riscv/riscv-common.cc
20684 (riscv_option_optimization_table)
20685 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
20686 -fasynchronous-unwind-tables and -funwind-tables.
20687 * config.gcc (riscv*-*-linux*): Define
20688 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
20689
20690 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
20691
20692 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
20693 value of includedir.
20694
20695 2023-01-30 Richard Biener <rguenther@suse.de>
20696
20697 PR ipa/108511
20698 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
20699 assert.
20700
20701 2023-01-30 liuhongt <hongtao.liu@intel.com>
20702
20703 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
20704 * doc/invoke.texi: Ditto.
20705
20706 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
20707
20708 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
20709 (stmt_may_terminate_function_p): If assuming return or EH
20710 volatile asm is safe.
20711 (find_always_executed_bbs): Fix handling of terminating BBS and
20712 infinite loops; add debug output.
20713 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
20714
20715 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
20716
20717 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
20718 off-by-one in checking the permissible shift-amount.
20719
20720 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20721
20722 * doc/extend.texi (Named Address Spaces): Update link to the
20723 AVR-Libc manual.
20724
20725 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20726
20727 * doc/standards.texi (Standards): Fix markup.
20728
20729 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20730
20731 * doc/standards.texi (Standards): Update link to Objective-C book.
20732
20733 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20734
20735 * doc/invoke.texi (Instrumentation Options): Update reference to
20736 AddressSanitizer.
20737
20738 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20739
20740 * doc/standards.texi: Update Go1 link.
20741
20742 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20743
20744 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
20745 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
20746 Support vlse/vsse.
20747 (BASE): Ditto.
20748 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
20749 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
20750 (vsse): New class.
20751 * config/riscv/riscv-vector-builtins.cc
20752 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
20753 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
20754 (@pred_strided_store<mode>): Ditto.
20755
20756 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20757
20758 * config/riscv/vector.md (tail_policy_op_idx): Remove.
20759 (mask_policy_op_idx): Remove.
20760 (avl_type_op_idx): Remove.
20761
20762 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
20763
20764 PR tree-optimization/96373
20765 * tree.h (sign_mask_for): Declare.
20766 * tree.cc (sign_mask_for): New function.
20767 (signed_or_unsigned_type_for): For vector types, try to use the
20768 related_int_vector_mode.
20769 * genmatch.cc (commutative_op): Handle conditional internal functions.
20770 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
20771
20772 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
20773
20774 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
20775 Use the likely minimum VF when bounding the denominators to
20776 the estimated number of iterations.
20777
20778 2023-01-27 Richard Biener <rguenther@suse.de>
20779
20780 PR target/55522
20781 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
20782 and -Ofast FP environment side-effects.
20783
20784 2023-01-27 Richard Biener <rguenther@suse.de>
20785
20786 PR target/55522
20787 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
20788 Don't add crtfastmath.o for -shared.
20789
20790 2023-01-27 Richard Biener <rguenther@suse.de>
20791
20792 PR target/55522
20793 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
20794 for -shared.
20795
20796 2023-01-27 Richard Biener <rguenther@suse.de>
20797
20798 PR target/55522
20799 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
20800 crtfastmath.o for -shared.
20801
20802 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
20803
20804 PR tree-optimization/108306
20805 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
20806 varying for shifts that are always out of void range.
20807 (operator_rshift::fold_range): Return [0, 0] not
20808 varying for shifts that are always out of void range.
20809
20810 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
20811
20812 PR tree-optimization/108447
20813 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
20814 Do not attempt to fold HONOR_NAN types.
20815
20816 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20817
20818 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
20819 Remove _m suffix for "vop_m" C++ overloaded API name.
20820
20821 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20822
20823 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
20824 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
20825 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
20826 (vsm): Ditto.
20827 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
20828 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
20829 (vbool64_t): Ditto.
20830 (vbool32_t): Ditto.
20831 (vbool16_t): Ditto.
20832 (vbool8_t): Ditto.
20833 (vbool4_t): Ditto.
20834 (vbool2_t): Ditto.
20835 (vbool1_t): Ditto.
20836 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
20837 (rvv_arg_type_info::get_tree_type): Ditto.
20838 (function_expander::use_contiguous_load_insn): Ditto.
20839 * config/riscv/vector.md (@pred_store<mode>): Ditto.
20840
20841 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20842
20843 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
20844 (vsetvl_discard_result_insn_p): New function.
20845 (reg_killed_by_bb_p): rename to find_reg_killed_by.
20846 (find_reg_killed_by): New name.
20847 (get_vl): allow it to be called by more functions.
20848 (has_vsetvl_killed_avl_p): Add condition.
20849 (get_avl): allow it to be called by more functions.
20850 (insn_should_be_added_p): New function.
20851 (get_all_nonphi_defs): Refine function.
20852 (get_all_sets): Ditto.
20853 (get_same_bb_set): New function.
20854 (any_insn_in_bb_p): Ditto.
20855 (any_set_in_bb_p): Ditto.
20856 (get_vl_vtype_info): Add VLMAX forward optimization.
20857 (source_equal_p): Fix issues.
20858 (extract_single_source): Refine.
20859 (avl_info::multiple_source_equal_p): New function.
20860 (avl_info::operator==): Adjust for final version.
20861 (vl_vtype_info::operator==): Ditto.
20862 (vl_vtype_info::same_avl_p): Ditto.
20863 (vector_insn_info::parse_insn): Ditto.
20864 (vector_insn_info::available_p): New function.
20865 (vector_insn_info::merge): Adjust for final version.
20866 (vector_insn_info::dump): Add hard_empty.
20867 (pass_vsetvl::hard_empty_block_p): New function.
20868 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
20869 (pass_vsetvl::forward_demand_fusion): Ditto.
20870 (pass_vsetvl::demand_fusion): Ditto.
20871 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
20872 (pass_vsetvl::compute_local_properties): Adjust for final version.
20873 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
20874 (pass_vsetvl::refine_vsetvls): Ditto.
20875 (pass_vsetvl::commit_vsetvls): Ditto.
20876 (pass_vsetvl::propagate_avl): New function.
20877 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
20878 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
20879
20880 2023-01-27 Jakub Jelinek <jakub@redhat.com>
20881
20882 PR other/108560
20883 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
20884 from size_t to int.
20885
20886 2023-01-27 Jakub Jelinek <jakub@redhat.com>
20887
20888 PR ipa/106061
20889 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
20890 redirection of calls to __builtin_trap in addition to redirection
20891 to __builtin_unreachable.
20892
20893 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20894
20895 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
20896
20897 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20898
20899 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
20900 (emit_vsetvl_insn): Ditto.
20901
20902 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20903
20904 * config/riscv/vector.md: Fix constraints.
20905
20906 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20907
20908 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
20909
20910 2023-01-27 Patrick Palka <ppalka@redhat.com>
20911 Jakub Jelinek <jakub@redhat.com>
20912
20913 * tree-core.h (tree_code_type, tree_code_length): For
20914 C++17 and later, add inline keyword, otherwise don't define
20915 the arrays, but declare extern arrays.
20916 * tree.cc (tree_code_type, tree_code_length): Define these
20917 arrays for C++14 and older.
20918
20919 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20920
20921 * config/riscv/riscv-vsetvl.h: Change it into public.
20922
20923 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20924
20925 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
20926 pass.
20927
20928 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20929
20930 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
20931
20932 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20933
20934 * config/riscv/vector.md: Fix incorrect attributes.
20935
20936 2023-01-27 Richard Biener <rguenther@suse.de>
20937
20938 PR target/55522
20939 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
20940 Don't add crtfastmath.o for -shared.
20941
20942 2023-01-27 Alexandre Oliva <oliva@gnu.org>
20943
20944 * doc/options.texi (option, RejectNegative): Mention that
20945 -g-started options are also implicitly negatable.
20946
20947 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
20948
20949 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
20950 Use get_typenode_from_name to get fixed-width integer type
20951 nodes.
20952 * config/riscv/riscv-vector-builtins.def: Update define with
20953 fixed-width integer type nodes.
20954
20955 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20956
20957 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
20958 (real_insn_and_same_bb_p): New function.
20959 (same_bb_and_after_or_equal_p): Remove it.
20960 (before_p): New function.
20961 (reg_killed_by_bb_p): Ditto.
20962 (has_vsetvl_killed_avl_p): Ditto.
20963 (get_vl): Move location so that we can call it.
20964 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
20965 (available_occurrence_p): Ditto.
20966 (dominate_probability_p): Remove it.
20967 (can_backward_propagate_p): Remove it.
20968 (get_all_nonphi_defs): New function.
20969 (get_all_predecessors): Ditto.
20970 (any_insn_in_bb_p): Ditto.
20971 (insert_vsetvl): Adjust AVL REG.
20972 (source_equal_p): New function.
20973 (extract_single_source): Ditto.
20974 (avl_info::single_source_equal_p): Ditto.
20975 (avl_info::operator==): Adjust for AVL=REG.
20976 (vl_vtype_info::same_avl_p): Ditto.
20977 (vector_insn_info::set_demand_info): Remove it.
20978 (vector_insn_info::compatible_p): Adjust for AVL=REG.
20979 (vector_insn_info::compatible_avl_p): New function.
20980 (vector_insn_info::merge): Adjust AVL=REG.
20981 (vector_insn_info::dump): Ditto.
20982 (pass_vsetvl::merge_successors): Remove it.
20983 (enum fusion_type): New enum.
20984 (pass_vsetvl::get_backward_fusion_type): New function.
20985 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
20986 (pass_vsetvl::forward_demand_fusion): Ditto.
20987 (pass_vsetvl::demand_fusion): Ditto.
20988 (pass_vsetvl::prune_expressions): Ditto.
20989 (pass_vsetvl::compute_local_properties): Ditto.
20990 (pass_vsetvl::cleanup_vsetvls): Ditto.
20991 (pass_vsetvl::commit_vsetvls): Ditto.
20992 (pass_vsetvl::init): Ditto.
20993 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
20994 (enum merge_type): New enum.
20995
20996 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20997
20998 * config/riscv/riscv-vsetvl.cc
20999 (vector_infos_manager::vector_infos_manager): Add probability.
21000 (vector_infos_manager::dump): Ditto.
21001 (pass_vsetvl::compute_probabilities): Ditto.
21002 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
21003
21004 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21005
21006 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
21007 (vector_insn_info::merge): Ditto.
21008 (vector_insn_info::dump): Ditto.
21009 (pass_vsetvl::merge_successors): Ditto.
21010 (pass_vsetvl::backward_demand_fusion): Ditto.
21011 (pass_vsetvl::forward_demand_fusion): Ditto.
21012 (pass_vsetvl::commit_vsetvls): Ditto.
21013 * config/riscv/riscv-vsetvl.h: Ditto.
21014
21015 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21016
21017 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
21018 rinsn.
21019
21020 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21021
21022 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
21023
21024 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21025
21026 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
21027 Add pre-check for redundant flow.
21028
21029 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21030
21031 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
21032 (vector_infos_manager::free_bitmap_vectors): Ditto.
21033 (pass_vsetvl::pre_vsetvl): Adjust codes.
21034 * config/riscv/riscv-vsetvl.h: New function declaration.
21035
21036 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21037
21038 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
21039 (vector_insn_info::set_demand_info): New function.
21040 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
21041 (pass_vsetvl::merge_successors): Ditto.
21042 (pass_vsetvl::compute_global_backward_infos): Ditto.
21043 (pass_vsetvl::backward_demand_fusion): Ditto.
21044 (pass_vsetvl::forward_demand_fusion): Ditto.
21045 (pass_vsetvl::demand_fusion): New function.
21046 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
21047 * config/riscv/riscv-vsetvl.h: New function declaration.
21048
21049 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21050
21051 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
21052
21053 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21054
21055 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
21056 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
21057
21058 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21059
21060 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
21061 (backward_propagate_worthwhile_p): Fix non-worthwhile.
21062
21063 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21064
21065 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
21066
21067 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21068
21069 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
21070 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
21071 (pass_vsetvl::commit_vsetvls): Ditto.
21072 * config/riscv/riscv-vsetvl.h: New function declaration.
21073
21074 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21075
21076 * config/riscv/vector.md:
21077
21078 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21079
21080 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
21081 pred_store for vse.
21082 * config/riscv/riscv-vector-builtins.cc
21083 (function_expander::add_mem_operand): Refine function.
21084 (function_expander::use_contiguous_load_insn): Adjust new
21085 implementation.
21086 (function_expander::use_contiguous_store_insn): Ditto.
21087 * config/riscv/riscv-vector-builtins.h: Refine function.
21088 * config/riscv/vector.md (@pred_store<mode>): New pattern.
21089
21090 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21091
21092 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
21093
21094 2023-01-26 Marek Polacek <polacek@redhat.com>
21095
21096 PR middle-end/108543
21097 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
21098 if it was previously set.
21099
21100 2023-01-26 Jakub Jelinek <jakub@redhat.com>
21101
21102 PR tree-optimization/108540
21103 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
21104 are singletons, use range_true even if op1 != op2
21105 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
21106 even if intersection of the ranges is empty and one has
21107 zero low bound and another zero high bound, use range_true_and_false
21108 rather than range_false.
21109 (foperator_not_equal::fold_range): If both op1 and op2
21110 are singletons, use range_false even if op1 != op2
21111 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
21112 even if intersection of the ranges is empty and one has
21113 zero low bound and another zero high bound, use range_true_and_false
21114 rather than range_true.
21115
21116 2023-01-26 Jakub Jelinek <jakub@redhat.com>
21117
21118 * value-relation.cc (kind_string): Add const.
21119 (rr_negate_table, rr_swap_table, rr_intersect_table,
21120 rr_union_table, rr_transitive_table): Add static const, change
21121 element type from relation_kind to unsigned char.
21122 (relation_negate, relation_swap, relation_intersect, relation_union,
21123 relation_transitive): Cast rr_*_table element to relation_kind.
21124 (relation_to_code): Add static const.
21125 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
21126
21127 2023-01-26 Richard Biener <rguenther@suse.de>
21128
21129 PR tree-optimization/108547
21130 * gimple-predicate-analysis.cc (value_sat_pred_p):
21131 Use widest_int.
21132
21133 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
21134
21135 PR tree-optimization/108522
21136 * tree-object-size.cc (compute_object_offset): Make EXPR
21137 argument non-const. Call component_ref_field_offset.
21138
21139 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21140
21141 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
21142 FEATURE_STRING field.
21143
21144 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
21145
21146 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
21147
21148 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
21149
21150 PR modula2/102343
21151 PR modula2/108182
21152 * gcc.cc: Provide default specs for Modula-2 so that when the
21153 language is not built-in better diagnostics are emitted for
21154 attempts to use .mod or .m2i file extensions.
21155
21156 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21157
21158 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
21159
21160 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21161
21162 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
21163
21164 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21165
21166 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
21167 Fix spacing.
21168
21169 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21170
21171 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
21172
21173 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21174
21175 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
21176
21177 2023-01-25 Richard Biener <rguenther@suse.de>
21178
21179 PR tree-optimization/108523
21180 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
21181 backedge value for the result when using predication to
21182 prove equivalence.
21183
21184 2023-01-25 Richard Biener <rguenther@suse.de>
21185
21186 * doc/lto.texi (Command line options): Reword and update reference
21187 to removed lto_read_all_file_options.
21188
21189 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
21190
21191 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
21192 tests.
21193
21194 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
21195
21196 * doc/contrib.texi: Add Jose E. Marchesi.
21197
21198 2023-01-25 Jakub Jelinek <jakub@redhat.com>
21199
21200 PR tree-optimization/108498
21201 * gimple-ssa-store-merging.cc (class store_operand_info):
21202 End coment with full stop rather than comma.
21203 (split_group): Likewise.
21204 (merged_store_group::apply_stores): Clear string_concatenation if
21205 start or end aren't on a byte boundary.
21206
21207 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
21208 Jakub Jelinek <jakub@redhat.com>
21209
21210 PR tree-optimization/108522
21211 * tree-object-size.cc (compute_object_offset): Use
21212 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
21213
21214 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21215
21216 * config/xtensa/xtensa.md:
21217 Fix exit from loops detecting references before overwriting in the
21218 split pattern.
21219
21220 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
21221
21222 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
21223 do elimination but only for hard register.
21224 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
21225 calls of get_hard_regno.
21226
21227 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
21228
21229 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
21230 of CPU version.
21231
21232 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
21233
21234 PR target/108177
21235 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
21236 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
21237 as input operand.
21238
21239 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21240
21241 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
21242 and only include 'csky/t-csky-linux' when enable multilib.
21243 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
21244 define it when disable multilib.
21245
21246 2023-01-24 Richard Biener <rguenther@suse.de>
21247
21248 PR tree-optimization/108500
21249 * dominance.h (calculate_dominance_info): Add parameter
21250 to indicate fast-query compute, defaulted to true.
21251 * dominance.cc (calculate_dominance_info): Honor
21252 fast-query compute parameter.
21253 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
21254 not compute the dominator fast-query DFS numbers.
21255
21256 2023-01-24 Eric Biggers <ebiggers@google.com>
21257
21258 PR bootstrap/90543
21259 * optc-save-gen.awk: Fix copy-and-paste error.
21260
21261 2023-01-24 Jakub Jelinek <jakub@redhat.com>
21262
21263 PR c++/108474
21264 * cgraphbuild.cc: Include gimplify.h.
21265 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
21266 their corresponding DECL_VALUE_EXPR expressions after unsharing.
21267
21268 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21269
21270 PR target/108505
21271 * config.gcc (tm_file): Move the variable out of loop.
21272
21273 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
21274 Yang Yujie <yangyujie@loongson.cn>
21275
21276 PR target/107731
21277 * config/loongarch/loongarch.cc (loongarch_classify_address):
21278 Add precessint for CONST_INT.
21279 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
21280 (loongarch_print_operand): Increase the processing of '%c'.
21281 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
21282 And port the public operand modifiers information to this document.
21283
21284 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21285
21286 * doc/invoke.texi (-mbranch-protection): Update documentation.
21287
21288 2023-01-23 Richard Biener <rguenther@suse.de>
21289
21290 PR target/55522
21291 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
21292 for -shared.
21293 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
21294 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
21295 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
21296 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
21297
21298 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21299
21300 * config/arm/aout.h (ra_auth_code): Add entry in enum.
21301 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
21302 to dwarf frame expression.
21303 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
21304 (arm_expand_prologue): Update frame related information and reg notes
21305 for pac/pacbit insn.
21306 (arm_regno_class): Check for pac pseudo reigster.
21307 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
21308 (arm_init_machine_status): Set pacspval_needed to zero.
21309 (arm_debugger_regno): Check for PAC register.
21310 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
21311 register.
21312 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
21313 (arm_unwind_emit): Update REG_CFA_REGISTER case._
21314 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
21315 (DWARF_PAC_REGNUM): Define.
21316 (IS_PAC_REGNUM): Likewise.
21317 (enum reg_class): Add PAC_REG entry.
21318 (machine_function): Add pacbti_needed state to structure.
21319 * config/arm/arm.md (RA_AUTH_CODE): Define.
21320
21321 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21322
21323 * config.gcc ($tm_file): Update variable.
21324 * config/arm/arm-mlib.h: Create new header file.
21325 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
21326 multilib arch directory.
21327 (MULTILIB_REUSE): Add multilib reuse rules.
21328 (MULTILIB_MATCHES): Add multilib match rules.
21329
21330 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21331
21332 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
21333 * config/arm/arm-tables.opt: Regenerate.
21334 * config/arm/arm-tune.md: Likewise.
21335 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
21336 * (-mfix-cmse-cve-2021-35465): Likewise.
21337
21338 2023-01-23 Richard Biener <rguenther@suse.de>
21339
21340 PR tree-optimization/108482
21341 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
21342 .LOOP_DIST_ALIAS calls.
21343
21344 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21345
21346 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
21347 * config/arm/arm-protos.h: Update.
21348 * config/arm/aarch-common-protos.h: Declare
21349 'aarch_bti_arch_check'.
21350 * config/arm/arm.cc (aarch_bti_enabled) Update.
21351 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
21352 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
21353 * config/arm/arm.md (bti_nop): New insn.
21354 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
21355 (aarch-bti-insert.o): New target.
21356 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
21357 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
21358 compatibility.
21359 (gate): Make use of 'aarch_bti_arch_check'.
21360 * config/arm/arm-passes.def: New file.
21361 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
21362
21363 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21364
21365 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
21366 'aarch-bti-insert.o'.
21367 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
21368 proto.
21369 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
21370 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
21371 (aarch64_output_mi_thunk)
21372 (aarch64_print_patchable_function_entry)
21373 (aarch64_file_end_indicate_exec_stack): Update renamed function
21374 calls to renamed functions.
21375 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
21376 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
21377 target.
21378 * config/aarch64/aarch64-bti-insert.cc: Delete.
21379 * config/arm/aarch-bti-insert.cc: New file including and
21380 generalizing code from aarch64-bti-insert.cc.
21381 * config/arm/aarch-common-protos.h: Update.
21382
21383 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21384
21385 * config/arm/arm.h (arm_arch8m_main): Declare it.
21386 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
21387 Declare it.
21388 * config/arm/arm.cc (arm_arch8m_main): Define it.
21389 (arm_option_reconfigure_globals): Set arm_arch8m_main.
21390 (arm_compute_frame_layout, arm_expand_prologue)
21391 (thumb2_expand_return, arm_expand_epilogue)
21392 (arm_conditional_register_usage): Update for pac codegen.
21393 (arm_current_function_pac_enabled_p): New function.
21394 (aarch_bti_enabled) New function.
21395 (use_return_insn): Return zero when pac is enabled.
21396 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
21397 Add new patterns.
21398 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
21399 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
21400
21401 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21402
21403 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
21404 mbranch-protection.
21405
21406 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21407 Tejas Belagod <tbelagod@arm.com>
21408
21409 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
21410 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
21411
21412 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21413 Tejas Belagod <tbelagod@arm.com>
21414 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21415
21416 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
21417 new pseudo register class _UVRSC_PAC.
21418
21419 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21420 Tejas Belagod <tbelagod@arm.com>
21421
21422 * config/arm/arm-c.cc (arm_cpu_builtins): Define
21423 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
21424 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
21425
21426 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21427 Tejas Belagod <tbelagod@arm.com>
21428
21429 * doc/sourcebuild.texi: Document arm_pacbti_hw.
21430
21431 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21432 Tejas Belagod <tbelagod@arm.com>
21433 Richard Earnshaw <Richard.Earnshaw@arm.com>
21434
21435 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
21436 -mbranch-protection option and initialize appropriate data structures.
21437 * config/arm/arm.opt (-mbranch-protection): New option.
21438 * doc/invoke.texi (Arm Options): Document it.
21439
21440 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21441 Tejas Belagod <tbelagod@arm.com>
21442
21443 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
21444 * config/arm/arm-cpus.in (pacbti): New feature.
21445 * doc/invoke.texi (Arm Options): Document it.
21446
21447 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21448 Tejas Belagod <tbelagod@arm.com>
21449
21450 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
21451 (all_architectures): Fix comment.
21452 (aarch64_parse_extension): Rename return type, enum value names.
21453 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
21454 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
21455 Also rename corresponding enum values.
21456 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
21457 out aarch64_function_type and move it to common code as
21458 aarch_function_type in aarch-common.h.
21459 * config/aarch64/aarch64-protos.h: Include common types header,
21460 move out types aarch64_parse_opt_result and aarch64_key_type to
21461 aarch-common.h
21462 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
21463 and functions out into aarch-common.h and aarch-common.cc. Fix up
21464 all the name changes resulting from the move.
21465 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
21466 and enum value.
21467 * config/aarch64/aarch64.opt: Include aarch-common.h to import
21468 type move. Fix up name changes from factoring out common code and
21469 data.
21470 * config/arm/aarch-common-protos.h: Export factored out routines to both
21471 backends.
21472 * config/arm/aarch-common.cc: Include newly factored out types.
21473 Move all mbranch-protection code and data structures from
21474 aarch64.cc.
21475 * config/arm/aarch-common.h: New header that declares types shared
21476 between aarch32 and aarch64 backends.
21477 * config/arm/arm-protos.h: Declare types and variables that are
21478 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
21479 aarch_ra_sign_scope and aarch_enable_bti.
21480 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
21481 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
21482 * config/arm/arm.cc: Add missing includes.
21483
21484 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
21485
21486 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
21487
21488 2023-01-23 Richard Biener <rguenther@suse.de>
21489
21490 PR tree-optimization/108449
21491 * cgraphunit.cc (check_global_declaration): Do not turn
21492 undefined statics into externs.
21493
21494 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
21495
21496 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
21497 and HI input modes.
21498 * config/pru/pru.md (clz): Fix generated code for QI and HI
21499 input modes.
21500
21501 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
21502
21503 * config/v850/v850.cc (v850_select_section): Put const volatile
21504 objects into read-only sections.
21505
21506 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
21507
21508 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
21509 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
21510 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
21511
21512 2023-01-20 Jakub Jelinek <jakub@redhat.com>
21513
21514 PR tree-optimization/108457
21515 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
21516 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
21517 argument instead of a temporary. Formatting fixes.
21518
21519 2023-01-19 Jakub Jelinek <jakub@redhat.com>
21520
21521 PR tree-optimization/108447
21522 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
21523 (relation_tests): Add self-tests for relation_{intersect,union}
21524 commutativity.
21525 * selftest.h (relation_tests): Declare.
21526 * function-tests.cc (test_ranges): Call it.
21527
21528 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
21529
21530 PR target/108436
21531 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
21532 invalid third argument to __builtin_ia32_prefetch.
21533
21534 2023-01-19 Jakub Jelinek <jakub@redhat.com>
21535
21536 PR middle-end/108459
21537 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
21538 than fold_unary for NEGATE_EXPR.
21539
21540 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
21541
21542 PR target/108411
21543 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
21544 comment. Move assert about alignment a bit later.
21545
21546 2023-01-19 Jakub Jelinek <jakub@redhat.com>
21547
21548 PR tree-optimization/108440
21549 * tree-ssa-forwprop.cc: Include gimple-range.h.
21550 (simplify_rotate): For the forms with T2 wider than T and shift counts of
21551 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
21552 to B. For the forms with T2 wider than T and shift counts of
21553 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
21554 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
21555 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
21556 pass specific ranger instead of get_global_range_query.
21557 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
21558 been created.
21559
21560 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21561
21562 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
21563 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
21564 the pattern.
21565 (aarch64_simd_vec_copy_lane<mode>): Likewise.
21566 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
21567
21568 2023-01-19 Alexandre Oliva <oliva@adacore.com>
21569
21570 PR debug/106746
21571 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
21572 within debug insns.
21573
21574 2023-01-18 Martin Jambor <mjambor@suse.cz>
21575
21576 PR ipa/107944
21577 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
21578 lcone_of chain also do not need the body.
21579
21580 2023-01-18 Richard Biener <rguenther@suse.de>
21581
21582 Revert:
21583 2022-12-16 Richard Biener <rguenther@suse.de>
21584
21585 PR middle-end/108086
21586 * tree-inline.cc (remap_ssa_name): Do not unshare the
21587 result from the decl_map.
21588
21589 2023-01-18 Murray Steele <murray.steele@arm.com>
21590
21591 PR target/108442
21592 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
21593 function.
21594 (__arm_vst1q_p_s8): Likewise.
21595 (__arm_vld1q_z_u8): Likewise.
21596 (__arm_vld1q_z_s8): Likewise.
21597 (__arm_vst1q_p_u16): Likewise.
21598 (__arm_vst1q_p_s16): Likewise.
21599 (__arm_vld1q_z_u16): Likewise.
21600 (__arm_vld1q_z_s16): Likewise.
21601 (__arm_vst1q_p_u32): Likewise.
21602 (__arm_vst1q_p_s32): Likewise.
21603 (__arm_vld1q_z_u32): Likewise.
21604 (__arm_vld1q_z_s32): Likewise.
21605 (__arm_vld1q_z_f16): Likewise.
21606 (__arm_vst1q_p_f16): Likewise.
21607 (__arm_vld1q_z_f32): Likewise.
21608 (__arm_vst1q_p_f32): Likewise.
21609
21610 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21611
21612 * config/xtensa/xtensa.md (xorsi3_internal):
21613 Rename from the original of "xorsi3".
21614 (xorsi3): New expansion pattern that emits addition rather than
21615 bitwise-XOR when the second source is a constant of -2147483648
21616 if TARGET_DENSITY.
21617
21618 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
21619 Andrew Pinski <apinski@marvell.com>
21620
21621 PR target/108396
21622 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
21623 vec_vsubcuqP with vec_vsubcuq.
21624
21625 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
21626
21627 PR target/108348
21628 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
21629 support for invalid uses of MMA opaque type in function arguments.
21630
21631 2023-01-18 liuhongt <hongtao.liu@intel.com>
21632
21633 PR target/55522
21634 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
21635 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
21636 -share or -mno-daz-ftz is specified.
21637 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
21638 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
21639
21640 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
21641
21642 * config/bpf/bpf.cc (bpf_option_override): Disable
21643 -fstack-protector.
21644
21645 2023-01-17 Jakub Jelinek <jakub@redhat.com>
21646
21647 PR tree-optimization/106523
21648 * tree-ssa-forwprop.cc (simplify_rotate): For the
21649 patterns with (-Y) & (B - 1) in one operand's shift
21650 count and Y in another, if T2 has wider precision than T,
21651 punt if Y could have a value in [B, B2 - 1] range.
21652
21653 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
21654
21655 PR target/105980
21656 * config/i386/i386.cc (x86_output_mi_thunk): Disable
21657 -mforce-indirect-call for PIC in 32-bit mode.
21658
21659 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
21660
21661 PR ipa/106077
21662 * ipa-modref.cc (modref_access_analysis::analyze): Use
21663 find_always_executed_bbs.
21664 * ipa-sra.cc (process_scan_results): Likewise.
21665 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
21666 (find_always_executed_bbs): New function.
21667 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
21668 (find_always_executed_bbs): Declare.
21669
21670 2023-01-16 Jan Hubicka <jh@suse.cz>
21671
21672 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
21673 by TARGET_USE_SCATTER.
21674 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
21675 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
21676 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
21677 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
21678 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
21679 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
21680
21681 2023-01-16 Richard Biener <rguenther@suse.de>
21682
21683 PR target/55522
21684 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
21685
21686 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
21687
21688 PR target/96795
21689 PR target/107515
21690 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
21691 (__ARM_mve_coerce3): Likewise.
21692
21693 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
21694
21695 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
21696
21697 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
21698
21699 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
21700 (number_of_iterations_bitcount): Add call to the above.
21701 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
21702 c[lt]z idiom recognition.
21703
21704 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
21705
21706 * doc/sourcebuild.texi: Add missing target attributes.
21707
21708 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
21709
21710 PR tree-optimization/94793
21711 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
21712 for c[lt]z optabs.
21713 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
21714 (number_of_iterations_cltz_complement): New.
21715 (number_of_iterations_bitcount): Add call to the above.
21716
21717 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
21718
21719 * doc/extend.texi (Common Function Attributes): Fix grammar.
21720
21721 2023-01-16 Jakub Jelinek <jakub@redhat.com>
21722
21723 PR other/108413
21724 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
21725 * config/riscv/riscv-vsetvl.cc: Likewise.
21726
21727 2023-01-16 Jakub Jelinek <jakub@redhat.com>
21728
21729 PR c++/105593
21730 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
21731 disable -Winit-self using pragma GCC diagnostic ignored.
21732 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
21733 Likewise.
21734 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
21735 _mm256_undefined_si256): Likewise.
21736 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
21737 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
21738 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
21739 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
21740
21741 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
21742
21743 PR target/108272
21744 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
21745 support for invalid uses in inline asm, factor out the checking and
21746 erroring to lambda function check_and_error_invalid_use.
21747
21748 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
21749
21750 PR tree-optimization/107608
21751 * range-op-float.cc (range_operator_float::fold_range): Avoid
21752 folding into INF when flag_trapping_math.
21753 * value-range.h (frange::known_isinf): Return false for possible NANs.
21754
21755 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21756
21757 * config.gcc (csky-*-*): Support --with-float=softfp.
21758
21759 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21760
21761 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
21762 Rename to xtensa_adjust_reg_alloc_order.
21763 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
21764 Ditto. And also remove code to reorder register numbers for
21765 leaf functions, rename the tables, and adjust the allocation
21766 order for the call0 ABI to use register A0 more.
21767 (xtensa_leaf_regs): Remove.
21768 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
21769 (order_regs_for_local_alloc): Rename as the above.
21770 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
21771
21772 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21773
21774 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
21775 Change to define_insn_and_split to fold ldr+dup to ld1rq.
21776 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
21777
21778 2023-01-14 Alexandre Oliva <oliva@adacore.com>
21779
21780 * hash-table.h (is_deleted): Precheck !is_empty.
21781 (mark_deleted): Postcheck !is_empty.
21782 (copy constructor): Test is_empty before is_deleted.
21783
21784 2023-01-14 Alexandre Oliva <oliva@adacore.com>
21785
21786 PR target/40457
21787 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
21788 moves.
21789
21790 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
21791
21792 PR rtl-optimization/108274
21793 * function.cc (thread_prologue_and_epilogue_insns): Also update the
21794 DF information for calls in a few more cases.
21795
21796 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
21797
21798 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
21799 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
21800 define.
21801 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
21802 (MAX_SYNC_LIBFUNC_SIZE): Define.
21803 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
21804 enabled.
21805 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
21806 libcall when sync libcalls are disabled.
21807 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
21808 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
21809 are disabled on 32-bit target.
21810 * config/pa/pa.opt (matomic-libcalls): New option.
21811 * doc/invoke.texi (HPPA Options): Update.
21812
21813 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
21814
21815 PR rtl-optimization/108117
21816 PR rtl-optimization/108132
21817 * sched-deps.cc (deps_analyze_insn): Do not schedule across
21818 calls before reload.
21819
21820 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21821
21822 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
21823 options for -mlibarch.
21824 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
21825 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
21826
21827 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
21828
21829 * attribs.cc (strict_flex_array_level_of): Move this function to ...
21830 * attribs.h (strict_flex_array_level_of): Remove the declaration.
21831 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
21832 replace the referece to strict_flex_array_level_of with
21833 DECL_NOT_FLEXARRAY.
21834 * tree.cc (component_ref_size): Likewise.
21835
21836 2023-01-13 Richard Biener <rguenther@suse.de>
21837
21838 PR target/55522
21839 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
21840 crtfastmath.o for -shared.
21841 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
21842
21843 2023-01-13 Richard Biener <rguenther@suse.de>
21844
21845 PR target/55522
21846 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
21847 crtfastmath.o for -shared.
21848 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
21849 Likewise.
21850 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
21851 Likewise.
21852
21853 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
21854
21855 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
21856 function.
21857 (TARGET_DWARF_FRAME_REG_MODE): Define.
21858
21859 2023-01-13 Richard Biener <rguenther@suse.de>
21860
21861 PR target/107209
21862 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
21863 update EH info on the fly.
21864
21865 2023-01-13 Richard Biener <rguenther@suse.de>
21866
21867 PR tree-optimization/108387
21868 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
21869 value before inserting expression into the tables.
21870
21871 2023-01-12 Andrew Pinski <apinski@marvell.com>
21872 Roger Sayle <roger@nextmovesoftware.com>
21873
21874 PR tree-optimization/92342
21875 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
21876 Use tcc_comparison and :c for the multiply.
21877 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
21878
21879 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
21880 Richard Sandiford <richard.sandiford@arm.com>
21881
21882 PR target/105549
21883 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
21884 Check DECL_PACKED for bitfield.
21885 (aarch64_layout_arg): Warn when parameter passing ABI changes.
21886 (aarch64_function_arg_boundary): Do not warn here.
21887 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
21888 changes.
21889
21890 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
21891 Richard Sandiford <richard.sandiford@arm.com>
21892
21893 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
21894 comment.
21895 (aarch64_layout_arg): Factorize warning conditions.
21896 (aarch64_function_arg_boundary): Fix typo.
21897 * function.cc (currently_expanding_function_start): New variable.
21898 (expand_function_start): Handle
21899 currently_expanding_function_start.
21900 * function.h (currently_expanding_function_start): Declare.
21901
21902 2023-01-12 Richard Biener <rguenther@suse.de>
21903
21904 PR tree-optimization/99412
21905 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
21906 (swap_ops_for_binary_stmt): Remove reduction handling.
21907 (rewrite_expr_tree_parallel): Adjust.
21908 (reassociate_bb): Likewise.
21909 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
21910
21911 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21912
21913 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
21914 Rearrange the emitting codes.
21915
21916 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21917
21918 * config/xtensa/xtensa.md (*btrue):
21919 Correct value of the attribute "length" that depends on
21920 TARGET_DENSITY and operands, and add '?' character to the register
21921 constraint of the compared operand.
21922
21923 2023-01-12 Alexandre Oliva <oliva@adacore.com>
21924
21925 * hash-table.h (expand): Check elements and deleted counts.
21926 (verify): Likewise.
21927
21928 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
21929
21930 PR tree-optimization/71343
21931 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
21932 the value number of the expression X << C the same as the value
21933 number for the multiplication X * (1<<C).
21934
21935 2023-01-11 David Faust <david.faust@oracle.com>
21936
21937 PR target/108293
21938 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
21939 floating point modes.
21940
21941 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
21942
21943 PR tree-optimization/108199
21944 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
21945 for bit-field references.
21946
21947 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
21948
21949 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
21950 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
21951 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
21952 OPTION_MASK_P10_FUSION.
21953
21954 2023-01-11 Richard Biener <rguenther@suse.de>
21955
21956 PR tree-optimization/107767
21957 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
21958 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
21959 * tree-switch-conversion.cc (switch_conversion::collect):
21960 Count unique non-default targets accounting for later
21961 merging opportunities.
21962
21963 2023-01-11 Martin Liska <mliska@suse.cz>
21964
21965 PR middle-end/107976
21966 * params.opt: Limit JT params.
21967 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
21968
21969 2023-01-11 Richard Biener <rguenther@suse.de>
21970
21971 PR tree-optimization/108352
21972 * tree-ssa-threadbackward.cc
21973 (back_threader_profitability::profitable_path_p): Adjust
21974 heuristic that allows non-multi-way branch threads creating
21975 irreducible loops.
21976 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
21977 (--param fsm-scale-path-stmts): Adjust.
21978 * params.opt (--param=fsm-scale-path-blocks=): Remove.
21979 (-param=fsm-scale-path-stmts=): Adjust description.
21980
21981 2023-01-11 Richard Biener <rguenther@suse.de>
21982
21983 PR tree-optimization/108353
21984 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
21985 Remove.
21986 (add_ssa_edge): Simplify.
21987 (add_control_edge): Likewise.
21988 (ssa_prop_init): Likewise.
21989 (ssa_prop_fini): Likewise.
21990 (ssa_propagation_engine::ssa_propagate): Likewise.
21991
21992 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
21993
21994 * config/s390/s390.md (*not<mode>): New pattern.
21995
21996 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21997
21998 * config/xtensa/xtensa.cc (xtensa_insn_cost):
21999 Let insn cost for size be obtained by applying COSTS_N_INSNS()
22000 to instruction length and then dividing by 3.
22001
22002 2023-01-10 Richard Biener <rguenther@suse.de>
22003
22004 PR tree-optimization/106293
22005 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
22006 process degenerate PHI defs.
22007
22008 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
22009
22010 PR rtl-optimization/106421
22011 * cprop.cc (bypass_block): Check that DEST is local to this
22012 function (non-NULL) before calling find_edge.
22013
22014 2023-01-10 Martin Jambor <mjambor@suse.cz>
22015
22016 PR ipa/108110
22017 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
22018 sort_replacements, lookup_first_base_replacement and
22019 m_sorted_replacements_p.
22020 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
22021 (ipa_param_body_adjustments::register_replacement): Set
22022 m_sorted_replacements_p to false.
22023 (compare_param_body_replacement): New function.
22024 (ipa_param_body_adjustments::sort_replacements): Likewise.
22025 (ipa_param_body_adjustments::common_initialization): Call
22026 sort_replacements.
22027 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
22028 m_sorted_replacements_p.
22029 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
22030 std::lower_bound.
22031 (ipa_param_body_adjustments::lookup_first_base_replacement): New
22032 function.
22033 (ipa_param_body_adjustments::modify_call_stmt): Use
22034 lookup_first_base_replacement.
22035 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
22036 adjustments->sort_replacements.
22037
22038 2023-01-10 Richard Biener <rguenther@suse.de>
22039
22040 PR tree-optimization/108314
22041 * tree-vect-stmts.cc (vectorizable_condition): Do not
22042 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
22043
22044 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22045
22046 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
22047
22048 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22049
22050 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
22051
22052 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22053
22054 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
22055 defines for soft float abi.
22056
22057 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22058
22059 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
22060 (smart_bclri): Likewise.
22061 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
22062 (fast_bclri): Likewise.
22063 (fast_cmpnesi_i): Likewise.
22064 (*fast_cmpltsi_i): Likewise.
22065 (*fast_cmpgeusi_i): Likewise.
22066
22067 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22068
22069 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
22070 flag_fp_int_builtin_inexact || !flag_trapping_math.
22071 (<frm_pattern><mode>2): Likewise.
22072
22073 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
22074
22075 * config/s390/s390.cc (s390_register_info): Check call_used_regs
22076 instead of hard-coding the register numbers for call saved
22077 registers.
22078 (s390_optimize_register_info): Likewise.
22079
22080 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
22081
22082 * doc/gm2.texi (Overview): Fix @node markers.
22083 (Using): Likewise. Remove subsections that were moved to Overview
22084 from the menu and move others around.
22085
22086 2023-01-09 Richard Biener <rguenther@suse.de>
22087
22088 PR middle-end/108209
22089 * genmatch.cc (commutative_op): Fix return value for
22090 user-id with non-commutative first replacement.
22091
22092 2023-01-09 Jakub Jelinek <jakub@redhat.com>
22093
22094 PR target/107453
22095 * calls.cc (expand_call): For calls with
22096 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
22097 Formatting fix.
22098
22099 2023-01-09 Richard Biener <rguenther@suse.de>
22100
22101 PR middle-end/69482
22102 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
22103 qualified accesses also force objects to memory.
22104
22105 2023-01-09 Martin Liska <mliska@suse.cz>
22106
22107 PR lto/108330
22108 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
22109 NULL (deleleted value) to a hash_set.
22110
22111 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
22112
22113 * config/xtensa/xtensa.md (*splice_bits):
22114 New insn_and_split pattern.
22115
22116 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
22117
22118 * config/xtensa/xtensa.cc
22119 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
22120 New helper functions.
22121 (xtensa_set_return_address, xtensa_output_mi_thunk):
22122 Change to use the helper function.
22123 (xtensa_emit_adjust_stack_ptr): Ditto.
22124 And also change to try reusing the content of scratch register
22125 A9 if the register is not modified in the function body.
22126
22127 2023-01-07 LIU Hao <lh_mouse@126.com>
22128
22129 PR middle-end/108300
22130 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
22131 before <windows.h>.
22132 * diagnostic-color.cc: Likewise.
22133 * plugin.cc: Likewise.
22134 * prefix.cc: Likewise.
22135
22136 2023-01-06 Joseph Myers <joseph@codesourcery.com>
22137
22138 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
22139 for handling real integer types.
22140
22141 2023-01-06 Tamar Christina <tamar.christina@arm.com>
22142
22143 Revert:
22144 2022-12-12 Tamar Christina <tamar.christina@arm.com>
22145
22146 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
22147 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
22148 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
22149 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
22150 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
22151 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
22152 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
22153 (aarch64_simd_dupv2hf): New.
22154 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
22155 Add E_V2HFmode.
22156 * config/aarch64/iterators.md (VHSDF_P): New.
22157 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
22158 Vel, q, vp): Add V2HF.
22159 * config/arm/types.md (neon_fp_reduc_add_h): New.
22160
22161 2023-01-06 Martin Liska <mliska@suse.cz>
22162
22163 PR middle-end/107966
22164 * doc/options.texi: Fix Var documentation in internal manual.
22165
22166 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
22167
22168 Revert:
22169 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
22170
22171 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
22172 RTL expansion to allow condition (mask) to be shared/reused,
22173 by avoiding overwriting pseudos and adding REG_EQUAL notes.
22174
22175 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
22176
22177 * common.opt: Add -static-libgm2.
22178 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
22179 * doc/gm2.texi: Document static-libgm2.
22180 * gcc.cc (driver_handle_option): Allow static-libgm2.
22181
22182 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
22183
22184 * common/config/i386/i386-common.cc (processor_alias_table):
22185 Use CPU_ZNVER4 for znver4.
22186 * config/i386/i386.md: Add znver4.md.
22187 * config/i386/znver4.md: New.
22188
22189 2023-01-04 Jakub Jelinek <jakub@redhat.com>
22190
22191 PR tree-optimization/108253
22192 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
22193 types.
22194
22195 2023-01-04 Jakub Jelinek <jakub@redhat.com>
22196
22197 PR middle-end/108237
22198 * generic-match-head.cc: Include tree-pass.h.
22199 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
22200 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
22201 resp. PROP_gimple_lvec property set.
22202
22203 2023-01-04 Jakub Jelinek <jakub@redhat.com>
22204
22205 PR sanitizer/108256
22206 * convert.cc (do_narrow): Punt for MULT_EXPR if original
22207 type doesn't wrap around and -fsanitize=signed-integer-overflow
22208 is on.
22209 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
22210
22211 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
22212
22213 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
22214 * common/config/i386/i386-common.cc: Add Emeraldrapids.
22215
22216 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
22217
22218 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
22219 for meteorlake.
22220
22221 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
22222
22223 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
22224 default constructor to initialize it.
22225 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
22226 for last and iterate to handle recursive calls. Delete leftover
22227 candidates at the end.
22228 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
22229 on local clones.
22230 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
22231 gc_candidate bit when a clone is used.
22232
22233 2023-01-03 Florian Weimer <fweimer@redhat.com>
22234
22235 Revert:
22236 2023-01-02 Florian Weimer <fweimer@redhat.com>
22237
22238 * dwarf2cfi.cc (init_return_column_size): Remove.
22239 (init_one_dwarf_reg_size): Adjust.
22240 (generate_dwarf_reg_sizes): New function. Extracted
22241 from expand_builtin_init_dwarf_reg_sizes.
22242 (expand_builtin_init_dwarf_reg_sizes): Call
22243 generate_dwarf_reg_sizes.
22244 * target.def (init_dwarf_reg_sizes_extra): Adjust
22245 hook signature.
22246 * config/msp430/msp430.cc
22247 (msp430_init_dwarf_reg_sizes_extra): Adjust.
22248 * config/rs6000/rs6000.cc
22249 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
22250 * doc/tm.texi: Update.
22251
22252 2023-01-03 Florian Weimer <fweimer@redhat.com>
22253
22254 Revert:
22255 2023-01-02 Florian Weimer <fweimer@redhat.com>
22256
22257 * debug.h (dwarf_reg_sizes_constant): Declare.
22258 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
22259
22260 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
22261
22262 PR tree-optimization/105043
22263 * doc/extend.texi (Object Size Checking): Split out into two
22264 subsections and mention _FORTIFY_SOURCE.
22265
22266 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
22267
22268 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
22269 RTL expansion to allow condition (mask) to be shared/reused,
22270 by avoiding overwriting pseudos and adding REG_EQUAL notes.
22271
22272 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
22273
22274 PR target/108229
22275 * config/i386/i386-features.cc
22276 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
22277 the gain/cost of converting a MEM operand.
22278
22279 2023-01-03 Jakub Jelinek <jakub@redhat.com>
22280
22281 PR middle-end/108264
22282 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
22283 from source which doesn't have scalar integral mode first convert
22284 it to outer_mode.
22285
22286 2023-01-03 Jakub Jelinek <jakub@redhat.com>
22287
22288 PR rtl-optimization/108263
22289 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
22290 asm goto to EXIT.
22291
22292 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
22293
22294 PR target/87832
22295 * config/i386/lujiazui.md (lujiazui_div): New automaton.
22296 (lua_div): New unit.
22297 (lua_idiv_qi): Correct unit in the reservation.
22298 (lua_idiv_qi_load): Ditto.
22299 (lua_idiv_hi): Ditto.
22300 (lua_idiv_hi_load): Ditto.
22301 (lua_idiv_si): Ditto.
22302 (lua_idiv_si_load): Ditto.
22303 (lua_idiv_di): Ditto.
22304 (lua_idiv_di_load): Ditto.
22305 (lua_fdiv_SF): Ditto.
22306 (lua_fdiv_SF_load): Ditto.
22307 (lua_fdiv_DF): Ditto.
22308 (lua_fdiv_DF_load): Ditto.
22309 (lua_fdiv_XF): Ditto.
22310 (lua_fdiv_XF_load): Ditto.
22311 (lua_ssediv_SF): Ditto.
22312 (lua_ssediv_load_SF): Ditto.
22313 (lua_ssediv_V4SF): Ditto.
22314 (lua_ssediv_load_V4SF): Ditto.
22315 (lua_ssediv_V8SF): Ditto.
22316 (lua_ssediv_load_V8SF): Ditto.
22317 (lua_ssediv_SD): Ditto.
22318 (lua_ssediv_load_SD): Ditto.
22319 (lua_ssediv_V2DF): Ditto.
22320 (lua_ssediv_load_V2DF): Ditto.
22321 (lua_ssediv_V4DF): Ditto.
22322 (lua_ssediv_load_V4DF): Ditto.
22323
22324 2023-01-02 Florian Weimer <fweimer@redhat.com>
22325
22326 * debug.h (dwarf_reg_sizes_constant): Declare.
22327 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
22328
22329 2023-01-02 Florian Weimer <fweimer@redhat.com>
22330
22331 * dwarf2cfi.cc (init_return_column_size): Remove.
22332 (init_one_dwarf_reg_size): Adjust.
22333 (generate_dwarf_reg_sizes): New function. Extracted
22334 from expand_builtin_init_dwarf_reg_sizes.
22335 (expand_builtin_init_dwarf_reg_sizes): Call
22336 generate_dwarf_reg_sizes.
22337 * target.def (init_dwarf_reg_sizes_extra): Adjust
22338 hook signature.
22339 * config/msp430/msp430.cc
22340 (msp430_init_dwarf_reg_sizes_extra): Adjust.
22341 * config/rs6000/rs6000.cc
22342 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
22343 * doc/tm.texi: Update.
22344
22345 2023-01-02 Jakub Jelinek <jakub@redhat.com>
22346
22347 * gcc.cc (process_command): Update copyright notice dates.
22348 * gcov-dump.cc (print_version): Ditto.
22349 * gcov.cc (print_version): Ditto.
22350 * gcov-tool.cc (print_version): Ditto.
22351 * gengtype.cc (create_file): Ditto.
22352 * doc/cpp.texi: Bump @copying's copyright year.
22353 * doc/cppinternals.texi: Ditto.
22354 * doc/gcc.texi: Ditto.
22355 * doc/gccint.texi: Ditto.
22356 * doc/gcov.texi: Ditto.
22357 * doc/install.texi: Ditto.
22358 * doc/invoke.texi: Ditto.
22359
22360 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
22361 Uroš Bizjak <ubizjak@gmail.com>
22362
22363 * config/i386/i386.md (extendditi2): New define_insn.
22364 (define_split): Use DWIH mode iterator to treat new extendditi2
22365 identically to existing extendsidi2_1.
22366 (define_peephole2): Likewise.
22367 (define_peephole2): Likewise.
22368 (define_Split): Likewise.
22369
22370 \f
22371 Copyright (C) 2023 Free Software Foundation, Inc.
22372
22373 Copying and distribution of this file, with or without modification,
22374 are permitted in any medium without royalty provided the copyright
22375 notice and this notice are preserved.