]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
db1de5741ae58dec2833333eabd0805ac1aafd85
[thirdparty/gcc.git] / gcc / ChangeLog
1 2023-06-14 Jivan Hakobyan <jivanhakobyan9@gmail.com>
2
3 * config/moxie/uclinux.h (MFWRAP_SPEC): Remove
4
5 2023-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6
7 * config/aarch64/aarch64-sve-builtins-base.cc (svlast_impl::fold):
8 Fix signed comparison warning in loop from npats to enelts.
9
10 2023-06-14 Thomas Schwinge <thomas@codesourcery.com>
11
12 * gcc.cc (driver_handle_option): Forward host '-lgfortran', '-lm'
13 to offloading compilation.
14 * config/gcn/mkoffload.cc (main): Adjust.
15 * config/nvptx/mkoffload.cc (main): Likewise.
16 * doc/invoke.texi (foffload-options): Update example.
17
18 2023-06-14 liuhongt <hongtao.liu@intel.com>
19
20 PR target/110227
21 * config/i386/sse.md (mov<mode>_internal>): Use x instead of v
22 for alternative 2 since there's no evex version for vpcmpeqd
23 ymm, ymm, ymm.
24
25 2023-06-13 Jeff Law <jlaw@ventanamicro.com>
26
27 * gcc.cc (LINK_COMMAND_SPEC): Remove mudflap spec handling.
28
29 2023-06-13 Jeff Law <jlaw@ventanamicro.com>
30
31 * config/sh/divtab.cc: Remove.
32
33 2023-06-13 Jakub Jelinek <jakub@redhat.com>
34
35 * config/i386/i386.cc (standard_sse_constant_opcode): Remove
36 superfluous spaces around \t for vpcmpeqd.
37
38 2023-06-13 Roger Sayle <roger@nextmovesoftware.com>
39
40 * expr.cc (store_constructor) <case VECTOR_TYPE>: Don't bother
41 clearing vectors with only a single element. Set CLEARED if the
42 vector was initialized to zero.
43
44 2023-06-13 Lehua Ding <lehua.ding@rivai.ai>
45
46 * config/riscv/riscv-v.cc (struct mode_vtype_group): Remove duplicate
47 #include.
48 (ENTRY): Undef.
49 (TUPLE_ENTRY): Undef.
50
51 2023-06-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
52
53 * config/riscv/riscv-v.cc (rvv_builder::single_step_npatterns_p): Add comment.
54 (shuffle_generic_patterns): Ditto.
55 (expand_vec_perm_const_1): Ditto.
56
57 2023-06-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
58
59 * config/riscv/riscv-v.cc (emit_vlmax_decompress_insn): Fix bug.
60 (shuffle_decompress_patterns): Ditto.
61
62 2023-06-13 Richard Biener <rguenther@suse.de>
63
64 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Free loop BBs.
65
66 2023-06-13 Yanzhang Wang <yanzhang.wang@intel.com>
67 Kito Cheng <kito.cheng@sifive.com>
68
69 * config/riscv/riscv-protos.h (riscv_init_cumulative_args): Set
70 warning flag if func is not builtin
71 * config/riscv/riscv.cc
72 (riscv_scalable_vector_type_p): Determine whether the type is scalable vector.
73 (riscv_arg_has_vector): Determine whether the arg is vector type.
74 (riscv_pass_in_vector_p): Check the vector type param is passed by value.
75 (riscv_init_cumulative_args): The same as header.
76 (riscv_get_arg_info): Add the checking.
77 (riscv_function_value): Check the func return and set warning flag
78 * config/riscv/riscv.h (INIT_CUMULATIVE_ARGS): Add a flag to
79 determine whether warning psabi or not.
80
81 2023-06-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
82
83 * config/arm/arm-opts.h (enum arm_tp_type): Remove TP_CP15.
84 Add TP_TPIDRURW, TP_TPIDRURO, TP_TPIDRPRW values.
85 * config/arm/arm-protos.h (arm_output_load_tpidr): Declare prototype.
86 * config/arm/arm.cc (arm_option_reconfigure_globals): Replace TP_CP15
87 with TP_TPIDRURO.
88 (arm_output_load_tpidr): Define.
89 * config/arm/arm.h (TARGET_HARD_TP): Define in terms of TARGET_SOFT_TP.
90 * config/arm/arm.md (load_tp_hard): Call arm_output_load_tpidr to output
91 assembly.
92 (reload_tp_hard): Likewise.
93 * config/arm/arm.opt (tpidrurw, tpidruro, tpidrprw): New values for
94 arm_tp_type.
95 * doc/invoke.texi (Arm Options, mtp): Document new values.
96
97 2023-06-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
98
99 PR target/108779
100 * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Add
101 AARCH64_TPIDRRO_EL0 value.
102 * config/aarch64/aarch64.cc (aarch64_output_load_tp): Define.
103 * config/aarch64/aarch64.opt (tpidr_el0, tpidr_el1, tpidr_el2,
104 tpidr_el3, tpidrro_el3): New accepted values to -mtp=.
105 * doc/invoke.texi (AArch64 Options): Document new -mtp= options.
106
107 2023-06-13 Alexandre Oliva <oliva@adacore.com>
108
109 * range-op-float.cc (frange_nextafter): Drop inline.
110 (frelop_early_resolve): Add static.
111 (frange_float): Likewise.
112
113 2023-06-13 Richard Biener <rguenther@suse.de>
114
115 PR middle-end/110232
116 * fold-const.cc (native_interpret_vector): Use TYPE_SIZE_UNIT
117 to check whether the buffer covers the whole vector.
118
119 2023-06-13 Richard Biener <rguenther@suse.de>
120
121 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): For
122 .MASK_LOAD and friends set the size of the access to unknown.
123
124 2023-06-13 Tejas Belagod <tbelagod@arm.com>
125
126 PR target/96339
127 * config/aarch64/aarch64-sve-builtins-base.cc (svlast_impl::fold): Fold sve
128 calls that have a constant input predicate vector.
129 (svlast_impl::is_lasta): Query to check if intrinsic is svlasta.
130 (svlast_impl::is_lastb): Query to check if intrinsic is svlastb.
131 (svlast_impl::vect_all_same): Check if all vector elements are equal.
132
133 2023-06-13 Andi Kleen <ak@linux.intel.com>
134
135 * config/i386/gcc-auto-profile: Regenerate.
136
137 2023-06-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
138
139 * config/riscv/vector-iterators.md: Fix requirement.
140
141 2023-06-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
142
143 * config/riscv/riscv-v.cc (emit_vlmax_decompress_insn): New function.
144 (shuffle_decompress_patterns): New function.
145 (expand_vec_perm_const_1): Add decompress optimization.
146
147 2023-06-12 Jeff Law <jlaw@ventanamicro.com>
148
149 PR rtl-optimization/101188
150 * postreload.cc (reload_cse_move2add_invalidate): New function,
151 extracted from...
152 (reload_cse_move2add): Call reload_cse_move2add_invalidate.
153
154 2023-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
155
156 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Tweak condition
157 if (n_var == n_elts && n_elts <= 16) to allow a single constant,
158 and if maxv == 1, use constant element for duplicating into register.
159
160 2023-06-12 Tobias Burnus <tobias@codesourcery.com>
161
162 * gimplify.cc (gimplify_adjust_omp_clauses_1): Use
163 GOMP_MAP_FORCE_PRESENT for 'present alloc' implicit mapping.
164 (gimplify_adjust_omp_clauses): Change
165 GOMP_MAP_PRESENT_{TO,TOFROM,FROM,ALLOC} to the equivalent
166 GOMP_MAP_FORCE_PRESENT.
167 * omp-low.cc (lower_omp_target): Remove handling of no-longer valid
168 GOMP_MAP_PRESENT_{TO,TOFROM,FROM,ALLOC}; update map kinds used for
169 to/from clauses with present modifier.
170
171 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
172
173 PR tree-optimization/110205
174 * range-op-float.cc (range_operator::fold_range): Add default FII
175 fold routine.
176 * range-op-mixed.h (class operator_gt): Add missing final overrides.
177 * range-op.cc (range_op_handler::fold_range): Add RO_FII case.
178 (operator_lshift ::update_bitmask): Add final override.
179 (operator_rshift ::update_bitmask): Add final override.
180 * range-op.h (range_operator::fold_range): Add FII prototype.
181
182 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
183
184 * gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
185 Use range_op_handler directly.
186 * range-op.cc (range_op_handler::range_op_handler): Unsigned
187 param instead of tree-code.
188 (ptr_op_widen_plus_signed): Delete.
189 (ptr_op_widen_plus_unsigned): Delete.
190 (ptr_op_widen_mult_signed): Delete.
191 (ptr_op_widen_mult_unsigned): Delete.
192 (range_op_table::initialize_integral_ops): Add new opcodes.
193 * range-op.h (range_op_handler): Use unsigned.
194 (OP_WIDEN_MULT_SIGNED): New.
195 (OP_WIDEN_MULT_UNSIGNED): New.
196 (OP_WIDEN_PLUS_SIGNED): New.
197 (OP_WIDEN_PLUS_UNSIGNED): New.
198 (RANGE_OP_TABLE_SIZE): New.
199 (range_op_table::operator []): Use unsigned.
200 (range_op_table::set): Use unsigned.
201 (m_range_tree): Make unsigned.
202 (ptr_op_widen_mult_signed): Remove.
203 (ptr_op_widen_mult_unsigned): Remove.
204 (ptr_op_widen_plus_signed): Remove.
205 (ptr_op_widen_plus_unsigned): Remove.
206
207 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
208
209 * gimple-range-op.cc (gimple_range_op_handler): Set m_operator
210 manually as there is no access to the default operator.
211 (cfn_copysign::fold_range): Don't check for validity.
212 (cfn_ubsan::fold_range): Ditto.
213 (gimple_range_op_handler::maybe_builtin_call): Don't set to NULL.
214 * range-op.cc (default_operator): New.
215 (range_op_handler::range_op_handler): Use default_operator
216 instead of NULL.
217 (range_op_handler::operator bool): Move from header, compare
218 against default operator.
219 (range_op_handler::range_op): New.
220 * range-op.h (range_op_handler::operator bool): Move.
221
222 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
223
224 * range-op.cc (unified_table): Delete.
225 (range_op_table operator_table): Instantiate.
226 (range_op_table::range_op_table): Rename from unified_table.
227 (range_op_handler::range_op_handler): Use range_op_table.
228 * range-op.h (range_op_table::operator []): Inline.
229 (range_op_table::set): Inline.
230
231 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
232
233 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Do not
234 pass type.
235 * gimple-range-op.cc (get_code): Rename from get_code_and_type
236 and simplify.
237 (gimple_range_op_handler::supported_p): No need for type.
238 (gimple_range_op_handler::gimple_range_op_handler): Ditto.
239 (cfn_copysign::fold_range): Ditto.
240 (cfn_ubsan::fold_range): Ditto.
241 * ipa-cp.cc (ipa_vr_operation_and_type_effects): Ditto.
242 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Ditto.
243 * range-op-float.cc (operator_plus::op1_range): Ditto.
244 (operator_mult::op1_range): Ditto.
245 (range_op_float_tests): Ditto.
246 * range-op.cc (get_op_handler): Remove.
247 (range_op_handler::set_op_handler): Remove.
248 (operator_plus::op1_range): No need for type.
249 (operator_minus::op1_range): Ditto.
250 (operator_mult::op1_range): Ditto.
251 (operator_exact_divide::op1_range): Ditto.
252 (operator_cast::op1_range): Ditto.
253 (perator_bitwise_not::fold_range): Ditto.
254 (operator_negate::fold_range): Ditto.
255 * range-op.h (range_op_handler::range_op_handler): Remove type param.
256 (range_cast): No need for type.
257 (range_op_table::operator[]): Check for enum_code >= 0.
258 * tree-data-ref.cc (compute_distributive_range): No need for type.
259 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Ditto.
260 * value-query.cc (range_query::get_tree_range): Ditto.
261 * value-relation.cc (relation_oracle::validate_relation): Ditto.
262 * vr-values.cc (range_of_var_in_loop): Ditto.
263 (simplify_using_ranges::fold_cond_with_ops): Ditto.
264
265 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
266
267 * range-op-mixed.h (operator_max): Remove final.
268 * range-op-ptr.cc (pointer_table::pointer_table): Remove MAX_EXPR.
269 (pointer_table::pointer_table): Remove.
270 (class hybrid_max_operator): New.
271 (range_op_table::initialize_pointer_ops): Add hybrid_max_operator.
272 * range-op.cc (pointer_tree_table): Remove.
273 (unified_table::unified_table): Comment out MAX_EXPR.
274 (get_op_handler): Remove check of pointer table.
275 * range-op.h (class pointer_table): Remove.
276
277 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
278
279 * range-op-mixed.h (operator_min): Remove final.
280 * range-op-ptr.cc (pointer_table::pointer_table): Remove MIN_EXPR.
281 (class hybrid_min_operator): New.
282 (range_op_table::initialize_pointer_ops): Add hybrid_min_operator.
283 * range-op.cc (unified_table::unified_table): Comment out MIN_EXPR.
284
285 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
286
287 * range-op-mixed.h (operator_bitwise_or): Remove final.
288 * range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_IOR_EXPR.
289 (class hybrid_or_operator): New.
290 (range_op_table::initialize_pointer_ops): Add hybrid_or_operator.
291 * range-op.cc (unified_table::unified_table): Comment out BIT_IOR_EXPR.
292
293 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
294
295 * range-op-mixed.h (operator_bitwise_and): Remove final.
296 * range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_AND_EXPR.
297 (class hybrid_and_operator): New.
298 (range_op_table::initialize_pointer_ops): Add hybrid_and_operator.
299 * range-op.cc (unified_table::unified_table): Comment out BIT_AND_EXPR.
300
301 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
302
303 * Makefile.in (OBJS): Add range-op-ptr.o.
304 * range-op-mixed.h (update_known_bitmask): Move prototype here.
305 (minus_op1_op2_relation_effect): Move prototype here.
306 (wi_includes_zero_p): Move function to here.
307 (wi_zero_p): Ditto.
308 * range-op.cc (update_known_bitmask): Remove static.
309 (wi_includes_zero_p): Move to header.
310 (wi_zero_p): Move to header.
311 (minus_op1_op2_relation_effect): Remove static.
312 (operator_pointer_diff): Move class and routines to range-op-ptr.cc.
313 (pointer_plus_operator): Ditto.
314 (pointer_min_max_operator): Ditto.
315 (pointer_and_operator): Ditto.
316 (pointer_or_operator): Ditto.
317 (pointer_table): Ditto.
318 (range_op_table::initialize_pointer_ops): Ditto.
319 * range-op-ptr.cc: New.
320
321 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
322
323 * range-op-mixed.h (class operator_max): Move from...
324 * range-op.cc (unified_table::unified_table): Add MAX_EXPR.
325 (get_op_handler): Remove the integral table.
326 (class operator_max): Move from here.
327 (integral_table::integral_table): Delete.
328 * range-op.h (class integral_table): Delete.
329
330 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
331
332 * range-op-mixed.h (class operator_min): Move from...
333 * range-op.cc (unified_table::unified_table): Add MIN_EXPR.
334 (class operator_min): Move from here.
335 (integral_table::integral_table): Remove MIN_EXPR.
336
337 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
338
339 * range-op-mixed.h (class operator_bitwise_or): Move from...
340 * range-op.cc (unified_table::unified_table): Add BIT_IOR_EXPR.
341 (class operator_bitwise_or): Move from here.
342 (integral_table::integral_table): Remove BIT_IOR_EXPR.
343
344 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
345
346 * range-op-mixed.h (class operator_bitwise_and): Move from...
347 * range-op.cc (unified_table::unified_table): Add BIT_AND_EXPR.
348 (get_op_handler): Check for a pointer table entry first.
349 (class operator_bitwise_and): Move from here.
350 (integral_table::integral_table): Remove BIT_AND_EXPR.
351
352 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
353
354 * range-op-mixed.h (class operator_bitwise_xor): Move from...
355 * range-op.cc (unified_table::unified_table): Add BIT_XOR_EXPR.
356 (class operator_bitwise_xor): Move from here.
357 (integral_table::integral_table): Remove BIT_XOR_EXPR.
358 (pointer_table::pointer_table): Remove BIT_XOR_EXPR.
359
360 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
361
362 * range-op-mixed.h (class operator_bitwise_not): Move from...
363 * range-op.cc (unified_table::unified_table): Add BIT_NOT_EXPR.
364 (class operator_bitwise_not): Move from here.
365 (integral_table::integral_table): Remove BIT_NOT_EXPR.
366 (pointer_table::pointer_table): Remove BIT_NOT_EXPR.
367
368 2023-06-12 Andrew MacLeod <amacleod@redhat.com>
369
370 * range-op-mixed.h (class operator_addr_expr): Move from...
371 * range-op.cc (unified_table::unified_table): Add ADDR_EXPR.
372 (class operator_addr_expr): Move from here.
373 (integral_table::integral_table): Remove ADDR_EXPR.
374 (pointer_table::pointer_table): Remove ADDR_EXPR.
375
376 2023-06-12 Pan Li <pan2.li@intel.com>
377
378 * config/riscv/riscv-vector-builtins-types.def
379 (vfloat16m1_t): Add type to lmul1 ops.
380 (vfloat16m2_t): Likewise.
381 (vfloat16m4_t): Likewise.
382
383 2023-06-12 Richard Biener <rguenther@suse.de>
384
385 * tree-ssa-alias.cc (call_may_clobber_ref_p_1): For
386 .MASK_STORE and friend set the size of the access to
387 unknown.
388
389 2023-06-12 Tamar Christina <tamar.christina@arm.com>
390
391 * config.in: Regenerate.
392 * configure: Regenerate.
393 * configure.ac: Remove DEFAULT_MATCHPD_PARTITIONS.
394
395 2023-06-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
396
397 * config/riscv/autovec-opt.md
398 (*v<any_shiftrt:optab><any_extend:optab>trunc<mode>): New pattern.
399 (*<any_shiftrt:optab>trunc<mode>): Ditto.
400 * config/riscv/autovec.md (<optab><mode>3): Change to
401 define_insn_and_split.
402 (v<optab><mode>3): Ditto.
403 (trunc<mode><v_double_trunc>2): Ditto.
404
405 2023-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
406
407 * simplify-rtx.cc (simplify_const_unary_operation):
408 Handle US_TRUNCATE, SS_TRUNCATE.
409
410 2023-06-12 Eric Botcazou <ebotcazou@adacore.com>
411
412 PR modula2/109952
413 * doc/gm2.texi (Standard procedures): Fix Next link.
414
415 2023-06-12 Tamar Christina <tamar.christina@arm.com>
416
417 * config.in: Regenerate.
418
419 2023-06-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
420
421 PR middle-end/110142
422 * tree-vect-patterns.cc (vect_recog_widen_op_pattern): Don't pass
423 subtype to vect_widened_op_tree and remove subtype parameter, also
424 remove superfluous overloaded function definition.
425 (vect_recog_widen_plus_pattern): Remove subtype parameter and dont pass
426 to call to vect_recog_widen_op_pattern.
427 (vect_recog_widen_minus_pattern): Likewise.
428
429 2023-06-12 liuhongt <hongtao.liu@intel.com>
430
431 * config/i386/sse.md (vec_pack<floatprefix>_float_<mode>): New expander.
432 (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
433 (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
434 (vec_unpacks_lo_<mode>): Ditto.
435 (vec_unpacks_hi_<mode>): Ditto.
436 (sse_movlhps_<mode>): New define_insn.
437 (ssse3_palignr<mode>_perm): Extend to V_128H.
438 (V_128H): New mode iterator.
439 (ssepackPHmode): New mode attribute.
440 (vunpck_extract_mode): Ditto.
441 (vpckfloat_concat_mode): Extend to VxSI/VxSF for _Float16.
442 (vpckfloat_temp_mode): Ditto.
443 (vpckfloat_op_mode): Ditto.
444 (vunpckfixt_mode): Extend to VxHF.
445 (vunpckfixt_model): Ditto.
446 (vunpckfixt_extract_mode): Ditto.
447
448 2023-06-12 Richard Biener <rguenther@suse.de>
449
450 PR middle-end/110200
451 * genmatch.cc (expr::gen_transform): Put braces around
452 the if arm for the (convert ...) short-cut.
453
454 2023-06-12 Kewen Lin <linkw@linux.ibm.com>
455
456 PR target/109932
457 * config/rs6000/rs6000-builtins.def (__builtin_pack_vector_int128,
458 __builtin_unpack_vector_int128): Move from stanza power7 to vsx.
459
460 2023-06-12 Kewen Lin <linkw@linux.ibm.com>
461
462 PR target/110011
463 * config/rs6000/rs6000.cc (output_toc): Use the mode of the 128-bit
464 floating constant itself for real_to_target call.
465
466 2023-06-12 Pan Li <pan2.li@intel.com>
467
468 * config/riscv/riscv-vector-builtins-types.def
469 (vfloat16mf4_t): Add type to X2/X4/X8/X16/X32 vlmul ext ops.
470 (vfloat16mf2_t): Ditto.
471 (vfloat16m1_t): Ditto.
472 (vfloat16m2_t): Ditto.
473 (vfloat16m4_t): Ditto.
474
475 2023-06-12 David Edelsohn <dje.gcc@gmail.com>
476
477 * config/rs6000/rs6000-logue.cc (rs6000_stack_info):
478 Do not require a stack frame when debugging is enabled for AIX.
479
480 2023-06-11 Georg-Johann Lay <avr@gjlay.de>
481
482 * config/avr/avr.md (adjust_len) [insv_notbit_0, insv_notbit_7]:
483 Remove attribute values.
484 (insv_notbit): New post-reload insn.
485 (*insv.not-shiftrt_split, *insv.xor1-bit.0_split)
486 (*insv.not-bit.0_split, *insv.not-bit.7_split)
487 (*insv.xor-extract_split): Split to insv_notbit.
488 (*insv.not-shiftrt, *insv.xor1-bit.0, *insv.not-bit.0, *insv.not-bit.7)
489 (*insv.xor-extract): Remove post-reload insns.
490 * config/avr/avr.cc (avr_out_insert_notbit) [bitno]: Remove parameter.
491 (avr_adjust_insn_length): Adjust call of avr_out_insert_notbit.
492 [ADJUST_LEN_INSV_NOTBIT_0, ADJUST_LEN_INSV_NOTBIT_7]: Remove cases.
493 * config/avr/avr-protos.h (avr_out_insert_notbit): Adjust prototype.
494
495 2023-06-11 Georg-Johann Lay <avr@gjlay.de>
496
497 PR target/109907
498 * config/avr/avr.md (adjust_len) [extr, extr_not]: New elements.
499 (MSB, SIZE): New mode attributes.
500 (any_shift): New code iterator.
501 (*lshr<mode>3_split, *lshr<mode>3, lshr<mode>3)
502 (*lshr<mode>3_const_split): Add constraint alternative for
503 the case of shift-offset = MSB. Ditch "length" attribute.
504 (extzv<mode): New. replaces extzv. Adjust following patterns.
505 Use avr_out_extr, avr_out_extr_not to print asm.
506 (*extzv.subreg.<mode>, *extzv.<mode>.subreg, *extzv.xor)
507 (*extzv<mode>.ge, *neg.ashiftrt<mode>.msb, *extzv.io.lsr7): New.
508 * config/avr/constraints.md (C15, C23, C31, Yil): New
509 * config/avr/predicates.md (reg_or_low_io_operand)
510 (const7_operand, reg_or_low_io_operand)
511 (const15_operand, const_0_to_15_operand)
512 (const23_operand, const_0_to_23_operand)
513 (const31_operand, const_0_to_31_operand): New.
514 * config/avr/avr-protos.h (avr_out_extr, avr_out_extr_not): New.
515 * config/avr/avr.cc (avr_out_extr, avr_out_extr_not): New funcs.
516 (lshrqi3_out, lshrhi3_out, lshrpsi3_out, lshrsi3_out): Adjust
517 MSB case to new insn constraint "r" for operands[1].
518 (avr_adjust_insn_length) [ADJUST_LEN_EXTR_NOT, ADJUST_LEN_EXTR]:
519 Handle these cases.
520 (avr_rtx_costs_1): Adjust cost for a new pattern.
521
522 2023-06-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
523
524 * config/riscv/riscv-vsetvl.cc (available_occurrence_p): Enhance user vsetvl optimization.
525 (vector_insn_info::parse_insn): Add rtx_insn parse.
526 (pass_vsetvl::local_eliminate_vsetvl_insn): Enhance user vsetvl optimization.
527 (get_first_vsetvl): New function.
528 (pass_vsetvl::global_eliminate_vsetvl_insn): Ditto.
529 (pass_vsetvl::cleanup_insns): Remove it.
530 (pass_vsetvl::ssa_post_optimization): New function.
531 (has_no_uses): Ditto.
532 (pass_vsetvl::propagate_avl): Remove it.
533 (pass_vsetvl::df_post_optimization): New function.
534 (pass_vsetvl::lazy_vsetvl): Rework Phase 5 && Phase 6.
535 * config/riscv/riscv-vsetvl.h: Adapt declaration.
536
537 2023-06-10 Aldy Hernandez <aldyh@redhat.com>
538
539 * ipa-cp.cc (ipcp_vr_lattice::init): Take type argument.
540 (ipcp_vr_lattice::print): Call dump method.
541 (ipcp_vr_lattice::meet_with): Adjust for m_vr being a
542 Value_Range.
543 (ipcp_vr_lattice::meet_with_1): Make argument a reference.
544 (ipcp_vr_lattice::set_to_bottom): Set varying for an unsupported
545 range.
546 (initialize_node_lattices): Pass type when appropriate.
547 (ipa_vr_operation_and_type_effects): Make type agnostic.
548 (ipa_value_range_from_jfunc): Same.
549 (propagate_vr_across_jump_function): Same.
550 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
551 (evaluate_properties_for_edge): Same.
552 * ipa-prop.cc (ipa_vr::get_vrange): Same.
553 (ipcp_update_vr): Same.
554 * ipa-prop.h (ipa_value_range_from_jfunc): Same.
555 (ipa_range_set_and_normalize): Same.
556
557 2023-06-10 Georg-Johann Lay <avr@gjlay.de>
558
559 PR target/109650
560 PR target/92729
561 * config/avr/avr-passes.def (avr_pass_ifelse): Insert new pass.
562 * config/avr/avr.cc (avr_pass_ifelse): New RTL pass.
563 (avr_pass_data_ifelse): New pass_data for it.
564 (make_avr_pass_ifelse, avr_redundant_compare, avr_cbranch_cost)
565 (avr_canonicalize_comparison, avr_out_plus_set_ZN)
566 (avr_out_cmp_ext): New functions.
567 (compare_condtition): Make sure REG_CC dies in the branch insn.
568 (avr_rtx_costs_1): Add computation of cbranch costs.
569 (avr_adjust_insn_length) [ADJUST_LEN_ADD_SET_ZN, ADJUST_LEN_CMP_ZEXT]:
570 [ADJUST_LEN_CMP_SEXT]Handle them.
571 (TARGET_CANONICALIZE_COMPARISON): New define.
572 (avr_simplify_comparison_p, compare_diff_p, avr_compare_pattern)
573 (avr_reorg_remove_redundant_compare, avr_reorg): Remove functions.
574 (TARGET_MACHINE_DEPENDENT_REORG): Remove define.
575 * config/avr/avr-protos.h (avr_simplify_comparison_p): Remove proto.
576 (make_avr_pass_ifelse, avr_out_plus_set_ZN, cc_reg_rtx)
577 (avr_out_cmp_zext): New Protos
578 * config/avr/avr.md (branch, difficult_branch): Don't split insns.
579 (*cbranchhi.zero-extend.0", *cbranchhi.zero-extend.1")
580 (*swapped_tst<mode>, *add.for.eqne.<mode>): New insns.
581 (*cbranch<mode>4): Rename to cbranch<mode>4_insn.
582 (define_peephole): Add dead_or_set_regno_p(insn,REG_CC) as needed.
583 (define_deephole2): Add peep2_regno_dead_p(*,REG_CC) as needed.
584 Add new RTL peepholes for decrement-and-branch and *swapped_tst<mode>.
585 Rework signtest-and-branch peepholes for *sbrx_branch<mode>.
586 (adjust_len) [add_set_ZN, cmp_zext]: New.
587 (QIPSI): New mode iterator.
588 (ALLs1, ALLs2, ALLs4, ALLs234): New mode iterators.
589 (gelt): New code iterator.
590 (gelt_eqne): New code attribute.
591 (rvbranch, *rvbranch, difficult_rvbranch, *difficult_rvbranch)
592 (branch_unspec, *negated_tst<mode>, *reversed_tst<mode>)
593 (*cmpqi_sign_extend): Remove insns.
594 (define_c_enum "unspec") [UNSPEC_IDENTITY]: Remove.
595 * config/avr/avr-dimode.md (cbranch<mode>4): Canonicalize comparisons.
596 * config/avr/predicates.md (scratch_or_d_register_operand): New.
597 * config/avr/constraints.md (Yxx): New constraint.
598
599 2023-06-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
600
601 * config/riscv/autovec.md (select_vl<mode>): New pattern.
602 * config/riscv/riscv-protos.h (expand_select_vl): New function.
603 * config/riscv/riscv-v.cc (expand_select_vl): Ditto.
604
605 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
606
607 * range-op-float.cc (foperator_mult_div_base): Delete.
608 (foperator_mult_div_base::find_range): Make static local function.
609 (foperator_mult): Remove. Move prototypes to range-op-mixed.h
610 (operator_mult::op1_range): Rename from foperator_mult.
611 (operator_mult::op2_range): Ditto.
612 (operator_mult::rv_fold): Ditto.
613 (float_table::float_table): Remove MULT_EXPR.
614 (class foperator_div): Inherit from range_operator.
615 (float_table::float_table): Delete.
616 * range-op-mixed.h (class operator_mult): Combined from integer
617 and float files.
618 * range-op.cc (float_tree_table): Delete.
619 (op_mult): New object.
620 (unified_table::unified_table): Add MULT_EXPR.
621 (get_op_handler): Do not check float table any longer.
622 (class cross_product_operator): Move to range-op-mixed.h.
623 (class operator_mult): Move to range-op-mixed.h.
624 (integral_table::integral_table): Remove MULT_EXPR.
625 (pointer_table::pointer_table): Remove MULT_EXPR.
626 * range-op.h (float_table): Remove.
627
628 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
629
630 * range-op-float.cc (foperator_negate): Remove. Move prototypes
631 to range-op-mixed.h
632 (operator_negate::fold_range): Rename from foperator_negate.
633 (operator_negate::op1_range): Ditto.
634 (float_table::float_table): Remove NEGATE_EXPR.
635 * range-op-mixed.h (class operator_negate): Combined from integer
636 and float files.
637 * range-op.cc (op_negate): New object.
638 (unified_table::unified_table): Add NEGATE_EXPR.
639 (class operator_negate): Move to range-op-mixed.h.
640 (integral_table::integral_table): Remove NEGATE_EXPR.
641 (pointer_table::pointer_table): Remove NEGATE_EXPR.
642
643 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
644
645 * range-op-float.cc (foperator_minus): Remove. Move prototypes
646 to range-op-mixed.h
647 (operator_minus::fold_range): Rename from foperator_minus.
648 (operator_minus::op1_range): Ditto.
649 (operator_minus::op2_range): Ditto.
650 (operator_minus::rv_fold): Ditto.
651 (float_table::float_table): Remove MINUS_EXPR.
652 * range-op-mixed.h (class operator_minus): Combined from integer
653 and float files.
654 * range-op.cc (op_minus): New object.
655 (unified_table::unified_table): Add MINUS_EXPR.
656 (class operator_minus): Move to range-op-mixed.h.
657 (integral_table::integral_table): Remove MINUS_EXPR.
658 (pointer_table::pointer_table): Remove MINUS_EXPR.
659
660 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
661
662 * range-op-float.cc (foperator_abs): Remove. Move prototypes
663 to range-op-mixed.h
664 (operator_abs::fold_range): Rename from foperator_abs.
665 (operator_abs::op1_range): Ditto.
666 (float_table::float_table): Remove ABS_EXPR.
667 * range-op-mixed.h (class operator_abs): Combined from integer
668 and float files.
669 * range-op.cc (op_abs): New object.
670 (unified_table::unified_table): Add ABS_EXPR.
671 (class operator_abs): Move to range-op-mixed.h.
672 (integral_table::integral_table): Remove ABS_EXPR.
673 (pointer_table::pointer_table): Remove ABS_EXPR.
674
675 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
676
677 * range-op-float.cc (foperator_plus): Remove. Move prototypes
678 to range-op-mixed.h
679 (operator_plus::fold_range): Rename from foperator_plus.
680 (operator_plus::op1_range): Ditto.
681 (operator_plus::op2_range): Ditto.
682 (operator_plus::rv_fold): Ditto.
683 (float_table::float_table): Remove PLUS_EXPR.
684 * range-op-mixed.h (class operator_plus): Combined from integer
685 and float files.
686 * range-op.cc (op_plus): New object.
687 (unified_table::unified_table): Add PLUS_EXPR.
688 (class operator_plus): Move to range-op-mixed.h.
689 (integral_table::integral_table): Remove PLUS_EXPR.
690 (pointer_table::pointer_table): Remove PLUS_EXPR.
691
692 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
693
694 * range-op-mixed.h (class operator_cast): Combined from integer
695 and float files.
696 * range-op.cc (op_cast): New object.
697 (unified_table::unified_table): Add op_cast
698 (class operator_cast): Move to range-op-mixed.h.
699 (integral_table::integral_table): Remove op_cast
700 (pointer_table::pointer_table): Remove op_cast.
701
702 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
703
704 * range-op-float.cc (operator_cst::fold_range): New.
705 * range-op-mixed.h (class operator_cst): Move from integer file.
706 * range-op.cc (op_cst): New object.
707 (unified_table::unified_table): Add op_cst. Also use for REAL_CST.
708 (class operator_cst): Move to range-op-mixed.h.
709 (integral_table::integral_table): Remove op_cst.
710 (pointer_table::pointer_table): Remove op_cst.
711
712 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
713
714 * range-op-float.cc (foperator_identity): Remove. Move prototypes
715 to range-op-mixed.h
716 (operator_identity::fold_range): Rename from foperator_identity.
717 (operator_identity::op1_range): Ditto.
718 (float_table::float_table): Remove fop_identity.
719 * range-op-mixed.h (class operator_identity): Combined from integer
720 and float files.
721 * range-op.cc (op_identity): New object.
722 (unified_table::unified_table): Add op_identity.
723 (class operator_identity): Move to range-op-mixed.h.
724 (integral_table::integral_table): Remove identity.
725 (pointer_table::pointer_table): Remove identity.
726
727 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
728
729 * range-op-float.cc (foperator_ge): Remove. Move prototypes
730 to range-op-mixed.h
731 (operator_ge::fold_range): Rename from foperator_ge.
732 (operator_ge::op1_range): Ditto.
733 (float_table::float_table): Remove GE_EXPR.
734 * range-op-mixed.h (class operator_ge): Combined from integer
735 and float files.
736 * range-op.cc (op_ge): New object.
737 (unified_table::unified_table): Add GE_EXPR.
738 (class operator_ge): Move to range-op-mixed.h.
739 (ge_op1_op2_relation): Fold into
740 operator_ge::op1_op2_relation.
741 (integral_table::integral_table): Remove GE_EXPR.
742 (pointer_table::pointer_table): Remove GE_EXPR.
743 * range-op.h (ge_op1_op2_relation): Delete.
744
745 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
746
747 * range-op-float.cc (foperator_gt): Remove. Move prototypes
748 to range-op-mixed.h
749 (operator_gt::fold_range): Rename from foperator_gt.
750 (operator_gt::op1_range): Ditto.
751 (float_table::float_table): Remove GT_EXPR.
752 * range-op-mixed.h (class operator_gt): Combined from integer
753 and float files.
754 * range-op.cc (op_gt): New object.
755 (unified_table::unified_table): Add GT_EXPR.
756 (class operator_gt): Move to range-op-mixed.h.
757 (gt_op1_op2_relation): Fold into
758 operator_gt::op1_op2_relation.
759 (integral_table::integral_table): Remove GT_EXPR.
760 (pointer_table::pointer_table): Remove GT_EXPR.
761 * range-op.h (gt_op1_op2_relation): Delete.
762
763 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
764
765 * range-op-float.cc (foperator_le): Remove. Move prototypes
766 to range-op-mixed.h
767 (operator_le::fold_range): Rename from foperator_le.
768 (operator_le::op1_range): Ditto.
769 (float_table::float_table): Remove LE_EXPR.
770 * range-op-mixed.h (class operator_le): Combined from integer
771 and float files.
772 * range-op.cc (op_le): New object.
773 (unified_table::unified_table): Add LE_EXPR.
774 (class operator_le): Move to range-op-mixed.h.
775 (le_op1_op2_relation): Fold into
776 operator_le::op1_op2_relation.
777 (integral_table::integral_table): Remove LE_EXPR.
778 (pointer_table::pointer_table): Remove LE_EXPR.
779 * range-op.h (le_op1_op2_relation): Delete.
780
781 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
782
783 * range-op-float.cc (foperator_lt): Remove. Move prototypes
784 to range-op-mixed.h
785 (operator_lt::fold_range): Rename from foperator_lt.
786 (operator_lt::op1_range): Ditto.
787 (float_table::float_table): Remove LT_EXPR.
788 * range-op-mixed.h (class operator_lt): Combined from integer
789 and float files.
790 * range-op.cc (op_lt): New object.
791 (unified_table::unified_table): Add LT_EXPR.
792 (class operator_lt): Move to range-op-mixed.h.
793 (lt_op1_op2_relation): Fold into
794 operator_lt::op1_op2_relation.
795 (integral_table::integral_table): Remove LT_EXPR.
796 (pointer_table::pointer_table): Remove LT_EXPR.
797 * range-op.h (lt_op1_op2_relation): Delete.
798
799 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
800
801 * range-op-float.cc (foperator_not_equal): Remove. Move prototypes
802 to range-op-mixed.h
803 (operator_equal::fold_range): Rename from foperator_not_equal.
804 (operator_equal::op1_range): Ditto.
805 (float_table::float_table): Remove NE_EXPR.
806 * range-op-mixed.h (class operator_not_equal): Combined from integer
807 and float files.
808 * range-op.cc (op_equal): New object.
809 (unified_table::unified_table): Add NE_EXPR.
810 (class operator_not_equal): Move to range-op-mixed.h.
811 (not_equal_op1_op2_relation): Fold into
812 operator_not_equal::op1_op2_relation.
813 (integral_table::integral_table): Remove NE_EXPR.
814 (pointer_table::pointer_table): Remove NE_EXPR.
815 * range-op.h (not_equal_op1_op2_relation): Delete.
816
817 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
818
819 * range-op-float.cc (foperator_equal): Remove. Move prototypes
820 to range-op-mixed.h
821 (operator_equal::fold_range): Rename from foperator_equal.
822 (operator_equal::op1_range): Ditto.
823 (float_table::float_table): Remove EQ_EXPR.
824 * range-op-mixed.h (class operator_equal): Combined from integer
825 and float files.
826 * range-op.cc (op_equal): New object.
827 (unified_table::unified_table): Add EQ_EXPR.
828 (class operator_equal): Move to range-op-mixed.h.
829 (equal_op1_op2_relation): Fold into
830 operator_equal::op1_op2_relation.
831 (integral_table::integral_table): Remove EQ_EXPR.
832 (pointer_table::pointer_table): Remove EQ_EXPR.
833 * range-op.h (equal_op1_op2_relation): Delete.
834
835 2023-06-10 Andrew MacLeod <amacleod@redhat.com>
836
837 * range-op-float.cc (class float_table): Move to header.
838 (float_table::float_table): Move float only operators to...
839 (range_op_table::initialize_float_ops): Here.
840 * range-op-mixed.h: New.
841 * range-op.cc (integral_tree_table, pointer_tree_table): Moved
842 to top of file.
843 (float_tree_table): Moved from range-op-float.cc.
844 (unified_tree_table): New.
845 (unified_table::unified_table): New. Call initialize routines.
846 (get_op_handler): Check unified table first.
847 (range_op_handler::range_op_handler): Handle no type constructor.
848 (integral_table::integral_table): Move integral only operators to...
849 (range_op_table::initialize_integral_ops): Here.
850 (pointer_table::pointer_table): Move pointer only operators to...
851 (range_op_table::initialize_pointer_ops): Here.
852 * range-op.h (enum bool_range_state): Move to range-op-mixed.h.
853 (get_bool_state): Ditto.
854 (empty_range_varying): Ditto.
855 (relop_early_resolve): Ditto.
856 (class range_op_table): Add new init methods for range types.
857 (class integral_table): Move declaration to here.
858 (class pointer_table): Move declaration to here.
859 (class float_table): Move declaration to here.
860
861 2023-06-09 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
862 Richard Sandiford <richard.sandiford@arm.com>
863 Richard Biener <rguenther@suse.de>
864
865 * doc/md.texi: Add SELECT_VL support.
866 * internal-fn.def (SELECT_VL): Ditto.
867 * optabs.def (OPTAB_D): Ditto.
868 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Ditto.
869 * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Ditto.
870 * tree-vect-stmts.cc (get_select_vl_data_ref_ptr): Ditto.
871 (vectorizable_store): Ditto.
872 (vectorizable_load): Ditto.
873 * tree-vectorizer.h (LOOP_VINFO_USING_SELECT_VL_P): Ditto.
874
875 2023-06-09 Andrew MacLeod <amacleod@redhat.com>
876
877 PR ipa/109886
878 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Check param
879 type as well.
880
881 2023-06-09 Andrew MacLeod <amacleod@redhat.com>
882
883 * range-op.cc (range_cast): Move to...
884 * range-op.h (range_cast): Here and add generic a version.
885
886 2023-06-09 Marek Polacek <polacek@redhat.com>
887
888 PR c/39589
889 PR c++/96868
890 * doc/invoke.texi: Clarify that -Wmissing-field-initializers doesn't
891 warn about designated initializers in C only.
892
893 2023-06-09 Andrew Pinski <apinski@marvell.com>
894
895 PR tree-optimization/97711
896 PR tree-optimization/110155
897 * match.pd ((zero_one == 0) ? y : z <op> y): Add plus to the op.
898 ((zero_one != 0) ? z <op> y : y): Likewise.
899
900 2023-06-09 Andrew Pinski <apinski@marvell.com>
901
902 * match.pd ((zero_one ==/!= 0) ? y : z <op> y): Use
903 multiply rather than negation/bit_and.
904
905 2023-06-09 Andrew Pinski <apinski@marvell.com>
906
907 * match.pd (`X & -Y -> X * Y`): Allow for truncation
908 and the same type for unsigned types.
909
910 2023-06-09 Andrew Pinski <apinski@marvell.com>
911
912 PR tree-optimization/110165
913 PR tree-optimization/110166
914 * match.pd (zero_one_valued_p): Don't accept
915 signed 1-bit integers.
916
917 2023-06-09 Richard Biener <rguenther@suse.de>
918
919 * match.pd (two conversions in a row): Use element_precision
920 to DTRT for VECTOR_TYPE.
921
922 2023-06-09 Pan Li <pan2.li@intel.com>
923
924 * config/riscv/riscv.md (enabled): Move to another place, and
925 add fp_vector_disabled to the cond.
926 (fp_vector_disabled): New attr defined for disabling fp.
927 * config/riscv/vector-iterators.md: Fix V_WHOLE and V_FRACT.
928
929 2023-06-09 Pan Li <pan2.li@intel.com>
930
931 * config/riscv/riscv-protos.h (enum frm_field_enum): Adjust
932 literal to int.
933
934 2023-06-09 liuhongt <hongtao.liu@intel.com>
935
936 PR target/110108
937 * config/i386/i386.cc (ix86_gimple_fold_builtin): Explicitly
938 view_convert_expr mask to signed type when folding pblendvb
939 builtins.
940
941 2023-06-09 liuhongt <hongtao.liu@intel.com>
942
943 PR target/110108
944 * config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
945 _mm{,256,512}_abs_{epi8,epi16,epi32,epi64} into gimple
946 ABSU_EXPR + VCE, don't fold _mm_abs_{pi8,pi16,pi32} w/o
947 TARGET_64BIT.
948 * config/i386/i386-builtin.def: Replace CODE_FOR_nothing with
949 real codename for __builtin_ia32_pabs{b,w,d}.
950
951 2023-06-08 Andrew MacLeod <amacleod@redhat.com>
952
953 * gimple-range-op.cc
954 (gimple_range_op_handler::gimple_range_op_handler): Adjust.
955 (gimple_range_op_handler::maybe_builtin_call): Adjust.
956 * gimple-range-op.h (operand1, operand2): Use m_operator.
957 * range-op.cc (integral_table, pointer_table): Relocate.
958 (get_op_handler): Rename from get_handler and handle all types.
959 (range_op_handler::range_op_handler): Relocate.
960 (range_op_handler::set_op_handler): Relocate and adjust.
961 (range_op_handler::range_op_handler): Relocate.
962 (dispatch_trio): New.
963 (RO_III, RO_IFI, RO_IFF, RO_FFF, RO_FIF, RO_FII): New consts.
964 (range_op_handler::dispatch_kind): New.
965 (range_op_handler::fold_range): Relocate and Use new dispatch value.
966 (range_op_handler::op1_range): Ditto.
967 (range_op_handler::op2_range): Ditto.
968 (range_op_handler::lhs_op1_relation): Ditto.
969 (range_op_handler::lhs_op2_relation): Ditto.
970 (range_op_handler::op1_op2_relation): Ditto.
971 (range_op_handler::set_op_handler): Use m_operator member.
972 * range-op.h (range_op_handler::operator bool): Use m_operator.
973 (range_op_handler::dispatch_kind): New.
974 (range_op_handler::m_valid): Delete.
975 (range_op_handler::m_int): Delete
976 (range_op_handler::m_float): Delete
977 (range_op_handler::m_operator): New.
978 (range_op_table::operator[]): Relocate from .cc file.
979 (range_op_table::set): Ditto.
980 * value-range.h (class vrange): Make range_op_handler a friend.
981
982 2023-06-08 Andrew MacLeod <amacleod@redhat.com>
983
984 * gimple-range-op.cc (cfn_constant_float_p): Change base class.
985 (cfn_pass_through_arg1): Adjust using statemenmt.
986 (cfn_signbit): Change base class, adjust using statement.
987 (cfn_copysign): Ditto.
988 (cfn_sqrt): Ditto.
989 (cfn_sincos): Ditto.
990 * range-op-float.cc (fold_range): Change class to range_operator.
991 (rv_fold): Ditto.
992 (op1_range): Ditto
993 (op2_range): Ditto
994 (lhs_op1_relation): Ditto.
995 (lhs_op2_relation): Ditto.
996 (op1_op2_relation): Ditto.
997 (foperator_*): Ditto.
998 (class float_table): New. Inherit from range_op_table.
999 (floating_tree_table) Change to range_op_table pointer.
1000 (class floating_op_table): Delete.
1001 * range-op.cc (operator_equal): Adjust using statement.
1002 (operator_not_equal): Ditto.
1003 (operator_lt, operator_le, operator_gt, operator_ge): Ditto.
1004 (operator_minus, operator_cast): Ditto.
1005 (operator_bitwise_and, pointer_plus_operator): Ditto.
1006 (get_float_handle): Change return type.
1007 * range-op.h (range_operator_float): Delete. Relocate all methods
1008 into class range_operator.
1009 (range_op_handler::m_float): Change type to range_operator.
1010 (floating_op_table): Delete.
1011 (floating_tree_table): Change type.
1012
1013 2023-06-08 Andrew MacLeod <amacleod@redhat.com>
1014
1015 * range-op.cc (range_operator::fold_range): Call virtual routine.
1016 (range_operator::update_bitmask): New.
1017 (operator_equal::update_bitmask): New.
1018 (operator_not_equal::update_bitmask): New.
1019 (operator_lt::update_bitmask): New.
1020 (operator_le::update_bitmask): New.
1021 (operator_gt::update_bitmask): New.
1022 (operator_ge::update_bitmask): New.
1023 (operator_ge::update_bitmask): New.
1024 (operator_plus::update_bitmask): New.
1025 (operator_minus::update_bitmask): New.
1026 (operator_pointer_diff::update_bitmask): New.
1027 (operator_min::update_bitmask): New.
1028 (operator_max::update_bitmask): New.
1029 (operator_mult::update_bitmask): New.
1030 (operator_div:operator_div):New.
1031 (operator_div::update_bitmask): New.
1032 (operator_div::m_code): New member.
1033 (operator_exact_divide::operator_exact_divide): New constructor.
1034 (operator_lshift::update_bitmask): New.
1035 (operator_rshift::update_bitmask): New.
1036 (operator_bitwise_and::update_bitmask): New.
1037 (operator_bitwise_or::update_bitmask): New.
1038 (operator_bitwise_xor::update_bitmask): New.
1039 (operator_trunc_mod::update_bitmask): New.
1040 (op_ident, op_unknown, op_ptr_min_max): New.
1041 (op_nop, op_convert): Delete.
1042 (op_ssa, op_paren, op_obj_type): Delete.
1043 (op_realpart, op_imagpart): Delete.
1044 (op_ptr_min, op_ptr_max): Delete.
1045 (pointer_plus_operator:update_bitmask): New.
1046 (range_op_table::set): Do not use m_code.
1047 (integral_table::integral_table): Adjust to single instances.
1048 * range-op.h (range_operator::range_operator): Delete.
1049 (range_operator::m_code): Delete.
1050 (range_operator::update_bitmask): New.
1051
1052 2023-06-08 Andrew MacLeod <amacleod@redhat.com>
1053
1054 * range-op-float.cc (range_operator_float::fold_range): Return
1055 NAN of the result type.
1056
1057 2023-06-08 Jakub Jelinek <jakub@redhat.com>
1058
1059 * optabs.cc (expand_ffs): Add forward declaration.
1060 (expand_doubleword_clz): Rename to ...
1061 (expand_doubleword_clz_ctz_ffs): ... this. Add UNOPTAB argument,
1062 handle also doubleword CTZ and FFS in addition to CLZ.
1063 (expand_unop): Adjust caller. Also call it for doubleword
1064 ctz_optab and ffs_optab.
1065
1066 2023-06-08 Jakub Jelinek <jakub@redhat.com>
1067
1068 PR target/110152
1069 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): For
1070 n_words == 2 recurse with mmx_ok as first argument rather than false.
1071
1072 2023-06-07 Roger Sayle <roger@nextmovesoftware.com>
1073
1074 * wide-int.cc (wi::bitreverse_large): Use HOST_WIDE_INT_1U to
1075 avoid sign extension/undefined behaviour when setting each bit.
1076
1077 2023-06-07 Roger Sayle <roger@nextmovesoftware.com>
1078 Uros Bizjak <ubizjak@gmail.com>
1079
1080 * config/i386/i386-expand.cc (ix86_expand_builtin) <handlecarry>:
1081 Use new x86_stc instruction when the carry flag must be set.
1082 * config/i386/i386.cc (ix86_cc_mode): Use CCCmode for *x86_cmc.
1083 (ix86_rtx_costs): Provide accurate rtx_costs for *x86_cmc.
1084 * config/i386/i386.h (TARGET_SLOW_STC): New define.
1085 * config/i386/i386.md (UNSPEC_STC): New UNSPEC for stc.
1086 (x86_stc): New define_insn.
1087 (define_peephole2): Convert x86_stc into alternate implementation
1088 on pentium4 without -Os when a QImode register is available.
1089 (*x86_cmc): New define_insn.
1090 (define_peephole2): Convert *x86_cmc into alternate implementation
1091 on pentium4 without -Os when a QImode register is available.
1092 (*setccc): New define_insn_and_split for a no-op CCCmode move.
1093 (*setcc_qi_negqi_ccc_1_<mode>): New define_insn_and_split to
1094 recognize (and eliminate) the carry flag being copied to itself.
1095 (*setcc_qi_negqi_ccc_2_<mode>): Likewise.
1096 * config/i386/x86-tune.def (X86_TUNE_SLOW_STC): New tuning flag.
1097
1098 2023-06-07 Andrew Pinski <apinski@marvell.com>
1099
1100 * match.pd: Fix comment for the
1101 `(zero_one ==/!= 0) ? y : z <op> y` patterns.
1102
1103 2023-06-07 Jeff Law <jlaw@ventanamicro.com>
1104 Jeff Law <jlaw@ventanamicro.com>
1105
1106 * config/riscv/bitmanip.md (rotrdi3, rotrsi3, rotlsi3): New expanders.
1107 (rotrsi3_sext): Expose generator.
1108 (rotlsi3 pattern): Hide generator.
1109 * config/riscv/riscv-protos.h (riscv_emit_binary): New function
1110 declaration.
1111 * config/riscv/riscv.cc (riscv_emit_binary): Removed static
1112 * config/riscv/riscv.md (addsi3, subsi3, negsi2): Hide generator.
1113 (mulsi3, <optab>si3): Likewise.
1114 (addsi3, subsi3, negsi2, mulsi3, <optab>si3): New expanders.
1115 (addv<mode>4, subv<mode>4, mulv<mode>4): Use riscv_emit_binary.
1116 (<u>mulsidi3): Likewise.
1117 (addsi3_extended, subsi3_extended, negsi2_extended): Expose generator.
1118 (mulsi3_extended, <optab>si3_extended): Likewise.
1119 (splitter for shadd feeding divison): Update RTL pattern to account
1120 for changes in how 32 bit ops are expanded for TARGET_64BIT.
1121 * loop-iv.cc (get_biv_step_1): Process src of extension when it PLUS.
1122
1123 2023-06-07 Dimitar Dimitrov <dimitar@dinux.eu>
1124
1125 PR target/109725
1126 * config/riscv/riscv.cc (riscv_print_operand): Calculate
1127 memmodel only when it is valid.
1128
1129 2023-06-07 Dimitar Dimitrov <dimitar@dinux.eu>
1130
1131 * config/riscv/riscv.cc (riscv_const_insns): Recursively call
1132 for constant element of a vector.
1133
1134 2023-06-07 Jakub Jelinek <jakub@redhat.com>
1135
1136 * match.pd (zero_one_valued_p): Don't handle integer_zerop specially,
1137 instead compare tree_nonzero_bits <= 1U rather than just == 1.
1138
1139 2023-06-07 Alex Coplan <alex.coplan@arm.com>
1140
1141 PR target/110132
1142 * config/aarch64/aarch64-builtins.cc (aarch64_general_simulate_builtin):
1143 New. Use it ...
1144 (aarch64_init_ls64_builtins): ... here. Switch to declaring public ACLE
1145 names for builtins.
1146 (aarch64_general_init_builtins): Ensure we invoke the arm_acle.h
1147 setup if in_lto_p, just like we do for SVE.
1148 * config/aarch64/arm_acle.h: (__arm_ld64b): Delete.
1149 (__arm_st64b): Delete.
1150 (__arm_st64bv): Delete.
1151 (__arm_st64bv0): Delete.
1152
1153 2023-06-07 Alex Coplan <alex.coplan@arm.com>
1154
1155 PR target/110100
1156 * config/aarch64/aarch64-builtins.cc (aarch64_expand_builtin_ls64):
1157 Use input operand for the destination address.
1158 * config/aarch64/aarch64.md (st64b): Fix constraint on address
1159 operand.
1160
1161 2023-06-07 Alex Coplan <alex.coplan@arm.com>
1162
1163 PR target/110100
1164 * config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types):
1165 Replace eight consecutive spaces with tabs.
1166 (aarch64_init_ls64_builtins): Likewise.
1167 (aarch64_expand_builtin_ls64): Likewise.
1168 * config/aarch64/aarch64.md (ld64b): Likewise.
1169 (st64b): Likewise.
1170 (st64bv): Likewise
1171 (st64bv0): Likewise.
1172
1173 2023-06-07 Vladimir N. Makarov <vmakarov@redhat.com>
1174
1175 * ira-costs.cc: (find_costs_and_classes): Constrain classes of pic
1176 offset table pseudo to a general reg subset.
1177
1178 2023-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1179
1180 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode><vczle><vczbe>):
1181 Rename to...
1182 (*aarch64_sqmovun<mode>_insn<vczle><vczbe>): ... This. Reimplement
1183 with RTL codes.
1184 (aarch64_sqmovun<mode> [SD_HSDI]): Reimplement with RTL codes.
1185 (aarch64_sqxtun2<mode>_le): Likewise.
1186 (aarch64_sqxtun2<mode>_be): Likewise.
1187 (aarch64_sqxtun2<mode>): Adjust for the above.
1188 (aarch64_sqmovun<mode>): New define_expand.
1189 * config/aarch64/iterators.md (UNSPEC_SQXTUN): Delete.
1190 (half_mask): New mode attribute.
1191 * config/aarch64/predicates.md (aarch64_simd_umax_half_mode):
1192 New predicate.
1193
1194 2023-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1195
1196 * config/aarch64/aarch64-simd.md (aarch64_addp<mode><vczle><vczbe>):
1197 Reimplement as...
1198 (aarch64_addp<mode>_insn): ... This...
1199 (aarch64_addp<mode><vczle><vczbe>_insn): ... And this.
1200 (aarch64_addp<mode>): New define_expand.
1201
1202 2023-06-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1203
1204 * config/riscv/riscv-protos.h (expand_vec_perm_const): New function.
1205 * config/riscv/riscv-v.cc
1206 (rvv_builder::can_duplicate_repeating_sequence_p): Support POLY
1207 handling.
1208 (rvv_builder::single_step_npatterns_p): New function.
1209 (rvv_builder::npatterns_all_equal_p): Ditto.
1210 (const_vec_all_in_range_p): Support POLY handling.
1211 (gen_const_vector_dup): Ditto.
1212 (emit_vlmax_gather_insn): Add vrgatherei16.
1213 (emit_vlmax_masked_gather_mu_insn): Ditto.
1214 (expand_const_vector): Add VLA SLP const vector support.
1215 (expand_vec_perm): Support POLY.
1216 (struct expand_vec_perm_d): New struct.
1217 (shuffle_generic_patterns): New function.
1218 (expand_vec_perm_const_1): Ditto.
1219 (expand_vec_perm_const): Ditto.
1220 * config/riscv/riscv.cc (riscv_vectorize_vec_perm_const): Ditto.
1221 (TARGET_VECTORIZE_VEC_PERM_CONST): New targethook.
1222
1223 2023-06-07 Andrew Pinski <apinski@marvell.com>
1224
1225 PR middle-end/110117
1226 * expr.cc (expand_single_bit_test): Handle
1227 const_int from expand_expr.
1228
1229 2023-06-07 Andrew Pinski <apinski@marvell.com>
1230
1231 * expr.cc (do_store_flag): Rearrange the
1232 TER code so that it overrides the nonzero bits
1233 info if we had `a & POW2`.
1234
1235 2023-06-07 Andrew Pinski <apinski@marvell.com>
1236
1237 PR tree-optimization/110134
1238 * match.pd (-A CMP -B -> B CMP A): Allow EQ/NE for all integer
1239 types.
1240 (-A CMP CST -> B CMP (-CST)): Likewise.
1241
1242 2023-06-07 Andrew Pinski <apinski@marvell.com>
1243
1244 PR tree-optimization/89263
1245 PR tree-optimization/99069
1246 PR tree-optimization/20083
1247 PR tree-optimization/94898
1248 * match.pd: Add patterns to optimize `a ? onezero : onezero` with
1249 one of the operands are constant.
1250
1251 2023-06-07 Andrew Pinski <apinski@marvell.com>
1252
1253 * match.pd (zero_one_valued_p): Match 0 integer constant
1254 too.
1255
1256 2023-06-07 Pan Li <pan2.li@intel.com>
1257
1258 * config/riscv/riscv-vector-builtins-types.def
1259 (vfloat32mf2_t): Take RVV_REQUIRE_ELEN_FP_16 as requirement.
1260 (vfloat32m1_t): Ditto.
1261 (vfloat32m2_t): Ditto.
1262 (vfloat32m4_t): Ditto.
1263 (vfloat32m8_t): Ditto.
1264 (vint16mf4_t): Ditto.
1265 (vint16mf2_t): Ditto.
1266 (vint16m1_t): Ditto.
1267 (vint16m2_t): Ditto.
1268 (vint16m4_t): Ditto.
1269 (vint16m8_t): Ditto.
1270 (vuint16mf4_t): Ditto.
1271 (vuint16mf2_t): Ditto.
1272 (vuint16m1_t): Ditto.
1273 (vuint16m2_t): Ditto.
1274 (vuint16m4_t): Ditto.
1275 (vuint16m8_t): Ditto.
1276 (vint32mf2_t): Ditto.
1277 (vint32m1_t): Ditto.
1278 (vint32m2_t): Ditto.
1279 (vint32m4_t): Ditto.
1280 (vint32m8_t): Ditto.
1281 (vuint32mf2_t): Ditto.
1282 (vuint32m1_t): Ditto.
1283 (vuint32m2_t): Ditto.
1284 (vuint32m4_t): Ditto.
1285 (vuint32m8_t): Ditto.
1286
1287 2023-06-07 Jason Merrill <jason@redhat.com>
1288
1289 PR c++/58487
1290 * doc/invoke.texi: Document it.
1291
1292 2023-06-06 Roger Sayle <roger@nextmovesoftware.com>
1293
1294 * doc/rtl.texi (bitreverse, copysign): Document new RTX codes.
1295 * rtl.def (BITREVERSE, COPYSIGN): Define new RTX codes.
1296 * simplify-rtx.cc (simplify_unary_operation_1): Optimize
1297 NOT (BITREVERSE x) as BITREVERSE (NOT x).
1298 Optimize POPCOUNT (BITREVERSE x) as POPCOUNT x.
1299 Optimize PARITY (BITREVERSE x) as PARITY x.
1300 Optimize BITREVERSE (BITREVERSE x) as x.
1301 (simplify_const_unary_operation) <case BITREVERSE>: Evaluate
1302 BITREVERSE of a constant integer at compile-time.
1303 (simplify_binary_operation_1) <case COPYSIGN>: Optimize
1304 COPY_SIGN (x, x) as x. Optimize COPYSIGN (x, C) as ABS x
1305 or NEG (ABS x) for constant C. Optimize COPYSIGN (ABS x, y)
1306 and COPYSIGN (NEG x, y) as COPYSIGN (x, y).
1307 Optimize COPYSIGN (x, ABS y) as ABS x.
1308 Optimize COPYSIGN (COPYSIGN (x, y), z) as COPYSIGN (x, z).
1309 Optimize COPYSIGN (x, COPYSIGN (y, z)) as COPYSIGN (x, z).
1310 (simplify_const_binary_operation): Evaluate COPYSIGN of constant
1311 arguments at compile-time.
1312
1313 2023-06-06 Uros Bizjak <ubizjak@gmail.com>
1314
1315 * rtl.h (function_invariant_p): Change return type from int to bool.
1316 * reload1.cc (function_invariant_p): Change return type from
1317 int to bool and adjust function body accordingly.
1318
1319 2023-06-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1320
1321 * config/riscv/autovec-opt.md (*<optab>_fma<mode>): New pattern.
1322 (*single_<optab>mult_plus<mode>): Ditto.
1323 (*double_<optab>mult_plus<mode>): Ditto.
1324 (*sign_zero_extend_fma): Ditto.
1325 (*zero_sign_extend_fma): Ditto.
1326 * config/riscv/riscv-protos.h (enum insn_type): New enum.
1327
1328 2023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com>
1329 Tobias Burnus <tobias@codesourcery.com>
1330
1331 * gimplify.cc (omp_notice_variable): Apply GOVD_MAP_ALLOC_ONLY flag
1332 and defaultmap flags if the defaultmap has GOVD_MAP_FORCE_PRESENT flag
1333 set.
1334 (omp_get_attachment): Handle map clauses with 'present' modifier.
1335 (omp_group_base): Likewise.
1336 (gimplify_scan_omp_clauses): Reorder present maps to come first.
1337 Set GOVD flags for present defaultmaps.
1338 (gimplify_adjust_omp_clauses_1): Set map kind for present defaultmaps.
1339 * omp-low.cc (scan_sharing_clauses): Handle 'always, present' map
1340 clauses.
1341 (lower_omp_target): Handle map clauses with 'present' modifier.
1342 Handle 'to' and 'from' clauses with 'present'.
1343 * tree-core.h (enum omp_clause_defaultmap_kind): Add
1344 OMP_CLAUSE_DEFAULTMAP_PRESENT defaultmap kind.
1345 * tree-pretty-print.cc (dump_omp_clause): Handle 'map', 'to' and
1346 'from' clauses with 'present' modifier. Handle present defaultmap.
1347 * tree.h (OMP_CLAUSE_MOTION_PRESENT): New #define.
1348
1349 2023-06-06 Segher Boessenkool <segher@kernel.crashing.org>
1350
1351 * config/rs6000/genfusion.pl: Delete some dead code.
1352
1353 2023-06-06 Segher Boessenkool <segher@kernel.crashing.org>
1354
1355 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): New, rewritten and
1356 split out from...
1357 (gen_ld_cmpi_p10): ... this.
1358
1359 2023-06-06 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
1360
1361 PR target/106907
1362 * config/rs6000/rs6000.cc (vec_const_128bit_to_bytes): Remove
1363 duplicate expression.
1364
1365 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1366
1367 * config/aarch64/aarch64-builtins.cc (aarch64_general_gimple_fold_builtin):
1368 Handle unsigned reduc_plus_scal_ builtins.
1369 * config/aarch64/aarch64-simd-builtins.def (addp): Delete DImode instances.
1370 * config/aarch64/aarch64-simd.md (aarch64_addpdi): Delete.
1371 * config/aarch64/arm_neon.h (vpaddd_s64): Reimplement with
1372 __builtin_aarch64_reduc_plus_scal_v2di.
1373 (vpaddd_u64): Reimplement with __builtin_aarch64_reduc_plus_scal_v2di_uu.
1374
1375 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1376
1377 * config/aarch64/aarch64-simd.md (aarch64_<sur>shr_n<mode>): Delete.
1378 (aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): New define_insn.
1379 (aarch64_<sra_op>rshr_n<mode>): New define_expand.
1380
1381 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1382
1383 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Delete.
1384 (aarch64_shrn<mode>_insn_be): Delete.
1385 (*aarch64_<srn_op>shrn<mode>_vect): Rename to...
1386 (*aarch64_<srn_op>shrn<mode><vczle><vczbe>): ... This.
1387 (aarch64_shrn<mode>): Remove reference to the above deleted patterns.
1388 (aarch64_rshrn<mode>_insn_le): Delete.
1389 (aarch64_rshrn<mode>_insn_be): Delete.
1390 (aarch64_rshrn<mode><vczle><vczbe>_insn): New define_insn.
1391 (aarch64_rshrn<mode>): Remove references to the above deleted patterns.
1392
1393 2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1394
1395 * config/aarch64/aarch64-protos.h (aarch64_parallel_select_half_p):
1396 Define prototype.
1397 (aarch64_pars_overlap_p): Likewise.
1398 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
1399 Express in terms of UNSPEC_ADDV.
1400 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): Likewise.
1401 (*aarch64_<su>addlv<mode>_reduction): Define.
1402 (*aarch64_uaddlv<mode>_reduction_2): Likewise.
1403 * config/aarch64/aarch64.cc (aarch64_parallel_select_half_p): Define.
1404 (aarch64_pars_overlap_p): Likewise.
1405 * config/aarch64/iterators.md (UNSPEC_SADDLV, UNSPEC_UADDLV): Delete.
1406 (VQUADW): New mode attribute.
1407 (VWIDE2X_S): Likewise.
1408 (USADDLV): Delete.
1409 (su): Delete handling of UNSPEC_SADDLV, UNSPEC_UADDLV.
1410 * config/aarch64/predicates.md (vect_par_cnst_select_half): Define.
1411
1412 2023-06-06 Richard Biener <rguenther@suse.de>
1413
1414 PR middle-end/110055
1415 * gimplify.cc (gimplify_target_expr): Do not emit
1416 CLOBBERs for variables which have static storage duration
1417 after gimplifying their initializers.
1418
1419 2023-06-06 Richard Biener <rguenther@suse.de>
1420
1421 PR tree-optimization/109143
1422 * tree-ssa-structalias.cc (solution_set_expand): Avoid
1423 one bitmap iteration and optimize bit range setting.
1424
1425 2023-06-06 Hans-Peter Nilsson <hp@axis.com>
1426
1427 PR bootstrap/110120
1428 * postreload.cc (reload_cse_move2add, move2add_use_add2_insn): Use
1429 XVECEXP, not XEXP, to access first item of a PARALLEL.
1430
1431 2023-06-06 Pan Li <pan2.li@intel.com>
1432
1433 * config/riscv/riscv-vector-builtins-types.def
1434 (vfloat16mf4_t): Add vfloat16mf4_t to WF operations.
1435 (vfloat16mf2_t): Likewise.
1436 (vfloat16m1_t): Likewise.
1437 (vfloat16m2_t): Likewise.
1438 (vfloat16m4_t): Likewise.
1439 (vfloat16m8_t): Likewise.
1440 * config/riscv/vector-iterators.md: Add FP=16 to VWF, VWF_ZVE64,
1441 VWLMUL1, VWLMUL1_ZVE64, vwlmul1 and vwlmul1_zve64.
1442
1443 2023-06-06 Fei Gao <gaofei@eswincomputing.com>
1444
1445 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Use Pmode
1446 for cfi reg/mem machmode
1447 (riscv_adjust_libcall_cfi_epilogue): Use Pmode for cfi reg machmode
1448
1449 2023-06-06 Li Xu <xuli1@eswincomputing.com>
1450
1451 * config/riscv/vector-iterators.md:
1452 Fix 'REQUIREMENT' for machine_mode 'MODE'.
1453 * config/riscv/vector.md (@pred_indexed_<order>store<VNX16_QHS:mode>
1454 <VNX16_QHSI:mode>): change VNX16_QHSI to VNX16_QHSDI.
1455 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSDI:mode>): Ditto.
1456
1457 2023-06-06 Pan Li <pan2.li@intel.com>
1458
1459 * config/riscv/vector-iterators.md: Fix typo in mode attr.
1460
1461 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
1462 Joel Hutton <joel.hutton@arm.com>
1463
1464 * doc/generic.texi: Remove old tree codes.
1465 * expr.cc (expand_expr_real_2): Remove old tree code cases.
1466 * gimple-pretty-print.cc (dump_binary_rhs): Likewise.
1467 * optabs-tree.cc (optab_for_tree_code): Likewise.
1468 (supportable_half_widening_operation): Likewise.
1469 * tree-cfg.cc (verify_gimple_assign_binary): Likewise.
1470 * tree-inline.cc (estimate_operator_cost): Likewise.
1471 (op_symbol_code): Likewise.
1472 * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Likewise.
1473 (vect_analyze_data_ref_accesses): Likewise.
1474 * tree-vect-generic.cc (expand_vector_operations_1): Likewise.
1475 * cfgexpand.cc (expand_debug_expr): Likewise.
1476 * tree-vect-stmts.cc (vectorizable_conversion): Likewise.
1477 (supportable_widening_operation): Likewise.
1478 * gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
1479 Likewise.
1480 * optabs.def (vec_widen_ssubl_hi_optab, vec_widen_ssubl_lo_optab,
1481 vec_widen_saddl_hi_optab, vec_widen_saddl_lo_optab,
1482 vec_widen_usubl_hi_optab, vec_widen_usubl_lo_optab,
1483 vec_widen_uaddl_hi_optab, vec_widen_uaddl_lo_optab): Remove optabs.
1484 * tree-pretty-print.cc (dump_generic_node): Remove tree code definition.
1485 * tree.def (WIDEN_PLUS_EXPR, WIDEN_MINUS_EXPR, VEC_WIDEN_PLUS_HI_EXPR,
1486 VEC_WIDEN_PLUS_LO_EXPR, VEC_WIDEN_MINUS_HI_EXPR,
1487 VEC_WIDEN_MINUS_LO_EXPR): Likewise.
1488
1489 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
1490 Joel Hutton <joel.hutton@arm.com>
1491 Tamar Christina <tamar.christina@arm.com>
1492
1493 * config/aarch64/aarch64-simd.md (vec_widen_<su>addl_lo_<mode>): Rename
1494 this ...
1495 (vec_widen_<su>add_lo_<mode>): ... to this.
1496 (vec_widen_<su>addl_hi_<mode>): Rename this ...
1497 (vec_widen_<su>add_hi_<mode>): ... to this.
1498 (vec_widen_<su>subl_lo_<mode>): Rename this ...
1499 (vec_widen_<su>sub_lo_<mode>): ... to this.
1500 (vec_widen_<su>subl_hi_<mode>): Rename this ...
1501 (vec_widen_<su>sub_hi_<mode>): ...to this.
1502 * doc/generic.texi: Document new IFN codes.
1503 * internal-fn.cc (lookup_hilo_internal_fn): Add lookup function.
1504 (commutative_binary_fn_p): Add widen_plus fn's.
1505 (widening_fn_p): New function.
1506 (narrowing_fn_p): New function.
1507 (direct_internal_fn_optab): Change visibility.
1508 * internal-fn.def (DEF_INTERNAL_WIDENING_OPTAB_FN): Macro to define an
1509 internal_fn that expands into multiple internal_fns for widening.
1510 (IFN_VEC_WIDEN_PLUS, IFN_VEC_WIDEN_PLUS_HI, IFN_VEC_WIDEN_PLUS_LO,
1511 IFN_VEC_WIDEN_PLUS_EVEN, IFN_VEC_WIDEN_PLUS_ODD,
1512 IFN_VEC_WIDEN_MINUS, IFN_VEC_WIDEN_MINUS_HI,
1513 IFN_VEC_WIDEN_MINUS_LO, IFN_VEC_WIDEN_MINUS_ODD,
1514 IFN_VEC_WIDEN_MINUS_EVEN): Define widening plus,minus functions.
1515 * internal-fn.h (direct_internal_fn_optab): Declare new prototype.
1516 (lookup_hilo_internal_fn): Likewise.
1517 (widening_fn_p): Likewise.
1518 (Narrowing_fn_p): Likewise.
1519 * optabs.cc (commutative_optab_p): Add widening plus optabs.
1520 * optabs.def (OPTAB_D): Define widen add, sub optabs.
1521 * tree-vect-patterns.cc (vect_recog_widen_op_pattern): Support
1522 patterns with a hi/lo or even/odd split.
1523 (vect_recog_sad_pattern): Refactor to use new IFN codes.
1524 (vect_recog_widen_plus_pattern): Likewise.
1525 (vect_recog_widen_minus_pattern): Likewise.
1526 (vect_recog_average_pattern): Likewise.
1527 * tree-vect-stmts.cc (vectorizable_conversion): Add support for
1528 _HILO IFNs.
1529 (supportable_widening_operation): Likewise.
1530 * tree.def (WIDEN_SUM_EXPR): Update example to use new IFNs.
1531
1532 2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
1533 Joel Hutton <joel.hutton@arm.com>
1534
1535 * tree-vect-patterns.cc: Add include for gimple-iterator.
1536 (vect_recog_widen_op_pattern): Refactor to use code_helper.
1537 (vect_gimple_build): New function.
1538 * tree-vect-stmts.cc (simple_integer_narrowing): Refactor to use
1539 code_helper.
1540 (vectorizable_call): Likewise.
1541 (vect_gen_widened_results_half): Likewise.
1542 (vect_create_vectorized_demotion_stmts): Likewise.
1543 (vect_create_vectorized_promotion_stmts): Likewise.
1544 (vect_create_half_widening_stmts): Likewise.
1545 (vectorizable_conversion): Likewise.
1546 (supportable_widening_operation): Likewise.
1547 (supportable_narrowing_operation): Likewise.
1548 * tree-vectorizer.h (supportable_widening_operation): Change
1549 prototype to use code_helper.
1550 (supportable_narrowing_operation): Likewise.
1551 (vect_gimple_build): New function prototype.
1552 * tree.h (code_helper::safe_as_tree_code): New function.
1553 (code_helper::safe_as_fn_code): New function.
1554
1555 2023-06-05 Roger Sayle <roger@nextmovesoftware.com>
1556
1557 * wide-int.cc (wi::bitreverse_large): New function implementing
1558 bit reversal of an integer.
1559 * wide-int.h (wi::bitreverse): New (template) function prototype.
1560 (bitreverse_large): Prototype helper function/implementation.
1561 (wi::bitreverse): New template wrapper around bitreverse_large.
1562
1563 2023-06-05 Uros Bizjak <ubizjak@gmail.com>
1564
1565 * rtl.h (print_rtl_single): Change return type from int to void.
1566 (print_rtl_single_with_indent): Ditto.
1567 * print-rtl.h (class rtx_writer): Ditto. Change m_sawclose to bool.
1568 * print-rtl.cc (rtx_writer::rtx_writer): Update for m_sawclose change.
1569 (rtx_writer::print_rtx_operand_code_0): Ditto.
1570 (rtx_writer::print_rtx_operand_codes_E_and_V): Ditto.
1571 (rtx_writer::print_rtx_operand_code_i): Ditto.
1572 (rtx_writer::print_rtx_operand_code_u): Ditto.
1573 (rtx_writer::print_rtx_operand): Ditto.
1574 (rtx_writer::print_rtx): Ditto.
1575 (rtx_writer::finish_directive): Ditto.
1576 (print_rtl_single): Change return type from int to void
1577 and adjust function body accordingly.
1578 (rtx_writer::print_rtl_single_with_indent): Ditto.
1579
1580 2023-06-05 Uros Bizjak <ubizjak@gmail.com>
1581
1582 * rtl.h (reg_classes_intersect_p): Change return type from int to bool.
1583 (reg_class_subset_p): Ditto.
1584 * reginfo.cc (reg_classes_intersect_p): Ditto.
1585 (reg_class_subset_p): Ditto.
1586
1587 2023-06-05 Pan Li <pan2.li@intel.com>
1588
1589 * config/riscv/riscv-vector-builtins-types.def
1590 (vfloat32mf2_t): New type for DEF_RVV_WEXTF_OPS.
1591 (vfloat32m1_t): Ditto.
1592 (vfloat32m2_t): Ditto.
1593 (vfloat32m4_t): Ditto.
1594 (vfloat32m8_t): Ditto.
1595 (vint16mf4_t): New type for DEF_RVV_CONVERT_I_OPS.
1596 (vint16mf2_t): Ditto.
1597 (vint16m1_t): Ditto.
1598 (vint16m2_t): Ditto.
1599 (vint16m4_t): Ditto.
1600 (vint16m8_t): Ditto.
1601 (vuint16mf4_t): New type for DEF_RVV_CONVERT_U_OPS.
1602 (vuint16mf2_t): Ditto.
1603 (vuint16m1_t): Ditto.
1604 (vuint16m2_t): Ditto.
1605 (vuint16m4_t): Ditto.
1606 (vuint16m8_t): Ditto.
1607 (vint32mf2_t): New type for DEF_RVV_WCONVERT_I_OPS.
1608 (vint32m1_t): Ditto.
1609 (vint32m2_t): Ditto.
1610 (vint32m4_t): Ditto.
1611 (vint32m8_t): Ditto.
1612 (vuint32mf2_t): New type for DEF_RVV_WCONVERT_U_OPS.
1613 (vuint32m1_t): Ditto.
1614 (vuint32m2_t): Ditto.
1615 (vuint32m4_t): Ditto.
1616 (vuint32m8_t): Ditto.
1617 * config/riscv/vector-iterators.md: Add FP=16 support for V,
1618 VWCONVERTI, VCONVERT, VNCONVERT, VMUL1 and vlmul1.
1619
1620 2023-06-05 Andrew Pinski <apinski@marvell.com>
1621
1622 PR bootstrap/110085
1623 * Makefile.in (clean): Remove the removing of
1624 MULTILIB_DIR/MULTILIB_OPTIONS directories.
1625
1626 2023-06-05 YunQiang Su <yunqiang.su@cipunited.com>
1627
1628 * config/mips/mips-protos.h (mips_emit_speculation_barrier): New
1629 prototype.
1630 * config/mips/mips.cc (speculation_barrier_libfunc): New static
1631 variable.
1632 (mips_init_libfuncs): Initialize it.
1633 (mips_emit_speculation_barrier): New function.
1634 * config/mips/mips.md (speculation_barrier): Call
1635 mips_emit_speculation_barrier.
1636
1637 2023-06-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1638
1639 * config/riscv/riscv-v.cc (class rvv_builder): Reorganize functions.
1640 (rvv_builder::can_duplicate_repeating_sequence_p): Ditto.
1641 (rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto.
1642 (rvv_builder::get_merged_repeating_sequence): Ditto.
1643 (rvv_builder::get_merge_scalar_mask): Ditto.
1644 (emit_scalar_move_insn): Ditto.
1645 (emit_vlmax_integer_move_insn): Ditto.
1646 (emit_nonvlmax_integer_move_insn): Ditto.
1647 (emit_vlmax_gather_insn): Ditto.
1648 (emit_vlmax_masked_gather_mu_insn): Ditto.
1649 (get_repeating_sequence_dup_machine_mode): Ditto.
1650
1651 2023-06-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1652
1653 * config/riscv/autovec.md: Split arguments.
1654 * config/riscv/riscv-protos.h (expand_vec_perm): Ditto.
1655 * config/riscv/riscv-v.cc (expand_vec_perm): Ditto.
1656
1657 2023-06-04 Andrew Pinski <apinski@marvell.com>
1658
1659 * expr.cc (do_store_flag): Improve for single bit testing
1660 not against zero but against that single bit.
1661
1662 2023-06-04 Andrew Pinski <apinski@marvell.com>
1663
1664 * expr.cc (do_store_flag): Extend the one bit checking case
1665 to handle the case where we don't have an and but rather still
1666 one bit is known to be non-zero.
1667
1668 2023-06-04 Jeff Law <jlaw@ventanamicro.com>
1669
1670 * config/h8300/constraints.md (Zz): Make this a normal
1671 constraint.
1672 * config/h8300/h8300.cc (TARGET_LRA_P): Remove.
1673 * config/h8300/logical.md (H8/SX bit patterns): Remove.
1674
1675 2023-06-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1676
1677 * config/xtensa/xtensa.md (*btrue_INT_MIN, *eqne_INT_MIN):
1678 New insn_and_split patterns.
1679
1680 2023-06-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1681
1682 PR target/110109
1683 * config/riscv/riscv-vector-builtins-bases.cc: Change expand approach.
1684 * config/riscv/vector.md (@vlmul_extx2<mode>): Remove it.
1685 (@vlmul_extx4<mode>): Ditto.
1686 (@vlmul_extx8<mode>): Ditto.
1687 (@vlmul_extx16<mode>): Ditto.
1688 (@vlmul_extx32<mode>): Ditto.
1689 (@vlmul_extx64<mode>): Ditto.
1690 (*vlmul_extx2<mode>): Ditto.
1691 (*vlmul_extx4<mode>): Ditto.
1692 (*vlmul_extx8<mode>): Ditto.
1693 (*vlmul_extx16<mode>): Ditto.
1694 (*vlmul_extx32<mode>): Ditto.
1695 (*vlmul_extx64<mode>): Ditto.
1696
1697 2023-06-04 Pan Li <pan2.li@intel.com>
1698
1699 * config/riscv/riscv-vector-builtins-types.def
1700 (vfloat32mf2_t): Add vfloat32mf2_t type to vfncvt.f.f.w operations.
1701 (vfloat32m1_t): Likewise.
1702 (vfloat32m2_t): Likewise.
1703 (vfloat32m4_t): Likewise.
1704 (vfloat32m8_t): Likewise.
1705 * config/riscv/riscv-vector-builtins.def: Fix typo in comments.
1706 * config/riscv/vector-iterators.md: Add single to half machine
1707 mode conversion.
1708
1709 2023-06-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1710
1711 * config/riscv/autovec-opt.md (*<optab>not<mode>): Move to autovec-opt.md.
1712 (*n<optab><mode>): Ditto.
1713 * config/riscv/autovec.md (*<optab>not<mode>): Ditto.
1714 (*n<optab><mode>): Ditto.
1715 * config/riscv/vector.md: Ditto.
1716
1717 2023-06-04 Roger Sayle <roger@nextmovesoftware.com>
1718
1719 PR target/110083
1720 * config/i386/i386-features.cc (scalar_chain::convert_compare):
1721 Update or delete REG_EQUAL notes, converting CONST_INT and
1722 CONST_WIDE_INT immediate operands to a suitable CONST_VECTOR.
1723
1724 2023-06-04 Jason Merrill <jason@redhat.com>
1725
1726 PR c++/97720
1727 * tree-eh.cc (lower_resx): Pass the exception pointer to the
1728 failure_decl.
1729 * except.h: Tweak comment.
1730
1731 2023-06-04 Hans-Peter Nilsson <hp@axis.com>
1732
1733 * postreload.cc (move2add_use_add2_insn): Handle
1734 trivial single_sets. Rename variable PAT to SET.
1735 (move2add_use_add3_insn, reload_cse_move2add): Similar.
1736
1737 2023-06-04 Pan Li <pan2.li@intel.com>
1738
1739 * config/riscv/riscv-vector-builtins-types.def
1740 (vfloat16mf4_t): Add the float16 type to DEF_RVV_F_OPS.
1741 (vfloat16mf2_t): Likewise.
1742 (vfloat16m1_t): Likewise.
1743 (vfloat16m2_t): Likewise.
1744 (vfloat16m4_t): Likewise.
1745 (vfloat16m8_t): Likewise.
1746 * config/riscv/riscv.md: Add vfloat16*_t to attr mode.
1747 * config/riscv/vector-iterators.md: Add vfloat16*_t machine mode
1748 to V, V_WHOLE, V_FRACT, VINDEX, VM, VEL and sew.
1749 * config/riscv/vector.md: Add vfloat16*_t machine mode to sew,
1750 vlmul and ratio.
1751
1752 2023-06-03 Fei Gao <gaofei@eswincomputing.com>
1753
1754 * config/riscv/riscv.cc (riscv_expand_epilogue): fix cfi issue with
1755 correct offset.
1756
1757 2023-06-03 Die Li <lidie@eswincomputing.com>
1758
1759 * config/riscv/thead.md (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Delete.
1760
1761 2023-06-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1762
1763 * config/riscv/predicates.md: Change INTVAL into UINTVAL.
1764
1765 2023-06-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1766
1767 * config/riscv/vector.md: Add vector-opt.md.
1768 * config/riscv/autovec-opt.md: New file.
1769
1770 2023-06-03 liuhongt <hongtao.liu@intel.com>
1771
1772 PR tree-optimization/110067
1773 * gimple-ssa-store-merging.cc (find_bswap_or_nop): Don't try
1774 bswap + rotate when TYPE_PRECISION(n->type) > n->range.
1775
1776 2023-06-03 liuhongt <hongtao.liu@intel.com>
1777
1778 PR target/92658
1779 * config/i386/mmx.md (truncv2hiv2qi2): New define_insn.
1780 (truncv2si<mode>2): Ditto.
1781
1782 2023-06-02 Andrew Pinski <apinski@marvell.com>
1783
1784 PR rtl-optimization/102733
1785 * dse.cc (store_info): Add addrspace field.
1786 (record_store): Record the address space
1787 and check to make sure they are the same.
1788
1789 2023-06-02 Andrew Pinski <apinski@marvell.com>
1790
1791 PR rtl-optimization/110042
1792 * ifcvt.cc (bbs_ok_for_cmove_arith): Allow paradoxical subregs.
1793 (bb_valid_for_noce_process_p): Strip the subreg for the SET_DEST.
1794
1795 2023-06-02 Iain Sandoe <iain@sandoe.co.uk>
1796
1797 PR target/110044
1798 * config/rs6000/rs6000.cc (darwin_rs6000_special_round_type_align):
1799 Make sure that we do not have a cap on field alignment before altering
1800 the struct layout based on the type alignment of the first entry.
1801
1802 2023-06-02 David Faust <david.faust@oracle.com>
1803
1804 PR debug/110073
1805 * btfout.cc (btf_absolute_func_id): New function.
1806 (btf_asm_func_type): Call it here. Change index parameter from
1807 size_t to ctf_id_t. Use PRIu64 formatter.
1808
1809 2023-06-02 Alex Coplan <alex.coplan@arm.com>
1810
1811 * btfout.cc (btf_asm_type): Use PRIu64 instead of %lu for uint64_t.
1812 (btf_asm_datasec_type): Likewise.
1813
1814 2023-06-02 Carl Love <cel@us.ibm.com>
1815
1816 * config/rs6000/rs6000-builtins.def (__builtin_altivec_tr_stxvrhx,
1817 __builtin_altivec_tr_stxvrwx): Fix type of third argument.
1818
1819 2023-06-02 Jason Merrill <jason@redhat.com>
1820
1821 PR c++/110070
1822 PR c++/105838
1823 * tree.h (DECL_MERGEABLE): New.
1824 * tree-core.h (struct tree_decl_common): Mention it.
1825 * gimplify.cc (gimplify_init_constructor): Check it.
1826 * cgraph.cc (symtab_node::address_can_be_compared_p): Likewise.
1827 * varasm.cc (categorize_decl_for_section): Likewise.
1828
1829 2023-06-02 Uros Bizjak <ubizjak@gmail.com>
1830
1831 * rtl.h (stack_regs_mentioned): Change return type from int to bool.
1832 * reg-stack.cc (struct_block_info_def): Change "done" to bool.
1833 (stack_regs_mentioned_p): Change return type from int to bool
1834 and adjust function body accordingly.
1835 (stack_regs_mentioned): Ditto.
1836 (check_asm_stack_operands): Ditto. Change "malformed_asm"
1837 variable to bool.
1838 (move_for_stack_reg): Recode handling of control_flow_insn_deleted.
1839 (swap_rtx_condition_1): Change return type from int to bool
1840 and adjust function body accordingly. Change "r" variable to bool.
1841 (swap_rtx_condition): Change return type from int to bool
1842 and adjust function body accordingly.
1843 (subst_stack_regs_pat): Recode handling of control_flow_insn_deleted.
1844 (subst_stack_regs): Ditto.
1845 (convert_regs_entry): Change return type from int to bool and adjust
1846 function body accordingly. Change "inserted" variable to bool.
1847 (convert_regs_1): Recode handling of control_flow_insn_deleted.
1848 (convert_regs_2): Recode handling of cfg_altered.
1849 (convert_regs): Ditto. Change "inserted" variable to bool.
1850
1851 2023-06-02 Jason Merrill <jason@redhat.com>
1852
1853 PR c++/95226
1854 * varasm.cc (output_constant) [REAL_TYPE]: Check that sizes match.
1855 (initializer_constant_valid_p_1): Compare float precision.
1856
1857 2023-06-02 Alexander Monakov <amonakov@ispras.ru>
1858
1859 * doc/extend.texi (Vector Extensions): Clarify bitwise shift
1860 semantics.
1861
1862 2023-06-02 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1863
1864 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Change decrement IV flow.
1865 (vect_set_loop_condition_partial_vectors): Ditto.
1866
1867 2023-06-02 Georg-Johann Lay <avr@gjlay.de>
1868
1869 PR target/110088
1870 * config/avr/avr.md: Add an RTL peephole to optimize operations on
1871 non-LD_REGS after a move from LD_REGS.
1872 (piaop): New code iterator.
1873
1874 2023-06-02 Thomas Schwinge <thomas@codesourcery.com>
1875
1876 PR testsuite/66005
1877 * doc/install.texi: Document (optional) Perl usage for parallel
1878 testing of libgomp.
1879
1880 2023-06-02 Thomas Schwinge <thomas@codesourcery.com>
1881
1882 PR bootstrap/82856
1883 * doc/install.texi (Perl): Back to requiring "Perl version 5.6.1 (or
1884 later)".
1885
1886 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1887 KuanLin Chen <best124612@gmail.com>
1888
1889 * config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
1890 * config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
1891
1892 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1893
1894 * config/riscv/riscv-v.cc (expand_vec_series): Optimize reverse series index vector.
1895
1896 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1897
1898 * config/riscv/predicates.md: Change INTVAL into UINTVAL.
1899
1900 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1901
1902 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_VXRM_ENUM): Add
1903 __RISCV_ prefix.
1904 (DEF_RVV_FRM_ENUM): Ditto.
1905
1906 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1907
1908 * config/riscv/riscv-vector-builtins-bases.cc: Change vwadd.wv/vwsub.wv
1909 intrinsic API expander
1910 * config/riscv/vector.md
1911 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Remove it.
1912 (@pred_single_widen_sub<any_extend:su><mode>): New pattern.
1913 (@pred_single_widen_add<any_extend:su><mode>): New pattern.
1914
1915 2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1916
1917 * config/riscv/autovec.md (vec_perm<mode>): New pattern.
1918 * config/riscv/predicates.md (vector_perm_operand): New predicate.
1919 * config/riscv/riscv-protos.h (enum insn_type): New enum.
1920 (expand_vec_perm): New function.
1921 * config/riscv/riscv-v.cc (const_vec_all_in_range_p): Ditto.
1922 (gen_const_vector_dup): Ditto.
1923 (emit_vlmax_gather_insn): Ditto.
1924 (emit_vlmax_masked_gather_mu_insn): Ditto.
1925 (expand_vec_perm): Ditto.
1926
1927 2023-06-01 Jason Merrill <jason@redhat.com>
1928
1929 * doc/invoke.texi (-Wpedantic): Improve clarity.
1930
1931 2023-06-01 Uros Bizjak <ubizjak@gmail.com>
1932
1933 * rtl.h (exp_equiv_p): Change return type from int to bool.
1934 * cse.cc (mention_regs): Change return type from int to bool
1935 and adjust function body accordingly.
1936 (exp_equiv_p): Ditto.
1937 (insert_regs): Ditto. Change "modified" function argument to bool
1938 and update usage accordingly.
1939 (record_jump_cond): Remove always zero "reversed_nonequality"
1940 function argument and update usage accordingly.
1941 (fold_rtx): Change "changed" variable to bool.
1942 (record_jump_equiv): Remove unneeded "reversed_nonequality" variable.
1943 (is_dead_reg): Change return type from int to bool.
1944
1945 2023-06-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1946
1947 * config/xtensa/xtensa.md (adddi3, subdi3):
1948 New RTL generation patterns implemented according to the instruc-
1949 tion idioms described in the Xtensa ISA reference manual (p. 600).
1950
1951 2023-06-01 Roger Sayle <roger@nextmovesoftware.com>
1952 Uros Bizjak <ubizjak@gmail.com>
1953
1954 PR target/109973
1955 * config/i386/i386-builtin.def (__builtin_ia32_ptestz128): Use new
1956 CODE_for_sse4_1_ptestzv2di.
1957 (__builtin_ia32_ptestc128): Use new CODE_for_sse4_1_ptestcv2di.
1958 (__builtin_ia32_ptestz256): Use new CODE_for_avx_ptestzv4di.
1959 (__builtin_ia32_ptestc256): Use new CODE_for_avx_ptestcv4di.
1960 * config/i386/i386-expand.cc (ix86_expand_branch): Use CCZmode
1961 when expanding UNSPEC_PTEST to compare against zero.
1962 * config/i386/i386-features.cc (scalar_chain::convert_compare):
1963 Likewise generate CCZmode UNSPEC_PTESTs when converting comparisons.
1964 (general_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
1965 (timode_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
1966 * config/i386/i386-protos.h (ix86_match_ptest_ccmode): Prototype.
1967 * config/i386/i386.cc (ix86_match_ptest_ccmode): New predicate to
1968 check for suitable matching modes for the UNSPEC_PTEST pattern.
1969 * config/i386/sse.md (define_split): When splitting UNSPEC_MOVMSK
1970 to UNSPEC_PTEST, preserve the FLAG_REG mode as CCZ.
1971 (*<sse4_1>_ptest<mode>): Add asterisk to hide define_insn. Remove
1972 ":CC" mode of FLAGS_REG, instead use ix86_match_ptest_ccmode.
1973 (<sse4_1>_ptestz<mode>): New define_expand to specify CCZ.
1974 (<sse4_1>_ptestc<mode>): New define_expand to specify CCC.
1975 (<sse4_1>_ptest<mode>): A define_expand using CC to preserve the
1976 current behavior.
1977 (*ptest<mode>_and): Specify CCZ to only perform this optimization
1978 when only the Z flag is required.
1979
1980 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1981
1982 PR target/109954
1983 * doc/invoke.texi (x86 Options): Fix description of -m32 option.
1984
1985 2023-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1986
1987 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>):
1988 Add =r,m and =r,m alternatives.
1989 (load_pair<DREG:mode><DREG2:mode>): Likewise.
1990 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
1991
1992 2023-06-01 Pan Li <pan2.li@intel.com>
1993
1994 * common/config/riscv/riscv-common.cc: Add FP_16 mask to zvfhmin
1995 and zvfh.
1996 * config/riscv/genrvv-type-indexer.cc (valid_type): Allow FP16.
1997 (main): Disable FP16 tuple.
1998 * config/riscv/riscv-opts.h (MASK_VECTOR_ELEN_FP_16): New macro.
1999 (TARGET_VECTOR_ELEN_FP_16): Ditto.
2000 * config/riscv/riscv-vector-builtins.cc (check_required_extensions):
2001 Add FP16.
2002 * config/riscv/riscv-vector-builtins.def (vfloat16mf4_t): New type.
2003 (vfloat16mf2_t): Ditto.
2004 (vfloat16m1_t): Ditto.
2005 (vfloat16m2_t): Ditto.
2006 (vfloat16m4_t): Ditto.
2007 (vfloat16m8_t): Ditto.
2008 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_FP_16):
2009 New macro.
2010 * config/riscv/riscv-vector-switch.def (ENTRY): Allow FP16
2011 machine mode based on TARGET_VECTOR_ELEN_FP_16.
2012
2013 2023-06-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2014
2015 * config/riscv/riscv-vector-builtins.cc (register_frm): New function.
2016 (DEF_RVV_FRM_ENUM): New macro.
2017 (handle_pragma_vector): Add FRM enum
2018 * config/riscv/riscv-vector-builtins.def (DEF_RVV_FRM_ENUM): New macro.
2019 (RNE): Ditto.
2020 (RTZ): Ditto.
2021 (RDN): Ditto.
2022 (RUP): Ditto.
2023 (RMM): Ditto.
2024
2025 2023-05-31 Roger Sayle <roger@nextmovesoftware.com>
2026 Richard Sandiford <richard.sandiford@arm.com>
2027
2028 * fold-const-call.cc (fold_const_call_ss) <CFN_BUILT_IN_BSWAP*>:
2029 Update call to wi::bswap.
2030 * simplify-rtx.cc (simplify_const_unary_operation) <case BSWAP>:
2031 Update call to wi::bswap.
2032 * tree-ssa-ccp.cc (evaluate_stmt) <case BUILT_IN_BSWAP*>:
2033 Update calls to wi::bswap.
2034 * wide-int.cc (wide_int_storage::bswap): Remove/rename to...
2035 (wi::bswap_large): New function, with revised API.
2036 * wide-int.h (wi::bswap): New (template) function prototype.
2037 (wide_int_storage::bswap): Remove method.
2038 (sext_large, zext_large): Consistent indentation/line wrapping.
2039 (bswap_large): Prototype helper function containing implementation.
2040 (wi::bswap): New template wrapper around bswap_large.
2041
2042 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2043
2044 PR target/99195
2045 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Rename to...
2046 (<sur>dot_prod<vsi2qi><vczle><vczbe>): ... This.
2047 (usdot_prod<vsi2qi>): Rename to...
2048 (usdot_prod<vsi2qi><vczle><vczbe>): ... This.
2049 (aarch64_<sur>dot_lane<vsi2qi>): Rename to...
2050 (aarch64_<sur>dot_lane<vsi2qi><vczle><vczbe>): ... This.
2051 (aarch64_<sur>dot_laneq<vsi2qi>): Rename to...
2052 (aarch64_<sur>dot_laneq<vsi2qi><vczle><vczbe>): ... This.
2053 (aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi>): Rename to...
2054 (aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi><vczle><vczbe>):
2055 ... This.
2056
2057 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2058
2059 PR target/99195
2060 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh<mode>): Rename to...
2061 (aarch64_sq<r>dmulh<mode><vczle><vczbe>): ... This.
2062 (aarch64_sq<r>dmulh_n<mode>): Rename to...
2063 (aarch64_sq<r>dmulh_n<mode><vczle><vczbe>): ... This.
2064 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
2065 (aarch64_sq<r>dmulh_lane<mode><vczle><vczbe>): ... This.
2066 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
2067 (aarch64_sq<r>dmulh_laneq<mode><vczle><vczbe>): ... This.
2068 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): Rename to...
2069 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode><vczle><vczbe>): ... This.
2070 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Rename to...
2071 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode><vczle><vczbe>): ... This.
2072 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Rename to...
2073 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode><vczle><vczbe>): ... This.
2074
2075 2023-05-31 David Faust <david.faust@oracle.com>
2076
2077 * btfout.cc (btf_kind_names): New.
2078 (btf_kind_name): New.
2079 (btf_absolute_var_id): New utility function.
2080 (btf_relative_var_id): Likewise.
2081 (btf_relative_func_id): Likewise.
2082 (btf_absolute_datasec_id): Likewise.
2083 (btf_asm_type_ref): New.
2084 (btf_asm_type): Update asm comments and use btf_asm_type_ref ().
2085 (btf_asm_array): Likewise. Accept ctf_container_ref parameter.
2086 (btf_asm_varent): Likewise.
2087 (btf_asm_func_arg): Likewise.
2088 (btf_asm_datasec_entry): Likewise.
2089 (btf_asm_datasec_type): Likewise.
2090 (btf_asm_func_type): Likewise. Add index parameter.
2091 (btf_asm_enum_const): Likewise.
2092 (btf_asm_sou_member): Likewise.
2093 (output_btf_vars): Update btf_asm_* call accordingly.
2094 (output_asm_btf_sou_fields): Likewise.
2095 (output_asm_btf_enum_list): Likewise.
2096 (output_asm_btf_func_args_list): Likewise.
2097 (output_asm_btf_vlen_bytes): Likewise.
2098 (output_btf_func_types): Add ctf_container_ref parameter.
2099 Pass it to btf_asm_func_type.
2100 (output_btf_datasec_types): Update btf_asm_datsec_type call similarly.
2101 (btf_output): Update output_btf_func_types call similarly.
2102
2103 2023-05-31 David Faust <david.faust@oracle.com>
2104
2105 * btfout.cc (btf_asm_type): Add dedicated cases for BTF_KIND_ARRAY
2106 and BTF_KIND_FWD which do not use the size/type field at all.
2107
2108 2023-05-31 Uros Bizjak <ubizjak@gmail.com>
2109
2110 * rtl.h (subreg_lowpart_p): Change return type from int to bool.
2111 (active_insn_p): Ditto.
2112 (in_sequence_p): Ditto.
2113 (unshare_all_rtl): Change return type from int to void.
2114 * emit-rtl.h (mem_expr_equal_p): Change return type from int to bool.
2115 * emit-rtl.cc (subreg_lowpart_p): Change return type from int to bool
2116 and adjust function body accordingly.
2117 (mem_expr_equal_p): Ditto.
2118 (unshare_all_rtl): Change return type from int to void
2119 and adjust function body accordingly.
2120 (verify_rtx_sharing): Remove unneeded return.
2121 (active_insn_p): Change return type from int to bool
2122 and adjust function body accordingly.
2123 (in_sequence_p): Ditto.
2124
2125 2023-05-31 Uros Bizjak <ubizjak@gmail.com>
2126
2127 * rtl.h (true_dependence): Change return type from int to bool.
2128 (canon_true_dependence): Ditto.
2129 (read_dependence): Ditto.
2130 (anti_dependence): Ditto.
2131 (canon_anti_dependence): Ditto.
2132 (output_dependence): Ditto.
2133 (canon_output_dependence): Ditto.
2134 (may_alias_p): Ditto.
2135 * alias.h (alias_sets_conflict_p): Ditto.
2136 (alias_sets_must_conflict_p): Ditto.
2137 (objects_must_conflict_p): Ditto.
2138 (nonoverlapping_memrefs_p): Ditto.
2139 * alias.cc (rtx_equal_for_memref_p): Remove forward declaration.
2140 (record_set): Ditto.
2141 (base_alias_check): Ditto.
2142 (find_base_value): Ditto.
2143 (mems_in_disjoint_alias_sets_p): Ditto.
2144 (get_alias_set_entry): Ditto.
2145 (decl_for_component_ref): Ditto.
2146 (write_dependence_p): Ditto.
2147 (memory_modified_1): Ditto.
2148 (mems_in_disjoint_alias_set_p): Change return type from int to bool
2149 and adjust function body accordingly.
2150 (alias_sets_conflict_p): Ditto.
2151 (alias_sets_must_conflict_p): Ditto.
2152 (objects_must_conflict_p): Ditto.
2153 (rtx_equal_for_memref_p): Ditto.
2154 (base_alias_check): Ditto.
2155 (read_dependence): Ditto.
2156 (nonoverlapping_memrefs_p): Ditto.
2157 (true_dependence_1): Ditto.
2158 (true_dependence): Ditto.
2159 (canon_true_dependence): Ditto.
2160 (write_dependence_p): Ditto.
2161 (anti_dependence): Ditto.
2162 (canon_anti_dependence): Ditto.
2163 (output_dependence): Ditto.
2164 (canon_output_dependence): Ditto.
2165 (may_alias_p): Ditto.
2166 (init_alias_analysis): Change "changed" variable to bool.
2167
2168 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2169
2170 * config/riscv/autovec.md (<optab><v_double_trunc><mode>2): Change
2171 expand into define_insn_and_split.
2172
2173 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2174
2175 * config/riscv/vector.md: Remove FRM.
2176
2177 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2178
2179 * config/riscv/vector.md: Remove FRM.
2180
2181 2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2182
2183 * config/riscv/vector.md: Remove FRM.
2184
2185 2023-05-31 Christophe Lyon <christophe.lyon@linaro.org>
2186
2187 PR target/110039
2188 * config/aarch64/aarch64.md (aarch64_rev16si2_alt3): New
2189 pattern.
2190
2191 2023-05-31 Richard Biener <rguenther@suse.de>
2192
2193 PR ipa/109983
2194 PR tree-optimization/109143
2195 * tree-ssa-structalias.cc (struct topo_info): Remove.
2196 (init_topo_info): Likewise.
2197 (free_topo_info): Likewise.
2198 (compute_topo_order): Simplify API, put the component
2199 with ESCAPED last so it's processed first.
2200 (topo_visit): Adjust.
2201 (solve_graph): Likewise.
2202
2203 2023-05-31 Richard Biener <rguenther@suse.de>
2204
2205 * tree-ssa-structalias.cc (constraint_stats::num_avoided_edges):
2206 New.
2207 (add_graph_edge): Count redundant edges we avoid to create.
2208 (dump_sa_stats): Dump them.
2209 (ipa_pta_execute): Do not dump generating constraints when
2210 we are not dumping them.
2211
2212 2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2213
2214 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>): Rewrite
2215 output template to avoid explicit switch on which_alternative.
2216 (*aarch64_simd_mov<VQMOV:mode>): Likewise.
2217 (and<mode>3): Likewise.
2218 (ior<mode>3): Likewise.
2219 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Likewise.
2220
2221 2023-05-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2222
2223 * config/xtensa/predicates.md (xtensa_bit_join_operator):
2224 New predicate.
2225 * config/xtensa/xtensa.md (ior_op): Remove.
2226 (*shlrd_reg): Rename from "*shlrd_reg_<code>", and add the
2227 insn_and_split pattern of the same name to express and capture
2228 the bit-combining operation with both sides swapped.
2229 In addition, replace use of code iterator with new operator
2230 predicate.
2231 (*shlrd_const, *shlrd_per_byte):
2232 Likewise regarding the code iterator.
2233
2234 2023-05-31 Cui, Lili <lili.cui@intel.com>
2235
2236 PR tree-optimization/110038
2237 * params.opt: Add a limit on tree-reassoc-width.
2238 * tree-ssa-reassoc.cc
2239 (rewrite_expr_tree_parallel): Add width limit.
2240
2241 2023-05-31 Pan Li <pan2.li@intel.com>
2242
2243 * common/config/riscv/riscv-common.cc:
2244 (riscv_implied_info): Add zvfh item.
2245 (riscv_ext_version_table): Ditto.
2246 (riscv_ext_flag_table): Ditto.
2247 * config/riscv/riscv-opts.h (MASK_ZVFH): New macro.
2248 (TARGET_ZVFH): Ditto.
2249
2250 2023-05-30 liuhongt <hongtao.liu@intel.com>
2251
2252 PR tree-optimization/108804
2253 * tree-vect-patterns.cc (vect_get_range_info): Remove static.
2254 * tree-vect-stmts.cc (vect_create_vectorized_demotion_stmts):
2255 Add new parameter narrow_src_p.
2256 (vectorizable_conversion): Enhance NARROW FLOAT_EXPR
2257 vectorization by truncating to lower precision.
2258 * tree-vectorizer.h (vect_get_range_info): New declare.
2259
2260 2023-05-30 Vladimir N. Makarov <vmakarov@redhat.com>
2261
2262 * lra-int.h (lra_update_sp_offset): Add the prototype.
2263 * lra.cc (setup_sp_offset): Change the return type. Use
2264 lra_update_sp_offset.
2265 * lra-eliminations.cc (lra_update_sp_offset): New function.
2266 (lra_process_new_insns): Push the current insn to reprocess if the
2267 input reload changes sp offset.
2268
2269 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
2270
2271 PR target/110041
2272 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
2273 Fix misleading identation.
2274
2275 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
2276
2277 * rtl.h (comparison_dominates_p): Change return type from int to bool.
2278 (condjump_p): Ditto.
2279 (any_condjump_p): Ditto.
2280 (any_uncondjump_p): Ditto.
2281 (simplejump_p): Ditto.
2282 (returnjump_p): Ditto.
2283 (eh_returnjump_p): Ditto.
2284 (onlyjump_p): Ditto.
2285 (invert_jump_1): Ditto.
2286 (invert_jump): Ditto.
2287 (rtx_renumbered_equal_p): Ditto.
2288 (redirect_jump_1): Ditto.
2289 (redirect_jump): Ditto.
2290 (condjump_in_parallel_p): Ditto.
2291 * jump.cc (invert_exp_1): Adjust forward declaration.
2292 (comparison_dominates_p): Change return type from int to bool
2293 and adjust function body accordingly.
2294 (simplejump_p): Ditto.
2295 (condjump_p): Ditto.
2296 (condjump_in_parallel_p): Ditto.
2297 (any_uncondjump_p): Ditto.
2298 (any_condjump_p): Ditto.
2299 (returnjump_p): Ditto.
2300 (eh_returnjump_p): Ditto.
2301 (onlyjump_p): Ditto.
2302 (redirect_jump_1): Ditto.
2303 (redirect_jump): Ditto.
2304 (invert_exp_1): Ditto.
2305 (invert_jump_1): Ditto.
2306 (invert_jump): Ditto.
2307 (rtx_renumbered_equal_p): Ditto.
2308
2309 2023-05-30 Andrew Pinski <apinski@marvell.com>
2310
2311 * fold-const.cc (minmax_from_comparison): Add support for NE_EXPR.
2312 * match.pd ((cond (cmp (convert1? x) c1) (convert2? x) c2) pattern):
2313 Add ne as a possible cmp.
2314 ((a CMP b) ? minmax<a, c> : minmax<b, c> pattern): Likewise.
2315
2316 2023-05-30 Andrew Pinski <apinski@marvell.com>
2317
2318 * match.pd (`(a CMP CST1) ? max<a,CST2> : a`): New
2319 pattern.
2320
2321 2023-05-30 Roger Sayle <roger@nextmovesoftware.com>
2322
2323 * simplify-rtx.cc (simplify_binary_operation_1) <AND>: Use wide-int
2324 instead of HWI_COMPUTABLE_MODE_P and UINTVAL in transformation of
2325 (and (extend X) C) as (zero_extend (and X C)), to also optimize
2326 modes wider than HOST_WIDE_INT.
2327
2328 2023-05-30 Roger Sayle <roger@nextmovesoftware.com>
2329
2330 PR target/107172
2331 * simplify-rtx.cc (simplify_const_relational_operation): Return
2332 early if we have a MODE_CC comparison that isn't a COMPARE against
2333 const0_rtx.
2334
2335 2023-05-30 Robin Dapp <rdapp@ventanamicro.com>
2336
2337 * config/riscv/riscv.cc (riscv_const_insns): Allow
2338 const_vec_duplicates.
2339
2340 2023-05-30 liuhongt <hongtao.liu@intel.com>
2341
2342 PR middle-end/108938
2343 * gimple-ssa-store-merging.cc (is_bswap_or_nop_p): New
2344 function, cut from original find_bswap_or_nop function.
2345 (find_bswap_or_nop): Add a new parameter, detect bswap +
2346 rotate and save rotate result in the new parameter.
2347 (bswap_replace): Add a new parameter to indicate rotate and
2348 generate rotate stmt if needed.
2349 (maybe_optimize_vector_constructor): Adjust for new rotate
2350 parameter in the upper 2 functions.
2351 (pass_optimize_bswap::execute): Ditto.
2352 (imm_store_chain_info::output_merged_store): Ditto.
2353
2354 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2355
2356 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>): Delete.
2357 (aarch64_<su>adalp<mode>): New define_expand.
2358 (*aarch64_<su>adalp<mode><vczle><vczbe>_insn): New define_insn.
2359 (aarch64_<su>addlp<mode>): Convert to define_expand.
2360 (*aarch64_<su>addlp<mode><vczle><vczbe>_insn): New define_insn.
2361 * config/aarch64/iterators.md (UNSPEC_SADDLP, UNSPEC_UADDLP): Delete.
2362 (ADALP): Likewise.
2363 (USADDLP): Likewise.
2364 * config/aarch64/predicates.md (vect_par_cnst_even_or_odd_half): Define.
2365
2366 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2367
2368 * config/aarch64/aarch64-builtins.cc (VAR1): Move to after inclusion of
2369 aarch64-builtin-iterators.h. Add definition to remap shadd, uhadd,
2370 srhadd, urhadd builtin codes for standard optab ones.
2371 * config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor): Rename to...
2372 (<su_optab>avg<mode>3_floor): ... This. Expand to RTL codes rather than
2373 unspec.
2374 (<u>avg<mode>3_ceil): Rename to...
2375 (<su_optab>avg<mode>3_ceil): ... This. Expand to RTL codes rather than
2376 unspec.
2377 (aarch64_<su>hsub<mode>): New define_expand.
2378 (aarch64_<sur>h<addsub><mode><vczle><vczbe>): Split into...
2379 (*aarch64_<su>h<ADDSUB:optab><mode><vczle><vczbe>_insn): ... This...
2380 (*aarch64_<su>rhadd<mode><vczle><vczbe>_insn): ... And this.
2381
2382 2023-05-30 Andreas Schwab <schwab@suse.de>
2383
2384 PR target/110036
2385 * config/riscv/riscv.cc (riscv_asan_shadow_offset): Update to
2386 match libsanitizer.
2387
2388 2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2389
2390 * config/aarch64/aarch64-modes.def (V16HI, V8SI, V4DI, V2TI): New modes.
2391 * config/aarch64/aarch64-protos.h (aarch64_const_vec_rnd_cst_p):
2392 Declare prototype.
2393 (aarch64_const_vec_rsra_rnd_imm_p): Likewise.
2394 * config/aarch64/aarch64-simd.md (*aarch64_simd_sra<mode>): Rename to...
2395 (aarch64_<sra_op>sra_n<mode>_insn): ... This.
2396 (aarch64_<sra_op>rsra_n<mode>_insn): New define_insn.
2397 (aarch64_<sra_op>sra_n<mode>): New define_expand.
2398 (aarch64_<sra_op>rsra_n<mode>): Likewise.
2399 (aarch64_<sur>sra_n<mode>): Rename to...
2400 (aarch64_<sur>sra_ndi): ... This.
2401 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Add
2402 any_target_p argument.
2403 (aarch64_extract_vec_duplicate_wide_int): Define.
2404 (aarch64_const_vec_rsra_rnd_imm_p): Likewise.
2405 (aarch64_const_vec_rnd_cst_p): Likewise.
2406 (aarch64_vector_mode_supported_any_target_p): Likewise.
2407 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
2408 * config/aarch64/iterators.md (UNSPEC_SRSRA, UNSPEC_URSRA): Delete.
2409 (VSRA): Adjust for the above.
2410 (sur): Likewise.
2411 (V2XWIDE): New mode_attr.
2412 (vec_or_offset): Likewise.
2413 (SHIFTEXTEND): Likewise.
2414 * config/aarch64/predicates.md (aarch64_simd_rsra_rnd_imm_vec): New
2415 predicate.
2416 * doc/tm.texi (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
2417 clarify that it applies to current target options.
2418 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Document.
2419 * doc/tm.texi.in: Regenerate.
2420 * stor-layout.cc (mode_for_vector): Check
2421 vector_mode_supported_any_target_p when iterating through vector modes.
2422 * target.def (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
2423 clarify that it applies to current target options.
2424 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Define.
2425
2426 2023-05-30 Lili Cui <lili.cui@intel.com>
2427
2428 PR tree-optimization/98350
2429 * tree-ssa-reassoc.cc
2430 (rewrite_expr_tree_parallel): Rewrite this function.
2431 (rank_ops_for_fma): New.
2432 (reassociate_bb): Handle new function.
2433
2434 2023-05-30 Uros Bizjak <ubizjak@gmail.com>
2435
2436 * rtl.h (rtx_addr_can_trap_p): Change return type from int to bool.
2437 (rtx_unstable_p): Ditto.
2438 (reg_mentioned_p): Ditto.
2439 (reg_referenced_p): Ditto.
2440 (reg_used_between_p): Ditto.
2441 (reg_set_between_p): Ditto.
2442 (modified_between_p): Ditto.
2443 (no_labels_between_p): Ditto.
2444 (modified_in_p): Ditto.
2445 (reg_set_p): Ditto.
2446 (multiple_sets): Ditto.
2447 (set_noop_p): Ditto.
2448 (noop_move_p): Ditto.
2449 (reg_overlap_mentioned_p): Ditto.
2450 (dead_or_set_p): Ditto.
2451 (dead_or_set_regno_p): Ditto.
2452 (find_reg_fusage): Ditto.
2453 (find_regno_fusage): Ditto.
2454 (side_effects_p): Ditto.
2455 (volatile_refs_p): Ditto.
2456 (volatile_insn_p): Ditto.
2457 (may_trap_p_1): Ditto.
2458 (may_trap_p): Ditto.
2459 (may_trap_or_fault_p): Ditto.
2460 (computed_jump_p): Ditto.
2461 (auto_inc_p): Ditto.
2462 (loc_mentioned_in_p): Ditto.
2463 * rtlanal.cc (computed_jump_p_1): Adjust forward declaration.
2464 (rtx_unstable_p): Change return type from int to bool
2465 and adjust function body accordingly.
2466 (rtx_addr_can_trap_p): Ditto.
2467 (reg_mentioned_p): Ditto.
2468 (no_labels_between_p): Ditto.
2469 (reg_used_between_p): Ditto.
2470 (reg_referenced_p): Ditto.
2471 (reg_set_between_p): Ditto.
2472 (reg_set_p): Ditto.
2473 (modified_between_p): Ditto.
2474 (modified_in_p): Ditto.
2475 (multiple_sets): Ditto.
2476 (set_noop_p): Ditto.
2477 (noop_move_p): Ditto.
2478 (reg_overlap_mentioned_p): Ditto.
2479 (dead_or_set_p): Ditto.
2480 (dead_or_set_regno_p): Ditto.
2481 (find_reg_fusage): Ditto.
2482 (find_regno_fusage): Ditto.
2483 (remove_node_from_insn_list): Ditto.
2484 (volatile_insn_p): Ditto.
2485 (volatile_refs_p): Ditto.
2486 (side_effects_p): Ditto.
2487 (may_trap_p_1): Ditto.
2488 (may_trap_p): Ditto.
2489 (may_trap_or_fault_p): Ditto.
2490 (computed_jump_p): Ditto.
2491 (auto_inc_p): Ditto.
2492 (loc_mentioned_in_p): Ditto.
2493 * combine.cc (can_combine_p): Update indirect function.
2494
2495 2023-05-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2496
2497 * config/riscv/autovec.md (<optab><mode><vconvert>2): New pattern.
2498 * config/riscv/iterators.md: New attribute.
2499 * config/riscv/vector-iterators.md: New attribute.
2500
2501 2023-05-30 From: Juzhe-Zhong <juzhe.zhong@rivai.ai>
2502
2503 * config/riscv/riscv.md: Fix signed and unsigned comparison
2504 warning.
2505
2506 2023-05-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2507
2508 * config/riscv/autovec.md (fnma<mode>4): New pattern.
2509 (*fnma<mode>): Ditto.
2510
2511 2023-05-29 Die Li <lidie@eswincomputing.com>
2512
2513 * config/riscv/riscv.cc (riscv_expand_conditional_move_onesided):
2514 Delete.
2515 (riscv_expand_conditional_move): Reuse the TARGET_SFB_ALU expand
2516 process for TARGET_XTHEADCONDMOV
2517
2518 2023-05-29 Uros Bizjak <ubizjak@gmail.com>
2519
2520 PR target/110021
2521 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also require
2522 TARGET_AVX512BW to generate truncv16hiv16qi2.
2523
2524 2023-05-29 Jivan Hakobyan <jivanhakobyan9@gmail.com>
2525
2526 * config/riscv/riscv.md (and<mode>3): New expander.
2527 (*and<mode>3) New pattern.
2528 * config/riscv/predicates.md (arith_operand_or_mode_mask): New
2529 predicate.
2530
2531 2023-05-29 Pan Li <pan2.li@intel.com>
2532
2533 * config/riscv/riscv-v.cc (emit_vlmax_insn): Remove unnecessary
2534 comments and rename local variables.
2535 (emit_nonvlmax_insn): Diito.
2536 (emit_vlmax_merge_insn): Ditto.
2537 (emit_vlmax_cmp_insn): Ditto.
2538 (emit_vlmax_cmp_mu_insn): Ditto.
2539 (emit_scalar_move_insn): Ditto.
2540
2541 2023-05-29 Pan Li <pan2.li@intel.com>
2542
2543 * config/riscv/riscv-v.cc (emit_vlmax_insn): Eliminate the
2544 magic number.
2545 (emit_nonvlmax_insn): Ditto.
2546 (emit_vlmax_merge_insn): Ditto.
2547 (emit_vlmax_cmp_insn): Ditto.
2548 (emit_vlmax_cmp_mu_insn): Ditto.
2549 (expand_vec_series): Ditto.
2550
2551 2023-05-29 Pan Li <pan2.li@intel.com>
2552
2553 * config/riscv/riscv-protos.h (enum insn_type): New type.
2554 * config/riscv/riscv-v.cc (RVV_INSN_OPERANDS_MAX): New macro.
2555 (rvv_builder::can_duplicate_repeating_sequence_p): Align the referenced
2556 class member.
2557 (rvv_builder::get_merged_repeating_sequence): Ditto.
2558 (rvv_builder::repeating_sequence_use_merge_profitable_p): New function
2559 to evaluate the optimization cost.
2560 (rvv_builder::get_merge_scalar_mask): New function to get the merge
2561 mask.
2562 (emit_scalar_move_insn): New function to emit vmv.s.x.
2563 (emit_vlmax_integer_move_insn): New function to emit vlmax vmv.v.x.
2564 (emit_nonvlmax_integer_move_insn): New function to emit nonvlmax
2565 vmv.v.x.
2566 (get_repeating_sequence_dup_machine_mode): New function to get the dup
2567 machine mode.
2568 (expand_vector_init_merge_repeating_sequence): New function to perform
2569 the optimization.
2570 (expand_vec_init): Add this vector init optimization.
2571 * config/riscv/riscv.h (BITS_PER_WORD): New macro.
2572
2573 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2574
2575 * tree-ssa-loop-manip.cc (create_iv): Try harder to find a SLOC to
2576 put onto the increment when it is inserted after the position.
2577
2578 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2579
2580 * match.pd ((T)P - (T)(P + A) -> -(T) A): Avoid artificial overflow
2581 on constants.
2582
2583 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2584
2585 * config/riscv/riscv-vsetvl.cc (source_equal_p): Fix ICE.
2586
2587 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2588
2589 * config/riscv/autovec.md (fma<mode>4): New pattern.
2590 (*fma<mode>): Ditto.
2591 * config/riscv/riscv-protos.h (enum insn_type): New enum.
2592 (emit_vlmax_ternary_insn): New function.
2593 * config/riscv/riscv-v.cc (emit_vlmax_ternary_insn): Ditto.
2594
2595 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2596
2597 * config/riscv/vector.md: Fix vimuladd instruction bug.
2598
2599 2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2600
2601 * config/riscv/riscv.cc (global_state_unknown_p): New function.
2602 (riscv_mode_after): Fix incorrect VXM.
2603
2604 2023-05-29 Pan Li <pan2.li@intel.com>
2605
2606 * common/config/riscv/riscv-common.cc:
2607 (riscv_implied_info): Add zvfhmin item.
2608 (riscv_ext_version_table): Ditto.
2609 (riscv_ext_flag_table): Ditto.
2610 * config/riscv/riscv-opts.h (MASK_ZVFHMIN): New macro.
2611 (TARGET_ZFHMIN): Align indent.
2612 (TARGET_ZFH): Ditto.
2613 (TARGET_ZVFHMIN): New macro.
2614
2615 2023-05-27 liuhongt <hongtao.liu@intel.com>
2616
2617 PR target/100711
2618 * config/i386/sse.md (*andnot<mode>3): Extend below splitter
2619 to VI_AVX2 to cover more modes.
2620
2621 2023-05-27 liuhongt <hongtao.liu@intel.com>
2622
2623 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
2624 Remove ATOM and ICELAKE(and later) core processors.
2625
2626 2023-05-26 Robin Dapp <rdapp@ventanamicro.com>
2627
2628 * config/riscv/autovec.md (<optab><mode>2): Add vneg/vnot.
2629 (abs<mode>2): Add.
2630 * config/riscv/riscv-protos.h (emit_vlmax_masked_mu_insn):
2631 Declare.
2632 * config/riscv/riscv-v.cc (emit_vlmax_masked_mu_insn): New
2633 function.
2634
2635 2023-05-26 Robin Dapp <rdapp@ventanamicro.com>
2636 Juzhe Zhong <juzhe.zhong@rivai.ai>
2637
2638 * config/riscv/autovec.md (<optab><v_double_trunc><mode>2): New
2639 expander.
2640 (<optab><v_quad_trunc><mode>2): Dito.
2641 (<optab><v_oct_trunc><mode>2): Dito.
2642 (trunc<mode><v_double_trunc>2): Dito.
2643 (trunc<mode><v_quad_trunc>2): Dito.
2644 (trunc<mode><v_oct_trunc>2): Dito.
2645 * config/riscv/riscv-protos.h (vectorize_related_mode): Define.
2646 (autovectorize_vector_modes): Define.
2647 * config/riscv/riscv-v.cc (vectorize_related_mode): Implement
2648 hook.
2649 (autovectorize_vector_modes): Implement hook.
2650 * config/riscv/riscv.cc (riscv_autovectorize_vector_modes):
2651 Implement target hook.
2652 (riscv_vectorize_related_mode): Implement target hook.
2653 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
2654 (TARGET_VECTORIZE_RELATED_MODE): Define.
2655 * config/riscv/vector-iterators.md: Add lowercase versions of
2656 mode_attr iterators.
2657
2658 2023-05-26 Andrew Stubbs <ams@codesourcery.com>
2659 Tobias Burnus <tobias@codesourcery.com>
2660
2661 * config/gcn/gcn-hsa.h (XNACKOPT): New macro.
2662 (ASM_SPEC): Use XNACKOPT.
2663 * config/gcn/gcn-opts.h (enum sram_ecc_type): Rename to ...
2664 (enum hsaco_attr_type): ... this, and generalize the names.
2665 (TARGET_XNACK): New macro.
2666 * config/gcn/gcn.cc (gcn_option_override): Update to sorry for all
2667 but -mxnack=off.
2668 (output_file_start): Update xnack handling.
2669 (gcn_hsa_declare_function_name): Use TARGET_XNACK.
2670 * config/gcn/gcn.opt (-mxnack): Add the "on/off/any" syntax.
2671 (sram_ecc_type): Rename to ...
2672 (hsaco_attr_type: ... this.)
2673 * config/gcn/mkoffload.cc (SET_XNACK_ANY): New macro.
2674 (TEST_XNACK): Delete.
2675 (TEST_XNACK_ANY): New macro.
2676 (TEST_XNACK_ON): New macro.
2677 (main): Support the new -mxnack=on/off/any syntax.
2678 * doc/invoke.texi (-mxnack): Update for new syntax.
2679
2680 2023-05-26 Andrew Pinski <apinski@marvell.com>
2681
2682 * genmatch.cc (emit_debug_printf): New function.
2683 (dt_simplify::gen_1): Emit printf into the code
2684 before the `return true` or returning the folded result
2685 instead of emitting it always.
2686
2687 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2688
2689 * config/xtensa/xtensa-protos.h
2690 (xtensa_expand_block_set_unrolled_loop,
2691 xtensa_expand_block_set_small_loop): Remove.
2692 (xtensa_expand_block_set): New prototype.
2693 * config/xtensa/xtensa.cc
2694 (xtensa_expand_block_set_libcall): New subfunction.
2695 (xtensa_expand_block_set_unrolled_loop,
2696 xtensa_expand_block_set_small_loop): Rewrite as subfunctions.
2697 (xtensa_expand_block_set): New function that calls the above
2698 subfunctions.
2699 * config/xtensa/xtensa.md (memsetsi): Change to invoke only
2700 xtensa_expand_block_set().
2701
2702 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2703
2704 * config/xtensa/xtensa-protos.h (xtensa_m1_or_1_thru_15):
2705 New prototype.
2706 * config/xtensa/xtensa.cc (xtensa_m1_or_1_thru_15):
2707 New function.
2708 * config/xtensa/constraints.md (O):
2709 Change to use the above function.
2710 * config/xtensa/xtensa.md (*subsi3_from_const):
2711 New insn_and_split pattern.
2712
2713 2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2714
2715 * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3):
2716 Retract excessive line folding, and correct the value of
2717 the "length" insn attribute related to TARGET_DENSITY.
2718 (*extzvsi-1bit_addsubx): Ditto.
2719
2720 2023-05-26 Uros Bizjak <ubizjak@gmail.com>
2721
2722 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi):
2723 Do not disable call to ix86_expand_vecop_qihi2.
2724
2725 2023-05-26 liuhongt <hongtao.liu@intel.com>
2726
2727 PR target/109610
2728 PR target/109858
2729 * ira-costs.cc (scan_one_insn): Only use NO_REGS in cost
2730 calculation when !hard_regno_mode_ok for GENERAL_REGS and
2731 mode, otherwise still use GENERAL_REGS.
2732
2733 2023-05-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2734
2735 * config/riscv/riscv.cc (vector_zero_call_used_regs): Add
2736 explict VL and drop VL in ops.
2737
2738 2023-05-25 Jin Ma <jinma@linux.alibaba.com>
2739
2740 * sched-deps.cc (sched_macro_fuse_insns): Insns should not be fusion
2741 in different BB blocks.
2742
2743 2023-05-25 Uros Bizjak <ubizjak@gmail.com>
2744
2745 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
2746 Rewrite to expand to 2x-wider (e.g. V16QI -> V16HImode)
2747 instructions when available. Emulate truncation via
2748 ix86_expand_vec_perm_const_1 when native truncate insn
2749 is not available.
2750 (ix86_expand_vecop_qihi_partial) <case MULT>: Use pmovzx
2751 when available. Trivially rename some variables.
2752 (ix86_expand_vecop_qihi): Unconditionally call ix86_expand_vecop_qihi2.
2753 * config/i386/i386.cc (ix86_multiplication_cost): Rewrite cost
2754 calculation of V*QImode emulations to account for generation of
2755 2x-wider mode instructions.
2756 (ix86_shift_rotate_cost): Update cost calculation of V*QImode
2757 emulations to account for generation of 2x-wider mode instructions.
2758
2759 2023-05-25 Georg-Johann Lay <avr@gjlay.de>
2760
2761 PR target/104327
2762 * config/avr/avr.cc (avr_can_inline_p): New static function.
2763 (TARGET_CAN_INLINE_P): Define to that function.
2764
2765 2023-05-25 Georg-Johann Lay <avr@gjlay.de>
2766
2767 PR target/82931
2768 * config/avr/avr.md (*movbitqi.0): Rename to *movbit<mode>.0-6.
2769 Handle any bit position and use mode QISI.
2770 * config/avr/avr.cc (avr_rtx_costs_1) [IOR]: Return a cost
2771 of 2 insns for bit-transfer of respective style.
2772
2773 2023-05-25 Christophe Lyon <christophe.lyon@linaro.org>
2774
2775 * config/arm/iterators.md (MVE_6): Remove.
2776 * config/arm/mve.md: Replace MVE_6 with MVE_5.
2777
2778 2023-05-25 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2779 Richard Sandiford <richard.sandiford@arm.com>
2780
2781 * tree-vect-loop-manip.cc (vect_adjust_loop_lens_control): New
2782 function.
2783 (vect_set_loop_controls_directly): Add decrement IV support.
2784 (vect_set_loop_condition_partial_vectors): Ditto.
2785 * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): New
2786 variable.
2787 * tree-vectorizer.h (LOOP_VINFO_USING_DECREMENTING_IV_P): New
2788 macro.
2789
2790 2023-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2791
2792 PR target/99195
2793 * config/aarch64/aarch64-simd.md (aarch64_fcadd<rot><mode>): Rename to...
2794 (aarch64_fcadd<rot><mode><vczle><vczbe>): ... This.
2795 Fix canonicalization of PLUS operands.
2796 (aarch64_fcmla<rot><mode>): Rename to...
2797 (aarch64_fcmla<rot><mode><vczle><vczbe>): ... This.
2798 Fix canonicalization of PLUS operands.
2799 (aarch64_fcmla_lane<rot><mode>): Rename to...
2800 (aarch64_fcmla_lane<rot><mode><vczle><vczbe>): ... This.
2801 Fix canonicalization of PLUS operands.
2802 (aarch64_fcmla_laneq<rot>v4hf): Rename to...
2803 (aarch64_fcmla_laneq<rot>v4hf<vczle><vczbe>): ... This.
2804 Fix canonicalization of PLUS operands.
2805 (aarch64_fcmlaq_lane<rot><mode>): Fix canonicalization of PLUS operands.
2806
2807 2023-05-25 Chris Sidebottom <chris.sidebottom@arm.com>
2808
2809 * config/arm/arm.md (rbitsi2): Rename to...
2810 (arm_rbit): ... This.
2811 (ctzsi2): Adjust for the above.
2812 (arm_rev16si2): Convert to define_expand.
2813 (arm_rev16si2_alt1): New pattern.
2814 (arm_rev16si2_alt): Rename to...
2815 (*arm_rev16si2_alt2): ... This.
2816 * config/arm/arm_acle.h (__ror, __rorl, __rorll, __clz, __clzl, __clzll,
2817 __cls, __clsl, __clsll, __revsh, __rev, __revl, __revll, __rev16,
2818 __rev16l, __rev16ll, __rbit, __rbitl, __rbitll): Define intrinsics.
2819 * config/arm/arm_acle_builtins.def (rbit, rev16si2): Define builtins.
2820
2821 2023-05-25 Alex Coplan <alex.coplan@arm.com>
2822
2823 PR target/109800
2824 * config/arm/arm.md (movdf): Generate temporary pseudo in DImode
2825 instead of DFmode.
2826 * config/arm/vfp.md (no_literal_pool_df_immediate): Rather than punning an
2827 lvalue DFmode pseudo into DImode, use a DImode pseudo and pun it into
2828 DFmode as an rvalue.
2829
2830 2023-05-25 Richard Biener <rguenther@suse.de>
2831
2832 PR target/109955
2833 * tree-vect-stmts.cc (vectorizable_condition): For
2834 embedded comparisons also handle the case when the target
2835 only provides vec_cmp and vcond_mask.
2836
2837 2023-05-25 Claudiu Zissulescu <claziss@gmail.com>
2838
2839 * config/arc/arc.cc (arc_call_tls_get_addr): Simplify access using
2840 TLS Local Dynamic.
2841
2842 2023-05-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2843
2844 * config/aarch64/aarch64.cc (scalar_move_insn_p): New function.
2845 (seq_cost_ignoring_scalar_moves): Likewise.
2846 (aarch64_expand_vector_init): Call seq_cost_ignoring_scalar_moves.
2847
2848 2023-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2849
2850 * config/aarch64/arm_neon.h (vcage_f64): Reimplement with builtins.
2851 (vcage_f32): Likewise.
2852 (vcages_f32): Likewise.
2853 (vcageq_f32): Likewise.
2854 (vcaged_f64): Likewise.
2855 (vcageq_f64): Likewise.
2856 (vcagts_f32): Likewise.
2857 (vcagt_f32): Likewise.
2858 (vcagt_f64): Likewise.
2859 (vcagtq_f32): Likewise.
2860 (vcagtd_f64): Likewise.
2861 (vcagtq_f64): Likewise.
2862 (vcale_f32): Likewise.
2863 (vcale_f64): Likewise.
2864 (vcaled_f64): Likewise.
2865 (vcales_f32): Likewise.
2866 (vcaleq_f32): Likewise.
2867 (vcaleq_f64): Likewise.
2868 (vcalt_f32): Likewise.
2869 (vcalt_f64): Likewise.
2870 (vcaltd_f64): Likewise.
2871 (vcaltq_f32): Likewise.
2872 (vcaltq_f64): Likewise.
2873 (vcalts_f32): Likewise.
2874
2875 2023-05-25 Hu, Lin1 <lin1.hu@intel.com>
2876
2877 PR target/109173
2878 PR target/109174
2879 * config/i386/avx512bwintrin.h (_mm512_srli_epi16): Change type from
2880 int to const int or const int to const unsigned int.
2881 (_mm512_mask_srli_epi16): Ditto.
2882 (_mm512_slli_epi16): Ditto.
2883 (_mm512_mask_slli_epi16): Ditto.
2884 (_mm512_maskz_slli_epi16): Ditto.
2885 (_mm512_srai_epi16): Ditto.
2886 (_mm512_mask_srai_epi16): Ditto.
2887 (_mm512_maskz_srai_epi16): Ditto.
2888 * config/i386/avx512fintrin.h (_mm512_slli_epi64): Ditto.
2889 (_mm512_mask_slli_epi64): Ditto.
2890 (_mm512_maskz_slli_epi64): Ditto.
2891 (_mm512_srli_epi64): Ditto.
2892 (_mm512_mask_srli_epi64): Ditto.
2893 (_mm512_maskz_srli_epi64): Ditto.
2894 (_mm512_srai_epi64): Ditto.
2895 (_mm512_mask_srai_epi64): Ditto.
2896 (_mm512_maskz_srai_epi64): Ditto.
2897 (_mm512_slli_epi32): Ditto.
2898 (_mm512_mask_slli_epi32): Ditto.
2899 (_mm512_maskz_slli_epi32): Ditto.
2900 (_mm512_srli_epi32): Ditto.
2901 (_mm512_mask_srli_epi32): Ditto.
2902 (_mm512_maskz_srli_epi32): Ditto.
2903 (_mm512_srai_epi32): Ditto.
2904 (_mm512_mask_srai_epi32): Ditto.
2905 (_mm512_maskz_srai_epi32): Ditto.
2906 * config/i386/avx512vlbwintrin.h (_mm256_mask_srai_epi16): Ditto.
2907 (_mm256_maskz_srai_epi16): Ditto.
2908 (_mm_mask_srai_epi16): Ditto.
2909 (_mm_maskz_srai_epi16): Ditto.
2910 (_mm256_mask_slli_epi16): Ditto.
2911 (_mm256_maskz_slli_epi16): Ditto.
2912 (_mm_mask_slli_epi16): Ditto.
2913 (_mm_maskz_slli_epi16): Ditto.
2914 (_mm_maskz_srli_epi16): Ditto.
2915 * config/i386/avx512vlintrin.h (_mm256_mask_srli_epi32): Ditto.
2916 (_mm256_maskz_srli_epi32): Ditto.
2917 (_mm_mask_srli_epi32): Ditto.
2918 (_mm_maskz_srli_epi32): Ditto.
2919 (_mm256_mask_srli_epi64): Ditto.
2920 (_mm256_maskz_srli_epi64): Ditto.
2921 (_mm_mask_srli_epi64): Ditto.
2922 (_mm_maskz_srli_epi64): Ditto.
2923 (_mm256_mask_srai_epi32): Ditto.
2924 (_mm256_maskz_srai_epi32): Ditto.
2925 (_mm_mask_srai_epi32): Ditto.
2926 (_mm_maskz_srai_epi32): Ditto.
2927 (_mm256_srai_epi64): Ditto.
2928 (_mm256_mask_srai_epi64): Ditto.
2929 (_mm256_maskz_srai_epi64): Ditto.
2930 (_mm_srai_epi64): Ditto.
2931 (_mm_mask_srai_epi64): Ditto.
2932 (_mm_maskz_srai_epi64): Ditto.
2933 (_mm_mask_slli_epi32): Ditto.
2934 (_mm_maskz_slli_epi32): Ditto.
2935 (_mm_mask_slli_epi64): Ditto.
2936 (_mm_maskz_slli_epi64): Ditto.
2937 (_mm256_mask_slli_epi32): Ditto.
2938 (_mm256_maskz_slli_epi32): Ditto.
2939 (_mm256_mask_slli_epi64): Ditto.
2940 (_mm256_maskz_slli_epi64): Ditto.
2941
2942 2023-05-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2943
2944 * config/riscv/vector.md: Remove FRM_REGNUM dependency in rtz
2945 instructions.
2946
2947 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
2948
2949 * data-streamer-in.cc (streamer_read_value_range): Handle NANs.
2950 * data-streamer-out.cc (streamer_write_vrange): Same.
2951 * value-range.h (class vrange): Make streamer_write_vrange a friend.
2952
2953 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
2954
2955 * value-query.cc (range_query::get_tree_range): Set NAN directly
2956 if necessary.
2957 * value-range.cc (frange::set): Assert that bounds are not NAN.
2958
2959 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
2960
2961 * value-range.cc (add_vrange): Handle known NANs.
2962
2963 2023-05-25 Aldy Hernandez <aldyh@redhat.com>
2964
2965 * value-range.h (frange::set_nan): New.
2966
2967 2023-05-25 Alexandre Oliva <oliva@adacore.com>
2968
2969 PR target/100106
2970 * emit-rtl.cc (validate_subreg): Reject a SUBREG of a MEM that
2971 requires stricter alignment than MEM's.
2972
2973 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2974
2975 PR tree-optimization/107822
2976 PR tree-optimization/107986
2977 * Makefile.in (OBJS): Add gimple-range-phi.o.
2978 * gimple-range-cache.h (ranger_cache::m_estimate): New
2979 phi_analyzer pointer member.
2980 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use
2981 phi_analyzer if no loop info is available.
2982 * gimple-range-phi.cc: New file.
2983 * gimple-range-phi.h: New file.
2984 * tree-vrp.cc (execute_ranger_vrp): Utililze a phi_analyzer.
2985
2986 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2987
2988 * gimple-range-fold.cc (fur_list::fur_list): Add range_query param
2989 to contructors.
2990 (fold_range): Add range_query parameter.
2991 (fur_relation::fur_relation): New.
2992 (fur_relation::trio): New.
2993 (fur_relation::register_relation): New.
2994 (fold_relations): New.
2995 * gimple-range-fold.h (fold_range): Adjust prototypes.
2996 (fold_relations): New.
2997
2998 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
2999
3000 * gimple-range-cache.cc (ssa_cache::range_of_expr): New.
3001 * gimple-range-cache.h (class ssa_cache): Inherit from range_query.
3002 (ranger_cache::const_query): New.
3003 * gimple-range.cc (gimple_ranger::const_query): New.
3004 * gimple-range.h (gimple_ranger::const_query): New prototype.
3005
3006 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
3007
3008 * gimple-range-cache.cc (ssa_cache::dump): Use get_range.
3009 (ssa_cache::dump_range_query): Delete.
3010 (ssa_lazy_cache::dump_range_query): Delete.
3011 (ssa_lazy_cache::get_range): Move from header file.
3012 (ssa_lazy_cache::clear_range): ditto.
3013 (ssa_lazy_cache::clear): Ditto.
3014 * gimple-range-cache.h (class ssa_cache): Virtualize.
3015 (class ssa_lazy_cache): Inherit and virtualize.
3016
3017 2023-05-24 Aldy Hernandez <aldyh@redhat.com>
3018
3019 * value-range.h (vrange::kind): Remove.
3020
3021 2023-05-24 Roger Sayle <roger@nextmovesoftware.com>
3022
3023 PR middle-end/109840
3024 * match.pd <popcount optimizations>: Preserve zero-extension when
3025 optimizing popcount((T)bswap(x)) and popcount((T)rotate(x,y)) as
3026 popcount((T)x), so the popcount's argument keeps the same type.
3027 <parity optimizations>: Likewise preserve extensions when
3028 simplifying parity((T)bswap(x)) and parity((T)rotate(x,y)) as
3029 parity((T)x), so that the parity's argument type is the same.
3030
3031 2023-05-24 Aldy Hernandez <aldyh@redhat.com>
3032
3033 * ipa-cp.cc (ipa_value_range_from_jfunc): Use new ipa_vr API.
3034 (ipcp_store_vr_results): Same.
3035 * ipa-prop.cc (ipa_vr::ipa_vr): New.
3036 (ipa_vr::get_vrange): New.
3037 (ipa_vr::set_unknown): New.
3038 (ipa_vr::streamer_read): New.
3039 (ipa_vr::streamer_write): New.
3040 (write_ipcp_transformation_info): Use new ipa_vr API.
3041 (read_ipcp_transformation_info): Same.
3042 (ipa_vr::nonzero_p): Delete.
3043 (ipcp_update_vr): Use new ipa_vr API.
3044 * ipa-prop.h (class ipa_vr): Provide an API and hide internals.
3045 * ipa-sra.cc (zap_useless_ipcp_results): Use new ipa_vr API.
3046
3047 2023-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3048
3049 * config/mcore/mcore.cc (output_inline_const) Make buffer smaller to
3050 silence overflow warnings later on.
3051
3052 2023-05-24 Uros Bizjak <ubizjak@gmail.com>
3053
3054 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
3055 Remove handling of V8QImode.
3056 * config/i386/mmx.md (v<insn>v8qi3): Move from sse.md.
3057 Call ix86_expand_vecop_qihi_partial. Enable for TARGET_MMX_WITH_SSE.
3058 (v<insn>v4qi3): Ditto.
3059 * config/i386/sse.md (v<insn>v8qi3): Remove.
3060
3061 2023-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3062
3063 PR target/99195
3064 * config/aarch64/aarch64-simd.md (aarch64_simd_lshr<mode>): Rename to...
3065 (aarch64_simd_lshr<mode><vczle><vczbe>): ... This.
3066 (aarch64_simd_ashr<mode>): Rename to...
3067 (aarch64_simd_ashr<mode><vczle><vczbe>): ... This.
3068 (aarch64_simd_imm_shl<mode>): Rename to...
3069 (aarch64_simd_imm_shl<mode><vczle><vczbe>): ... This.
3070 (aarch64_simd_reg_sshl<mode>): Rename to...
3071 (aarch64_simd_reg_sshl<mode><vczle><vczbe>): ... This.
3072 (aarch64_simd_reg_shl<mode>_unsigned): Rename to...
3073 (aarch64_simd_reg_shl<mode>_unsigned<vczle><vczbe>): ... This.
3074 (aarch64_simd_reg_shl<mode>_signed): Rename to...
3075 (aarch64_simd_reg_shl<mode>_signed<vczle><vczbe>): ... This.
3076 (vec_shr_<mode>): Rename to...
3077 (vec_shr_<mode><vczle><vczbe>): ... This.
3078 (aarch64_<sur>shl<mode>): Rename to...
3079 (aarch64_<sur>shl<mode><vczle><vczbe>): ... This.
3080 (aarch64_<sur>q<r>shl<mode>): Rename to...
3081 (aarch64_<sur>q<r>shl<mode><vczle><vczbe>): ... This.
3082
3083 2023-05-24 Richard Biener <rguenther@suse.de>
3084
3085 PR target/109944
3086 * config/i386/i386-expand.cc (ix86_expand_vector_init_general):
3087 Perform final vector composition using
3088 ix86_expand_vector_init_general instead of setting
3089 the highpart and lowpart which causes spilling.
3090
3091 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
3092
3093 PR tree-optimization/109695
3094 * gimple-range-cache.cc (ranger_cache::get_global_range): Add
3095 changed param.
3096 * gimple-range-cache.h (ranger_cache::get_global_range): Ditto.
3097 * gimple-range.cc (gimple_ranger::range_of_stmt): Pass changed
3098 flag to set_global_range.
3099 (gimple_ranger::prefill_stmt_dependencies): Ditto.
3100
3101 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
3102
3103 PR tree-optimization/109695
3104 * gimple-range-cache.cc (temporal_cache::temporal_value): Return
3105 a positive int.
3106 (temporal_cache::current_p): Check always_current method.
3107 (temporal_cache::set_always_current): Add param and set value
3108 appropriately.
3109 (temporal_cache::always_current_p): New.
3110 (ranger_cache::get_global_range): Adjust.
3111 (ranger_cache::set_global_range): set always current first.
3112
3113 2023-05-24 Andrew MacLeod <amacleod@redhat.com>
3114
3115 PR tree-optimization/109695
3116 * gimple-range-cache.cc (ranger_cache::get_global_range): Call
3117 fold_range with global query to choose an initial value.
3118
3119 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3120
3121 * config/riscv/riscv-protos.h (enum frm_field_enum): Add FRM_
3122 prefix.
3123
3124 2023-05-24 Richard Biener <rguenther@suse.de>
3125
3126 PR tree-optimization/109849
3127 * tree-ssa-pre.cc (do_hoist_insertion): Do not intersect
3128 expressions but take the first sets.
3129
3130 2023-05-24 Gaius Mulley <gaiusmod2@gmail.com>
3131
3132 PR modula2/109952
3133 * doc/gm2.texi (High procedure function): New node.
3134 (Using): New menu entry for High procedure function.
3135
3136 2023-05-24 Richard Sandiford <richard.sandiford@arm.com>
3137
3138 PR rtl-optimization/109940
3139 * early-remat.cc (postorder_index): Rename to...
3140 (rpo_index): ...this.
3141 (compare_candidates): Sort by decreasing rpo_index rather than
3142 increasing postorder_index.
3143 (early_remat::sort_candidates): Calculate the forward RPO from
3144 DF_FORWARD.
3145 (early_remat::local_phase): Follow forward RPO using DF_FORWARD,
3146 rather than DF_BACKWARD in reverse.
3147
3148 2023-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3149
3150 PR target/109939
3151 * config/arm/arm-builtins.cc (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS): Use
3152 qualifier_none for the return operand.
3153
3154 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3155
3156 * config/riscv/autovec.md (<optab><mode>3): New pattern.
3157 (one_cmpl<mode>2): Ditto.
3158 (*<optab>not<mode>): Ditto.
3159 (*n<optab><mode>): Ditto.
3160 * config/riscv/riscv-v.cc (expand_vec_cmp_float): Change to
3161 one_cmpl.
3162
3163 2023-05-24 Kewen Lin <linkw@linux.ibm.com>
3164
3165 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Adjust the
3166 calculation on n_perms by considering nvectors_per_build.
3167
3168 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3169 Richard Sandiford <richard.sandiford@arm.com>
3170
3171 * config/riscv/autovec.md (@vcond_mask_<mode><vm>): New pattern.
3172 (vec_cmp<mode><vm>): New pattern.
3173 (vec_cmpu<mode><vm>): New pattern.
3174 (vcond<V:mode><VI:mode>): New pattern.
3175 (vcondu<V:mode><VI:mode>): New pattern.
3176 * config/riscv/riscv-protos.h (enum insn_type): Add new enum.
3177 (emit_vlmax_merge_insn): New function.
3178 (emit_vlmax_cmp_insn): Ditto.
3179 (emit_vlmax_cmp_mu_insn): Ditto.
3180 (expand_vec_cmp): Ditto.
3181 (expand_vec_cmp_float): Ditto.
3182 (expand_vcond): Ditto.
3183 * config/riscv/riscv-v.cc (emit_vlmax_merge_insn): Ditto.
3184 (emit_vlmax_cmp_insn): Ditto.
3185 (emit_vlmax_cmp_mu_insn): Ditto.
3186 (get_cmp_insn_code): Ditto.
3187 (expand_vec_cmp): Ditto.
3188 (expand_vec_cmp_float): Ditto.
3189 (expand_vcond): Ditto.
3190
3191 2023-05-24 Pan Li <pan2.li@intel.com>
3192
3193 * config/riscv/genrvv-type-indexer.cc (main): Add
3194 unsigned_eew*_lmul1_interpret for indexer.
3195 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
3196 Register vuint*m1_t interpret function.
3197 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
3198 New macro for vuint8m1_t.
3199 (DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
3200 (DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
3201 (DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
3202 (vbool1_t): Add to unsigned_eew*_interpret_ops.
3203 (vbool2_t): Likewise.
3204 (vbool4_t): Likewise.
3205 (vbool8_t): Likewise.
3206 (vbool16_t): Likewise.
3207 (vbool32_t): Likewise.
3208 (vbool64_t): Likewise.
3209 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
3210 New macro for vuint*m1_t.
3211 (DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
3212 (DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
3213 (DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
3214 (required_extensions_p): Add vuint*m1_t interpret case.
3215 * config/riscv/riscv-vector-builtins.def (unsigned_eew8_lmul1_interpret):
3216 Add vuint*m1_t interpret to base type.
3217 (unsigned_eew16_lmul1_interpret): Likewise.
3218 (unsigned_eew32_lmul1_interpret): Likewise.
3219 (unsigned_eew64_lmul1_interpret): Likewise.
3220
3221 2023-05-24 Pan Li <pan2.li@intel.com>
3222
3223 * config/riscv/genrvv-type-indexer.cc (EEW_SIZE_LIST): New macro
3224 for the eew size list.
3225 (LMUL1_LOG2): New macro for the log2 value of lmul=1.
3226 (main): Add signed_eew*_lmul1_interpret for indexer.
3227 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
3228 Register vint*m1_t interpret function.
3229 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
3230 New macro for vint8m1_t.
3231 (DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
3232 (DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
3233 (DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
3234 (vbool1_t): Add to signed_eew*_interpret_ops.
3235 (vbool2_t): Likewise.
3236 (vbool4_t): Likewise.
3237 (vbool8_t): Likewise.
3238 (vbool16_t): Likewise.
3239 (vbool32_t): Likewise.
3240 (vbool64_t): Likewise.
3241 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
3242 New macro for vint*m1_t.
3243 (DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
3244 (DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
3245 (DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
3246 (required_extensions_p): Add vint8m1_t interpret case.
3247 * config/riscv/riscv-vector-builtins.def (signed_eew8_lmul1_interpret):
3248 Add vint*m1_t interpret to base type.
3249 (signed_eew16_lmul1_interpret): Likewise.
3250 (signed_eew32_lmul1_interpret): Likewise.
3251 (signed_eew64_lmul1_interpret): Likewise.
3252
3253 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3254
3255 * config/riscv/autovec.md: Adjust for new interface.
3256 * config/riscv/riscv-protos.h (emit_vlmax_insn): Add VL operand.
3257 (emit_nonvlmax_insn): Add AVL operand.
3258 * config/riscv/riscv-v.cc (emit_vlmax_insn): Add VL operand.
3259 (emit_nonvlmax_insn): Add AVL operand.
3260 (sew64_scalar_helper): Adjust for new interface.
3261 (expand_tuple_move): Ditto.
3262 * config/riscv/vector.md: Ditto.
3263
3264 2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3265
3266 * config/riscv/riscv-v.cc (expand_vec_series): Remove magic number.
3267 (expand_const_vector): Ditto.
3268 (legitimize_move): Ditto.
3269 (sew64_scalar_helper): Ditto.
3270 (expand_tuple_move): Ditto.
3271 (expand_vector_init_insert_elems): Ditto.
3272 * config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
3273
3274 2023-05-24 liuhongt <hongtao.liu@intel.com>
3275
3276 PR target/109900
3277 * config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
3278 _mm{,256,512}_abs_{epi8,epi16,epi32,epi64} and
3279 _mm_abs_{pi8,pi16,pi32} into gimple ABS_EXPR.
3280 (ix86_masked_all_ones): Handle 64-bit mask.
3281 * config/i386/i386-builtin.def: Replace icode of related
3282 non-mask simd abs builtins with CODE_FOR_nothing.
3283
3284 2023-05-23 Martin Uecker <uecker@tugraz.at>
3285
3286 PR c/109450
3287 * function.cc (gimplify_parm_type): Remove function.
3288 (gimplify_parameters): Call gimplify_type_sizes.
3289
3290 2023-05-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3291
3292 * config/xtensa/xtensa.md (*addsubx): Rename from '*addx',
3293 and change to also accept '*subx' pattern.
3294 (*subx): Remove.
3295
3296 2023-05-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3297
3298 * config/xtensa/predicates.md (addsub_operator): New.
3299 * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3,
3300 *extzvsi-1bit_addsubx): New insn_and_split patterns.
3301 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
3302 Add a special case about ifcvt 'noce_try_cmove()' to handle
3303 constant loads that do not fit into signed 12 bits in the
3304 patterns added above.
3305
3306 2023-05-23 Richard Biener <rguenther@suse.de>
3307
3308 PR tree-optimization/109747
3309 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Pass down
3310 the SLP node only once to the cost hook.
3311
3312 2023-05-23 Georg-Johann Lay <avr@gjlay.de>
3313
3314 * config/avr/avr.cc (avr_insn_cost): New static function.
3315 (TARGET_INSN_COST): Define to that function.
3316
3317 2023-05-23 Richard Biener <rguenther@suse.de>
3318
3319 PR target/109944
3320 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
3321 For vector construction or splats apply GPR->XMM move
3322 costing. QImode memory can be handled directly only
3323 with SSE4.1 pinsrb.
3324
3325 2023-05-23 Richard Biener <rguenther@suse.de>
3326
3327 PR tree-optimization/108752
3328 * tree-vect-stmts.cc (vectorizable_operation): For bit
3329 operations with generic word_mode vectors do not cost
3330 an extra stmt. For plus, minus and negate also cost the
3331 constant materialization.
3332
3333 2023-05-23 Uros Bizjak <ubizjak@gmail.com>
3334
3335 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
3336 Call ix86_expand_vec_shift_qihi_constant for shifts
3337 with constant count operand.
3338 * config/i386/i386.cc (ix86_shift_rotate_cost):
3339 Handle V4QImode and V8QImode.
3340 * config/i386/mmx.md (<insn>v8qi3): New insn pattern.
3341 (<insn>v4qi3): Ditto.
3342
3343 2023-05-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3344
3345 * config/riscv/vector.md: Add mode.
3346
3347 2023-05-23 Aldy Hernandez <aldyh@redhat.com>
3348
3349 PR tree-optimization/109934
3350 * value-range.cc (irange::invert): Remove buggy special case.
3351
3352 2023-05-23 Richard Biener <rguenther@suse.de>
3353
3354 * tree-ssa-pre.cc (compute_antic_aux): Dump the correct
3355 ANTIC_OUT.
3356
3357 2023-05-23 Richard Sandiford <richard.sandiford@arm.com>
3358
3359 PR target/109632
3360 * config/aarch64/aarch64.cc (aarch64_modes_tieable_p): Allow
3361 subregs between any scalars that are 64 bits or smaller.
3362 * config/aarch64/iterators.md (SUBDI_BITS): New int iterator.
3363 (bits_etype): New int attribute.
3364 * config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
3365 (*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>): New patterns.
3366 (*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Likewise.
3367
3368 2023-05-23 Richard Sandiford <richard.sandiford@arm.com>
3369
3370 * doc/md.texi: Document that <FOO> can be used to refer to the
3371 numerical value of an int iterator FOO. Tweak other parts of
3372 the int iterator documentation.
3373 * read-rtl.cc (iterator_group::has_self_attr): New field.
3374 (map_attr_string): When has_self_attr is true, make <FOO>
3375 expand to the current value of iterator FOO.
3376 (initialize_iterators): Set has_self_attr for int iterators.
3377
3378 2023-05-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3379
3380 * config/riscv/autovec.md: Refactor the framework of RVV auto-vectorization.
3381 * config/riscv/riscv-protos.h (RVV_MISC_OP_NUM): Ditto.
3382 (RVV_UNOP_NUM): New macro.
3383 (RVV_BINOP_NUM): Ditto.
3384 (legitimize_move): Refactor the framework of RVV auto-vectorization.
3385 (emit_vlmax_op): Ditto.
3386 (emit_vlmax_reg_op): Ditto.
3387 (emit_len_op): Ditto.
3388 (emit_len_binop): Ditto.
3389 (emit_vlmax_tany_many): Ditto.
3390 (emit_nonvlmax_tany_many): Ditto.
3391 (sew64_scalar_helper): Ditto.
3392 (expand_tuple_move): Ditto.
3393 * config/riscv/riscv-v.cc (emit_pred_op): Ditto.
3394 (emit_pred_binop): Ditto.
3395 (emit_vlmax_op): Ditto.
3396 (emit_vlmax_tany_many): New function.
3397 (emit_len_op): Remove.
3398 (emit_nonvlmax_tany_many): New function.
3399 (emit_vlmax_reg_op): Remove.
3400 (emit_len_binop): Ditto.
3401 (emit_index_op): Ditto.
3402 (expand_vec_series): Refactor the framework of RVV auto-vectorization.
3403 (expand_const_vector): Ditto.
3404 (legitimize_move): Ditto.
3405 (sew64_scalar_helper): Ditto.
3406 (expand_tuple_move): Ditto.
3407 (expand_vector_init_insert_elems): Ditto.
3408 * config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
3409 * config/riscv/vector.md: Ditto.
3410
3411 2023-05-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3412
3413 PR target/109855
3414 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Add predicate
3415 and constraint for operand 0.
3416 (add_vec_concat_subst_be): Likewise.
3417
3418 2023-05-23 Richard Biener <rguenther@suse.de>
3419
3420 PR tree-optimization/109849
3421 * tree-ssa-pre.cc (do_hoist_insertion): Compute ANTIC_OUT
3422 and use that to determine what to hoist.
3423
3424 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3425
3426 * fold-const.cc (native_encode_initializer) <CONSTRUCTOR>: Apply the
3427 specific treatment for bit-fields only if they have an integral type
3428 and filter out non-integral bit-fields that do not start and end on
3429 a byte boundary.
3430
3431 2023-05-23 Aldy Hernandez <aldyh@redhat.com>
3432
3433 PR tree-optimization/109920
3434 * value-range.h (RESIZABLE>::~int_range): Use delete[].
3435
3436 2023-05-22 Uros Bizjak <ubizjak@gmail.com>
3437
3438 * config/i386/i386.cc (ix86_shift_rotate_cost): Correct
3439 calcuation of integer vector mode costs to reflect generated
3440 instruction sequences of different integer vector modes and
3441 different target ABIs. Remove "speed" function argument.
3442 (ix86_rtx_costs): Update call for removed function argument.
3443 (ix86_vector_costs::add_stmt_cost): Ditto.
3444
3445 2023-05-22 Aldy Hernandez <aldyh@redhat.com>
3446
3447 * value-range.h (class Value_Range): Implement set_zero,
3448 set_nonzero, and nonzero_p.
3449
3450 2023-05-22 Uros Bizjak <ubizjak@gmail.com>
3451
3452 * config/i386/i386.cc (ix86_multiplication_cost): Add
3453 the cost of a memory read to the cost of V?QImode sequences.
3454
3455 2023-05-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3456
3457 * config/riscv/riscv-v.cc: Add "m_" prefix.
3458
3459 2023-05-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3460
3461 * tree-vect-loop.cc (vect_get_loop_len): Fix issue for
3462 multiple-rgroup of length.
3463 * tree-vect-stmts.cc (vectorizable_store): Ditto.
3464 (vectorizable_load): Ditto.
3465 * tree-vectorizer.h (vect_get_loop_len): Ditto.
3466
3467 2023-05-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3468
3469 * config/riscv/riscv.cc (riscv_const_insns): Reorganize the
3470 codes.
3471
3472 2023-05-22 Kewen Lin <linkw@linux.ibm.com>
3473
3474 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Refactor the
3475 handling for the case index == count.
3476
3477 2023-05-21 Georg-Johann Lay <avr@gjlay.de>
3478
3479 PR target/90622
3480 * config/avr/avr.cc (avr_fold_builtin) [AVR_BUILTIN_INSERT_BITS]:
3481 Don't fold to XOR / AND / XOR if just one bit is copied to the
3482 same position.
3483
3484 2023-05-21 Roger Sayle <roger@nextmovesoftware.com>
3485
3486 * config/nvptx/nvptx.cc (nvptx_expand_brev): Expand target
3487 builtin for bit reversal using brev instruction.
3488 (enum nvptx_builtins): Add NVPTX_BUILTIN_BREV and
3489 NVPTX_BUILTIN_BREVLL.
3490 (nvptx_init_builtins): Define "brev" and "brevll".
3491 (nvptx_expand_builtin): Expand NVPTX_BUILTIN_BREV and
3492 NVPTX_BUILTIN_BREVLL via nvptx_expand_brev function.
3493 * doc/extend.texi (Nvidia PTX Builtin-in Functions): New
3494 section, document __builtin_nvptx_brev{,ll}.
3495
3496 2023-05-21 Jakub Jelinek <jakub@redhat.com>
3497
3498 PR tree-optimization/109505
3499 * match.pd ((x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2),
3500 Combine successive equal operations with constants,
3501 (A +- CST1) +- CST2 -> A + CST3, (CST1 - A) +- CST2 -> CST3 - A,
3502 CST1 - (CST2 - A) -> CST3 + A): Use ! on ops with 2 CONSTANT_CLASS_P
3503 operands.
3504
3505 2023-05-21 Andrew Pinski <apinski@marvell.com>
3506
3507 * expr.cc (expand_single_bit_test): Correct bitpos for big-endian.
3508
3509 2023-05-21 Pan Li <pan2.li@intel.com>
3510
3511 * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): Add the
3512 rest bool size, aka 2, 4, 8, 16, 32, 64.
3513 * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
3514 Register vbool[2|4|8|16|32|64] interpret function.
3515 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_BOOL2_INTERPRET_OPS):
3516 New macro for vbool2_t.
3517 (DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
3518 (DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
3519 (DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
3520 (DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
3521 (DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
3522 (vint8m1_t): Add the type to bool[2|4|8|16|32|64]_interpret_ops.
3523 (vint16m1_t): Likewise.
3524 (vint32m1_t): Likewise.
3525 (vint64m1_t): Likewise.
3526 (vuint8m1_t): Likewise.
3527 (vuint16m1_t): Likewise.
3528 (vuint32m1_t): Likewise.
3529 (vuint64m1_t): Likewise.
3530 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_BOOL2_INTERPRET_OPS):
3531 New macro for vbool2_t.
3532 (DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
3533 (DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
3534 (DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
3535 (DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
3536 (DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
3537 (required_extensions_p): Add vbool[2|4|8|16|32|64] interpret case.
3538 * config/riscv/riscv-vector-builtins.def (bool2_interpret): Add
3539 vbool2_t interprect to base type.
3540 (bool4_interpret): Likewise.
3541 (bool8_interpret): Likewise.
3542 (bool16_interpret): Likewise.
3543 (bool32_interpret): Likewise.
3544 (bool64_interpret): Likewise.
3545
3546 2023-05-21 Andrew Pinski <apinski@marvell.com>
3547
3548 PR middle-end/109919
3549 * expr.cc (expand_single_bit_test): Don't use the
3550 target for expand_expr.
3551
3552 2023-05-20 Gerald Pfeifer <gerald@pfeifer.com>
3553
3554 * doc/install.texi (Specific): Remove de facto empty alpha*-*-*
3555 section.
3556
3557 2023-05-20 Pan Li <pan2.li@intel.com>
3558
3559 * mode-switching.cc (entity_map): Initialize the array to zero.
3560 (bb_info): Ditto.
3561
3562 2023-05-20 Triffid Hunter <triffid.hunter@gmail.com>
3563
3564 PR target/105753
3565 * config/avr/avr.md (divmodpsi, udivmodpsi, divmodsi, udivmodsi):
3566 Remove superfluous "parallel" in insn pattern.
3567 ([u]divmod<mode>4): Tidy code. Use gcc_unreachable() instead of
3568 printing error text to assembly.
3569
3570 2023-05-20 Andrew Pinski <apinski@marvell.com>
3571
3572 * expr.cc (fold_single_bit_test): Rename to ...
3573 (expand_single_bit_test): This and expand directly.
3574 (do_store_flag): Update for the rename function.
3575
3576 2023-05-20 Andrew Pinski <apinski@marvell.com>
3577
3578 * expr.cc (fold_single_bit_test): Use BIT_FIELD_REF
3579 instead of shift/and.
3580
3581 2023-05-20 Andrew Pinski <apinski@marvell.com>
3582
3583 * expr.cc (fold_single_bit_test): Add an assert
3584 and simplify based on code being NE_EXPR or EQ_EXPR.
3585
3586 2023-05-20 Andrew Pinski <apinski@marvell.com>
3587
3588 * expr.cc (fold_single_bit_test): Take inner and bitnum
3589 instead of arg0 and arg1. Update the code.
3590 (do_store_flag): Don't create a tree when calling
3591 fold_single_bit_test instead just call it with the bitnum
3592 and the inner tree.
3593
3594 2023-05-20 Andrew Pinski <apinski@marvell.com>
3595
3596 * expr.cc (fold_single_bit_test): Use get_def_for_expr
3597 instead of checking the inner's code.
3598
3599 2023-05-20 Andrew Pinski <apinski@marvell.com>
3600
3601 * expr.cc (fold_single_bit_test_into_sign_test): Inline into ...
3602 (fold_single_bit_test): This and simplify.
3603
3604 2023-05-20 Andrew Pinski <apinski@marvell.com>
3605
3606 * fold-const.cc (fold_single_bit_test_into_sign_test): Move to
3607 expr.cc.
3608 (fold_single_bit_test): Likewise.
3609 * expr.cc (fold_single_bit_test_into_sign_test): Move from fold-const.cc
3610 (fold_single_bit_test): Likewise and make static.
3611 * fold-const.h (fold_single_bit_test): Remove declaration.
3612
3613 2023-05-20 Die Li <lidie@eswincomputing.com>
3614
3615 * config/riscv/riscv.cc (riscv_expand_conditional_move): Fix mode
3616 checking.
3617
3618 2023-05-20 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
3619
3620 * config/riscv/bitmanip.md (branch<X:mode>_bext): New split pattern.
3621
3622 2023-05-20 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
3623
3624 PR target/106888
3625 * config/riscv/bitmanip.md
3626 (<bitmanip_optab>disi2): Match with any_extend.
3627 (<bitmanip_optab>disi2_sext): New pattern to match
3628 with sign extend using an ANDI instruction.
3629
3630 2023-05-19 Nathan Sidwell <nathan@acm.org>
3631
3632 PR other/99451
3633 * opts.h (handle_deferred_dump_options): Declare.
3634 * opts-global.cc (handle_common_deferred_options): Do not handle
3635 dump options here.
3636 (handle_deferred_dump_options): New.
3637 * toplev.cc (toplev::main): Call it after plugin init.
3638
3639 2023-05-19 Joern Rennecke <joern.rennecke@embecosm.com>
3640
3641 * config/riscv/constraints.md (DsS, DsD): Restore agreement
3642 with shiftm1 mode attribute.
3643
3644 2023-05-19 Andrew Pinski <apinski@marvell.com>
3645
3646 PR driver/33980
3647 * gcc.cc (default_compilers["@c-header"]): Add %w
3648 after the --output-pch.
3649
3650 2023-05-19 Vineet Gupta <vineetg@rivosinc.com>
3651
3652 * config/riscv/riscv.cc (riscv_split_integer): if loval is equal
3653 to hival, ASHIFT the corresponding regs.
3654
3655 2023-05-19 Robin Dapp <rdapp@ventanamicro.com>
3656
3657 * config/riscv/riscv.cc (riscv_const_insns): Remove else.
3658
3659 2023-05-19 Jakub Jelinek <jakub@redhat.com>
3660
3661 PR tree-optimization/105776
3662 * tree-ssa-math-opts.cc (arith_overflow_check_p): If cast_stmt is
3663 non-NULL, allow division statement to have a cast as single imm use
3664 rather than comparison/condition.
3665 (match_arith_overflow): In that case remove the cast stmt in addition
3666 to the division statement.
3667
3668 2023-05-19 Jakub Jelinek <jakub@redhat.com>
3669
3670 PR tree-optimization/101856
3671 * tree-ssa-math-opts.cc (match_arith_overflow): Pattern detect
3672 unsigned __builtin_mul_overflow_p even when umulv4_optab doesn't
3673 support it but umul_highpart_optab does.
3674
3675 2023-05-19 Eric Botcazou <ebotcazou@adacore.com>
3676
3677 * varasm.cc (output_constructor_bitfield): Call tree_to_uhwi instead
3678 of tree_to_shwi on array indices. Minor tweaks.
3679
3680 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3681
3682 * alias.cc (ref_all_alias_ptr_type_p): Use _P() defines from tree.h.
3683 * attribs.cc (diag_attr_exclusions): Ditto.
3684 (decl_attributes): Ditto.
3685 (build_type_attribute_qual_variant): Ditto.
3686 * builtins.cc (fold_builtin_carg): Ditto.
3687 (fold_builtin_next_arg): Ditto.
3688 (do_mpc_arg2): Ditto.
3689 * cfgexpand.cc (expand_return): Ditto.
3690 * cgraph.h (decl_in_symtab_p): Ditto.
3691 (symtab_node::get_create): Ditto.
3692 * dwarf2out.cc (base_type_die): Ditto.
3693 (implicit_ptr_descriptor): Ditto.
3694 (gen_array_type_die): Ditto.
3695 (gen_type_die_with_usage): Ditto.
3696 (optimize_location_into_implicit_ptr): Ditto.
3697 * expr.cc (do_store_flag): Ditto.
3698 * fold-const.cc (negate_expr_p): Ditto.
3699 (fold_negate_expr_1): Ditto.
3700 (fold_convert_const): Ditto.
3701 (fold_convert_loc): Ditto.
3702 (constant_boolean_node): Ditto.
3703 (fold_binary_op_with_conditional_arg): Ditto.
3704 (build_fold_addr_expr_with_type_loc): Ditto.
3705 (fold_comparison): Ditto.
3706 (fold_checksum_tree): Ditto.
3707 (tree_unary_nonnegative_warnv_p): Ditto.
3708 (integer_valued_real_unary_p): Ditto.
3709 (fold_read_from_constant_string): Ditto.
3710 * gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text): Ditto.
3711 * gimple-expr.cc (useless_type_conversion_p): Ditto.
3712 (is_gimple_reg): Ditto.
3713 (is_gimple_asm_val): Ditto.
3714 (mark_addressable): Ditto.
3715 * gimple-expr.h (is_gimple_variable): Ditto.
3716 (virtual_operand_p): Ditto.
3717 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores): Ditto.
3718 * gimplify.cc (gimplify_bind_expr): Ditto.
3719 (gimplify_return_expr): Ditto.
3720 (gimple_add_padding_init_for_auto_var): Ditto.
3721 (gimplify_addr_expr): Ditto.
3722 (omp_add_variable): Ditto.
3723 (omp_notice_variable): Ditto.
3724 (omp_get_base_pointer): Ditto.
3725 (omp_strip_components_and_deref): Ditto.
3726 (omp_strip_indirections): Ditto.
3727 (omp_accumulate_sibling_list): Ditto.
3728 (omp_build_struct_sibling_lists): Ditto.
3729 (gimplify_adjust_omp_clauses_1): Ditto.
3730 (gimplify_adjust_omp_clauses): Ditto.
3731 (gimplify_omp_for): Ditto.
3732 (goa_lhs_expr_p): Ditto.
3733 (gimplify_one_sizepos): Ditto.
3734 * graphite-scop-detection.cc (scop_detection::graphite_can_represent_scev): Ditto.
3735 * ipa-devirt.cc (odr_types_equivalent_p): Ditto.
3736 * ipa-prop.cc (ipa_set_jf_constant): Ditto.
3737 (propagate_controlled_uses): Ditto.
3738 * ipa-sra.cc (type_prevails_p): Ditto.
3739 (scan_expr_access): Ditto.
3740 * optabs-tree.cc (optab_for_tree_code): Ditto.
3741 * toplev.cc (wrapup_global_declaration_1): Ditto.
3742 * trans-mem.cc (transaction_invariant_address_p): Ditto.
3743 * tree-cfg.cc (verify_types_in_gimple_reference): Ditto.
3744 (verify_gimple_comparison): Ditto.
3745 (verify_gimple_assign_binary): Ditto.
3746 (verify_gimple_assign_single): Ditto.
3747 * tree-complex.cc (get_component_ssa_name): Ditto.
3748 * tree-emutls.cc (lower_emutls_2): Ditto.
3749 * tree-inline.cc (copy_tree_body_r): Ditto.
3750 (estimate_move_cost): Ditto.
3751 (copy_decl_for_dup_finish): Ditto.
3752 * tree-nested.cc (convert_nonlocal_omp_clauses): Ditto.
3753 (note_nonlocal_vla_type): Ditto.
3754 (convert_local_omp_clauses): Ditto.
3755 (remap_vla_decls): Ditto.
3756 (fixup_vla_decls): Ditto.
3757 * tree-parloops.cc (loop_has_vector_phi_nodes): Ditto.
3758 * tree-pretty-print.cc (print_declaration): Ditto.
3759 (print_call_name): Ditto.
3760 * tree-sra.cc (compare_access_positions): Ditto.
3761 * tree-ssa-alias.cc (compare_type_sizes): Ditto.
3762 * tree-ssa-ccp.cc (get_default_value): Ditto.
3763 * tree-ssa-coalesce.cc (populate_coalesce_list_for_outofssa): Ditto.
3764 * tree-ssa-dom.cc (reduce_vector_comparison_to_scalar_comparison): Ditto.
3765 * tree-ssa-forwprop.cc (can_propagate_from): Ditto.
3766 * tree-ssa-propagate.cc (may_propagate_copy): Ditto.
3767 * tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Ditto.
3768 * tree-ssa-sink.cc (statement_sink_location): Ditto.
3769 * tree-ssa-structalias.cc (type_must_have_pointers): Ditto.
3770 * tree-ssa-ter.cc (find_replaceable_in_bb): Ditto.
3771 * tree-ssa-uninit.cc (warn_uninit): Ditto.
3772 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Ditto.
3773 (non_rewritable_mem_ref_base): Ditto.
3774 * tree-streamer-in.cc (lto_input_ts_type_non_common_tree_pointers): Ditto.
3775 * tree-streamer-out.cc (write_ts_type_non_common_tree_pointers): Ditto.
3776 * tree-vect-generic.cc (do_binop): Ditto.
3777 (do_cond): Ditto.
3778 * tree-vect-stmts.cc (vect_init_vector): Ditto.
3779 * tree-vector-builder.h (tree_vector_builder::note_representative): Ditto.
3780 * tree.cc (sign_mask_for): Ditto.
3781 (verify_type_variant): Ditto.
3782 (gimple_canonical_types_compatible_p): Ditto.
3783 (verify_type): Ditto.
3784 * ubsan.cc (get_ubsan_type_info_for_type): Ditto.
3785 * var-tracking.cc (prepare_call_arguments): Ditto.
3786 (vt_add_function_parameters): Ditto.
3787 * varasm.cc (decode_addr_const): Ditto.
3788
3789 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3790
3791 * omp-low.cc (scan_sharing_clauses): Use _P() defines from tree.h.
3792 (lower_reduction_clauses): Ditto.
3793 (lower_send_clauses): Ditto.
3794 (lower_omp_task_reductions): Ditto.
3795 * omp-oacc-neuter-broadcast.cc (install_var_field): Ditto.
3796 (worker_single_copy): Ditto.
3797 * omp-offload.cc (oacc_rewrite_var_decl): Ditto.
3798 * omp-simd-clone.cc (plausible_type_for_simd_clone): Ditto.
3799
3800 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3801
3802 * lto-streamer-in.cc (lto_input_var_decl_ref): Use _P defines from
3803 tree.h.
3804 (lto_read_body_or_constructor): Ditto.
3805 * lto-streamer-out.cc (tree_is_indexable): Ditto.
3806 (lto_output_var_decl_ref): Ditto.
3807 (DFS::DFS_write_tree_body): Ditto.
3808 (wrap_refs): Ditto.
3809 (write_symbol_extension_info): Ditto.
3810
3811 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3812
3813 * config/aarch64/aarch64.cc (aarch64_short_vector_p): Use _P
3814 defines from tree.h.
3815 (aarch64_mangle_type): Ditto.
3816 * config/alpha/alpha.cc (alpha_in_small_data_p): Ditto.
3817 (alpha_gimplify_va_arg_1): Ditto.
3818 * config/arc/arc.cc (arc_encode_section_info): Ditto.
3819 (arc_is_aux_reg_p): Ditto.
3820 (arc_is_uncached_mem_p): Ditto.
3821 (arc_handle_aux_attribute): Ditto.
3822 * config/arm/arm.cc (arm_handle_isr_attribute): Ditto.
3823 (arm_handle_cmse_nonsecure_call): Ditto.
3824 (arm_set_default_type_attributes): Ditto.
3825 (arm_is_segment_info_known): Ditto.
3826 (arm_mangle_type): Ditto.
3827 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Ditto.
3828 * config/avr/avr.cc (avr_lookup_function_attribute1): Ditto.
3829 (avr_decl_absdata_p): Ditto.
3830 (avr_insert_attributes): Ditto.
3831 (avr_section_type_flags): Ditto.
3832 (avr_encode_section_info): Ditto.
3833 * config/bfin/bfin.cc (bfin_handle_l2_attribute): Ditto.
3834 * config/bpf/bpf.cc (bpf_core_compute): Ditto.
3835 * config/c6x/c6x.cc (c6x_in_small_data_p): Ditto.
3836 * config/csky/csky.cc (csky_handle_isr_attribute): Ditto.
3837 (csky_mangle_type): Ditto.
3838 * config/darwin-c.cc (darwin_pragma_unused): Ditto.
3839 * config/darwin.cc (is_objc_metadata): Ditto.
3840 * config/epiphany/epiphany.cc (epiphany_function_ok_for_sibcall): Ditto.
3841 * config/epiphany/epiphany.h (ROUND_TYPE_ALIGN): Ditto.
3842 * config/frv/frv.cc (frv_emit_movsi): Ditto.
3843 * config/gcn/gcn-tree.cc (gcn_lockless_update): Ditto.
3844 * config/gcn/gcn.cc (gcn_asm_output_symbol_ref): Ditto.
3845 * config/h8300/h8300.cc (h8300_encode_section_info): Ditto.
3846 * config/i386/i386-expand.cc: Ditto.
3847 * config/i386/i386.cc (type_natural_mode): Ditto.
3848 (ix86_function_arg): Ditto.
3849 (ix86_data_alignment): Ditto.
3850 (ix86_local_alignment): Ditto.
3851 (ix86_simd_clone_compute_vecsize_and_simdlen): Ditto.
3852 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Ditto.
3853 (i386_pe_type_dllexport_p): Ditto.
3854 (i386_pe_adjust_class_at_definition): Ditto.
3855 * config/i386/winnt.cc (i386_pe_determine_dllimport_p): Ditto.
3856 (i386_pe_binds_local_p): Ditto.
3857 (i386_pe_section_type_flags): Ditto.
3858 * config/ia64/ia64.cc (ia64_encode_section_info): Ditto.
3859 (ia64_gimplify_va_arg): Ditto.
3860 (ia64_in_small_data_p): Ditto.
3861 * config/iq2000/iq2000.cc (iq2000_function_arg): Ditto.
3862 * config/lm32/lm32.cc (lm32_in_small_data_p): Ditto.
3863 * config/loongarch/loongarch.cc (loongarch_handle_model_attribute): Ditto.
3864 * config/m32c/m32c.cc (m32c_insert_attributes): Ditto.
3865 * config/mcore/mcore.cc (mcore_mark_dllimport): Ditto.
3866 (mcore_encode_section_info): Ditto.
3867 * config/microblaze/microblaze.cc (microblaze_elf_in_small_data_p): Ditto.
3868 * config/mips/mips.cc (mips_output_aligned_decl_common): Ditto.
3869 * config/mmix/mmix.cc (mmix_encode_section_info): Ditto.
3870 * config/nvptx/nvptx.cc (nvptx_encode_section_info): Ditto.
3871 (pass_in_memory): Ditto.
3872 (nvptx_generate_vector_shuffle): Ditto.
3873 (nvptx_lockless_update): Ditto.
3874 * config/pa/pa.cc (pa_function_arg_padding): Ditto.
3875 (pa_function_value): Ditto.
3876 (pa_function_arg): Ditto.
3877 * config/pa/pa.h (IN_NAMED_SECTION_P): Ditto.
3878 (TEXT_SPACE_P): Ditto.
3879 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Ditto.
3880 * config/pdp11/pdp11.cc (pdp11_return_in_memory): Ditto.
3881 * config/riscv/riscv.cc (riscv_in_small_data_p): Ditto.
3882 (riscv_mangle_type): Ditto.
3883 * config/rl78/rl78.cc (rl78_insert_attributes): Ditto.
3884 (rl78_addsi3_internal): Ditto.
3885 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Ditto.
3886 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Ditto.
3887 * config/rs6000/freebsd64.h (ROUND_TYPE_ALIGN): Ditto.
3888 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Ditto.
3889 * config/rs6000/rs6000-call.cc (rs6000_function_arg_boundary): Ditto.
3890 (rs6000_function_arg_advance_1): Ditto.
3891 (rs6000_function_arg): Ditto.
3892 (rs6000_pass_by_reference): Ditto.
3893 * config/rs6000/rs6000-logue.cc (rs6000_function_ok_for_sibcall): Ditto.
3894 * config/rs6000/rs6000.cc (rs6000_data_alignment): Ditto.
3895 (rs6000_set_default_type_attributes): Ditto.
3896 (rs6000_elf_in_small_data_p): Ditto.
3897 (IN_NAMED_SECTION): Ditto.
3898 (rs6000_xcoff_encode_section_info): Ditto.
3899 (rs6000_function_value): Ditto.
3900 (invalid_arg_for_unprototyped_fn): Ditto.
3901 * config/s390/s390-c.cc (s390_fn_types_compatible): Ditto.
3902 (s390_vec_n_elem): Ditto.
3903 * config/s390/s390.cc (s390_check_type_for_vector_abi): Ditto.
3904 (s390_function_arg_integer): Ditto.
3905 (s390_return_in_memory): Ditto.
3906 (s390_encode_section_info): Ditto.
3907 * config/sh/sh.cc (sh_gimplify_va_arg_expr): Ditto.
3908 (sh_function_value): Ditto.
3909 * config/sol2.cc (solaris_insert_attributes): Ditto.
3910 * config/sparc/sparc.cc (function_arg_slotno): Ditto.
3911 * config/sparc/sparc.h (ROUND_TYPE_ALIGN): Ditto.
3912 * config/stormy16/stormy16.cc (xstormy16_encode_section_info): Ditto.
3913 (xstormy16_handle_below100_attribute): Ditto.
3914 * config/v850/v850.cc (v850_encode_section_info): Ditto.
3915 (v850_insert_attributes): Ditto.
3916 * config/visium/visium.cc (visium_pass_by_reference): Ditto.
3917 (visium_return_in_memory): Ditto.
3918 * config/xtensa/xtensa.cc (xtensa_multibss_section_type_flags): Ditto.
3919
3920 2023-05-18 Uros Bizjak <ubizjak@gmail.com>
3921
3922 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): New.
3923 (ix86_expand_vecop_qihi): Add op2vec bool variable.
3924 Do not set REG_EQUAL note.
3925 * config/i386/i386-protos.h (ix86_expand_vecop_qihi_partial):
3926 Add prototype.
3927 * config/i386/i386.cc (ix86_multiplication_cost): Handle
3928 V4QImode and V8QImode.
3929 * config/i386/mmx.md (mulv8qi3): New expander.
3930 (mulv4qi3): Ditto.
3931 * config/i386/sse.md (mulv8qi3): Remove.
3932
3933 2023-05-18 Georg-Johann Lay <avr@gjlay.de>
3934
3935 * config/avr/gen-avr-mmcu-specs.cc: Remove stale */ after // comment.
3936
3937 2023-05-18 Jonathan Wakely <jwakely@redhat.com>
3938
3939 PR bootstrap/105831
3940 * config.gcc: Use = operator instead of ==.
3941
3942 2023-05-18 Michael Bäuerle <micha@NetBSD.org>
3943
3944 PR bootstrap/105831
3945 * config/nvptx/gen-opt.sh: Use = operator instead of ==.
3946 * configure.ac: Likewise.
3947 * configure: Regenerate.
3948
3949 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
3950
3951 * config/arm/arm_mve.h: (__ARM_mve_typeid): Add more pointer types.
3952 (__ARM_mve_coerce1): Remove.
3953 (__ARM_mve_coerce2): Remove.
3954 (__ARM_mve_coerce3): Remove.
3955 (__ARM_mve_coerce_i_scalar): New.
3956 (__ARM_mve_coerce_s8_ptr): New.
3957 (__ARM_mve_coerce_u8_ptr): New.
3958 (__ARM_mve_coerce_s16_ptr): New.
3959 (__ARM_mve_coerce_u16_ptr): New.
3960 (__ARM_mve_coerce_s32_ptr): New.
3961 (__ARM_mve_coerce_u32_ptr): New.
3962 (__ARM_mve_coerce_s64_ptr): New.
3963 (__ARM_mve_coerce_u64_ptr): New.
3964 (__ARM_mve_coerce_f_scalar): New.
3965 (__ARM_mve_coerce_f16_ptr): New.
3966 (__ARM_mve_coerce_f32_ptr): New.
3967 (__arm_vst4q): Change _coerce_ overloads.
3968 (__arm_vbicq): Change _coerce_ overloads.
3969 (__arm_vld1q): Change _coerce_ overloads.
3970 (__arm_vld1q_z): Change _coerce_ overloads.
3971 (__arm_vld2q): Change _coerce_ overloads.
3972 (__arm_vld4q): Change _coerce_ overloads.
3973 (__arm_vldrhq_gather_offset): Change _coerce_ overloads.
3974 (__arm_vldrhq_gather_offset_z): Change _coerce_ overloads.
3975 (__arm_vldrhq_gather_shifted_offset): Change _coerce_ overloads.
3976 (__arm_vldrhq_gather_shifted_offset_z): Change _coerce_ overloads.
3977 (__arm_vldrwq_gather_offset): Change _coerce_ overloads.
3978 (__arm_vldrwq_gather_offset_z): Change _coerce_ overloads.
3979 (__arm_vldrwq_gather_shifted_offset): Change _coerce_ overloads.
3980 (__arm_vldrwq_gather_shifted_offset_z): Change _coerce_ overloads.
3981 (__arm_vst1q_p): Change _coerce_ overloads.
3982 (__arm_vst2q): Change _coerce_ overloads.
3983 (__arm_vst1q): Change _coerce_ overloads.
3984 (__arm_vstrhq): Change _coerce_ overloads.
3985 (__arm_vstrhq_p): Change _coerce_ overloads.
3986 (__arm_vstrhq_scatter_offset_p): Change _coerce_ overloads.
3987 (__arm_vstrhq_scatter_offset): Change _coerce_ overloads.
3988 (__arm_vstrhq_scatter_shifted_offset_p): Change _coerce_ overloads.
3989 (__arm_vstrhq_scatter_shifted_offset): Change _coerce_ overloads.
3990 (__arm_vstrwq_p): Change _coerce_ overloads.
3991 (__arm_vstrwq): Change _coerce_ overloads.
3992 (__arm_vstrwq_scatter_offset): Change _coerce_ overloads.
3993 (__arm_vstrwq_scatter_offset_p): Change _coerce_ overloads.
3994 (__arm_vstrwq_scatter_shifted_offset): Change _coerce_ overloads.
3995 (__arm_vstrwq_scatter_shifted_offset_p): Change _coerce_ overloads.
3996 (__arm_vsetq_lane): Change _coerce_ overloads.
3997 (__arm_vldrbq_gather_offset): Change _coerce_ overloads.
3998 (__arm_vdwdupq_x_u8): Change _coerce_ overloads.
3999 (__arm_vdwdupq_x_u16): Change _coerce_ overloads.
4000 (__arm_vdwdupq_x_u32): Change _coerce_ overloads.
4001 (__arm_viwdupq_x_u8): Change _coerce_ overloads.
4002 (__arm_viwdupq_x_u16): Change _coerce_ overloads.
4003 (__arm_viwdupq_x_u32): Change _coerce_ overloads.
4004 (__arm_vidupq_x_u8): Change _coerce_ overloads.
4005 (__arm_vddupq_x_u8): Change _coerce_ overloads.
4006 (__arm_vidupq_x_u16): Change _coerce_ overloads.
4007 (__arm_vddupq_x_u16): Change _coerce_ overloads.
4008 (__arm_vidupq_x_u32): Change _coerce_ overloads.
4009 (__arm_vddupq_x_u32): Change _coerce_ overloads.
4010 (__arm_vldrdq_gather_offset): Change _coerce_ overloads.
4011 (__arm_vldrdq_gather_offset_z): Change _coerce_ overloads.
4012 (__arm_vldrdq_gather_shifted_offset): Change _coerce_ overloads.
4013 (__arm_vldrdq_gather_shifted_offset_z): Change _coerce_ overloads.
4014 (__arm_vldrbq_gather_offset_z): Change _coerce_ overloads.
4015 (__arm_vidupq_u16): Change _coerce_ overloads.
4016 (__arm_vidupq_u32): Change _coerce_ overloads.
4017 (__arm_vidupq_u8): Change _coerce_ overloads.
4018 (__arm_vddupq_u16): Change _coerce_ overloads.
4019 (__arm_vddupq_u32): Change _coerce_ overloads.
4020 (__arm_vddupq_u8): Change _coerce_ overloads.
4021 (__arm_viwdupq_m): Change _coerce_ overloads.
4022 (__arm_viwdupq_u16): Change _coerce_ overloads.
4023 (__arm_viwdupq_u32): Change _coerce_ overloads.
4024 (__arm_viwdupq_u8): Change _coerce_ overloads.
4025 (__arm_vdwdupq_m): Change _coerce_ overloads.
4026 (__arm_vdwdupq_u16): Change _coerce_ overloads.
4027 (__arm_vdwdupq_u32): Change _coerce_ overloads.
4028 (__arm_vdwdupq_u8): Change _coerce_ overloads.
4029 (__arm_vstrbq): Change _coerce_ overloads.
4030 (__arm_vstrbq_p): Change _coerce_ overloads.
4031 (__arm_vstrbq_scatter_offset_p): Change _coerce_ overloads.
4032 (__arm_vstrdq_scatter_offset_p): Change _coerce_ overloads.
4033 (__arm_vstrdq_scatter_offset): Change _coerce_ overloads.
4034 (__arm_vstrdq_scatter_shifted_offset_p): Change _coerce_ overloads.
4035 (__arm_vstrdq_scatter_shifted_offset): Change _coerce_ overloads.
4036
4037 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
4038
4039 * config/arm/arm_mve.h (__arm_vbicq): Change coerce on
4040 scalar constant.
4041
4042 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
4043
4044 * config/arm/arm_mve.h (__arm_vadcq_s32): Fix arithmetic.
4045 (__arm_vadcq_u32): Likewise.
4046 (__arm_vadcq_m_s32): Likewise.
4047 (__arm_vadcq_m_u32): Likewise.
4048 (__arm_vsbcq_s32): Likewise.
4049 (__arm_vsbcq_u32): Likewise.
4050 (__arm_vsbcq_m_s32): Likewise.
4051 (__arm_vsbcq_m_u32): Likewise.
4052 * config/arm/mve.md (get_fpscr_nzcvqc): Make unspec_volatile.
4053
4054 2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
4055
4056 * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrev64q_f<mode>)
4057 (mve_vrev32q_fv8hf, mve_vcvttq_f32_f16v4sf)
4058 (mve_vcvtbq_f32_f16v4sf, mve_vcvtq_to_f_<supf><mode>)
4059 (mve_vrev64q_<supf><mode>, mve_vcvtq_from_f_<supf><mode>)
4060 (mve_vmovltq_<supf><mode>, mve_vmovlbq_<supf><mode>)
4061 (mve_vcvtpq_<supf><mode>, mve_vcvtnq_<supf><mode>)
4062 (mve_vcvtmq_<supf><mode>, mve_vcvtaq_<supf><mode>)
4063 (mve_vmvnq_n_<supf><mode>, mve_vrev16q_<supf>v16qi)
4064 (mve_vctp<MVE_vctp>q<MVE_vpred>, mve_vbrsrq_n_f<mode>)
4065 (mve_vbrsrq_n_<supf><mode>, mve_vandq_f<mode>, mve_vbicq_f<mode>)
4066 (mve_vctp<MVE_vctp>q_m<MVE_vpred>, mve_vcvtbq_f16_f32v8hf)
4067 (mve_vcvttq_f16_f32v8hf, mve_veorq_f<mode>)
4068 (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
4069 (mve_vmlsldavxq_s<mode>, mve_vornq_f<mode>, mve_vorrq_f<mode>)
4070 (mve_vrmlaldavhxq_sv4si, mve_vcvtq_m_to_f_<supf><mode>)
4071 (mve_vshlcq_<supf><mode>, mve_vmvnq_m_<supf><mode>)
4072 (mve_vpselq_<supf><mode>, mve_vcvtbq_m_f16_f32v8hf)
4073 (mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f16_f32v8hf)
4074 (mve_vcvttq_m_f32_f16v4sf, mve_vmlaldavq_p_<supf><mode>)
4075 (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
4076 (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>)
4077 (mve_vmvnq_m_n_<supf><mode>, mve_vorrq_m_n_<supf><mode>)
4078 (mve_vpselq_f<mode>, mve_vrev32q_m_fv8hf)
4079 (mve_vrev32q_m_<supf><mode>, mve_vrev64q_m_f<mode>)
4080 (mve_vrmlaldavhaxq_sv4si, mve_vrmlaldavhxq_p_sv4si)
4081 (mve_vrmlsldavhaxq_sv4si, mve_vrmlsldavhq_p_sv4si)
4082 (mve_vrmlsldavhxq_p_sv4si, mve_vrev16q_m_<supf>v16qi)
4083 (mve_vrmlaldavhq_p_<supf>v4si, mve_vrmlsldavhaq_sv4si)
4084 (mve_vandq_m_<supf><mode>, mve_vbicq_m_<supf><mode>)
4085 (mve_veorq_m_<supf><mode>, mve_vornq_m_<supf><mode>)
4086 (mve_vorrq_m_<supf><mode>, mve_vandq_m_f<mode>)
4087 (mve_vbicq_m_f<mode>, mve_veorq_m_f<mode>, mve_vornq_m_f<mode>)
4088 (mve_vorrq_m_f<mode>)
4089 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn)
4090 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn)
4091 (mve_vstrdq_scatter_base_wb_p_<supf>v2di) : Fix spacing and
4092 capitalization in the emitted asm.
4093
4094 2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
4095
4096 * config/arm/constraints.md (mve_vldrd_immediate): Move it to
4097 predicates.md.
4098 (Ri): Move constraint definition from predicates.md.
4099 (Rl): Define new constraint.
4100 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Add
4101 missing constraint.
4102 (mve_vstrwq_scatter_base_wb_p_fv4sf): Add missing Up constraint
4103 for op 1, use mve_vstrw_immediate predicate and Rl constraint for
4104 op 2. Fix asm output spacing.
4105 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Add missing constraint.
4106 * config/arm/predicates.md (Ri) Move constraint to constraints.md
4107 (mve_vldrd_immediate): Move it from
4108 constraints.md.
4109 (mve_vstrw_immediate): New predicate.
4110
4111 2023-05-18 Pan Li <pan2.li@intel.com>
4112 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4113 Kito Cheng <kito.cheng@sifive.com>
4114 Richard Biener <rguenther@suse.de>
4115 Richard Sandiford <richard.sandiford@arm.com>
4116
4117 * combine.cc (struct reg_stat_type): Extend machine_mode to 16 bits.
4118 * cse.cc (struct qty_table_elem): Extend machine_mode to 16 bits
4119 (struct table_elt): Extend machine_mode to 16 bits.
4120 (struct set): Ditto.
4121 * genmodes.cc (emit_mode_wider): Extend type from char to short.
4122 (emit_mode_complex): Ditto.
4123 (emit_mode_inner): Ditto.
4124 (emit_class_narrowest_mode): Ditto.
4125 * genopinit.cc (main): Extend the machine_mode limit.
4126 * ira-int.h (struct ira_allocno): Extend machine_mode to 16 bits and
4127 re-ordered the struct fields for padding.
4128 * machmode.h (MACHINE_MODE_BITSIZE): New macro.
4129 (GET_MODE_2XWIDER_MODE): Extend type from char to short.
4130 (get_mode_alignment): Extend type from char to short.
4131 * ree.cc (struct ext_modified): Extend machine_mode to 16 bits and
4132 removed the ATTRIBUTE_PACKED.
4133 * rtl-ssa/accesses.h: Extend machine_mode to 16 bits, narrow
4134 * rtl-ssa/internals.inl (rtl_ssa::access_info): Adjust the assignment.
4135 m_kind to 2 bits and remove m_spare.
4136 * rtl.h (RTX_CODE_BITSIZE): New macro.
4137 (struct rtx_def): Swap both the bit size and location between the
4138 rtx_code and the machine_mode.
4139 (subreg_shape::unique_id): Extend the machine_mode limit.
4140 * rtlanal.h: Extend machine_mode to 16 bits.
4141 * tree-core.h (struct tree_type_common): Extend machine_mode to 16
4142 bits and re-ordered the struct fields for padding.
4143 (struct tree_decl_common): Extend machine_mode to 16 bits.
4144
4145 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
4146
4147 * genrecog.cc (print_nonbool_test): Fix type error of
4148 switch (SUBREG_BYTE (op))'.
4149
4150 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
4151
4152 * common/config/riscv/riscv-common.cc: Remove
4153 trailing spaces on lines.
4154 * config/riscv/riscv.cc (riscv_legitimize_move): Likewise.
4155 * config/riscv/riscv.h (enum reg_class): Likewise.
4156 * config/riscv/riscv.md: Likewise.
4157
4158 2023-05-17 John David Anglin <danglin@gcc.gnu.org>
4159
4160 * config/pa/pa.md (clear_cache): New.
4161
4162 2023-05-17 Arsen Arsenović <arsen@aarsen.me>
4163
4164 * doc/extend.texi (C++ Concepts) <forall>: Remove extraneous
4165 parenthesis. Fix misnamed index entry.
4166 <concept>: Fix misnamed index entry.
4167
4168 2023-05-17 Jivan Hakobyan <jivanhakobyan9@gmail.com>
4169
4170 * config/riscv/riscv.md (*<optab><GPR:mode>3_mask): New pattern,
4171 combined from ...
4172 (*<optab>si3_mask, *<optab>di3_mask): Here.
4173 (*<optab>si3_mask_1, *<optab>di3_mask_1): And here.
4174 * config/riscv/bitmanip.md (*<bitmanip_optab><GPR:mode>3_mask): New
4175 pattern.
4176 (*<bitmanip_optab>si3_sext_mask): Likewise.
4177 * config/riscv/iterators.md (shiftm1): Use const_si_mask_operand
4178 and const_di_mask_operand.
4179 (bitmanip_rotate): New iterator.
4180 (bitmanip_optab): Add rotates.
4181 * config/riscv/predicates.md (const_si_mask_operand): Renamed
4182 from const31_operand. Generalize to handle more mask constants.
4183 (const_di_mask_operand): Similarly.
4184
4185 2023-05-17 Jakub Jelinek <jakub@redhat.com>
4186
4187 PR c++/109884
4188 * config/i386/i386-builtin-types.def (FLOAT128): Use
4189 float128t_type_node rather than float128_type_node.
4190
4191 2023-05-17 Alexander Monakov <amonakov@ispras.ru>
4192
4193 * tree-ssa-math-opts.cc (convert_mult_to_fma): Enable only for
4194 FP_CONTRACT_FAST (no functional change).
4195
4196 2023-05-17 Uros Bizjak <ubizjak@gmail.com>
4197
4198 * config/i386/i386.cc (ix86_multiplication_cost): Correct
4199 calcuation of integer vector mode costs to reflect generated
4200 instruction sequences of different integer vector modes and
4201 different target ABIs.
4202
4203 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4204
4205 * config/riscv/riscv-opts.h (enum riscv_entity): New enum.
4206 * config/riscv/riscv.cc (riscv_emit_mode_set): New function.
4207 (riscv_mode_needed): Ditto.
4208 (riscv_mode_after): Ditto.
4209 (riscv_mode_entry): Ditto.
4210 (riscv_mode_exit): Ditto.
4211 (riscv_mode_priority): Ditto.
4212 (TARGET_MODE_EMIT): New target hook.
4213 (TARGET_MODE_NEEDED): Ditto.
4214 (TARGET_MODE_AFTER): Ditto.
4215 (TARGET_MODE_ENTRY): Ditto.
4216 (TARGET_MODE_EXIT): Ditto.
4217 (TARGET_MODE_PRIORITY): Ditto.
4218 * config/riscv/riscv.h (OPTIMIZE_MODE_SWITCHING): Ditto.
4219 (NUM_MODES_FOR_MODE_SWITCHING): Ditto.
4220 * config/riscv/riscv.md: Add csrwvxrm.
4221 * config/riscv/vector.md (rnu,rne,rdn,rod,none): New attribute.
4222 (vxrmsi): New pattern.
4223
4224 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4225
4226 * config/riscv/riscv-vector-builtins-bases.cc: Introduce rounding mode.
4227 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
4228 (struct narrow_alu_def): Ditto.
4229 * config/riscv/riscv-vector-builtins.cc (function_builder::apply_predication): Ditto.
4230 (function_expander::use_exact_insn): Ditto.
4231 * config/riscv/riscv-vector-builtins.h (function_checker::arg_num): New function.
4232 (function_base::has_rounding_mode_operand_p): New function.
4233
4234 2023-05-17 Andrew Pinski <apinski@marvell.com>
4235
4236 * tree-ssa-forwprop.cc (simplify_builtin_call): Check
4237 against 0 instead of calling integer_zerop.
4238
4239 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4240
4241 * config/riscv/riscv-vector-builtins.cc (register_vxrm): New function.
4242 (DEF_RVV_VXRM_ENUM): New macro.
4243 (handle_pragma_vector): Add vxrm enum register.
4244 * config/riscv/riscv-vector-builtins.def (DEF_RVV_VXRM_ENUM): New macro.
4245 (RNU): Ditto.
4246 (RNE): Ditto.
4247 (RDN): Ditto.
4248 (ROD): Ditto.
4249
4250 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
4251
4252 * value-range.h (Value_Range::operator=): New.
4253
4254 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
4255
4256 * value-range.cc (vrange::operator=): Add a stub to copy
4257 unsupported ranges.
4258 * value-range.h (is_a <unsupported_range>): New.
4259 (Value_Range::operator=): Support copying unsupported ranges.
4260
4261 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
4262
4263 * data-streamer-in.cc (streamer_read_real_value): New.
4264 (streamer_read_value_range): New.
4265 * data-streamer-out.cc (streamer_write_real_value): New.
4266 (streamer_write_vrange): New.
4267 * data-streamer.h (streamer_write_vrange): New.
4268 (streamer_read_value_range): New.
4269
4270 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
4271
4272 PR c++/109532
4273 * doc/invoke.texi (Code Gen Options): Note that -fshort-enums
4274 is ignored for a fixed underlying type.
4275 (C++ Dialect Options): Likewise for -fstrict-enums.
4276
4277 2023-05-17 Tobias Burnus <tobias@codesourcery.com>
4278
4279 * gimplify.cc (gimplify_scan_omp_clauses): Remove Fortran
4280 special case.
4281
4282 2023-05-17 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4283
4284 * config/s390/s390.cc (TARGET_ATOMIC_ALIGN_FOR_MODE):
4285 New.
4286 (s390_atomic_align_for_mode): New.
4287
4288 2023-05-17 Jakub Jelinek <jakub@redhat.com>
4289
4290 * wide-int.cc (wi::from_array): Add missing closing paren in function
4291 comment.
4292
4293 2023-05-17 Kewen Lin <linkw@linux.ibm.com>
4294
4295 * tree-vect-loop.cc (vect_analyze_loop_1): Don't retry analysis with
4296 suggested unroll factor once the previous analysis fails.
4297
4298 2023-05-17 Pan Li <pan2.li@intel.com>
4299
4300 * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): New
4301 macro.
4302 (main): Add bool1 to the type indexer.
4303 * config/riscv/riscv-vector-builtins-functions.def
4304 (vreinterpret): Register vbool1 interpret function.
4305 * config/riscv/riscv-vector-builtins-types.def
4306 (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
4307 (vint8m1_t): Add the type to bool1_interpret_ops.
4308 (vint16m1_t): Ditto.
4309 (vint32m1_t): Ditto.
4310 (vint64m1_t): Ditto.
4311 (vuint8m1_t): Ditto.
4312 (vuint16m1_t): Ditto.
4313 (vuint32m1_t): Ditto.
4314 (vuint64m1_t): Ditto.
4315 * config/riscv/riscv-vector-builtins.cc
4316 (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
4317 (required_extensions_p): Add bool1 interpret case.
4318 * config/riscv/riscv-vector-builtins.def
4319 (bool1_interpret): Add bool1 interpret to base type.
4320 * config/riscv/vector.md (@vreinterpret<mode>): Add new expand
4321 with VB dest for vreinterpret.
4322
4323 2023-05-17 Jiufu Guo <guojiufu@linux.ibm.com>
4324
4325 PR target/106708
4326 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Support building
4327 constants through "lis; xoris".
4328
4329 2023-05-16 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com>
4330
4331 * common/config/rs6000/rs6000-common.cc: Add REE pass as a
4332 default rs6000 target pass for O2 and above.
4333 * doc/invoke.texi: Document -free
4334
4335 2023-05-16 Kito Cheng <kito.cheng@sifive.com>
4336
4337 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
4338 Fix wrong select_kind...
4339
4340 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4341
4342 * config/s390/s390-protos.h (s390_expand_setmem): Change
4343 function signature.
4344 * config/s390/s390.cc (s390_expand_setmem): For memset's less
4345 than or equal to 256 byte do not perform a libc call.
4346 * config/s390/s390.md: Change expander into a version which
4347 takes 8 operands.
4348
4349 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4350
4351 * config/s390/s390-protos.h (s390_expand_movmem): New.
4352 * config/s390/s390.cc (s390_expand_movmem): New.
4353 * config/s390/s390.md (movmem<mode>): New.
4354 (*mvcrl): New.
4355 (mvcrl): New.
4356
4357 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4358
4359 * config/s390/s390-protos.h (s390_expand_cpymem): Change
4360 function signature.
4361 * config/s390/s390.cc (s390_expand_cpymem): For memcpy's less
4362 than or equal to 256 byte do not perform a libc call.
4363 (s390_expand_insv): Adapt new function signature of
4364 s390_expand_cpymem.
4365 * config/s390/s390.md: Change expander into a version which
4366 takes 8 operands.
4367
4368 2023-05-16 Andrew Pinski <apinski@marvell.com>
4369
4370 PR tree-optimization/109424
4371 * match.pd: Add patterns for min/max of zero_one_valued
4372 values to `&`/`|`.
4373
4374 2023-05-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4375
4376 * config/riscv/riscv-protos.h (enum frm_field_enum): New enum.
4377 * config/riscv/riscv-vector-builtins.cc
4378 (function_expander::use_ternop_insn): Add default rounding mode.
4379 (function_expander::use_widen_ternop_insn): Ditto.
4380 * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add FRM REGNUM.
4381 (riscv_hard_regno_mode_ok): Ditto.
4382 (riscv_conditional_register_usage): Ditto.
4383 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
4384 (FRM_REG_P): Ditto.
4385 (RISCV_DWARF_FRM): Ditto.
4386 * config/riscv/riscv.md: Ditto.
4387 * config/riscv/vector-iterators.md: split no frm and has frm operations.
4388 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
4389 (@pred_<optab><mode>): Ditto.
4390
4391 2023-05-15 Aldy Hernandez <aldyh@redhat.com>
4392
4393 PR tree-optimization/109695
4394 * value-range.cc (irange::operator=): Resize range.
4395 (irange::union_): Same.
4396 (irange::intersect): Same.
4397 (irange::invert): Same.
4398 (int_range_max): Default to 3 sub-ranges and resize as needed.
4399 * value-range.h (irange::maybe_resize): New.
4400 (~int_range): New.
4401 (int_range::int_range): Adjust for resizing.
4402 (int_range::operator=): Same.
4403
4404 2023-05-15 Aldy Hernandez <aldyh@redhat.com>
4405
4406 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Avoid unnecessary
4407 range copying
4408 * value-range.cc (irange::union_nonzero_bits): Return TRUE only
4409 when range changed.
4410
4411 2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4412
4413 * config/riscv/riscv-protos.h (enum vxrm_field_enum): New enum.
4414 * config/riscv/riscv-vector-builtins.cc
4415 (function_expander::use_exact_insn): Add default rounding mode operand.
4416 * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add VXRM_REGNUM.
4417 (riscv_hard_regno_mode_ok): Ditto.
4418 (riscv_conditional_register_usage): Ditto.
4419 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
4420 (VXRM_REG_P): Ditto.
4421 (RISCV_DWARF_VXRM): Ditto.
4422 * config/riscv/riscv.md: Ditto.
4423 * config/riscv/vector.md: Ditto
4424
4425 2023-05-15 Pan Li <pan2.li@intel.com>
4426
4427 * optabs.cc (maybe_gen_insn): Add case to generate instruction
4428 that has 11 operands.
4429
4430 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4431
4432 * config/aarch64/aarch64.cc (aarch64_rtx_costs, NEG case): Add costing
4433 logic for vector modes.
4434
4435 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4436
4437 PR target/99195
4438 * config/aarch64/aarch64-simd.md (aarch64_cm<optab><mode>): Rename to...
4439 (aarch64_cm<optab><mode><vczle><vczbe>): ... This.
4440 (aarch64_cmtst<mode>): Rename to...
4441 (aarch64_cmtst<mode><vczle><vczbe>): ... This.
4442 (*aarch64_cmtst_same_<mode>): Rename to...
4443 (*aarch64_cmtst_same_<mode><vczle><vczbe>): ... This.
4444 (*aarch64_cmtstdi): Rename to...
4445 (*aarch64_cmtstdi<vczle><vczbe>): ... This.
4446 (aarch64_fac<optab><mode>): Rename to...
4447 (aarch64_fac<optab><mode><vczle><vczbe>): ... This.
4448
4449 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4450
4451 PR target/99195
4452 * config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>): Rename to...
4453 (aarch64_s<optab><mode><vczle><vczbe>): ... This.
4454
4455 2023-05-15 Pan Li <pan2.li@intel.com>
4456 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4457 kito-cheng <kito.cheng@sifive.com>
4458
4459 * config/riscv/riscv-v.cc (const_vlmax_p): New function for
4460 deciding the mode is constant or not.
4461 (set_len_and_policy): Optimize VLS-VLMAX code gen to vsetivli.
4462
4463 2023-05-15 Richard Biener <rguenther@suse.de>
4464
4465 PR tree-optimization/109848
4466 * tree-ssa-forwprop.cc (pass_forwprop::execute): Put the
4467 TARGET_MEM_REF address preparation before the store, not
4468 before the CTOR.
4469
4470 2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4471
4472 * config/riscv/riscv.cc
4473 (riscv_vectorize_preferred_vector_alignment): New function.
4474 (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New target hook.
4475
4476 2023-05-14 Andrew Pinski <apinski@marvell.com>
4477
4478 PR tree-optimization/109829
4479 * match.pd: Add pattern for `signbit(x) !=/== 0 ? x : -x`.
4480
4481 2023-05-14 Uros Bizjak <ubizjak@gmail.com>
4482
4483 PR target/109807
4484 * config/i386/i386.cc: Revert the 2023-05-11 change.
4485 (ix86_widen_mult_cost): Return high value instead of
4486 ICEing for unsupported modes.
4487
4488 2023-05-14 Ard Biesheuvel <ardb@kernel.org>
4489
4490 * config/i386/i386.cc (x86_function_profiler): Take
4491 ix86_direct_extern_access into account when generating calls
4492 to __fentry__()
4493
4494 2023-05-14 Pan Li <pan2.li@intel.com>
4495
4496 * config/riscv/riscv-vector-builtins.cc (required_extensions_p):
4497 Refactor the or pattern to switch cases.
4498
4499 2023-05-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4500
4501 * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Rename
4502 aarch64_expand_vector_init to this, and remove interleaving case.
4503 Recursively call aarch64_expand_vector_init_fallback, instead of
4504 aarch64_expand_vector_init.
4505 (aarch64_unzip_vector_init): New function.
4506 (aarch64_expand_vector_init): Likewise.
4507
4508 2023-05-13 Kito Cheng <kito.cheng@sifive.com>
4509
4510 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns):
4511 Pull out function call from the gcc_assert.
4512
4513 2023-05-13 Kito Cheng <kito.cheng@sifive.com>
4514
4515 * config/riscv/riscv-vsetvl.cc (vlmul_to_str): New.
4516 (policy_to_str): New.
4517 (vector_insn_info::dump): Use vlmul_to_str and policy_to_str.
4518
4519 2023-05-13 Andrew Pinski <apinski@marvell.com>
4520
4521 PR tree-optimization/109834
4522 * match.pd (popcount(bswap(x))->popcount(x)): Fix up unsigned type checking.
4523 (popcount(rotate(x,y))->popcount(x)): Likewise.
4524
4525 2023-05-12 Uros Bizjak <ubizjak@gmail.com>
4526
4527 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also
4528 reject ymm instructions for TARGET_PREFER_AVX128. Use generic
4529 gen_extend_insn to generate zero/sign extension instructions.
4530 Fix comments.
4531 (ix86_expand_vecop_qihi): Initialize interleave functions
4532 for MULT code only. Fix comments.
4533
4534 2023-05-12 Uros Bizjak <ubizjak@gmail.com>
4535
4536 PR target/109797
4537 * config/i386/mmx.md (mulv2si3): Remove expander.
4538 (mulv2si3): Rename insn pattern from *mulv2si.
4539
4540 2023-05-12 Tobias Burnus <tobias@codesourcery.com>
4541
4542 PR libstdc++/109816
4543 * lto-cgraph.cc (output_symtab): Guard lto_output_toplevel_asms by
4544 '!lto_stream_offload_p'.
4545
4546 2023-05-12 Kito Cheng <kito.cheng@sifive.com>
4547 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4548
4549 PR target/109743
4550 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vsetvl_at_end): New.
4551 (local_avl_compatible_p): New.
4552 (pass_vsetvl::local_eliminate_vsetvl_insn): Enhance local optimizations
4553 for LCM, rewrite as a backward algorithm.
4554 (pass_vsetvl::cleanup_insns): Use new local_eliminate_vsetvl_insn
4555 interface, handle a BB at once.
4556
4557 2023-05-12 Richard Biener <rguenther@suse.de>
4558
4559 PR tree-optimization/64731
4560 * tree-ssa-forwprop.cc (pass_forwprop::execute): Also
4561 handle TARGET_MEM_REF destinations of stores from vector
4562 CTORs.
4563
4564 2023-05-12 Richard Biener <rguenther@suse.de>
4565
4566 PR tree-optimization/109791
4567 * match.pd (minus (convert ADDR_EXPR@0) (convert (pointer_plus @1 @2))):
4568 New pattern.
4569 (minus (convert (pointer_plus @1 @2)) (convert ADDR_EXPR@0)):
4570 Likewise.
4571
4572 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4573
4574 * config/arm/arm-mve-builtins-base.cc (vsriq): New.
4575 * config/arm/arm-mve-builtins-base.def (vsriq): New.
4576 * config/arm/arm-mve-builtins-base.h (vsriq): New.
4577 * config/arm/arm-mve-builtins.cc
4578 (function_instance::has_inactive_argument): Handle vsriq.
4579 * config/arm/arm_mve.h (vsriq): Remove.
4580 (vsriq_m): Remove.
4581 (vsriq_n_u8): Remove.
4582 (vsriq_n_s8): Remove.
4583 (vsriq_n_u16): Remove.
4584 (vsriq_n_s16): Remove.
4585 (vsriq_n_u32): Remove.
4586 (vsriq_n_s32): Remove.
4587 (vsriq_m_n_s8): Remove.
4588 (vsriq_m_n_u8): Remove.
4589 (vsriq_m_n_s16): Remove.
4590 (vsriq_m_n_u16): Remove.
4591 (vsriq_m_n_s32): Remove.
4592 (vsriq_m_n_u32): Remove.
4593 (__arm_vsriq_n_u8): Remove.
4594 (__arm_vsriq_n_s8): Remove.
4595 (__arm_vsriq_n_u16): Remove.
4596 (__arm_vsriq_n_s16): Remove.
4597 (__arm_vsriq_n_u32): Remove.
4598 (__arm_vsriq_n_s32): Remove.
4599 (__arm_vsriq_m_n_s8): Remove.
4600 (__arm_vsriq_m_n_u8): Remove.
4601 (__arm_vsriq_m_n_s16): Remove.
4602 (__arm_vsriq_m_n_u16): Remove.
4603 (__arm_vsriq_m_n_s32): Remove.
4604 (__arm_vsriq_m_n_u32): Remove.
4605 (__arm_vsriq): Remove.
4606 (__arm_vsriq_m): Remove.
4607
4608 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4609
4610 * config/arm/iterators.md (mve_insn): Add vsri.
4611 * config/arm/mve.md (mve_vsriq_n_<supf><mode>): Rename into ...
4612 (@mve_<mve_insn>q_n_<supf><mode>): .,. this.
4613 (mve_vsriq_m_n_<supf><mode>): Rename into ...
4614 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4615
4616 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4617
4618 * config/arm/arm-mve-builtins-shapes.cc (ternary_rshift): New.
4619 * config/arm/arm-mve-builtins-shapes.h (ternary_rshift): New.
4620
4621 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4622
4623 * config/arm/arm-mve-builtins-base.cc (vsliq): New.
4624 * config/arm/arm-mve-builtins-base.def (vsliq): New.
4625 * config/arm/arm-mve-builtins-base.h (vsliq): New.
4626 * config/arm/arm-mve-builtins.cc
4627 (function_instance::has_inactive_argument): Handle vsliq.
4628 * config/arm/arm_mve.h (vsliq): Remove.
4629 (vsliq_m): Remove.
4630 (vsliq_n_u8): Remove.
4631 (vsliq_n_s8): Remove.
4632 (vsliq_n_u16): Remove.
4633 (vsliq_n_s16): Remove.
4634 (vsliq_n_u32): Remove.
4635 (vsliq_n_s32): Remove.
4636 (vsliq_m_n_s8): Remove.
4637 (vsliq_m_n_s32): Remove.
4638 (vsliq_m_n_s16): Remove.
4639 (vsliq_m_n_u8): Remove.
4640 (vsliq_m_n_u32): Remove.
4641 (vsliq_m_n_u16): Remove.
4642 (__arm_vsliq_n_u8): Remove.
4643 (__arm_vsliq_n_s8): Remove.
4644 (__arm_vsliq_n_u16): Remove.
4645 (__arm_vsliq_n_s16): Remove.
4646 (__arm_vsliq_n_u32): Remove.
4647 (__arm_vsliq_n_s32): Remove.
4648 (__arm_vsliq_m_n_s8): Remove.
4649 (__arm_vsliq_m_n_s32): Remove.
4650 (__arm_vsliq_m_n_s16): Remove.
4651 (__arm_vsliq_m_n_u8): Remove.
4652 (__arm_vsliq_m_n_u32): Remove.
4653 (__arm_vsliq_m_n_u16): Remove.
4654 (__arm_vsliq): Remove.
4655 (__arm_vsliq_m): Remove.
4656
4657 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4658
4659 * config/arm/iterators.md (mve_insn>): Add vsli.
4660 * config/arm/mve.md (mve_vsliq_n_<supf><mode>): Rename into ...
4661 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4662 (mve_vsliq_m_n_<supf><mode>): Rename into ...
4663 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4664
4665 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4666
4667 * config/arm/arm-mve-builtins-shapes.cc (ternary_lshift): New.
4668 * config/arm/arm-mve-builtins-shapes.h (ternary_lshift): New.
4669
4670 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4671
4672 * config/arm/arm-mve-builtins-base.cc (vpselq): New.
4673 * config/arm/arm-mve-builtins-base.def (vpselq): New.
4674 * config/arm/arm-mve-builtins-base.h (vpselq): New.
4675 * config/arm/arm_mve.h (vpselq): Remove.
4676 (vpselq_u8): Remove.
4677 (vpselq_s8): Remove.
4678 (vpselq_u16): Remove.
4679 (vpselq_s16): Remove.
4680 (vpselq_u32): Remove.
4681 (vpselq_s32): Remove.
4682 (vpselq_u64): Remove.
4683 (vpselq_s64): Remove.
4684 (vpselq_f16): Remove.
4685 (vpselq_f32): Remove.
4686 (__arm_vpselq_u8): Remove.
4687 (__arm_vpselq_s8): Remove.
4688 (__arm_vpselq_u16): Remove.
4689 (__arm_vpselq_s16): Remove.
4690 (__arm_vpselq_u32): Remove.
4691 (__arm_vpselq_s32): Remove.
4692 (__arm_vpselq_u64): Remove.
4693 (__arm_vpselq_s64): Remove.
4694 (__arm_vpselq_f16): Remove.
4695 (__arm_vpselq_f32): Remove.
4696 (__arm_vpselq): Remove.
4697
4698 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4699
4700 * config/arm/arm-mve-builtins-shapes.cc (vpsel): New.
4701 * config/arm/arm-mve-builtins-shapes.h (vpsel): New.
4702
4703 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4704
4705 * config/arm/arm.cc (arm_expand_vcond): Use gen_mve_q instead of
4706 gen_mve_vpselq.
4707 * config/arm/iterators.md (MVE_VPSELQ_F): New.
4708 (mve_insn): Add vpsel.
4709 * config/arm/mve.md (@mve_vpselq_<supf><mode>): Rename into ...
4710 (@mve_<mve_insn>q_<supf><mode>): ... this.
4711 (@mve_vpselq_f<mode>): Rename into ...
4712 (@mve_<mve_insn>q_f<mode>): ... this.
4713
4714 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4715
4716 * config/arm/arm-mve-builtins-base.cc (vfmaq, vfmasq, vfmsq): New.
4717 * config/arm/arm-mve-builtins-base.def (vfmaq, vfmasq, vfmsq): New.
4718 * config/arm/arm-mve-builtins-base.h (vfmaq, vfmasq, vfmsq): New.
4719 * config/arm/arm-mve-builtins.cc
4720 (function_instance::has_inactive_argument): Handle vfmaq, vfmasq,
4721 vfmsq.
4722 * config/arm/arm_mve.h (vfmaq): Remove.
4723 (vfmasq): Remove.
4724 (vfmsq): Remove.
4725 (vfmaq_m): Remove.
4726 (vfmasq_m): Remove.
4727 (vfmsq_m): Remove.
4728 (vfmaq_f16): Remove.
4729 (vfmaq_n_f16): Remove.
4730 (vfmasq_n_f16): Remove.
4731 (vfmsq_f16): Remove.
4732 (vfmaq_f32): Remove.
4733 (vfmaq_n_f32): Remove.
4734 (vfmasq_n_f32): Remove.
4735 (vfmsq_f32): Remove.
4736 (vfmaq_m_f32): Remove.
4737 (vfmaq_m_f16): Remove.
4738 (vfmaq_m_n_f32): Remove.
4739 (vfmaq_m_n_f16): Remove.
4740 (vfmasq_m_n_f32): Remove.
4741 (vfmasq_m_n_f16): Remove.
4742 (vfmsq_m_f32): Remove.
4743 (vfmsq_m_f16): Remove.
4744 (__arm_vfmaq_f16): Remove.
4745 (__arm_vfmaq_n_f16): Remove.
4746 (__arm_vfmasq_n_f16): Remove.
4747 (__arm_vfmsq_f16): Remove.
4748 (__arm_vfmaq_f32): Remove.
4749 (__arm_vfmaq_n_f32): Remove.
4750 (__arm_vfmasq_n_f32): Remove.
4751 (__arm_vfmsq_f32): Remove.
4752 (__arm_vfmaq_m_f32): Remove.
4753 (__arm_vfmaq_m_f16): Remove.
4754 (__arm_vfmaq_m_n_f32): Remove.
4755 (__arm_vfmaq_m_n_f16): Remove.
4756 (__arm_vfmasq_m_n_f32): Remove.
4757 (__arm_vfmasq_m_n_f16): Remove.
4758 (__arm_vfmsq_m_f32): Remove.
4759 (__arm_vfmsq_m_f16): Remove.
4760 (__arm_vfmaq): Remove.
4761 (__arm_vfmasq): Remove.
4762 (__arm_vfmsq): Remove.
4763 (__arm_vfmaq_m): Remove.
4764 (__arm_vfmasq_m): Remove.
4765 (__arm_vfmsq_m): Remove.
4766
4767 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4768
4769 * config/arm/iterators.md (MVE_FP_M_BINARY): Add VFMAQ_M_F,
4770 VFMSQ_M_F.
4771 (MVE_FP_M_N_BINARY): Add VFMAQ_M_N_F, VFMASQ_M_N_F.
4772 (MVE_VFMxQ_F, MVE_VFMAxQ_N_F): New.
4773 (mve_insn): Add vfma, vfmas, vfms.
4774 * config/arm/mve.md (mve_vfmaq_f<mode>, mve_vfmsq_f<mode>): Merge
4775 into ...
4776 (@mve_<mve_insn>q_f<mode>): ... this.
4777 (mve_vfmaq_n_f<mode>, mve_vfmasq_n_f<mode>): Merge into ...
4778 (@mve_<mve_insn>q_n_f<mode>): ... this.
4779 (mve_vfmaq_m_f<mode>, mve_vfmsq_m_f<mode>): Merge into
4780 @mve_<mve_insn>q_m_f<mode>.
4781 (mve_vfmaq_m_n_f<mode>, mve_vfmasq_m_n_f<mode>): Merge into
4782 @mve_<mve_insn>q_m_n_f<mode>.
4783
4784 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4785
4786 * config/arm/arm-mve-builtins-shapes.cc (ternary_opt_n): New.
4787 * config/arm/arm-mve-builtins-shapes.h (ternary_opt_n): New.
4788
4789 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4790
4791 * config/arm/arm-mve-builtins-base.cc
4792 (FUNCTION_WITH_RTX_M_N_NO_F): New.
4793 (vmvnq): New.
4794 * config/arm/arm-mve-builtins-base.def (vmvnq): New.
4795 * config/arm/arm-mve-builtins-base.h (vmvnq): New.
4796 * config/arm/arm_mve.h (vmvnq): Remove.
4797 (vmvnq_m): Remove.
4798 (vmvnq_x): Remove.
4799 (vmvnq_s8): Remove.
4800 (vmvnq_s16): Remove.
4801 (vmvnq_s32): Remove.
4802 (vmvnq_n_s16): Remove.
4803 (vmvnq_n_s32): Remove.
4804 (vmvnq_u8): Remove.
4805 (vmvnq_u16): Remove.
4806 (vmvnq_u32): Remove.
4807 (vmvnq_n_u16): Remove.
4808 (vmvnq_n_u32): Remove.
4809 (vmvnq_m_u8): Remove.
4810 (vmvnq_m_s8): Remove.
4811 (vmvnq_m_u16): Remove.
4812 (vmvnq_m_s16): Remove.
4813 (vmvnq_m_u32): Remove.
4814 (vmvnq_m_s32): Remove.
4815 (vmvnq_m_n_s16): Remove.
4816 (vmvnq_m_n_u16): Remove.
4817 (vmvnq_m_n_s32): Remove.
4818 (vmvnq_m_n_u32): Remove.
4819 (vmvnq_x_s8): Remove.
4820 (vmvnq_x_s16): Remove.
4821 (vmvnq_x_s32): Remove.
4822 (vmvnq_x_u8): Remove.
4823 (vmvnq_x_u16): Remove.
4824 (vmvnq_x_u32): Remove.
4825 (vmvnq_x_n_s16): Remove.
4826 (vmvnq_x_n_s32): Remove.
4827 (vmvnq_x_n_u16): Remove.
4828 (vmvnq_x_n_u32): Remove.
4829 (__arm_vmvnq_s8): Remove.
4830 (__arm_vmvnq_s16): Remove.
4831 (__arm_vmvnq_s32): Remove.
4832 (__arm_vmvnq_n_s16): Remove.
4833 (__arm_vmvnq_n_s32): Remove.
4834 (__arm_vmvnq_u8): Remove.
4835 (__arm_vmvnq_u16): Remove.
4836 (__arm_vmvnq_u32): Remove.
4837 (__arm_vmvnq_n_u16): Remove.
4838 (__arm_vmvnq_n_u32): Remove.
4839 (__arm_vmvnq_m_u8): Remove.
4840 (__arm_vmvnq_m_s8): Remove.
4841 (__arm_vmvnq_m_u16): Remove.
4842 (__arm_vmvnq_m_s16): Remove.
4843 (__arm_vmvnq_m_u32): Remove.
4844 (__arm_vmvnq_m_s32): Remove.
4845 (__arm_vmvnq_m_n_s16): Remove.
4846 (__arm_vmvnq_m_n_u16): Remove.
4847 (__arm_vmvnq_m_n_s32): Remove.
4848 (__arm_vmvnq_m_n_u32): Remove.
4849 (__arm_vmvnq_x_s8): Remove.
4850 (__arm_vmvnq_x_s16): Remove.
4851 (__arm_vmvnq_x_s32): Remove.
4852 (__arm_vmvnq_x_u8): Remove.
4853 (__arm_vmvnq_x_u16): Remove.
4854 (__arm_vmvnq_x_u32): Remove.
4855 (__arm_vmvnq_x_n_s16): Remove.
4856 (__arm_vmvnq_x_n_s32): Remove.
4857 (__arm_vmvnq_x_n_u16): Remove.
4858 (__arm_vmvnq_x_n_u32): Remove.
4859 (__arm_vmvnq): Remove.
4860 (__arm_vmvnq_m): Remove.
4861 (__arm_vmvnq_x): Remove.
4862
4863 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4864
4865 * config/arm/iterators.md (mve_insn): Add vmvn.
4866 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Rename into ...
4867 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4868 (mve_vmvnq_m_<supf><mode>): Rename into ...
4869 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
4870 (mve_vmvnq_m_n_<supf><mode>): Rename into ...
4871 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4872
4873 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4874
4875 * config/arm/arm-mve-builtins-shapes.cc (mvn): New.
4876 * config/arm/arm-mve-builtins-shapes.h (mvn): New.
4877
4878 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4879
4880 * config/arm/arm-mve-builtins-base.cc (vbrsrq): New.
4881 * config/arm/arm-mve-builtins-base.def (vbrsrq): New.
4882 * config/arm/arm-mve-builtins-base.h (vbrsrq): New.
4883 * config/arm/arm_mve.h (vbrsrq): Remove.
4884 (vbrsrq_m): Remove.
4885 (vbrsrq_x): Remove.
4886 (vbrsrq_n_f16): Remove.
4887 (vbrsrq_n_f32): Remove.
4888 (vbrsrq_n_u8): Remove.
4889 (vbrsrq_n_s8): Remove.
4890 (vbrsrq_n_u16): Remove.
4891 (vbrsrq_n_s16): Remove.
4892 (vbrsrq_n_u32): Remove.
4893 (vbrsrq_n_s32): Remove.
4894 (vbrsrq_m_n_s8): Remove.
4895 (vbrsrq_m_n_s32): Remove.
4896 (vbrsrq_m_n_s16): Remove.
4897 (vbrsrq_m_n_u8): Remove.
4898 (vbrsrq_m_n_u32): Remove.
4899 (vbrsrq_m_n_u16): Remove.
4900 (vbrsrq_m_n_f32): Remove.
4901 (vbrsrq_m_n_f16): Remove.
4902 (vbrsrq_x_n_s8): Remove.
4903 (vbrsrq_x_n_s16): Remove.
4904 (vbrsrq_x_n_s32): Remove.
4905 (vbrsrq_x_n_u8): Remove.
4906 (vbrsrq_x_n_u16): Remove.
4907 (vbrsrq_x_n_u32): Remove.
4908 (vbrsrq_x_n_f16): Remove.
4909 (vbrsrq_x_n_f32): Remove.
4910 (__arm_vbrsrq_n_u8): Remove.
4911 (__arm_vbrsrq_n_s8): Remove.
4912 (__arm_vbrsrq_n_u16): Remove.
4913 (__arm_vbrsrq_n_s16): Remove.
4914 (__arm_vbrsrq_n_u32): Remove.
4915 (__arm_vbrsrq_n_s32): Remove.
4916 (__arm_vbrsrq_m_n_s8): Remove.
4917 (__arm_vbrsrq_m_n_s32): Remove.
4918 (__arm_vbrsrq_m_n_s16): Remove.
4919 (__arm_vbrsrq_m_n_u8): Remove.
4920 (__arm_vbrsrq_m_n_u32): Remove.
4921 (__arm_vbrsrq_m_n_u16): Remove.
4922 (__arm_vbrsrq_x_n_s8): Remove.
4923 (__arm_vbrsrq_x_n_s16): Remove.
4924 (__arm_vbrsrq_x_n_s32): Remove.
4925 (__arm_vbrsrq_x_n_u8): Remove.
4926 (__arm_vbrsrq_x_n_u16): Remove.
4927 (__arm_vbrsrq_x_n_u32): Remove.
4928 (__arm_vbrsrq_n_f16): Remove.
4929 (__arm_vbrsrq_n_f32): Remove.
4930 (__arm_vbrsrq_m_n_f32): Remove.
4931 (__arm_vbrsrq_m_n_f16): Remove.
4932 (__arm_vbrsrq_x_n_f16): Remove.
4933 (__arm_vbrsrq_x_n_f32): Remove.
4934 (__arm_vbrsrq): Remove.
4935 (__arm_vbrsrq_m): Remove.
4936 (__arm_vbrsrq_x): Remove.
4937
4938 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4939
4940 * config/arm/iterators.md (MVE_VBRSR_M_N_FP, MVE_VBRSR_N_FP): New.
4941 (mve_insn): Add vbrsr.
4942 * config/arm/mve.md (mve_vbrsrq_n_f<mode>): Rename into ...
4943 (@mve_<mve_insn>q_n_f<mode>): ... this.
4944 (mve_vbrsrq_n_<supf><mode>): Rename into ...
4945 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4946 (mve_vbrsrq_m_n_<supf><mode>): Rename into ...
4947 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4948 (mve_vbrsrq_m_n_f<mode>): Rename into ...
4949 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
4950
4951 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4952
4953 * config/arm/arm-mve-builtins-shapes.cc (binary_imm32): New.
4954 * config/arm/arm-mve-builtins-shapes.h (binary_imm32): New.
4955
4956 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4957
4958 * config/arm/arm-mve-builtins-base.cc (vqshluq): New.
4959 * config/arm/arm-mve-builtins-base.def (vqshluq): New.
4960 * config/arm/arm-mve-builtins-base.h (vqshluq): New.
4961 * config/arm/arm_mve.h (vqshluq): Remove.
4962 (vqshluq_m): Remove.
4963 (vqshluq_n_s8): Remove.
4964 (vqshluq_n_s16): Remove.
4965 (vqshluq_n_s32): Remove.
4966 (vqshluq_m_n_s8): Remove.
4967 (vqshluq_m_n_s16): Remove.
4968 (vqshluq_m_n_s32): Remove.
4969 (__arm_vqshluq_n_s8): Remove.
4970 (__arm_vqshluq_n_s16): Remove.
4971 (__arm_vqshluq_n_s32): Remove.
4972 (__arm_vqshluq_m_n_s8): Remove.
4973 (__arm_vqshluq_m_n_s16): Remove.
4974 (__arm_vqshluq_m_n_s32): Remove.
4975 (__arm_vqshluq): Remove.
4976 (__arm_vqshluq_m): Remove.
4977
4978 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4979
4980 * config/arm/iterators.md (mve_insn): Add vqshlu.
4981 (supf): Add VQSHLUQ_M_N_S, VQSHLUQ_N_S.
4982 (VQSHLUQ_M_N, VQSHLUQ_N): New.
4983 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Change name into ...
4984 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4985 (mve_vqshluq_m_n_s<mode>): Change name into ...
4986 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4987
4988 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4989
4990 * config/arm/arm-mve-builtins-shapes.cc
4991 (binary_lshift_unsigned): New.
4992 * config/arm/arm-mve-builtins-shapes.h
4993 (binary_lshift_unsigned): New.
4994
4995 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
4996
4997 * config/arm/arm-mve-builtins-base.cc (vrmlaldavhaq)
4998 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
4999 * config/arm/arm-mve-builtins-base.def (vrmlaldavhaq)
5000 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
5001 * config/arm/arm-mve-builtins-base.h (vrmlaldavhaq)
5002 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
5003 * config/arm/arm-mve-builtins-functions.h: Handle vrmlaldavhaq,
5004 vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq.
5005 * config/arm/arm_mve.h (vrmlaldavhaq): Remove.
5006 (vrmlaldavhaxq): Remove.
5007 (vrmlsldavhaq): Remove.
5008 (vrmlsldavhaxq): Remove.
5009 (vrmlaldavhaq_p): Remove.
5010 (vrmlaldavhaxq_p): Remove.
5011 (vrmlsldavhaq_p): Remove.
5012 (vrmlsldavhaxq_p): Remove.
5013 (vrmlaldavhaq_s32): Remove.
5014 (vrmlaldavhaq_u32): Remove.
5015 (vrmlaldavhaxq_s32): Remove.
5016 (vrmlsldavhaq_s32): Remove.
5017 (vrmlsldavhaxq_s32): Remove.
5018 (vrmlaldavhaq_p_s32): Remove.
5019 (vrmlaldavhaq_p_u32): Remove.
5020 (vrmlaldavhaxq_p_s32): Remove.
5021 (vrmlsldavhaq_p_s32): Remove.
5022 (vrmlsldavhaxq_p_s32): Remove.
5023 (__arm_vrmlaldavhaq_s32): Remove.
5024 (__arm_vrmlaldavhaq_u32): Remove.
5025 (__arm_vrmlaldavhaxq_s32): Remove.
5026 (__arm_vrmlsldavhaq_s32): Remove.
5027 (__arm_vrmlsldavhaxq_s32): Remove.
5028 (__arm_vrmlaldavhaq_p_s32): Remove.
5029 (__arm_vrmlaldavhaq_p_u32): Remove.
5030 (__arm_vrmlaldavhaxq_p_s32): Remove.
5031 (__arm_vrmlsldavhaq_p_s32): Remove.
5032 (__arm_vrmlsldavhaxq_p_s32): Remove.
5033 (__arm_vrmlaldavhaq): Remove.
5034 (__arm_vrmlaldavhaxq): Remove.
5035 (__arm_vrmlsldavhaq): Remove.
5036 (__arm_vrmlsldavhaxq): Remove.
5037 (__arm_vrmlaldavhaq_p): Remove.
5038 (__arm_vrmlaldavhaxq_p): Remove.
5039 (__arm_vrmlsldavhaq_p): Remove.
5040 (__arm_vrmlsldavhaxq_p): Remove.
5041
5042 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
5043
5044 * config/arm/iterators.md (MVE_VRMLxLDAVHAxQ)
5045 (MVE_VRMLxLDAVHAxQ_P): New.
5046 (mve_insn): Add vrmlaldavha, vrmlaldavhax, vrmlsldavha,
5047 vrmlsldavhax.
5048 (supf): Add VRMLALDAVHAXQ_P_S, VRMLALDAVHAXQ_S, VRMLSLDAVHAQ_P_S,
5049 VRMLSLDAVHAQ_S, VRMLSLDAVHAXQ_P_S, VRMLSLDAVHAXQ_S,
5050 VRMLALDAVHAQ_P_S.
5051 * config/arm/mve.md (mve_vrmlaldavhaq_<supf>v4si)
5052 (mve_vrmlaldavhaxq_sv4si, mve_vrmlsldavhaxq_sv4si)
5053 (mve_vrmlsldavhaq_sv4si): Merge into ...
5054 (@mve_<mve_insn>q_<supf>v4si): ... this.
5055 (mve_vrmlaldavhaq_p_sv4si, mve_vrmlaldavhaq_p_uv4si)
5056 (mve_vrmlaldavhaxq_p_sv4si, mve_vrmlsldavhaq_p_sv4si)
5057 (mve_vrmlsldavhaxq_p_sv4si): Merge into ...
5058 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
5059
5060 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
5061
5062 * config/arm/arm-mve-builtins-base.cc (vqdmullbq, vqdmulltq): New.
5063 * config/arm/arm-mve-builtins-base.def (vqdmullbq, vqdmulltq):
5064 New.
5065 * config/arm/arm-mve-builtins-base.h (vqdmullbq, vqdmulltq): New.
5066 * config/arm/arm_mve.h (vqdmulltq): Remove.
5067 (vqdmullbq): Remove.
5068 (vqdmullbq_m): Remove.
5069 (vqdmulltq_m): Remove.
5070 (vqdmulltq_s16): Remove.
5071 (vqdmulltq_n_s16): Remove.
5072 (vqdmullbq_s16): Remove.
5073 (vqdmullbq_n_s16): Remove.
5074 (vqdmulltq_s32): Remove.
5075 (vqdmulltq_n_s32): Remove.
5076 (vqdmullbq_s32): Remove.
5077 (vqdmullbq_n_s32): Remove.
5078 (vqdmullbq_m_n_s32): Remove.
5079 (vqdmullbq_m_n_s16): Remove.
5080 (vqdmullbq_m_s32): Remove.
5081 (vqdmullbq_m_s16): Remove.
5082 (vqdmulltq_m_n_s32): Remove.
5083 (vqdmulltq_m_n_s16): Remove.
5084 (vqdmulltq_m_s32): Remove.
5085 (vqdmulltq_m_s16): Remove.
5086 (__arm_vqdmulltq_s16): Remove.
5087 (__arm_vqdmulltq_n_s16): Remove.
5088 (__arm_vqdmullbq_s16): Remove.
5089 (__arm_vqdmullbq_n_s16): Remove.
5090 (__arm_vqdmulltq_s32): Remove.
5091 (__arm_vqdmulltq_n_s32): Remove.
5092 (__arm_vqdmullbq_s32): Remove.
5093 (__arm_vqdmullbq_n_s32): Remove.
5094 (__arm_vqdmullbq_m_n_s32): Remove.
5095 (__arm_vqdmullbq_m_n_s16): Remove.
5096 (__arm_vqdmullbq_m_s32): Remove.
5097 (__arm_vqdmullbq_m_s16): Remove.
5098 (__arm_vqdmulltq_m_n_s32): Remove.
5099 (__arm_vqdmulltq_m_n_s16): Remove.
5100 (__arm_vqdmulltq_m_s32): Remove.
5101 (__arm_vqdmulltq_m_s16): Remove.
5102 (__arm_vqdmulltq): Remove.
5103 (__arm_vqdmullbq): Remove.
5104 (__arm_vqdmullbq_m): Remove.
5105 (__arm_vqdmulltq_m): Remove.
5106
5107 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
5108
5109 * config/arm/iterators.md (MVE_VQDMULLxQ, MVE_VQDMULLxQ_M)
5110 (MVE_VQDMULLxQ_M_N, MVE_VQDMULLxQ_N): New.
5111 (mve_insn): Add vqdmullb, vqdmullt.
5112 (supf): Add VQDMULLBQ_S, VQDMULLBQ_M_S, VQDMULLBQ_M_N_S,
5113 VQDMULLBQ_N_S, VQDMULLTQ_S, VQDMULLTQ_M_S, VQDMULLTQ_M_N_S,
5114 VQDMULLTQ_N_S.
5115 * config/arm/mve.md (mve_vqdmullbq_n_s<mode>)
5116 (mve_vqdmulltq_n_s<mode>): Merge into ...
5117 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
5118 (mve_vqdmullbq_s<mode>, mve_vqdmulltq_s<mode>): Merge into ...
5119 (@mve_<mve_insn>q_<supf><mode>): ... this.
5120 (mve_vqdmullbq_m_n_s<mode>, mve_vqdmulltq_m_n_s<mode>): Merge into
5121 ...
5122 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
5123 (mve_vqdmullbq_m_s<mode>, mve_vqdmulltq_m_s<mode>): Merge into ...
5124 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
5125
5126 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
5127
5128 * config/arm/arm-mve-builtins-shapes.cc (binary_widen_opt_n): New.
5129 * config/arm/arm-mve-builtins-shapes.h (binary_widen_opt_n): New.
5130
5131 2023-05-12 Kito Cheng <kito.cheng@sifive.com>
5132
5133 * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi):
5134 Drop unused parameter.
5135 (riscv_select_multilib): Ditto.
5136 (riscv_compute_multilib): Update call site of
5137 riscv_select_multilib_by_abi and riscv_select_multilib_by_abi.
5138
5139 2023-05-12 Juzhe Zhong <juzhe.zhong@rivai.ai>
5140
5141 * config/riscv/autovec.md (vec_init<mode><vel>): New pattern.
5142 * config/riscv/riscv-protos.h (expand_vec_init): New function.
5143 * config/riscv/riscv-v.cc (class rvv_builder): New class.
5144 (rvv_builder::can_duplicate_repeating_sequence_p): New function.
5145 (rvv_builder::get_merged_repeating_sequence): Ditto.
5146 (expand_vector_init_insert_elems): Ditto.
5147 (expand_vec_init): Ditto.
5148 * config/riscv/vector-iterators.md: New attribute.
5149
5150 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
5151
5152 * config/rs6000/rs6000-builtins.def
5153 (__builtin_vsx_scalar_insert_exp): Replace bif-pattern from xsiexpdp
5154 to xsiexpdp_di.
5155 (__builtin_vsx_scalar_insert_exp_dp): Replace bif-pattern from
5156 xsiexpdpf to xsiexpdpf_di.
5157 * config/rs6000/vsx.md (xsiexpdp): Rename to...
5158 (xsiexpdp_<mode>): ..., set the mode of second operand to GPR and
5159 replace TARGET_64BIT with TARGET_POWERPC64.
5160 (xsiexpdpf): Rename to...
5161 (xsiexpdpf_<mode>): ..., set the mode of second operand to GPR and
5162 replace TARGET_64BIT with TARGET_POWERPC64.
5163
5164 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
5165
5166 * config/rs6000/rs6000-builtins.def
5167 (__builtin_vsx_scalar_extract_sig): Set return type to const signed
5168 long long.
5169 * config/rs6000/vsx.md (xsxsigdp): Replace TARGET_64BIT with
5170 TARGET_POWERPC64.
5171
5172 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
5173
5174 * config/rs6000/rs6000-builtins.def
5175 (__builtin_vsx_scalar_extract_exp): Set return type to const signed
5176 int and set its bif-pattern to xsxexpdp_si, move it from power9-64
5177 to power9 catalog.
5178 * config/rs6000/vsx.md (xsxexpdp): Rename to ...
5179 (xsxexpdp_<mode>): ..., set mode of operand 0 to GPR and remove
5180 TARGET_64BIT check.
5181 * doc/extend.texi (scalar_extract_exp): Remove 64-bit environment
5182 requirement when it has a 64-bit argument.
5183
5184 2023-05-12 Pan Li <pan2.li@intel.com>
5185 Richard Sandiford <richard.sandiford@arm.com>
5186 Richard Biener <rguenther@suse.de>
5187 Jakub Jelinek <jakub@redhat.com>
5188
5189 * mux-utils.h: Add overload operator == and != for pointer_mux.
5190 * var-tracking.cc: Included mux-utils.h for pointer_tmux.
5191 (decl_or_value): Changed from void * to pointer_mux<tree_node, rtx_def>.
5192 (dv_is_decl_p): Reconciled to the new type, aka pointer_mux.
5193 (dv_as_decl): Ditto.
5194 (dv_as_opaque): Removed due to unnecessary.
5195 (struct variable_hasher): Take decl_or_value as compare_type.
5196 (variable_hasher::equal): Diito.
5197 (dv_from_decl): Reconciled to the new type, aka pointer_mux.
5198 (dv_from_value): Ditto.
5199 (attrs_list_member): Ditto.
5200 (vars_copy): Ditto.
5201 (var_reg_decl_set): Ditto.
5202 (var_reg_delete_and_set): Ditto.
5203 (find_loc_in_1pdv): Ditto.
5204 (canonicalize_values_star): Ditto.
5205 (variable_post_merge_new_vals): Ditto.
5206 (dump_onepart_variable_differences): Ditto.
5207 (variable_different_p): Ditto.
5208 (set_slot_part): Ditto.
5209 (clobber_slot_part): Ditto.
5210 (clobber_variable_part): Ditto.
5211
5212 2023-05-11 mtsamis <manolis.tsamis@vrull.eu>
5213
5214 * match.pd: simplify vector shift + bit_and + multiply.
5215
5216 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5217
5218 * config/arm/arm-mve-builtins-base.cc (vmlaq, vmlasq, vqdmlahq)
5219 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
5220 * config/arm/arm-mve-builtins-base.def (vmlaq, vmlasq, vqdmlahq)
5221 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
5222 * config/arm/arm-mve-builtins-base.h (vmlaq, vmlasq, vqdmlahq)
5223 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
5224 * config/arm/arm-mve-builtins.cc
5225 (function_instance::has_inactive_argument): Handle vmlaq, vmlasq,
5226 vqdmlahq, vqdmlashq, vqrdmlahq, vqrdmlashq.
5227 * config/arm/arm_mve.h (vqrdmlashq): Remove.
5228 (vqrdmlahq): Remove.
5229 (vqdmlashq): Remove.
5230 (vqdmlahq): Remove.
5231 (vmlasq): Remove.
5232 (vmlaq): Remove.
5233 (vmlaq_m): Remove.
5234 (vmlasq_m): Remove.
5235 (vqdmlashq_m): Remove.
5236 (vqdmlahq_m): Remove.
5237 (vqrdmlahq_m): Remove.
5238 (vqrdmlashq_m): Remove.
5239 (vmlasq_n_u8): Remove.
5240 (vmlaq_n_u8): Remove.
5241 (vqrdmlashq_n_s8): Remove.
5242 (vqrdmlahq_n_s8): Remove.
5243 (vqdmlahq_n_s8): Remove.
5244 (vqdmlashq_n_s8): Remove.
5245 (vmlasq_n_s8): Remove.
5246 (vmlaq_n_s8): Remove.
5247 (vmlasq_n_u16): Remove.
5248 (vmlaq_n_u16): Remove.
5249 (vqrdmlashq_n_s16): Remove.
5250 (vqrdmlahq_n_s16): Remove.
5251 (vqdmlashq_n_s16): Remove.
5252 (vqdmlahq_n_s16): Remove.
5253 (vmlasq_n_s16): Remove.
5254 (vmlaq_n_s16): Remove.
5255 (vmlasq_n_u32): Remove.
5256 (vmlaq_n_u32): Remove.
5257 (vqrdmlashq_n_s32): Remove.
5258 (vqrdmlahq_n_s32): Remove.
5259 (vqdmlashq_n_s32): Remove.
5260 (vqdmlahq_n_s32): Remove.
5261 (vmlasq_n_s32): Remove.
5262 (vmlaq_n_s32): Remove.
5263 (vmlaq_m_n_s8): Remove.
5264 (vmlaq_m_n_s32): Remove.
5265 (vmlaq_m_n_s16): Remove.
5266 (vmlaq_m_n_u8): Remove.
5267 (vmlaq_m_n_u32): Remove.
5268 (vmlaq_m_n_u16): Remove.
5269 (vmlasq_m_n_s8): Remove.
5270 (vmlasq_m_n_s32): Remove.
5271 (vmlasq_m_n_s16): Remove.
5272 (vmlasq_m_n_u8): Remove.
5273 (vmlasq_m_n_u32): Remove.
5274 (vmlasq_m_n_u16): Remove.
5275 (vqdmlashq_m_n_s8): Remove.
5276 (vqdmlashq_m_n_s32): Remove.
5277 (vqdmlashq_m_n_s16): Remove.
5278 (vqdmlahq_m_n_s8): Remove.
5279 (vqdmlahq_m_n_s32): Remove.
5280 (vqdmlahq_m_n_s16): Remove.
5281 (vqrdmlahq_m_n_s8): Remove.
5282 (vqrdmlahq_m_n_s32): Remove.
5283 (vqrdmlahq_m_n_s16): Remove.
5284 (vqrdmlashq_m_n_s8): Remove.
5285 (vqrdmlashq_m_n_s32): Remove.
5286 (vqrdmlashq_m_n_s16): Remove.
5287 (__arm_vmlasq_n_u8): Remove.
5288 (__arm_vmlaq_n_u8): Remove.
5289 (__arm_vqrdmlashq_n_s8): Remove.
5290 (__arm_vqdmlashq_n_s8): Remove.
5291 (__arm_vqrdmlahq_n_s8): Remove.
5292 (__arm_vqdmlahq_n_s8): Remove.
5293 (__arm_vmlasq_n_s8): Remove.
5294 (__arm_vmlaq_n_s8): Remove.
5295 (__arm_vmlasq_n_u16): Remove.
5296 (__arm_vmlaq_n_u16): Remove.
5297 (__arm_vqrdmlashq_n_s16): Remove.
5298 (__arm_vqdmlashq_n_s16): Remove.
5299 (__arm_vqrdmlahq_n_s16): Remove.
5300 (__arm_vqdmlahq_n_s16): Remove.
5301 (__arm_vmlasq_n_s16): Remove.
5302 (__arm_vmlaq_n_s16): Remove.
5303 (__arm_vmlasq_n_u32): Remove.
5304 (__arm_vmlaq_n_u32): Remove.
5305 (__arm_vqrdmlashq_n_s32): Remove.
5306 (__arm_vqdmlashq_n_s32): Remove.
5307 (__arm_vqrdmlahq_n_s32): Remove.
5308 (__arm_vqdmlahq_n_s32): Remove.
5309 (__arm_vmlasq_n_s32): Remove.
5310 (__arm_vmlaq_n_s32): Remove.
5311 (__arm_vmlaq_m_n_s8): Remove.
5312 (__arm_vmlaq_m_n_s32): Remove.
5313 (__arm_vmlaq_m_n_s16): Remove.
5314 (__arm_vmlaq_m_n_u8): Remove.
5315 (__arm_vmlaq_m_n_u32): Remove.
5316 (__arm_vmlaq_m_n_u16): Remove.
5317 (__arm_vmlasq_m_n_s8): Remove.
5318 (__arm_vmlasq_m_n_s32): Remove.
5319 (__arm_vmlasq_m_n_s16): Remove.
5320 (__arm_vmlasq_m_n_u8): Remove.
5321 (__arm_vmlasq_m_n_u32): Remove.
5322 (__arm_vmlasq_m_n_u16): Remove.
5323 (__arm_vqdmlahq_m_n_s8): Remove.
5324 (__arm_vqdmlahq_m_n_s32): Remove.
5325 (__arm_vqdmlahq_m_n_s16): Remove.
5326 (__arm_vqrdmlahq_m_n_s8): Remove.
5327 (__arm_vqrdmlahq_m_n_s32): Remove.
5328 (__arm_vqrdmlahq_m_n_s16): Remove.
5329 (__arm_vqrdmlashq_m_n_s8): Remove.
5330 (__arm_vqrdmlashq_m_n_s32): Remove.
5331 (__arm_vqrdmlashq_m_n_s16): Remove.
5332 (__arm_vqdmlashq_m_n_s8): Remove.
5333 (__arm_vqdmlashq_m_n_s16): Remove.
5334 (__arm_vqdmlashq_m_n_s32): Remove.
5335 (__arm_vmlasq): Remove.
5336 (__arm_vmlaq): Remove.
5337 (__arm_vqrdmlashq): Remove.
5338 (__arm_vqdmlashq): Remove.
5339 (__arm_vqrdmlahq): Remove.
5340 (__arm_vqdmlahq): Remove.
5341 (__arm_vmlaq_m): Remove.
5342 (__arm_vmlasq_m): Remove.
5343 (__arm_vqdmlahq_m): Remove.
5344 (__arm_vqrdmlahq_m): Remove.
5345 (__arm_vqrdmlashq_m): Remove.
5346 (__arm_vqdmlashq_m): Remove.
5347
5348 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5349
5350 * config/arm/iterators.md (MVE_VMLxQ_N): New.
5351 (mve_insn): Add vmla, vmlas, vqdmlah, vqdmlash, vqrdmlah,
5352 vqrdmlash.
5353 (supf): Add VQDMLAHQ_N_S, VQDMLASHQ_N_S, VQRDMLAHQ_N_S,
5354 VQRDMLASHQ_N_S.
5355 * config/arm/mve.md (mve_vmlaq_n_<supf><mode>)
5356 (mve_vmlasq_n_<supf><mode>, mve_vqdmlahq_n_<supf><mode>)
5357 (mve_vqdmlashq_n_<supf><mode>, mve_vqrdmlahq_n_<supf><mode>)
5358 (mve_vqrdmlashq_n_<supf><mode>): Merge into ...
5359 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
5360
5361 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5362
5363 * config/arm/arm-mve-builtins-shapes.cc (ternary_n): New.
5364 * config/arm/arm-mve-builtins-shapes.h (ternary_n): New.
5365
5366 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5367
5368 * config/arm/arm-mve-builtins-base.cc (vqdmladhq, vqdmladhxq)
5369 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
5370 (vqrdmlsdhxq): New.
5371 * config/arm/arm-mve-builtins-base.def (vqdmladhq, vqdmladhxq)
5372 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
5373 (vqrdmlsdhxq): New.
5374 * config/arm/arm-mve-builtins-base.h (vqdmladhq, vqdmladhxq)
5375 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
5376 (vqrdmlsdhxq): New.
5377 * config/arm/arm-mve-builtins.cc
5378 (function_instance::has_inactive_argument): Handle vqrdmladhq,
5379 vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq vqdmladhq, vqdmladhxq,
5380 vqdmlsdhq, vqdmlsdhxq.
5381 * config/arm/arm_mve.h (vqrdmlsdhxq): Remove.
5382 (vqrdmlsdhq): Remove.
5383 (vqrdmladhxq): Remove.
5384 (vqrdmladhq): Remove.
5385 (vqdmlsdhxq): Remove.
5386 (vqdmlsdhq): Remove.
5387 (vqdmladhxq): Remove.
5388 (vqdmladhq): Remove.
5389 (vqdmladhq_m): Remove.
5390 (vqdmladhxq_m): Remove.
5391 (vqdmlsdhq_m): Remove.
5392 (vqdmlsdhxq_m): Remove.
5393 (vqrdmladhq_m): Remove.
5394 (vqrdmladhxq_m): Remove.
5395 (vqrdmlsdhq_m): Remove.
5396 (vqrdmlsdhxq_m): Remove.
5397 (vqrdmlsdhxq_s8): Remove.
5398 (vqrdmlsdhq_s8): Remove.
5399 (vqrdmladhxq_s8): Remove.
5400 (vqrdmladhq_s8): Remove.
5401 (vqdmlsdhxq_s8): Remove.
5402 (vqdmlsdhq_s8): Remove.
5403 (vqdmladhxq_s8): Remove.
5404 (vqdmladhq_s8): Remove.
5405 (vqrdmlsdhxq_s16): Remove.
5406 (vqrdmlsdhq_s16): Remove.
5407 (vqrdmladhxq_s16): Remove.
5408 (vqrdmladhq_s16): Remove.
5409 (vqdmlsdhxq_s16): Remove.
5410 (vqdmlsdhq_s16): Remove.
5411 (vqdmladhxq_s16): Remove.
5412 (vqdmladhq_s16): Remove.
5413 (vqrdmlsdhxq_s32): Remove.
5414 (vqrdmlsdhq_s32): Remove.
5415 (vqrdmladhxq_s32): Remove.
5416 (vqrdmladhq_s32): Remove.
5417 (vqdmlsdhxq_s32): Remove.
5418 (vqdmlsdhq_s32): Remove.
5419 (vqdmladhxq_s32): Remove.
5420 (vqdmladhq_s32): Remove.
5421 (vqdmladhq_m_s8): Remove.
5422 (vqdmladhq_m_s32): Remove.
5423 (vqdmladhq_m_s16): Remove.
5424 (vqdmladhxq_m_s8): Remove.
5425 (vqdmladhxq_m_s32): Remove.
5426 (vqdmladhxq_m_s16): Remove.
5427 (vqdmlsdhq_m_s8): Remove.
5428 (vqdmlsdhq_m_s32): Remove.
5429 (vqdmlsdhq_m_s16): Remove.
5430 (vqdmlsdhxq_m_s8): Remove.
5431 (vqdmlsdhxq_m_s32): Remove.
5432 (vqdmlsdhxq_m_s16): Remove.
5433 (vqrdmladhq_m_s8): Remove.
5434 (vqrdmladhq_m_s32): Remove.
5435 (vqrdmladhq_m_s16): Remove.
5436 (vqrdmladhxq_m_s8): Remove.
5437 (vqrdmladhxq_m_s32): Remove.
5438 (vqrdmladhxq_m_s16): Remove.
5439 (vqrdmlsdhq_m_s8): Remove.
5440 (vqrdmlsdhq_m_s32): Remove.
5441 (vqrdmlsdhq_m_s16): Remove.
5442 (vqrdmlsdhxq_m_s8): Remove.
5443 (vqrdmlsdhxq_m_s32): Remove.
5444 (vqrdmlsdhxq_m_s16): Remove.
5445 (__arm_vqrdmlsdhxq_s8): Remove.
5446 (__arm_vqrdmlsdhq_s8): Remove.
5447 (__arm_vqrdmladhxq_s8): Remove.
5448 (__arm_vqrdmladhq_s8): Remove.
5449 (__arm_vqdmlsdhxq_s8): Remove.
5450 (__arm_vqdmlsdhq_s8): Remove.
5451 (__arm_vqdmladhxq_s8): Remove.
5452 (__arm_vqdmladhq_s8): Remove.
5453 (__arm_vqrdmlsdhxq_s16): Remove.
5454 (__arm_vqrdmlsdhq_s16): Remove.
5455 (__arm_vqrdmladhxq_s16): Remove.
5456 (__arm_vqrdmladhq_s16): Remove.
5457 (__arm_vqdmlsdhxq_s16): Remove.
5458 (__arm_vqdmlsdhq_s16): Remove.
5459 (__arm_vqdmladhxq_s16): Remove.
5460 (__arm_vqdmladhq_s16): Remove.
5461 (__arm_vqrdmlsdhxq_s32): Remove.
5462 (__arm_vqrdmlsdhq_s32): Remove.
5463 (__arm_vqrdmladhxq_s32): Remove.
5464 (__arm_vqrdmladhq_s32): Remove.
5465 (__arm_vqdmlsdhxq_s32): Remove.
5466 (__arm_vqdmlsdhq_s32): Remove.
5467 (__arm_vqdmladhxq_s32): Remove.
5468 (__arm_vqdmladhq_s32): Remove.
5469 (__arm_vqdmladhq_m_s8): Remove.
5470 (__arm_vqdmladhq_m_s32): Remove.
5471 (__arm_vqdmladhq_m_s16): Remove.
5472 (__arm_vqdmladhxq_m_s8): Remove.
5473 (__arm_vqdmladhxq_m_s32): Remove.
5474 (__arm_vqdmladhxq_m_s16): Remove.
5475 (__arm_vqdmlsdhq_m_s8): Remove.
5476 (__arm_vqdmlsdhq_m_s32): Remove.
5477 (__arm_vqdmlsdhq_m_s16): Remove.
5478 (__arm_vqdmlsdhxq_m_s8): Remove.
5479 (__arm_vqdmlsdhxq_m_s32): Remove.
5480 (__arm_vqdmlsdhxq_m_s16): Remove.
5481 (__arm_vqrdmladhq_m_s8): Remove.
5482 (__arm_vqrdmladhq_m_s32): Remove.
5483 (__arm_vqrdmladhq_m_s16): Remove.
5484 (__arm_vqrdmladhxq_m_s8): Remove.
5485 (__arm_vqrdmladhxq_m_s32): Remove.
5486 (__arm_vqrdmladhxq_m_s16): Remove.
5487 (__arm_vqrdmlsdhq_m_s8): Remove.
5488 (__arm_vqrdmlsdhq_m_s32): Remove.
5489 (__arm_vqrdmlsdhq_m_s16): Remove.
5490 (__arm_vqrdmlsdhxq_m_s8): Remove.
5491 (__arm_vqrdmlsdhxq_m_s32): Remove.
5492 (__arm_vqrdmlsdhxq_m_s16): Remove.
5493 (__arm_vqrdmlsdhxq): Remove.
5494 (__arm_vqrdmlsdhq): Remove.
5495 (__arm_vqrdmladhxq): Remove.
5496 (__arm_vqrdmladhq): Remove.
5497 (__arm_vqdmlsdhxq): Remove.
5498 (__arm_vqdmlsdhq): Remove.
5499 (__arm_vqdmladhxq): Remove.
5500 (__arm_vqdmladhq): Remove.
5501 (__arm_vqdmladhq_m): Remove.
5502 (__arm_vqdmladhxq_m): Remove.
5503 (__arm_vqdmlsdhq_m): Remove.
5504 (__arm_vqdmlsdhxq_m): Remove.
5505 (__arm_vqrdmladhq_m): Remove.
5506 (__arm_vqrdmladhxq_m): Remove.
5507 (__arm_vqrdmlsdhq_m): Remove.
5508 (__arm_vqrdmlsdhxq_m): Remove.
5509
5510 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5511
5512 * config/arm/iterators.md (MVE_VQxDMLxDHxQ_S): New.
5513 (mve_insn): Add vqdmladh, vqdmladhx, vqdmlsdh, vqdmlsdhx,
5514 vqrdmladh, vqrdmladhx, vqrdmlsdh, vqrdmlsdhx.
5515 (supf): Add VQDMLADHQ_S, VQDMLADHXQ_S, VQDMLSDHQ_S, VQDMLSDHXQ_S,
5516 VQRDMLADHQ_S,VQRDMLADHXQ_S, VQRDMLSDHQ_S, VQRDMLSDHXQ_S.
5517 * config/arm/mve.md (mve_vqrdmladhq_s<mode>)
5518 (mve_vqrdmladhxq_s<mode>, mve_vqrdmlsdhq_s<mode>)
5519 (mve_vqrdmlsdhxq_s<mode>, mve_vqdmlsdhxq_s<mode>)
5520 (mve_vqdmlsdhq_s<mode>, mve_vqdmladhxq_s<mode>)
5521 (mve_vqdmladhq_s<mode>): Merge into ...
5522 (@mve_<mve_insn>q_<supf><mode>): ... this.
5523
5524 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5525
5526 * config/arm/arm-mve-builtins-shapes.cc (ternary): New.
5527 * config/arm/arm-mve-builtins-shapes.h (ternary): New.
5528
5529 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5530
5531 * config/arm/arm-mve-builtins-base.cc (vmlaldavaq, vmlaldavaxq)
5532 (vmlsldavaq, vmlsldavaxq): New.
5533 * config/arm/arm-mve-builtins-base.def (vmlaldavaq, vmlaldavaxq)
5534 (vmlsldavaq, vmlsldavaxq): New.
5535 * config/arm/arm-mve-builtins-base.h (vmlaldavaq, vmlaldavaxq)
5536 (vmlsldavaq, vmlsldavaxq): New.
5537 * config/arm/arm_mve.h (vmlaldavaq): Remove.
5538 (vmlaldavaxq): Remove.
5539 (vmlsldavaq): Remove.
5540 (vmlsldavaxq): Remove.
5541 (vmlaldavaq_p): Remove.
5542 (vmlaldavaxq_p): Remove.
5543 (vmlsldavaq_p): Remove.
5544 (vmlsldavaxq_p): Remove.
5545 (vmlaldavaq_s16): Remove.
5546 (vmlaldavaxq_s16): Remove.
5547 (vmlsldavaq_s16): Remove.
5548 (vmlsldavaxq_s16): Remove.
5549 (vmlaldavaq_u16): Remove.
5550 (vmlaldavaq_s32): Remove.
5551 (vmlaldavaxq_s32): Remove.
5552 (vmlsldavaq_s32): Remove.
5553 (vmlsldavaxq_s32): Remove.
5554 (vmlaldavaq_u32): Remove.
5555 (vmlaldavaq_p_s32): Remove.
5556 (vmlaldavaq_p_s16): Remove.
5557 (vmlaldavaq_p_u32): Remove.
5558 (vmlaldavaq_p_u16): Remove.
5559 (vmlaldavaxq_p_s32): Remove.
5560 (vmlaldavaxq_p_s16): Remove.
5561 (vmlsldavaq_p_s32): Remove.
5562 (vmlsldavaq_p_s16): Remove.
5563 (vmlsldavaxq_p_s32): Remove.
5564 (vmlsldavaxq_p_s16): Remove.
5565 (__arm_vmlaldavaq_s16): Remove.
5566 (__arm_vmlaldavaxq_s16): Remove.
5567 (__arm_vmlsldavaq_s16): Remove.
5568 (__arm_vmlsldavaxq_s16): Remove.
5569 (__arm_vmlaldavaq_u16): Remove.
5570 (__arm_vmlaldavaq_s32): Remove.
5571 (__arm_vmlaldavaxq_s32): Remove.
5572 (__arm_vmlsldavaq_s32): Remove.
5573 (__arm_vmlsldavaxq_s32): Remove.
5574 (__arm_vmlaldavaq_u32): Remove.
5575 (__arm_vmlaldavaq_p_s32): Remove.
5576 (__arm_vmlaldavaq_p_s16): Remove.
5577 (__arm_vmlaldavaq_p_u32): Remove.
5578 (__arm_vmlaldavaq_p_u16): Remove.
5579 (__arm_vmlaldavaxq_p_s32): Remove.
5580 (__arm_vmlaldavaxq_p_s16): Remove.
5581 (__arm_vmlsldavaq_p_s32): Remove.
5582 (__arm_vmlsldavaq_p_s16): Remove.
5583 (__arm_vmlsldavaxq_p_s32): Remove.
5584 (__arm_vmlsldavaxq_p_s16): Remove.
5585 (__arm_vmlaldavaq): Remove.
5586 (__arm_vmlaldavaxq): Remove.
5587 (__arm_vmlsldavaq): Remove.
5588 (__arm_vmlsldavaxq): Remove.
5589 (__arm_vmlaldavaq_p): Remove.
5590 (__arm_vmlaldavaxq_p): Remove.
5591 (__arm_vmlsldavaq_p): Remove.
5592 (__arm_vmlsldavaxq_p): Remove.
5593
5594 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5595
5596 * config/arm/iterators.md (MVE_VMLxLDAVAxQ, MVE_VMLxLDAVAxQ_P):
5597 New.
5598 (mve_insn): Add vmlaldava, vmlaldavax, vmlsldava, vmlsldavax.
5599 (supf): Add VMLALDAVAXQ_P_S, VMLALDAVAXQ_S, VMLSLDAVAQ_P_S,
5600 VMLSLDAVAQ_S, VMLSLDAVAXQ_P_S, VMLSLDAVAXQ_S.
5601 * config/arm/mve.md (mve_vmlaldavaq_<supf><mode>)
5602 (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
5603 (mve_vmlaldavaxq_s<mode>): Merge into ...
5604 (@mve_<mve_insn>q_<supf><mode>): ... this.
5605 (mve_vmlaldavaq_p_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>)
5606 (mve_vmlsldavaq_p_s<mode>, mve_vmlsldavaxq_p_s<mode>): Merge into
5607 ...
5608 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
5609
5610 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5611
5612 * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int64): New.
5613 * config/arm/arm-mve-builtins-shapes.h (binary_acca_int64): New.
5614
5615 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5616
5617 * config/arm/arm-mve-builtins-base.cc (vrmlaldavhq, vrmlaldavhxq)
5618 (vrmlsldavhq, vrmlsldavhxq): New.
5619 * config/arm/arm-mve-builtins-base.def (vrmlaldavhq, vrmlaldavhxq)
5620 (vrmlsldavhq, vrmlsldavhxq): New.
5621 * config/arm/arm-mve-builtins-base.h (vrmlaldavhq, vrmlaldavhxq)
5622 (vrmlsldavhq, vrmlsldavhxq): New.
5623 * config/arm/arm-mve-builtins-functions.h
5624 (unspec_mve_function_exact_insn_pred_p): Handle vrmlaldavhq,
5625 vrmlaldavhxq, vrmlsldavhq, vrmlsldavhxq.
5626 * config/arm/arm_mve.h (vrmlaldavhq): Remove.
5627 (vrmlsldavhxq): Remove.
5628 (vrmlsldavhq): Remove.
5629 (vrmlaldavhxq): Remove.
5630 (vrmlaldavhq_p): Remove.
5631 (vrmlaldavhxq_p): Remove.
5632 (vrmlsldavhq_p): Remove.
5633 (vrmlsldavhxq_p): Remove.
5634 (vrmlaldavhq_u32): Remove.
5635 (vrmlsldavhxq_s32): Remove.
5636 (vrmlsldavhq_s32): Remove.
5637 (vrmlaldavhxq_s32): Remove.
5638 (vrmlaldavhq_s32): Remove.
5639 (vrmlaldavhq_p_s32): Remove.
5640 (vrmlaldavhxq_p_s32): Remove.
5641 (vrmlsldavhq_p_s32): Remove.
5642 (vrmlsldavhxq_p_s32): Remove.
5643 (vrmlaldavhq_p_u32): Remove.
5644 (__arm_vrmlaldavhq_u32): Remove.
5645 (__arm_vrmlsldavhxq_s32): Remove.
5646 (__arm_vrmlsldavhq_s32): Remove.
5647 (__arm_vrmlaldavhxq_s32): Remove.
5648 (__arm_vrmlaldavhq_s32): Remove.
5649 (__arm_vrmlaldavhq_p_s32): Remove.
5650 (__arm_vrmlaldavhxq_p_s32): Remove.
5651 (__arm_vrmlsldavhq_p_s32): Remove.
5652 (__arm_vrmlsldavhxq_p_s32): Remove.
5653 (__arm_vrmlaldavhq_p_u32): Remove.
5654 (__arm_vrmlaldavhq): Remove.
5655 (__arm_vrmlsldavhxq): Remove.
5656 (__arm_vrmlsldavhq): Remove.
5657 (__arm_vrmlaldavhxq): Remove.
5658 (__arm_vrmlaldavhq_p): Remove.
5659 (__arm_vrmlaldavhxq_p): Remove.
5660 (__arm_vrmlsldavhq_p): Remove.
5661 (__arm_vrmlsldavhxq_p): Remove.
5662
5663 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5664
5665 * config/arm/iterators.md (MVE_VRMLxLDAVxQ, MVE_VRMLxLDAVHxQ_P):
5666 New.
5667 (mve_insn): Add vrmlaldavh, vrmlaldavhx, vrmlsldavh, vrmlsldavhx.
5668 (supf): Add VRMLALDAVHXQ_P_S, VRMLALDAVHXQ_S, VRMLSLDAVHQ_P_S,
5669 VRMLSLDAVHQ_S, VRMLSLDAVHXQ_P_S, VRMLSLDAVHXQ_S.
5670 * config/arm/mve.md (mve_vrmlaldavhxq_sv4si)
5671 (mve_vrmlsldavhq_sv4si, mve_vrmlsldavhxq_sv4si)
5672 (mve_vrmlaldavhq_<supf>v4si): Merge into ...
5673 (@mve_<mve_insn>q_<supf>v4si): ... this.
5674 (mve_vrmlaldavhxq_p_sv4si, mve_vrmlsldavhq_p_sv4si)
5675 (mve_vrmlsldavhxq_p_sv4si, mve_vrmlaldavhq_p_<supf>v4si): Merge
5676 into ...
5677 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
5678
5679 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5680
5681 * config/arm/arm-mve-builtins-base.cc (vmlaldavq, vmlaldavxq)
5682 (vmlsldavq, vmlsldavxq): New.
5683 * config/arm/arm-mve-builtins-base.def (vmlaldavq, vmlaldavxq)
5684 (vmlsldavq, vmlsldavxq): New.
5685 * config/arm/arm-mve-builtins-base.h (vmlaldavq, vmlaldavxq)
5686 (vmlsldavq, vmlsldavxq): New.
5687 * config/arm/arm_mve.h (vmlaldavq): Remove.
5688 (vmlsldavxq): Remove.
5689 (vmlsldavq): Remove.
5690 (vmlaldavxq): Remove.
5691 (vmlaldavq_p): Remove.
5692 (vmlaldavxq_p): Remove.
5693 (vmlsldavq_p): Remove.
5694 (vmlsldavxq_p): Remove.
5695 (vmlaldavq_u16): Remove.
5696 (vmlsldavxq_s16): Remove.
5697 (vmlsldavq_s16): Remove.
5698 (vmlaldavxq_s16): Remove.
5699 (vmlaldavq_s16): Remove.
5700 (vmlaldavq_u32): Remove.
5701 (vmlsldavxq_s32): Remove.
5702 (vmlsldavq_s32): Remove.
5703 (vmlaldavxq_s32): Remove.
5704 (vmlaldavq_s32): Remove.
5705 (vmlaldavq_p_s16): Remove.
5706 (vmlaldavxq_p_s16): Remove.
5707 (vmlsldavq_p_s16): Remove.
5708 (vmlsldavxq_p_s16): Remove.
5709 (vmlaldavq_p_u16): Remove.
5710 (vmlaldavq_p_s32): Remove.
5711 (vmlaldavxq_p_s32): Remove.
5712 (vmlsldavq_p_s32): Remove.
5713 (vmlsldavxq_p_s32): Remove.
5714 (vmlaldavq_p_u32): Remove.
5715 (__arm_vmlaldavq_u16): Remove.
5716 (__arm_vmlsldavxq_s16): Remove.
5717 (__arm_vmlsldavq_s16): Remove.
5718 (__arm_vmlaldavxq_s16): Remove.
5719 (__arm_vmlaldavq_s16): Remove.
5720 (__arm_vmlaldavq_u32): Remove.
5721 (__arm_vmlsldavxq_s32): Remove.
5722 (__arm_vmlsldavq_s32): Remove.
5723 (__arm_vmlaldavxq_s32): Remove.
5724 (__arm_vmlaldavq_s32): Remove.
5725 (__arm_vmlaldavq_p_s16): Remove.
5726 (__arm_vmlaldavxq_p_s16): Remove.
5727 (__arm_vmlsldavq_p_s16): Remove.
5728 (__arm_vmlsldavxq_p_s16): Remove.
5729 (__arm_vmlaldavq_p_u16): Remove.
5730 (__arm_vmlaldavq_p_s32): Remove.
5731 (__arm_vmlaldavxq_p_s32): Remove.
5732 (__arm_vmlsldavq_p_s32): Remove.
5733 (__arm_vmlsldavxq_p_s32): Remove.
5734 (__arm_vmlaldavq_p_u32): Remove.
5735 (__arm_vmlaldavq): Remove.
5736 (__arm_vmlsldavxq): Remove.
5737 (__arm_vmlsldavq): Remove.
5738 (__arm_vmlaldavxq): Remove.
5739 (__arm_vmlaldavq_p): Remove.
5740 (__arm_vmlaldavxq_p): Remove.
5741 (__arm_vmlsldavq_p): Remove.
5742 (__arm_vmlsldavxq_p): Remove.
5743
5744 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5745
5746 * config/arm/iterators.md (MVE_VMLxLDAVxQ, MVE_VMLxLDAVxQ_P): New.
5747 (mve_insn): Add vmlaldav, vmlaldavx, vmlsldav, vmlsldavx.
5748 (supf): Add VMLALDAVXQ_S, VMLSLDAVQ_S, VMLSLDAVXQ_S,
5749 VMLALDAVXQ_P_S, VMLSLDAVQ_P_S, VMLSLDAVXQ_P_S.
5750 * config/arm/mve.md (mve_vmlaldavq_<supf><mode>)
5751 (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
5752 (mve_vmlsldavxq_s<mode>): Merge into ...
5753 (@mve_<mve_insn>q_<supf><mode>): ... this.
5754 (mve_vmlaldavq_p_<supf><mode>, mve_vmlaldavxq_p_s<mode>)
5755 (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>): Merge into
5756 ...
5757 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
5758
5759 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5760
5761 * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int64): New.
5762 * config/arm/arm-mve-builtins-shapes.h (binary_acc_int64): New.
5763
5764 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5765
5766 * config/arm/arm-mve-builtins-base.cc (vabavq): New.
5767 * config/arm/arm-mve-builtins-base.def (vabavq): New.
5768 * config/arm/arm-mve-builtins-base.h (vabavq): New.
5769 * config/arm/arm_mve.h (vabavq): Remove.
5770 (vabavq_p): Remove.
5771 (vabavq_s8): Remove.
5772 (vabavq_s16): Remove.
5773 (vabavq_s32): Remove.
5774 (vabavq_u8): Remove.
5775 (vabavq_u16): Remove.
5776 (vabavq_u32): Remove.
5777 (vabavq_p_s8): Remove.
5778 (vabavq_p_u8): Remove.
5779 (vabavq_p_s16): Remove.
5780 (vabavq_p_u16): Remove.
5781 (vabavq_p_s32): Remove.
5782 (vabavq_p_u32): Remove.
5783 (__arm_vabavq_s8): Remove.
5784 (__arm_vabavq_s16): Remove.
5785 (__arm_vabavq_s32): Remove.
5786 (__arm_vabavq_u8): Remove.
5787 (__arm_vabavq_u16): Remove.
5788 (__arm_vabavq_u32): Remove.
5789 (__arm_vabavq_p_s8): Remove.
5790 (__arm_vabavq_p_u8): Remove.
5791 (__arm_vabavq_p_s16): Remove.
5792 (__arm_vabavq_p_u16): Remove.
5793 (__arm_vabavq_p_s32): Remove.
5794 (__arm_vabavq_p_u32): Remove.
5795 (__arm_vabavq): Remove.
5796 (__arm_vabavq_p): Remove.
5797
5798 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5799
5800 * config/arm/iterators.md (mve_insn): Add vabav.
5801 * config/arm/mve.md (mve_vabavq_<supf><mode>): Rename into ...
5802 (@mve_<mve_insn>q_<supf><mode>): ... this,.
5803 (mve_vabavq_p_<supf><mode>): Rename into ...
5804 (@mve_<mve_insn>q_p_<supf><mode>): ... this,.
5805
5806 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5807
5808 * config/arm/arm-mve-builtins-base.cc (vmladavaxq, vmladavaq)
5809 (vmlsdavaq, vmlsdavaxq): New.
5810 * config/arm/arm-mve-builtins-base.def (vmladavaxq, vmladavaq)
5811 (vmlsdavaq, vmlsdavaxq): New.
5812 * config/arm/arm-mve-builtins-base.h (vmladavaxq, vmladavaq)
5813 (vmlsdavaq, vmlsdavaxq): New.
5814 * config/arm/arm_mve.h (vmladavaq): Remove.
5815 (vmlsdavaxq): Remove.
5816 (vmlsdavaq): Remove.
5817 (vmladavaxq): Remove.
5818 (vmladavaq_p): Remove.
5819 (vmladavaxq_p): Remove.
5820 (vmlsdavaq_p): Remove.
5821 (vmlsdavaxq_p): Remove.
5822 (vmladavaq_u8): Remove.
5823 (vmlsdavaxq_s8): Remove.
5824 (vmlsdavaq_s8): Remove.
5825 (vmladavaxq_s8): Remove.
5826 (vmladavaq_s8): Remove.
5827 (vmladavaq_u16): Remove.
5828 (vmlsdavaxq_s16): Remove.
5829 (vmlsdavaq_s16): Remove.
5830 (vmladavaxq_s16): Remove.
5831 (vmladavaq_s16): Remove.
5832 (vmladavaq_u32): Remove.
5833 (vmlsdavaxq_s32): Remove.
5834 (vmlsdavaq_s32): Remove.
5835 (vmladavaxq_s32): Remove.
5836 (vmladavaq_s32): Remove.
5837 (vmladavaq_p_s8): Remove.
5838 (vmladavaq_p_s32): Remove.
5839 (vmladavaq_p_s16): Remove.
5840 (vmladavaq_p_u8): Remove.
5841 (vmladavaq_p_u32): Remove.
5842 (vmladavaq_p_u16): Remove.
5843 (vmladavaxq_p_s8): Remove.
5844 (vmladavaxq_p_s32): Remove.
5845 (vmladavaxq_p_s16): Remove.
5846 (vmlsdavaq_p_s8): Remove.
5847 (vmlsdavaq_p_s32): Remove.
5848 (vmlsdavaq_p_s16): Remove.
5849 (vmlsdavaxq_p_s8): Remove.
5850 (vmlsdavaxq_p_s32): Remove.
5851 (vmlsdavaxq_p_s16): Remove.
5852 (__arm_vmladavaq_u8): Remove.
5853 (__arm_vmlsdavaxq_s8): Remove.
5854 (__arm_vmlsdavaq_s8): Remove.
5855 (__arm_vmladavaxq_s8): Remove.
5856 (__arm_vmladavaq_s8): Remove.
5857 (__arm_vmladavaq_u16): Remove.
5858 (__arm_vmlsdavaxq_s16): Remove.
5859 (__arm_vmlsdavaq_s16): Remove.
5860 (__arm_vmladavaxq_s16): Remove.
5861 (__arm_vmladavaq_s16): Remove.
5862 (__arm_vmladavaq_u32): Remove.
5863 (__arm_vmlsdavaxq_s32): Remove.
5864 (__arm_vmlsdavaq_s32): Remove.
5865 (__arm_vmladavaxq_s32): Remove.
5866 (__arm_vmladavaq_s32): Remove.
5867 (__arm_vmladavaq_p_s8): Remove.
5868 (__arm_vmladavaq_p_s32): Remove.
5869 (__arm_vmladavaq_p_s16): Remove.
5870 (__arm_vmladavaq_p_u8): Remove.
5871 (__arm_vmladavaq_p_u32): Remove.
5872 (__arm_vmladavaq_p_u16): Remove.
5873 (__arm_vmladavaxq_p_s8): Remove.
5874 (__arm_vmladavaxq_p_s32): Remove.
5875 (__arm_vmladavaxq_p_s16): Remove.
5876 (__arm_vmlsdavaq_p_s8): Remove.
5877 (__arm_vmlsdavaq_p_s32): Remove.
5878 (__arm_vmlsdavaq_p_s16): Remove.
5879 (__arm_vmlsdavaxq_p_s8): Remove.
5880 (__arm_vmlsdavaxq_p_s32): Remove.
5881 (__arm_vmlsdavaxq_p_s16): Remove.
5882 (__arm_vmladavaq): Remove.
5883 (__arm_vmlsdavaxq): Remove.
5884 (__arm_vmlsdavaq): Remove.
5885 (__arm_vmladavaxq): Remove.
5886 (__arm_vmladavaq_p): Remove.
5887 (__arm_vmladavaxq_p): Remove.
5888 (__arm_vmlsdavaq_p): Remove.
5889 (__arm_vmlsdavaxq_p): Remove.
5890
5891 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5892
5893 * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): New.
5894 * config/arm/arm-mve-builtins-shapes.h (binary_acca_int32): New.
5895
5896 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5897
5898 * config/arm/arm-mve-builtins-base.cc (vmladavq, vmladavxq)
5899 (vmlsdavq, vmlsdavxq): New.
5900 * config/arm/arm-mve-builtins-base.def (vmladavq, vmladavxq)
5901 (vmlsdavq, vmlsdavxq): New.
5902 * config/arm/arm-mve-builtins-base.h (vmladavq, vmladavxq)
5903 (vmlsdavq, vmlsdavxq): New.
5904 * config/arm/arm_mve.h (vmladavq): Remove.
5905 (vmlsdavxq): Remove.
5906 (vmlsdavq): Remove.
5907 (vmladavxq): Remove.
5908 (vmladavq_p): Remove.
5909 (vmlsdavxq_p): Remove.
5910 (vmlsdavq_p): Remove.
5911 (vmladavxq_p): Remove.
5912 (vmladavq_u8): Remove.
5913 (vmlsdavxq_s8): Remove.
5914 (vmlsdavq_s8): Remove.
5915 (vmladavxq_s8): Remove.
5916 (vmladavq_s8): Remove.
5917 (vmladavq_u16): Remove.
5918 (vmlsdavxq_s16): Remove.
5919 (vmlsdavq_s16): Remove.
5920 (vmladavxq_s16): Remove.
5921 (vmladavq_s16): Remove.
5922 (vmladavq_u32): Remove.
5923 (vmlsdavxq_s32): Remove.
5924 (vmlsdavq_s32): Remove.
5925 (vmladavxq_s32): Remove.
5926 (vmladavq_s32): Remove.
5927 (vmladavq_p_u8): Remove.
5928 (vmlsdavxq_p_s8): Remove.
5929 (vmlsdavq_p_s8): Remove.
5930 (vmladavxq_p_s8): Remove.
5931 (vmladavq_p_s8): Remove.
5932 (vmladavq_p_u16): Remove.
5933 (vmlsdavxq_p_s16): Remove.
5934 (vmlsdavq_p_s16): Remove.
5935 (vmladavxq_p_s16): Remove.
5936 (vmladavq_p_s16): Remove.
5937 (vmladavq_p_u32): Remove.
5938 (vmlsdavxq_p_s32): Remove.
5939 (vmlsdavq_p_s32): Remove.
5940 (vmladavxq_p_s32): Remove.
5941 (vmladavq_p_s32): Remove.
5942 (__arm_vmladavq_u8): Remove.
5943 (__arm_vmlsdavxq_s8): Remove.
5944 (__arm_vmlsdavq_s8): Remove.
5945 (__arm_vmladavxq_s8): Remove.
5946 (__arm_vmladavq_s8): Remove.
5947 (__arm_vmladavq_u16): Remove.
5948 (__arm_vmlsdavxq_s16): Remove.
5949 (__arm_vmlsdavq_s16): Remove.
5950 (__arm_vmladavxq_s16): Remove.
5951 (__arm_vmladavq_s16): Remove.
5952 (__arm_vmladavq_u32): Remove.
5953 (__arm_vmlsdavxq_s32): Remove.
5954 (__arm_vmlsdavq_s32): Remove.
5955 (__arm_vmladavxq_s32): Remove.
5956 (__arm_vmladavq_s32): Remove.
5957 (__arm_vmladavq_p_u8): Remove.
5958 (__arm_vmlsdavxq_p_s8): Remove.
5959 (__arm_vmlsdavq_p_s8): Remove.
5960 (__arm_vmladavxq_p_s8): Remove.
5961 (__arm_vmladavq_p_s8): Remove.
5962 (__arm_vmladavq_p_u16): Remove.
5963 (__arm_vmlsdavxq_p_s16): Remove.
5964 (__arm_vmlsdavq_p_s16): Remove.
5965 (__arm_vmladavxq_p_s16): Remove.
5966 (__arm_vmladavq_p_s16): Remove.
5967 (__arm_vmladavq_p_u32): Remove.
5968 (__arm_vmlsdavxq_p_s32): Remove.
5969 (__arm_vmlsdavq_p_s32): Remove.
5970 (__arm_vmladavxq_p_s32): Remove.
5971 (__arm_vmladavq_p_s32): Remove.
5972 (__arm_vmladavq): Remove.
5973 (__arm_vmlsdavxq): Remove.
5974 (__arm_vmlsdavq): Remove.
5975 (__arm_vmladavxq): Remove.
5976 (__arm_vmladavq_p): Remove.
5977 (__arm_vmlsdavxq_p): Remove.
5978 (__arm_vmlsdavq_p): Remove.
5979 (__arm_vmladavxq_p): Remove.
5980
5981 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
5982
5983 * config/arm/iterators.md (MVE_VMLxDAVQ, MVE_VMLxDAVQ_P)
5984 (MVE_VMLxDAVAQ, MVE_VMLxDAVAQ_P): New.
5985 (mve_insn): Add vmladava, vmladavax, vmladav, vmladavx, vmlsdava,
5986 vmlsdavax, vmlsdav, vmlsdavx.
5987 (supf): Add VMLADAVAXQ_P_S, VMLADAVAXQ_S, VMLADAVXQ_P_S,
5988 VMLADAVXQ_S, VMLSDAVAQ_P_S, VMLSDAVAQ_S, VMLSDAVAXQ_P_S,
5989 VMLSDAVAXQ_S, VMLSDAVQ_P_S, VMLSDAVQ_S, VMLSDAVXQ_P_S,
5990 VMLSDAVXQ_S.
5991 * config/arm/mve.md (mve_vmladavq_<supf><mode>)
5992 (mve_vmladavxq_s<mode>, mve_vmlsdavq_s<mode>)
5993 (mve_vmlsdavxq_s<mode>): Merge into ...
5994 (@mve_<mve_insn>q_<supf><mode>): ... this.
5995 (mve_vmlsdavaq_s<mode>, mve_vmladavaxq_s<mode>)
5996 (mve_vmlsdavaxq_s<mode>, mve_vmladavaq_<supf><mode>): Merge into
5997 ...
5998 (@mve_<mve_insn>q_<supf><mode>): ... this.
5999 (mve_vmladavq_p_<supf><mode>, mve_vmladavxq_p_s<mode>)
6000 (mve_vmlsdavq_p_s<mode>, mve_vmlsdavxq_p_s<mode>): Merge into ...
6001 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
6002 (mve_vmladavaq_p_<supf><mode>, mve_vmladavaxq_p_s<mode>)
6003 (mve_vmlsdavaq_p_s<mode>, mve_vmlsdavaxq_p_s<mode>): Merge into
6004 ...
6005 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
6006
6007 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6008
6009 * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int32): New.
6010 * config/arm/arm-mve-builtins-shapes.h (binary_acc_int32): New.
6011
6012 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6013
6014 * config/arm/arm-mve-builtins-base.cc (vaddlvaq): New.
6015 * config/arm/arm-mve-builtins-base.def (vaddlvaq): New.
6016 * config/arm/arm-mve-builtins-base.h (vaddlvaq): New.
6017 * config/arm/arm_mve.h (vaddlvaq): Remove.
6018 (vaddlvaq_p): Remove.
6019 (vaddlvaq_u32): Remove.
6020 (vaddlvaq_s32): Remove.
6021 (vaddlvaq_p_s32): Remove.
6022 (vaddlvaq_p_u32): Remove.
6023 (__arm_vaddlvaq_u32): Remove.
6024 (__arm_vaddlvaq_s32): Remove.
6025 (__arm_vaddlvaq_p_s32): Remove.
6026 (__arm_vaddlvaq_p_u32): Remove.
6027 (__arm_vaddlvaq): Remove.
6028 (__arm_vaddlvaq_p): Remove.
6029
6030 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6031
6032 * config/arm/arm-mve-builtins-shapes.cc (unary_widen_acc): New.
6033 * config/arm/arm-mve-builtins-shapes.h (unary_widen_acc): New.
6034
6035 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6036
6037 * config/arm/iterators.md (mve_insn): Add vaddlva.
6038 * config/arm/mve.md (mve_vaddlvaq_<supf>v4si): Rename into ...
6039 (@mve_<mve_insn>q_<supf>v4si): ... this.
6040 (mve_vaddlvaq_p_<supf>v4si): Rename into ...
6041 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
6042
6043 2023-05-11 Uros Bizjak <ubizjak@gmail.com>
6044
6045 PR target/109807
6046 * config/i386/i386.cc (ix86_widen_mult_cost):
6047 Handle V4HImode and V2SImode.
6048
6049 2023-05-11 Andrew Pinski <apinski@marvell.com>
6050
6051 * tree-ssa-dce.cc (simple_dce_from_worklist): For ssa names
6052 defined by a phi node with more than one uses, allow for the
6053 only uses are in that same defining statement.
6054
6055 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
6056
6057 * config/riscv/riscv.cc (riscv_const_insns): Add permissible
6058 vector constants.
6059
6060 2023-05-11 Pan Li <pan2.li@intel.com>
6061
6062 * config/riscv/vector.md: Add comments for simplifying to vmset.
6063
6064 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
6065
6066 * config/riscv/autovec.md (<optab><mode>3): Add scalar shift
6067 pattern.
6068 (v<optab><mode>3): Add vector shift pattern.
6069 * config/riscv/vector-iterators.md: New iterator.
6070
6071 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
6072
6073 * config/riscv/autovec.md: Use renamed functions.
6074 * config/riscv/riscv-protos.h (emit_vlmax_op): Rename.
6075 (emit_vlmax_reg_op): To this.
6076 (emit_nonvlmax_op): Rename.
6077 (emit_len_op): To this.
6078 (emit_nonvlmax_binop): Rename.
6079 (emit_len_binop): To this.
6080 * config/riscv/riscv-v.cc (emit_pred_op): Add default parameter.
6081 (emit_pred_binop): Remove vlmax_p.
6082 (emit_vlmax_op): Rename.
6083 (emit_vlmax_reg_op): To this.
6084 (emit_nonvlmax_op): Rename.
6085 (emit_len_op): To this.
6086 (emit_nonvlmax_binop): Rename.
6087 (emit_len_binop): To this.
6088 (sew64_scalar_helper): Use renamed functions.
6089 (expand_tuple_move): Use renamed functions.
6090 * config/riscv/riscv.cc (vector_zero_call_used_regs): Use
6091 renamed functions.
6092 * config/riscv/vector.md: Use renamed functions.
6093
6094 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
6095 Michael Collison <collison@rivosinc.com>
6096
6097 * config/riscv/autovec.md (<optab><mode>3): Add integer binops.
6098 * config/riscv/riscv-protos.h (emit_nonvlmax_binop): Declare.
6099 * config/riscv/riscv-v.cc (emit_pred_op): New function.
6100 (set_expander_dest_and_mask): New function.
6101 (emit_pred_binop): New function.
6102 (emit_nonvlmax_binop): New function.
6103
6104 2023-05-11 Pan Li <pan2.li@intel.com>
6105
6106 * cfgloopmanip.cc (create_empty_loop_on_edge): Add PLUS_EXPR.
6107 * gimple-loop-interchange.cc
6108 (tree_loop_interchange::map_inductions_to_loop): Ditto.
6109 * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Ditto.
6110 * tree-ssa-loop-ivopts.cc (create_new_iv): Ditto.
6111 * tree-ssa-loop-manip.cc (create_iv): Ditto.
6112 (tree_transform_and_unroll_loop): Ditto.
6113 (canonicalize_loop_ivs): Ditto.
6114 * tree-ssa-loop-manip.h (create_iv): Ditto.
6115 * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Ditto.
6116 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly):
6117 Ditto.
6118 (vect_set_loop_condition_normal): Ditto.
6119 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Ditto.
6120 * tree-vect-stmts.cc (vectorizable_store): Ditto.
6121 (vectorizable_load): Ditto.
6122
6123 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6124
6125 * config/arm/arm-mve-builtins-base.cc (vmovlbq, vmovltq): New.
6126 * config/arm/arm-mve-builtins-base.def (vmovlbq, vmovltq): New.
6127 * config/arm/arm-mve-builtins-base.h (vmovlbq, vmovltq): New.
6128 * config/arm/arm_mve.h (vmovlbq): Remove.
6129 (vmovltq): Remove.
6130 (vmovlbq_m): Remove.
6131 (vmovltq_m): Remove.
6132 (vmovlbq_x): Remove.
6133 (vmovltq_x): Remove.
6134 (vmovlbq_s8): Remove.
6135 (vmovlbq_s16): Remove.
6136 (vmovltq_s8): Remove.
6137 (vmovltq_s16): Remove.
6138 (vmovltq_u8): Remove.
6139 (vmovltq_u16): Remove.
6140 (vmovlbq_u8): Remove.
6141 (vmovlbq_u16): Remove.
6142 (vmovlbq_m_s8): Remove.
6143 (vmovltq_m_s8): Remove.
6144 (vmovlbq_m_u8): Remove.
6145 (vmovltq_m_u8): Remove.
6146 (vmovlbq_m_s16): Remove.
6147 (vmovltq_m_s16): Remove.
6148 (vmovlbq_m_u16): Remove.
6149 (vmovltq_m_u16): Remove.
6150 (vmovlbq_x_s8): Remove.
6151 (vmovlbq_x_s16): Remove.
6152 (vmovlbq_x_u8): Remove.
6153 (vmovlbq_x_u16): Remove.
6154 (vmovltq_x_s8): Remove.
6155 (vmovltq_x_s16): Remove.
6156 (vmovltq_x_u8): Remove.
6157 (vmovltq_x_u16): Remove.
6158 (__arm_vmovlbq_s8): Remove.
6159 (__arm_vmovlbq_s16): Remove.
6160 (__arm_vmovltq_s8): Remove.
6161 (__arm_vmovltq_s16): Remove.
6162 (__arm_vmovltq_u8): Remove.
6163 (__arm_vmovltq_u16): Remove.
6164 (__arm_vmovlbq_u8): Remove.
6165 (__arm_vmovlbq_u16): Remove.
6166 (__arm_vmovlbq_m_s8): Remove.
6167 (__arm_vmovltq_m_s8): Remove.
6168 (__arm_vmovlbq_m_u8): Remove.
6169 (__arm_vmovltq_m_u8): Remove.
6170 (__arm_vmovlbq_m_s16): Remove.
6171 (__arm_vmovltq_m_s16): Remove.
6172 (__arm_vmovlbq_m_u16): Remove.
6173 (__arm_vmovltq_m_u16): Remove.
6174 (__arm_vmovlbq_x_s8): Remove.
6175 (__arm_vmovlbq_x_s16): Remove.
6176 (__arm_vmovlbq_x_u8): Remove.
6177 (__arm_vmovlbq_x_u16): Remove.
6178 (__arm_vmovltq_x_s8): Remove.
6179 (__arm_vmovltq_x_s16): Remove.
6180 (__arm_vmovltq_x_u8): Remove.
6181 (__arm_vmovltq_x_u16): Remove.
6182 (__arm_vmovlbq): Remove.
6183 (__arm_vmovltq): Remove.
6184 (__arm_vmovlbq_m): Remove.
6185 (__arm_vmovltq_m): Remove.
6186 (__arm_vmovlbq_x): Remove.
6187 (__arm_vmovltq_x): Remove.
6188
6189 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6190
6191 * config/arm/arm-mve-builtins-shapes.cc (unary_widen): New.
6192 * config/arm/arm-mve-builtins-shapes.h (unary_widen): New.
6193
6194 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6195
6196 * config/arm/iterators.md (mve_insn): Add vmovlb, vmovlt.
6197 (VMOVLBQ, VMOVLTQ): Merge into ...
6198 (VMOVLxQ): ... this.
6199 (VMOVLTQ_M, VMOVLBQ_M): Merge into ...
6200 (VMOVLxQ_M): ... this.
6201 * config/arm/mve.md (mve_vmovltq_<supf><mode>)
6202 (mve_vmovlbq_<supf><mode>): Merge into ...
6203 (@mve_<mve_insn>q_<supf><mode>): ... this.
6204 (mve_vmovlbq_m_<supf><mode>, mve_vmovltq_m_<supf><mode>): Merge
6205 into ...
6206 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
6207
6208 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6209
6210 * config/arm/arm-mve-builtins-base.cc (vaddlvq): New.
6211 * config/arm/arm-mve-builtins-base.def (vaddlvq): New.
6212 * config/arm/arm-mve-builtins-base.h (vaddlvq): New.
6213 * config/arm/arm-mve-builtins-functions.h
6214 (unspec_mve_function_exact_insn_pred_p): Handle vaddlvq.
6215 * config/arm/arm_mve.h (vaddlvq): Remove.
6216 (vaddlvq_p): Remove.
6217 (vaddlvq_s32): Remove.
6218 (vaddlvq_u32): Remove.
6219 (vaddlvq_p_s32): Remove.
6220 (vaddlvq_p_u32): Remove.
6221 (__arm_vaddlvq_s32): Remove.
6222 (__arm_vaddlvq_u32): Remove.
6223 (__arm_vaddlvq_p_s32): Remove.
6224 (__arm_vaddlvq_p_u32): Remove.
6225 (__arm_vaddlvq): Remove.
6226 (__arm_vaddlvq_p): Remove.
6227
6228 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6229
6230 * config/arm/iterators.md (mve_insn): Add vaddlv.
6231 * config/arm/mve.md (mve_vaddlvq_<supf>v4si): Rename into ...
6232 (@mve_<mve_insn>q_<supf>v4si): ... this.
6233 (mve_vaddlvq_p_<supf>v4si): Rename into ...
6234 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
6235
6236 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6237
6238 * config/arm/arm-mve-builtins-shapes.cc (unary_acc): New.
6239 * config/arm/arm-mve-builtins-shapes.h (unary_acc): New.
6240
6241 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6242
6243 * config/arm/arm-mve-builtins-base.cc (vaddvaq): New.
6244 * config/arm/arm-mve-builtins-base.def (vaddvaq): New.
6245 * config/arm/arm-mve-builtins-base.h (vaddvaq): New.
6246 * config/arm/arm_mve.h (vaddvaq): Remove.
6247 (vaddvaq_p): Remove.
6248 (vaddvaq_u8): Remove.
6249 (vaddvaq_s8): Remove.
6250 (vaddvaq_u16): Remove.
6251 (vaddvaq_s16): Remove.
6252 (vaddvaq_u32): Remove.
6253 (vaddvaq_s32): Remove.
6254 (vaddvaq_p_u8): Remove.
6255 (vaddvaq_p_s8): Remove.
6256 (vaddvaq_p_u16): Remove.
6257 (vaddvaq_p_s16): Remove.
6258 (vaddvaq_p_u32): Remove.
6259 (vaddvaq_p_s32): Remove.
6260 (__arm_vaddvaq_u8): Remove.
6261 (__arm_vaddvaq_s8): Remove.
6262 (__arm_vaddvaq_u16): Remove.
6263 (__arm_vaddvaq_s16): Remove.
6264 (__arm_vaddvaq_u32): Remove.
6265 (__arm_vaddvaq_s32): Remove.
6266 (__arm_vaddvaq_p_u8): Remove.
6267 (__arm_vaddvaq_p_s8): Remove.
6268 (__arm_vaddvaq_p_u16): Remove.
6269 (__arm_vaddvaq_p_s16): Remove.
6270 (__arm_vaddvaq_p_u32): Remove.
6271 (__arm_vaddvaq_p_s32): Remove.
6272 (__arm_vaddvaq): Remove.
6273 (__arm_vaddvaq_p): Remove.
6274
6275 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6276
6277 * config/arm/arm-mve-builtins-shapes.cc (unary_int32_acc): New.
6278 * config/arm/arm-mve-builtins-shapes.h (unary_int32_acc): New.
6279
6280 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6281
6282 * config/arm/iterators.md (mve_insn): Add vaddva.
6283 * config/arm/mve.md (mve_vaddvaq_<supf><mode>): Rename into ...
6284 (@mve_<mve_insn>q_<supf><mode>): ... this.
6285 (mve_vaddvaq_p_<supf><mode>): Rename into ...
6286 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
6287
6288 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6289
6290 * config/arm/arm-mve-builtins-base.cc (vaddvq): New.
6291 * config/arm/arm-mve-builtins-base.def (vaddvq): New.
6292 * config/arm/arm-mve-builtins-base.h (vaddvq): New.
6293 * config/arm/arm_mve.h (vaddvq): Remove.
6294 (vaddvq_p): Remove.
6295 (vaddvq_s8): Remove.
6296 (vaddvq_s16): Remove.
6297 (vaddvq_s32): Remove.
6298 (vaddvq_u8): Remove.
6299 (vaddvq_u16): Remove.
6300 (vaddvq_u32): Remove.
6301 (vaddvq_p_u8): Remove.
6302 (vaddvq_p_s8): Remove.
6303 (vaddvq_p_u16): Remove.
6304 (vaddvq_p_s16): Remove.
6305 (vaddvq_p_u32): Remove.
6306 (vaddvq_p_s32): Remove.
6307 (__arm_vaddvq_s8): Remove.
6308 (__arm_vaddvq_s16): Remove.
6309 (__arm_vaddvq_s32): Remove.
6310 (__arm_vaddvq_u8): Remove.
6311 (__arm_vaddvq_u16): Remove.
6312 (__arm_vaddvq_u32): Remove.
6313 (__arm_vaddvq_p_u8): Remove.
6314 (__arm_vaddvq_p_s8): Remove.
6315 (__arm_vaddvq_p_u16): Remove.
6316 (__arm_vaddvq_p_s16): Remove.
6317 (__arm_vaddvq_p_u32): Remove.
6318 (__arm_vaddvq_p_s32): Remove.
6319 (__arm_vaddvq): Remove.
6320 (__arm_vaddvq_p): Remove.
6321
6322 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6323
6324 * config/arm/arm-mve-builtins-shapes.cc (unary_int32): New.
6325 * config/arm/arm-mve-builtins-shapes.h (unary_int32): New.
6326
6327 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6328
6329 * config/arm/iterators.md (mve_insn): Add vaddv.
6330 * config/arm/mve.md (@mve_vaddvq_<supf><mode>): Rename into ...
6331 (@mve_<mve_insn>q_<supf><mode>): ... this.
6332 (mve_vaddvq_p_<supf><mode>): Rename into ...
6333 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
6334 * config/arm/vec-common.md: Use gen_mve_q instead of
6335 gen_mve_vaddvq.
6336
6337 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6338
6339 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N): New.
6340 (vdupq): New.
6341 * config/arm/arm-mve-builtins-base.def (vdupq): New.
6342 * config/arm/arm-mve-builtins-base.h: (vdupq): New.
6343 * config/arm/arm_mve.h (vdupq_n): Remove.
6344 (vdupq_m): Remove.
6345 (vdupq_n_f16): Remove.
6346 (vdupq_n_f32): Remove.
6347 (vdupq_n_s8): Remove.
6348 (vdupq_n_s16): Remove.
6349 (vdupq_n_s32): Remove.
6350 (vdupq_n_u8): Remove.
6351 (vdupq_n_u16): Remove.
6352 (vdupq_n_u32): Remove.
6353 (vdupq_m_n_u8): Remove.
6354 (vdupq_m_n_s8): Remove.
6355 (vdupq_m_n_u16): Remove.
6356 (vdupq_m_n_s16): Remove.
6357 (vdupq_m_n_u32): Remove.
6358 (vdupq_m_n_s32): Remove.
6359 (vdupq_m_n_f16): Remove.
6360 (vdupq_m_n_f32): Remove.
6361 (vdupq_x_n_s8): Remove.
6362 (vdupq_x_n_s16): Remove.
6363 (vdupq_x_n_s32): Remove.
6364 (vdupq_x_n_u8): Remove.
6365 (vdupq_x_n_u16): Remove.
6366 (vdupq_x_n_u32): Remove.
6367 (vdupq_x_n_f16): Remove.
6368 (vdupq_x_n_f32): Remove.
6369 (__arm_vdupq_n_s8): Remove.
6370 (__arm_vdupq_n_s16): Remove.
6371 (__arm_vdupq_n_s32): Remove.
6372 (__arm_vdupq_n_u8): Remove.
6373 (__arm_vdupq_n_u16): Remove.
6374 (__arm_vdupq_n_u32): Remove.
6375 (__arm_vdupq_m_n_u8): Remove.
6376 (__arm_vdupq_m_n_s8): Remove.
6377 (__arm_vdupq_m_n_u16): Remove.
6378 (__arm_vdupq_m_n_s16): Remove.
6379 (__arm_vdupq_m_n_u32): Remove.
6380 (__arm_vdupq_m_n_s32): Remove.
6381 (__arm_vdupq_x_n_s8): Remove.
6382 (__arm_vdupq_x_n_s16): Remove.
6383 (__arm_vdupq_x_n_s32): Remove.
6384 (__arm_vdupq_x_n_u8): Remove.
6385 (__arm_vdupq_x_n_u16): Remove.
6386 (__arm_vdupq_x_n_u32): Remove.
6387 (__arm_vdupq_n_f16): Remove.
6388 (__arm_vdupq_n_f32): Remove.
6389 (__arm_vdupq_m_n_f16): Remove.
6390 (__arm_vdupq_m_n_f32): Remove.
6391 (__arm_vdupq_x_n_f16): Remove.
6392 (__arm_vdupq_x_n_f32): Remove.
6393 (__arm_vdupq_n): Remove.
6394 (__arm_vdupq_m): Remove.
6395
6396 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6397
6398 * config/arm/arm-mve-builtins-shapes.cc (unary_n): New.
6399 * config/arm/arm-mve-builtins-shapes.h (unary_n): New.
6400
6401 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6402
6403 * config/arm/iterators.md (MVE_FP_M_N_VDUPQ_ONLY)
6404 (MVE_FP_N_VDUPQ_ONLY): New.
6405 (mve_insn): Add vdupq.
6406 * config/arm/mve.md (mve_vdupq_n_f<mode>): Rename into ...
6407 (@mve_<mve_insn>q_n_f<mode>): ... this.
6408 (mve_vdupq_n_<supf><mode>): Rename into ...
6409 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
6410 (mve_vdupq_m_n_<supf><mode>): Rename into ...
6411 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
6412 (mve_vdupq_m_n_f<mode>): Rename into ...
6413 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
6414
6415 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6416
6417 * config/arm/arm-mve-builtins-base.cc (vrev16q, vrev32q, vrev64q):
6418 New.
6419 * config/arm/arm-mve-builtins-base.def (vrev16q, vrev32q)
6420 (vrev64q): New.
6421 * config/arm/arm-mve-builtins-base.h (vrev16q, vrev32q)
6422 (vrev64q): New.
6423 * config/arm/arm_mve.h (vrev16q): Remove.
6424 (vrev32q): Remove.
6425 (vrev64q): Remove.
6426 (vrev64q_m): Remove.
6427 (vrev16q_m): Remove.
6428 (vrev32q_m): Remove.
6429 (vrev16q_x): Remove.
6430 (vrev32q_x): Remove.
6431 (vrev64q_x): Remove.
6432 (vrev64q_f16): Remove.
6433 (vrev64q_f32): Remove.
6434 (vrev32q_f16): Remove.
6435 (vrev16q_s8): Remove.
6436 (vrev32q_s8): Remove.
6437 (vrev32q_s16): Remove.
6438 (vrev64q_s8): Remove.
6439 (vrev64q_s16): Remove.
6440 (vrev64q_s32): Remove.
6441 (vrev64q_u8): Remove.
6442 (vrev64q_u16): Remove.
6443 (vrev64q_u32): Remove.
6444 (vrev32q_u8): Remove.
6445 (vrev32q_u16): Remove.
6446 (vrev16q_u8): Remove.
6447 (vrev64q_m_u8): Remove.
6448 (vrev64q_m_s8): Remove.
6449 (vrev64q_m_u16): Remove.
6450 (vrev64q_m_s16): Remove.
6451 (vrev64q_m_u32): Remove.
6452 (vrev64q_m_s32): Remove.
6453 (vrev16q_m_s8): Remove.
6454 (vrev32q_m_f16): Remove.
6455 (vrev16q_m_u8): Remove.
6456 (vrev32q_m_s8): Remove.
6457 (vrev64q_m_f16): Remove.
6458 (vrev32q_m_u8): Remove.
6459 (vrev32q_m_s16): Remove.
6460 (vrev64q_m_f32): Remove.
6461 (vrev32q_m_u16): Remove.
6462 (vrev16q_x_s8): Remove.
6463 (vrev16q_x_u8): Remove.
6464 (vrev32q_x_s8): Remove.
6465 (vrev32q_x_s16): Remove.
6466 (vrev32q_x_u8): Remove.
6467 (vrev32q_x_u16): Remove.
6468 (vrev64q_x_s8): Remove.
6469 (vrev64q_x_s16): Remove.
6470 (vrev64q_x_s32): Remove.
6471 (vrev64q_x_u8): Remove.
6472 (vrev64q_x_u16): Remove.
6473 (vrev64q_x_u32): Remove.
6474 (vrev32q_x_f16): Remove.
6475 (vrev64q_x_f16): Remove.
6476 (vrev64q_x_f32): Remove.
6477 (__arm_vrev16q_s8): Remove.
6478 (__arm_vrev32q_s8): Remove.
6479 (__arm_vrev32q_s16): Remove.
6480 (__arm_vrev64q_s8): Remove.
6481 (__arm_vrev64q_s16): Remove.
6482 (__arm_vrev64q_s32): Remove.
6483 (__arm_vrev64q_u8): Remove.
6484 (__arm_vrev64q_u16): Remove.
6485 (__arm_vrev64q_u32): Remove.
6486 (__arm_vrev32q_u8): Remove.
6487 (__arm_vrev32q_u16): Remove.
6488 (__arm_vrev16q_u8): Remove.
6489 (__arm_vrev64q_m_u8): Remove.
6490 (__arm_vrev64q_m_s8): Remove.
6491 (__arm_vrev64q_m_u16): Remove.
6492 (__arm_vrev64q_m_s16): Remove.
6493 (__arm_vrev64q_m_u32): Remove.
6494 (__arm_vrev64q_m_s32): Remove.
6495 (__arm_vrev16q_m_s8): Remove.
6496 (__arm_vrev16q_m_u8): Remove.
6497 (__arm_vrev32q_m_s8): Remove.
6498 (__arm_vrev32q_m_u8): Remove.
6499 (__arm_vrev32q_m_s16): Remove.
6500 (__arm_vrev32q_m_u16): Remove.
6501 (__arm_vrev16q_x_s8): Remove.
6502 (__arm_vrev16q_x_u8): Remove.
6503 (__arm_vrev32q_x_s8): Remove.
6504 (__arm_vrev32q_x_s16): Remove.
6505 (__arm_vrev32q_x_u8): Remove.
6506 (__arm_vrev32q_x_u16): Remove.
6507 (__arm_vrev64q_x_s8): Remove.
6508 (__arm_vrev64q_x_s16): Remove.
6509 (__arm_vrev64q_x_s32): Remove.
6510 (__arm_vrev64q_x_u8): Remove.
6511 (__arm_vrev64q_x_u16): Remove.
6512 (__arm_vrev64q_x_u32): Remove.
6513 (__arm_vrev64q_f16): Remove.
6514 (__arm_vrev64q_f32): Remove.
6515 (__arm_vrev32q_f16): Remove.
6516 (__arm_vrev32q_m_f16): Remove.
6517 (__arm_vrev64q_m_f16): Remove.
6518 (__arm_vrev64q_m_f32): Remove.
6519 (__arm_vrev32q_x_f16): Remove.
6520 (__arm_vrev64q_x_f16): Remove.
6521 (__arm_vrev64q_x_f32): Remove.
6522 (__arm_vrev16q): Remove.
6523 (__arm_vrev32q): Remove.
6524 (__arm_vrev64q): Remove.
6525 (__arm_vrev64q_m): Remove.
6526 (__arm_vrev16q_m): Remove.
6527 (__arm_vrev32q_m): Remove.
6528 (__arm_vrev16q_x): Remove.
6529 (__arm_vrev32q_x): Remove.
6530 (__arm_vrev64q_x): Remove.
6531
6532 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6533
6534 * config/arm/iterators.md (MVE_V8HF, MVE_V16QI)
6535 (MVE_FP_VREV64Q_ONLY, MVE_FP_M_VREV64Q_ONLY, MVE_FP_VREV32Q_ONLY)
6536 (MVE_FP_M_VREV32Q_ONLY): New iterators.
6537 (mve_insn): Add vrev16q, vrev32q, vrev64q.
6538 * config/arm/mve.md (mve_vrev64q_f<mode>): Rename into ...
6539 (@mve_<mve_insn>q_f<mode>): ... this
6540 (mve_vrev32q_fv8hf): Rename into @mve_<mve_insn>q_f<mode>.
6541 (mve_vrev64q_<supf><mode>): Rename into ...
6542 (@mve_<mve_insn>q_<supf><mode>): ... this.
6543 (mve_vrev32q_<supf><mode>): Rename into
6544 @mve_<mve_insn>q_<supf><mode>.
6545 (mve_vrev16q_<supf>v16qi): Rename into
6546 @mve_<mve_insn>q_<supf><mode>.
6547 (mve_vrev64q_m_<supf><mode>): Rename into
6548 @mve_<mve_insn>q_m_<supf><mode>.
6549 (mve_vrev32q_m_fv8hf): Rename into @mve_<mve_insn>q_m_f<mode>.
6550 (mve_vrev32q_m_<supf><mode>): Rename into
6551 @mve_<mve_insn>q_m_<supf><mode>.
6552 (mve_vrev64q_m_f<mode>): Rename into @mve_<mve_insn>q_m_f<mode>.
6553 (mve_vrev16q_m_<supf>v16qi): Rename into
6554 @mve_<mve_insn>q_m_<supf><mode>.
6555
6556 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6557
6558 * config/arm/arm-mve-builtins-base.cc (vcmpeqq, vcmpneq, vcmpgeq)
6559 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
6560 * config/arm/arm-mve-builtins-base.def (vcmpeqq, vcmpneq, vcmpgeq)
6561 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
6562 * config/arm/arm-mve-builtins-base.h (vcmpeqq, vcmpneq, vcmpgeq)
6563 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
6564 * config/arm/arm-mve-builtins-functions.h (class
6565 unspec_based_mve_function_exact_insn_vcmp): New.
6566 * config/arm/arm-mve-builtins.cc
6567 (function_instance::has_inactive_argument): Handle vcmp.
6568 * config/arm/arm_mve.h (vcmpneq): Remove.
6569 (vcmphiq): Remove.
6570 (vcmpeqq): Remove.
6571 (vcmpcsq): Remove.
6572 (vcmpltq): Remove.
6573 (vcmpleq): Remove.
6574 (vcmpgtq): Remove.
6575 (vcmpgeq): Remove.
6576 (vcmpneq_m): Remove.
6577 (vcmphiq_m): Remove.
6578 (vcmpeqq_m): Remove.
6579 (vcmpcsq_m): Remove.
6580 (vcmpcsq_m_n): Remove.
6581 (vcmpltq_m): Remove.
6582 (vcmpleq_m): Remove.
6583 (vcmpgtq_m): Remove.
6584 (vcmpgeq_m): Remove.
6585 (vcmpneq_s8): Remove.
6586 (vcmpneq_s16): Remove.
6587 (vcmpneq_s32): Remove.
6588 (vcmpneq_u8): Remove.
6589 (vcmpneq_u16): Remove.
6590 (vcmpneq_u32): Remove.
6591 (vcmpneq_n_u8): Remove.
6592 (vcmphiq_u8): Remove.
6593 (vcmphiq_n_u8): Remove.
6594 (vcmpeqq_u8): Remove.
6595 (vcmpeqq_n_u8): Remove.
6596 (vcmpcsq_u8): Remove.
6597 (vcmpcsq_n_u8): Remove.
6598 (vcmpneq_n_s8): Remove.
6599 (vcmpltq_s8): Remove.
6600 (vcmpltq_n_s8): Remove.
6601 (vcmpleq_s8): Remove.
6602 (vcmpleq_n_s8): Remove.
6603 (vcmpgtq_s8): Remove.
6604 (vcmpgtq_n_s8): Remove.
6605 (vcmpgeq_s8): Remove.
6606 (vcmpgeq_n_s8): Remove.
6607 (vcmpeqq_s8): Remove.
6608 (vcmpeqq_n_s8): Remove.
6609 (vcmpneq_n_u16): Remove.
6610 (vcmphiq_u16): Remove.
6611 (vcmphiq_n_u16): Remove.
6612 (vcmpeqq_u16): Remove.
6613 (vcmpeqq_n_u16): Remove.
6614 (vcmpcsq_u16): Remove.
6615 (vcmpcsq_n_u16): Remove.
6616 (vcmpneq_n_s16): Remove.
6617 (vcmpltq_s16): Remove.
6618 (vcmpltq_n_s16): Remove.
6619 (vcmpleq_s16): Remove.
6620 (vcmpleq_n_s16): Remove.
6621 (vcmpgtq_s16): Remove.
6622 (vcmpgtq_n_s16): Remove.
6623 (vcmpgeq_s16): Remove.
6624 (vcmpgeq_n_s16): Remove.
6625 (vcmpeqq_s16): Remove.
6626 (vcmpeqq_n_s16): Remove.
6627 (vcmpneq_n_u32): Remove.
6628 (vcmphiq_u32): Remove.
6629 (vcmphiq_n_u32): Remove.
6630 (vcmpeqq_u32): Remove.
6631 (vcmpeqq_n_u32): Remove.
6632 (vcmpcsq_u32): Remove.
6633 (vcmpcsq_n_u32): Remove.
6634 (vcmpneq_n_s32): Remove.
6635 (vcmpltq_s32): Remove.
6636 (vcmpltq_n_s32): Remove.
6637 (vcmpleq_s32): Remove.
6638 (vcmpleq_n_s32): Remove.
6639 (vcmpgtq_s32): Remove.
6640 (vcmpgtq_n_s32): Remove.
6641 (vcmpgeq_s32): Remove.
6642 (vcmpgeq_n_s32): Remove.
6643 (vcmpeqq_s32): Remove.
6644 (vcmpeqq_n_s32): Remove.
6645 (vcmpneq_n_f16): Remove.
6646 (vcmpneq_f16): Remove.
6647 (vcmpltq_n_f16): Remove.
6648 (vcmpltq_f16): Remove.
6649 (vcmpleq_n_f16): Remove.
6650 (vcmpleq_f16): Remove.
6651 (vcmpgtq_n_f16): Remove.
6652 (vcmpgtq_f16): Remove.
6653 (vcmpgeq_n_f16): Remove.
6654 (vcmpgeq_f16): Remove.
6655 (vcmpeqq_n_f16): Remove.
6656 (vcmpeqq_f16): Remove.
6657 (vcmpneq_n_f32): Remove.
6658 (vcmpneq_f32): Remove.
6659 (vcmpltq_n_f32): Remove.
6660 (vcmpltq_f32): Remove.
6661 (vcmpleq_n_f32): Remove.
6662 (vcmpleq_f32): Remove.
6663 (vcmpgtq_n_f32): Remove.
6664 (vcmpgtq_f32): Remove.
6665 (vcmpgeq_n_f32): Remove.
6666 (vcmpgeq_f32): Remove.
6667 (vcmpeqq_n_f32): Remove.
6668 (vcmpeqq_f32): Remove.
6669 (vcmpeqq_m_f16): Remove.
6670 (vcmpeqq_m_f32): Remove.
6671 (vcmpneq_m_u8): Remove.
6672 (vcmpneq_m_n_u8): Remove.
6673 (vcmphiq_m_u8): Remove.
6674 (vcmphiq_m_n_u8): Remove.
6675 (vcmpeqq_m_u8): Remove.
6676 (vcmpeqq_m_n_u8): Remove.
6677 (vcmpcsq_m_u8): Remove.
6678 (vcmpcsq_m_n_u8): Remove.
6679 (vcmpneq_m_s8): Remove.
6680 (vcmpneq_m_n_s8): Remove.
6681 (vcmpltq_m_s8): Remove.
6682 (vcmpltq_m_n_s8): Remove.
6683 (vcmpleq_m_s8): Remove.
6684 (vcmpleq_m_n_s8): Remove.
6685 (vcmpgtq_m_s8): Remove.
6686 (vcmpgtq_m_n_s8): Remove.
6687 (vcmpgeq_m_s8): Remove.
6688 (vcmpgeq_m_n_s8): Remove.
6689 (vcmpeqq_m_s8): Remove.
6690 (vcmpeqq_m_n_s8): Remove.
6691 (vcmpneq_m_u16): Remove.
6692 (vcmpneq_m_n_u16): Remove.
6693 (vcmphiq_m_u16): Remove.
6694 (vcmphiq_m_n_u16): Remove.
6695 (vcmpeqq_m_u16): Remove.
6696 (vcmpeqq_m_n_u16): Remove.
6697 (vcmpcsq_m_u16): Remove.
6698 (vcmpcsq_m_n_u16): Remove.
6699 (vcmpneq_m_s16): Remove.
6700 (vcmpneq_m_n_s16): Remove.
6701 (vcmpltq_m_s16): Remove.
6702 (vcmpltq_m_n_s16): Remove.
6703 (vcmpleq_m_s16): Remove.
6704 (vcmpleq_m_n_s16): Remove.
6705 (vcmpgtq_m_s16): Remove.
6706 (vcmpgtq_m_n_s16): Remove.
6707 (vcmpgeq_m_s16): Remove.
6708 (vcmpgeq_m_n_s16): Remove.
6709 (vcmpeqq_m_s16): Remove.
6710 (vcmpeqq_m_n_s16): Remove.
6711 (vcmpneq_m_u32): Remove.
6712 (vcmpneq_m_n_u32): Remove.
6713 (vcmphiq_m_u32): Remove.
6714 (vcmphiq_m_n_u32): Remove.
6715 (vcmpeqq_m_u32): Remove.
6716 (vcmpeqq_m_n_u32): Remove.
6717 (vcmpcsq_m_u32): Remove.
6718 (vcmpcsq_m_n_u32): Remove.
6719 (vcmpneq_m_s32): Remove.
6720 (vcmpneq_m_n_s32): Remove.
6721 (vcmpltq_m_s32): Remove.
6722 (vcmpltq_m_n_s32): Remove.
6723 (vcmpleq_m_s32): Remove.
6724 (vcmpleq_m_n_s32): Remove.
6725 (vcmpgtq_m_s32): Remove.
6726 (vcmpgtq_m_n_s32): Remove.
6727 (vcmpgeq_m_s32): Remove.
6728 (vcmpgeq_m_n_s32): Remove.
6729 (vcmpeqq_m_s32): Remove.
6730 (vcmpeqq_m_n_s32): Remove.
6731 (vcmpeqq_m_n_f16): Remove.
6732 (vcmpgeq_m_f16): Remove.
6733 (vcmpgeq_m_n_f16): Remove.
6734 (vcmpgtq_m_f16): Remove.
6735 (vcmpgtq_m_n_f16): Remove.
6736 (vcmpleq_m_f16): Remove.
6737 (vcmpleq_m_n_f16): Remove.
6738 (vcmpltq_m_f16): Remove.
6739 (vcmpltq_m_n_f16): Remove.
6740 (vcmpneq_m_f16): Remove.
6741 (vcmpneq_m_n_f16): Remove.
6742 (vcmpeqq_m_n_f32): Remove.
6743 (vcmpgeq_m_f32): Remove.
6744 (vcmpgeq_m_n_f32): Remove.
6745 (vcmpgtq_m_f32): Remove.
6746 (vcmpgtq_m_n_f32): Remove.
6747 (vcmpleq_m_f32): Remove.
6748 (vcmpleq_m_n_f32): Remove.
6749 (vcmpltq_m_f32): Remove.
6750 (vcmpltq_m_n_f32): Remove.
6751 (vcmpneq_m_f32): Remove.
6752 (vcmpneq_m_n_f32): Remove.
6753 (__arm_vcmpneq_s8): Remove.
6754 (__arm_vcmpneq_s16): Remove.
6755 (__arm_vcmpneq_s32): Remove.
6756 (__arm_vcmpneq_u8): Remove.
6757 (__arm_vcmpneq_u16): Remove.
6758 (__arm_vcmpneq_u32): Remove.
6759 (__arm_vcmpneq_n_u8): Remove.
6760 (__arm_vcmphiq_u8): Remove.
6761 (__arm_vcmphiq_n_u8): Remove.
6762 (__arm_vcmpeqq_u8): Remove.
6763 (__arm_vcmpeqq_n_u8): Remove.
6764 (__arm_vcmpcsq_u8): Remove.
6765 (__arm_vcmpcsq_n_u8): Remove.
6766 (__arm_vcmpneq_n_s8): Remove.
6767 (__arm_vcmpltq_s8): Remove.
6768 (__arm_vcmpltq_n_s8): Remove.
6769 (__arm_vcmpleq_s8): Remove.
6770 (__arm_vcmpleq_n_s8): Remove.
6771 (__arm_vcmpgtq_s8): Remove.
6772 (__arm_vcmpgtq_n_s8): Remove.
6773 (__arm_vcmpgeq_s8): Remove.
6774 (__arm_vcmpgeq_n_s8): Remove.
6775 (__arm_vcmpeqq_s8): Remove.
6776 (__arm_vcmpeqq_n_s8): Remove.
6777 (__arm_vcmpneq_n_u16): Remove.
6778 (__arm_vcmphiq_u16): Remove.
6779 (__arm_vcmphiq_n_u16): Remove.
6780 (__arm_vcmpeqq_u16): Remove.
6781 (__arm_vcmpeqq_n_u16): Remove.
6782 (__arm_vcmpcsq_u16): Remove.
6783 (__arm_vcmpcsq_n_u16): Remove.
6784 (__arm_vcmpneq_n_s16): Remove.
6785 (__arm_vcmpltq_s16): Remove.
6786 (__arm_vcmpltq_n_s16): Remove.
6787 (__arm_vcmpleq_s16): Remove.
6788 (__arm_vcmpleq_n_s16): Remove.
6789 (__arm_vcmpgtq_s16): Remove.
6790 (__arm_vcmpgtq_n_s16): Remove.
6791 (__arm_vcmpgeq_s16): Remove.
6792 (__arm_vcmpgeq_n_s16): Remove.
6793 (__arm_vcmpeqq_s16): Remove.
6794 (__arm_vcmpeqq_n_s16): Remove.
6795 (__arm_vcmpneq_n_u32): Remove.
6796 (__arm_vcmphiq_u32): Remove.
6797 (__arm_vcmphiq_n_u32): Remove.
6798 (__arm_vcmpeqq_u32): Remove.
6799 (__arm_vcmpeqq_n_u32): Remove.
6800 (__arm_vcmpcsq_u32): Remove.
6801 (__arm_vcmpcsq_n_u32): Remove.
6802 (__arm_vcmpneq_n_s32): Remove.
6803 (__arm_vcmpltq_s32): Remove.
6804 (__arm_vcmpltq_n_s32): Remove.
6805 (__arm_vcmpleq_s32): Remove.
6806 (__arm_vcmpleq_n_s32): Remove.
6807 (__arm_vcmpgtq_s32): Remove.
6808 (__arm_vcmpgtq_n_s32): Remove.
6809 (__arm_vcmpgeq_s32): Remove.
6810 (__arm_vcmpgeq_n_s32): Remove.
6811 (__arm_vcmpeqq_s32): Remove.
6812 (__arm_vcmpeqq_n_s32): Remove.
6813 (__arm_vcmpneq_m_u8): Remove.
6814 (__arm_vcmpneq_m_n_u8): Remove.
6815 (__arm_vcmphiq_m_u8): Remove.
6816 (__arm_vcmphiq_m_n_u8): Remove.
6817 (__arm_vcmpeqq_m_u8): Remove.
6818 (__arm_vcmpeqq_m_n_u8): Remove.
6819 (__arm_vcmpcsq_m_u8): Remove.
6820 (__arm_vcmpcsq_m_n_u8): Remove.
6821 (__arm_vcmpneq_m_s8): Remove.
6822 (__arm_vcmpneq_m_n_s8): Remove.
6823 (__arm_vcmpltq_m_s8): Remove.
6824 (__arm_vcmpltq_m_n_s8): Remove.
6825 (__arm_vcmpleq_m_s8): Remove.
6826 (__arm_vcmpleq_m_n_s8): Remove.
6827 (__arm_vcmpgtq_m_s8): Remove.
6828 (__arm_vcmpgtq_m_n_s8): Remove.
6829 (__arm_vcmpgeq_m_s8): Remove.
6830 (__arm_vcmpgeq_m_n_s8): Remove.
6831 (__arm_vcmpeqq_m_s8): Remove.
6832 (__arm_vcmpeqq_m_n_s8): Remove.
6833 (__arm_vcmpneq_m_u16): Remove.
6834 (__arm_vcmpneq_m_n_u16): Remove.
6835 (__arm_vcmphiq_m_u16): Remove.
6836 (__arm_vcmphiq_m_n_u16): Remove.
6837 (__arm_vcmpeqq_m_u16): Remove.
6838 (__arm_vcmpeqq_m_n_u16): Remove.
6839 (__arm_vcmpcsq_m_u16): Remove.
6840 (__arm_vcmpcsq_m_n_u16): Remove.
6841 (__arm_vcmpneq_m_s16): Remove.
6842 (__arm_vcmpneq_m_n_s16): Remove.
6843 (__arm_vcmpltq_m_s16): Remove.
6844 (__arm_vcmpltq_m_n_s16): Remove.
6845 (__arm_vcmpleq_m_s16): Remove.
6846 (__arm_vcmpleq_m_n_s16): Remove.
6847 (__arm_vcmpgtq_m_s16): Remove.
6848 (__arm_vcmpgtq_m_n_s16): Remove.
6849 (__arm_vcmpgeq_m_s16): Remove.
6850 (__arm_vcmpgeq_m_n_s16): Remove.
6851 (__arm_vcmpeqq_m_s16): Remove.
6852 (__arm_vcmpeqq_m_n_s16): Remove.
6853 (__arm_vcmpneq_m_u32): Remove.
6854 (__arm_vcmpneq_m_n_u32): Remove.
6855 (__arm_vcmphiq_m_u32): Remove.
6856 (__arm_vcmphiq_m_n_u32): Remove.
6857 (__arm_vcmpeqq_m_u32): Remove.
6858 (__arm_vcmpeqq_m_n_u32): Remove.
6859 (__arm_vcmpcsq_m_u32): Remove.
6860 (__arm_vcmpcsq_m_n_u32): Remove.
6861 (__arm_vcmpneq_m_s32): Remove.
6862 (__arm_vcmpneq_m_n_s32): Remove.
6863 (__arm_vcmpltq_m_s32): Remove.
6864 (__arm_vcmpltq_m_n_s32): Remove.
6865 (__arm_vcmpleq_m_s32): Remove.
6866 (__arm_vcmpleq_m_n_s32): Remove.
6867 (__arm_vcmpgtq_m_s32): Remove.
6868 (__arm_vcmpgtq_m_n_s32): Remove.
6869 (__arm_vcmpgeq_m_s32): Remove.
6870 (__arm_vcmpgeq_m_n_s32): Remove.
6871 (__arm_vcmpeqq_m_s32): Remove.
6872 (__arm_vcmpeqq_m_n_s32): Remove.
6873 (__arm_vcmpneq_n_f16): Remove.
6874 (__arm_vcmpneq_f16): Remove.
6875 (__arm_vcmpltq_n_f16): Remove.
6876 (__arm_vcmpltq_f16): Remove.
6877 (__arm_vcmpleq_n_f16): Remove.
6878 (__arm_vcmpleq_f16): Remove.
6879 (__arm_vcmpgtq_n_f16): Remove.
6880 (__arm_vcmpgtq_f16): Remove.
6881 (__arm_vcmpgeq_n_f16): Remove.
6882 (__arm_vcmpgeq_f16): Remove.
6883 (__arm_vcmpeqq_n_f16): Remove.
6884 (__arm_vcmpeqq_f16): Remove.
6885 (__arm_vcmpneq_n_f32): Remove.
6886 (__arm_vcmpneq_f32): Remove.
6887 (__arm_vcmpltq_n_f32): Remove.
6888 (__arm_vcmpltq_f32): Remove.
6889 (__arm_vcmpleq_n_f32): Remove.
6890 (__arm_vcmpleq_f32): Remove.
6891 (__arm_vcmpgtq_n_f32): Remove.
6892 (__arm_vcmpgtq_f32): Remove.
6893 (__arm_vcmpgeq_n_f32): Remove.
6894 (__arm_vcmpgeq_f32): Remove.
6895 (__arm_vcmpeqq_n_f32): Remove.
6896 (__arm_vcmpeqq_f32): Remove.
6897 (__arm_vcmpeqq_m_f16): Remove.
6898 (__arm_vcmpeqq_m_f32): Remove.
6899 (__arm_vcmpeqq_m_n_f16): Remove.
6900 (__arm_vcmpgeq_m_f16): Remove.
6901 (__arm_vcmpgeq_m_n_f16): Remove.
6902 (__arm_vcmpgtq_m_f16): Remove.
6903 (__arm_vcmpgtq_m_n_f16): Remove.
6904 (__arm_vcmpleq_m_f16): Remove.
6905 (__arm_vcmpleq_m_n_f16): Remove.
6906 (__arm_vcmpltq_m_f16): Remove.
6907 (__arm_vcmpltq_m_n_f16): Remove.
6908 (__arm_vcmpneq_m_f16): Remove.
6909 (__arm_vcmpneq_m_n_f16): Remove.
6910 (__arm_vcmpeqq_m_n_f32): Remove.
6911 (__arm_vcmpgeq_m_f32): Remove.
6912 (__arm_vcmpgeq_m_n_f32): Remove.
6913 (__arm_vcmpgtq_m_f32): Remove.
6914 (__arm_vcmpgtq_m_n_f32): Remove.
6915 (__arm_vcmpleq_m_f32): Remove.
6916 (__arm_vcmpleq_m_n_f32): Remove.
6917 (__arm_vcmpltq_m_f32): Remove.
6918 (__arm_vcmpltq_m_n_f32): Remove.
6919 (__arm_vcmpneq_m_f32): Remove.
6920 (__arm_vcmpneq_m_n_f32): Remove.
6921 (__arm_vcmpneq): Remove.
6922 (__arm_vcmphiq): Remove.
6923 (__arm_vcmpeqq): Remove.
6924 (__arm_vcmpcsq): Remove.
6925 (__arm_vcmpltq): Remove.
6926 (__arm_vcmpleq): Remove.
6927 (__arm_vcmpgtq): Remove.
6928 (__arm_vcmpgeq): Remove.
6929 (__arm_vcmpneq_m): Remove.
6930 (__arm_vcmphiq_m): Remove.
6931 (__arm_vcmpeqq_m): Remove.
6932 (__arm_vcmpcsq_m): Remove.
6933 (__arm_vcmpltq_m): Remove.
6934 (__arm_vcmpleq_m): Remove.
6935 (__arm_vcmpgtq_m): Remove.
6936 (__arm_vcmpgeq_m): Remove.
6937
6938 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6939
6940 * config/arm/arm-mve-builtins-shapes.cc (cmp): New.
6941 * config/arm/arm-mve-builtins-shapes.h (cmp): New.
6942
6943 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
6944
6945 * config/arm/iterators.md (MVE_CMP_M, MVE_CMP_M_F, MVE_CMP_M_N)
6946 (MVE_CMP_M_N_F, mve_cmp_op1): New.
6947 (isu): Add VCMP*
6948 (supf): Likewise.
6949 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>): Rename into ...
6950 (@mve_vcmp<mve_cmp_op>q_n_<mode>): ... this.
6951 (mve_vcmpeqq_m_f<mode>, mve_vcmpgeq_m_f<mode>)
6952 (mve_vcmpgtq_m_f<mode>, mve_vcmpleq_m_f<mode>)
6953 (mve_vcmpltq_m_f<mode>, mve_vcmpneq_m_f<mode>): Merge into ...
6954 (@mve_vcmp<mve_cmp_op1>q_m_f<mode>): ... this.
6955 (mve_vcmpcsq_m_u<mode>, mve_vcmpeqq_m_<supf><mode>)
6956 (mve_vcmpgeq_m_s<mode>, mve_vcmpgtq_m_s<mode>)
6957 (mve_vcmphiq_m_u<mode>, mve_vcmpleq_m_s<mode>)
6958 (mve_vcmpltq_m_s<mode>, mve_vcmpneq_m_<supf><mode>): Merge into
6959 ...
6960 (@mve_vcmp<mve_cmp_op1>q_m_<supf><mode>): ... this.
6961 (mve_vcmpcsq_m_n_u<mode>, mve_vcmpeqq_m_n_<supf><mode>)
6962 (mve_vcmpgeq_m_n_s<mode>, mve_vcmpgtq_m_n_s<mode>)
6963 (mve_vcmphiq_m_n_u<mode>, mve_vcmpleq_m_n_s<mode>)
6964 (mve_vcmpltq_m_n_s<mode>, mve_vcmpneq_m_n_<supf><mode>): Merge
6965 into ...
6966 (@mve_vcmp<mve_cmp_op1>q_m_n_<supf><mode>): ... this.
6967 (mve_vcmpeqq_m_n_f<mode>, mve_vcmpgeq_m_n_f<mode>)
6968 (mve_vcmpgtq_m_n_f<mode>, mve_vcmpleq_m_n_f<mode>)
6969 (mve_vcmpltq_m_n_f<mode>, mve_vcmpneq_m_n_f<mode>): Merge into ...
6970 (@mve_vcmp<mve_cmp_op1>q_m_n_f<mode>): ... this.
6971
6972 2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
6973
6974 * match.pd <popcount optimizations>: Simplify popcount(X|Y) +
6975 popcount(X&Y) as popcount(X)+popcount(Y). Likewise, simplify
6976 popcount(X)+popcount(Y)-popcount(X&Y) as popcount(X|Y), and
6977 vice versa.
6978
6979 2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
6980
6981 * match.pd <popcount optimizations>: Simplify popcount(bswap(x))
6982 as popcount(x). Simplify popcount(rotate(x,y)) as popcount(x).
6983 <parity optimizations>: Simplify parity(bswap(x)) as parity(x).
6984 Simplify parity(rotate(x,y)) as parity(x).
6985
6986 2023-05-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6987
6988 * config/riscv/autovec.md (@vec_series<mode>): New pattern
6989 * config/riscv/riscv-protos.h (expand_vec_series): New function.
6990 * config/riscv/riscv-v.cc (emit_binop): Ditto.
6991 (emit_index_op): Ditto.
6992 (expand_vec_series): Ditto.
6993 (expand_const_vector): Add series vector handling.
6994 * config/riscv/riscv.cc (riscv_const_insns): Enable series vector for testing.
6995
6996 2023-05-10 Roger Sayle <roger@nextmovesoftware.com>
6997
6998 * config/i386/i386.md (*concat<mode><dwi>3_1): Use preferred
6999 [(const_int 0)] idiom, instead of [(clobber (const_int 0))].
7000 (*concat<mode><dwi>3_2): Likewise.
7001 (*concat<mode><dwi>3_3): Likewise.
7002 (*concat<mode><dwi>3_4): Likewise.
7003 (*concat<mode><dwi>3_5): Likewise.
7004 (*concat<mode><dwi>3_6): Likewise.
7005 (*concat<mode><dwi>3_7): Likewise.
7006
7007 2023-05-10 Uros Bizjak <ubizjak@gmail.com>
7008
7009 PR target/92658
7010 * config/i386/mmx.md (sse4_1_<code>v2qiv2si2): New insn pattern.
7011 (<insn>v4qiv4hi2): New expander.
7012 (<insn>v2hiv2si2): Ditto.
7013 (<insn>v2qiv2si2): Ditto.
7014 (<insn>v2qiv2hi2): Ditto.
7015
7016 2023-05-10 Jeff Law <jlaw@ventanamicro>
7017
7018 * config/h8300/constraints.md (Q): Make this a special memory
7019 constraint.
7020 (Zz): Similarly.
7021
7022 2023-05-10 Jakub Jelinek <jakub@redhat.com>
7023
7024 PR fortran/109788
7025 * ipa-prop.cc (ipa_get_callee_param_type): Don't return TREE_VALUE (t)
7026 if t is void_list_node.
7027
7028 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7029
7030 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>_insn_le): Delete.
7031 (aarch64_sqmovun<mode>_insn_be): Delete.
7032 (aarch64_sqmovun<mode><vczle><vczbe>): New define_insn.
7033 (aarch64_sqmovun<mode>): Delete expander.
7034
7035 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7036
7037 PR target/99195
7038 * config/aarch64/aarch64-simd.md (aarch64_<PERMUTE:perm_insn><mode>):
7039 Rename to...
7040 (aarch64_<PERMUTE:perm_insn><mode><vczle><vczbe>): ... This.
7041 (aarch64_rev<REVERSE:rev_op><mode>): Rename to...
7042 (aarch64_rev<REVERSE:rev_op><mode><vczle><vczbe>): ... This.
7043
7044 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7045
7046 PR target/99195
7047 * config/aarch64/aarch64-simd.md (aarch64_<su_optab>q<addsub><mode>):
7048 Rename to...
7049 (aarch64_<su_optab>q<addsub><mode><vczle><vczbe>): ... This.
7050 (aarch64_<sur>qadd<mode>): Rename to...
7051 (aarch64_<sur>qadd<mode><vczle><vczbe>): ... This.
7052
7053 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7054
7055 * config/aarch64/aarch64-simd.md
7056 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): Delete.
7057 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): Delete.
7058 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn<vczle><vczbe>): New define_insn.
7059 (aarch64_<sur>q<r>shr<u>n_n<mode>): Simplify expander.
7060
7061 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7062
7063 PR target/99195
7064 * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le): Delete.
7065 (aarch64_xtn<mode>_insn_be): Likewise.
7066 (trunc<mode><Vnarrowq>2): Rename to...
7067 (trunc<mode><Vnarrowq>2<vczle><vczbe>): ... This.
7068 (aarch64_xtn<mode>): Move under the above. Just emit the truncate RTL.
7069 (aarch64_<su>qmovn<mode>): Likewise.
7070 (aarch64_<su>qmovn<mode><vczle><vczbe>): New define_insn.
7071 (aarch64_<su>qmovn<mode>_insn_le): Delete.
7072 (aarch64_<su>qmovn<mode>_insn_be): Likewise.
7073
7074 2023-05-10 Li Xu <xuli1@eswincomputing.com>
7075
7076 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): For vfmv.f.s/vmv.x.s
7077 intruction replace null avl with (const_int 0).
7078
7079 2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7080
7081 * config/riscv/riscv.cc (riscv_support_vector_misalignment): Fix
7082 incorrect codes.
7083
7084 2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7085
7086 PR target/109773
7087 * config/riscv/riscv-vsetvl.cc (avl_source_has_vsetvl_p): New function.
7088 (source_equal_p): Fix dead loop in vsetvl avl checking.
7089
7090 2023-05-10 Hans-Peter Nilsson <hp@axis.com>
7091
7092 * config/cris/cris.cc (cris_postdbr_cmpelim): Correct mode
7093 of modeadjusted_dccr.
7094
7095 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7096
7097 * config/arm/arm-mve-builtins-base.cc (vmaxaq, vminaq): New.
7098 * config/arm/arm-mve-builtins-base.def (vmaxaq, vminaq): New.
7099 * config/arm/arm-mve-builtins-base.h (vmaxaq, vminaq): New.
7100 * config/arm/arm-mve-builtins.cc
7101 (function_instance::has_inactive_argument): Handle vmaxaq and
7102 vminaq.
7103 * config/arm/arm_mve.h (vminaq): Remove.
7104 (vmaxaq): Remove.
7105 (vminaq_m): Remove.
7106 (vmaxaq_m): Remove.
7107 (vminaq_s8): Remove.
7108 (vmaxaq_s8): Remove.
7109 (vminaq_s16): Remove.
7110 (vmaxaq_s16): Remove.
7111 (vminaq_s32): Remove.
7112 (vmaxaq_s32): Remove.
7113 (vminaq_m_s8): Remove.
7114 (vmaxaq_m_s8): Remove.
7115 (vminaq_m_s16): Remove.
7116 (vmaxaq_m_s16): Remove.
7117 (vminaq_m_s32): Remove.
7118 (vmaxaq_m_s32): Remove.
7119 (__arm_vminaq_s8): Remove.
7120 (__arm_vmaxaq_s8): Remove.
7121 (__arm_vminaq_s16): Remove.
7122 (__arm_vmaxaq_s16): Remove.
7123 (__arm_vminaq_s32): Remove.
7124 (__arm_vmaxaq_s32): Remove.
7125 (__arm_vminaq_m_s8): Remove.
7126 (__arm_vmaxaq_m_s8): Remove.
7127 (__arm_vminaq_m_s16): Remove.
7128 (__arm_vmaxaq_m_s16): Remove.
7129 (__arm_vminaq_m_s32): Remove.
7130 (__arm_vmaxaq_m_s32): Remove.
7131 (__arm_vminaq): Remove.
7132 (__arm_vmaxaq): Remove.
7133 (__arm_vminaq_m): Remove.
7134 (__arm_vmaxaq_m): Remove.
7135
7136 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7137
7138 * config/arm/iterators.md (MVE_VMAXAVMINAQ, MVE_VMAXAVMINAQ_M):
7139 New.
7140 (mve_insn): Add vmaxa, vmina.
7141 (supf): Add VMAXAQ_S, VMAXAQ_M_S, VMINAQ_S, VMINAQ_M_S.
7142 * config/arm/mve.md (mve_vmaxaq_s<mode>, mve_vminaq_s<mode>):
7143 Merge into ...
7144 (@mve_<mve_insn>q_<supf><mode>): ... this.
7145 (mve_vmaxaq_m_s<mode>, mve_vminaq_m_s<mode>): Merge into ...
7146 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
7147
7148 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7149
7150 * config/arm/arm-mve-builtins-shapes.cc (binary_maxamina): New.
7151 * config/arm/arm-mve-builtins-shapes.h (binary_maxamina): New.
7152
7153 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7154
7155 * config/arm/arm-mve-builtins-base.cc (vmaxnmaq, vminnmaq): New.
7156 * config/arm/arm-mve-builtins-base.def (vmaxnmaq, vminnmaq): New.
7157 * config/arm/arm-mve-builtins-base.h (vmaxnmaq, vminnmaq): New.
7158 * config/arm/arm-mve-builtins.cc
7159 (function_instance::has_inactive_argument): Handle vmaxnmaq and
7160 vminnmaq.
7161 * config/arm/arm_mve.h (vminnmaq): Remove.
7162 (vmaxnmaq): Remove.
7163 (vmaxnmaq_m): Remove.
7164 (vminnmaq_m): Remove.
7165 (vminnmaq_f16): Remove.
7166 (vmaxnmaq_f16): Remove.
7167 (vminnmaq_f32): Remove.
7168 (vmaxnmaq_f32): Remove.
7169 (vmaxnmaq_m_f16): Remove.
7170 (vminnmaq_m_f16): Remove.
7171 (vmaxnmaq_m_f32): Remove.
7172 (vminnmaq_m_f32): Remove.
7173 (__arm_vminnmaq_f16): Remove.
7174 (__arm_vmaxnmaq_f16): Remove.
7175 (__arm_vminnmaq_f32): Remove.
7176 (__arm_vmaxnmaq_f32): Remove.
7177 (__arm_vmaxnmaq_m_f16): Remove.
7178 (__arm_vminnmaq_m_f16): Remove.
7179 (__arm_vmaxnmaq_m_f32): Remove.
7180 (__arm_vminnmaq_m_f32): Remove.
7181 (__arm_vminnmaq): Remove.
7182 (__arm_vmaxnmaq): Remove.
7183 (__arm_vmaxnmaq_m): Remove.
7184 (__arm_vminnmaq_m): Remove.
7185
7186 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7187
7188 * config/arm/iterators.md (MVE_VMAXNMA_VMINNMAQ)
7189 (MVE_VMAXNMA_VMINNMAQ_M): New.
7190 (mve_insn): Add vmaxnma, vminnma.
7191 * config/arm/mve.md (mve_vmaxnmaq_f<mode>, mve_vminnmaq_f<mode>):
7192 Merge into ...
7193 (@mve_<mve_insn>q_f<mode>): ... this.
7194 (mve_vmaxnmaq_m_f<mode>, mve_vminnmaq_m_f<mode>): Merge into ...
7195 (@mve_<mve_insn>q_m_f<mode>): ... this.
7196
7197 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7198
7199 * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_F): New.
7200 (vmaxnmavq, vmaxnmvq, vminnmavq, vminnmvq): New.
7201 * config/arm/arm-mve-builtins-base.def (vmaxnmavq, vmaxnmvq)
7202 (vminnmavq, vminnmvq): New.
7203 * config/arm/arm-mve-builtins-base.h (vmaxnmavq, vmaxnmvq)
7204 (vminnmavq, vminnmvq): New.
7205 * config/arm/arm_mve.h (vminnmvq): Remove.
7206 (vminnmavq): Remove.
7207 (vmaxnmvq): Remove.
7208 (vmaxnmavq): Remove.
7209 (vmaxnmavq_p): Remove.
7210 (vmaxnmvq_p): Remove.
7211 (vminnmavq_p): Remove.
7212 (vminnmvq_p): Remove.
7213 (vminnmvq_f16): Remove.
7214 (vminnmavq_f16): Remove.
7215 (vmaxnmvq_f16): Remove.
7216 (vmaxnmavq_f16): Remove.
7217 (vminnmvq_f32): Remove.
7218 (vminnmavq_f32): Remove.
7219 (vmaxnmvq_f32): Remove.
7220 (vmaxnmavq_f32): Remove.
7221 (vmaxnmavq_p_f16): Remove.
7222 (vmaxnmvq_p_f16): Remove.
7223 (vminnmavq_p_f16): Remove.
7224 (vminnmvq_p_f16): Remove.
7225 (vmaxnmavq_p_f32): Remove.
7226 (vmaxnmvq_p_f32): Remove.
7227 (vminnmavq_p_f32): Remove.
7228 (vminnmvq_p_f32): Remove.
7229 (__arm_vminnmvq_f16): Remove.
7230 (__arm_vminnmavq_f16): Remove.
7231 (__arm_vmaxnmvq_f16): Remove.
7232 (__arm_vmaxnmavq_f16): Remove.
7233 (__arm_vminnmvq_f32): Remove.
7234 (__arm_vminnmavq_f32): Remove.
7235 (__arm_vmaxnmvq_f32): Remove.
7236 (__arm_vmaxnmavq_f32): Remove.
7237 (__arm_vmaxnmavq_p_f16): Remove.
7238 (__arm_vmaxnmvq_p_f16): Remove.
7239 (__arm_vminnmavq_p_f16): Remove.
7240 (__arm_vminnmvq_p_f16): Remove.
7241 (__arm_vmaxnmavq_p_f32): Remove.
7242 (__arm_vmaxnmvq_p_f32): Remove.
7243 (__arm_vminnmavq_p_f32): Remove.
7244 (__arm_vminnmvq_p_f32): Remove.
7245 (__arm_vminnmvq): Remove.
7246 (__arm_vminnmavq): Remove.
7247 (__arm_vmaxnmvq): Remove.
7248 (__arm_vmaxnmavq): Remove.
7249 (__arm_vmaxnmavq_p): Remove.
7250 (__arm_vmaxnmvq_p): Remove.
7251 (__arm_vminnmavq_p): Remove.
7252 (__arm_vminnmvq_p): Remove.
7253 (__arm_vmaxnmavq_m): Remove.
7254 (__arm_vmaxnmvq_m): Remove.
7255
7256 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7257
7258 * config/arm/arm-mve-builtins-functions.h
7259 (unspec_mve_function_exact_insn_pred_p): Use code_for_mve_q_p_f.
7260
7261 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7262
7263 * config/arm/iterators.md (MVE_VMAXNMxV_MINNMxVQ)
7264 (MVE_VMAXNMxV_MINNMxVQ_P): New.
7265 (mve_insn): Add vmaxnmav, vmaxnmv, vminnmav, vminnmv.
7266 * config/arm/mve.md (mve_vmaxnmavq_f<mode>, mve_vmaxnmvq_f<mode>)
7267 (mve_vminnmavq_f<mode>, mve_vminnmvq_f<mode>): Merge into ...
7268 (@mve_<mve_insn>q_f<mode>): ... this.
7269 (mve_vmaxnmavq_p_f<mode>, mve_vmaxnmvq_p_f<mode>)
7270 (mve_vminnmavq_p_f<mode>, mve_vminnmvq_p_f<mode>): Merge into ...
7271 (@mve_<mve_insn>q_p_f<mode>): ... this.
7272
7273 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7274
7275 * config/arm/arm-mve-builtins-base.cc (vmaxnmq, vminnmq): New.
7276 * config/arm/arm-mve-builtins-base.def (vmaxnmq, vminnmq): New.
7277 * config/arm/arm-mve-builtins-base.h (vmaxnmq, vminnmq): New.
7278 * config/arm/arm_mve.h (vminnmq): Remove.
7279 (vmaxnmq): Remove.
7280 (vmaxnmq_m): Remove.
7281 (vminnmq_m): Remove.
7282 (vminnmq_x): Remove.
7283 (vmaxnmq_x): Remove.
7284 (vminnmq_f16): Remove.
7285 (vmaxnmq_f16): Remove.
7286 (vminnmq_f32): Remove.
7287 (vmaxnmq_f32): Remove.
7288 (vmaxnmq_m_f32): Remove.
7289 (vmaxnmq_m_f16): Remove.
7290 (vminnmq_m_f32): Remove.
7291 (vminnmq_m_f16): Remove.
7292 (vminnmq_x_f16): Remove.
7293 (vminnmq_x_f32): Remove.
7294 (vmaxnmq_x_f16): Remove.
7295 (vmaxnmq_x_f32): Remove.
7296 (__arm_vminnmq_f16): Remove.
7297 (__arm_vmaxnmq_f16): Remove.
7298 (__arm_vminnmq_f32): Remove.
7299 (__arm_vmaxnmq_f32): Remove.
7300 (__arm_vmaxnmq_m_f32): Remove.
7301 (__arm_vmaxnmq_m_f16): Remove.
7302 (__arm_vminnmq_m_f32): Remove.
7303 (__arm_vminnmq_m_f16): Remove.
7304 (__arm_vminnmq_x_f16): Remove.
7305 (__arm_vminnmq_x_f32): Remove.
7306 (__arm_vmaxnmq_x_f16): Remove.
7307 (__arm_vmaxnmq_x_f32): Remove.
7308 (__arm_vminnmq): Remove.
7309 (__arm_vmaxnmq): Remove.
7310 (__arm_vmaxnmq_m): Remove.
7311 (__arm_vminnmq_m): Remove.
7312 (__arm_vminnmq_x): Remove.
7313 (__arm_vmaxnmq_x): Remove.
7314
7315 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7316
7317 * config/arm/iterators.md (MAX_MIN_F): New.
7318 (MVE_FP_M_BINARY): Add VMAXNMQ_M_F, VMINNMQ_M_F.
7319 (mve_insn): Add vmaxnm, vminnm.
7320 (max_min_f_str): New.
7321 * config/arm/mve.md (mve_vmaxnmq_f<mode>, mve_vminnmq_f<mode>):
7322 Merge into ...
7323 (@mve_<max_min_f_str>q_f<mode>): ... this.
7324 (mve_vmaxnmq_m_f<mode>, mve_vminnmq_m_f<mode>): Merge into ...
7325 (@mve_<mve_insn>q_m_f<mode>): ... this.
7326
7327 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7328
7329 * config/arm/vec-common.md (smin<mode>3): Use VDQWH iterator.
7330 (smax<mode>3): Likewise.
7331
7332 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7333
7334 * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_S_U)
7335 (FUNCTION_PRED_P_S): New.
7336 (vmaxavq, vminavq, vmaxvq, vminvq): New.
7337 * config/arm/arm-mve-builtins-base.def (vmaxavq, vminavq, vmaxvq)
7338 (vminvq): New.
7339 * config/arm/arm-mve-builtins-base.h (vmaxavq, vminavq, vmaxvq)
7340 (vminvq): New.
7341 * config/arm/arm_mve.h (vminvq): Remove.
7342 (vmaxvq): Remove.
7343 (vminvq_p): Remove.
7344 (vmaxvq_p): Remove.
7345 (vminvq_u8): Remove.
7346 (vmaxvq_u8): Remove.
7347 (vminvq_s8): Remove.
7348 (vmaxvq_s8): Remove.
7349 (vminvq_u16): Remove.
7350 (vmaxvq_u16): Remove.
7351 (vminvq_s16): Remove.
7352 (vmaxvq_s16): Remove.
7353 (vminvq_u32): Remove.
7354 (vmaxvq_u32): Remove.
7355 (vminvq_s32): Remove.
7356 (vmaxvq_s32): Remove.
7357 (vminvq_p_u8): Remove.
7358 (vmaxvq_p_u8): Remove.
7359 (vminvq_p_s8): Remove.
7360 (vmaxvq_p_s8): Remove.
7361 (vminvq_p_u16): Remove.
7362 (vmaxvq_p_u16): Remove.
7363 (vminvq_p_s16): Remove.
7364 (vmaxvq_p_s16): Remove.
7365 (vminvq_p_u32): Remove.
7366 (vmaxvq_p_u32): Remove.
7367 (vminvq_p_s32): Remove.
7368 (vmaxvq_p_s32): Remove.
7369 (__arm_vminvq_u8): Remove.
7370 (__arm_vmaxvq_u8): Remove.
7371 (__arm_vminvq_s8): Remove.
7372 (__arm_vmaxvq_s8): Remove.
7373 (__arm_vminvq_u16): Remove.
7374 (__arm_vmaxvq_u16): Remove.
7375 (__arm_vminvq_s16): Remove.
7376 (__arm_vmaxvq_s16): Remove.
7377 (__arm_vminvq_u32): Remove.
7378 (__arm_vmaxvq_u32): Remove.
7379 (__arm_vminvq_s32): Remove.
7380 (__arm_vmaxvq_s32): Remove.
7381 (__arm_vminvq_p_u8): Remove.
7382 (__arm_vmaxvq_p_u8): Remove.
7383 (__arm_vminvq_p_s8): Remove.
7384 (__arm_vmaxvq_p_s8): Remove.
7385 (__arm_vminvq_p_u16): Remove.
7386 (__arm_vmaxvq_p_u16): Remove.
7387 (__arm_vminvq_p_s16): Remove.
7388 (__arm_vmaxvq_p_s16): Remove.
7389 (__arm_vminvq_p_u32): Remove.
7390 (__arm_vmaxvq_p_u32): Remove.
7391 (__arm_vminvq_p_s32): Remove.
7392 (__arm_vmaxvq_p_s32): Remove.
7393 (__arm_vminvq): Remove.
7394 (__arm_vmaxvq): Remove.
7395 (__arm_vminvq_p): Remove.
7396 (__arm_vmaxvq_p): Remove.
7397 (vminavq): Remove.
7398 (vmaxavq): Remove.
7399 (vminavq_p): Remove.
7400 (vmaxavq_p): Remove.
7401 (vminavq_s8): Remove.
7402 (vmaxavq_s8): Remove.
7403 (vminavq_s16): Remove.
7404 (vmaxavq_s16): Remove.
7405 (vminavq_s32): Remove.
7406 (vmaxavq_s32): Remove.
7407 (vminavq_p_s8): Remove.
7408 (vmaxavq_p_s8): Remove.
7409 (vminavq_p_s16): Remove.
7410 (vmaxavq_p_s16): Remove.
7411 (vminavq_p_s32): Remove.
7412 (vmaxavq_p_s32): Remove.
7413 (__arm_vminavq_s8): Remove.
7414 (__arm_vmaxavq_s8): Remove.
7415 (__arm_vminavq_s16): Remove.
7416 (__arm_vmaxavq_s16): Remove.
7417 (__arm_vminavq_s32): Remove.
7418 (__arm_vmaxavq_s32): Remove.
7419 (__arm_vminavq_p_s8): Remove.
7420 (__arm_vmaxavq_p_s8): Remove.
7421 (__arm_vminavq_p_s16): Remove.
7422 (__arm_vmaxavq_p_s16): Remove.
7423 (__arm_vminavq_p_s32): Remove.
7424 (__arm_vmaxavq_p_s32): Remove.
7425 (__arm_vminavq): Remove.
7426 (__arm_vmaxavq): Remove.
7427 (__arm_vminavq_p): Remove.
7428 (__arm_vmaxavq_p): Remove.
7429
7430 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7431
7432 * config/arm/iterators.md (MVE_VMAXVQ_VMINVQ, MVE_VMAXVQ_VMINVQ_P): New.
7433 (mve_insn): Add vmaxav, vmaxv, vminav, vminv.
7434 (supf): Add VMAXAVQ_S, VMAXAVQ_P_S, VMINAVQ_S, VMINAVQ_P_S.
7435 * config/arm/mve.md (mve_vmaxavq_s<mode>, mve_vmaxvq_<supf><mode>)
7436 (mve_vminavq_s<mode>, mve_vminvq_<supf><mode>): Merge into ...
7437 (@mve_<mve_insn>q_<supf><mode>): ... this.
7438 (mve_vmaxavq_p_s<mode>, mve_vmaxvq_p_<supf><mode>)
7439 (mve_vminavq_p_s<mode>, mve_vminvq_p_<supf><mode>): Merge into ...
7440 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
7441
7442 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7443
7444 * config/arm/arm-mve-builtins-functions.h (class
7445 unspec_mve_function_exact_insn_pred_p): New.
7446
7447 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7448
7449 * config/arm/arm-mve-builtins-shapes.cc (binary_maxavminav): New.
7450 * config/arm/arm-mve-builtins-shapes.h (binary_maxavminav): New.
7451
7452 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7453
7454 * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New.
7455 * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New.
7456
7457 2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
7458
7459 * config/aarch64/aarch64-protos.h (aarch64_adjust_reg_alloc_order):
7460 Declare.
7461 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
7462 (ADJUST_REG_ALLOC_ORDER): Likewise.
7463 * config/aarch64/aarch64.cc (aarch64_adjust_reg_alloc_order): New
7464 function.
7465 * config/aarch64/aarch64-sve.md (*vcond_mask_<mode><vpred>): Use
7466 Upa rather than Upl for unpredicated movprfx alternatives.
7467
7468 2023-05-09 Jeff Law <jlaw@ventanamicro>
7469
7470 * config/h8300/testcompare.md: Add peephole2 which uses a memory
7471 load to set flags, thus eliminating a compare against zero.
7472
7473 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7474
7475 * config/arm/arm-mve-builtins-base.cc (vshllbq, vshlltq): New.
7476 * config/arm/arm-mve-builtins-base.def (vshllbq, vshlltq): New.
7477 * config/arm/arm-mve-builtins-base.h (vshllbq, vshlltq): New.
7478 * config/arm/arm_mve.h (vshlltq): Remove.
7479 (vshllbq): Remove.
7480 (vshllbq_m): Remove.
7481 (vshlltq_m): Remove.
7482 (vshllbq_x): Remove.
7483 (vshlltq_x): Remove.
7484 (vshlltq_n_u8): Remove.
7485 (vshllbq_n_u8): Remove.
7486 (vshlltq_n_s8): Remove.
7487 (vshllbq_n_s8): Remove.
7488 (vshlltq_n_u16): Remove.
7489 (vshllbq_n_u16): Remove.
7490 (vshlltq_n_s16): Remove.
7491 (vshllbq_n_s16): Remove.
7492 (vshllbq_m_n_s8): Remove.
7493 (vshllbq_m_n_s16): Remove.
7494 (vshllbq_m_n_u8): Remove.
7495 (vshllbq_m_n_u16): Remove.
7496 (vshlltq_m_n_s8): Remove.
7497 (vshlltq_m_n_s16): Remove.
7498 (vshlltq_m_n_u8): Remove.
7499 (vshlltq_m_n_u16): Remove.
7500 (vshllbq_x_n_s8): Remove.
7501 (vshllbq_x_n_s16): Remove.
7502 (vshllbq_x_n_u8): Remove.
7503 (vshllbq_x_n_u16): Remove.
7504 (vshlltq_x_n_s8): Remove.
7505 (vshlltq_x_n_s16): Remove.
7506 (vshlltq_x_n_u8): Remove.
7507 (vshlltq_x_n_u16): Remove.
7508 (__arm_vshlltq_n_u8): Remove.
7509 (__arm_vshllbq_n_u8): Remove.
7510 (__arm_vshlltq_n_s8): Remove.
7511 (__arm_vshllbq_n_s8): Remove.
7512 (__arm_vshlltq_n_u16): Remove.
7513 (__arm_vshllbq_n_u16): Remove.
7514 (__arm_vshlltq_n_s16): Remove.
7515 (__arm_vshllbq_n_s16): Remove.
7516 (__arm_vshllbq_m_n_s8): Remove.
7517 (__arm_vshllbq_m_n_s16): Remove.
7518 (__arm_vshllbq_m_n_u8): Remove.
7519 (__arm_vshllbq_m_n_u16): Remove.
7520 (__arm_vshlltq_m_n_s8): Remove.
7521 (__arm_vshlltq_m_n_s16): Remove.
7522 (__arm_vshlltq_m_n_u8): Remove.
7523 (__arm_vshlltq_m_n_u16): Remove.
7524 (__arm_vshllbq_x_n_s8): Remove.
7525 (__arm_vshllbq_x_n_s16): Remove.
7526 (__arm_vshllbq_x_n_u8): Remove.
7527 (__arm_vshllbq_x_n_u16): Remove.
7528 (__arm_vshlltq_x_n_s8): Remove.
7529 (__arm_vshlltq_x_n_s16): Remove.
7530 (__arm_vshlltq_x_n_u8): Remove.
7531 (__arm_vshlltq_x_n_u16): Remove.
7532 (__arm_vshlltq): Remove.
7533 (__arm_vshllbq): Remove.
7534 (__arm_vshllbq_m): Remove.
7535 (__arm_vshlltq_m): Remove.
7536 (__arm_vshllbq_x): Remove.
7537 (__arm_vshlltq_x): Remove.
7538
7539 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7540
7541 * config/arm/iterators.md (mve_insn): Add vshllb, vshllt.
7542 (VSHLLBQ_N, VSHLLTQ_N): Remove.
7543 (VSHLLxQ_N): New.
7544 (VSHLLBQ_M_N, VSHLLTQ_M_N): Remove.
7545 (VSHLLxQ_M_N): New.
7546 * config/arm/mve.md (mve_vshllbq_n_<supf><mode>)
7547 (mve_vshlltq_n_<supf><mode>): Merge into ...
7548 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
7549 (mve_vshllbq_m_n_<supf><mode>, mve_vshlltq_m_n_<supf><mode>):
7550 Merge into ...
7551 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
7552
7553 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7554
7555 * config/arm/arm-mve-builtins-shapes.cc (binary_widen_n): New.
7556 * config/arm/arm-mve-builtins-shapes.h (binary_widen_n): New.
7557
7558 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7559
7560 * config/arm/arm-mve-builtins-base.cc (vmovnbq, vmovntq, vqmovnbq)
7561 (vqmovntq, vqmovunbq, vqmovuntq): New.
7562 * config/arm/arm-mve-builtins-base.def (vmovnbq, vmovntq)
7563 (vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq): New.
7564 * config/arm/arm-mve-builtins-base.h (vmovnbq, vmovntq, vqmovnbq)
7565 (vqmovntq, vqmovunbq, vqmovuntq): New.
7566 * config/arm/arm-mve-builtins.cc
7567 (function_instance::has_inactive_argument): Handle vmovnbq,
7568 vmovntq, vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq.
7569 * config/arm/arm_mve.h (vqmovntq): Remove.
7570 (vqmovnbq): Remove.
7571 (vqmovnbq_m): Remove.
7572 (vqmovntq_m): Remove.
7573 (vqmovntq_u16): Remove.
7574 (vqmovnbq_u16): Remove.
7575 (vqmovntq_s16): Remove.
7576 (vqmovnbq_s16): Remove.
7577 (vqmovntq_u32): Remove.
7578 (vqmovnbq_u32): Remove.
7579 (vqmovntq_s32): Remove.
7580 (vqmovnbq_s32): Remove.
7581 (vqmovnbq_m_s16): Remove.
7582 (vqmovntq_m_s16): Remove.
7583 (vqmovnbq_m_u16): Remove.
7584 (vqmovntq_m_u16): Remove.
7585 (vqmovnbq_m_s32): Remove.
7586 (vqmovntq_m_s32): Remove.
7587 (vqmovnbq_m_u32): Remove.
7588 (vqmovntq_m_u32): Remove.
7589 (__arm_vqmovntq_u16): Remove.
7590 (__arm_vqmovnbq_u16): Remove.
7591 (__arm_vqmovntq_s16): Remove.
7592 (__arm_vqmovnbq_s16): Remove.
7593 (__arm_vqmovntq_u32): Remove.
7594 (__arm_vqmovnbq_u32): Remove.
7595 (__arm_vqmovntq_s32): Remove.
7596 (__arm_vqmovnbq_s32): Remove.
7597 (__arm_vqmovnbq_m_s16): Remove.
7598 (__arm_vqmovntq_m_s16): Remove.
7599 (__arm_vqmovnbq_m_u16): Remove.
7600 (__arm_vqmovntq_m_u16): Remove.
7601 (__arm_vqmovnbq_m_s32): Remove.
7602 (__arm_vqmovntq_m_s32): Remove.
7603 (__arm_vqmovnbq_m_u32): Remove.
7604 (__arm_vqmovntq_m_u32): Remove.
7605 (__arm_vqmovntq): Remove.
7606 (__arm_vqmovnbq): Remove.
7607 (__arm_vqmovnbq_m): Remove.
7608 (__arm_vqmovntq_m): Remove.
7609 (vmovntq): Remove.
7610 (vmovnbq): Remove.
7611 (vmovnbq_m): Remove.
7612 (vmovntq_m): Remove.
7613 (vmovntq_u16): Remove.
7614 (vmovnbq_u16): Remove.
7615 (vmovntq_s16): Remove.
7616 (vmovnbq_s16): Remove.
7617 (vmovntq_u32): Remove.
7618 (vmovnbq_u32): Remove.
7619 (vmovntq_s32): Remove.
7620 (vmovnbq_s32): Remove.
7621 (vmovnbq_m_s16): Remove.
7622 (vmovntq_m_s16): Remove.
7623 (vmovnbq_m_u16): Remove.
7624 (vmovntq_m_u16): Remove.
7625 (vmovnbq_m_s32): Remove.
7626 (vmovntq_m_s32): Remove.
7627 (vmovnbq_m_u32): Remove.
7628 (vmovntq_m_u32): Remove.
7629 (__arm_vmovntq_u16): Remove.
7630 (__arm_vmovnbq_u16): Remove.
7631 (__arm_vmovntq_s16): Remove.
7632 (__arm_vmovnbq_s16): Remove.
7633 (__arm_vmovntq_u32): Remove.
7634 (__arm_vmovnbq_u32): Remove.
7635 (__arm_vmovntq_s32): Remove.
7636 (__arm_vmovnbq_s32): Remove.
7637 (__arm_vmovnbq_m_s16): Remove.
7638 (__arm_vmovntq_m_s16): Remove.
7639 (__arm_vmovnbq_m_u16): Remove.
7640 (__arm_vmovntq_m_u16): Remove.
7641 (__arm_vmovnbq_m_s32): Remove.
7642 (__arm_vmovntq_m_s32): Remove.
7643 (__arm_vmovnbq_m_u32): Remove.
7644 (__arm_vmovntq_m_u32): Remove.
7645 (__arm_vmovntq): Remove.
7646 (__arm_vmovnbq): Remove.
7647 (__arm_vmovnbq_m): Remove.
7648 (__arm_vmovntq_m): Remove.
7649 (vqmovuntq): Remove.
7650 (vqmovunbq): Remove.
7651 (vqmovunbq_m): Remove.
7652 (vqmovuntq_m): Remove.
7653 (vqmovuntq_s16): Remove.
7654 (vqmovunbq_s16): Remove.
7655 (vqmovuntq_s32): Remove.
7656 (vqmovunbq_s32): Remove.
7657 (vqmovunbq_m_s16): Remove.
7658 (vqmovuntq_m_s16): Remove.
7659 (vqmovunbq_m_s32): Remove.
7660 (vqmovuntq_m_s32): Remove.
7661 (__arm_vqmovuntq_s16): Remove.
7662 (__arm_vqmovunbq_s16): Remove.
7663 (__arm_vqmovuntq_s32): Remove.
7664 (__arm_vqmovunbq_s32): Remove.
7665 (__arm_vqmovunbq_m_s16): Remove.
7666 (__arm_vqmovuntq_m_s16): Remove.
7667 (__arm_vqmovunbq_m_s32): Remove.
7668 (__arm_vqmovuntq_m_s32): Remove.
7669 (__arm_vqmovuntq): Remove.
7670 (__arm_vqmovunbq): Remove.
7671 (__arm_vqmovunbq_m): Remove.
7672 (__arm_vqmovuntq_m): Remove.
7673
7674 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7675
7676 * config/arm/iterators.md (MVE_MOVN, MVE_MOVN_M): New.
7677 (mve_insn): Add vmovnb, vmovnt, vqmovnb, vqmovnt, vqmovunb,
7678 vqmovunt.
7679 (isu): Likewise.
7680 (supf): Add VQMOVUNBQ_M_S, VQMOVUNBQ_S, VQMOVUNTQ_M_S,
7681 VQMOVUNTQ_S.
7682 * config/arm/mve.md (mve_vmovnbq_<supf><mode>)
7683 (mve_vmovntq_<supf><mode>, mve_vqmovnbq_<supf><mode>)
7684 (mve_vqmovntq_<supf><mode>, mve_vqmovunbq_s<mode>)
7685 (mve_vqmovuntq_s<mode>): Merge into ...
7686 (@mve_<mve_insn>q_<supf><mode>): ... this.
7687 (mve_vmovnbq_m_<supf><mode>, mve_vmovntq_m_<supf><mode>)
7688 (mve_vqmovnbq_m_<supf><mode>, mve_vqmovntq_m_<supf><mode>)
7689 (mve_vqmovunbq_m_s<mode>, mve_vqmovuntq_m_s<mode>): Merge into ...
7690 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
7691
7692 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7693
7694 * config/arm/arm-mve-builtins-shapes.cc (binary_move_narrow): New.
7695 (binary_move_narrow_unsigned): New.
7696 * config/arm/arm-mve-builtins-shapes.h (binary_move_narrow): New.
7697 (binary_move_narrow_unsigned): New.
7698
7699 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7700
7701 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_F): New.
7702 (vrndaq, vrndmq, vrndnq, vrndpq, vrndq, vrndxq): New.
7703 * config/arm/arm-mve-builtins-base.def (vrndaq, vrndmq, vrndnq)
7704 (vrndpq, vrndq, vrndxq): New.
7705 * config/arm/arm-mve-builtins-base.h (vrndaq, vrndmq, vrndnq)
7706 (vrndpq, vrndq, vrndxq): New.
7707 * config/arm/arm_mve.h (vrndxq): Remove.
7708 (vrndq): Remove.
7709 (vrndpq): Remove.
7710 (vrndnq): Remove.
7711 (vrndmq): Remove.
7712 (vrndaq): Remove.
7713 (vrndaq_m): Remove.
7714 (vrndmq_m): Remove.
7715 (vrndnq_m): Remove.
7716 (vrndpq_m): Remove.
7717 (vrndq_m): Remove.
7718 (vrndxq_m): Remove.
7719 (vrndq_x): Remove.
7720 (vrndnq_x): Remove.
7721 (vrndmq_x): Remove.
7722 (vrndpq_x): Remove.
7723 (vrndaq_x): Remove.
7724 (vrndxq_x): Remove.
7725 (vrndxq_f16): Remove.
7726 (vrndxq_f32): Remove.
7727 (vrndq_f16): Remove.
7728 (vrndq_f32): Remove.
7729 (vrndpq_f16): Remove.
7730 (vrndpq_f32): Remove.
7731 (vrndnq_f16): Remove.
7732 (vrndnq_f32): Remove.
7733 (vrndmq_f16): Remove.
7734 (vrndmq_f32): Remove.
7735 (vrndaq_f16): Remove.
7736 (vrndaq_f32): Remove.
7737 (vrndaq_m_f16): Remove.
7738 (vrndmq_m_f16): Remove.
7739 (vrndnq_m_f16): Remove.
7740 (vrndpq_m_f16): Remove.
7741 (vrndq_m_f16): Remove.
7742 (vrndxq_m_f16): Remove.
7743 (vrndaq_m_f32): Remove.
7744 (vrndmq_m_f32): Remove.
7745 (vrndnq_m_f32): Remove.
7746 (vrndpq_m_f32): Remove.
7747 (vrndq_m_f32): Remove.
7748 (vrndxq_m_f32): Remove.
7749 (vrndq_x_f16): Remove.
7750 (vrndq_x_f32): Remove.
7751 (vrndnq_x_f16): Remove.
7752 (vrndnq_x_f32): Remove.
7753 (vrndmq_x_f16): Remove.
7754 (vrndmq_x_f32): Remove.
7755 (vrndpq_x_f16): Remove.
7756 (vrndpq_x_f32): Remove.
7757 (vrndaq_x_f16): Remove.
7758 (vrndaq_x_f32): Remove.
7759 (vrndxq_x_f16): Remove.
7760 (vrndxq_x_f32): Remove.
7761 (__arm_vrndxq_f16): Remove.
7762 (__arm_vrndxq_f32): Remove.
7763 (__arm_vrndq_f16): Remove.
7764 (__arm_vrndq_f32): Remove.
7765 (__arm_vrndpq_f16): Remove.
7766 (__arm_vrndpq_f32): Remove.
7767 (__arm_vrndnq_f16): Remove.
7768 (__arm_vrndnq_f32): Remove.
7769 (__arm_vrndmq_f16): Remove.
7770 (__arm_vrndmq_f32): Remove.
7771 (__arm_vrndaq_f16): Remove.
7772 (__arm_vrndaq_f32): Remove.
7773 (__arm_vrndaq_m_f16): Remove.
7774 (__arm_vrndmq_m_f16): Remove.
7775 (__arm_vrndnq_m_f16): Remove.
7776 (__arm_vrndpq_m_f16): Remove.
7777 (__arm_vrndq_m_f16): Remove.
7778 (__arm_vrndxq_m_f16): Remove.
7779 (__arm_vrndaq_m_f32): Remove.
7780 (__arm_vrndmq_m_f32): Remove.
7781 (__arm_vrndnq_m_f32): Remove.
7782 (__arm_vrndpq_m_f32): Remove.
7783 (__arm_vrndq_m_f32): Remove.
7784 (__arm_vrndxq_m_f32): Remove.
7785 (__arm_vrndq_x_f16): Remove.
7786 (__arm_vrndq_x_f32): Remove.
7787 (__arm_vrndnq_x_f16): Remove.
7788 (__arm_vrndnq_x_f32): Remove.
7789 (__arm_vrndmq_x_f16): Remove.
7790 (__arm_vrndmq_x_f32): Remove.
7791 (__arm_vrndpq_x_f16): Remove.
7792 (__arm_vrndpq_x_f32): Remove.
7793 (__arm_vrndaq_x_f16): Remove.
7794 (__arm_vrndaq_x_f32): Remove.
7795 (__arm_vrndxq_x_f16): Remove.
7796 (__arm_vrndxq_x_f32): Remove.
7797 (__arm_vrndxq): Remove.
7798 (__arm_vrndq): Remove.
7799 (__arm_vrndpq): Remove.
7800 (__arm_vrndnq): Remove.
7801 (__arm_vrndmq): Remove.
7802 (__arm_vrndaq): Remove.
7803 (__arm_vrndaq_m): Remove.
7804 (__arm_vrndmq_m): Remove.
7805 (__arm_vrndnq_m): Remove.
7806 (__arm_vrndpq_m): Remove.
7807 (__arm_vrndq_m): Remove.
7808 (__arm_vrndxq_m): Remove.
7809 (__arm_vrndq_x): Remove.
7810 (__arm_vrndnq_x): Remove.
7811 (__arm_vrndmq_x): Remove.
7812 (__arm_vrndpq_x): Remove.
7813 (__arm_vrndaq_x): Remove.
7814 (__arm_vrndxq_x): Remove.
7815
7816 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7817
7818 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N_NO_U_F): New.
7819 (vabsq, vnegq, vclsq, vclzq, vqabsq, vqnegq): New.
7820 * config/arm/arm-mve-builtins-base.def (vabsq, vnegq, vclsq)
7821 (vclzq, vqabsq, vqnegq): New.
7822 * config/arm/arm-mve-builtins-base.h (vabsq, vnegq, vclsq, vclzq)
7823 (vqabsq, vqnegq): New.
7824 * config/arm/arm_mve.h (vabsq): Remove.
7825 (vabsq_m): Remove.
7826 (vabsq_x): Remove.
7827 (vabsq_f16): Remove.
7828 (vabsq_f32): Remove.
7829 (vabsq_s8): Remove.
7830 (vabsq_s16): Remove.
7831 (vabsq_s32): Remove.
7832 (vabsq_m_s8): Remove.
7833 (vabsq_m_s16): Remove.
7834 (vabsq_m_s32): Remove.
7835 (vabsq_m_f16): Remove.
7836 (vabsq_m_f32): Remove.
7837 (vabsq_x_s8): Remove.
7838 (vabsq_x_s16): Remove.
7839 (vabsq_x_s32): Remove.
7840 (vabsq_x_f16): Remove.
7841 (vabsq_x_f32): Remove.
7842 (__arm_vabsq_s8): Remove.
7843 (__arm_vabsq_s16): Remove.
7844 (__arm_vabsq_s32): Remove.
7845 (__arm_vabsq_m_s8): Remove.
7846 (__arm_vabsq_m_s16): Remove.
7847 (__arm_vabsq_m_s32): Remove.
7848 (__arm_vabsq_x_s8): Remove.
7849 (__arm_vabsq_x_s16): Remove.
7850 (__arm_vabsq_x_s32): Remove.
7851 (__arm_vabsq_f16): Remove.
7852 (__arm_vabsq_f32): Remove.
7853 (__arm_vabsq_m_f16): Remove.
7854 (__arm_vabsq_m_f32): Remove.
7855 (__arm_vabsq_x_f16): Remove.
7856 (__arm_vabsq_x_f32): Remove.
7857 (__arm_vabsq): Remove.
7858 (__arm_vabsq_m): Remove.
7859 (__arm_vabsq_x): Remove.
7860 (vnegq): Remove.
7861 (vnegq_m): Remove.
7862 (vnegq_x): Remove.
7863 (vnegq_f16): Remove.
7864 (vnegq_f32): Remove.
7865 (vnegq_s8): Remove.
7866 (vnegq_s16): Remove.
7867 (vnegq_s32): Remove.
7868 (vnegq_m_s8): Remove.
7869 (vnegq_m_s16): Remove.
7870 (vnegq_m_s32): Remove.
7871 (vnegq_m_f16): Remove.
7872 (vnegq_m_f32): Remove.
7873 (vnegq_x_s8): Remove.
7874 (vnegq_x_s16): Remove.
7875 (vnegq_x_s32): Remove.
7876 (vnegq_x_f16): Remove.
7877 (vnegq_x_f32): Remove.
7878 (__arm_vnegq_s8): Remove.
7879 (__arm_vnegq_s16): Remove.
7880 (__arm_vnegq_s32): Remove.
7881 (__arm_vnegq_m_s8): Remove.
7882 (__arm_vnegq_m_s16): Remove.
7883 (__arm_vnegq_m_s32): Remove.
7884 (__arm_vnegq_x_s8): Remove.
7885 (__arm_vnegq_x_s16): Remove.
7886 (__arm_vnegq_x_s32): Remove.
7887 (__arm_vnegq_f16): Remove.
7888 (__arm_vnegq_f32): Remove.
7889 (__arm_vnegq_m_f16): Remove.
7890 (__arm_vnegq_m_f32): Remove.
7891 (__arm_vnegq_x_f16): Remove.
7892 (__arm_vnegq_x_f32): Remove.
7893 (__arm_vnegq): Remove.
7894 (__arm_vnegq_m): Remove.
7895 (__arm_vnegq_x): Remove.
7896 (vclsq): Remove.
7897 (vclsq_m): Remove.
7898 (vclsq_x): Remove.
7899 (vclsq_s8): Remove.
7900 (vclsq_s16): Remove.
7901 (vclsq_s32): Remove.
7902 (vclsq_m_s8): Remove.
7903 (vclsq_m_s16): Remove.
7904 (vclsq_m_s32): Remove.
7905 (vclsq_x_s8): Remove.
7906 (vclsq_x_s16): Remove.
7907 (vclsq_x_s32): Remove.
7908 (__arm_vclsq_s8): Remove.
7909 (__arm_vclsq_s16): Remove.
7910 (__arm_vclsq_s32): Remove.
7911 (__arm_vclsq_m_s8): Remove.
7912 (__arm_vclsq_m_s16): Remove.
7913 (__arm_vclsq_m_s32): Remove.
7914 (__arm_vclsq_x_s8): Remove.
7915 (__arm_vclsq_x_s16): Remove.
7916 (__arm_vclsq_x_s32): Remove.
7917 (__arm_vclsq): Remove.
7918 (__arm_vclsq_m): Remove.
7919 (__arm_vclsq_x): Remove.
7920 (vclzq): Remove.
7921 (vclzq_m): Remove.
7922 (vclzq_x): Remove.
7923 (vclzq_s8): Remove.
7924 (vclzq_s16): Remove.
7925 (vclzq_s32): Remove.
7926 (vclzq_u8): Remove.
7927 (vclzq_u16): Remove.
7928 (vclzq_u32): Remove.
7929 (vclzq_m_u8): Remove.
7930 (vclzq_m_s8): Remove.
7931 (vclzq_m_u16): Remove.
7932 (vclzq_m_s16): Remove.
7933 (vclzq_m_u32): Remove.
7934 (vclzq_m_s32): Remove.
7935 (vclzq_x_s8): Remove.
7936 (vclzq_x_s16): Remove.
7937 (vclzq_x_s32): Remove.
7938 (vclzq_x_u8): Remove.
7939 (vclzq_x_u16): Remove.
7940 (vclzq_x_u32): Remove.
7941 (__arm_vclzq_s8): Remove.
7942 (__arm_vclzq_s16): Remove.
7943 (__arm_vclzq_s32): Remove.
7944 (__arm_vclzq_u8): Remove.
7945 (__arm_vclzq_u16): Remove.
7946 (__arm_vclzq_u32): Remove.
7947 (__arm_vclzq_m_u8): Remove.
7948 (__arm_vclzq_m_s8): Remove.
7949 (__arm_vclzq_m_u16): Remove.
7950 (__arm_vclzq_m_s16): Remove.
7951 (__arm_vclzq_m_u32): Remove.
7952 (__arm_vclzq_m_s32): Remove.
7953 (__arm_vclzq_x_s8): Remove.
7954 (__arm_vclzq_x_s16): Remove.
7955 (__arm_vclzq_x_s32): Remove.
7956 (__arm_vclzq_x_u8): Remove.
7957 (__arm_vclzq_x_u16): Remove.
7958 (__arm_vclzq_x_u32): Remove.
7959 (__arm_vclzq): Remove.
7960 (__arm_vclzq_m): Remove.
7961 (__arm_vclzq_x): Remove.
7962 (vqabsq): Remove.
7963 (vqnegq): Remove.
7964 (vqnegq_m): Remove.
7965 (vqabsq_m): Remove.
7966 (vqabsq_s8): Remove.
7967 (vqabsq_s16): Remove.
7968 (vqabsq_s32): Remove.
7969 (vqnegq_s8): Remove.
7970 (vqnegq_s16): Remove.
7971 (vqnegq_s32): Remove.
7972 (vqnegq_m_s8): Remove.
7973 (vqabsq_m_s8): Remove.
7974 (vqnegq_m_s16): Remove.
7975 (vqabsq_m_s16): Remove.
7976 (vqnegq_m_s32): Remove.
7977 (vqabsq_m_s32): Remove.
7978 (__arm_vqabsq_s8): Remove.
7979 (__arm_vqabsq_s16): Remove.
7980 (__arm_vqabsq_s32): Remove.
7981 (__arm_vqnegq_s8): Remove.
7982 (__arm_vqnegq_s16): Remove.
7983 (__arm_vqnegq_s32): Remove.
7984 (__arm_vqnegq_m_s8): Remove.
7985 (__arm_vqabsq_m_s8): Remove.
7986 (__arm_vqnegq_m_s16): Remove.
7987 (__arm_vqabsq_m_s16): Remove.
7988 (__arm_vqnegq_m_s32): Remove.
7989 (__arm_vqabsq_m_s32): Remove.
7990 (__arm_vqabsq): Remove.
7991 (__arm_vqnegq): Remove.
7992 (__arm_vqnegq_m): Remove.
7993 (__arm_vqabsq_m): Remove.
7994
7995 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
7996
7997 * config/arm/iterators.md (MVE_INT_M_UNARY, MVE_INT_UNARY)
7998 (MVE_FP_UNARY, MVE_FP_M_UNARY): New.
7999 (mve_insn): Add vabs, vcls, vclz, vneg, vqabs, vqneg, vrnda,
8000 vrndm, vrndn, vrndp, vrnd, vrndx.
8001 (isu): Add VABSQ_M_S, VCLSQ_M_S, VCLZQ_M_S, VCLZQ_M_U, VNEGQ_M_S,
8002 VQABSQ_M_S, VQNEGQ_M_S.
8003 (mve_mnemo): New.
8004 * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrndxq_f<mode>)
8005 (mve_vrndq_f<mode>, mve_vrndpq_f<mode>, mve_vrndnq_f<mode>)
8006 (mve_vrndmq_f<mode>, mve_vrndaq_f<mode>): Merge into ...
8007 (@mve_<mve_insn>q_f<mode>): ... this.
8008 (mve_vnegq_f<mode>, mve_vabsq_f<mode>): Merge into ...
8009 (mve_v<absneg_str>q_f<mode>): ... this.
8010 (mve_vnegq_s<mode>, mve_vabsq_s<mode>): Merge into ...
8011 (mve_v<absneg_str>q_s<mode>): ... this.
8012 (mve_vclsq_s<mode>, mve_vqnegq_s<mode>, mve_vqabsq_s<mode>): Merge into ...
8013 (@mve_<mve_insn>q_<supf><mode>): ... this.
8014 (mve_vabsq_m_s<mode>, mve_vclsq_m_s<mode>)
8015 (mve_vclzq_m_<supf><mode>, mve_vnegq_m_s<mode>)
8016 (mve_vqabsq_m_s<mode>, mve_vqnegq_m_s<mode>): Merge into ...
8017 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
8018 (mve_vabsq_m_f<mode>, mve_vnegq_m_f<mode>, mve_vrndaq_m_f<mode>)
8019 (mve_vrndmq_m_f<mode>, mve_vrndnq_m_f<mode>, mve_vrndpq_m_f<mode>)
8020 (mve_vrndxq_m_f<mode>): Merge into ...
8021 (@mve_<mve_insn>q_m_f<mode>): ... this.
8022
8023 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
8024
8025 * config/arm/arm-mve-builtins-shapes.cc (unary): New.
8026 * config/arm/arm-mve-builtins-shapes.h (unary): New.
8027
8028 2023-05-09 Jakub Jelinek <jakub@redhat.com>
8029
8030 * mux-utils.h: Fix comment typo, avoides -> avoids.
8031
8032 2023-05-09 Jakub Jelinek <jakub@redhat.com>
8033
8034 PR tree-optimization/109778
8035 * wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on
8036 wi::zext (x, width) rather than x if width != precision, rather
8037 than using wi::zext (right, width) after the shift.
8038 * tree-ssa-ccp.cc (bit_value_binop): Call wi::ext on the results
8039 of wi::lrotate or wi::rrotate.
8040
8041 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
8042
8043 * genmatch.cc (get_out_file): Make static and rename to ...
8044 (choose_output): ... this. Reimplement. Update all uses ...
8045 (decision_tree::gen): ... here and ...
8046 (main): ... here.
8047
8048 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
8049
8050 * genmatch.cc (showUsage): Reimplement as ...
8051 (usage): ...this. Adjust all uses.
8052 (main): Print usage when no arguments. Add missing 'return 1'.
8053
8054 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
8055
8056 * genmatch.cc (header_file): Make static.
8057 (emit_func): Rename to...
8058 (fp_decl): ... this. Adjust all uses.
8059 (fp_decl_done): New function. Use it...
8060 (decision_tree::gen): ... here and...
8061 (write_predicate): ... here.
8062 (main): Adjust.
8063
8064 2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
8065
8066 * ira-conflicts.cc (can_use_same_reg_p): Skip over non-matching
8067 earlyclobbers.
8068
8069 2023-05-08 Roger Sayle <roger@nextmovesoftware.com>
8070 Uros Bizjak <ubizjak@gmail.com>
8071
8072 * config/i386/i386.md (any_or_plus): Move definition earlier.
8073 (*insvti_highpart_1): New define_insn_and_split to overwrite
8074 (insv) the highpart of a TImode register/memory.
8075
8076 2023-05-08 Eugene Rozenfeld <erozen@microsoft.com>
8077
8078 * auto-profile.cc (auto_profile): Check todo from early_inline
8079 to see if cleanup_tree_vfg needs to be called.
8080 (early_inline): Return todo from early_inliner.
8081
8082 2023-05-08 Kito Cheng <kito.cheng@sifive.com>
8083
8084 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vector_info):
8085 New.
8086 (pass_vsetvl::get_block_info): New.
8087 (pass_vsetvl::update_vector_info): New.
8088 (pass_vsetvl::simple_vsetvl): Use get_vector_info.
8089 (pass_vsetvl::compute_local_backward_infos): Ditto.
8090 (pass_vsetvl::transfer_before): Ditto.
8091 (pass_vsetvl::transfer_after): Ditto.
8092 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
8093 (pass_vsetvl::local_eliminate_vsetvl_insn): Ditto.
8094 (pass_vsetvl::cleanup_insns): Ditto.
8095 (pass_vsetvl::compute_local_backward_infos): Use
8096 update_vector_info.
8097
8098 2023-05-08 Jeff Law <jlaw@ventanamicro>
8099
8100 * config/stormy16/stormy16.md (zero_extendhisi2): Fix length.
8101
8102 2023-05-08 Richard Biener <rguenther@suse.de>
8103 Michael Meissner <meissner@linux.ibm.com>
8104
8105 PR middle-end/108623
8106 * tree-core.h (tree_type_common): Bump up precision field to 16 bits.
8107 Align bit fields > 1 bit to at least an 8-bit boundary.
8108
8109 2023-05-08 Andrew Pinski <apinski@marvell.com>
8110
8111 PR tree-optimization/109424
8112 PR tree-optimization/59424
8113 * tree-ssa-phiopt.cc (factor_out_conditional_conversion): Rename to ...
8114 (factor_out_conditional_operation): This and add support for all unary
8115 operations.
8116 (pass_phiopt::execute): Update call to factor_out_conditional_conversion
8117 to call factor_out_conditional_operation instead.
8118
8119 2023-05-08 Andrew Pinski <apinski@marvell.com>
8120
8121 * tree-ssa-phiopt.cc (pass_phiopt::execute): Loop
8122 over factor_out_conditional_conversion.
8123
8124 2023-05-08 Andrew Pinski <apinski@marvell.com>
8125
8126 PR tree-optimization/49959
8127 PR tree-optimization/103771
8128 * tree-ssa-phiopt.cc (pass_phiopt::execute): Support
8129 Diamond shapped bb form for factor_out_conditional_conversion.
8130
8131 2023-05-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8132
8133 * config/riscv/autovec.md (movmisalign<mode>): New pattern.
8134 * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): Delete.
8135 (riscv_vector_get_mask_mode): Ditto.
8136 (get_mask_policy_no_pred): Ditto.
8137 (get_tail_policy_no_pred): Ditto.
8138 (get_mask_mode): New function.
8139 * config/riscv/riscv-v.cc (get_mask_policy_no_pred): Delete.
8140 (get_tail_policy_no_pred): Ditto.
8141 (riscv_vector_mask_mode_p): Ditto.
8142 (riscv_vector_get_mask_mode): Ditto.
8143 (get_mask_mode): New function.
8144 * config/riscv/riscv-vector-builtins.cc (use_real_merge_p): Remove
8145 global extern.
8146 (get_tail_policy_for_pred): Ditto.
8147 * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred): Ditto.
8148 (get_mask_policy_for_pred): Ditto
8149 * config/riscv/riscv.cc (riscv_get_mask_mode): Refine codes.
8150
8151 2023-05-08 Kito Cheng <kito.cheng@sifive.com>
8152
8153 * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi): New.
8154 (riscv_select_multilib): New.
8155 (riscv_compute_multilib): Extract logic to riscv_select_multilib and
8156 also handle select_by_abi.
8157 * config/riscv/elf.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Change it
8158 to select_by_abi_arch_cmodel from 1.
8159 * config/riscv/linux.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Define.
8160 * config/riscv/riscv-opts.h (enum riscv_multilib_select_kind): New.
8161
8162 2023-05-08 Alexander Monakov <amonakov@ispras.ru>
8163
8164 * Makefile.in: (gimple-match-head.o-warn): Remove.
8165 (GIMPLE_MATCH_PD_SEQ_SRC): Do not depend on
8166 gimple-match-exports.cc.
8167 (gimple-match-auto.h): Only depend on s-gimple-match.
8168 (generic-match-auto.h): Likewise.
8169
8170 2023-05-08 Andrew Pinski <apinski@marvell.com>
8171
8172 PR tree-optimization/109691
8173 * tree-ssa-dce.cc (simple_dce_from_worklist): Add need_eh_cleanup
8174 argument.
8175 If the removed statement can throw, have need_eh_cleanup
8176 include the bb of that statement.
8177 * tree-ssa-dce.h (simple_dce_from_worklist): Update declaration.
8178 * tree-ssa-propagate.cc (struct prop_stats_d): Remove
8179 num_dce.
8180 (substitute_and_fold_dom_walker::substitute_and_fold_dom_walker):
8181 Initialize dceworklist instead of stmts_to_remove.
8182 (substitute_and_fold_dom_walker::~substitute_and_fold_dom_walker):
8183 Destore dceworklist instead of stmts_to_remove.
8184 (substitute_and_fold_dom_walker::before_dom_children):
8185 Set dceworklist instead of adding to stmts_to_remove.
8186 (substitute_and_fold_engine::substitute_and_fold):
8187 Call simple_dce_from_worklist instead of poping
8188 from the list.
8189 Don't update the stat on removal statements.
8190
8191 2023-05-07 Andrew Pinski <apinski@marvell.com>
8192
8193 PR target/109762
8194 * config/aarch64/aarch64-builtins.cc (aarch64_simd_switcher::aarch64_simd_switcher):
8195 Change argument type to aarch64_feature_flags.
8196 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Change
8197 constructor argument type to aarch64_feature_flags.
8198 Change m_old_asm_isa_flags to be aarch64_feature_flags.
8199
8200 2023-05-07 Jiufu Guo <guojiufu@linux.ibm.com>
8201
8202 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Generate
8203 more parallel code if can_create_pseudo_p.
8204
8205 2023-05-07 Roger Sayle <roger@nextmovesoftware.com>
8206
8207 PR target/43644
8208 * lower-subreg.cc (resolve_simple_move): Don't emit a clobber
8209 immediately before moving a multi-word register by parts.
8210
8211 2023-05-06 Jeff Law <jlaw@ventanamicro>
8212
8213 * config/riscv/riscv-v.cc (riscv_vector_preferred_simd_mode): Delete.
8214
8215 2023-05-06 Michael Collison <collison@rivosinc.com>
8216
8217 * tree-vect-slp.cc (can_duplicate_and_interleave_p):
8218 Check that GET_MODE_NUNITS is a multiple of 2.
8219
8220 2023-05-06 Michael Collison <collison@rivosinc.com>
8221
8222 * config/riscv/riscv.cc
8223 (riscv_estimated_poly_value): Implement
8224 TARGET_ESTIMATED_POLY_VALUE.
8225 (riscv_preferred_simd_mode): Implement
8226 TARGET_VECTORIZE_PREFERRED_SIMD_MODE.
8227 (riscv_get_mask_mode): Implement TARGET_VECTORIZE_GET_MASK_MODE.
8228 (riscv_empty_mask_is_expensive): Implement
8229 TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE.
8230 (riscv_vectorize_create_costs): Implement
8231 TARGET_VECTORIZE_CREATE_COSTS.
8232 (riscv_support_vector_misalignment): Implement
8233 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT.
8234 (TARGET_ESTIMATED_POLY_VALUE): Register target macro.
8235 (TARGET_VECTORIZE_GET_MASK_MODE): Ditto.
8236 (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Ditto.
8237 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Ditto.
8238
8239 2023-05-06 Jeff Law <jlaw@ventanamicro>
8240
8241 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Remove
8242 duplicate definition.
8243
8244 2023-05-06 Michael Collison <collison@rivosinc.com>
8245
8246 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): New function.
8247 (riscv_vector_preferred_simd_mode): Ditto.
8248 (get_mask_policy_no_pred): Ditto.
8249 (get_tail_policy_no_pred): Ditto.
8250 (riscv_vector_mask_mode_p): Ditto.
8251 (riscv_vector_get_mask_mode): Ditto.
8252
8253 2023-05-06 Michael Collison <collison@rivosinc.com>
8254
8255 * config/riscv/riscv-vector-builtins.cc (get_tail_policy_for_pred):
8256 Remove static declaration to to make externally visible.
8257 (get_mask_policy_for_pred): Ditto.
8258 * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred):
8259 New external declaration.
8260 (get_mask_policy_for_pred): Ditto.
8261
8262 2023-05-06 Michael Collison <collison@rivosinc.com>
8263
8264 * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): New.
8265 (riscv_vector_get_mask_mode): Ditto.
8266 (get_mask_policy_no_pred): Ditto.
8267 (get_tail_policy_no_pred): Ditto.
8268
8269 2023-05-06 Xi Ruoyao <xry111@xry111.site>
8270
8271 * config/loongarch/loongarch.h (struct machine_function): Add
8272 reg_is_wrapped_separately array for register wrapping
8273 information.
8274 * config/loongarch/loongarch.cc
8275 (loongarch_get_separate_components): New function.
8276 (loongarch_components_for_bb): Likewise.
8277 (loongarch_disqualify_components): Likewise.
8278 (loongarch_process_components): Likewise.
8279 (loongarch_emit_prologue_components): Likewise.
8280 (loongarch_emit_epilogue_components): Likewise.
8281 (loongarch_set_handled_components): Likewise.
8282 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
8283 (TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
8284 (TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
8285 (TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
8286 (TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
8287 (TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
8288 (loongarch_for_each_saved_reg): Skip registers that are wrapped
8289 separately.
8290
8291 2023-05-06 Xi Ruoyao <xry111@xry111.site>
8292
8293 PR other/109522
8294 * Makefile.in (s-macro_list): Pass -nostdinc to
8295 $(GCC_FOR_TARGET).
8296
8297 2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8298
8299 * config/riscv/riscv-protos.h (preferred_simd_mode): New function.
8300 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Ditto.
8301 (preferred_simd_mode): Ditto.
8302 * config/riscv/riscv.cc (riscv_get_arg_info): Handle RVV type in function arg.
8303 (riscv_convert_vector_bits): Adjust for RVV auto-vectorization.
8304 (riscv_preferred_simd_mode): New function.
8305 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): New target hook support.
8306 * config/riscv/vector.md: Add autovec.md.
8307 * config/riscv/autovec.md: New file.
8308
8309 2023-05-06 Jakub Jelinek <jakub@redhat.com>
8310
8311 * real.h (dconst_pi): Define.
8312 (dconst_e_ptr): Formatting fix.
8313 (dconst_pi_ptr): Declare.
8314 * real.cc (dconst_pi_ptr): New function.
8315 * gimple-range-op.cc (cfn_sincos::fold_range): Intersect the generic
8316 boundaries range with range computed from sin/cos of the particular
8317 bounds if the argument range is shorter than 2*pi.
8318 (cfn_sincos::op1_range): Take bulps into account when determining
8319 which result ranges are always invalid or behave like known NAN.
8320
8321 2023-05-06 Aldy Hernandez <aldyh@redhat.com>
8322
8323 * gimple-range-cache.cc (sbr_sparse_bitmap::set_bb_range): Do not
8324 pass type to vrange_storage::equal_p.
8325 * value-range-storage.cc (vrange_storage::equal_p): Remove type.
8326 (irange_storage::equal_p): Same.
8327 (frange_storage::equal_p): Same.
8328 * value-range-storage.h (class frange_storage): Same.
8329
8330 2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8331
8332 PR target/109748
8333 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): Remove it.
8334 (pass_vsetvl::local_eliminate_vsetvl_insn): New function.
8335
8336 2023-05-06 liuhongt <hongtao.liu@intel.com>
8337
8338 * combine.cc (maybe_swap_commutative_operands): Canonicalize
8339 vec_merge when mask is constant.
8340 * doc/md.texi: Document vec_merge canonicalization.
8341
8342 2023-05-06 Jakub Jelinek <jakub@redhat.com>
8343
8344 * value-range.h (frange_arithmetic): Declare.
8345 * range-op-float.cc (frange_arithmetic): No longer static.
8346 * gimple-range-op.cc (frange_mpfr_arg1): New function.
8347 (cfn_sqrt::fold_range): Intersect the generic boundaries range
8348 with range computed from sqrt of the particular bounds.
8349 (cfn_sqrt::op1_range): Intersect the generic boundaries range
8350 with range computed from squared particular bounds.
8351
8352 2023-05-06 Jakub Jelinek <jakub@redhat.com>
8353
8354 * Makefile.in (check_p_numbers): Rename to one_to_9999, move
8355 earlier with helper variables also renamed.
8356 (MATCH_SPLUT_SEQ): Use $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999))
8357 instead of $(shell seq 1 $(NUM_MATCH_SPLITS)).
8358 (check_p_subdirs): Use $(one_to_9999) instead of $(check_p_numbers).
8359
8360 2023-05-06 Hans-Peter Nilsson <hp@axis.com>
8361
8362 * config/cris/cris.md (splitop): Add PLUS.
8363 * config/cris/cris.cc (cris_split_constant): Also handle
8364 PLUS when a split into two insns may be useful.
8365
8366 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
8367
8368 * config/cris/cris.md (movandsplit1): New define_peephole2.
8369
8370 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
8371
8372 * config/cris/cris.md (lsrandsplit1): New define_peephole2.
8373
8374 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
8375
8376 * doc/md.texi (define_peephole2): Document order of scanning.
8377
8378 2023-05-05 Pan Li <pan2.li@intel.com>
8379 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
8380
8381 * config/riscv/vector.md: Allow const as the operand of RVV
8382 indexed load/store.
8383
8384 2023-05-05 Pan Li <pan2.li@intel.com>
8385
8386 * config/riscv/riscv.h (VECTOR_STORE_FLAG_VALUE): Add new macro
8387 consumed by simplify_rtx.
8388
8389 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8390
8391 * config/arm/arm-mve-builtins-base.cc (vrshrq, vshrq): New.
8392 * config/arm/arm-mve-builtins-base.def (vrshrq, vshrq): New.
8393 * config/arm/arm-mve-builtins-base.h (vrshrq, vshrq): New.
8394 * config/arm/arm_mve.h (vshrq): Remove.
8395 (vrshrq): Remove.
8396 (vrshrq_m): Remove.
8397 (vshrq_m): Remove.
8398 (vrshrq_x): Remove.
8399 (vshrq_x): Remove.
8400 (vshrq_n_s8): Remove.
8401 (vshrq_n_s16): Remove.
8402 (vshrq_n_s32): Remove.
8403 (vshrq_n_u8): Remove.
8404 (vshrq_n_u16): Remove.
8405 (vshrq_n_u32): Remove.
8406 (vrshrq_n_u8): Remove.
8407 (vrshrq_n_s8): Remove.
8408 (vrshrq_n_u16): Remove.
8409 (vrshrq_n_s16): Remove.
8410 (vrshrq_n_u32): Remove.
8411 (vrshrq_n_s32): Remove.
8412 (vrshrq_m_n_s8): Remove.
8413 (vrshrq_m_n_s32): Remove.
8414 (vrshrq_m_n_s16): Remove.
8415 (vrshrq_m_n_u8): Remove.
8416 (vrshrq_m_n_u32): Remove.
8417 (vrshrq_m_n_u16): Remove.
8418 (vshrq_m_n_s8): Remove.
8419 (vshrq_m_n_s32): Remove.
8420 (vshrq_m_n_s16): Remove.
8421 (vshrq_m_n_u8): Remove.
8422 (vshrq_m_n_u32): Remove.
8423 (vshrq_m_n_u16): Remove.
8424 (vrshrq_x_n_s8): Remove.
8425 (vrshrq_x_n_s16): Remove.
8426 (vrshrq_x_n_s32): Remove.
8427 (vrshrq_x_n_u8): Remove.
8428 (vrshrq_x_n_u16): Remove.
8429 (vrshrq_x_n_u32): Remove.
8430 (vshrq_x_n_s8): Remove.
8431 (vshrq_x_n_s16): Remove.
8432 (vshrq_x_n_s32): Remove.
8433 (vshrq_x_n_u8): Remove.
8434 (vshrq_x_n_u16): Remove.
8435 (vshrq_x_n_u32): Remove.
8436 (__arm_vshrq_n_s8): Remove.
8437 (__arm_vshrq_n_s16): Remove.
8438 (__arm_vshrq_n_s32): Remove.
8439 (__arm_vshrq_n_u8): Remove.
8440 (__arm_vshrq_n_u16): Remove.
8441 (__arm_vshrq_n_u32): Remove.
8442 (__arm_vrshrq_n_u8): Remove.
8443 (__arm_vrshrq_n_s8): Remove.
8444 (__arm_vrshrq_n_u16): Remove.
8445 (__arm_vrshrq_n_s16): Remove.
8446 (__arm_vrshrq_n_u32): Remove.
8447 (__arm_vrshrq_n_s32): Remove.
8448 (__arm_vrshrq_m_n_s8): Remove.
8449 (__arm_vrshrq_m_n_s32): Remove.
8450 (__arm_vrshrq_m_n_s16): Remove.
8451 (__arm_vrshrq_m_n_u8): Remove.
8452 (__arm_vrshrq_m_n_u32): Remove.
8453 (__arm_vrshrq_m_n_u16): Remove.
8454 (__arm_vshrq_m_n_s8): Remove.
8455 (__arm_vshrq_m_n_s32): Remove.
8456 (__arm_vshrq_m_n_s16): Remove.
8457 (__arm_vshrq_m_n_u8): Remove.
8458 (__arm_vshrq_m_n_u32): Remove.
8459 (__arm_vshrq_m_n_u16): Remove.
8460 (__arm_vrshrq_x_n_s8): Remove.
8461 (__arm_vrshrq_x_n_s16): Remove.
8462 (__arm_vrshrq_x_n_s32): Remove.
8463 (__arm_vrshrq_x_n_u8): Remove.
8464 (__arm_vrshrq_x_n_u16): Remove.
8465 (__arm_vrshrq_x_n_u32): Remove.
8466 (__arm_vshrq_x_n_s8): Remove.
8467 (__arm_vshrq_x_n_s16): Remove.
8468 (__arm_vshrq_x_n_s32): Remove.
8469 (__arm_vshrq_x_n_u8): Remove.
8470 (__arm_vshrq_x_n_u16): Remove.
8471 (__arm_vshrq_x_n_u32): Remove.
8472 (__arm_vshrq): Remove.
8473 (__arm_vrshrq): Remove.
8474 (__arm_vrshrq_m): Remove.
8475 (__arm_vshrq_m): Remove.
8476 (__arm_vrshrq_x): Remove.
8477 (__arm_vshrq_x): Remove.
8478
8479 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8480
8481 * config/arm/iterators.md (MVE_VSHRQ_M_N, MVE_VSHRQ_N): New.
8482 (mve_insn): Add vrshr, vshr.
8483 * config/arm/mve.md (mve_vshrq_n_<supf><mode>)
8484 (mve_vrshrq_n_<supf><mode>): Merge into ...
8485 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
8486 (mve_vrshrq_m_n_<supf><mode>, mve_vshrq_m_n_<supf><mode>): Merge
8487 into ...
8488 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
8489
8490 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8491
8492 * config/arm/arm-mve-builtins-shapes.cc (binary_rshift): New.
8493 * config/arm/arm-mve-builtins-shapes.h (binary_rshift): New.
8494
8495 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8496
8497 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_U_F): New.
8498 (vqshrunbq, vqshruntq, vqrshrunbq, vqrshruntq): New.
8499 * config/arm/arm-mve-builtins-base.def (vqshrunbq, vqshruntq)
8500 (vqrshrunbq, vqrshruntq): New.
8501 * config/arm/arm-mve-builtins-base.h (vqshrunbq, vqshruntq)
8502 (vqrshrunbq, vqrshruntq): New.
8503 * config/arm/arm-mve-builtins.cc
8504 (function_instance::has_inactive_argument): Handle vqshrunbq,
8505 vqshruntq, vqrshrunbq, vqrshruntq.
8506 * config/arm/arm_mve.h (vqrshrunbq): Remove.
8507 (vqrshruntq): Remove.
8508 (vqrshrunbq_m): Remove.
8509 (vqrshruntq_m): Remove.
8510 (vqrshrunbq_n_s16): Remove.
8511 (vqrshrunbq_n_s32): Remove.
8512 (vqrshruntq_n_s16): Remove.
8513 (vqrshruntq_n_s32): Remove.
8514 (vqrshrunbq_m_n_s32): Remove.
8515 (vqrshrunbq_m_n_s16): Remove.
8516 (vqrshruntq_m_n_s32): Remove.
8517 (vqrshruntq_m_n_s16): Remove.
8518 (__arm_vqrshrunbq_n_s16): Remove.
8519 (__arm_vqrshrunbq_n_s32): Remove.
8520 (__arm_vqrshruntq_n_s16): Remove.
8521 (__arm_vqrshruntq_n_s32): Remove.
8522 (__arm_vqrshrunbq_m_n_s32): Remove.
8523 (__arm_vqrshrunbq_m_n_s16): Remove.
8524 (__arm_vqrshruntq_m_n_s32): Remove.
8525 (__arm_vqrshruntq_m_n_s16): Remove.
8526 (__arm_vqrshrunbq): Remove.
8527 (__arm_vqrshruntq): Remove.
8528 (__arm_vqrshrunbq_m): Remove.
8529 (__arm_vqrshruntq_m): Remove.
8530 (vqshrunbq): Remove.
8531 (vqshruntq): Remove.
8532 (vqshrunbq_m): Remove.
8533 (vqshruntq_m): Remove.
8534 (vqshrunbq_n_s16): Remove.
8535 (vqshruntq_n_s16): Remove.
8536 (vqshrunbq_n_s32): Remove.
8537 (vqshruntq_n_s32): Remove.
8538 (vqshrunbq_m_n_s32): Remove.
8539 (vqshrunbq_m_n_s16): Remove.
8540 (vqshruntq_m_n_s32): Remove.
8541 (vqshruntq_m_n_s16): Remove.
8542 (__arm_vqshrunbq_n_s16): Remove.
8543 (__arm_vqshruntq_n_s16): Remove.
8544 (__arm_vqshrunbq_n_s32): Remove.
8545 (__arm_vqshruntq_n_s32): Remove.
8546 (__arm_vqshrunbq_m_n_s32): Remove.
8547 (__arm_vqshrunbq_m_n_s16): Remove.
8548 (__arm_vqshruntq_m_n_s32): Remove.
8549 (__arm_vqshruntq_m_n_s16): Remove.
8550 (__arm_vqshrunbq): Remove.
8551 (__arm_vqshruntq): Remove.
8552 (__arm_vqshrunbq_m): Remove.
8553 (__arm_vqshruntq_m): Remove.
8554
8555 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8556
8557 * config/arm/iterators.md (MVE_SHRN_N): Add VQRSHRUNBQ,
8558 VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
8559 (MVE_SHRN_M_N): Likewise.
8560 (mve_insn): Add vqrshrunb, vqrshrunt, vqshrunb, vqshrunt.
8561 (isu): Add VQRSHRUNBQ, VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
8562 (supf): Likewise.
8563 * config/arm/mve.md (mve_vqrshrunbq_n_s<mode>): Remove.
8564 (mve_vqrshruntq_n_s<mode>): Remove.
8565 (mve_vqshrunbq_n_s<mode>): Remove.
8566 (mve_vqshruntq_n_s<mode>): Remove.
8567 (mve_vqrshrunbq_m_n_s<mode>): Remove.
8568 (mve_vqrshruntq_m_n_s<mode>): Remove.
8569 (mve_vqshrunbq_m_n_s<mode>): Remove.
8570 (mve_vqshruntq_m_n_s<mode>): Remove.
8571
8572 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8573
8574 * config/arm/arm-mve-builtins-shapes.cc
8575 (binary_rshift_narrow_unsigned): New.
8576 * config/arm/arm-mve-builtins-shapes.h
8577 (binary_rshift_narrow_unsigned): New.
8578
8579 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8580
8581 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_F): New.
8582 (vshrnbq, vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq)
8583 (vqrshrnbq, vqrshrntq): New.
8584 * config/arm/arm-mve-builtins-base.def (vshrnbq, vshrntq)
8585 (vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq):
8586 New.
8587 * config/arm/arm-mve-builtins-base.h (vshrnbq, vshrntq, vrshrnbq)
8588 (vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq): New.
8589 * config/arm/arm-mve-builtins.cc
8590 (function_instance::has_inactive_argument): Handle vshrnbq,
8591 vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq,
8592 vqrshrntq.
8593 * config/arm/arm_mve.h (vshrnbq): Remove.
8594 (vshrntq): Remove.
8595 (vshrnbq_m): Remove.
8596 (vshrntq_m): Remove.
8597 (vshrnbq_n_s16): Remove.
8598 (vshrntq_n_s16): Remove.
8599 (vshrnbq_n_u16): Remove.
8600 (vshrntq_n_u16): Remove.
8601 (vshrnbq_n_s32): Remove.
8602 (vshrntq_n_s32): Remove.
8603 (vshrnbq_n_u32): Remove.
8604 (vshrntq_n_u32): Remove.
8605 (vshrnbq_m_n_s32): Remove.
8606 (vshrnbq_m_n_s16): Remove.
8607 (vshrnbq_m_n_u32): Remove.
8608 (vshrnbq_m_n_u16): Remove.
8609 (vshrntq_m_n_s32): Remove.
8610 (vshrntq_m_n_s16): Remove.
8611 (vshrntq_m_n_u32): Remove.
8612 (vshrntq_m_n_u16): Remove.
8613 (__arm_vshrnbq_n_s16): Remove.
8614 (__arm_vshrntq_n_s16): Remove.
8615 (__arm_vshrnbq_n_u16): Remove.
8616 (__arm_vshrntq_n_u16): Remove.
8617 (__arm_vshrnbq_n_s32): Remove.
8618 (__arm_vshrntq_n_s32): Remove.
8619 (__arm_vshrnbq_n_u32): Remove.
8620 (__arm_vshrntq_n_u32): Remove.
8621 (__arm_vshrnbq_m_n_s32): Remove.
8622 (__arm_vshrnbq_m_n_s16): Remove.
8623 (__arm_vshrnbq_m_n_u32): Remove.
8624 (__arm_vshrnbq_m_n_u16): Remove.
8625 (__arm_vshrntq_m_n_s32): Remove.
8626 (__arm_vshrntq_m_n_s16): Remove.
8627 (__arm_vshrntq_m_n_u32): Remove.
8628 (__arm_vshrntq_m_n_u16): Remove.
8629 (__arm_vshrnbq): Remove.
8630 (__arm_vshrntq): Remove.
8631 (__arm_vshrnbq_m): Remove.
8632 (__arm_vshrntq_m): Remove.
8633 (vrshrnbq): Remove.
8634 (vrshrntq): Remove.
8635 (vrshrnbq_m): Remove.
8636 (vrshrntq_m): Remove.
8637 (vrshrnbq_n_s16): Remove.
8638 (vrshrntq_n_s16): Remove.
8639 (vrshrnbq_n_u16): Remove.
8640 (vrshrntq_n_u16): Remove.
8641 (vrshrnbq_n_s32): Remove.
8642 (vrshrntq_n_s32): Remove.
8643 (vrshrnbq_n_u32): Remove.
8644 (vrshrntq_n_u32): Remove.
8645 (vrshrnbq_m_n_s32): Remove.
8646 (vrshrnbq_m_n_s16): Remove.
8647 (vrshrnbq_m_n_u32): Remove.
8648 (vrshrnbq_m_n_u16): Remove.
8649 (vrshrntq_m_n_s32): Remove.
8650 (vrshrntq_m_n_s16): Remove.
8651 (vrshrntq_m_n_u32): Remove.
8652 (vrshrntq_m_n_u16): Remove.
8653 (__arm_vrshrnbq_n_s16): Remove.
8654 (__arm_vrshrntq_n_s16): Remove.
8655 (__arm_vrshrnbq_n_u16): Remove.
8656 (__arm_vrshrntq_n_u16): Remove.
8657 (__arm_vrshrnbq_n_s32): Remove.
8658 (__arm_vrshrntq_n_s32): Remove.
8659 (__arm_vrshrnbq_n_u32): Remove.
8660 (__arm_vrshrntq_n_u32): Remove.
8661 (__arm_vrshrnbq_m_n_s32): Remove.
8662 (__arm_vrshrnbq_m_n_s16): Remove.
8663 (__arm_vrshrnbq_m_n_u32): Remove.
8664 (__arm_vrshrnbq_m_n_u16): Remove.
8665 (__arm_vrshrntq_m_n_s32): Remove.
8666 (__arm_vrshrntq_m_n_s16): Remove.
8667 (__arm_vrshrntq_m_n_u32): Remove.
8668 (__arm_vrshrntq_m_n_u16): Remove.
8669 (__arm_vrshrnbq): Remove.
8670 (__arm_vrshrntq): Remove.
8671 (__arm_vrshrnbq_m): Remove.
8672 (__arm_vrshrntq_m): Remove.
8673 (vqshrnbq): Remove.
8674 (vqshrntq): Remove.
8675 (vqshrnbq_m): Remove.
8676 (vqshrntq_m): Remove.
8677 (vqshrnbq_n_s16): Remove.
8678 (vqshrntq_n_s16): Remove.
8679 (vqshrnbq_n_u16): Remove.
8680 (vqshrntq_n_u16): Remove.
8681 (vqshrnbq_n_s32): Remove.
8682 (vqshrntq_n_s32): Remove.
8683 (vqshrnbq_n_u32): Remove.
8684 (vqshrntq_n_u32): Remove.
8685 (vqshrnbq_m_n_s32): Remove.
8686 (vqshrnbq_m_n_s16): Remove.
8687 (vqshrnbq_m_n_u32): Remove.
8688 (vqshrnbq_m_n_u16): Remove.
8689 (vqshrntq_m_n_s32): Remove.
8690 (vqshrntq_m_n_s16): Remove.
8691 (vqshrntq_m_n_u32): Remove.
8692 (vqshrntq_m_n_u16): Remove.
8693 (__arm_vqshrnbq_n_s16): Remove.
8694 (__arm_vqshrntq_n_s16): Remove.
8695 (__arm_vqshrnbq_n_u16): Remove.
8696 (__arm_vqshrntq_n_u16): Remove.
8697 (__arm_vqshrnbq_n_s32): Remove.
8698 (__arm_vqshrntq_n_s32): Remove.
8699 (__arm_vqshrnbq_n_u32): Remove.
8700 (__arm_vqshrntq_n_u32): Remove.
8701 (__arm_vqshrnbq_m_n_s32): Remove.
8702 (__arm_vqshrnbq_m_n_s16): Remove.
8703 (__arm_vqshrnbq_m_n_u32): Remove.
8704 (__arm_vqshrnbq_m_n_u16): Remove.
8705 (__arm_vqshrntq_m_n_s32): Remove.
8706 (__arm_vqshrntq_m_n_s16): Remove.
8707 (__arm_vqshrntq_m_n_u32): Remove.
8708 (__arm_vqshrntq_m_n_u16): Remove.
8709 (__arm_vqshrnbq): Remove.
8710 (__arm_vqshrntq): Remove.
8711 (__arm_vqshrnbq_m): Remove.
8712 (__arm_vqshrntq_m): Remove.
8713 (vqrshrnbq): Remove.
8714 (vqrshrntq): Remove.
8715 (vqrshrnbq_m): Remove.
8716 (vqrshrntq_m): Remove.
8717 (vqrshrnbq_n_s16): Remove.
8718 (vqrshrnbq_n_u16): Remove.
8719 (vqrshrnbq_n_s32): Remove.
8720 (vqrshrnbq_n_u32): Remove.
8721 (vqrshrntq_n_s16): Remove.
8722 (vqrshrntq_n_u16): Remove.
8723 (vqrshrntq_n_s32): Remove.
8724 (vqrshrntq_n_u32): Remove.
8725 (vqrshrnbq_m_n_s32): Remove.
8726 (vqrshrnbq_m_n_s16): Remove.
8727 (vqrshrnbq_m_n_u32): Remove.
8728 (vqrshrnbq_m_n_u16): Remove.
8729 (vqrshrntq_m_n_s32): Remove.
8730 (vqrshrntq_m_n_s16): Remove.
8731 (vqrshrntq_m_n_u32): Remove.
8732 (vqrshrntq_m_n_u16): Remove.
8733 (__arm_vqrshrnbq_n_s16): Remove.
8734 (__arm_vqrshrnbq_n_u16): Remove.
8735 (__arm_vqrshrnbq_n_s32): Remove.
8736 (__arm_vqrshrnbq_n_u32): Remove.
8737 (__arm_vqrshrntq_n_s16): Remove.
8738 (__arm_vqrshrntq_n_u16): Remove.
8739 (__arm_vqrshrntq_n_s32): Remove.
8740 (__arm_vqrshrntq_n_u32): Remove.
8741 (__arm_vqrshrnbq_m_n_s32): Remove.
8742 (__arm_vqrshrnbq_m_n_s16): Remove.
8743 (__arm_vqrshrnbq_m_n_u32): Remove.
8744 (__arm_vqrshrnbq_m_n_u16): Remove.
8745 (__arm_vqrshrntq_m_n_s32): Remove.
8746 (__arm_vqrshrntq_m_n_s16): Remove.
8747 (__arm_vqrshrntq_m_n_u32): Remove.
8748 (__arm_vqrshrntq_m_n_u16): Remove.
8749 (__arm_vqrshrnbq): Remove.
8750 (__arm_vqrshrntq): Remove.
8751 (__arm_vqrshrnbq_m): Remove.
8752 (__arm_vqrshrntq_m): Remove.
8753
8754 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8755
8756 * config/arm/iterators.md (MVE_SHRN_N, MVE_SHRN_M_N): New.
8757 (mve_insn): Add vqrshrnb, vqrshrnt, vqshrnb, vqshrnt, vrshrnb,
8758 vrshrnt, vshrnb, vshrnt.
8759 (isu): New.
8760 * config/arm/mve.md (mve_vqrshrnbq_n_<supf><mode>)
8761 (mve_vqrshrntq_n_<supf><mode>, mve_vqshrnbq_n_<supf><mode>)
8762 (mve_vqshrntq_n_<supf><mode>, mve_vrshrnbq_n_<supf><mode>)
8763 (mve_vrshrntq_n_<supf><mode>, mve_vshrnbq_n_<supf><mode>)
8764 (mve_vshrntq_n_<supf><mode>): Merge into ...
8765 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
8766 (mve_vqrshrnbq_m_n_<supf><mode>, mve_vqrshrntq_m_n_<supf><mode>)
8767 (mve_vqshrnbq_m_n_<supf><mode>, mve_vqshrntq_m_n_<supf><mode>)
8768 (mve_vrshrnbq_m_n_<supf><mode>, mve_vrshrntq_m_n_<supf><mode>)
8769 (mve_vshrnbq_m_n_<supf><mode>, mve_vshrntq_m_n_<supf><mode>):
8770 Merge into ...
8771 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
8772
8773 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8774
8775 * config/arm/arm-mve-builtins-shapes.cc (binary_rshift_narrow):
8776 New.
8777 * config/arm/arm-mve-builtins-shapes.h (binary_rshift_narrow): New.
8778
8779 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8780
8781 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_NO_F): New.
8782 (vmaxq, vminq): New.
8783 * config/arm/arm-mve-builtins-base.def (vmaxq, vminq): New.
8784 * config/arm/arm-mve-builtins-base.h (vmaxq, vminq): New.
8785 * config/arm/arm_mve.h (vminq): Remove.
8786 (vmaxq): Remove.
8787 (vmaxq_m): Remove.
8788 (vminq_m): Remove.
8789 (vminq_x): Remove.
8790 (vmaxq_x): Remove.
8791 (vminq_u8): Remove.
8792 (vmaxq_u8): Remove.
8793 (vminq_s8): Remove.
8794 (vmaxq_s8): Remove.
8795 (vminq_u16): Remove.
8796 (vmaxq_u16): Remove.
8797 (vminq_s16): Remove.
8798 (vmaxq_s16): Remove.
8799 (vminq_u32): Remove.
8800 (vmaxq_u32): Remove.
8801 (vminq_s32): Remove.
8802 (vmaxq_s32): Remove.
8803 (vmaxq_m_s8): Remove.
8804 (vmaxq_m_s32): Remove.
8805 (vmaxq_m_s16): Remove.
8806 (vmaxq_m_u8): Remove.
8807 (vmaxq_m_u32): Remove.
8808 (vmaxq_m_u16): Remove.
8809 (vminq_m_s8): Remove.
8810 (vminq_m_s32): Remove.
8811 (vminq_m_s16): Remove.
8812 (vminq_m_u8): Remove.
8813 (vminq_m_u32): Remove.
8814 (vminq_m_u16): Remove.
8815 (vminq_x_s8): Remove.
8816 (vminq_x_s16): Remove.
8817 (vminq_x_s32): Remove.
8818 (vminq_x_u8): Remove.
8819 (vminq_x_u16): Remove.
8820 (vminq_x_u32): Remove.
8821 (vmaxq_x_s8): Remove.
8822 (vmaxq_x_s16): Remove.
8823 (vmaxq_x_s32): Remove.
8824 (vmaxq_x_u8): Remove.
8825 (vmaxq_x_u16): Remove.
8826 (vmaxq_x_u32): Remove.
8827 (__arm_vminq_u8): Remove.
8828 (__arm_vmaxq_u8): Remove.
8829 (__arm_vminq_s8): Remove.
8830 (__arm_vmaxq_s8): Remove.
8831 (__arm_vminq_u16): Remove.
8832 (__arm_vmaxq_u16): Remove.
8833 (__arm_vminq_s16): Remove.
8834 (__arm_vmaxq_s16): Remove.
8835 (__arm_vminq_u32): Remove.
8836 (__arm_vmaxq_u32): Remove.
8837 (__arm_vminq_s32): Remove.
8838 (__arm_vmaxq_s32): Remove.
8839 (__arm_vmaxq_m_s8): Remove.
8840 (__arm_vmaxq_m_s32): Remove.
8841 (__arm_vmaxq_m_s16): Remove.
8842 (__arm_vmaxq_m_u8): Remove.
8843 (__arm_vmaxq_m_u32): Remove.
8844 (__arm_vmaxq_m_u16): Remove.
8845 (__arm_vminq_m_s8): Remove.
8846 (__arm_vminq_m_s32): Remove.
8847 (__arm_vminq_m_s16): Remove.
8848 (__arm_vminq_m_u8): Remove.
8849 (__arm_vminq_m_u32): Remove.
8850 (__arm_vminq_m_u16): Remove.
8851 (__arm_vminq_x_s8): Remove.
8852 (__arm_vminq_x_s16): Remove.
8853 (__arm_vminq_x_s32): Remove.
8854 (__arm_vminq_x_u8): Remove.
8855 (__arm_vminq_x_u16): Remove.
8856 (__arm_vminq_x_u32): Remove.
8857 (__arm_vmaxq_x_s8): Remove.
8858 (__arm_vmaxq_x_s16): Remove.
8859 (__arm_vmaxq_x_s32): Remove.
8860 (__arm_vmaxq_x_u8): Remove.
8861 (__arm_vmaxq_x_u16): Remove.
8862 (__arm_vmaxq_x_u32): Remove.
8863 (__arm_vminq): Remove.
8864 (__arm_vmaxq): Remove.
8865 (__arm_vmaxq_m): Remove.
8866 (__arm_vminq_m): Remove.
8867 (__arm_vminq_x): Remove.
8868 (__arm_vmaxq_x): Remove.
8869
8870 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8871
8872 * config/arm/iterators.md (MAX_MIN_SU): New.
8873 (max_min_su_str): New.
8874 (max_min_supf): New.
8875 * config/arm/mve.md (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>)
8876 (mve_vminq_s<mode>, mve_vminq_u<mode>): Merge into ...
8877 (mve_<max_min_su_str>q_<max_min_supf><mode>): ... this.
8878
8879 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
8880
8881 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_R): New.
8882 (vqshlq, vshlq): New.
8883 * config/arm/arm-mve-builtins-base.def (vqshlq, vshlq): New.
8884 * config/arm/arm-mve-builtins-base.h (vqshlq, vshlq): New.
8885 * config/arm/arm_mve.h (vshlq): Remove.
8886 (vshlq_r): Remove.
8887 (vshlq_n): Remove.
8888 (vshlq_m_r): Remove.
8889 (vshlq_m): Remove.
8890 (vshlq_m_n): Remove.
8891 (vshlq_x): Remove.
8892 (vshlq_x_n): Remove.
8893 (vshlq_s8): Remove.
8894 (vshlq_s16): Remove.
8895 (vshlq_s32): Remove.
8896 (vshlq_u8): Remove.
8897 (vshlq_u16): Remove.
8898 (vshlq_u32): Remove.
8899 (vshlq_r_u8): Remove.
8900 (vshlq_n_u8): Remove.
8901 (vshlq_r_s8): Remove.
8902 (vshlq_n_s8): Remove.
8903 (vshlq_r_u16): Remove.
8904 (vshlq_n_u16): Remove.
8905 (vshlq_r_s16): Remove.
8906 (vshlq_n_s16): Remove.
8907 (vshlq_r_u32): Remove.
8908 (vshlq_n_u32): Remove.
8909 (vshlq_r_s32): Remove.
8910 (vshlq_n_s32): Remove.
8911 (vshlq_m_r_u8): Remove.
8912 (vshlq_m_r_s8): Remove.
8913 (vshlq_m_r_u16): Remove.
8914 (vshlq_m_r_s16): Remove.
8915 (vshlq_m_r_u32): Remove.
8916 (vshlq_m_r_s32): Remove.
8917 (vshlq_m_u8): Remove.
8918 (vshlq_m_s8): Remove.
8919 (vshlq_m_u16): Remove.
8920 (vshlq_m_s16): Remove.
8921 (vshlq_m_u32): Remove.
8922 (vshlq_m_s32): Remove.
8923 (vshlq_m_n_s8): Remove.
8924 (vshlq_m_n_s32): Remove.
8925 (vshlq_m_n_s16): Remove.
8926 (vshlq_m_n_u8): Remove.
8927 (vshlq_m_n_u32): Remove.
8928 (vshlq_m_n_u16): Remove.
8929 (vshlq_x_s8): Remove.
8930 (vshlq_x_s16): Remove.
8931 (vshlq_x_s32): Remove.
8932 (vshlq_x_u8): Remove.
8933 (vshlq_x_u16): Remove.
8934 (vshlq_x_u32): Remove.
8935 (vshlq_x_n_s8): Remove.
8936 (vshlq_x_n_s16): Remove.
8937 (vshlq_x_n_s32): Remove.
8938 (vshlq_x_n_u8): Remove.
8939 (vshlq_x_n_u16): Remove.
8940 (vshlq_x_n_u32): Remove.
8941 (__arm_vshlq_s8): Remove.
8942 (__arm_vshlq_s16): Remove.
8943 (__arm_vshlq_s32): Remove.
8944 (__arm_vshlq_u8): Remove.
8945 (__arm_vshlq_u16): Remove.
8946 (__arm_vshlq_u32): Remove.
8947 (__arm_vshlq_r_u8): Remove.
8948 (__arm_vshlq_n_u8): Remove.
8949 (__arm_vshlq_r_s8): Remove.
8950 (__arm_vshlq_n_s8): Remove.
8951 (__arm_vshlq_r_u16): Remove.
8952 (__arm_vshlq_n_u16): Remove.
8953 (__arm_vshlq_r_s16): Remove.
8954 (__arm_vshlq_n_s16): Remove.
8955 (__arm_vshlq_r_u32): Remove.
8956 (__arm_vshlq_n_u32): Remove.
8957 (__arm_vshlq_r_s32): Remove.
8958 (__arm_vshlq_n_s32): Remove.
8959 (__arm_vshlq_m_r_u8): Remove.
8960 (__arm_vshlq_m_r_s8): Remove.
8961 (__arm_vshlq_m_r_u16): Remove.
8962 (__arm_vshlq_m_r_s16): Remove.
8963 (__arm_vshlq_m_r_u32): Remove.
8964 (__arm_vshlq_m_r_s32): Remove.
8965 (__arm_vshlq_m_u8): Remove.
8966 (__arm_vshlq_m_s8): Remove.
8967 (__arm_vshlq_m_u16): Remove.
8968 (__arm_vshlq_m_s16): Remove.
8969 (__arm_vshlq_m_u32): Remove.
8970 (__arm_vshlq_m_s32): Remove.
8971 (__arm_vshlq_m_n_s8): Remove.
8972 (__arm_vshlq_m_n_s32): Remove.
8973 (__arm_vshlq_m_n_s16): Remove.
8974 (__arm_vshlq_m_n_u8): Remove.
8975 (__arm_vshlq_m_n_u32): Remove.
8976 (__arm_vshlq_m_n_u16): Remove.
8977 (__arm_vshlq_x_s8): Remove.
8978 (__arm_vshlq_x_s16): Remove.
8979 (__arm_vshlq_x_s32): Remove.
8980 (__arm_vshlq_x_u8): Remove.
8981 (__arm_vshlq_x_u16): Remove.
8982 (__arm_vshlq_x_u32): Remove.
8983 (__arm_vshlq_x_n_s8): Remove.
8984 (__arm_vshlq_x_n_s16): Remove.
8985 (__arm_vshlq_x_n_s32): Remove.
8986 (__arm_vshlq_x_n_u8): Remove.
8987 (__arm_vshlq_x_n_u16): Remove.
8988 (__arm_vshlq_x_n_u32): Remove.
8989 (__arm_vshlq): Remove.
8990 (__arm_vshlq_r): Remove.
8991 (__arm_vshlq_n): Remove.
8992 (__arm_vshlq_m_r): Remove.
8993 (__arm_vshlq_m): Remove.
8994 (__arm_vshlq_m_n): Remove.
8995 (__arm_vshlq_x): Remove.
8996 (__arm_vshlq_x_n): Remove.
8997 (vqshlq): Remove.
8998 (vqshlq_r): Remove.
8999 (vqshlq_n): Remove.
9000 (vqshlq_m_r): Remove.
9001 (vqshlq_m_n): Remove.
9002 (vqshlq_m): Remove.
9003 (vqshlq_u8): Remove.
9004 (vqshlq_r_u8): Remove.
9005 (vqshlq_n_u8): Remove.
9006 (vqshlq_s8): Remove.
9007 (vqshlq_r_s8): Remove.
9008 (vqshlq_n_s8): Remove.
9009 (vqshlq_u16): Remove.
9010 (vqshlq_r_u16): Remove.
9011 (vqshlq_n_u16): Remove.
9012 (vqshlq_s16): Remove.
9013 (vqshlq_r_s16): Remove.
9014 (vqshlq_n_s16): Remove.
9015 (vqshlq_u32): Remove.
9016 (vqshlq_r_u32): Remove.
9017 (vqshlq_n_u32): Remove.
9018 (vqshlq_s32): Remove.
9019 (vqshlq_r_s32): Remove.
9020 (vqshlq_n_s32): Remove.
9021 (vqshlq_m_r_u8): Remove.
9022 (vqshlq_m_r_s8): Remove.
9023 (vqshlq_m_r_u16): Remove.
9024 (vqshlq_m_r_s16): Remove.
9025 (vqshlq_m_r_u32): Remove.
9026 (vqshlq_m_r_s32): Remove.
9027 (vqshlq_m_n_s8): Remove.
9028 (vqshlq_m_n_s32): Remove.
9029 (vqshlq_m_n_s16): Remove.
9030 (vqshlq_m_n_u8): Remove.
9031 (vqshlq_m_n_u32): Remove.
9032 (vqshlq_m_n_u16): Remove.
9033 (vqshlq_m_s8): Remove.
9034 (vqshlq_m_s32): Remove.
9035 (vqshlq_m_s16): Remove.
9036 (vqshlq_m_u8): Remove.
9037 (vqshlq_m_u32): Remove.
9038 (vqshlq_m_u16): Remove.
9039 (__arm_vqshlq_u8): Remove.
9040 (__arm_vqshlq_r_u8): Remove.
9041 (__arm_vqshlq_n_u8): Remove.
9042 (__arm_vqshlq_s8): Remove.
9043 (__arm_vqshlq_r_s8): Remove.
9044 (__arm_vqshlq_n_s8): Remove.
9045 (__arm_vqshlq_u16): Remove.
9046 (__arm_vqshlq_r_u16): Remove.
9047 (__arm_vqshlq_n_u16): Remove.
9048 (__arm_vqshlq_s16): Remove.
9049 (__arm_vqshlq_r_s16): Remove.
9050 (__arm_vqshlq_n_s16): Remove.
9051 (__arm_vqshlq_u32): Remove.
9052 (__arm_vqshlq_r_u32): Remove.
9053 (__arm_vqshlq_n_u32): Remove.
9054 (__arm_vqshlq_s32): Remove.
9055 (__arm_vqshlq_r_s32): Remove.
9056 (__arm_vqshlq_n_s32): Remove.
9057 (__arm_vqshlq_m_r_u8): Remove.
9058 (__arm_vqshlq_m_r_s8): Remove.
9059 (__arm_vqshlq_m_r_u16): Remove.
9060 (__arm_vqshlq_m_r_s16): Remove.
9061 (__arm_vqshlq_m_r_u32): Remove.
9062 (__arm_vqshlq_m_r_s32): Remove.
9063 (__arm_vqshlq_m_n_s8): Remove.
9064 (__arm_vqshlq_m_n_s32): Remove.
9065 (__arm_vqshlq_m_n_s16): Remove.
9066 (__arm_vqshlq_m_n_u8): Remove.
9067 (__arm_vqshlq_m_n_u32): Remove.
9068 (__arm_vqshlq_m_n_u16): Remove.
9069 (__arm_vqshlq_m_s8): Remove.
9070 (__arm_vqshlq_m_s32): Remove.
9071 (__arm_vqshlq_m_s16): Remove.
9072 (__arm_vqshlq_m_u8): Remove.
9073 (__arm_vqshlq_m_u32): Remove.
9074 (__arm_vqshlq_m_u16): Remove.
9075 (__arm_vqshlq): Remove.
9076 (__arm_vqshlq_r): Remove.
9077 (__arm_vqshlq_n): Remove.
9078 (__arm_vqshlq_m_r): Remove.
9079 (__arm_vqshlq_m_n): Remove.
9080 (__arm_vqshlq_m): Remove.
9081
9082 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9083
9084 * config/arm/arm-mve-builtins-functions.h (class
9085 unspec_mve_function_exact_insn_vshl): New.
9086
9087 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9088
9089 * config/arm/arm-mve-builtins-shapes.cc (binary_lshift_r): New.
9090 * config/arm/arm-mve-builtins-shapes.h (binary_lshift_r): New.
9091
9092 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9093
9094 * config/arm/arm-mve-builtins.cc (has_inactive_argument)
9095 (finish_opt_n_resolution): Handle MODE_r.
9096 * config/arm/arm-mve-builtins.def (r): New mode.
9097
9098 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9099
9100 * config/arm/arm-mve-builtins-shapes.cc (binary_lshift): New.
9101 * config/arm/arm-mve-builtins-shapes.h (binary_lshift): New.
9102
9103 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9104
9105 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N): New.
9106 (vabdq): New.
9107 * config/arm/arm-mve-builtins-base.def (vabdq): New.
9108 * config/arm/arm-mve-builtins-base.h (vabdq): New.
9109 * config/arm/arm_mve.h (vabdq): Remove.
9110 (vabdq_m): Remove.
9111 (vabdq_x): Remove.
9112 (vabdq_u8): Remove.
9113 (vabdq_s8): Remove.
9114 (vabdq_u16): Remove.
9115 (vabdq_s16): Remove.
9116 (vabdq_u32): Remove.
9117 (vabdq_s32): Remove.
9118 (vabdq_f16): Remove.
9119 (vabdq_f32): Remove.
9120 (vabdq_m_s8): Remove.
9121 (vabdq_m_s32): Remove.
9122 (vabdq_m_s16): Remove.
9123 (vabdq_m_u8): Remove.
9124 (vabdq_m_u32): Remove.
9125 (vabdq_m_u16): Remove.
9126 (vabdq_m_f32): Remove.
9127 (vabdq_m_f16): Remove.
9128 (vabdq_x_s8): Remove.
9129 (vabdq_x_s16): Remove.
9130 (vabdq_x_s32): Remove.
9131 (vabdq_x_u8): Remove.
9132 (vabdq_x_u16): Remove.
9133 (vabdq_x_u32): Remove.
9134 (vabdq_x_f16): Remove.
9135 (vabdq_x_f32): Remove.
9136 (__arm_vabdq_u8): Remove.
9137 (__arm_vabdq_s8): Remove.
9138 (__arm_vabdq_u16): Remove.
9139 (__arm_vabdq_s16): Remove.
9140 (__arm_vabdq_u32): Remove.
9141 (__arm_vabdq_s32): Remove.
9142 (__arm_vabdq_m_s8): Remove.
9143 (__arm_vabdq_m_s32): Remove.
9144 (__arm_vabdq_m_s16): Remove.
9145 (__arm_vabdq_m_u8): Remove.
9146 (__arm_vabdq_m_u32): Remove.
9147 (__arm_vabdq_m_u16): Remove.
9148 (__arm_vabdq_x_s8): Remove.
9149 (__arm_vabdq_x_s16): Remove.
9150 (__arm_vabdq_x_s32): Remove.
9151 (__arm_vabdq_x_u8): Remove.
9152 (__arm_vabdq_x_u16): Remove.
9153 (__arm_vabdq_x_u32): Remove.
9154 (__arm_vabdq_f16): Remove.
9155 (__arm_vabdq_f32): Remove.
9156 (__arm_vabdq_m_f32): Remove.
9157 (__arm_vabdq_m_f16): Remove.
9158 (__arm_vabdq_x_f16): Remove.
9159 (__arm_vabdq_x_f32): Remove.
9160 (__arm_vabdq): Remove.
9161 (__arm_vabdq_m): Remove.
9162 (__arm_vabdq_x): Remove.
9163
9164 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9165
9166 * config/arm/iterators.md (MVE_FP_M_BINARY): Add vabdq.
9167 (MVE_FP_VABDQ_ONLY): New.
9168 (mve_insn): Add vabd.
9169 * config/arm/mve.md (mve_vabdq_f<mode>): Move into ...
9170 (@mve_<mve_insn>q_f<mode>): ... this.
9171 (mve_vabdq_m_f<mode>): Remove.
9172
9173 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9174
9175 * config/arm/arm-mve-builtins-base.cc (vqrdmulhq): New.
9176 * config/arm/arm-mve-builtins-base.def (vqrdmulhq): New.
9177 * config/arm/arm-mve-builtins-base.h (vqrdmulhq): New.
9178 * config/arm/arm_mve.h (vqrdmulhq): Remove.
9179 (vqrdmulhq_m): Remove.
9180 (vqrdmulhq_s8): Remove.
9181 (vqrdmulhq_n_s8): Remove.
9182 (vqrdmulhq_s16): Remove.
9183 (vqrdmulhq_n_s16): Remove.
9184 (vqrdmulhq_s32): Remove.
9185 (vqrdmulhq_n_s32): Remove.
9186 (vqrdmulhq_m_n_s8): Remove.
9187 (vqrdmulhq_m_n_s32): Remove.
9188 (vqrdmulhq_m_n_s16): Remove.
9189 (vqrdmulhq_m_s8): Remove.
9190 (vqrdmulhq_m_s32): Remove.
9191 (vqrdmulhq_m_s16): Remove.
9192 (__arm_vqrdmulhq_s8): Remove.
9193 (__arm_vqrdmulhq_n_s8): Remove.
9194 (__arm_vqrdmulhq_s16): Remove.
9195 (__arm_vqrdmulhq_n_s16): Remove.
9196 (__arm_vqrdmulhq_s32): Remove.
9197 (__arm_vqrdmulhq_n_s32): Remove.
9198 (__arm_vqrdmulhq_m_n_s8): Remove.
9199 (__arm_vqrdmulhq_m_n_s32): Remove.
9200 (__arm_vqrdmulhq_m_n_s16): Remove.
9201 (__arm_vqrdmulhq_m_s8): Remove.
9202 (__arm_vqrdmulhq_m_s32): Remove.
9203 (__arm_vqrdmulhq_m_s16): Remove.
9204 (__arm_vqrdmulhq): Remove.
9205 (__arm_vqrdmulhq_m): Remove.
9206
9207 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9208
9209 * config/arm/iterators.md (MVE_SHIFT_M_R, MVE_SHIFT_M_N)
9210 (MVE_SHIFT_N, MVE_SHIFT_R): New.
9211 (mve_insn): Add vqshl, vshl.
9212 * config/arm/mve.md (mve_vqshlq_n_<supf><mode>)
9213 (mve_vshlq_n_<supf><mode>): Merge into ...
9214 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
9215 (mve_vqshlq_r_<supf><mode>, mve_vshlq_r_<supf><mode>): Merge into
9216 ...
9217 (@mve_<mve_insn>q_r_<supf><mode>): ... this.
9218 (mve_vqshlq_m_r_<supf><mode>, mve_vshlq_m_r_<supf><mode>): Merge
9219 into ...
9220 (@mve_<mve_insn>q_m_r_<supf><mode>): ... this.
9221 (mve_vqshlq_m_n_<supf><mode>, mve_vshlq_m_n_<supf><mode>): Merge
9222 into ...
9223 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
9224 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Transform
9225 into ...
9226 (@mve_<mve_insn>q_<supf><mode>): ... this.
9227
9228 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9229
9230 * config/arm/arm-mve-builtins-base.cc (vqrshlq, vrshlq): New.
9231 * config/arm/arm-mve-builtins-base.def (vqrshlq, vrshlq): New.
9232 * config/arm/arm-mve-builtins-base.h (vqrshlq, vrshlq): New.
9233 * config/arm/arm-mve-builtins.cc (has_inactive_argument): Handle
9234 vqrshlq, vrshlq.
9235 * config/arm/arm_mve.h (vrshlq): Remove.
9236 (vrshlq_m_n): Remove.
9237 (vrshlq_m): Remove.
9238 (vrshlq_x): Remove.
9239 (vrshlq_u8): Remove.
9240 (vrshlq_n_u8): Remove.
9241 (vrshlq_s8): Remove.
9242 (vrshlq_n_s8): Remove.
9243 (vrshlq_u16): Remove.
9244 (vrshlq_n_u16): Remove.
9245 (vrshlq_s16): Remove.
9246 (vrshlq_n_s16): Remove.
9247 (vrshlq_u32): Remove.
9248 (vrshlq_n_u32): Remove.
9249 (vrshlq_s32): Remove.
9250 (vrshlq_n_s32): Remove.
9251 (vrshlq_m_n_u8): Remove.
9252 (vrshlq_m_n_s8): Remove.
9253 (vrshlq_m_n_u16): Remove.
9254 (vrshlq_m_n_s16): Remove.
9255 (vrshlq_m_n_u32): Remove.
9256 (vrshlq_m_n_s32): Remove.
9257 (vrshlq_m_s8): Remove.
9258 (vrshlq_m_s32): Remove.
9259 (vrshlq_m_s16): Remove.
9260 (vrshlq_m_u8): Remove.
9261 (vrshlq_m_u32): Remove.
9262 (vrshlq_m_u16): Remove.
9263 (vrshlq_x_s8): Remove.
9264 (vrshlq_x_s16): Remove.
9265 (vrshlq_x_s32): Remove.
9266 (vrshlq_x_u8): Remove.
9267 (vrshlq_x_u16): Remove.
9268 (vrshlq_x_u32): Remove.
9269 (__arm_vrshlq_u8): Remove.
9270 (__arm_vrshlq_n_u8): Remove.
9271 (__arm_vrshlq_s8): Remove.
9272 (__arm_vrshlq_n_s8): Remove.
9273 (__arm_vrshlq_u16): Remove.
9274 (__arm_vrshlq_n_u16): Remove.
9275 (__arm_vrshlq_s16): Remove.
9276 (__arm_vrshlq_n_s16): Remove.
9277 (__arm_vrshlq_u32): Remove.
9278 (__arm_vrshlq_n_u32): Remove.
9279 (__arm_vrshlq_s32): Remove.
9280 (__arm_vrshlq_n_s32): Remove.
9281 (__arm_vrshlq_m_n_u8): Remove.
9282 (__arm_vrshlq_m_n_s8): Remove.
9283 (__arm_vrshlq_m_n_u16): Remove.
9284 (__arm_vrshlq_m_n_s16): Remove.
9285 (__arm_vrshlq_m_n_u32): Remove.
9286 (__arm_vrshlq_m_n_s32): Remove.
9287 (__arm_vrshlq_m_s8): Remove.
9288 (__arm_vrshlq_m_s32): Remove.
9289 (__arm_vrshlq_m_s16): Remove.
9290 (__arm_vrshlq_m_u8): Remove.
9291 (__arm_vrshlq_m_u32): Remove.
9292 (__arm_vrshlq_m_u16): Remove.
9293 (__arm_vrshlq_x_s8): Remove.
9294 (__arm_vrshlq_x_s16): Remove.
9295 (__arm_vrshlq_x_s32): Remove.
9296 (__arm_vrshlq_x_u8): Remove.
9297 (__arm_vrshlq_x_u16): Remove.
9298 (__arm_vrshlq_x_u32): Remove.
9299 (__arm_vrshlq): Remove.
9300 (__arm_vrshlq_m_n): Remove.
9301 (__arm_vrshlq_m): Remove.
9302 (__arm_vrshlq_x): Remove.
9303 (vqrshlq): Remove.
9304 (vqrshlq_m_n): Remove.
9305 (vqrshlq_m): Remove.
9306 (vqrshlq_u8): Remove.
9307 (vqrshlq_n_u8): Remove.
9308 (vqrshlq_s8): Remove.
9309 (vqrshlq_n_s8): Remove.
9310 (vqrshlq_u16): Remove.
9311 (vqrshlq_n_u16): Remove.
9312 (vqrshlq_s16): Remove.
9313 (vqrshlq_n_s16): Remove.
9314 (vqrshlq_u32): Remove.
9315 (vqrshlq_n_u32): Remove.
9316 (vqrshlq_s32): Remove.
9317 (vqrshlq_n_s32): Remove.
9318 (vqrshlq_m_n_u8): Remove.
9319 (vqrshlq_m_n_s8): Remove.
9320 (vqrshlq_m_n_u16): Remove.
9321 (vqrshlq_m_n_s16): Remove.
9322 (vqrshlq_m_n_u32): Remove.
9323 (vqrshlq_m_n_s32): Remove.
9324 (vqrshlq_m_s8): Remove.
9325 (vqrshlq_m_s32): Remove.
9326 (vqrshlq_m_s16): Remove.
9327 (vqrshlq_m_u8): Remove.
9328 (vqrshlq_m_u32): Remove.
9329 (vqrshlq_m_u16): Remove.
9330 (__arm_vqrshlq_u8): Remove.
9331 (__arm_vqrshlq_n_u8): Remove.
9332 (__arm_vqrshlq_s8): Remove.
9333 (__arm_vqrshlq_n_s8): Remove.
9334 (__arm_vqrshlq_u16): Remove.
9335 (__arm_vqrshlq_n_u16): Remove.
9336 (__arm_vqrshlq_s16): Remove.
9337 (__arm_vqrshlq_n_s16): Remove.
9338 (__arm_vqrshlq_u32): Remove.
9339 (__arm_vqrshlq_n_u32): Remove.
9340 (__arm_vqrshlq_s32): Remove.
9341 (__arm_vqrshlq_n_s32): Remove.
9342 (__arm_vqrshlq_m_n_u8): Remove.
9343 (__arm_vqrshlq_m_n_s8): Remove.
9344 (__arm_vqrshlq_m_n_u16): Remove.
9345 (__arm_vqrshlq_m_n_s16): Remove.
9346 (__arm_vqrshlq_m_n_u32): Remove.
9347 (__arm_vqrshlq_m_n_s32): Remove.
9348 (__arm_vqrshlq_m_s8): Remove.
9349 (__arm_vqrshlq_m_s32): Remove.
9350 (__arm_vqrshlq_m_s16): Remove.
9351 (__arm_vqrshlq_m_u8): Remove.
9352 (__arm_vqrshlq_m_u32): Remove.
9353 (__arm_vqrshlq_m_u16): Remove.
9354 (__arm_vqrshlq): Remove.
9355 (__arm_vqrshlq_m_n): Remove.
9356 (__arm_vqrshlq_m): Remove.
9357
9358 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9359
9360 * config/arm/iterators.md (MVE_RSHIFT_M_N, MVE_RSHIFT_N): New.
9361 (mve_insn): Add vqrshl, vrshl.
9362 * config/arm/mve.md (mve_vqrshlq_n_<supf><mode>)
9363 (mve_vrshlq_n_<supf><mode>): Merge into ...
9364 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
9365 (mve_vqrshlq_m_n_<supf><mode>, mve_vrshlq_m_n_<supf><mode>): Merge
9366 into ...
9367 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
9368
9369 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
9370
9371 * config/arm/arm-mve-builtins-shapes.cc (binary_round_lshift): New.
9372 * config/arm/arm-mve-builtins-shapes.h (binary_round_lshift): New.
9373
9374 2023-05-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
9375
9376 PR target/109615
9377 * config/riscv/riscv-vsetvl.cc (avl_info::multiple_source_equal_p): Add
9378 denegrate PHI optmization.
9379
9380 2023-05-05 Uros Bizjak <ubizjak@gmail.com>
9381
9382 * config/i386/predicates.md (register_no_SP_operand):
9383 Rename from index_register_operand.
9384 (call_register_operand): Update for rename.
9385 * config/i386/i386.md (*lea<mode>_general_[1234]): Update for rename.
9386
9387 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9388
9389 PR bootstrap/84402
9390 * Makefile.in (NUM_MATCH_SPLITS, MATCH_SPLITS_SEQ,
9391 GIMPLE_MATCH_PD_SEQ_SRC, GIMPLE_MATCH_PD_SEQ_O,
9392 GENERIC_MATCH_PD_SEQ_SRC, GENERIC_MATCH_PD_SEQ_O): New.
9393 (OBJS, MOSTLYCLEANFILES, .PRECIOUS): Use them.
9394 (s-match): Split into s-generic-match and s-gimple-match.
9395 * configure.ac (with-matchpd-partitions,
9396 DEFAULT_MATCHPD_PARTITIONS): New.
9397 * configure: Regenerate.
9398
9399 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9400
9401 PR bootstrap/84402
9402 * genmatch.cc (emit_func, SIZED_BASED_CHUNKS, get_out_file): New.
9403 (decision_tree::gen): Accept list of files instead of single and update
9404 to write function definition to header and main file.
9405 (write_predicate): Likewise.
9406 (write_header): Emit pragmas and new includes.
9407 (main): Create file buffers and cleanup.
9408 (showUsage, write_header_includes): New.
9409
9410 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9411
9412 PR bootstrap/84402
9413 * Makefile.in (OBJS): Add gimple-match-exports.o.
9414 * genmatch.cc (decision_tree::gen): Export gimple_gimplify helpers.
9415 * gimple-match-head.cc (gimple_simplify, gimple_resimplify1,
9416 gimple_resimplify2, gimple_resimplify3, gimple_resimplify4,
9417 gimple_resimplify5, constant_for_folding, convert_conditional_op,
9418 maybe_resimplify_conditional_op, gimple_match_op::resimplify,
9419 maybe_build_generic_op, build_call_internal, maybe_push_res_to_seq,
9420 do_valueize, try_conditional_simplification, gimple_extract,
9421 gimple_extract_op, canonicalize_code, commutative_binary_op_p,
9422 commutative_ternary_op_p, first_commutative_argument,
9423 associative_binary_op_p, directly_supported_p,
9424 get_conditional_internal_fn): Moved to gimple-match-exports.cc
9425 * gimple-match-exports.cc: New file.
9426
9427 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9428
9429 PR bootstrap/84402
9430 * genmatch.cc (decision_tree::gen, write_predicate): Generate new
9431 debug_dump var.
9432 (dt_simplify::gen_1): Use it.
9433
9434 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9435
9436 PR bootstrap/84402
9437 * genmatch.cc (output_line_directive): Only emit commented directive
9438 when -vv.
9439
9440 2023-05-05 Tamar Christina <tamar.christina@arm.com>
9441
9442 PR bootstrap/84402
9443 * genmatch.cc (dt_simplify::gen_1): Only emit labels if used.
9444
9445 2023-05-05 Tobias Burnus <tobias@codesourcery.com>
9446
9447 * config/gcn/gcn.cc (gcn_vectorize_builtin_vectorized_function): Remove
9448 unused in_mode/in_n variables.
9449
9450 2023-05-05 Richard Biener <rguenther@suse.de>
9451
9452 PR tree-optimization/109735
9453 * tree-vect-stmts.cc (vectorizable_operation): Perform
9454 conversion for POINTER_DIFF_EXPR unconditionally.
9455
9456 2023-05-05 Uros Bizjak <ubizjak@gmail.com>
9457
9458 * config/i386/mmx.md (mulv2si3): New expander.
9459 (*mulv2si3): New insn pattern.
9460
9461 2023-05-05 Tobias Burnus <tobias@codesourcery.com>
9462 Thomas Schwinge <thomas@codesourcery.com>
9463
9464 PR libgomp/108098
9465 * config/nvptx/mkoffload.cc (process): Emit dummy procedure
9466 alongside reverse-offload function table to prevent NULL values
9467 of the function addresses.
9468
9469 2023-05-05 Jakub Jelinek <jakub@redhat.com>
9470
9471 * builtins.cc (do_mpfr_ckconv, do_mpc_ckconv): Fix comment typo,
9472 mpft_t -> mpfr_t.
9473 * fold-const-call.cc (do_mpfr_ckconv, do_mpc_ckconv): Likewise.
9474
9475 2023-05-05 Andrew Pinski <apinski@marvell.com>
9476
9477 PR tree-optimization/109732
9478 * tree-ssa-phiopt.cc (match_simplify_replacement): Fix the selection
9479 of the argtrue/argfalse.
9480
9481 2023-05-05 Andrew Pinski <apinski@marvell.com>
9482
9483 PR tree-optimization/109722
9484 * match.pd: Extend the `ABS<a> == 0` pattern
9485 to cover `ABSU<a> == 0` too.
9486
9487 2023-05-04 Uros Bizjak <ubizjak@gmail.com>
9488
9489 PR target/109733
9490 * config/i386/predicates.md (index_reg_operand): New predicate.
9491 * config/i386/i386.md (ashift to lea spliter): Use
9492 general_reg_operand and index_reg_operand predicates.
9493
9494 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9495
9496 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>_insn_le):
9497 Rename and reimplement with RTL codes to...
9498 (aarch64_<optab>hn2<mode>_insn_le): .. This.
9499 (aarch64_r<optab>hn2<mode>_insn_le): New pattern.
9500 (aarch64_<sur><addsub>hn2<mode>_insn_be): Rename and reimplement with RTL
9501 codes to...
9502 (aarch64_<optab>hn2<mode>_insn_be): ... This.
9503 (aarch64_r<optab>hn2<mode>_insn_be): New pattern.
9504 (aarch64_<sur><addsub>hn2<mode>): Rename and adjust expander to...
9505 (aarch64_<optab>hn2<mode>): ... This.
9506 (aarch64_r<optab>hn2<mode>): New expander.
9507 * config/aarch64/iterators.md (UNSPEC_ADDHN, UNSPEC_RADDHN,
9508 UNSPEC_SUBHN, UNSPEC_RSUBHN): Delete unspecs.
9509 (ADDSUBHN): Delete.
9510 (sur): Remove handling of the above.
9511 (addsub): Likewise.
9512
9513 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9514
9515 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>_insn_le):
9516 Delete.
9517 (aarch64_<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
9518 (aarch64_<sur><addsub>hn<mode>_insn_be): Delete.
9519 (aarch64_r<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
9520 (aarch64_<sur><addsub>hn<mode>): Delete.
9521 (aarch64_<optab>hn<mode>): New define_expand.
9522 (aarch64_r<optab>hn<mode>): Likewise.
9523 * config/aarch64/predicates.md (aarch64_simd_raddsubhn_imm_vec):
9524 New predicate.
9525
9526 2023-05-04 Andrew Pinski <apinski@marvell.com>
9527
9528 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Handle
9529 diamond form bb with forwarder only empty blocks better.
9530
9531 2023-05-04 Andrew Pinski <apinski@marvell.com>
9532
9533 * tree-ssa-threadupdate.cc (copy_phi_arg_into_existing_phi): Move to ...
9534 * tree-cfg.cc (copy_phi_arg_into_existing_phi): Here and remove static.
9535 (gimple_duplicate_sese_tail): Use copy_phi_arg_into_existing_phi instead
9536 of an inline version of it.
9537 * tree-cfgcleanup.cc (remove_forwarder_block): Likewise.
9538 * tree-cfg.h (copy_phi_arg_into_existing_phi): New declaration.
9539
9540 2023-05-04 Andrew Pinski <apinski@marvell.com>
9541
9542 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Change
9543 the default argument value for dce_ssa_names to nullptr.
9544 Check to make sure dce_ssa_names is a non-nullptr before
9545 calling simple_dce_from_worklist.
9546
9547 2023-05-04 Uros Bizjak <ubizjak@gmail.com>
9548
9549 * config/i386/predicates.md (index_register_operand): Reject
9550 arg_pointer_rtx, frame_pointer_rtx, stack_pointer_rtx and
9551 VIRTUAL_REGISTER_P operands. Allow subregs of memory before reload.
9552 (call_register_no_elim_operand): Rewrite as ...
9553 (call_register_operand): ... this.
9554 (call_insn_operand): Use call_register_operand predicate.
9555
9556 2023-05-04 Richard Biener <rguenther@suse.de>
9557
9558 PR tree-optimization/109721
9559 * tree-vect-stmts.cc (vectorizable_operation): Make sure
9560 to test word_mode for all !target_support_p operations.
9561
9562 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9563
9564 PR target/99195
9565 * config/aarch64/aarch64-simd.md (aarch64_<su>aba<mode>): Rename to...
9566 (aarch64_<su>aba<mode><vczle><vczbe>): ... This.
9567 (aarch64_mla<mode>): Rename to...
9568 (aarch64_mla<mode><vczle><vczbe>): ... This.
9569 (*aarch64_mla_elt<mode>): Rename to...
9570 (*aarch64_mla_elt<mode><vczle><vczbe>): ... This.
9571 (*aarch64_mla_elt_<vswap_width_name><mode>): Rename to...
9572 (*aarch64_mla_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
9573 (aarch64_mla_n<mode>): Rename to...
9574 (aarch64_mla_n<mode><vczle><vczbe>): ... This.
9575 (aarch64_mls<mode>): Rename to...
9576 (aarch64_mls<mode><vczle><vczbe>): ... This.
9577 (*aarch64_mls_elt<mode>): Rename to...
9578 (*aarch64_mls_elt<mode><vczle><vczbe>): ... This.
9579 (*aarch64_mls_elt_<vswap_width_name><mode>): Rename to...
9580 (*aarch64_mls_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
9581 (aarch64_mls_n<mode>): Rename to...
9582 (aarch64_mls_n<mode><vczle><vczbe>): ... This.
9583 (fma<mode>4): Rename to...
9584 (fma<mode>4<vczle><vczbe>): ... This.
9585 (*aarch64_fma4_elt<mode>): Rename to...
9586 (*aarch64_fma4_elt<mode><vczle><vczbe>): ... This.
9587 (*aarch64_fma4_elt_<vswap_width_name><mode>): Rename to...
9588 (*aarch64_fma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
9589 (*aarch64_fma4_elt_from_dup<mode>): Rename to...
9590 (*aarch64_fma4_elt_from_dup<mode><vczle><vczbe>): ... This.
9591 (fnma<mode>4): Rename to...
9592 (fnma<mode>4<vczle><vczbe>): ... This.
9593 (*aarch64_fnma4_elt<mode>): Rename to...
9594 (*aarch64_fnma4_elt<mode><vczle><vczbe>): ... This.
9595 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Rename to...
9596 (*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
9597 (*aarch64_fnma4_elt_from_dup<mode>): Rename to...
9598 (*aarch64_fnma4_elt_from_dup<mode><vczle><vczbe>): ... This.
9599 (aarch64_simd_bsl<mode>_internal): Rename to...
9600 (aarch64_simd_bsl<mode>_internal<vczle><vczbe>): ... This.
9601 (*aarch64_simd_bsl<mode>_alt): Rename to...
9602 (*aarch64_simd_bsl<mode>_alt<vczle><vczbe>): ... This.
9603
9604 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9605
9606 PR target/99195
9607 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>): Rename to...
9608 (aarch64_<su>abd<mode><vczle><vczbe>): ... This.
9609 (fabd<mode>3): Rename to...
9610 (fabd<mode>3<vczle><vczbe>): ... This.
9611 (aarch64_<optab>p<mode>): Rename to...
9612 (aarch64_<optab>p<mode><vczle><vczbe>): ... This.
9613 (aarch64_faddp<mode>): Rename to...
9614 (aarch64_faddp<mode><vczle><vczbe>): ... This.
9615
9616 2023-05-04 Martin Liska <mliska@suse.cz>
9617
9618 * gcov.cc (GCOV_JSON_FORMAT_VERSION): New definition.
9619 (print_version): Use it.
9620 (generate_results): Likewise.
9621
9622 2023-05-04 Richard Biener <rguenther@suse.de>
9623
9624 * tree-cfg.h (last_stmt): Rename to ...
9625 (last_nondebug_stmt): ... this.
9626 * tree-cfg.cc (last_stmt): Rename to ...
9627 (last_nondebug_stmt): ... this.
9628 (assign_discriminators): Adjust.
9629 (group_case_labels_stmt): Likewise.
9630 (gimple_can_duplicate_bb_p): Likewise.
9631 (execute_fixup_cfg): Likewise.
9632 * auto-profile.cc (afdo_propagate_circuit): Likewise.
9633 * gimple-range.cc (gimple_ranger::range_on_exit): Likewise.
9634 * omp-expand.cc (workshare_safe_to_combine_p): Likewise.
9635 (determine_parallel_type): Likewise.
9636 (adjust_context_and_scope): Likewise.
9637 (expand_task_call): Likewise.
9638 (remove_exit_barrier): Likewise.
9639 (expand_omp_taskreg): Likewise.
9640 (expand_omp_for_init_counts): Likewise.
9641 (expand_omp_for_init_vars): Likewise.
9642 (expand_omp_for_static_chunk): Likewise.
9643 (expand_omp_simd): Likewise.
9644 (expand_oacc_for): Likewise.
9645 (expand_omp_for): Likewise.
9646 (expand_omp_sections): Likewise.
9647 (expand_omp_atomic_fetch_op): Likewise.
9648 (expand_omp_atomic_cas): Likewise.
9649 (expand_omp_atomic): Likewise.
9650 (expand_omp_target): Likewise.
9651 (expand_omp): Likewise.
9652 (omp_make_gimple_edges): Likewise.
9653 * trans-mem.cc (tm_region_init): Likewise.
9654 * tree-inline.cc (redirect_all_calls): Likewise.
9655 * tree-parloops.cc (gen_parallel_loop): Likewise.
9656 * tree-ssa-loop-ch.cc (do_while_loop_p): Likewise.
9657 * tree-ssa-loop-ivcanon.cc (canonicalize_loop_induction_variables):
9658 Likewise.
9659 * tree-ssa-loop-ivopts.cc (stmt_after_ip_normal_pos): Likewise.
9660 (may_eliminate_iv): Likewise.
9661 * tree-ssa-loop-manip.cc (standard_iv_increment_position): Likewise.
9662 * tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations):
9663 Likewise.
9664 (estimate_numbers_of_iterations): Likewise.
9665 * tree-ssa-loop-split.cc (compute_added_num_insns): Likewise.
9666 * tree-ssa-loop-unswitch.cc (get_predicates_for_bb): Likewise.
9667 (set_predicates_for_bb): Likewise.
9668 (init_loop_unswitch_info): Likewise.
9669 (hoist_guard): Likewise.
9670 * tree-ssa-phiopt.cc (match_simplify_replacement): Likewise.
9671 (minmax_replacement): Likewise.
9672 * tree-ssa-reassoc.cc (update_range_test): Likewise.
9673 (optimize_range_tests_to_bit_test): Likewise.
9674 (optimize_range_tests_var_bound): Likewise.
9675 (optimize_range_tests): Likewise.
9676 (no_side_effect_bb): Likewise.
9677 (suitable_cond_bb): Likewise.
9678 (maybe_optimize_range_tests): Likewise.
9679 (reassociate_bb): Likewise.
9680 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Likewise.
9681
9682 2023-05-04 Jakub Jelinek <jakub@redhat.com>
9683
9684 PR debug/109676
9685 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
9686 If src is REG, change its mode to V1TImode and call fix_debug_reg_uses
9687 for it only if it still has TImode. Don't decide whether to call
9688 fix_debug_reg_uses based on whether SRC is ever set or not.
9689
9690 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
9691
9692 * config/cris/cris.cc (cris_split_constant): New function.
9693 * config/cris/cris.md (splitop): New iterator.
9694 (opsplit1): New define_peephole2.
9695 * config/cris/cris-protos.h (cris_split_constant): Declare.
9696 (cris_splittable_constant_p): New macro.
9697
9698 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
9699
9700 * config/cris/cris.cc (TARGET_SPILL_CLASS): Define
9701 to ALL_REGS.
9702
9703 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
9704
9705 * config/cris/cris.cc (cris_side_effect_mode_ok): Use
9706 lra_in_progress, not reload_in_progress.
9707 * config/cris/cris.md ("movdi", "*addi_reload"): Ditto.
9708 * config/cris/constraints.md ("Q"): Ditto.
9709
9710 2023-05-03 Andrew Pinski <apinski@marvell.com>
9711
9712 * tree-ssa-dce.cc (simple_dce_from_worklist): Record
9713 stats on removed number of statements and phis.
9714
9715 2023-05-03 Aldy Hernandez <aldyh@redhat.com>
9716
9717 PR tree-optimization/109711
9718 * value-range.cc (irange::verify_range): Allow types of
9719 error_mark_node.
9720
9721 2023-05-03 Alexander Monakov <amonakov@ispras.ru>
9722
9723 PR sanitizer/90746
9724 * calls.cc (can_implement_as_sibling_call_p): Reject calls
9725 to __sanitizer_cov_trace_pc.
9726
9727 2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
9728
9729 PR target/109661
9730 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Add
9731 a new ABI break parameter for GCC 14. Set it to the alignment
9732 of enums that have an underlying type. Take the true alignment
9733 of such enums from the TYPE_ALIGN of the underlying type's
9734 TYPE_MAIN_VARIANT.
9735 (aarch64_function_arg_boundary): Update accordingly.
9736 (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Likewise.
9737 Warn about ABI differences.
9738
9739 2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
9740
9741 PR target/109661
9742 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Rename
9743 ABI break variables to abi_break_gcc_9 and abi_break_gcc_13.
9744 (aarch64_layout_arg, aarch64_function_arg_boundary): Likewise.
9745 (aarch64_gimplify_va_arg_expr): Likewise.
9746
9747 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
9748
9749 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_NO_F)
9750 (FUNCTION_WITHOUT_N_NO_F, FUNCTION_WITH_M_N_NO_U_F): New.
9751 (vhaddq, vhsubq, vmulhq, vqaddq, vqsubq, vqdmulhq, vrhaddq)
9752 (vrmulhq): New.
9753 * config/arm/arm-mve-builtins-base.def (vhaddq, vhsubq, vmulhq)
9754 (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
9755 * config/arm/arm-mve-builtins-base.h (vhaddq, vhsubq, vmulhq)
9756 (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
9757 * config/arm/arm_mve.h (vhsubq): Remove.
9758 (vhaddq): Remove.
9759 (vhaddq_m): Remove.
9760 (vhsubq_m): Remove.
9761 (vhaddq_x): Remove.
9762 (vhsubq_x): Remove.
9763 (vhsubq_u8): Remove.
9764 (vhsubq_n_u8): Remove.
9765 (vhaddq_u8): Remove.
9766 (vhaddq_n_u8): Remove.
9767 (vhsubq_s8): Remove.
9768 (vhsubq_n_s8): Remove.
9769 (vhaddq_s8): Remove.
9770 (vhaddq_n_s8): Remove.
9771 (vhsubq_u16): Remove.
9772 (vhsubq_n_u16): Remove.
9773 (vhaddq_u16): Remove.
9774 (vhaddq_n_u16): Remove.
9775 (vhsubq_s16): Remove.
9776 (vhsubq_n_s16): Remove.
9777 (vhaddq_s16): Remove.
9778 (vhaddq_n_s16): Remove.
9779 (vhsubq_u32): Remove.
9780 (vhsubq_n_u32): Remove.
9781 (vhaddq_u32): Remove.
9782 (vhaddq_n_u32): Remove.
9783 (vhsubq_s32): Remove.
9784 (vhsubq_n_s32): Remove.
9785 (vhaddq_s32): Remove.
9786 (vhaddq_n_s32): Remove.
9787 (vhaddq_m_n_s8): Remove.
9788 (vhaddq_m_n_s32): Remove.
9789 (vhaddq_m_n_s16): Remove.
9790 (vhaddq_m_n_u8): Remove.
9791 (vhaddq_m_n_u32): Remove.
9792 (vhaddq_m_n_u16): Remove.
9793 (vhaddq_m_s8): Remove.
9794 (vhaddq_m_s32): Remove.
9795 (vhaddq_m_s16): Remove.
9796 (vhaddq_m_u8): Remove.
9797 (vhaddq_m_u32): Remove.
9798 (vhaddq_m_u16): Remove.
9799 (vhsubq_m_n_s8): Remove.
9800 (vhsubq_m_n_s32): Remove.
9801 (vhsubq_m_n_s16): Remove.
9802 (vhsubq_m_n_u8): Remove.
9803 (vhsubq_m_n_u32): Remove.
9804 (vhsubq_m_n_u16): Remove.
9805 (vhsubq_m_s8): Remove.
9806 (vhsubq_m_s32): Remove.
9807 (vhsubq_m_s16): Remove.
9808 (vhsubq_m_u8): Remove.
9809 (vhsubq_m_u32): Remove.
9810 (vhsubq_m_u16): Remove.
9811 (vhaddq_x_n_s8): Remove.
9812 (vhaddq_x_n_s16): Remove.
9813 (vhaddq_x_n_s32): Remove.
9814 (vhaddq_x_n_u8): Remove.
9815 (vhaddq_x_n_u16): Remove.
9816 (vhaddq_x_n_u32): Remove.
9817 (vhaddq_x_s8): Remove.
9818 (vhaddq_x_s16): Remove.
9819 (vhaddq_x_s32): Remove.
9820 (vhaddq_x_u8): Remove.
9821 (vhaddq_x_u16): Remove.
9822 (vhaddq_x_u32): Remove.
9823 (vhsubq_x_n_s8): Remove.
9824 (vhsubq_x_n_s16): Remove.
9825 (vhsubq_x_n_s32): Remove.
9826 (vhsubq_x_n_u8): Remove.
9827 (vhsubq_x_n_u16): Remove.
9828 (vhsubq_x_n_u32): Remove.
9829 (vhsubq_x_s8): Remove.
9830 (vhsubq_x_s16): Remove.
9831 (vhsubq_x_s32): Remove.
9832 (vhsubq_x_u8): Remove.
9833 (vhsubq_x_u16): Remove.
9834 (vhsubq_x_u32): Remove.
9835 (__arm_vhsubq_u8): Remove.
9836 (__arm_vhsubq_n_u8): Remove.
9837 (__arm_vhaddq_u8): Remove.
9838 (__arm_vhaddq_n_u8): Remove.
9839 (__arm_vhsubq_s8): Remove.
9840 (__arm_vhsubq_n_s8): Remove.
9841 (__arm_vhaddq_s8): Remove.
9842 (__arm_vhaddq_n_s8): Remove.
9843 (__arm_vhsubq_u16): Remove.
9844 (__arm_vhsubq_n_u16): Remove.
9845 (__arm_vhaddq_u16): Remove.
9846 (__arm_vhaddq_n_u16): Remove.
9847 (__arm_vhsubq_s16): Remove.
9848 (__arm_vhsubq_n_s16): Remove.
9849 (__arm_vhaddq_s16): Remove.
9850 (__arm_vhaddq_n_s16): Remove.
9851 (__arm_vhsubq_u32): Remove.
9852 (__arm_vhsubq_n_u32): Remove.
9853 (__arm_vhaddq_u32): Remove.
9854 (__arm_vhaddq_n_u32): Remove.
9855 (__arm_vhsubq_s32): Remove.
9856 (__arm_vhsubq_n_s32): Remove.
9857 (__arm_vhaddq_s32): Remove.
9858 (__arm_vhaddq_n_s32): Remove.
9859 (__arm_vhaddq_m_n_s8): Remove.
9860 (__arm_vhaddq_m_n_s32): Remove.
9861 (__arm_vhaddq_m_n_s16): Remove.
9862 (__arm_vhaddq_m_n_u8): Remove.
9863 (__arm_vhaddq_m_n_u32): Remove.
9864 (__arm_vhaddq_m_n_u16): Remove.
9865 (__arm_vhaddq_m_s8): Remove.
9866 (__arm_vhaddq_m_s32): Remove.
9867 (__arm_vhaddq_m_s16): Remove.
9868 (__arm_vhaddq_m_u8): Remove.
9869 (__arm_vhaddq_m_u32): Remove.
9870 (__arm_vhaddq_m_u16): Remove.
9871 (__arm_vhsubq_m_n_s8): Remove.
9872 (__arm_vhsubq_m_n_s32): Remove.
9873 (__arm_vhsubq_m_n_s16): Remove.
9874 (__arm_vhsubq_m_n_u8): Remove.
9875 (__arm_vhsubq_m_n_u32): Remove.
9876 (__arm_vhsubq_m_n_u16): Remove.
9877 (__arm_vhsubq_m_s8): Remove.
9878 (__arm_vhsubq_m_s32): Remove.
9879 (__arm_vhsubq_m_s16): Remove.
9880 (__arm_vhsubq_m_u8): Remove.
9881 (__arm_vhsubq_m_u32): Remove.
9882 (__arm_vhsubq_m_u16): Remove.
9883 (__arm_vhaddq_x_n_s8): Remove.
9884 (__arm_vhaddq_x_n_s16): Remove.
9885 (__arm_vhaddq_x_n_s32): Remove.
9886 (__arm_vhaddq_x_n_u8): Remove.
9887 (__arm_vhaddq_x_n_u16): Remove.
9888 (__arm_vhaddq_x_n_u32): Remove.
9889 (__arm_vhaddq_x_s8): Remove.
9890 (__arm_vhaddq_x_s16): Remove.
9891 (__arm_vhaddq_x_s32): Remove.
9892 (__arm_vhaddq_x_u8): Remove.
9893 (__arm_vhaddq_x_u16): Remove.
9894 (__arm_vhaddq_x_u32): Remove.
9895 (__arm_vhsubq_x_n_s8): Remove.
9896 (__arm_vhsubq_x_n_s16): Remove.
9897 (__arm_vhsubq_x_n_s32): Remove.
9898 (__arm_vhsubq_x_n_u8): Remove.
9899 (__arm_vhsubq_x_n_u16): Remove.
9900 (__arm_vhsubq_x_n_u32): Remove.
9901 (__arm_vhsubq_x_s8): Remove.
9902 (__arm_vhsubq_x_s16): Remove.
9903 (__arm_vhsubq_x_s32): Remove.
9904 (__arm_vhsubq_x_u8): Remove.
9905 (__arm_vhsubq_x_u16): Remove.
9906 (__arm_vhsubq_x_u32): Remove.
9907 (__arm_vhsubq): Remove.
9908 (__arm_vhaddq): Remove.
9909 (__arm_vhaddq_m): Remove.
9910 (__arm_vhsubq_m): Remove.
9911 (__arm_vhaddq_x): Remove.
9912 (__arm_vhsubq_x): Remove.
9913 (vmulhq): Remove.
9914 (vmulhq_m): Remove.
9915 (vmulhq_x): Remove.
9916 (vmulhq_u8): Remove.
9917 (vmulhq_s8): Remove.
9918 (vmulhq_u16): Remove.
9919 (vmulhq_s16): Remove.
9920 (vmulhq_u32): Remove.
9921 (vmulhq_s32): Remove.
9922 (vmulhq_m_s8): Remove.
9923 (vmulhq_m_s32): Remove.
9924 (vmulhq_m_s16): Remove.
9925 (vmulhq_m_u8): Remove.
9926 (vmulhq_m_u32): Remove.
9927 (vmulhq_m_u16): Remove.
9928 (vmulhq_x_s8): Remove.
9929 (vmulhq_x_s16): Remove.
9930 (vmulhq_x_s32): Remove.
9931 (vmulhq_x_u8): Remove.
9932 (vmulhq_x_u16): Remove.
9933 (vmulhq_x_u32): Remove.
9934 (__arm_vmulhq_u8): Remove.
9935 (__arm_vmulhq_s8): Remove.
9936 (__arm_vmulhq_u16): Remove.
9937 (__arm_vmulhq_s16): Remove.
9938 (__arm_vmulhq_u32): Remove.
9939 (__arm_vmulhq_s32): Remove.
9940 (__arm_vmulhq_m_s8): Remove.
9941 (__arm_vmulhq_m_s32): Remove.
9942 (__arm_vmulhq_m_s16): Remove.
9943 (__arm_vmulhq_m_u8): Remove.
9944 (__arm_vmulhq_m_u32): Remove.
9945 (__arm_vmulhq_m_u16): Remove.
9946 (__arm_vmulhq_x_s8): Remove.
9947 (__arm_vmulhq_x_s16): Remove.
9948 (__arm_vmulhq_x_s32): Remove.
9949 (__arm_vmulhq_x_u8): Remove.
9950 (__arm_vmulhq_x_u16): Remove.
9951 (__arm_vmulhq_x_u32): Remove.
9952 (__arm_vmulhq): Remove.
9953 (__arm_vmulhq_m): Remove.
9954 (__arm_vmulhq_x): Remove.
9955 (vqsubq): Remove.
9956 (vqaddq): Remove.
9957 (vqaddq_m): Remove.
9958 (vqsubq_m): Remove.
9959 (vqsubq_u8): Remove.
9960 (vqsubq_n_u8): Remove.
9961 (vqaddq_u8): Remove.
9962 (vqaddq_n_u8): Remove.
9963 (vqsubq_s8): Remove.
9964 (vqsubq_n_s8): Remove.
9965 (vqaddq_s8): Remove.
9966 (vqaddq_n_s8): Remove.
9967 (vqsubq_u16): Remove.
9968 (vqsubq_n_u16): Remove.
9969 (vqaddq_u16): Remove.
9970 (vqaddq_n_u16): Remove.
9971 (vqsubq_s16): Remove.
9972 (vqsubq_n_s16): Remove.
9973 (vqaddq_s16): Remove.
9974 (vqaddq_n_s16): Remove.
9975 (vqsubq_u32): Remove.
9976 (vqsubq_n_u32): Remove.
9977 (vqaddq_u32): Remove.
9978 (vqaddq_n_u32): Remove.
9979 (vqsubq_s32): Remove.
9980 (vqsubq_n_s32): Remove.
9981 (vqaddq_s32): Remove.
9982 (vqaddq_n_s32): Remove.
9983 (vqaddq_m_n_s8): Remove.
9984 (vqaddq_m_n_s32): Remove.
9985 (vqaddq_m_n_s16): Remove.
9986 (vqaddq_m_n_u8): Remove.
9987 (vqaddq_m_n_u32): Remove.
9988 (vqaddq_m_n_u16): Remove.
9989 (vqaddq_m_s8): Remove.
9990 (vqaddq_m_s32): Remove.
9991 (vqaddq_m_s16): Remove.
9992 (vqaddq_m_u8): Remove.
9993 (vqaddq_m_u32): Remove.
9994 (vqaddq_m_u16): Remove.
9995 (vqsubq_m_n_s8): Remove.
9996 (vqsubq_m_n_s32): Remove.
9997 (vqsubq_m_n_s16): Remove.
9998 (vqsubq_m_n_u8): Remove.
9999 (vqsubq_m_n_u32): Remove.
10000 (vqsubq_m_n_u16): Remove.
10001 (vqsubq_m_s8): Remove.
10002 (vqsubq_m_s32): Remove.
10003 (vqsubq_m_s16): Remove.
10004 (vqsubq_m_u8): Remove.
10005 (vqsubq_m_u32): Remove.
10006 (vqsubq_m_u16): Remove.
10007 (__arm_vqsubq_u8): Remove.
10008 (__arm_vqsubq_n_u8): Remove.
10009 (__arm_vqaddq_u8): Remove.
10010 (__arm_vqaddq_n_u8): Remove.
10011 (__arm_vqsubq_s8): Remove.
10012 (__arm_vqsubq_n_s8): Remove.
10013 (__arm_vqaddq_s8): Remove.
10014 (__arm_vqaddq_n_s8): Remove.
10015 (__arm_vqsubq_u16): Remove.
10016 (__arm_vqsubq_n_u16): Remove.
10017 (__arm_vqaddq_u16): Remove.
10018 (__arm_vqaddq_n_u16): Remove.
10019 (__arm_vqsubq_s16): Remove.
10020 (__arm_vqsubq_n_s16): Remove.
10021 (__arm_vqaddq_s16): Remove.
10022 (__arm_vqaddq_n_s16): Remove.
10023 (__arm_vqsubq_u32): Remove.
10024 (__arm_vqsubq_n_u32): Remove.
10025 (__arm_vqaddq_u32): Remove.
10026 (__arm_vqaddq_n_u32): Remove.
10027 (__arm_vqsubq_s32): Remove.
10028 (__arm_vqsubq_n_s32): Remove.
10029 (__arm_vqaddq_s32): Remove.
10030 (__arm_vqaddq_n_s32): Remove.
10031 (__arm_vqaddq_m_n_s8): Remove.
10032 (__arm_vqaddq_m_n_s32): Remove.
10033 (__arm_vqaddq_m_n_s16): Remove.
10034 (__arm_vqaddq_m_n_u8): Remove.
10035 (__arm_vqaddq_m_n_u32): Remove.
10036 (__arm_vqaddq_m_n_u16): Remove.
10037 (__arm_vqaddq_m_s8): Remove.
10038 (__arm_vqaddq_m_s32): Remove.
10039 (__arm_vqaddq_m_s16): Remove.
10040 (__arm_vqaddq_m_u8): Remove.
10041 (__arm_vqaddq_m_u32): Remove.
10042 (__arm_vqaddq_m_u16): Remove.
10043 (__arm_vqsubq_m_n_s8): Remove.
10044 (__arm_vqsubq_m_n_s32): Remove.
10045 (__arm_vqsubq_m_n_s16): Remove.
10046 (__arm_vqsubq_m_n_u8): Remove.
10047 (__arm_vqsubq_m_n_u32): Remove.
10048 (__arm_vqsubq_m_n_u16): Remove.
10049 (__arm_vqsubq_m_s8): Remove.
10050 (__arm_vqsubq_m_s32): Remove.
10051 (__arm_vqsubq_m_s16): Remove.
10052 (__arm_vqsubq_m_u8): Remove.
10053 (__arm_vqsubq_m_u32): Remove.
10054 (__arm_vqsubq_m_u16): Remove.
10055 (__arm_vqsubq): Remove.
10056 (__arm_vqaddq): Remove.
10057 (__arm_vqaddq_m): Remove.
10058 (__arm_vqsubq_m): Remove.
10059 (vqdmulhq): Remove.
10060 (vqdmulhq_m): Remove.
10061 (vqdmulhq_s8): Remove.
10062 (vqdmulhq_n_s8): Remove.
10063 (vqdmulhq_s16): Remove.
10064 (vqdmulhq_n_s16): Remove.
10065 (vqdmulhq_s32): Remove.
10066 (vqdmulhq_n_s32): Remove.
10067 (vqdmulhq_m_n_s8): Remove.
10068 (vqdmulhq_m_n_s32): Remove.
10069 (vqdmulhq_m_n_s16): Remove.
10070 (vqdmulhq_m_s8): Remove.
10071 (vqdmulhq_m_s32): Remove.
10072 (vqdmulhq_m_s16): Remove.
10073 (__arm_vqdmulhq_s8): Remove.
10074 (__arm_vqdmulhq_n_s8): Remove.
10075 (__arm_vqdmulhq_s16): Remove.
10076 (__arm_vqdmulhq_n_s16): Remove.
10077 (__arm_vqdmulhq_s32): Remove.
10078 (__arm_vqdmulhq_n_s32): Remove.
10079 (__arm_vqdmulhq_m_n_s8): Remove.
10080 (__arm_vqdmulhq_m_n_s32): Remove.
10081 (__arm_vqdmulhq_m_n_s16): Remove.
10082 (__arm_vqdmulhq_m_s8): Remove.
10083 (__arm_vqdmulhq_m_s32): Remove.
10084 (__arm_vqdmulhq_m_s16): Remove.
10085 (__arm_vqdmulhq): Remove.
10086 (__arm_vqdmulhq_m): Remove.
10087 (vrhaddq): Remove.
10088 (vrhaddq_m): Remove.
10089 (vrhaddq_x): Remove.
10090 (vrhaddq_u8): Remove.
10091 (vrhaddq_s8): Remove.
10092 (vrhaddq_u16): Remove.
10093 (vrhaddq_s16): Remove.
10094 (vrhaddq_u32): Remove.
10095 (vrhaddq_s32): Remove.
10096 (vrhaddq_m_s8): Remove.
10097 (vrhaddq_m_s32): Remove.
10098 (vrhaddq_m_s16): Remove.
10099 (vrhaddq_m_u8): Remove.
10100 (vrhaddq_m_u32): Remove.
10101 (vrhaddq_m_u16): Remove.
10102 (vrhaddq_x_s8): Remove.
10103 (vrhaddq_x_s16): Remove.
10104 (vrhaddq_x_s32): Remove.
10105 (vrhaddq_x_u8): Remove.
10106 (vrhaddq_x_u16): Remove.
10107 (vrhaddq_x_u32): Remove.
10108 (__arm_vrhaddq_u8): Remove.
10109 (__arm_vrhaddq_s8): Remove.
10110 (__arm_vrhaddq_u16): Remove.
10111 (__arm_vrhaddq_s16): Remove.
10112 (__arm_vrhaddq_u32): Remove.
10113 (__arm_vrhaddq_s32): Remove.
10114 (__arm_vrhaddq_m_s8): Remove.
10115 (__arm_vrhaddq_m_s32): Remove.
10116 (__arm_vrhaddq_m_s16): Remove.
10117 (__arm_vrhaddq_m_u8): Remove.
10118 (__arm_vrhaddq_m_u32): Remove.
10119 (__arm_vrhaddq_m_u16): Remove.
10120 (__arm_vrhaddq_x_s8): Remove.
10121 (__arm_vrhaddq_x_s16): Remove.
10122 (__arm_vrhaddq_x_s32): Remove.
10123 (__arm_vrhaddq_x_u8): Remove.
10124 (__arm_vrhaddq_x_u16): Remove.
10125 (__arm_vrhaddq_x_u32): Remove.
10126 (__arm_vrhaddq): Remove.
10127 (__arm_vrhaddq_m): Remove.
10128 (__arm_vrhaddq_x): Remove.
10129 (vrmulhq): Remove.
10130 (vrmulhq_m): Remove.
10131 (vrmulhq_x): Remove.
10132 (vrmulhq_u8): Remove.
10133 (vrmulhq_s8): Remove.
10134 (vrmulhq_u16): Remove.
10135 (vrmulhq_s16): Remove.
10136 (vrmulhq_u32): Remove.
10137 (vrmulhq_s32): Remove.
10138 (vrmulhq_m_s8): Remove.
10139 (vrmulhq_m_s32): Remove.
10140 (vrmulhq_m_s16): Remove.
10141 (vrmulhq_m_u8): Remove.
10142 (vrmulhq_m_u32): Remove.
10143 (vrmulhq_m_u16): Remove.
10144 (vrmulhq_x_s8): Remove.
10145 (vrmulhq_x_s16): Remove.
10146 (vrmulhq_x_s32): Remove.
10147 (vrmulhq_x_u8): Remove.
10148 (vrmulhq_x_u16): Remove.
10149 (vrmulhq_x_u32): Remove.
10150 (__arm_vrmulhq_u8): Remove.
10151 (__arm_vrmulhq_s8): Remove.
10152 (__arm_vrmulhq_u16): Remove.
10153 (__arm_vrmulhq_s16): Remove.
10154 (__arm_vrmulhq_u32): Remove.
10155 (__arm_vrmulhq_s32): Remove.
10156 (__arm_vrmulhq_m_s8): Remove.
10157 (__arm_vrmulhq_m_s32): Remove.
10158 (__arm_vrmulhq_m_s16): Remove.
10159 (__arm_vrmulhq_m_u8): Remove.
10160 (__arm_vrmulhq_m_u32): Remove.
10161 (__arm_vrmulhq_m_u16): Remove.
10162 (__arm_vrmulhq_x_s8): Remove.
10163 (__arm_vrmulhq_x_s16): Remove.
10164 (__arm_vrmulhq_x_s32): Remove.
10165 (__arm_vrmulhq_x_u8): Remove.
10166 (__arm_vrmulhq_x_u16): Remove.
10167 (__arm_vrmulhq_x_u32): Remove.
10168 (__arm_vrmulhq): Remove.
10169 (__arm_vrmulhq_m): Remove.
10170 (__arm_vrmulhq_x): Remove.
10171
10172 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10173
10174 * config/arm/iterators.md (MVE_INT_SU_BINARY): New.
10175 (mve_insn): Add vabdq, vhaddq, vhsubq, vmulhq, vqaddq, vqdmulhq,
10176 vqrdmulhq, vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq.
10177 (supf): Add VQDMULHQ_S, VQRDMULHQ_S.
10178 * config/arm/mve.md (mve_vabdq_<supf><mode>)
10179 (@mve_vhaddq_<supf><mode>, mve_vhsubq_<supf><mode>)
10180 (mve_vmulhq_<supf><mode>, mve_vqaddq_<supf><mode>)
10181 (mve_vqdmulhq_s<mode>, mve_vqrdmulhq_s<mode>)
10182 (mve_vqrshlq_<supf><mode>, mve_vqshlq_<supf><mode>)
10183 (mve_vqsubq_<supf><mode>, @mve_vrhaddq_<supf><mode>)
10184 (mve_vrmulhq_<supf><mode>, mve_vrshlq_<supf><mode>): Merge into
10185 ...
10186 (@mve_<mve_insn>q_<supf><mode>): ... this.
10187 * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
10188 (avg<mode>3_ceil, uavg<mode>3_ceil): Use gen_mve_q instead of
10189 gen_mve_vhaddq / gen_mve_vrhaddq.
10190
10191 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10192
10193 * config/arm/iterators.md (MVE_INT_SU_M_N_BINARY): New.
10194 (mve_insn): Add vhaddq, vhsubq, vmlaq, vmlasq, vqaddq, vqdmlahq,
10195 vqdmlashq, vqdmulhq, vqrdmlahq, vqrdmlashq, vqrdmulhq, vqsubq.
10196 (supf): Add VQDMLAHQ_M_N_S, VQDMLASHQ_M_N_S, VQRDMLAHQ_M_N_S,
10197 VQRDMLASHQ_M_N_S, VQDMULHQ_M_N_S, VQRDMULHQ_M_N_S.
10198 * config/arm/mve.md (mve_vhaddq_m_n_<supf><mode>)
10199 (mve_vhsubq_m_n_<supf><mode>, mve_vmlaq_m_n_<supf><mode>)
10200 (mve_vmlasq_m_n_<supf><mode>, mve_vqaddq_m_n_<supf><mode>)
10201 (mve_vqdmlahq_m_n_s<mode>, mve_vqdmlashq_m_n_s<mode>)
10202 (mve_vqrdmlahq_m_n_s<mode>, mve_vqrdmlashq_m_n_s<mode>)
10203 (mve_vqsubq_m_n_<supf><mode>, mve_vqdmulhq_m_n_s<mode>)
10204 (mve_vqrdmulhq_m_n_s<mode>): Merge into ...
10205 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
10206
10207 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10208
10209 * config/arm/iterators.md (MVE_INT_SU_N_BINARY): New.
10210 (mve_insn): Add vhaddq, vhsubq, vqaddq, vqdmulhq, vqrdmulhq,
10211 vqsubq.
10212 (supf): Add VQDMULHQ_N_S, VQRDMULHQ_N_S.
10213 * config/arm/mve.md (mve_vhaddq_n_<supf><mode>)
10214 (mve_vhsubq_n_<supf><mode>, mve_vqaddq_n_<supf><mode>)
10215 (mve_vqdmulhq_n_s<mode>, mve_vqrdmulhq_n_s<mode>)
10216 (mve_vqsubq_n_<supf><mode>): Merge into ...
10217 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
10218
10219 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10220
10221 * config/arm/iterators.md (MVE_INT_SU_M_BINARY): New.
10222 (mve_insn): Add vabdq, vhaddq, vhsubq, vmaxq, vminq, vmulhq,
10223 vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq, vqdmulhq,
10224 vqrdmladhq, vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq, vqrdmulhq,
10225 vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq, vshlq.
10226 (supf): Add VQDMLADHQ_M_S, VQDMLADHXQ_M_S, VQDMLSDHQ_M_S,
10227 VQDMLSDHXQ_M_S, VQDMULHQ_M_S, VQRDMLADHQ_M_S, VQRDMLADHXQ_M_S,
10228 VQRDMLSDHQ_M_S, VQRDMLSDHXQ_M_S, VQRDMULHQ_M_S.
10229 * config/arm/mve.md (@mve_<mve_insn>q_m_<supf><mode>): New.
10230 (mve_vshlq_m_<supf><mode>): Merged into
10231 @mve_<mve_insn>q_m_<supf><mode>.
10232 (mve_vabdq_m_<supf><mode>): Likewise.
10233 (mve_vhaddq_m_<supf><mode>): Likewise.
10234 (mve_vhsubq_m_<supf><mode>): Likewise.
10235 (mve_vmaxq_m_<supf><mode>): Likewise.
10236 (mve_vminq_m_<supf><mode>): Likewise.
10237 (mve_vmulhq_m_<supf><mode>): Likewise.
10238 (mve_vqaddq_m_<supf><mode>): Likewise.
10239 (mve_vqrshlq_m_<supf><mode>): Likewise.
10240 (mve_vqshlq_m_<supf><mode>): Likewise.
10241 (mve_vqsubq_m_<supf><mode>): Likewise.
10242 (mve_vrhaddq_m_<supf><mode>): Likewise.
10243 (mve_vrmulhq_m_<supf><mode>): Likewise.
10244 (mve_vrshlq_m_<supf><mode>): Likewise.
10245 (mve_vqdmladhq_m_s<mode>): Likewise.
10246 (mve_vqdmladhxq_m_s<mode>): Likewise.
10247 (mve_vqdmlsdhq_m_s<mode>): Likewise.
10248 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
10249 (mve_vqdmulhq_m_s<mode>): Likewise.
10250 (mve_vqrdmladhq_m_s<mode>): Likewise.
10251 (mve_vqrdmladhxq_m_s<mode>): Likewise.
10252 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
10253 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
10254 (mve_vqrdmulhq_m_s<mode>): Likewise.
10255
10256 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10257
10258 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_M_N): New. (vcreateq): New.
10259 * config/arm/arm-mve-builtins-base.def (vcreateq): New.
10260 * config/arm/arm-mve-builtins-base.h (vcreateq): New.
10261 * config/arm/arm_mve.h (vcreateq_f16): Remove.
10262 (vcreateq_f32): Remove.
10263 (vcreateq_u8): Remove.
10264 (vcreateq_u16): Remove.
10265 (vcreateq_u32): Remove.
10266 (vcreateq_u64): Remove.
10267 (vcreateq_s8): Remove.
10268 (vcreateq_s16): Remove.
10269 (vcreateq_s32): Remove.
10270 (vcreateq_s64): Remove.
10271 (__arm_vcreateq_u8): Remove.
10272 (__arm_vcreateq_u16): Remove.
10273 (__arm_vcreateq_u32): Remove.
10274 (__arm_vcreateq_u64): Remove.
10275 (__arm_vcreateq_s8): Remove.
10276 (__arm_vcreateq_s16): Remove.
10277 (__arm_vcreateq_s32): Remove.
10278 (__arm_vcreateq_s64): Remove.
10279 (__arm_vcreateq_f16): Remove.
10280 (__arm_vcreateq_f32): Remove.
10281
10282 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10283
10284 * config/arm/iterators.md (MVE_FP_CREATE_ONLY): New.
10285 (mve_insn): Add VCREATEQ_S, VCREATEQ_U, VCREATEQ_F.
10286 * config/arm/mve.md (mve_vcreateq_f<mode>): Rename into ...
10287 (@mve_<mve_insn>q_f<mode>): ... this.
10288 (mve_vcreateq_<supf><mode>): Rename into ...
10289 (@mve_<mve_insn>q_<supf><mode>): ... this.
10290
10291 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10292
10293 * config/arm/arm-mve-builtins-shapes.cc (create): New.
10294 * config/arm/arm-mve-builtins-shapes.h: (create): New.
10295
10296 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10297
10298 * config/arm/arm-mve-builtins-functions.h (class
10299 unspec_mve_function_exact_insn): New.
10300
10301 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10302
10303 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N_NO_N_F): New.
10304 (vorrq): New.
10305 * config/arm/arm-mve-builtins-base.def (vorrq): New.
10306 * config/arm/arm-mve-builtins-base.h (vorrq): New.
10307 * config/arm/arm-mve-builtins.cc
10308 (function_instance::has_inactive_argument): Handle vorrq.
10309 * config/arm/arm_mve.h (vorrq): Remove.
10310 (vorrq_m_n): Remove.
10311 (vorrq_m): Remove.
10312 (vorrq_x): Remove.
10313 (vorrq_u8): Remove.
10314 (vorrq_s8): Remove.
10315 (vorrq_u16): Remove.
10316 (vorrq_s16): Remove.
10317 (vorrq_u32): Remove.
10318 (vorrq_s32): Remove.
10319 (vorrq_n_u16): Remove.
10320 (vorrq_f16): Remove.
10321 (vorrq_n_s16): Remove.
10322 (vorrq_n_u32): Remove.
10323 (vorrq_f32): Remove.
10324 (vorrq_n_s32): Remove.
10325 (vorrq_m_n_s16): Remove.
10326 (vorrq_m_n_u16): Remove.
10327 (vorrq_m_n_s32): Remove.
10328 (vorrq_m_n_u32): Remove.
10329 (vorrq_m_s8): Remove.
10330 (vorrq_m_s32): Remove.
10331 (vorrq_m_s16): Remove.
10332 (vorrq_m_u8): Remove.
10333 (vorrq_m_u32): Remove.
10334 (vorrq_m_u16): Remove.
10335 (vorrq_m_f32): Remove.
10336 (vorrq_m_f16): Remove.
10337 (vorrq_x_s8): Remove.
10338 (vorrq_x_s16): Remove.
10339 (vorrq_x_s32): Remove.
10340 (vorrq_x_u8): Remove.
10341 (vorrq_x_u16): Remove.
10342 (vorrq_x_u32): Remove.
10343 (vorrq_x_f16): Remove.
10344 (vorrq_x_f32): Remove.
10345 (__arm_vorrq_u8): Remove.
10346 (__arm_vorrq_s8): Remove.
10347 (__arm_vorrq_u16): Remove.
10348 (__arm_vorrq_s16): Remove.
10349 (__arm_vorrq_u32): Remove.
10350 (__arm_vorrq_s32): Remove.
10351 (__arm_vorrq_n_u16): Remove.
10352 (__arm_vorrq_n_s16): Remove.
10353 (__arm_vorrq_n_u32): Remove.
10354 (__arm_vorrq_n_s32): Remove.
10355 (__arm_vorrq_m_n_s16): Remove.
10356 (__arm_vorrq_m_n_u16): Remove.
10357 (__arm_vorrq_m_n_s32): Remove.
10358 (__arm_vorrq_m_n_u32): Remove.
10359 (__arm_vorrq_m_s8): Remove.
10360 (__arm_vorrq_m_s32): Remove.
10361 (__arm_vorrq_m_s16): Remove.
10362 (__arm_vorrq_m_u8): Remove.
10363 (__arm_vorrq_m_u32): Remove.
10364 (__arm_vorrq_m_u16): Remove.
10365 (__arm_vorrq_x_s8): Remove.
10366 (__arm_vorrq_x_s16): Remove.
10367 (__arm_vorrq_x_s32): Remove.
10368 (__arm_vorrq_x_u8): Remove.
10369 (__arm_vorrq_x_u16): Remove.
10370 (__arm_vorrq_x_u32): Remove.
10371 (__arm_vorrq_f16): Remove.
10372 (__arm_vorrq_f32): Remove.
10373 (__arm_vorrq_m_f32): Remove.
10374 (__arm_vorrq_m_f16): Remove.
10375 (__arm_vorrq_x_f16): Remove.
10376 (__arm_vorrq_x_f32): Remove.
10377 (__arm_vorrq): Remove.
10378 (__arm_vorrq_m_n): Remove.
10379 (__arm_vorrq_m): Remove.
10380 (__arm_vorrq_x): Remove.
10381
10382 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10383
10384 * config/arm/arm-mve-builtins-shapes.cc (binary_orrq): New.
10385 * config/arm/arm-mve-builtins-shapes.h (binary_orrq): New.
10386 * config/arm/arm-mve-builtins.cc (preds_m_or_none): Remove static.
10387 * config/arm/arm-mve-builtins.h (preds_m_or_none): Declare.
10388
10389 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10390
10391 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M): New.
10392 (vandq,veorq): New.
10393 * config/arm/arm-mve-builtins-base.def (vandq, veorq): New.
10394 * config/arm/arm-mve-builtins-base.h (vandq, veorq): New.
10395 * config/arm/arm_mve.h (vandq): Remove.
10396 (vandq_m): Remove.
10397 (vandq_x): Remove.
10398 (vandq_u8): Remove.
10399 (vandq_s8): Remove.
10400 (vandq_u16): Remove.
10401 (vandq_s16): Remove.
10402 (vandq_u32): Remove.
10403 (vandq_s32): Remove.
10404 (vandq_f16): Remove.
10405 (vandq_f32): Remove.
10406 (vandq_m_s8): Remove.
10407 (vandq_m_s32): Remove.
10408 (vandq_m_s16): Remove.
10409 (vandq_m_u8): Remove.
10410 (vandq_m_u32): Remove.
10411 (vandq_m_u16): Remove.
10412 (vandq_m_f32): Remove.
10413 (vandq_m_f16): Remove.
10414 (vandq_x_s8): Remove.
10415 (vandq_x_s16): Remove.
10416 (vandq_x_s32): Remove.
10417 (vandq_x_u8): Remove.
10418 (vandq_x_u16): Remove.
10419 (vandq_x_u32): Remove.
10420 (vandq_x_f16): Remove.
10421 (vandq_x_f32): Remove.
10422 (__arm_vandq_u8): Remove.
10423 (__arm_vandq_s8): Remove.
10424 (__arm_vandq_u16): Remove.
10425 (__arm_vandq_s16): Remove.
10426 (__arm_vandq_u32): Remove.
10427 (__arm_vandq_s32): Remove.
10428 (__arm_vandq_m_s8): Remove.
10429 (__arm_vandq_m_s32): Remove.
10430 (__arm_vandq_m_s16): Remove.
10431 (__arm_vandq_m_u8): Remove.
10432 (__arm_vandq_m_u32): Remove.
10433 (__arm_vandq_m_u16): Remove.
10434 (__arm_vandq_x_s8): Remove.
10435 (__arm_vandq_x_s16): Remove.
10436 (__arm_vandq_x_s32): Remove.
10437 (__arm_vandq_x_u8): Remove.
10438 (__arm_vandq_x_u16): Remove.
10439 (__arm_vandq_x_u32): Remove.
10440 (__arm_vandq_f16): Remove.
10441 (__arm_vandq_f32): Remove.
10442 (__arm_vandq_m_f32): Remove.
10443 (__arm_vandq_m_f16): Remove.
10444 (__arm_vandq_x_f16): Remove.
10445 (__arm_vandq_x_f32): Remove.
10446 (__arm_vandq): Remove.
10447 (__arm_vandq_m): Remove.
10448 (__arm_vandq_x): Remove.
10449 (veorq_m): Remove.
10450 (veorq_x): Remove.
10451 (veorq_u8): Remove.
10452 (veorq_s8): Remove.
10453 (veorq_u16): Remove.
10454 (veorq_s16): Remove.
10455 (veorq_u32): Remove.
10456 (veorq_s32): Remove.
10457 (veorq_f16): Remove.
10458 (veorq_f32): Remove.
10459 (veorq_m_s8): Remove.
10460 (veorq_m_s32): Remove.
10461 (veorq_m_s16): Remove.
10462 (veorq_m_u8): Remove.
10463 (veorq_m_u32): Remove.
10464 (veorq_m_u16): Remove.
10465 (veorq_m_f32): Remove.
10466 (veorq_m_f16): Remove.
10467 (veorq_x_s8): Remove.
10468 (veorq_x_s16): Remove.
10469 (veorq_x_s32): Remove.
10470 (veorq_x_u8): Remove.
10471 (veorq_x_u16): Remove.
10472 (veorq_x_u32): Remove.
10473 (veorq_x_f16): Remove.
10474 (veorq_x_f32): Remove.
10475 (__arm_veorq_u8): Remove.
10476 (__arm_veorq_s8): Remove.
10477 (__arm_veorq_u16): Remove.
10478 (__arm_veorq_s16): Remove.
10479 (__arm_veorq_u32): Remove.
10480 (__arm_veorq_s32): Remove.
10481 (__arm_veorq_m_s8): Remove.
10482 (__arm_veorq_m_s32): Remove.
10483 (__arm_veorq_m_s16): Remove.
10484 (__arm_veorq_m_u8): Remove.
10485 (__arm_veorq_m_u32): Remove.
10486 (__arm_veorq_m_u16): Remove.
10487 (__arm_veorq_x_s8): Remove.
10488 (__arm_veorq_x_s16): Remove.
10489 (__arm_veorq_x_s32): Remove.
10490 (__arm_veorq_x_u8): Remove.
10491 (__arm_veorq_x_u16): Remove.
10492 (__arm_veorq_x_u32): Remove.
10493 (__arm_veorq_f16): Remove.
10494 (__arm_veorq_f32): Remove.
10495 (__arm_veorq_m_f32): Remove.
10496 (__arm_veorq_m_f16): Remove.
10497 (__arm_veorq_x_f16): Remove.
10498 (__arm_veorq_x_f32): Remove.
10499 (__arm_veorq): Remove.
10500 (__arm_veorq_m): Remove.
10501 (__arm_veorq_x): Remove.
10502
10503 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10504
10505 * config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC)
10506 (MVE_FP_M_BINARY_LOGIC): New.
10507 (MVE_INT_M_N_BINARY_LOGIC): New.
10508 (MVE_INT_N_BINARY_LOGIC): New.
10509 (mve_insn): Add vand, veor, vorr, vbic.
10510 * config/arm/mve.md (mve_vandq_m_<supf><mode>)
10511 (mve_veorq_m_<supf><mode>, mve_vorrq_m_<supf><mode>)
10512 (mve_vbicq_m_<supf><mode>): Merge into ...
10513 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
10514 (mve_vandq_m_f<mode>, mve_veorq_m_f<mode>, mve_vorrq_m_f<mode>)
10515 (mve_vbicq_m_f<mode>): Merge into ...
10516 (@mve_<mve_insn>q_m_f<mode>): ... this.
10517 (mve_vorrq_n_<supf><mode>)
10518 (mve_vbicq_n_<supf><mode>): Merge into ...
10519 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
10520 (mve_vorrq_m_n_<supf><mode>, mve_vbicq_m_n_<supf><mode>): Merge
10521 into ...
10522 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
10523
10524 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10525
10526 * config/arm/arm-mve-builtins-shapes.cc (binary): New.
10527 * config/arm/arm-mve-builtins-shapes.h (binary): New.
10528
10529 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10530
10531 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N):
10532 New.
10533 (vaddq, vmulq, vsubq): New.
10534 * config/arm/arm-mve-builtins-base.def (vaddq, vmulq, vsubq): New.
10535 * config/arm/arm-mve-builtins-base.h (vaddq, vmulq, vsubq): New.
10536 * config/arm/arm_mve.h (vaddq): Remove.
10537 (vaddq_m): Remove.
10538 (vaddq_x): Remove.
10539 (vaddq_n_u8): Remove.
10540 (vaddq_n_s8): Remove.
10541 (vaddq_n_u16): Remove.
10542 (vaddq_n_s16): Remove.
10543 (vaddq_n_u32): Remove.
10544 (vaddq_n_s32): Remove.
10545 (vaddq_n_f16): Remove.
10546 (vaddq_n_f32): Remove.
10547 (vaddq_m_n_s8): Remove.
10548 (vaddq_m_n_s32): Remove.
10549 (vaddq_m_n_s16): Remove.
10550 (vaddq_m_n_u8): Remove.
10551 (vaddq_m_n_u32): Remove.
10552 (vaddq_m_n_u16): Remove.
10553 (vaddq_m_s8): Remove.
10554 (vaddq_m_s32): Remove.
10555 (vaddq_m_s16): Remove.
10556 (vaddq_m_u8): Remove.
10557 (vaddq_m_u32): Remove.
10558 (vaddq_m_u16): Remove.
10559 (vaddq_m_f32): Remove.
10560 (vaddq_m_f16): Remove.
10561 (vaddq_m_n_f32): Remove.
10562 (vaddq_m_n_f16): Remove.
10563 (vaddq_s8): Remove.
10564 (vaddq_s16): Remove.
10565 (vaddq_s32): Remove.
10566 (vaddq_u8): Remove.
10567 (vaddq_u16): Remove.
10568 (vaddq_u32): Remove.
10569 (vaddq_f16): Remove.
10570 (vaddq_f32): Remove.
10571 (vaddq_x_s8): Remove.
10572 (vaddq_x_s16): Remove.
10573 (vaddq_x_s32): Remove.
10574 (vaddq_x_n_s8): Remove.
10575 (vaddq_x_n_s16): Remove.
10576 (vaddq_x_n_s32): Remove.
10577 (vaddq_x_u8): Remove.
10578 (vaddq_x_u16): Remove.
10579 (vaddq_x_u32): Remove.
10580 (vaddq_x_n_u8): Remove.
10581 (vaddq_x_n_u16): Remove.
10582 (vaddq_x_n_u32): Remove.
10583 (vaddq_x_f16): Remove.
10584 (vaddq_x_f32): Remove.
10585 (vaddq_x_n_f16): Remove.
10586 (vaddq_x_n_f32): Remove.
10587 (__arm_vaddq_n_u8): Remove.
10588 (__arm_vaddq_n_s8): Remove.
10589 (__arm_vaddq_n_u16): Remove.
10590 (__arm_vaddq_n_s16): Remove.
10591 (__arm_vaddq_n_u32): Remove.
10592 (__arm_vaddq_n_s32): Remove.
10593 (__arm_vaddq_m_n_s8): Remove.
10594 (__arm_vaddq_m_n_s32): Remove.
10595 (__arm_vaddq_m_n_s16): Remove.
10596 (__arm_vaddq_m_n_u8): Remove.
10597 (__arm_vaddq_m_n_u32): Remove.
10598 (__arm_vaddq_m_n_u16): Remove.
10599 (__arm_vaddq_m_s8): Remove.
10600 (__arm_vaddq_m_s32): Remove.
10601 (__arm_vaddq_m_s16): Remove.
10602 (__arm_vaddq_m_u8): Remove.
10603 (__arm_vaddq_m_u32): Remove.
10604 (__arm_vaddq_m_u16): Remove.
10605 (__arm_vaddq_s8): Remove.
10606 (__arm_vaddq_s16): Remove.
10607 (__arm_vaddq_s32): Remove.
10608 (__arm_vaddq_u8): Remove.
10609 (__arm_vaddq_u16): Remove.
10610 (__arm_vaddq_u32): Remove.
10611 (__arm_vaddq_x_s8): Remove.
10612 (__arm_vaddq_x_s16): Remove.
10613 (__arm_vaddq_x_s32): Remove.
10614 (__arm_vaddq_x_n_s8): Remove.
10615 (__arm_vaddq_x_n_s16): Remove.
10616 (__arm_vaddq_x_n_s32): Remove.
10617 (__arm_vaddq_x_u8): Remove.
10618 (__arm_vaddq_x_u16): Remove.
10619 (__arm_vaddq_x_u32): Remove.
10620 (__arm_vaddq_x_n_u8): Remove.
10621 (__arm_vaddq_x_n_u16): Remove.
10622 (__arm_vaddq_x_n_u32): Remove.
10623 (__arm_vaddq_n_f16): Remove.
10624 (__arm_vaddq_n_f32): Remove.
10625 (__arm_vaddq_m_f32): Remove.
10626 (__arm_vaddq_m_f16): Remove.
10627 (__arm_vaddq_m_n_f32): Remove.
10628 (__arm_vaddq_m_n_f16): Remove.
10629 (__arm_vaddq_f16): Remove.
10630 (__arm_vaddq_f32): Remove.
10631 (__arm_vaddq_x_f16): Remove.
10632 (__arm_vaddq_x_f32): Remove.
10633 (__arm_vaddq_x_n_f16): Remove.
10634 (__arm_vaddq_x_n_f32): Remove.
10635 (__arm_vaddq): Remove.
10636 (__arm_vaddq_m): Remove.
10637 (__arm_vaddq_x): Remove.
10638 (vmulq): Remove.
10639 (vmulq_m): Remove.
10640 (vmulq_x): Remove.
10641 (vmulq_u8): Remove.
10642 (vmulq_n_u8): Remove.
10643 (vmulq_s8): Remove.
10644 (vmulq_n_s8): Remove.
10645 (vmulq_u16): Remove.
10646 (vmulq_n_u16): Remove.
10647 (vmulq_s16): Remove.
10648 (vmulq_n_s16): Remove.
10649 (vmulq_u32): Remove.
10650 (vmulq_n_u32): Remove.
10651 (vmulq_s32): Remove.
10652 (vmulq_n_s32): Remove.
10653 (vmulq_n_f16): Remove.
10654 (vmulq_f16): Remove.
10655 (vmulq_n_f32): Remove.
10656 (vmulq_f32): Remove.
10657 (vmulq_m_n_s8): Remove.
10658 (vmulq_m_n_s32): Remove.
10659 (vmulq_m_n_s16): Remove.
10660 (vmulq_m_n_u8): Remove.
10661 (vmulq_m_n_u32): Remove.
10662 (vmulq_m_n_u16): Remove.
10663 (vmulq_m_s8): Remove.
10664 (vmulq_m_s32): Remove.
10665 (vmulq_m_s16): Remove.
10666 (vmulq_m_u8): Remove.
10667 (vmulq_m_u32): Remove.
10668 (vmulq_m_u16): Remove.
10669 (vmulq_m_f32): Remove.
10670 (vmulq_m_f16): Remove.
10671 (vmulq_m_n_f32): Remove.
10672 (vmulq_m_n_f16): Remove.
10673 (vmulq_x_s8): Remove.
10674 (vmulq_x_s16): Remove.
10675 (vmulq_x_s32): Remove.
10676 (vmulq_x_n_s8): Remove.
10677 (vmulq_x_n_s16): Remove.
10678 (vmulq_x_n_s32): Remove.
10679 (vmulq_x_u8): Remove.
10680 (vmulq_x_u16): Remove.
10681 (vmulq_x_u32): Remove.
10682 (vmulq_x_n_u8): Remove.
10683 (vmulq_x_n_u16): Remove.
10684 (vmulq_x_n_u32): Remove.
10685 (vmulq_x_f16): Remove.
10686 (vmulq_x_f32): Remove.
10687 (vmulq_x_n_f16): Remove.
10688 (vmulq_x_n_f32): Remove.
10689 (__arm_vmulq_u8): Remove.
10690 (__arm_vmulq_n_u8): Remove.
10691 (__arm_vmulq_s8): Remove.
10692 (__arm_vmulq_n_s8): Remove.
10693 (__arm_vmulq_u16): Remove.
10694 (__arm_vmulq_n_u16): Remove.
10695 (__arm_vmulq_s16): Remove.
10696 (__arm_vmulq_n_s16): Remove.
10697 (__arm_vmulq_u32): Remove.
10698 (__arm_vmulq_n_u32): Remove.
10699 (__arm_vmulq_s32): Remove.
10700 (__arm_vmulq_n_s32): Remove.
10701 (__arm_vmulq_m_n_s8): Remove.
10702 (__arm_vmulq_m_n_s32): Remove.
10703 (__arm_vmulq_m_n_s16): Remove.
10704 (__arm_vmulq_m_n_u8): Remove.
10705 (__arm_vmulq_m_n_u32): Remove.
10706 (__arm_vmulq_m_n_u16): Remove.
10707 (__arm_vmulq_m_s8): Remove.
10708 (__arm_vmulq_m_s32): Remove.
10709 (__arm_vmulq_m_s16): Remove.
10710 (__arm_vmulq_m_u8): Remove.
10711 (__arm_vmulq_m_u32): Remove.
10712 (__arm_vmulq_m_u16): Remove.
10713 (__arm_vmulq_x_s8): Remove.
10714 (__arm_vmulq_x_s16): Remove.
10715 (__arm_vmulq_x_s32): Remove.
10716 (__arm_vmulq_x_n_s8): Remove.
10717 (__arm_vmulq_x_n_s16): Remove.
10718 (__arm_vmulq_x_n_s32): Remove.
10719 (__arm_vmulq_x_u8): Remove.
10720 (__arm_vmulq_x_u16): Remove.
10721 (__arm_vmulq_x_u32): Remove.
10722 (__arm_vmulq_x_n_u8): Remove.
10723 (__arm_vmulq_x_n_u16): Remove.
10724 (__arm_vmulq_x_n_u32): Remove.
10725 (__arm_vmulq_n_f16): Remove.
10726 (__arm_vmulq_f16): Remove.
10727 (__arm_vmulq_n_f32): Remove.
10728 (__arm_vmulq_f32): Remove.
10729 (__arm_vmulq_m_f32): Remove.
10730 (__arm_vmulq_m_f16): Remove.
10731 (__arm_vmulq_m_n_f32): Remove.
10732 (__arm_vmulq_m_n_f16): Remove.
10733 (__arm_vmulq_x_f16): Remove.
10734 (__arm_vmulq_x_f32): Remove.
10735 (__arm_vmulq_x_n_f16): Remove.
10736 (__arm_vmulq_x_n_f32): Remove.
10737 (__arm_vmulq): Remove.
10738 (__arm_vmulq_m): Remove.
10739 (__arm_vmulq_x): Remove.
10740 (vsubq): Remove.
10741 (vsubq_m): Remove.
10742 (vsubq_x): Remove.
10743 (vsubq_n_f16): Remove.
10744 (vsubq_n_f32): Remove.
10745 (vsubq_u8): Remove.
10746 (vsubq_n_u8): Remove.
10747 (vsubq_s8): Remove.
10748 (vsubq_n_s8): Remove.
10749 (vsubq_u16): Remove.
10750 (vsubq_n_u16): Remove.
10751 (vsubq_s16): Remove.
10752 (vsubq_n_s16): Remove.
10753 (vsubq_u32): Remove.
10754 (vsubq_n_u32): Remove.
10755 (vsubq_s32): Remove.
10756 (vsubq_n_s32): Remove.
10757 (vsubq_f16): Remove.
10758 (vsubq_f32): Remove.
10759 (vsubq_m_s8): Remove.
10760 (vsubq_m_u8): Remove.
10761 (vsubq_m_s16): Remove.
10762 (vsubq_m_u16): Remove.
10763 (vsubq_m_s32): Remove.
10764 (vsubq_m_u32): Remove.
10765 (vsubq_m_n_s8): Remove.
10766 (vsubq_m_n_s32): Remove.
10767 (vsubq_m_n_s16): Remove.
10768 (vsubq_m_n_u8): Remove.
10769 (vsubq_m_n_u32): Remove.
10770 (vsubq_m_n_u16): Remove.
10771 (vsubq_m_f32): Remove.
10772 (vsubq_m_f16): Remove.
10773 (vsubq_m_n_f32): Remove.
10774 (vsubq_m_n_f16): Remove.
10775 (vsubq_x_s8): Remove.
10776 (vsubq_x_s16): Remove.
10777 (vsubq_x_s32): Remove.
10778 (vsubq_x_n_s8): Remove.
10779 (vsubq_x_n_s16): Remove.
10780 (vsubq_x_n_s32): Remove.
10781 (vsubq_x_u8): Remove.
10782 (vsubq_x_u16): Remove.
10783 (vsubq_x_u32): Remove.
10784 (vsubq_x_n_u8): Remove.
10785 (vsubq_x_n_u16): Remove.
10786 (vsubq_x_n_u32): Remove.
10787 (vsubq_x_f16): Remove.
10788 (vsubq_x_f32): Remove.
10789 (vsubq_x_n_f16): Remove.
10790 (vsubq_x_n_f32): Remove.
10791 (__arm_vsubq_u8): Remove.
10792 (__arm_vsubq_n_u8): Remove.
10793 (__arm_vsubq_s8): Remove.
10794 (__arm_vsubq_n_s8): Remove.
10795 (__arm_vsubq_u16): Remove.
10796 (__arm_vsubq_n_u16): Remove.
10797 (__arm_vsubq_s16): Remove.
10798 (__arm_vsubq_n_s16): Remove.
10799 (__arm_vsubq_u32): Remove.
10800 (__arm_vsubq_n_u32): Remove.
10801 (__arm_vsubq_s32): Remove.
10802 (__arm_vsubq_n_s32): Remove.
10803 (__arm_vsubq_m_s8): Remove.
10804 (__arm_vsubq_m_u8): Remove.
10805 (__arm_vsubq_m_s16): Remove.
10806 (__arm_vsubq_m_u16): Remove.
10807 (__arm_vsubq_m_s32): Remove.
10808 (__arm_vsubq_m_u32): Remove.
10809 (__arm_vsubq_m_n_s8): Remove.
10810 (__arm_vsubq_m_n_s32): Remove.
10811 (__arm_vsubq_m_n_s16): Remove.
10812 (__arm_vsubq_m_n_u8): Remove.
10813 (__arm_vsubq_m_n_u32): Remove.
10814 (__arm_vsubq_m_n_u16): Remove.
10815 (__arm_vsubq_x_s8): Remove.
10816 (__arm_vsubq_x_s16): Remove.
10817 (__arm_vsubq_x_s32): Remove.
10818 (__arm_vsubq_x_n_s8): Remove.
10819 (__arm_vsubq_x_n_s16): Remove.
10820 (__arm_vsubq_x_n_s32): Remove.
10821 (__arm_vsubq_x_u8): Remove.
10822 (__arm_vsubq_x_u16): Remove.
10823 (__arm_vsubq_x_u32): Remove.
10824 (__arm_vsubq_x_n_u8): Remove.
10825 (__arm_vsubq_x_n_u16): Remove.
10826 (__arm_vsubq_x_n_u32): Remove.
10827 (__arm_vsubq_n_f16): Remove.
10828 (__arm_vsubq_n_f32): Remove.
10829 (__arm_vsubq_f16): Remove.
10830 (__arm_vsubq_f32): Remove.
10831 (__arm_vsubq_m_f32): Remove.
10832 (__arm_vsubq_m_f16): Remove.
10833 (__arm_vsubq_m_n_f32): Remove.
10834 (__arm_vsubq_m_n_f16): Remove.
10835 (__arm_vsubq_x_f16): Remove.
10836 (__arm_vsubq_x_f32): Remove.
10837 (__arm_vsubq_x_n_f16): Remove.
10838 (__arm_vsubq_x_n_f32): Remove.
10839 (__arm_vsubq): Remove.
10840 (__arm_vsubq_m): Remove.
10841 (__arm_vsubq_x): Remove.
10842 * config/arm/arm_mve_builtins.def (vsubq_u, vsubq_s, vsubq_f):
10843 Remove.
10844 (vmulq_u, vmulq_s, vmulq_f): Remove.
10845 * config/arm/mve.md (mve_vsubq_<supf><mode>): Remove.
10846 (mve_vmulq_<supf><mode>): Remove.
10847
10848 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10849
10850 * config/arm/iterators.md (MVE_INT_BINARY_RTX, MVE_INT_M_BINARY)
10851 (MVE_INT_M_N_BINARY, MVE_INT_N_BINARY, MVE_FP_M_BINARY)
10852 (MVE_FP_M_N_BINARY, MVE_FP_N_BINARY, mve_addsubmul, mve_insn): New
10853 iterators.
10854 * config/arm/mve.md
10855 (mve_vsubq_n_f<mode>, mve_vaddq_n_f<mode>, mve_vmulq_n_f<mode>):
10856 Factorize into ...
10857 (@mve_<mve_insn>q_n_f<mode>): ... this.
10858 (mve_vaddq_n_<supf><mode>, mve_vmulq_n_<supf><mode>)
10859 (mve_vsubq_n_<supf><mode>): Factorize into ...
10860 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
10861 (mve_vaddq<mode>, mve_vmulq<mode>, mve_vsubq<mode>): Factorize
10862 into ...
10863 (mve_<mve_addsubmul>q<mode>): ... this.
10864 (mve_vaddq_f<mode>, mve_vmulq_f<mode>, mve_vsubq_f<mode>):
10865 Factorize into ...
10866 (mve_<mve_addsubmul>q_f<mode>): ... this.
10867 (mve_vaddq_m_<supf><mode>, mve_vmulq_m_<supf><mode>)
10868 (mve_vsubq_m_<supf><mode>): Factorize into ...
10869 (@mve_<mve_insn>q_m_<supf><mode>): ... this,
10870 (mve_vaddq_m_n_<supf><mode>, mve_vmulq_m_n_<supf><mode>)
10871 (mve_vsubq_m_n_<supf><mode>): Factorize into ...
10872 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
10873 (mve_vaddq_m_f<mode>, mve_vmulq_m_f<mode>, mve_vsubq_m_f<mode>):
10874 Factorize into ...
10875 (@mve_<mve_insn>q_m_f<mode>): ... this.
10876 (mve_vaddq_m_n_f<mode>, mve_vmulq_m_n_f<mode>)
10877 (mve_vsubq_m_n_f<mode>): Factorize into ...
10878 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
10879
10880 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10881
10882 * config/arm/arm-mve-builtins-functions.h (class
10883 unspec_based_mve_function_base): New.
10884 (class unspec_based_mve_function_exact_insn): New.
10885
10886 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
10887
10888 * config/arm/arm-mve-builtins-shapes.cc (binary_opt_n): New.
10889 * config/arm/arm-mve-builtins-shapes.h (binary_opt_n): New.
10890
10891 2023-05-03 Murray Steele <murray.steele@arm.com>
10892 Christophe Lyon <christophe.lyon@arm.com>
10893
10894 * config/arm/arm-mve-builtins-base.cc (class
10895 vuninitializedq_impl): New.
10896 * config/arm/arm-mve-builtins-base.def (vuninitializedq): New.
10897 * config/arm/arm-mve-builtins-base.h (vuninitializedq): New
10898 declaration.
10899 * config/arm/arm-mve-builtins-shapes.cc (inherent): New.
10900 * config/arm/arm-mve-builtins-shapes.h (inherent): New
10901 declaration.
10902 * config/arm/arm_mve_types.h (__arm_vuninitializedq): Move to ...
10903 * config/arm/arm_mve.h (__arm_vuninitializedq): ... here.
10904 (__arm_vuninitializedq_u8): Remove.
10905 (__arm_vuninitializedq_u16): Remove.
10906 (__arm_vuninitializedq_u32): Remove.
10907 (__arm_vuninitializedq_u64): Remove.
10908 (__arm_vuninitializedq_s8): Remove.
10909 (__arm_vuninitializedq_s16): Remove.
10910 (__arm_vuninitializedq_s32): Remove.
10911 (__arm_vuninitializedq_s64): Remove.
10912 (__arm_vuninitializedq_f16): Remove.
10913 (__arm_vuninitializedq_f32): Remove.
10914
10915 2023-05-03 Murray Steele <murray.steele@arm.com>
10916 Christophe Lyon <christophe.lyon@arm.com>
10917
10918 * config/arm/arm-mve-builtins-base.cc (vreinterpretq_impl): New class.
10919 * config/arm/arm-mve-builtins-base.def: Define vreinterpretq.
10920 * config/arm/arm-mve-builtins-base.h (vreinterpretq): New declaration.
10921 * config/arm/arm-mve-builtins-shapes.cc (parse_element_type): New function.
10922 (parse_type): Likewise.
10923 (parse_signature): Likewise.
10924 (build_one): Likewise.
10925 (build_all): Likewise.
10926 (overloaded_base): New struct.
10927 (unary_convert_def): Likewise.
10928 * config/arm/arm-mve-builtins-shapes.h (unary_convert): Declare.
10929 * config/arm/arm-mve-builtins.cc (TYPES_reinterpret_signed1): New
10930 macro.
10931 (TYPES_reinterpret_unsigned1): Likewise.
10932 (TYPES_reinterpret_integer): Likewise.
10933 (TYPES_reinterpret_integer1): Likewise.
10934 (TYPES_reinterpret_float1): Likewise.
10935 (TYPES_reinterpret_float): Likewise.
10936 (reinterpret_integer): New.
10937 (reinterpret_float): New.
10938 (handle_arm_mve_h): Register builtins.
10939 * config/arm/arm_mve.h (vreinterpretq_s16): Remove.
10940 (vreinterpretq_s32): Likewise.
10941 (vreinterpretq_s64): Likewise.
10942 (vreinterpretq_s8): Likewise.
10943 (vreinterpretq_u16): Likewise.
10944 (vreinterpretq_u32): Likewise.
10945 (vreinterpretq_u64): Likewise.
10946 (vreinterpretq_u8): Likewise.
10947 (vreinterpretq_f16): Likewise.
10948 (vreinterpretq_f32): Likewise.
10949 (vreinterpretq_s16_s32): Likewise.
10950 (vreinterpretq_s16_s64): Likewise.
10951 (vreinterpretq_s16_s8): Likewise.
10952 (vreinterpretq_s16_u16): Likewise.
10953 (vreinterpretq_s16_u32): Likewise.
10954 (vreinterpretq_s16_u64): Likewise.
10955 (vreinterpretq_s16_u8): Likewise.
10956 (vreinterpretq_s32_s16): Likewise.
10957 (vreinterpretq_s32_s64): Likewise.
10958 (vreinterpretq_s32_s8): Likewise.
10959 (vreinterpretq_s32_u16): Likewise.
10960 (vreinterpretq_s32_u32): Likewise.
10961 (vreinterpretq_s32_u64): Likewise.
10962 (vreinterpretq_s32_u8): Likewise.
10963 (vreinterpretq_s64_s16): Likewise.
10964 (vreinterpretq_s64_s32): Likewise.
10965 (vreinterpretq_s64_s8): Likewise.
10966 (vreinterpretq_s64_u16): Likewise.
10967 (vreinterpretq_s64_u32): Likewise.
10968 (vreinterpretq_s64_u64): Likewise.
10969 (vreinterpretq_s64_u8): Likewise.
10970 (vreinterpretq_s8_s16): Likewise.
10971 (vreinterpretq_s8_s32): Likewise.
10972 (vreinterpretq_s8_s64): Likewise.
10973 (vreinterpretq_s8_u16): Likewise.
10974 (vreinterpretq_s8_u32): Likewise.
10975 (vreinterpretq_s8_u64): Likewise.
10976 (vreinterpretq_s8_u8): Likewise.
10977 (vreinterpretq_u16_s16): Likewise.
10978 (vreinterpretq_u16_s32): Likewise.
10979 (vreinterpretq_u16_s64): Likewise.
10980 (vreinterpretq_u16_s8): Likewise.
10981 (vreinterpretq_u16_u32): Likewise.
10982 (vreinterpretq_u16_u64): Likewise.
10983 (vreinterpretq_u16_u8): Likewise.
10984 (vreinterpretq_u32_s16): Likewise.
10985 (vreinterpretq_u32_s32): Likewise.
10986 (vreinterpretq_u32_s64): Likewise.
10987 (vreinterpretq_u32_s8): Likewise.
10988 (vreinterpretq_u32_u16): Likewise.
10989 (vreinterpretq_u32_u64): Likewise.
10990 (vreinterpretq_u32_u8): Likewise.
10991 (vreinterpretq_u64_s16): Likewise.
10992 (vreinterpretq_u64_s32): Likewise.
10993 (vreinterpretq_u64_s64): Likewise.
10994 (vreinterpretq_u64_s8): Likewise.
10995 (vreinterpretq_u64_u16): Likewise.
10996 (vreinterpretq_u64_u32): Likewise.
10997 (vreinterpretq_u64_u8): Likewise.
10998 (vreinterpretq_u8_s16): Likewise.
10999 (vreinterpretq_u8_s32): Likewise.
11000 (vreinterpretq_u8_s64): Likewise.
11001 (vreinterpretq_u8_s8): Likewise.
11002 (vreinterpretq_u8_u16): Likewise.
11003 (vreinterpretq_u8_u32): Likewise.
11004 (vreinterpretq_u8_u64): Likewise.
11005 (vreinterpretq_s32_f16): Likewise.
11006 (vreinterpretq_s32_f32): Likewise.
11007 (vreinterpretq_u16_f16): Likewise.
11008 (vreinterpretq_u16_f32): Likewise.
11009 (vreinterpretq_u32_f16): Likewise.
11010 (vreinterpretq_u32_f32): Likewise.
11011 (vreinterpretq_u64_f16): Likewise.
11012 (vreinterpretq_u64_f32): Likewise.
11013 (vreinterpretq_u8_f16): Likewise.
11014 (vreinterpretq_u8_f32): Likewise.
11015 (vreinterpretq_f16_f32): Likewise.
11016 (vreinterpretq_f16_s16): Likewise.
11017 (vreinterpretq_f16_s32): Likewise.
11018 (vreinterpretq_f16_s64): Likewise.
11019 (vreinterpretq_f16_s8): Likewise.
11020 (vreinterpretq_f16_u16): Likewise.
11021 (vreinterpretq_f16_u32): Likewise.
11022 (vreinterpretq_f16_u64): Likewise.
11023 (vreinterpretq_f16_u8): Likewise.
11024 (vreinterpretq_f32_f16): Likewise.
11025 (vreinterpretq_f32_s16): Likewise.
11026 (vreinterpretq_f32_s32): Likewise.
11027 (vreinterpretq_f32_s64): Likewise.
11028 (vreinterpretq_f32_s8): Likewise.
11029 (vreinterpretq_f32_u16): Likewise.
11030 (vreinterpretq_f32_u32): Likewise.
11031 (vreinterpretq_f32_u64): Likewise.
11032 (vreinterpretq_f32_u8): Likewise.
11033 (vreinterpretq_s16_f16): Likewise.
11034 (vreinterpretq_s16_f32): Likewise.
11035 (vreinterpretq_s64_f16): Likewise.
11036 (vreinterpretq_s64_f32): Likewise.
11037 (vreinterpretq_s8_f16): Likewise.
11038 (vreinterpretq_s8_f32): Likewise.
11039 (__arm_vreinterpretq_f16): Likewise.
11040 (__arm_vreinterpretq_f32): Likewise.
11041 (__arm_vreinterpretq_s16): Likewise.
11042 (__arm_vreinterpretq_s32): Likewise.
11043 (__arm_vreinterpretq_s64): Likewise.
11044 (__arm_vreinterpretq_s8): Likewise.
11045 (__arm_vreinterpretq_u16): Likewise.
11046 (__arm_vreinterpretq_u32): Likewise.
11047 (__arm_vreinterpretq_u64): Likewise.
11048 (__arm_vreinterpretq_u8): Likewise.
11049 * config/arm/arm_mve_types.h (__arm_vreinterpretq_s16_s32): Remove.
11050 (__arm_vreinterpretq_s16_s64): Likewise.
11051 (__arm_vreinterpretq_s16_s8): Likewise.
11052 (__arm_vreinterpretq_s16_u16): Likewise.
11053 (__arm_vreinterpretq_s16_u32): Likewise.
11054 (__arm_vreinterpretq_s16_u64): Likewise.
11055 (__arm_vreinterpretq_s16_u8): Likewise.
11056 (__arm_vreinterpretq_s32_s16): Likewise.
11057 (__arm_vreinterpretq_s32_s64): Likewise.
11058 (__arm_vreinterpretq_s32_s8): Likewise.
11059 (__arm_vreinterpretq_s32_u16): Likewise.
11060 (__arm_vreinterpretq_s32_u32): Likewise.
11061 (__arm_vreinterpretq_s32_u64): Likewise.
11062 (__arm_vreinterpretq_s32_u8): Likewise.
11063 (__arm_vreinterpretq_s64_s16): Likewise.
11064 (__arm_vreinterpretq_s64_s32): Likewise.
11065 (__arm_vreinterpretq_s64_s8): Likewise.
11066 (__arm_vreinterpretq_s64_u16): Likewise.
11067 (__arm_vreinterpretq_s64_u32): Likewise.
11068 (__arm_vreinterpretq_s64_u64): Likewise.
11069 (__arm_vreinterpretq_s64_u8): Likewise.
11070 (__arm_vreinterpretq_s8_s16): Likewise.
11071 (__arm_vreinterpretq_s8_s32): Likewise.
11072 (__arm_vreinterpretq_s8_s64): Likewise.
11073 (__arm_vreinterpretq_s8_u16): Likewise.
11074 (__arm_vreinterpretq_s8_u32): Likewise.
11075 (__arm_vreinterpretq_s8_u64): Likewise.
11076 (__arm_vreinterpretq_s8_u8): Likewise.
11077 (__arm_vreinterpretq_u16_s16): Likewise.
11078 (__arm_vreinterpretq_u16_s32): Likewise.
11079 (__arm_vreinterpretq_u16_s64): Likewise.
11080 (__arm_vreinterpretq_u16_s8): Likewise.
11081 (__arm_vreinterpretq_u16_u32): Likewise.
11082 (__arm_vreinterpretq_u16_u64): Likewise.
11083 (__arm_vreinterpretq_u16_u8): Likewise.
11084 (__arm_vreinterpretq_u32_s16): Likewise.
11085 (__arm_vreinterpretq_u32_s32): Likewise.
11086 (__arm_vreinterpretq_u32_s64): Likewise.
11087 (__arm_vreinterpretq_u32_s8): Likewise.
11088 (__arm_vreinterpretq_u32_u16): Likewise.
11089 (__arm_vreinterpretq_u32_u64): Likewise.
11090 (__arm_vreinterpretq_u32_u8): Likewise.
11091 (__arm_vreinterpretq_u64_s16): Likewise.
11092 (__arm_vreinterpretq_u64_s32): Likewise.
11093 (__arm_vreinterpretq_u64_s64): Likewise.
11094 (__arm_vreinterpretq_u64_s8): Likewise.
11095 (__arm_vreinterpretq_u64_u16): Likewise.
11096 (__arm_vreinterpretq_u64_u32): Likewise.
11097 (__arm_vreinterpretq_u64_u8): Likewise.
11098 (__arm_vreinterpretq_u8_s16): Likewise.
11099 (__arm_vreinterpretq_u8_s32): Likewise.
11100 (__arm_vreinterpretq_u8_s64): Likewise.
11101 (__arm_vreinterpretq_u8_s8): Likewise.
11102 (__arm_vreinterpretq_u8_u16): Likewise.
11103 (__arm_vreinterpretq_u8_u32): Likewise.
11104 (__arm_vreinterpretq_u8_u64): Likewise.
11105 (__arm_vreinterpretq_s32_f16): Likewise.
11106 (__arm_vreinterpretq_s32_f32): Likewise.
11107 (__arm_vreinterpretq_s16_f16): Likewise.
11108 (__arm_vreinterpretq_s16_f32): Likewise.
11109 (__arm_vreinterpretq_s64_f16): Likewise.
11110 (__arm_vreinterpretq_s64_f32): Likewise.
11111 (__arm_vreinterpretq_s8_f16): Likewise.
11112 (__arm_vreinterpretq_s8_f32): Likewise.
11113 (__arm_vreinterpretq_u16_f16): Likewise.
11114 (__arm_vreinterpretq_u16_f32): Likewise.
11115 (__arm_vreinterpretq_u32_f16): Likewise.
11116 (__arm_vreinterpretq_u32_f32): Likewise.
11117 (__arm_vreinterpretq_u64_f16): Likewise.
11118 (__arm_vreinterpretq_u64_f32): Likewise.
11119 (__arm_vreinterpretq_u8_f16): Likewise.
11120 (__arm_vreinterpretq_u8_f32): Likewise.
11121 (__arm_vreinterpretq_f16_f32): Likewise.
11122 (__arm_vreinterpretq_f16_s16): Likewise.
11123 (__arm_vreinterpretq_f16_s32): Likewise.
11124 (__arm_vreinterpretq_f16_s64): Likewise.
11125 (__arm_vreinterpretq_f16_s8): Likewise.
11126 (__arm_vreinterpretq_f16_u16): Likewise.
11127 (__arm_vreinterpretq_f16_u32): Likewise.
11128 (__arm_vreinterpretq_f16_u64): Likewise.
11129 (__arm_vreinterpretq_f16_u8): Likewise.
11130 (__arm_vreinterpretq_f32_f16): Likewise.
11131 (__arm_vreinterpretq_f32_s16): Likewise.
11132 (__arm_vreinterpretq_f32_s32): Likewise.
11133 (__arm_vreinterpretq_f32_s64): Likewise.
11134 (__arm_vreinterpretq_f32_s8): Likewise.
11135 (__arm_vreinterpretq_f32_u16): Likewise.
11136 (__arm_vreinterpretq_f32_u32): Likewise.
11137 (__arm_vreinterpretq_f32_u64): Likewise.
11138 (__arm_vreinterpretq_f32_u8): Likewise.
11139 (__arm_vreinterpretq_s16): Likewise.
11140 (__arm_vreinterpretq_s32): Likewise.
11141 (__arm_vreinterpretq_s64): Likewise.
11142 (__arm_vreinterpretq_s8): Likewise.
11143 (__arm_vreinterpretq_u16): Likewise.
11144 (__arm_vreinterpretq_u32): Likewise.
11145 (__arm_vreinterpretq_u64): Likewise.
11146 (__arm_vreinterpretq_u8): Likewise.
11147 (__arm_vreinterpretq_f16): Likewise.
11148 (__arm_vreinterpretq_f32): Likewise.
11149 * config/arm/mve.md (@arm_mve_reinterpret<mode>): New pattern.
11150 * config/arm/unspecs.md: (REINTERPRET): New unspec.
11151
11152 2023-05-03 Murray Steele <murray.steele@arm.com>
11153 Christophe Lyon <christophe.lyon@arm.com>
11154 Christophe Lyon <christophe.lyon@arm.com
11155
11156 * config.gcc: Add arm-mve-builtins-base.o and
11157 arm-mve-builtins-shapes.o to extra_objs.
11158 * config/arm/arm-builtins.cc (arm_builtin_decl): Handle MVE builtin
11159 numberspace.
11160 (arm_expand_builtin): Likewise
11161 (arm_check_builtin_call): Likewise
11162 (arm_describe_resolver): Likewise.
11163 * config/arm/arm-builtins.h (enum resolver_ident): Add
11164 arm_mve_resolver.
11165 * config/arm/arm-c.cc (arm_pragma_arm): Handle new pragma.
11166 (arm_resolve_overloaded_builtin): Handle MVE builtins.
11167 (arm_register_target_pragmas): Register arm_check_builtin_call.
11168 * config/arm/arm-mve-builtins.cc (class registered_function): New
11169 class.
11170 (struct registered_function_hasher): New struct.
11171 (pred_suffixes): New table.
11172 (mode_suffixes): New table.
11173 (type_suffix_info): New table.
11174 (TYPES_float16): New.
11175 (TYPES_all_float): New.
11176 (TYPES_integer_8): New.
11177 (TYPES_integer_8_16): New.
11178 (TYPES_integer_16_32): New.
11179 (TYPES_integer_32): New.
11180 (TYPES_signed_16_32): New.
11181 (TYPES_signed_32): New.
11182 (TYPES_all_signed): New.
11183 (TYPES_all_unsigned): New.
11184 (TYPES_all_integer): New.
11185 (TYPES_all_integer_with_64): New.
11186 (DEF_VECTOR_TYPE): New.
11187 (DEF_DOUBLE_TYPE): New.
11188 (DEF_MVE_TYPES_ARRAY): New.
11189 (all_integer): New.
11190 (all_integer_with_64): New.
11191 (float16): New.
11192 (all_float): New.
11193 (all_signed): New.
11194 (all_unsigned): New.
11195 (integer_8): New.
11196 (integer_8_16): New.
11197 (integer_16_32): New.
11198 (integer_32): New.
11199 (signed_16_32): New.
11200 (signed_32): New.
11201 (register_vector_type): Use void_type_node for mve.fp-only types when
11202 mve.fp is not enabled.
11203 (register_builtin_tuple_types): Likewise.
11204 (handle_arm_mve_h): New function..
11205 (matches_type_p): Likewise..
11206 (report_out_of_range): Likewise.
11207 (report_not_enum): Likewise.
11208 (report_missing_float): Likewise.
11209 (report_non_ice): Likewise.
11210 (check_requires_float): Likewise.
11211 (function_instance::hash): Likewise
11212 (function_instance::call_properties): Likewise.
11213 (function_instance::reads_global_state_p): Likewise.
11214 (function_instance::modifies_global_state_p): Likewise.
11215 (function_instance::could_trap_p): Likewise.
11216 (function_instance::has_inactive_argument): Likewise.
11217 (registered_function_hasher::hash): Likewise.
11218 (registered_function_hasher::equal): Likewise.
11219 (function_builder::function_builder): Likewise.
11220 (function_builder::~function_builder): Likewise.
11221 (function_builder::append_name): Likewise.
11222 (function_builder::finish_name): Likewise.
11223 (function_builder::get_name): Likewise.
11224 (add_attribute): Likewise.
11225 (function_builder::get_attributes): Likewise.
11226 (function_builder::add_function): Likewise.
11227 (function_builder::add_unique_function): Likewise.
11228 (function_builder::add_overloaded_function): Likewise.
11229 (function_builder::add_overloaded_functions): Likewise.
11230 (function_builder::register_function_group): Likewise.
11231 (function_call_info::function_call_info): Likewise.
11232 (function_resolver::function_resolver): Likewise.
11233 (function_resolver::get_vector_type): Likewise.
11234 (function_resolver::get_scalar_type_name): Likewise.
11235 (function_resolver::get_argument_type): Likewise.
11236 (function_resolver::scalar_argument_p): Likewise.
11237 (function_resolver::report_no_such_form): Likewise.
11238 (function_resolver::lookup_form): Likewise.
11239 (function_resolver::resolve_to): Likewise.
11240 (function_resolver::infer_vector_or_tuple_type): Likewise.
11241 (function_resolver::infer_vector_type): Likewise.
11242 (function_resolver::require_vector_or_scalar_type): Likewise.
11243 (function_resolver::require_vector_type): Likewise.
11244 (function_resolver::require_matching_vector_type): Likewise.
11245 (function_resolver::require_derived_vector_type): Likewise.
11246 (function_resolver::require_derived_scalar_type): Likewise.
11247 (function_resolver::require_integer_immediate): Likewise.
11248 (function_resolver::require_scalar_type): Likewise.
11249 (function_resolver::check_num_arguments): Likewise.
11250 (function_resolver::check_gp_argument): Likewise.
11251 (function_resolver::finish_opt_n_resolution): Likewise.
11252 (function_resolver::resolve_unary): Likewise.
11253 (function_resolver::resolve_unary_n): Likewise.
11254 (function_resolver::resolve_uniform): Likewise.
11255 (function_resolver::resolve_uniform_opt_n): Likewise.
11256 (function_resolver::resolve): Likewise.
11257 (function_checker::function_checker): Likewise.
11258 (function_checker::argument_exists_p): Likewise.
11259 (function_checker::require_immediate): Likewise.
11260 (function_checker::require_immediate_enum): Likewise.
11261 (function_checker::require_immediate_range): Likewise.
11262 (function_checker::check): Likewise.
11263 (gimple_folder::gimple_folder): Likewise.
11264 (gimple_folder::fold): Likewise.
11265 (function_expander::function_expander): Likewise.
11266 (function_expander::direct_optab_handler): Likewise.
11267 (function_expander::get_fallback_value): Likewise.
11268 (function_expander::get_reg_target): Likewise.
11269 (function_expander::add_output_operand): Likewise.
11270 (function_expander::add_input_operand): Likewise.
11271 (function_expander::add_integer_operand): Likewise.
11272 (function_expander::generate_insn): Likewise.
11273 (function_expander::use_exact_insn): Likewise.
11274 (function_expander::use_unpred_insn): Likewise.
11275 (function_expander::use_pred_x_insn): Likewise.
11276 (function_expander::use_cond_insn): Likewise.
11277 (function_expander::map_to_rtx_codes): Likewise.
11278 (function_expander::expand): Likewise.
11279 (resolve_overloaded_builtin): Likewise.
11280 (check_builtin_call): Likewise.
11281 (gimple_fold_builtin): Likewise.
11282 (expand_builtin): Likewise.
11283 (gt_ggc_mx): Likewise.
11284 (gt_pch_nx): Likewise.
11285 (gt_pch_nx): Likewise.
11286 * config/arm/arm-mve-builtins.def(s8): Define new type suffix.
11287 (s16): Likewise.
11288 (s32): Likewise.
11289 (s64): Likewise.
11290 (u8): Likewise.
11291 (u16): Likewise.
11292 (u32): Likewise.
11293 (u64): Likewise.
11294 (f16): Likewise.
11295 (f32): Likewise.
11296 (n): New mode.
11297 (offset): New mode.
11298 * config/arm/arm-mve-builtins.h (MAX_TUPLE_SIZE): New constant.
11299 (CP_READ_FPCR): Likewise.
11300 (CP_RAISE_FP_EXCEPTIONS): Likewise.
11301 (CP_READ_MEMORY): Likewise.
11302 (CP_WRITE_MEMORY): Likewise.
11303 (enum units_index): New enum.
11304 (enum predication_index): New.
11305 (enum type_class_index): New.
11306 (enum mode_suffix_index): New enum.
11307 (enum type_suffix_index): New.
11308 (struct mode_suffix_info): New struct.
11309 (struct type_suffix_info): New.
11310 (struct function_group_info): Likewise.
11311 (class function_instance): Likewise.
11312 (class registered_function): Likewise.
11313 (class function_builder): Likewise.
11314 (class function_call_info): Likewise.
11315 (class function_resolver): Likewise.
11316 (class function_checker): Likewise.
11317 (class gimple_folder): Likewise.
11318 (class function_expander): Likewise.
11319 (get_mve_pred16_t): Likewise.
11320 (find_mode_suffix): New function.
11321 (class function_base): Likewise.
11322 (class function_shape): Likewise.
11323 (function_instance::operator==): New function.
11324 (function_instance::operator!=): Likewise.
11325 (function_instance::vectors_per_tuple): Likewise.
11326 (function_instance::mode_suffix): Likewise.
11327 (function_instance::type_suffix): Likewise.
11328 (function_instance::scalar_type): Likewise.
11329 (function_instance::vector_type): Likewise.
11330 (function_instance::tuple_type): Likewise.
11331 (function_instance::vector_mode): Likewise.
11332 (function_call_info::function_returns_void_p): Likewise.
11333 (function_base::call_properties): Likewise.
11334 * config/arm/arm-protos.h (enum arm_builtin_class): Add
11335 ARM_BUILTIN_MVE.
11336 (handle_arm_mve_h): New.
11337 (resolve_overloaded_builtin): New.
11338 (check_builtin_call): New.
11339 (gimple_fold_builtin): New.
11340 (expand_builtin): New.
11341 * config/arm/arm.cc (TARGET_GIMPLE_FOLD_BUILTIN): Define as
11342 arm_gimple_fold_builtin.
11343 (arm_gimple_fold_builtin): New function.
11344 * config/arm/arm_mve.h: Use new arm_mve.h pragma.
11345 * config/arm/predicates.md (arm_any_register_operand): New predicate.
11346 * config/arm/t-arm: (arm-mve-builtins.o): Add includes.
11347 (arm-mve-builtins-shapes.o): New target.
11348 (arm-mve-builtins-base.o): New target.
11349 * config/arm/arm-mve-builtins-base.cc: New file.
11350 * config/arm/arm-mve-builtins-base.def: New file.
11351 * config/arm/arm-mve-builtins-base.h: New file.
11352 * config/arm/arm-mve-builtins-functions.h: New file.
11353 * config/arm/arm-mve-builtins-shapes.cc: New file.
11354 * config/arm/arm-mve-builtins-shapes.h: New file.
11355
11356 2023-05-03 Murray Steele <murray.steele@arm.com>
11357 Christophe Lyon <christophe.lyon@arm.com>
11358 Christophe Lyon <christophe.lyon@arm.com>
11359
11360 * config/arm/arm-builtins.cc (arm_general_add_builtin_function):
11361 New function.
11362 (arm_init_builtin): Use arm_general_add_builtin_function instead
11363 of arm_add_builtin_function.
11364 (arm_init_acle_builtins): Likewise.
11365 (arm_init_mve_builtins): Likewise.
11366 (arm_init_crypto_builtins): Likewise.
11367 (arm_init_builtins): Likewise.
11368 (arm_general_builtin_decl): New function.
11369 (arm_builtin_decl): Defer to numberspace-specialized functions.
11370 (arm_expand_builtin_args): Rename into arm_general_expand_builtin_args.
11371 (arm_expand_builtin_1): Rename into arm_general_expand_builtin_1 and ...
11372 (arm_general_expand_builtin_1): ... specialize for general builtins.
11373 (arm_expand_acle_builtin): Use arm_general_expand_builtin
11374 instead of arm_expand_builtin.
11375 (arm_expand_mve_builtin): Likewise.
11376 (arm_expand_neon_builtin): Likewise.
11377 (arm_expand_vfp_builtin): Likewise.
11378 (arm_general_expand_builtin): New function.
11379 (arm_expand_builtin): Specialize for general builtins.
11380 (arm_general_check_builtin_call): New function.
11381 (arm_check_builtin_call): Specialize for general builtins.
11382 (arm_describe_resolver): Validate numberspace.
11383 (arm_cde_end_args): Likewise.
11384 * config/arm/arm-protos.h (enum arm_builtin_class): New enum.
11385 (ARM_BUILTIN_SHIFT, ARM_BUILTIN_CLASS): New constants.
11386
11387 2023-05-03 Martin Liska <mliska@suse.cz>
11388
11389 PR target/109713
11390 * config/riscv/sync.md: Add gcc_unreachable to a switch.
11391
11392 2023-05-03 Richard Biener <rguenther@suse.de>
11393
11394 * tree-ssa-loop-split.cc (split_at_bb_p): Avoid last_stmt.
11395 (patch_loop_exit): Likewise.
11396 (connect_loops): Likewise.
11397 (split_loop): Likewise.
11398 (control_dep_semi_invariant_p): Likewise.
11399 (do_split_loop_on_cond): Likewise.
11400 (split_loop_on_cond): Likewise.
11401 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
11402 Likewise.
11403 (simplify_loop_version): Likewise.
11404 (evaluate_bbs): Likewise.
11405 (find_loop_guard): Likewise.
11406 (clean_up_after_unswitching): Likewise.
11407 * tree-ssa-math-opts.cc (maybe_optimize_guarding_check):
11408 Likewise.
11409 (optimize_spaceship): Take a gcond * argument, avoid
11410 last_stmt.
11411 (math_opts_dom_walker::after_dom_children): Adjust call to
11412 optimize_spaceship.
11413 * tree-vrp.cc (maybe_set_nonzero_bits): Avoid last_stmt.
11414 * value-pointer-equiv.cc (pointer_equiv_analyzer::visit_edge):
11415 Likewise.
11416
11417 2023-05-03 Andreas Schwab <schwab@suse.de>
11418
11419 * config/riscv/linux.h (LIB_SPEC): Don't redefine.
11420
11421 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11422
11423 * config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load):
11424 New function.
11425 (class vlseg): New class.
11426 (class vsseg): Ditto.
11427 (class vlsseg): Ditto.
11428 (class vssseg): Ditto.
11429 (class seg_indexed_load): Ditto.
11430 (class seg_indexed_store): Ditto.
11431 (class vlsegff): Ditto.
11432 (BASE): Ditto.
11433 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
11434 * config/riscv/riscv-vector-builtins-functions.def (vlseg):
11435 Ditto.
11436 (vsseg): Ditto.
11437 (vlsseg): Ditto.
11438 (vssseg): Ditto.
11439 (vluxseg): Ditto.
11440 (vloxseg): Ditto.
11441 (vsuxseg): Ditto.
11442 (vsoxseg): Ditto.
11443 (vlsegff): Ditto.
11444 * config/riscv/riscv-vector-builtins-shapes.cc (struct
11445 seg_loadstore_def): Ditto.
11446 (struct seg_indexed_loadstore_def): Ditto.
11447 (struct seg_fault_load_def): Ditto.
11448 (SHAPE): Ditto.
11449 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
11450 * config/riscv/riscv-vector-builtins.cc
11451 (function_builder::append_nf): New function.
11452 * config/riscv/riscv-vector-builtins.def (vfloat32m1x2_t):
11453 Change ptr from double into float.
11454 (vfloat32m1x3_t): Ditto.
11455 (vfloat32m1x4_t): Ditto.
11456 (vfloat32m1x5_t): Ditto.
11457 (vfloat32m1x6_t): Ditto.
11458 (vfloat32m1x7_t): Ditto.
11459 (vfloat32m1x8_t): Ditto.
11460 (vfloat32m2x2_t): Ditto.
11461 (vfloat32m2x3_t): Ditto.
11462 (vfloat32m2x4_t): Ditto.
11463 (vfloat32m4x2_t): Ditto.
11464 * config/riscv/riscv-vector-builtins.h: Add segment intrinsics.
11465 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Adapt for
11466 segment ff load.
11467 * config/riscv/riscv.md: Add segment instructions.
11468 * config/riscv/vector-iterators.md: Support segment intrinsics.
11469 * config/riscv/vector.md (@pred_unit_strided_load<mode>): New
11470 pattern.
11471 (@pred_unit_strided_store<mode>): Ditto.
11472 (@pred_strided_load<mode>): Ditto.
11473 (@pred_strided_store<mode>): Ditto.
11474 (@pred_fault_load<mode>): Ditto.
11475 (@pred_indexed_<order>load<V1T:mode><V1I:mode>): Ditto.
11476 (@pred_indexed_<order>load<V2T:mode><V2I:mode>): Ditto.
11477 (@pred_indexed_<order>load<V4T:mode><V4I:mode>): Ditto.
11478 (@pred_indexed_<order>load<V8T:mode><V8I:mode>): Ditto.
11479 (@pred_indexed_<order>load<V16T:mode><V16I:mode>): Ditto.
11480 (@pred_indexed_<order>load<V32T:mode><V32I:mode>): Ditto.
11481 (@pred_indexed_<order>load<V64T:mode><V64I:mode>): Ditto.
11482 (@pred_indexed_<order>store<V1T:mode><V1I:mode>): Ditto.
11483 (@pred_indexed_<order>store<V2T:mode><V2I:mode>): Ditto.
11484 (@pred_indexed_<order>store<V4T:mode><V4I:mode>): Ditto.
11485 (@pred_indexed_<order>store<V8T:mode><V8I:mode>): Ditto.
11486 (@pred_indexed_<order>store<V16T:mode><V16I:mode>): Ditto.
11487 (@pred_indexed_<order>store<V32T:mode><V32I:mode>): Ditto.
11488 (@pred_indexed_<order>store<V64T:mode><V64I:mode>): Ditto.
11489
11490 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11491
11492 * config/riscv/genrvv-type-indexer.cc (valid_type): Adapt for
11493 tuple type support.
11494 (inttype): Ditto.
11495 (floattype): Ditto.
11496 (main): Ditto.
11497 * config/riscv/riscv-vector-builtins-bases.cc: Ditto.
11498 * config/riscv/riscv-vector-builtins-functions.def (vset): Add
11499 tuple type vset.
11500 (vget): Add tuple type vget.
11501 * config/riscv/riscv-vector-builtins-types.def
11502 (DEF_RVV_TUPLE_OPS): New macro.
11503 (vint8mf8x2_t): Ditto.
11504 (vuint8mf8x2_t): Ditto.
11505 (vint8mf8x3_t): Ditto.
11506 (vuint8mf8x3_t): Ditto.
11507 (vint8mf8x4_t): Ditto.
11508 (vuint8mf8x4_t): Ditto.
11509 (vint8mf8x5_t): Ditto.
11510 (vuint8mf8x5_t): Ditto.
11511 (vint8mf8x6_t): Ditto.
11512 (vuint8mf8x6_t): Ditto.
11513 (vint8mf8x7_t): Ditto.
11514 (vuint8mf8x7_t): Ditto.
11515 (vint8mf8x8_t): Ditto.
11516 (vuint8mf8x8_t): Ditto.
11517 (vint8mf4x2_t): Ditto.
11518 (vuint8mf4x2_t): Ditto.
11519 (vint8mf4x3_t): Ditto.
11520 (vuint8mf4x3_t): Ditto.
11521 (vint8mf4x4_t): Ditto.
11522 (vuint8mf4x4_t): Ditto.
11523 (vint8mf4x5_t): Ditto.
11524 (vuint8mf4x5_t): Ditto.
11525 (vint8mf4x6_t): Ditto.
11526 (vuint8mf4x6_t): Ditto.
11527 (vint8mf4x7_t): Ditto.
11528 (vuint8mf4x7_t): Ditto.
11529 (vint8mf4x8_t): Ditto.
11530 (vuint8mf4x8_t): Ditto.
11531 (vint8mf2x2_t): Ditto.
11532 (vuint8mf2x2_t): Ditto.
11533 (vint8mf2x3_t): Ditto.
11534 (vuint8mf2x3_t): Ditto.
11535 (vint8mf2x4_t): Ditto.
11536 (vuint8mf2x4_t): Ditto.
11537 (vint8mf2x5_t): Ditto.
11538 (vuint8mf2x5_t): Ditto.
11539 (vint8mf2x6_t): Ditto.
11540 (vuint8mf2x6_t): Ditto.
11541 (vint8mf2x7_t): Ditto.
11542 (vuint8mf2x7_t): Ditto.
11543 (vint8mf2x8_t): Ditto.
11544 (vuint8mf2x8_t): Ditto.
11545 (vint8m1x2_t): Ditto.
11546 (vuint8m1x2_t): Ditto.
11547 (vint8m1x3_t): Ditto.
11548 (vuint8m1x3_t): Ditto.
11549 (vint8m1x4_t): Ditto.
11550 (vuint8m1x4_t): Ditto.
11551 (vint8m1x5_t): Ditto.
11552 (vuint8m1x5_t): Ditto.
11553 (vint8m1x6_t): Ditto.
11554 (vuint8m1x6_t): Ditto.
11555 (vint8m1x7_t): Ditto.
11556 (vuint8m1x7_t): Ditto.
11557 (vint8m1x8_t): Ditto.
11558 (vuint8m1x8_t): Ditto.
11559 (vint8m2x2_t): Ditto.
11560 (vuint8m2x2_t): Ditto.
11561 (vint8m2x3_t): Ditto.
11562 (vuint8m2x3_t): Ditto.
11563 (vint8m2x4_t): Ditto.
11564 (vuint8m2x4_t): Ditto.
11565 (vint8m4x2_t): Ditto.
11566 (vuint8m4x2_t): Ditto.
11567 (vint16mf4x2_t): Ditto.
11568 (vuint16mf4x2_t): Ditto.
11569 (vint16mf4x3_t): Ditto.
11570 (vuint16mf4x3_t): Ditto.
11571 (vint16mf4x4_t): Ditto.
11572 (vuint16mf4x4_t): Ditto.
11573 (vint16mf4x5_t): Ditto.
11574 (vuint16mf4x5_t): Ditto.
11575 (vint16mf4x6_t): Ditto.
11576 (vuint16mf4x6_t): Ditto.
11577 (vint16mf4x7_t): Ditto.
11578 (vuint16mf4x7_t): Ditto.
11579 (vint16mf4x8_t): Ditto.
11580 (vuint16mf4x8_t): Ditto.
11581 (vint16mf2x2_t): Ditto.
11582 (vuint16mf2x2_t): Ditto.
11583 (vint16mf2x3_t): Ditto.
11584 (vuint16mf2x3_t): Ditto.
11585 (vint16mf2x4_t): Ditto.
11586 (vuint16mf2x4_t): Ditto.
11587 (vint16mf2x5_t): Ditto.
11588 (vuint16mf2x5_t): Ditto.
11589 (vint16mf2x6_t): Ditto.
11590 (vuint16mf2x6_t): Ditto.
11591 (vint16mf2x7_t): Ditto.
11592 (vuint16mf2x7_t): Ditto.
11593 (vint16mf2x8_t): Ditto.
11594 (vuint16mf2x8_t): Ditto.
11595 (vint16m1x2_t): Ditto.
11596 (vuint16m1x2_t): Ditto.
11597 (vint16m1x3_t): Ditto.
11598 (vuint16m1x3_t): Ditto.
11599 (vint16m1x4_t): Ditto.
11600 (vuint16m1x4_t): Ditto.
11601 (vint16m1x5_t): Ditto.
11602 (vuint16m1x5_t): Ditto.
11603 (vint16m1x6_t): Ditto.
11604 (vuint16m1x6_t): Ditto.
11605 (vint16m1x7_t): Ditto.
11606 (vuint16m1x7_t): Ditto.
11607 (vint16m1x8_t): Ditto.
11608 (vuint16m1x8_t): Ditto.
11609 (vint16m2x2_t): Ditto.
11610 (vuint16m2x2_t): Ditto.
11611 (vint16m2x3_t): Ditto.
11612 (vuint16m2x3_t): Ditto.
11613 (vint16m2x4_t): Ditto.
11614 (vuint16m2x4_t): Ditto.
11615 (vint16m4x2_t): Ditto.
11616 (vuint16m4x2_t): Ditto.
11617 (vint32mf2x2_t): Ditto.
11618 (vuint32mf2x2_t): Ditto.
11619 (vint32mf2x3_t): Ditto.
11620 (vuint32mf2x3_t): Ditto.
11621 (vint32mf2x4_t): Ditto.
11622 (vuint32mf2x4_t): Ditto.
11623 (vint32mf2x5_t): Ditto.
11624 (vuint32mf2x5_t): Ditto.
11625 (vint32mf2x6_t): Ditto.
11626 (vuint32mf2x6_t): Ditto.
11627 (vint32mf2x7_t): Ditto.
11628 (vuint32mf2x7_t): Ditto.
11629 (vint32mf2x8_t): Ditto.
11630 (vuint32mf2x8_t): Ditto.
11631 (vint32m1x2_t): Ditto.
11632 (vuint32m1x2_t): Ditto.
11633 (vint32m1x3_t): Ditto.
11634 (vuint32m1x3_t): Ditto.
11635 (vint32m1x4_t): Ditto.
11636 (vuint32m1x4_t): Ditto.
11637 (vint32m1x5_t): Ditto.
11638 (vuint32m1x5_t): Ditto.
11639 (vint32m1x6_t): Ditto.
11640 (vuint32m1x6_t): Ditto.
11641 (vint32m1x7_t): Ditto.
11642 (vuint32m1x7_t): Ditto.
11643 (vint32m1x8_t): Ditto.
11644 (vuint32m1x8_t): Ditto.
11645 (vint32m2x2_t): Ditto.
11646 (vuint32m2x2_t): Ditto.
11647 (vint32m2x3_t): Ditto.
11648 (vuint32m2x3_t): Ditto.
11649 (vint32m2x4_t): Ditto.
11650 (vuint32m2x4_t): Ditto.
11651 (vint32m4x2_t): Ditto.
11652 (vuint32m4x2_t): Ditto.
11653 (vint64m1x2_t): Ditto.
11654 (vuint64m1x2_t): Ditto.
11655 (vint64m1x3_t): Ditto.
11656 (vuint64m1x3_t): Ditto.
11657 (vint64m1x4_t): Ditto.
11658 (vuint64m1x4_t): Ditto.
11659 (vint64m1x5_t): Ditto.
11660 (vuint64m1x5_t): Ditto.
11661 (vint64m1x6_t): Ditto.
11662 (vuint64m1x6_t): Ditto.
11663 (vint64m1x7_t): Ditto.
11664 (vuint64m1x7_t): Ditto.
11665 (vint64m1x8_t): Ditto.
11666 (vuint64m1x8_t): Ditto.
11667 (vint64m2x2_t): Ditto.
11668 (vuint64m2x2_t): Ditto.
11669 (vint64m2x3_t): Ditto.
11670 (vuint64m2x3_t): Ditto.
11671 (vint64m2x4_t): Ditto.
11672 (vuint64m2x4_t): Ditto.
11673 (vint64m4x2_t): Ditto.
11674 (vuint64m4x2_t): Ditto.
11675 (vfloat32mf2x2_t): Ditto.
11676 (vfloat32mf2x3_t): Ditto.
11677 (vfloat32mf2x4_t): Ditto.
11678 (vfloat32mf2x5_t): Ditto.
11679 (vfloat32mf2x6_t): Ditto.
11680 (vfloat32mf2x7_t): Ditto.
11681 (vfloat32mf2x8_t): Ditto.
11682 (vfloat32m1x2_t): Ditto.
11683 (vfloat32m1x3_t): Ditto.
11684 (vfloat32m1x4_t): Ditto.
11685 (vfloat32m1x5_t): Ditto.
11686 (vfloat32m1x6_t): Ditto.
11687 (vfloat32m1x7_t): Ditto.
11688 (vfloat32m1x8_t): Ditto.
11689 (vfloat32m2x2_t): Ditto.
11690 (vfloat32m2x3_t): Ditto.
11691 (vfloat32m2x4_t): Ditto.
11692 (vfloat32m4x2_t): Ditto.
11693 (vfloat64m1x2_t): Ditto.
11694 (vfloat64m1x3_t): Ditto.
11695 (vfloat64m1x4_t): Ditto.
11696 (vfloat64m1x5_t): Ditto.
11697 (vfloat64m1x6_t): Ditto.
11698 (vfloat64m1x7_t): Ditto.
11699 (vfloat64m1x8_t): Ditto.
11700 (vfloat64m2x2_t): Ditto.
11701 (vfloat64m2x3_t): Ditto.
11702 (vfloat64m2x4_t): Ditto.
11703 (vfloat64m4x2_t): Ditto.
11704 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_OPS):
11705 Ditto.
11706 (DEF_RVV_TYPE_INDEX): Ditto.
11707 (rvv_arg_type_info::get_tuple_subpart_type): New function.
11708 (DEF_RVV_TUPLE_TYPE): New macro.
11709 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX):
11710 Adapt for tuple vget/vset support.
11711 (vint8mf4_t): Ditto.
11712 (vuint8mf4_t): Ditto.
11713 (vint8mf2_t): Ditto.
11714 (vuint8mf2_t): Ditto.
11715 (vint8m1_t): Ditto.
11716 (vuint8m1_t): Ditto.
11717 (vint8m2_t): Ditto.
11718 (vuint8m2_t): Ditto.
11719 (vint8m4_t): Ditto.
11720 (vuint8m4_t): Ditto.
11721 (vint8m8_t): Ditto.
11722 (vuint8m8_t): Ditto.
11723 (vint16mf4_t): Ditto.
11724 (vuint16mf4_t): Ditto.
11725 (vint16mf2_t): Ditto.
11726 (vuint16mf2_t): Ditto.
11727 (vint16m1_t): Ditto.
11728 (vuint16m1_t): Ditto.
11729 (vint16m2_t): Ditto.
11730 (vuint16m2_t): Ditto.
11731 (vint16m4_t): Ditto.
11732 (vuint16m4_t): Ditto.
11733 (vint16m8_t): Ditto.
11734 (vuint16m8_t): Ditto.
11735 (vint32mf2_t): Ditto.
11736 (vuint32mf2_t): Ditto.
11737 (vint32m1_t): Ditto.
11738 (vuint32m1_t): Ditto.
11739 (vint32m2_t): Ditto.
11740 (vuint32m2_t): Ditto.
11741 (vint32m4_t): Ditto.
11742 (vuint32m4_t): Ditto.
11743 (vint32m8_t): Ditto.
11744 (vuint32m8_t): Ditto.
11745 (vint64m1_t): Ditto.
11746 (vuint64m1_t): Ditto.
11747 (vint64m2_t): Ditto.
11748 (vuint64m2_t): Ditto.
11749 (vint64m4_t): Ditto.
11750 (vuint64m4_t): Ditto.
11751 (vint64m8_t): Ditto.
11752 (vuint64m8_t): Ditto.
11753 (vfloat32mf2_t): Ditto.
11754 (vfloat32m1_t): Ditto.
11755 (vfloat32m2_t): Ditto.
11756 (vfloat32m4_t): Ditto.
11757 (vfloat32m8_t): Ditto.
11758 (vfloat64m1_t): Ditto.
11759 (vfloat64m2_t): Ditto.
11760 (vfloat64m4_t): Ditto.
11761 (vfloat64m8_t): Ditto.
11762 (tuple_subpart): Add tuple subpart base type.
11763 * config/riscv/riscv-vector-builtins.h (struct
11764 rvv_arg_type_info): Ditto.
11765 (tuple_type_field): New function.
11766
11767 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11768
11769 * config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
11770 (RVV_TUPLE_PARTIAL_MODES): Ditto.
11771 * config/riscv/riscv-protos.h (riscv_v_ext_tuple_mode_p): New
11772 function.
11773 (get_nf): Ditto.
11774 (get_subpart_mode): Ditto.
11775 (get_tuple_mode): Ditto.
11776 (expand_tuple_move): Ditto.
11777 * config/riscv/riscv-v.cc (ENTRY): New macro.
11778 (TUPLE_ENTRY): Ditto.
11779 (get_nf): New function.
11780 (get_subpart_mode): Ditto.
11781 (get_tuple_mode): Ditto.
11782 (expand_tuple_move): Ditto.
11783 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_TYPE):
11784 New macro.
11785 (register_tuple_type): New function
11786 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TUPLE_TYPE):
11787 New macro.
11788 (vint8mf8x2_t): New macro.
11789 (vuint8mf8x2_t): Ditto.
11790 (vint8mf8x3_t): Ditto.
11791 (vuint8mf8x3_t): Ditto.
11792 (vint8mf8x4_t): Ditto.
11793 (vuint8mf8x4_t): Ditto.
11794 (vint8mf8x5_t): Ditto.
11795 (vuint8mf8x5_t): Ditto.
11796 (vint8mf8x6_t): Ditto.
11797 (vuint8mf8x6_t): Ditto.
11798 (vint8mf8x7_t): Ditto.
11799 (vuint8mf8x7_t): Ditto.
11800 (vint8mf8x8_t): Ditto.
11801 (vuint8mf8x8_t): Ditto.
11802 (vint8mf4x2_t): Ditto.
11803 (vuint8mf4x2_t): Ditto.
11804 (vint8mf4x3_t): Ditto.
11805 (vuint8mf4x3_t): Ditto.
11806 (vint8mf4x4_t): Ditto.
11807 (vuint8mf4x4_t): Ditto.
11808 (vint8mf4x5_t): Ditto.
11809 (vuint8mf4x5_t): Ditto.
11810 (vint8mf4x6_t): Ditto.
11811 (vuint8mf4x6_t): Ditto.
11812 (vint8mf4x7_t): Ditto.
11813 (vuint8mf4x7_t): Ditto.
11814 (vint8mf4x8_t): Ditto.
11815 (vuint8mf4x8_t): Ditto.
11816 (vint8mf2x2_t): Ditto.
11817 (vuint8mf2x2_t): Ditto.
11818 (vint8mf2x3_t): Ditto.
11819 (vuint8mf2x3_t): Ditto.
11820 (vint8mf2x4_t): Ditto.
11821 (vuint8mf2x4_t): Ditto.
11822 (vint8mf2x5_t): Ditto.
11823 (vuint8mf2x5_t): Ditto.
11824 (vint8mf2x6_t): Ditto.
11825 (vuint8mf2x6_t): Ditto.
11826 (vint8mf2x7_t): Ditto.
11827 (vuint8mf2x7_t): Ditto.
11828 (vint8mf2x8_t): Ditto.
11829 (vuint8mf2x8_t): Ditto.
11830 (vint8m1x2_t): Ditto.
11831 (vuint8m1x2_t): Ditto.
11832 (vint8m1x3_t): Ditto.
11833 (vuint8m1x3_t): Ditto.
11834 (vint8m1x4_t): Ditto.
11835 (vuint8m1x4_t): Ditto.
11836 (vint8m1x5_t): Ditto.
11837 (vuint8m1x5_t): Ditto.
11838 (vint8m1x6_t): Ditto.
11839 (vuint8m1x6_t): Ditto.
11840 (vint8m1x7_t): Ditto.
11841 (vuint8m1x7_t): Ditto.
11842 (vint8m1x8_t): Ditto.
11843 (vuint8m1x8_t): Ditto.
11844 (vint8m2x2_t): Ditto.
11845 (vuint8m2x2_t): Ditto.
11846 (vint8m2x3_t): Ditto.
11847 (vuint8m2x3_t): Ditto.
11848 (vint8m2x4_t): Ditto.
11849 (vuint8m2x4_t): Ditto.
11850 (vint8m4x2_t): Ditto.
11851 (vuint8m4x2_t): Ditto.
11852 (vint16mf4x2_t): Ditto.
11853 (vuint16mf4x2_t): Ditto.
11854 (vint16mf4x3_t): Ditto.
11855 (vuint16mf4x3_t): Ditto.
11856 (vint16mf4x4_t): Ditto.
11857 (vuint16mf4x4_t): Ditto.
11858 (vint16mf4x5_t): Ditto.
11859 (vuint16mf4x5_t): Ditto.
11860 (vint16mf4x6_t): Ditto.
11861 (vuint16mf4x6_t): Ditto.
11862 (vint16mf4x7_t): Ditto.
11863 (vuint16mf4x7_t): Ditto.
11864 (vint16mf4x8_t): Ditto.
11865 (vuint16mf4x8_t): Ditto.
11866 (vint16mf2x2_t): Ditto.
11867 (vuint16mf2x2_t): Ditto.
11868 (vint16mf2x3_t): Ditto.
11869 (vuint16mf2x3_t): Ditto.
11870 (vint16mf2x4_t): Ditto.
11871 (vuint16mf2x4_t): Ditto.
11872 (vint16mf2x5_t): Ditto.
11873 (vuint16mf2x5_t): Ditto.
11874 (vint16mf2x6_t): Ditto.
11875 (vuint16mf2x6_t): Ditto.
11876 (vint16mf2x7_t): Ditto.
11877 (vuint16mf2x7_t): Ditto.
11878 (vint16mf2x8_t): Ditto.
11879 (vuint16mf2x8_t): Ditto.
11880 (vint16m1x2_t): Ditto.
11881 (vuint16m1x2_t): Ditto.
11882 (vint16m1x3_t): Ditto.
11883 (vuint16m1x3_t): Ditto.
11884 (vint16m1x4_t): Ditto.
11885 (vuint16m1x4_t): Ditto.
11886 (vint16m1x5_t): Ditto.
11887 (vuint16m1x5_t): Ditto.
11888 (vint16m1x6_t): Ditto.
11889 (vuint16m1x6_t): Ditto.
11890 (vint16m1x7_t): Ditto.
11891 (vuint16m1x7_t): Ditto.
11892 (vint16m1x8_t): Ditto.
11893 (vuint16m1x8_t): Ditto.
11894 (vint16m2x2_t): Ditto.
11895 (vuint16m2x2_t): Ditto.
11896 (vint16m2x3_t): Ditto.
11897 (vuint16m2x3_t): Ditto.
11898 (vint16m2x4_t): Ditto.
11899 (vuint16m2x4_t): Ditto.
11900 (vint16m4x2_t): Ditto.
11901 (vuint16m4x2_t): Ditto.
11902 (vint32mf2x2_t): Ditto.
11903 (vuint32mf2x2_t): Ditto.
11904 (vint32mf2x3_t): Ditto.
11905 (vuint32mf2x3_t): Ditto.
11906 (vint32mf2x4_t): Ditto.
11907 (vuint32mf2x4_t): Ditto.
11908 (vint32mf2x5_t): Ditto.
11909 (vuint32mf2x5_t): Ditto.
11910 (vint32mf2x6_t): Ditto.
11911 (vuint32mf2x6_t): Ditto.
11912 (vint32mf2x7_t): Ditto.
11913 (vuint32mf2x7_t): Ditto.
11914 (vint32mf2x8_t): Ditto.
11915 (vuint32mf2x8_t): Ditto.
11916 (vint32m1x2_t): Ditto.
11917 (vuint32m1x2_t): Ditto.
11918 (vint32m1x3_t): Ditto.
11919 (vuint32m1x3_t): Ditto.
11920 (vint32m1x4_t): Ditto.
11921 (vuint32m1x4_t): Ditto.
11922 (vint32m1x5_t): Ditto.
11923 (vuint32m1x5_t): Ditto.
11924 (vint32m1x6_t): Ditto.
11925 (vuint32m1x6_t): Ditto.
11926 (vint32m1x7_t): Ditto.
11927 (vuint32m1x7_t): Ditto.
11928 (vint32m1x8_t): Ditto.
11929 (vuint32m1x8_t): Ditto.
11930 (vint32m2x2_t): Ditto.
11931 (vuint32m2x2_t): Ditto.
11932 (vint32m2x3_t): Ditto.
11933 (vuint32m2x3_t): Ditto.
11934 (vint32m2x4_t): Ditto.
11935 (vuint32m2x4_t): Ditto.
11936 (vint32m4x2_t): Ditto.
11937 (vuint32m4x2_t): Ditto.
11938 (vint64m1x2_t): Ditto.
11939 (vuint64m1x2_t): Ditto.
11940 (vint64m1x3_t): Ditto.
11941 (vuint64m1x3_t): Ditto.
11942 (vint64m1x4_t): Ditto.
11943 (vuint64m1x4_t): Ditto.
11944 (vint64m1x5_t): Ditto.
11945 (vuint64m1x5_t): Ditto.
11946 (vint64m1x6_t): Ditto.
11947 (vuint64m1x6_t): Ditto.
11948 (vint64m1x7_t): Ditto.
11949 (vuint64m1x7_t): Ditto.
11950 (vint64m1x8_t): Ditto.
11951 (vuint64m1x8_t): Ditto.
11952 (vint64m2x2_t): Ditto.
11953 (vuint64m2x2_t): Ditto.
11954 (vint64m2x3_t): Ditto.
11955 (vuint64m2x3_t): Ditto.
11956 (vint64m2x4_t): Ditto.
11957 (vuint64m2x4_t): Ditto.
11958 (vint64m4x2_t): Ditto.
11959 (vuint64m4x2_t): Ditto.
11960 (vfloat32mf2x2_t): Ditto.
11961 (vfloat32mf2x3_t): Ditto.
11962 (vfloat32mf2x4_t): Ditto.
11963 (vfloat32mf2x5_t): Ditto.
11964 (vfloat32mf2x6_t): Ditto.
11965 (vfloat32mf2x7_t): Ditto.
11966 (vfloat32mf2x8_t): Ditto.
11967 (vfloat32m1x2_t): Ditto.
11968 (vfloat32m1x3_t): Ditto.
11969 (vfloat32m1x4_t): Ditto.
11970 (vfloat32m1x5_t): Ditto.
11971 (vfloat32m1x6_t): Ditto.
11972 (vfloat32m1x7_t): Ditto.
11973 (vfloat32m1x8_t): Ditto.
11974 (vfloat32m2x2_t): Ditto.
11975 (vfloat32m2x3_t): Ditto.
11976 (vfloat32m2x4_t): Ditto.
11977 (vfloat32m4x2_t): Ditto.
11978 (vfloat64m1x2_t): Ditto.
11979 (vfloat64m1x3_t): Ditto.
11980 (vfloat64m1x4_t): Ditto.
11981 (vfloat64m1x5_t): Ditto.
11982 (vfloat64m1x6_t): Ditto.
11983 (vfloat64m1x7_t): Ditto.
11984 (vfloat64m1x8_t): Ditto.
11985 (vfloat64m2x2_t): Ditto.
11986 (vfloat64m2x3_t): Ditto.
11987 (vfloat64m2x4_t): Ditto.
11988 (vfloat64m4x2_t): Ditto.
11989 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TUPLE_TYPE):
11990 Ditto.
11991 * config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): Ditto.
11992 * config/riscv/riscv.cc (riscv_v_ext_tuple_mode_p): New
11993 function.
11994 (TUPLE_ENTRY): Ditto.
11995 (riscv_v_ext_mode_p): New function.
11996 (riscv_v_adjust_nunits): Add tuple mode adjustment.
11997 (riscv_classify_address): Ditto.
11998 (riscv_binary_cost): Ditto.
11999 (riscv_rtx_costs): Ditto.
12000 (riscv_secondary_memory_needed): Ditto.
12001 (riscv_hard_regno_nregs): Ditto.
12002 (riscv_hard_regno_mode_ok): Ditto.
12003 (riscv_vector_mode_supported_p): Ditto.
12004 (riscv_regmode_natural_size): Ditto.
12005 (riscv_array_mode): New function.
12006 (TARGET_ARRAY_MODE): New target hook.
12007 * config/riscv/riscv.md: Add tuple modes.
12008 * config/riscv/vector-iterators.md: Ditto.
12009 * config/riscv/vector.md (mov<mode>): Add tuple modes data
12010 movement.
12011 (*mov<VT:mode>_<P:mode>): Ditto.
12012
12013 2023-05-03 Richard Biener <rguenther@suse.de>
12014
12015 * cse.cc (cse_insn): Track an equivalence to the destination
12016 separately and delay using src_related for it.
12017
12018 2023-05-03 Richard Biener <rguenther@suse.de>
12019
12020 * cse.cc (HASH): Turn into inline function and mix
12021 in another HASH_SHIFT bits.
12022 (SAFE_HASH): Likewise.
12023
12024 2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12025
12026 PR target/99195
12027 * config/aarch64/aarch64-simd.md (aarch64_<sur>h<addsub><mode>): Rename to...
12028 (aarch64_<sur>h<addsub><mode><vczle><vczbe>): ... This.
12029
12030 2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12031
12032 PR target/99195
12033 * config/aarch64/aarch64-simd.md (add<mode>3): Rename to...
12034 (add<mode>3<vczle><vczbe>): ... This.
12035 (sub<mode>3): Rename to...
12036 (sub<mode>3<vczle><vczbe>): ... This.
12037 (mul<mode>3): Rename to...
12038 (mul<mode>3<vczle><vczbe>): ... This.
12039 (*div<mode>3): Rename to...
12040 (*div<mode>3<vczle><vczbe>): ... This.
12041 (neg<mode>2): Rename to...
12042 (neg<mode>2<vczle><vczbe>): ... This.
12043 (abs<mode>2): Rename to...
12044 (abs<mode>2<vczle><vczbe>): ... This.
12045 (<frint_pattern><mode>2): Rename to...
12046 (<frint_pattern><mode>2<vczle><vczbe>): ... This.
12047 (<fmaxmin><mode>3): Rename to...
12048 (<fmaxmin><mode>3<vczle><vczbe>): ... This.
12049 (*sqrt<mode>2): Rename to...
12050 (*sqrt<mode>2<vczle><vczbe>): ... This.
12051
12052 2023-05-03 Kito Cheng <kito.cheng@sifive.com>
12053
12054 * doc/md.texi (RISC-V): Add vr, vm, vd constarint.
12055
12056 2023-05-03 Martin Liska <mliska@suse.cz>
12057
12058 PR tree-optimization/109693
12059 * value-range-storage.cc (vrange_allocator::vrange_allocator):
12060 Remove unused field.
12061 * value-range-storage.h: Likewise.
12062
12063 2023-05-02 Andrew Pinski <apinski@marvell.com>
12064
12065 * tree-ssa-phiopt.cc (move_stmt): New function.
12066 (match_simplify_replacement): Use move_stmt instead
12067 of the inlined version.
12068
12069 2023-05-02 Andrew Pinski <apinski@marvell.com>
12070
12071 * match.pd (a != 0 ? CLRSB(a) : CST -> CLRSB(a)): New
12072 pattern.
12073
12074 2023-05-02 Andrew Pinski <apinski@marvell.com>
12075
12076 PR tree-optimization/109702
12077 * match.pd: Fix "a != 0 ? FUNC(a) : CST" patterns
12078 for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
12079
12080 2023-05-02 Andrew Pinski <apinski@marvell.com>
12081
12082 PR target/109657
12083 * config/aarch64/aarch64.md (*cmov<mode>_insn_m1): New
12084 insn_and_split pattern.
12085
12086 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12087
12088 * config/riscv/sync.md (atomic_load<mode>): Implement atomic
12089 load mapping.
12090
12091 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12092
12093 * config/riscv/sync.md (mem_thread_fence_1): Change fence
12094 depending on the given memory model.
12095
12096 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12097
12098 * config/riscv/riscv-protos.h (riscv_union_memmodels): Expose
12099 riscv_union_memmodels function to sync.md.
12100 * config/riscv/riscv.cc (riscv_union_memmodels): Add function to
12101 get the union of two memmodels in sync.md.
12102 (riscv_print_operand): Add %I and %J flags that output the
12103 optimal LR/SC flag bits for a given memory model.
12104 * config/riscv/sync.md: Remove static .aqrl bits on LR op/.rl
12105 bits on SC op and replace with optimized %I, %J flags.
12106
12107 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12108
12109 * config/riscv/riscv.cc
12110 (riscv_memmodel_needs_amo_release): Change function name.
12111 (riscv_print_operand): Remove unneeded %F case.
12112 * config/riscv/sync.md: Remove unneeded fences.
12113
12114 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12115
12116 PR target/89835
12117 * config/riscv/sync.md (atomic_store<mode>): Use simple store
12118 instruction in combination with fence(s).
12119
12120 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12121
12122 * config/riscv/riscv.cc (riscv_print_operand): Change behavior
12123 of %A to include release bits.
12124
12125 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12126
12127 * config/riscv/sync.md (atomic_cas_value_strong<mode>): Change
12128 FENCE/LR.aq/SC.aq into sequentially consistent LR.aqrl/SC.rl
12129 pair.
12130
12131 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12132
12133 * config/riscv/sync.md: Change LR.aq/SC.rl pairs into
12134 sequentially consistent LR.aqrl/SC.rl pairs.
12135
12136 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
12137
12138 * config/riscv/riscv.cc: Remove MEMMODEL_SYNC_* cases and
12139 sanitize memmodel input with memmodel_base.
12140
12141 2023-05-02 Yanzhang Wang <yanzhang.wang@intel.com>
12142 Pan Li <pan2.li@intel.com>
12143
12144 PR target/109617
12145 * config/riscv/vector-iterators.md: Support VNx2HI and VNX4DI when MIN_VLEN >= 128.
12146
12147 2023-05-02 Romain Naour <romain.naour@gmail.com>
12148
12149 * config/riscv/genrvv-type-indexer.cc: Use log2 from the C header, without
12150 the namespace.
12151
12152 2023-05-02 Martin Liska <mliska@suse.cz>
12153
12154 * doc/invoke.texi: Update documentation based on param.opt file.
12155
12156 2023-05-02 Richard Biener <rguenther@suse.de>
12157
12158 PR tree-optimization/109672
12159 * tree-vect-stmts.cc (vectorizable_operation): For plus,
12160 minus and negate always check the vector mode is word mode.
12161
12162 2023-05-01 Andrew Pinski <apinski@marvell.com>
12163
12164 * tree-ssa-phiopt.cc: Update comment about
12165 how the transformation are implemented.
12166
12167 2023-05-01 Jeff Law <jlaw@ventanamicro>
12168
12169 * config/stormy16/stormy16.cc (TARGET_LRA_P): Remove defintion.
12170
12171 2023-05-01 Jeff Law <jlaw@ventanamicro>
12172
12173 * config/cris/cris.cc (TARGET_LRA_P): Remove.
12174 * config/epiphany/epiphany.cc (TARGET_LRA_P): Remove.
12175 * config/iq2000/iq2000.cc (TARGET_LRA_P): Remove.
12176 * config/m32r/m32r.cc (TARGET_LRA_P): Remove.
12177 * config/microblaze/microblaze.cc (TARGET_LRA_P): Remove.
12178 * config/mmix/mmix.cc (TARGET_LRA_P): Remove.
12179
12180 2023-05-01 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
12181
12182 * print-tree.h (PRINT_DECL_REMAP_DEBUG): New flag.
12183 * print-tree.cc (print_decl_identifier): Implement it.
12184 * toplev.cc (output_stack_usage_1): Use it.
12185
12186 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12187
12188 * value-range.h (class int_range): Remove gt_ggc_mx and gt_pch_nx
12189 friends.
12190
12191 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12192
12193 * value-range.h (irange::set_nonzero): Inline.
12194
12195 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12196
12197 * gimple-range-op.cc (cfn_ffs::fold_range): Use the correct
12198 precision.
12199 * gimple-ssa-warn-alloca.cc (alloca_call_type): Use <2> for
12200 invalid_range, as it is an inverse range.
12201 * tree-vrp.cc (find_case_label_range): Avoid trees.
12202 * value-range.cc (irange::irange_set): Delete.
12203 (irange::irange_set_1bit_anti_range): Delete.
12204 (irange::irange_set_anti_range): Delete.
12205 (irange::set): Cleanup.
12206 * value-range.h (class irange): Remove irange_set,
12207 irange_set_anti_range, irange_set_1bit_anti_range.
12208 (irange::set_undefined): Remove set to m_type.
12209
12210 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12211
12212 * range-op.cc (update_known_bitmask): Adjust for irange containing
12213 wide_ints internally.
12214 * tree-ssanames.cc (set_nonzero_bits): Same.
12215 * tree-ssanames.h (set_nonzero_bits): Same.
12216 * value-range-storage.cc (irange_storage::set_irange): Same.
12217 (irange_storage::get_irange): Same.
12218 * value-range.cc (irange::operator=): Same.
12219 (irange::irange_set): Same.
12220 (irange::irange_set_1bit_anti_range): Same.
12221 (irange::irange_set_anti_range): Same.
12222 (irange::set): Same.
12223 (irange::verify_range): Same.
12224 (irange::contains_p): Same.
12225 (irange::irange_single_pair_union): Same.
12226 (irange::union_): Same.
12227 (irange::irange_contains_p): Same.
12228 (irange::intersect): Same.
12229 (irange::invert): Same.
12230 (irange::set_range_from_nonzero_bits): Same.
12231 (irange::set_nonzero_bits): Same.
12232 (mask_to_wi): Same.
12233 (irange::intersect_nonzero_bits): Same.
12234 (irange::union_nonzero_bits): Same.
12235 (gt_ggc_mx): Same.
12236 (gt_pch_nx): Same.
12237 (tree_range): Same.
12238 (range_tests_strict_enum): Same.
12239 (range_tests_misc): Same.
12240 (range_tests_nonzero_bits): Same.
12241 * value-range.h (irange::type): Same.
12242 (irange::varying_compatible_p): Same.
12243 (irange::irange): Same.
12244 (int_range::int_range): Same.
12245 (irange::set_undefined): Same.
12246 (irange::set_varying): Same.
12247 (irange::lower_bound): Same.
12248 (irange::upper_bound): Same.
12249
12250 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12251
12252 * gimple-range-fold.cc (tree_lower_bound): Delete.
12253 (tree_upper_bound): Delete.
12254 (vrp_val_max): Delete.
12255 (vrp_val_min): Delete.
12256 (fold_using_range::range_of_ssa_name_with_loop_info): Call
12257 range_of_var_in_loop.
12258 * vr-values.cc (valid_value_p): Delete.
12259 (fix_overflow): Delete.
12260 (get_scev_info): New.
12261 (bounds_of_var_in_loop): Refactor into...
12262 (induction_variable_may_overflow_p): ...this,
12263 (range_from_loop_direction): ...and this,
12264 (range_of_var_in_loop): ...and this.
12265 * vr-values.h (bounds_of_var_in_loop): Delete.
12266 (range_of_var_in_loop): New.
12267
12268 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12269
12270 * gimple-range-fold.cc (adjust_pointer_diff_expr): Rewrite with
12271 irange_val*.
12272 (vrp_val_max): New.
12273 (vrp_val_min): New.
12274 * gimple-range-op.cc (cfn_strlen::fold_range): Use irange_val_*.
12275 * range-op.cc (max_limit): Same.
12276 (min_limit): Same.
12277 (plus_minus_ranges): Same.
12278 (operator_rshift::op1_range): Same.
12279 (operator_cast::inside_domain_p): Same.
12280 * value-range.cc (vrp_val_is_max): Delete.
12281 (vrp_val_is_min): Delete.
12282 (range_tests_misc): Use irange_val_*.
12283 * value-range.h (vrp_val_is_min): Delete.
12284 (vrp_val_is_max): Delete.
12285 (vrp_val_max): Delete.
12286 (irange_val_min): New.
12287 (vrp_val_min): Delete.
12288 (irange_val_max): New.
12289 * vr-values.cc (check_for_binary_op_overflow): Use irange_val_*.
12290
12291 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12292
12293 * fold-const.cc (expr_not_equal_to): Convert to irange wide_int API.
12294 * gimple-fold.cc (size_must_be_zero_p): Same.
12295 * gimple-loop-versioning.cc
12296 (loop_versioning::prune_loop_conditions): Same.
12297 * gimple-range-edge.cc (gcond_edge_range): Same.
12298 (gimple_outgoing_range::calc_switch_ranges): Same.
12299 * gimple-range-fold.cc (adjust_imagpart_expr): Same.
12300 (adjust_realpart_expr): Same.
12301 (fold_using_range::range_of_address): Same.
12302 (fold_using_range::relation_fold_and_or): Same.
12303 * gimple-range-gori.cc (gori_compute::gori_compute): Same.
12304 (range_is_either_true_or_false): Same.
12305 * gimple-range-op.cc (cfn_toupper_tolower::get_letter_range): Same.
12306 (cfn_clz::fold_range): Same.
12307 (cfn_ctz::fold_range): Same.
12308 * gimple-range-tests.cc (class test_expr_eval): Same.
12309 * gimple-ssa-warn-alloca.cc (alloca_call_type): Same.
12310 * ipa-cp.cc (ipa_value_range_from_jfunc): Same.
12311 (propagate_vr_across_jump_function): Same.
12312 (decide_whether_version_node): Same.
12313 * ipa-prop.cc (ipa_get_value_range): Same.
12314 * ipa-prop.h (ipa_range_set_and_normalize): Same.
12315 * range-op.cc (get_shift_range): Same.
12316 (value_range_from_overflowed_bounds): Same.
12317 (value_range_with_overflow): Same.
12318 (create_possibly_reversed_range): Same.
12319 (equal_op1_op2_relation): Same.
12320 (not_equal_op1_op2_relation): Same.
12321 (lt_op1_op2_relation): Same.
12322 (le_op1_op2_relation): Same.
12323 (gt_op1_op2_relation): Same.
12324 (ge_op1_op2_relation): Same.
12325 (operator_mult::op1_range): Same.
12326 (operator_exact_divide::op1_range): Same.
12327 (operator_lshift::op1_range): Same.
12328 (operator_rshift::op1_range): Same.
12329 (operator_cast::op1_range): Same.
12330 (operator_logical_and::fold_range): Same.
12331 (set_nonzero_range_from_mask): Same.
12332 (operator_bitwise_or::op1_range): Same.
12333 (operator_bitwise_xor::op1_range): Same.
12334 (operator_addr_expr::fold_range): Same.
12335 (pointer_plus_operator::wi_fold): Same.
12336 (pointer_or_operator::op1_range): Same.
12337 (INT): Same.
12338 (UINT): Same.
12339 (INT16): Same.
12340 (UINT16): Same.
12341 (SCHAR): Same.
12342 (UCHAR): Same.
12343 (range_op_cast_tests): Same.
12344 (range_op_lshift_tests): Same.
12345 (range_op_rshift_tests): Same.
12346 (range_op_bitwise_and_tests): Same.
12347 (range_relational_tests): Same.
12348 * range.cc (range_zero): Same.
12349 (range_nonzero): Same.
12350 * range.h (range_true): Same.
12351 (range_false): Same.
12352 (range_true_and_false): Same.
12353 * tree-data-ref.cc (split_constant_offset_1): Same.
12354 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
12355 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
12356 (find_unswitching_predicates_for_bb): Same.
12357 * tree-ssa-phiopt.cc (value_replacement): Same.
12358 * tree-ssa-threadbackward.cc
12359 (back_threader::find_taken_edge_cond): Same.
12360 * tree-ssanames.cc (ssa_name_has_boolean_range): Same.
12361 * tree-vrp.cc (find_case_label_range): Same.
12362 * value-query.cc (range_query::get_tree_range): Same.
12363 * value-range.cc (irange::set_nonnegative): Same.
12364 (frange::contains_p): Same.
12365 (frange::singleton_p): Same.
12366 (frange::internal_singleton_p): Same.
12367 (irange::irange_set): Same.
12368 (irange::irange_set_1bit_anti_range): Same.
12369 (irange::irange_set_anti_range): Same.
12370 (irange::set): Same.
12371 (irange::operator==): Same.
12372 (irange::singleton_p): Same.
12373 (irange::contains_p): Same.
12374 (irange::set_range_from_nonzero_bits): Same.
12375 (DEFINE_INT_RANGE_INSTANCE): Same.
12376 (INT): Same.
12377 (UINT): Same.
12378 (SCHAR): Same.
12379 (UINT128): Same.
12380 (UCHAR): Same.
12381 (range): New.
12382 (tree_range): New.
12383 (range_int): New.
12384 (range_uint): New.
12385 (range_uint128): New.
12386 (range_uchar): New.
12387 (range_char): New.
12388 (build_range3): Convert to irange wide_int API.
12389 (range_tests_irange3): Same.
12390 (range_tests_int_range_max): Same.
12391 (range_tests_strict_enum): Same.
12392 (range_tests_misc): Same.
12393 (range_tests_nonzero_bits): Same.
12394 (range_tests_nan): Same.
12395 (range_tests_signed_zeros): Same.
12396 * value-range.h (Value_Range::Value_Range): Same.
12397 (irange::set): Same.
12398 (irange::nonzero_p): Same.
12399 (irange::contains_p): Same.
12400 (range_includes_zero_p): Same.
12401 (irange::set_nonzero): Same.
12402 (irange::set_zero): Same.
12403 (contains_zero_p): Same.
12404 (frange::contains_p): Same.
12405 * vr-values.cc
12406 (simplify_using_ranges::op_with_boolean_value_range_p): Same.
12407 (bounds_of_var_in_loop): Same.
12408 (simplify_using_ranges::legacy_fold_cond_overflow): Same.
12409
12410 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12411
12412 * value-range.cc (irange::irange_union): Rename to...
12413 (irange::union_): ...this.
12414 (irange::irange_intersect): Rename to...
12415 (irange::intersect): ...this.
12416 * value-range.h (irange::union_): Delete.
12417 (irange::intersect): Delete.
12418
12419 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12420
12421 * vr-values.cc (bounds_of_var_in_loop): Convert to irange API.
12422
12423 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12424
12425 * vr-values.cc (check_for_binary_op_overflow): Tidy up by using
12426 ranger API.
12427 (compare_ranges): Delete.
12428 (compare_range_with_value): Delete.
12429 (bounds_of_var_in_loop): Tidy up by using ranger API.
12430 (simplify_using_ranges::fold_cond_with_ops): Cleanup and rename
12431 from vrp_evaluate_conditional_warnv_with_ops_using_ranges.
12432 (simplify_using_ranges::legacy_fold_cond_overflow): Remove
12433 strict_overflow_p and only_ranges.
12434 (simplify_using_ranges::legacy_fold_cond): Adjust call to
12435 legacy_fold_cond_overflow.
12436 (simplify_using_ranges::simplify_abs_using_ranges): Adjust for
12437 rename.
12438 (range_fits_type_p): Rename value_range to irange.
12439 * vr-values.h (range_fits_type_p): Adjust prototype.
12440
12441 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12442
12443 * value-range.cc (irange::irange_set_anti_range): Remove uses of
12444 tree_lower_bound and tree_upper_bound.
12445 (irange::verify_range): Same.
12446 (irange::operator==): Same.
12447 (irange::singleton_p): Same.
12448 * value-range.h (irange::tree_lower_bound): Delete.
12449 (irange::tree_upper_bound): Delete.
12450 (irange::lower_bound): Delete.
12451 (irange::upper_bound): Delete.
12452 (irange::zero_p): Remove uses of tree_lower_bound and
12453 tree_upper_bound.
12454
12455 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12456
12457 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Remove
12458 kind() call.
12459 (determine_value_range): Same.
12460 (record_nonwrapping_iv): Same.
12461 (infer_loop_bounds_from_signedness): Same.
12462 (scev_var_range_cant_overflow): Same.
12463 * tree-vrp.cc (operand_less_p): Delete.
12464 * tree-vrp.h (operand_less_p): Delete.
12465 * value-range.cc (get_legacy_range): Remove uses of deprecated API.
12466 (irange::value_inside_range): Delete.
12467 * value-range.h (vrange::kind): Delete.
12468 (irange::num_pairs): Remove check of m_kind.
12469 (irange::min): Delete.
12470 (irange::max): Delete.
12471
12472 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
12473
12474 * gimple-fold.cc (maybe_fold_comparisons_from_match_pd): Adjust
12475 for vrange_storage.
12476 * gimple-range-cache.cc (sbr_vector::sbr_vector): Same.
12477 (sbr_vector::grow): Same.
12478 (sbr_vector::set_bb_range): Same.
12479 (sbr_vector::get_bb_range): Same.
12480 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
12481 (sbr_sparse_bitmap::set_bb_range): Same.
12482 (sbr_sparse_bitmap::get_bb_range): Same.
12483 (block_range_cache::block_range_cache): Same.
12484 (ssa_global_cache::ssa_global_cache): Same.
12485 (ssa_global_cache::get_global_range): Same.
12486 (ssa_global_cache::set_global_range): Same.
12487 * gimple-range-cache.h: Same.
12488 * gimple-range-edge.cc
12489 (gimple_outgoing_range::gimple_outgoing_range): Same.
12490 (gimple_outgoing_range::switch_edge_range): Same.
12491 (gimple_outgoing_range::calc_switch_ranges): Same.
12492 * gimple-range-edge.h: Same.
12493 * gimple-range-infer.cc
12494 (infer_range_manager::infer_range_manager): Same.
12495 (infer_range_manager::get_nonzero): Same.
12496 (infer_range_manager::maybe_adjust_range): Same.
12497 (infer_range_manager::add_range): Same.
12498 * gimple-range-infer.h: Rename obstack_vrange_allocator to
12499 vrange_allocator.
12500 * tree-core.h (struct irange_storage_slot): Remove.
12501 (struct tree_ssa_name): Remove irange_info and frange_info. Make
12502 range_info a pointer to vrange_storage.
12503 * tree-ssanames.cc (range_info_fits_p): Adjust for vrange_storage.
12504 (range_info_alloc): Same.
12505 (range_info_free): Same.
12506 (range_info_get_range): Same.
12507 (range_info_set_range): Same.
12508 (get_nonzero_bits): Same.
12509 * value-query.cc (get_ssa_name_range_info): Same.
12510 * value-range-storage.cc (class vrange_internal_alloc): New.
12511 (class vrange_obstack_alloc): New.
12512 (class vrange_ggc_alloc): New.
12513 (vrange_allocator::vrange_allocator): New.
12514 (vrange_allocator::~vrange_allocator): New.
12515 (vrange_storage::alloc_slot): New.
12516 (vrange_allocator::alloc): New.
12517 (vrange_allocator::free): New.
12518 (vrange_allocator::clone): New.
12519 (vrange_allocator::clone_varying): New.
12520 (vrange_allocator::clone_undefined): New.
12521 (vrange_storage::alloc): New.
12522 (vrange_storage::set_vrange): Remove slot argument.
12523 (vrange_storage::get_vrange): Same.
12524 (vrange_storage::fits_p): Same.
12525 (vrange_storage::equal_p): New.
12526 (irange_storage::write_lengths_address): New.
12527 (irange_storage::lengths_address): New.
12528 (irange_storage_slot::alloc_slot): Remove.
12529 (irange_storage::alloc): New.
12530 (irange_storage_slot::irange_storage_slot): Remove.
12531 (irange_storage::irange_storage): New.
12532 (write_wide_int): New.
12533 (irange_storage_slot::set_irange): Remove.
12534 (irange_storage::set_irange): New.
12535 (read_wide_int): New.
12536 (irange_storage_slot::get_irange): Remove.
12537 (irange_storage::get_irange): New.
12538 (irange_storage_slot::size): Remove.
12539 (irange_storage::equal_p): New.
12540 (irange_storage_slot::num_wide_ints_needed): Remove.
12541 (irange_storage::size): New.
12542 (irange_storage_slot::fits_p): Remove.
12543 (irange_storage::fits_p): New.
12544 (irange_storage_slot::dump): Remove.
12545 (irange_storage::dump): New.
12546 (frange_storage_slot::alloc_slot): Remove.
12547 (frange_storage::alloc): New.
12548 (frange_storage_slot::set_frange): Remove.
12549 (frange_storage::set_frange): New.
12550 (frange_storage_slot::get_frange): Remove.
12551 (frange_storage::get_frange): New.
12552 (frange_storage_slot::fits_p): Remove.
12553 (frange_storage::equal_p): New.
12554 (frange_storage::fits_p): New.
12555 (ggc_vrange_allocator): New.
12556 (ggc_alloc_vrange_storage): New.
12557 * value-range-storage.h (class vrange_storage): Rewrite.
12558 (class irange_storage): Rewrite.
12559 (class frange_storage): Rewrite.
12560 (class obstack_vrange_allocator): Remove.
12561 (class ggc_vrange_allocator): Remove.
12562 (vrange_allocator::alloc_vrange): Remove.
12563 (vrange_allocator::alloc_irange): Remove.
12564 (vrange_allocator::alloc_frange): Remove.
12565 (ggc_alloc_vrange_storage): New.
12566 * value-range.h (class irange): Rename vrange_allocator to
12567 irange_storage.
12568 (class frange): Same.
12569
12570 2023-04-30 Roger Sayle <roger@nextmovesoftware.com>
12571
12572 * config/stormy16/stormy16.md (neghi2): Rewrite pattern using
12573 inc to avoid clobbering the carry flag.
12574
12575 2023-04-30 Andrew Pinski <apinski@marvell.com>
12576
12577 * match.pd: Add patterns for "a != 0 ? FUNC(a) : CST"
12578 for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
12579
12580 2023-04-30 Andrew Pinski <apinski@marvell.com>
12581
12582 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
12583 Allow some builtin/internal function calls which
12584 are known not to trap/throw.
12585 (phiopt_worker::match_simplify_replacement):
12586 Use name instead of getting the lhs again.
12587
12588 2023-04-30 Joakim Nohlgård <joakim@nohlgard.se>
12589
12590 * configure: Regenerate.
12591 * configure.ac: Use ld -r in the check for HAVE_LD_RO_RW_SECTION_MIXING
12592
12593 2023-04-29 Hans-Peter Nilsson <hp@axis.com>
12594
12595 * reload1.cc (emit_insn_if_valid_for_reload_1): Rename from
12596 emit_insn_if_valid_for_reload.
12597 (emit_insn_if_valid_for_reload): Call new helper, and if a SET fails
12598 to be recognized, also try emitting a parallel that clobbers
12599 TARGET_FLAGS_REGNUM, as applicable.
12600
12601 2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
12602
12603 * config/stormy16/stormy16.md (neghi2): Convert from a define_expand
12604 to a define_insn.
12605 (*rotatehi_1): New define_insn for efficient 2 insn sequence.
12606 (*rotatehi_8, *rotaterthi_8): New define_insn to emit a swpb.
12607
12608 2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
12609
12610 * config/stormy16/stormy16.md (any_lshift): New code iterator.
12611 (any_or_plus): Likewise.
12612 (any_rotate): Likewise.
12613 (*<any_lshift>_and_internal): New define_insn_and_split to
12614 recognize a logical shift followed by an AND, and split it
12615 again after reload.
12616 (*swpn): New define_insn matching xstormy16's swpn.
12617 (*swpn_zext): New define_insn recognizing swpn followed by
12618 zero_extendqihi2, i.e. with the high byte set to zero.
12619 (*swpn_sext): Likewise, for swpn followed by cbw.
12620 (*swpn_sext_2): Likewise, for an alternate RTL form.
12621 (*swpn_zext_ior): A pre-reload splitter so that an swpn+zext+ior
12622 sequence is split in the correct place to recognize the *swpn_zext
12623 followed by any_or_plus (ior, xor or plus) instruction.
12624
12625 2023-04-29 Mikael Pettersson <mikpelinux@gmail.com>
12626
12627 PR target/105525
12628 * config.gcc (vax-*-linux*): Add glibc-stdint.h.
12629 (lm32-*-uclinux*): Likewise.
12630
12631 2023-04-29 Fei Gao <gaofei@eswincomputing.com>
12632
12633 * config/riscv/riscv.cc (riscv_avoid_save_libcall): helper function
12634 for riscv_use_save_libcall.
12635 (riscv_use_save_libcall): call riscv_avoid_save_libcall.
12636 (riscv_compute_frame_info): restructure to decouple stack allocation
12637 for rv32e w/o save-restore.
12638
12639 2023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
12640
12641 * doc/install.texi: Fix documentation typo
12642
12643 2023-04-28 Matevos Mehrabyan <matevosmehrabyan@gmail.com>
12644
12645 * config/riscv/iterators.md (only_div, paired_mod): New iterators.
12646 (u): Add div/udiv cases.
12647 * config/riscv/riscv-protos.h (riscv_use_divmod_expander): Prototype.
12648 * config/riscv/riscv.cc (struct riscv_tune_param): Add field for
12649 divmod expansion.
12650 (rocket_tune_info, sifive_7_tune_info): Initialize new field.
12651 (thead_c906_tune_info): Likewise.
12652 (optimize_size_tune_info): Likewise.
12653 (riscv_use_divmod_expander): New function.
12654 * config/riscv/riscv.md (<u>divmod<mode>4): New expander.
12655
12656 2023-04-28 Karen Sargsyan <karen1999411@gmail.com>
12657
12658 * config/riscv/bitmanip.md: Added clmulr instruction.
12659 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
12660 * config/riscv/riscv.md: (UNSPEC_CLMULR): Add new unspec type.
12661 (type): Add clmul
12662 * config/riscv/riscv-cmo.def: Added built-in function for clmulr.
12663 * config/riscv/crypto.md: Move clmul[h] instructions to bitmanip.md.
12664 * config/riscv/riscv-scalar-crypto.def: Move clmul[h] built-in
12665 functions to riscv-cmo.def.
12666 * config/riscv/generic.md: Add clmul to list of instructions
12667 using the generic_imul reservation.
12668
12669 2023-04-28 Jivan Hakobyan <jivanhakobyan9@gmail.com>
12670
12671 * config/riscv/bitmanip.md: Added expanders for minu/maxu instructions
12672
12673 2023-04-28 Andrew Pinski <apinski@marvell.com>
12674
12675 PR tree-optimization/100958
12676 * tree-ssa-phiopt.cc (two_value_replacement): Remove.
12677 (pass_phiopt::execute): Don't call two_value_replacement.
12678 * match.pd (a !=/== CST1 ? CST2 : CST3): Add pattern to
12679 handle what two_value_replacement did.
12680
12681 2023-04-28 Andrew Pinski <apinski@marvell.com>
12682
12683 * match.pd: Add patterns for
12684 "(A CMP B) ? MIN/MAX<A, C> : MIN/MAX <B, C>".
12685
12686 2023-04-28 Andrew Pinski <apinski@marvell.com>
12687
12688 * match.pd: Factor out the deciding the min/max from
12689 the "(cond (cmp (convert1? x) c1) (convert2? x) c2)"
12690 pattern to ...
12691 * fold-const.cc (minmax_from_comparison): this new function.
12692 * fold-const.h (minmax_from_comparison): New prototype.
12693
12694 2023-04-28 Roger Sayle <roger@nextmovesoftware.com>
12695
12696 PR rtl-optimization/109476
12697 * lower-subreg.cc: Include explow.h for force_reg.
12698 (find_decomposable_shift_zext): Pass an additional SPEED_P argument.
12699 If decomposing a suitable LSHIFTRT and we're not splitting
12700 ZERO_EXTEND (based on the current SPEED_P), then use a ZERO_EXTEND
12701 instead of setting a high part SUBREG to zero, which helps combine.
12702 (decompose_multiword_subregs): Update call to resolve_shift_zext.
12703
12704 2023-04-28 Richard Biener <rguenther@suse.de>
12705
12706 * tree-vect-data-refs.cc (vect_analyze_data_refs): Always
12707 consider scatters.
12708 * tree-vect-stmts.cc (vect_model_store_cost): Pass in the
12709 gather-scatter info and cost emulated scatters accordingly.
12710 (get_load_store_type): Support emulated scatters.
12711 (vectorizable_store): Likewise. Emulate them by extracting
12712 scalar offsets and data, doing scalar stores.
12713
12714 2023-04-28 Richard Biener <rguenther@suse.de>
12715
12716 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
12717 Tame down element extracts and scalar loads for gather/scatter
12718 similar to elementwise strided accesses.
12719
12720 2023-04-28 Pan Li <pan2.li@intel.com>
12721 kito-cheng <kito.cheng@sifive.com>
12722
12723 * config/riscv/vector.md: Add new define split to perform
12724 the simplification.
12725
12726 2023-04-28 Richard Biener <rguenther@suse.de>
12727
12728 PR ipa/109652
12729 * ipa-param-manipulation.cc
12730 (ipa_param_body_adjustments::modify_expression): Allow
12731 conversion of a register to a non-register type. Elide
12732 conversions inside BIT_FIELD_REFs.
12733
12734 2023-04-28 Richard Biener <rguenther@suse.de>
12735
12736 PR tree-optimization/109644
12737 * tree-cfg.cc (verify_types_in_gimple_reference): Check
12738 register constraints on the outermost VIEW_CONVERT_EXPR
12739 only. Do not allow register or invariant bases on
12740 multi-level or possibly variable index handled components.
12741
12742 2023-04-28 Richard Biener <rguenther@suse.de>
12743
12744 * gimplify.cc (gimplify_compound_lval): When there's a
12745 non-register type produced by one of the handled component
12746 operations make sure we get a non-register base.
12747
12748 2023-04-28 Richard Biener <rguenther@suse.de>
12749
12750 PR tree-optimization/108752
12751 * tree-vect-generic.cc (build_replicated_const): Rename
12752 to build_replicated_int_cst and move to tree.{h,cc}.
12753 (do_plus_minus): Adjust.
12754 (do_negate): Likewise.
12755 * tree-vect-stmts.cc (vectorizable_operation): Emit emulated
12756 arithmetic vector operations in lowered form.
12757 * tree.h (build_replicated_int_cst): Declare.
12758 * tree.cc (build_replicated_int_cst): Moved from
12759 tree-vect-generic.cc build_replicated_const.
12760
12761 2023-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12762
12763 PR target/99195
12764 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): Rename to...
12765 (aarch64_rbit<mode><vczle><vczbe>): ... This.
12766 (neg<mode>2): Rename to...
12767 (neg<mode>2<vczle><vczbe>): ... This.
12768 (abs<mode>2): Rename to...
12769 (abs<mode>2<vczle><vczbe>): ... This.
12770 (aarch64_abs<mode>): Rename to...
12771 (aarch64_abs<mode><vczle><vczbe>): ... This.
12772 (one_cmpl<mode>2): Rename to...
12773 (one_cmpl<mode>2<vczle><vczbe>): ... This.
12774 (clrsb<mode>2): Rename to...
12775 (clrsb<mode>2<vczle><vczbe>): ... This.
12776 (clz<mode>2): Rename to...
12777 (clz<mode>2<vczle><vczbe>): ... This.
12778 (popcount<mode>2): Rename to...
12779 (popcount<mode>2<vczle><vczbe>): ... This.
12780
12781 2023-04-28 Jakub Jelinek <jakub@redhat.com>
12782
12783 * gimple-range-op.cc (class cfn_sqrt): New type.
12784 (op_cfn_sqrt): New variable.
12785 (gimple_range_op_handler::maybe_builtin_call): Handle
12786 CASE_CFN_SQRT{,_FN}.
12787
12788 2023-04-28 Aldy Hernandez <aldyh@redhat.com>
12789 Jakub Jelinek <jakub@redhat.com>
12790
12791 * value-range.h (frange_nextafter): Declare.
12792 * gimple-range-op.cc (class cfn_sincos): New.
12793 (op_cfn_sin, op_cfn_cos): New variables.
12794 (gimple_range_op_handler::maybe_builtin_call): Handle
12795 CASE_CFN_{SIN,COS}{,_FN}.
12796
12797 2023-04-28 Jakub Jelinek <jakub@redhat.com>
12798
12799 * target.def (libm_function_max_error): New target hook.
12800 * doc/tm.texi.in (TARGET_LIBM_FUNCTION_MAX_ERROR): Add.
12801 * doc/tm.texi: Regenerated.
12802 * targhooks.h (default_libm_function_max_error,
12803 glibc_linux_libm_function_max_error): Declare.
12804 * targhooks.cc: Include case-cfn-macros.h.
12805 (default_libm_function_max_error,
12806 glibc_linux_libm_function_max_error): New functions.
12807 * config/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12808 * config/linux-protos.h (linux_libm_function_max_error): Declare.
12809 * config/linux.cc: Include target.h and targhooks.h.
12810 (linux_libm_function_max_error): New function.
12811 * config/arc/arc.cc: Include targhooks.h and case-cfn-macros.h.
12812 (arc_libm_function_max_error): New function.
12813 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12814 * config/i386/i386.cc (ix86_libc_has_fast_function): Formatting fix.
12815 (ix86_libm_function_max_error): New function.
12816 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12817 * config/rs6000/rs6000-protos.h
12818 (rs6000_linux_libm_function_max_error): Declare.
12819 * config/rs6000/rs6000-linux.cc: Include target.h, targhooks.h, tree.h
12820 and case-cfn-macros.h.
12821 (rs6000_linux_libm_function_max_error): New function.
12822 * config/rs6000/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12823 * config/rs6000/linux64.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12824 * config/or1k/or1k.cc: Include targhooks.h and case-cfn-macros.h.
12825 (or1k_libm_function_max_error): New function.
12826 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
12827
12828 2023-04-28 Alexandre Oliva <oliva@adacore.com>
12829
12830 * gimple-harden-conditionals.cc (insert_edge_check_and_trap):
12831 Move detach value calls...
12832 (pass_harden_conditional_branches::execute): ... here.
12833 (pass_harden_compares::execute): Detach values before
12834 compares.
12835
12836 2023-04-27 Andrew Stubbs <ams@codesourcery.com>
12837
12838 * config/gcn/gcn-valu.md (cmul<conj_op><mode>3): Use gcn_gen_undef.
12839 (cml<addsub_as><mode>4): Likewise.
12840 (vec_addsub<mode>3): Likewise.
12841 (cadd<rot><mode>3): Likewise.
12842 (vec_fmaddsub<mode>4): Likewise.
12843 (vec_fmsubadd<mode>4): Likewise, and use sub for the odd lanes.
12844
12845 2023-04-27 Andrew Pinski <apinski@marvell.com>
12846
12847 * tree-ssa-phiopt.cc (phiopt_early_allow): Allow for
12848 up to 2 min/max expressions in the sequence/match code.
12849
12850 2023-04-27 Andrew Pinski <apinski@marvell.com>
12851
12852 * rtlanal.cc (may_trap_p_1): Treat SMIN/SMAX similar as
12853 COMPARISON.
12854 * tree-eh.cc (operation_could_trap_helper_p): Treate
12855 MIN_EXPR/MAX_EXPR similar as other comparisons.
12856
12857 2023-04-27 Andrew Pinski <apinski@marvell.com>
12858
12859 * tree-ssa-phiopt.cc (cond_store_replacement): Remove
12860 prototype.
12861 (cond_if_else_store_replacement): Likewise.
12862 (get_non_trapping): Likewise.
12863 (store_elim_worker): Move into ...
12864 (pass_cselim::execute): This.
12865
12866 2023-04-27 Andrew Pinski <apinski@marvell.com>
12867
12868 * tree-ssa-phiopt.cc (two_value_replacement): Remove
12869 prototype.
12870 (match_simplify_replacement): Likewise.
12871 (factor_out_conditional_conversion): Likewise.
12872 (value_replacement): Likewise.
12873 (minmax_replacement): Likewise.
12874 (spaceship_replacement): Likewise.
12875 (cond_removal_in_builtin_zero_pattern): Likewise.
12876 (hoist_adjacent_loads): Likewise.
12877 (tree_ssa_phiopt_worker): Move into ...
12878 (pass_phiopt::execute): this.
12879
12880 2023-04-27 Andrew Pinski <apinski@marvell.com>
12881
12882 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove
12883 do_store_elim argument and split that part out to ...
12884 (store_elim_worker): This new function.
12885 (pass_cselim::execute): Call store_elim_worker.
12886 (pass_phiopt::execute): Update call to tree_ssa_phiopt_worker.
12887
12888 2023-04-27 Jan Hubicka <jh@suse.cz>
12889
12890 * cfgloopmanip.h (unloop_loops): Export.
12891 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Unloop loops
12892 that no longer loop.
12893 * tree-ssa-loop-ivcanon.cc (unloop_loops): Export; do not free
12894 vectors of loops to unloop.
12895 (canonicalize_induction_variables): Free vectors here.
12896 (tree_unroll_loops_completely): Free vectors here.
12897
12898 2023-04-27 Richard Biener <rguenther@suse.de>
12899
12900 PR tree-optimization/109170
12901 * gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call):
12902 Handle __builtin_expect and similar via cfn_pass_through_arg1
12903 and inspecting the calls fnspec.
12904 * builtins.cc (builtin_fnspec): Handle BUILT_IN_EXPECT
12905 and BUILT_IN_EXPECT_WITH_PROBABILITY.
12906
12907 2023-04-27 Alexandre Oliva <oliva@adacore.com>
12908
12909 * genmultilib: Use CONFIG_SHELL to run sub-scripts.
12910
12911 2023-04-27 Aldy Hernandez <aldyh@redhat.com>
12912
12913 PR tree-optimization/109639
12914 * ipa-cp.cc (ipa_value_range_from_jfunc): Normalize range.
12915 (propagate_vr_across_jump_function): Same.
12916 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
12917 * ipa-prop.h (ipa_range_set_and_normalize): New.
12918 * value-range.cc (irange::set): Assert min and max are INTEGER_CST.
12919
12920 2023-04-27 Richard Biener <rguenther@suse.de>
12921
12922 * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Do not
12923 create a CTOR operand in the result when simplifying GIMPLE.
12924
12925 2023-04-27 Richard Biener <rguenther@suse.de>
12926
12927 * gimplify.cc (gimplify_compound_lval): When the base
12928 gimplified to a register make sure to split up chains
12929 of operations.
12930
12931 2023-04-27 Richard Biener <rguenther@suse.de>
12932
12933 PR ipa/109607
12934 * ipa-param-manipulation.h
12935 (ipa_param_body_adjustments::modify_expression): Add extra_stmts
12936 argument.
12937 * ipa-param-manipulation.cc
12938 (ipa_param_body_adjustments::modify_expression): Likewise.
12939 When we need a conversion and the replacement is a register
12940 split the conversion out.
12941 (ipa_param_body_adjustments::modify_assignment): Pass
12942 extra_stmts to RHS modify_expression.
12943
12944 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
12945
12946 * doc/extend.texi (Zero Length): Describe example.
12947
12948 2023-04-27 Richard Biener <rguenther@suse.de>
12949
12950 PR tree-optimization/109594
12951 * tree-ssa.cc (non_rewritable_mem_ref_base): Constrain
12952 what we rewrite to a register based on the above.
12953
12954 2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
12955
12956 * config/riscv/riscv.cc: Fix whitespace.
12957 * config/riscv/sync.md: Fix whitespace.
12958
12959 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
12960
12961 PR tree-optimization/108697
12962 * gimple-range-cache.cc (ssa_global_cache::clear_range): Do
12963 not clear the vector on an out of range query.
12964 (ssa_cache::dump): Use dump_range_query instead of get_range.
12965 (ssa_cache::dump_range_query): New.
12966 (ssa_lazy_cache::dump_range_query): New.
12967 (ssa_lazy_cache::set_range): New.
12968 * gimple-range-cache.h (ssa_cache::dump_range_query): New.
12969 (class ssa_lazy_cache): New.
12970 (ssa_lazy_cache::ssa_lazy_cache): New.
12971 (ssa_lazy_cache::~ssa_lazy_cache): New.
12972 (ssa_lazy_cache::get_range): New.
12973 (ssa_lazy_cache::clear_range): New.
12974 (ssa_lazy_cache::clear): New.
12975 (ssa_lazy_cache::dump): New.
12976 * gimple-range-path.cc (path_range_query::path_range_query): Do
12977 not allocate a ssa_cache object nor has_cache bitmap.
12978 (path_range_query::~path_range_query): Do not free objects.
12979 (path_range_query::clear_cache): Remove.
12980 (path_range_query::get_cache): Adjust.
12981 (path_range_query::set_cache): Remove.
12982 (path_range_query::dump): Don't call through a pointer.
12983 (path_range_query::internal_range_of_expr): Set cache directly.
12984 (path_range_query::reset_path): Clear cache directly.
12985 (path_range_query::ssa_range_in_phi): Fold with globals only.
12986 (path_range_query::compute_ranges_in_phis): Simply set range.
12987 (path_range_query::compute_ranges_in_block): Call cache directly.
12988 * gimple-range-path.h (class path_range_query): Replace bitmap
12989 and cache pointer with lazy cache object.
12990 * gimple-range.h (class assume_query): Use ssa_lazy_cache.
12991
12992 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
12993
12994 * gimple-range-cache.cc (ssa_cache::ssa_cache): Rename.
12995 (ssa_cache::~ssa_cache): Rename.
12996 (ssa_cache::has_range): New.
12997 (ssa_cache::get_range): Rename.
12998 (ssa_cache::set_range): Rename.
12999 (ssa_cache::clear_range): Rename.
13000 (ssa_cache::clear): Rename.
13001 (ssa_cache::dump): Rename and use get_range.
13002 (ranger_cache::get_global_range): Use get_range and set_range.
13003 (ranger_cache::range_of_def): Use get_range.
13004 * gimple-range-cache.h (class ssa_cache): Rename class and methods.
13005 (class ranger_cache): Use ssa_cache.
13006 * gimple-range-path.cc (path_range_query::path_range_query): Use
13007 ssa_cache.
13008 (path_range_query::get_cache): Use get_range.
13009 (path_range_query::set_cache): Use set_range.
13010 * gimple-range-path.h (class path_range_query): Use ssa_cache.
13011 * gimple-range.cc (assume_query::assume_range_p): Use get_range.
13012 (assume_query::range_of_expr): Use get_range.
13013 (assume_query::assume_query): Use set_range.
13014 (assume_query::calculate_op): Use get_range and set_range.
13015 * gimple-range.h (class assume_query): Use ssa_cache.
13016
13017 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
13018
13019 * gimple-range-cache.cc (sbr_vector::sbr_vector): Add parameter
13020 and local to optionally zero memory.
13021 (br_vector::grow): Only zero memory if flag is set.
13022 (class sbr_lazy_vector): New.
13023 (sbr_lazy_vector::sbr_lazy_vector): New.
13024 (sbr_lazy_vector::set_bb_range): New.
13025 (sbr_lazy_vector::get_bb_range): New.
13026 (sbr_lazy_vector::bb_range_p): New.
13027 (block_range_cache::set_bb_range): Check flags and Use sbr_lazy_vector.
13028 * gimple-range-gori.cc (gori_map::calculate_gori): Use
13029 param_vrp_switch_limit.
13030 (gori_compute::gori_compute): Use param_vrp_switch_limit.
13031 * params.opt (vrp_sparse_threshold): Rename from evrp_sparse_threshold.
13032 (vrp_switch_limit): Rename from evrp_switch_limit.
13033 (vrp_vector_threshold): New.
13034
13035 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
13036
13037 * value-relation.cc (dom_oracle::query_relation): Check early for lack
13038 of any relation.
13039 * value-relation.h (equiv_oracle::has_equiv_p): New.
13040
13041 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
13042
13043 PR tree-optimization/109417
13044 * gimple-range-gori.cc (range_def_chain::register_dependency):
13045 Save the ssa version number, not the pointer.
13046 (gori_compute::may_recompute_p): No need to check if a dependency
13047 is in the free list.
13048 * gimple-range-gori.h (class range_def_chain): Change ssa1 and ssa2
13049 fields to be unsigned int instead of trees.
13050 (ange_def_chain::depend1): Adjust.
13051 (ange_def_chain::depend2): Adjust.
13052 * gimple-range.h: Include "ssa.h" to inline ssa_name().
13053
13054 2023-04-26 David Edelsohn <dje.gcc@gmail.com>
13055
13056 * config/rs6000/aix72.h (TARGET_DEFAULT): Use ISA_2_6_MASKS_SERVER.
13057 * config/rs6000/aix73.h (TARGET_DEFAULT): Use ISA_2_7_MASKS_SERVER.
13058 (PROCESSOR_DEFAULT): Use PROCESSOR_POWER8.
13059
13060 2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
13061
13062 PR target/104338
13063 * config/riscv/riscv-protos.h: Add helper function stubs.
13064 * config/riscv/riscv.cc: Add helper functions for subword masking.
13065 * config/riscv/riscv.opt: Add command-line flags -minline-atomics and
13066 -mno-inline-atomics.
13067 * config/riscv/sync.md: Add masking logic and inline asm for fetch_and_op,
13068 fetch_and_nand, CAS, and exchange ops.
13069 * doc/invoke.texi: Add blurb regarding new command-line flags
13070 -minline-atomics and -mno-inline-atomics.
13071
13072 2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13073
13074 * config/aarch64/aarch64-simd.md (aarch64_rshrn2<mode>_insn_le):
13075 Reimplement using standard RTL codes instead of unspec.
13076 (aarch64_rshrn2<mode>_insn_be): Likewise.
13077 (aarch64_rshrn2<mode>): Adjust for the above.
13078 * config/aarch64/aarch64.md (UNSPEC_RSHRN): Delete.
13079
13080 2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13081
13082 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le): Reimplement
13083 with standard RTL codes instead of an UNSPEC.
13084 (aarch64_rshrn<mode>_insn_be): Likewise.
13085 (aarch64_rshrn<mode>): Adjust for the above.
13086 * config/aarch64/predicates.md (aarch64_simd_rshrn_imm_vec): Define.
13087
13088 2023-04-26 Pan Li <pan2.li@intel.com>
13089 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13090
13091 * config/riscv/riscv.cc (riscv_classify_address): Allow
13092 const0_rtx for the RVV load/store.
13093
13094 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13095
13096 * range-op.cc (range_op_cast_tests): Remove legacy support.
13097 * value-range-storage.h (vrange_allocator::alloc_irange): Same.
13098 * value-range.cc (irange::operator=): Same.
13099 (get_legacy_range): Same.
13100 (irange::copy_legacy_to_multi_range): Delete.
13101 (irange::copy_to_legacy): Delete.
13102 (irange::irange_set_anti_range): Delete.
13103 (irange::set): Remove legacy support.
13104 (irange::verify_range): Same.
13105 (irange::legacy_lower_bound): Delete.
13106 (irange::legacy_upper_bound): Delete.
13107 (irange::legacy_equal_p): Delete.
13108 (irange::operator==): Remove legacy support.
13109 (irange::singleton_p): Same.
13110 (irange::value_inside_range): Same.
13111 (irange::contains_p): Same.
13112 (intersect_ranges): Delete.
13113 (irange::legacy_intersect): Delete.
13114 (union_ranges): Delete.
13115 (irange::legacy_union): Delete.
13116 (irange::legacy_verbose_union_): Delete.
13117 (irange::legacy_verbose_intersect): Delete.
13118 (irange::irange_union): Remove legacy support.
13119 (irange::irange_intersect): Same.
13120 (irange::intersect): Same.
13121 (irange::invert): Same.
13122 (ranges_from_anti_range): Delete.
13123 (gt_pch_nx): Adjust for legacy removal.
13124 (gt_ggc_mx): Same.
13125 (range_tests_legacy): Delete.
13126 (range_tests_misc): Adjust for legacy removal.
13127 (range_tests): Same.
13128 * value-range.h (class irange): Same.
13129 (irange::legacy_mode_p): Delete.
13130 (ranges_from_anti_range): Delete.
13131 (irange::nonzero_p): Adjust for legacy removal.
13132 (irange::lower_bound): Same.
13133 (irange::upper_bound): Same.
13134 (irange::union_): Same.
13135 (irange::intersect): Same.
13136 (irange::set_nonzero): Same.
13137 (irange::set_zero): Same.
13138 * vr-values.cc (simplify_using_ranges::legacy_fold_cond_overflow): Same.
13139
13140 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13141
13142 * value-range.cc (irange::copy_legacy_to_multi_range): Rewrite use
13143 of range_has_numeric_bounds_p with irange API.
13144 (range_has_numeric_bounds_p): Delete.
13145 * value-range.h (range_has_numeric_bounds_p): Delete.
13146
13147 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13148
13149 * tree-data-ref.cc (compute_distributive_range): Replace uses of
13150 range_int_cst_p with irange API.
13151 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.
13152 * tree-vrp.h (range_int_cst_p): Delete.
13153 * vr-values.cc (check_for_binary_op_overflow): Replace usees of
13154 range_int_cst_p with irange API.
13155 (vr_set_zero_nonzero_bits): Same.
13156 (range_fits_type_p): Same.
13157 (simplify_using_ranges::simplify_casted_cond): Same.
13158 * tree-vrp.cc (range_int_cst_p): Remove.
13159
13160 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13161
13162 * tree-ssa-strlen.cc (compare_nonzero_chars): Convert to wide_ints.
13163
13164 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13165
13166 * builtins.cc (expand_builtin_strnlen): Rewrite deprecated irange
13167 API uses to new API.
13168 * gimple-predicate-analysis.cc (find_var_cmp_const): Same.
13169 * internal-fn.cc (get_min_precision): Same.
13170 * match.pd: Same.
13171 * tree-affine.cc (expr_to_aff_combination): Same.
13172 * tree-data-ref.cc (dr_step_indicator): Same.
13173 * tree-dfa.cc (get_ref_base_and_extent): Same.
13174 * tree-scalar-evolution.cc (iv_can_overflow_p): Same.
13175 * tree-ssa-phiopt.cc (two_value_replacement): Same.
13176 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
13177 * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
13178 * tree-ssa-strlen.cc (compare_nonzero_chars): Same.
13179 * tree-switch-conversion.cc (bit_test_cluster::emit): Same.
13180 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Same.
13181 * tree.cc (get_range_pos_neg): Same.
13182
13183 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13184
13185 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Use
13186 vrange::dump instead of ad-hoc dumper.
13187 * tree-ssa-strlen.cc (dump_strlen_info): Same.
13188 * value-range-pretty-print.cc (visit): Pass TDF_NOUID to
13189 dump_generic_node.
13190
13191 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13192
13193 * range-op.cc (operator_cast::op1_range): Use
13194 create_possibly_reversed_range.
13195 (operator_bitwise_and::simple_op1_range_solver): Same.
13196 * value-range.cc (swap_out_of_order_endpoints): Delete.
13197 (irange::set): Remove call to swap_out_of_order_endpoints.
13198
13199 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13200
13201 * builtins.cc (determine_block_size): Convert use of legacy API to
13202 get_legacy_range.
13203 * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same.
13204 (array_bounds_checker::check_array_ref): Same.
13205 * gimple-ssa-warn-restrict.cc
13206 (builtin_memref::extend_offset_range): Same.
13207 * ipa-cp.cc (ipcp_store_vr_results): Same.
13208 * ipa-fnsummary.cc (set_switch_stmt_execution_predicate): Same.
13209 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
13210 (ipa_write_jump_function): Same.
13211 * pointer-query.cc (get_size_range): Same.
13212 * tree-data-ref.cc (split_constant_offset): Same.
13213 * tree-ssa-strlen.cc (get_range): Same.
13214 (maybe_diag_stxncpy_trunc): Same.
13215 (strlen_pass::get_len_or_size): Same.
13216 (strlen_pass::count_nonzero_bytes_addr): Same.
13217 * tree-vect-patterns.cc (vect_get_range_info): Same.
13218 * value-range.cc (irange::maybe_anti_range): Remove.
13219 (get_legacy_range): New.
13220 (irange::copy_to_legacy): Use get_legacy_range.
13221 (ranges_from_anti_range): Same.
13222 * value-range.h (class irange): Remove maybe_anti_range.
13223 (get_legacy_range): New.
13224 * vr-values.cc (check_for_binary_op_overflow): Convert use of
13225 legacy API to get_legacy_range.
13226 (compare_ranges): Same.
13227 (compare_range_with_value): Same.
13228 (bounds_of_var_in_loop): Same.
13229 (find_case_label_ranges): Same.
13230 (simplify_using_ranges::simplify_switch_using_ranges): Same.
13231
13232 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13233
13234 * value-range-pretty-print.cc (vrange_printer::visit): Remove
13235 constant_p use.
13236 * value-range.cc (irange::constant_p): Remove.
13237 (irange::get_nonzero_bits_from_range): Remove constant_p use.
13238 * value-range.h (class irange): Remove constant_p.
13239 (irange::num_pairs): Remove constant_p use.
13240
13241 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13242
13243 * value-range.cc (irange::copy_legacy_to_multi_range): Remove
13244 symbolics support.
13245 (irange::set): Same.
13246 (irange::legacy_lower_bound): Same.
13247 (irange::legacy_upper_bound): Same.
13248 (irange::contains_p): Same.
13249 (range_tests_legacy): Same.
13250 (irange::normalize_addresses): Remove.
13251 (irange::normalize_symbolics): Remove.
13252 (irange::symbolic_p): Remove.
13253 * value-range.h (class irange): Remove symbolic_p,
13254 normalize_symbolics, and normalize_addresses.
13255 * vr-values.cc (simplify_using_ranges::two_valued_val_range_p):
13256 Remove symbolics support.
13257
13258 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13259
13260 * value-range.cc (irange::may_contain_p): Remove.
13261 * value-range.h (range_includes_zero_p): Rewrite may_contain_p
13262 usage with contains_p.
13263 * vr-values.cc (compare_range_with_value): Same.
13264
13265 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13266
13267 * tree-vrp.cc (supported_types_p): Remove.
13268 (defined_ranges_p): Remove.
13269 (range_fold_binary_expr): Remove.
13270 (range_fold_unary_expr): Remove.
13271 * tree-vrp.h (range_fold_unary_expr): Remove.
13272 (range_fold_binary_expr): Remove.
13273
13274 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13275
13276 * ipa-cp.cc (ipa_vr_operation_and_type_effects): Convert to ranger API.
13277 (ipa_value_range_from_jfunc): Same.
13278 (propagate_vr_across_jump_function): Same.
13279 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
13280 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
13281 * vr-values.cc (bounds_of_var_in_loop): Same.
13282
13283 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13284
13285 * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
13286 Add irange argument.
13287 (check_out_of_bounds_and_warn): Remove check for vr.
13288 (array_bounds_checker::check_array_ref): Remove pointer qualifier
13289 for vr and adjust accordingly.
13290 * gimple-array-bounds.h (get_value_range): Add irange argument.
13291 * value-query.cc (class equiv_allocator): Delete.
13292 (range_query::get_value_range): Delete.
13293 (range_query::range_query): Remove allocator access.
13294 (range_query::~range_query): Same.
13295 * value-query.h (get_value_range): Delete.
13296 * vr-values.cc
13297 (simplify_using_ranges::op_with_boolean_value_range_p): Remove
13298 call to get_value_range.
13299 (check_for_binary_op_overflow): Same.
13300 (simplify_using_ranges::legacy_fold_cond_overflow): Same.
13301 (simplify_using_ranges::simplify_abs_using_ranges): Same.
13302 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
13303 (simplify_using_ranges::simplify_casted_cond): Same.
13304 (simplify_using_ranges::simplify_switch_using_ranges): Same.
13305 (simplify_using_ranges::two_valued_val_range_p): Same.
13306
13307 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13308
13309 * vr-values.cc
13310 (simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops):
13311 Rename to...
13312 (simplify_using_ranges::legacy_fold_cond_overflow): ...this.
13313 (simplify_using_ranges::vrp_visit_cond_stmt): Rename to...
13314 (simplify_using_ranges::legacy_fold_cond): ...this.
13315 (simplify_using_ranges::fold_cond): Rename
13316 vrp_evaluate_conditional_warnv_with_ops to
13317 legacy_fold_cond_overflow.
13318 * vr-values.h (class vr_values): Replace vrp_visit_cond_stmt and
13319 vrp_evaluate_conditional_warnv_with_ops with legacy_fold_cond and
13320 legacy_fold_cond_overflow respectively.
13321
13322 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
13323
13324 * vr-values.cc (get_vr_for_comparison): Remove.
13325 (compare_name_with_value): Same.
13326 (vrp_evaluate_conditional_warnv_with_ops): Remove calls to
13327 compare_name_with_value.
13328 * vr-values.h: Remove compare_name_with_value.
13329 Remove get_vr_for_comparison.
13330
13331 2023-04-26 Roger Sayle <roger@nextmovesoftware.com>
13332
13333 * config/stormy16/stormy16.md (bswaphi2): New define_insn.
13334 (bswapsi2): New define_insn.
13335 (swaphi): New define_insn to exchange two registers (swpw).
13336 (define_peephole2): Recognize exchange of registers as swaphi.
13337
13338 2023-04-26 Richard Biener <rguenther@suse.de>
13339
13340 * gimple-range-path.cc (path_range_query::compute_outgoing_relations):
13341 Avoid last_stmt.
13342 * ipa-pure-const.cc (pass_nothrow::execute): Likewise.
13343 * predict.cc (apply_return_prediction): Likewise.
13344 * sese.cc (set_ifsese_condition): Likewise. Simplify.
13345 * tree-cfg.cc (assert_unreachable_fallthru_edge_p): Avoid last_stmt.
13346 (make_edges_bb): Likewise.
13347 (make_cond_expr_edges): Likewise.
13348 (end_recording_case_labels): Likewise.
13349 (make_gimple_asm_edges): Likewise.
13350 (cleanup_dead_labels): Likewise.
13351 (group_case_labels): Likewise.
13352 (gimple_can_merge_blocks_p): Likewise.
13353 (gimple_merge_blocks): Likewise.
13354 (find_taken_edge): Likewise. Also handle empty fallthru blocks.
13355 (gimple_duplicate_sese_tail): Avoid last_stmt.
13356 (find_loop_dist_alias): Likewise.
13357 (gimple_block_ends_with_condjump_p): Likewise.
13358 (gimple_purge_dead_eh_edges): Likewise.
13359 (gimple_purge_dead_abnormal_call_edges): Likewise.
13360 (pass_warn_function_return::execute): Likewise.
13361 (execute_fixup_cfg): Likewise.
13362 * tree-eh.cc (redirect_eh_edge_1): Likewise.
13363 (pass_lower_resx::execute): Likewise.
13364 (pass_lower_eh_dispatch::execute): Likewise.
13365 (cleanup_empty_eh): Likewise.
13366 * tree-if-conv.cc (if_convertible_bb_p): Likewise.
13367 (predicate_bbs): Likewise.
13368 (ifcvt_split_critical_edges): Likewise.
13369 * tree-loop-distribution.cc (create_edge_for_control_dependence):
13370 Likewise.
13371 (loop_distribution::transform_reduction_loop): Likewise.
13372 * tree-parloops.cc (transform_to_exit_first_loop_alt): Likewise.
13373 (try_transform_to_exit_first_loop_alt): Likewise.
13374 (transform_to_exit_first_loop): Likewise.
13375 (create_parallel_loop): Likewise.
13376 * tree-scalar-evolution.cc (get_loop_exit_condition): Likewise.
13377 * tree-ssa-dce.cc (mark_last_stmt_necessary): Likewise.
13378 (eliminate_unnecessary_stmts): Likewise.
13379 * tree-ssa-dom.cc
13380 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
13381 Likewise.
13382 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Likewise.
13383 (pass_tree_ifcombine::execute): Likewise.
13384 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Likewise.
13385 (should_duplicate_loop_header_p): Likewise.
13386 * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Likewise.
13387 (tree_estimate_loop_size): Likewise.
13388 (try_unroll_loop_completely): Likewise.
13389 * tree-ssa-loop-ivopts.cc (tree_ssa_iv_optimize_loop): Likewise.
13390 * tree-ssa-loop-manip.cc (ip_normal_pos): Likewise.
13391 (canonicalize_loop_ivs): Likewise.
13392 * tree-ssa-loop-niter.cc (determine_value_range): Likewise.
13393 (bound_difference): Likewise.
13394 (number_of_iterations_popcount): Likewise.
13395 (number_of_iterations_cltz): Likewise.
13396 (number_of_iterations_cltz_complement): Likewise.
13397 (simplify_using_initial_conditions): Likewise.
13398 (number_of_iterations_exit_assumptions): Likewise.
13399 (loop_niter_by_eval): Likewise.
13400 (estimate_numbers_of_iterations): Likewise.
13401
13402 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13403
13404 * config/riscv/vector.md: Refine vmadc/vmsbc RA constraint.
13405
13406 2023-04-26 Kewen Lin <linkw@linux.ibm.com>
13407
13408 PR target/108758
13409 * config/rs6000/rs6000-builtins.def
13410 (__builtin_vsx_scalar_cmp_exp_qp_eq, __builtin_vsx_scalar_cmp_exp_qp_gt
13411 __builtin_vsx_scalar_cmp_exp_qp_lt,
13412 __builtin_vsx_scalar_cmp_exp_qp_unordered): Move from stanza ieee128-hw
13413 to power9-vector.
13414
13415 2023-04-26 Kewen Lin <linkw@linux.ibm.com>
13416
13417 PR target/109069
13418 * config/rs6000/altivec.md (sldoi_to_mov<mode>): Replace predicate
13419 easy_vector_constant with const_vector_each_byte_same, add
13420 handlings in preparation for !easy_vector_constant, and update
13421 VECTOR_UNIT_ALTIVEC_OR_VSX_P with VECTOR_MEM_ALTIVEC_OR_VSX_P.
13422 * config/rs6000/predicates.md (const_vector_each_byte_same): New
13423 predicate.
13424
13425 2023-04-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13426
13427 * config/riscv/vector.md (*pred_cmp<mode>_merge_tie_mask): New pattern.
13428 (*pred_ltge<mode>_merge_tie_mask): Ditto.
13429 (*pred_cmp<mode>_scalar_merge_tie_mask): Ditto.
13430 (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto.
13431 (*pred_cmp<mode>_extended_scalar_merge_tie_mask): Ditto.
13432 (*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto.
13433 (*pred_cmp<mode>_narrow_merge_tie_mask): Ditto.
13434
13435 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13436
13437 * config/riscv/vector.md: Fix redundant vmv1r.v.
13438
13439 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13440
13441 * config/riscv/vector.md: Fix RA constraint.
13442
13443 2023-04-26 Pan Li <pan2.li@intel.com>
13444
13445 PR target/109272
13446 * tree-ssa-sccvn.cc (vn_reference_eq): add type vector subparts
13447 check for vn_reference equal.
13448
13449 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13450
13451 * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Add enum for
13452 auto-vectorization preference.
13453 (enum riscv_autovec_lmul_enum): Add enum for choosing LMUL of RVV
13454 auto-vectorization.
13455 * config/riscv/riscv.opt: Add compile option for RVV auto-vectorization.
13456
13457 2023-04-26 Jivan Hakobyan <jivanhakobyan9@gmail.com>
13458
13459 * config/riscv/bitmanip.md: Updated predicates of bclri<mode>_nottwobits
13460 and bclridisi_nottwobits patterns.
13461 * config/riscv/predicates.md: (not_uimm_extra_bit_or_nottwobits): Adjust
13462 predicate to avoid splitting arith constants.
13463 (const_nottwobits_not_arith_operand): New predicate.
13464
13465 2023-04-25 Hans-Peter Nilsson <hp@axis.com>
13466
13467 * recog.cc (peep2_attempt, peep2_update_life): Correct
13468 head-comment description of parameter match_len.
13469
13470 2023-04-25 Vineet Gupta <vineetg@rivosinc.com>
13471
13472 * config/riscv/riscv.md: riscv_move_integer() drop in_splitter arg.
13473 riscv_split_symbol() drop in_splitter arg.
13474 * config/riscv/riscv.cc: riscv_move_integer() drop in_splitter arg.
13475 riscv_split_symbol() drop in_splitter arg.
13476 riscv_force_temporary() drop in_splitter arg.
13477 * config/riscv/riscv-protos.h: riscv_move_integer() drop in_splitter arg.
13478 riscv_split_symbol() drop in_splitter arg.
13479
13480 2023-04-25 Eric Botcazou <ebotcazou@adacore.com>
13481
13482 * tree-ssa.cc (insert_debug_temp_for_var_def): Do not create
13483 superfluous debug temporaries for single GIMPLE assignments.
13484
13485 2023-04-25 Richard Biener <rguenther@suse.de>
13486
13487 PR tree-optimization/109609
13488 * attr-fnspec.h (arg_max_access_size_given_by_arg_p):
13489 Clarify semantics.
13490 * tree-ssa-alias.cc (check_fnspec): Correctly interpret
13491 the size given by arg_max_access_size_given_by_arg_p as
13492 maximum, not exact, size.
13493
13494 2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13495
13496 PR target/99195
13497 * config/aarch64/aarch64-simd.md (orn<mode>3): Rename to...
13498 (orn<mode>3<vczle><vczbe>): ... This.
13499 (bic<mode>3): Rename to...
13500 (bic<mode>3<vczle><vczbe>): ... This.
13501 (<su><maxmin><mode>3): Rename to...
13502 (<su><maxmin><mode>3<vczle><vczbe>): ... This.
13503
13504 2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13505
13506 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3): New define_expand.
13507 * config/aarch64/iterators.md (VQDIV): New mode iterator.
13508 (vnx2di): New mode attribute.
13509
13510 2023-04-25 Richard Biener <rguenther@suse.de>
13511
13512 PR rtl-optimization/109585
13513 * tree-ssa-alias.cc (aliasing_component_refs_p): Fix typo.
13514
13515 2023-04-25 Jakub Jelinek <jakub@redhat.com>
13516
13517 PR target/109566
13518 * config/rs6000/rs6000.cc (rs6000_is_valid_rotate_dot_mask): For
13519 !TARGET_64BIT, don't return true if UINTVAL (mask) << (63 - nb)
13520 is larger than signed int maximum.
13521
13522 2023-04-25 Martin Liska <mliska@suse.cz>
13523
13524 * doc/gcov.texi: Document the new "calls" field and document
13525 the API bump. Mention also "block_ids" for lines.
13526 * gcov.cc (output_intermediate_json_line): Output info about
13527 calls and extend branches as well.
13528 (generate_results): Bump version to 2.
13529 (output_line_details): Use block ID instead of a non-sensual
13530 index.
13531
13532 2023-04-25 Roger Sayle <roger@nextmovesoftware.com>
13533
13534 * config/stormy16/stormy16.md (zero_extendqihi2): Restore/fix
13535 length attribute for the first (memory operand) alternative.
13536
13537 2023-04-25 Victor Do Nascimento <victor.donascimento@arm.com>
13538
13539 * config/aarch64/aarch64-simd.md(aarch64_simd_stp<mode>): New.
13540 * config/aarch64/constraints.md: Make "Umn" relaxed memory
13541 constraint.
13542 * config/aarch64/iterators.md(ldpstp_vel_sz): New.
13543
13544 2023-04-25 Aldy Hernandez <aldyh@redhat.com>
13545
13546 * value-range.cc (frange::set): Adjust constructor.
13547 * value-range.h (nan_state::nan_state): Replace default
13548 constructor with one taking an argument.
13549
13550 2023-04-25 Aldy Hernandez <aldyh@redhat.com>
13551
13552 * ipa-cp.cc (ipa_range_contains_p): New.
13553 (decide_whether_version_node): Use it.
13554
13555 2023-04-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13556
13557 * tree-ssa-forwprop.cc (is_combined_permutation_identity): Try to
13558 simplify two successive VEC_PERM_EXPRs with same VLA mask,
13559 where mask chooses elements in reverse order.
13560
13561 2023-04-24 Andrew Pinski <apinski@marvell.com>
13562
13563 * tree-ssa-phiopt.cc (match_simplify_replacement): Add new arguments
13564 and support diamond shaped basic block form.
13565 (tree_ssa_phiopt_worker): Update call to match_simplify_replacement
13566
13567 2023-04-24 Andrew Pinski <apinski@marvell.com>
13568
13569 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
13570 Instead of calling last_and_only_stmt, look for the last statement
13571 manually.
13572
13573 2023-04-24 Andrew Pinski <apinski@marvell.com>
13574
13575 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
13576 New function.
13577 (match_simplify_replacement): Call
13578 empty_bb_or_one_feeding_into_p instead of doing it inline.
13579
13580 2023-04-24 Andrew Pinski <apinski@marvell.com>
13581
13582 PR tree-optimization/68894
13583 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove the
13584 continue for the do_hoist_loads diamond case.
13585
13586 2023-04-24 Andrew Pinski <apinski@marvell.com>
13587
13588 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Rearrange
13589 code for better code readability.
13590
13591 2023-04-24 Andrew Pinski <apinski@marvell.com>
13592
13593 PR tree-optimization/109604
13594 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Move the
13595 diamond form check from ...
13596 (minmax_replacement): Here.
13597
13598 2023-04-24 Patrick Palka <ppalka@redhat.com>
13599
13600 * tree.cc (strip_array_types): Don't define here.
13601 (is_typedef_decl): Don't define here.
13602 (typedef_variant_p): Don't define here.
13603 * tree.h (strip_array_types): Define here.
13604 (is_typedef_decl): Define here.
13605 (typedef_variant_p): Define here.
13606
13607 2023-04-24 Frederik Harwath <frederik@codesourcery.com>
13608
13609 * doc/generic.texi (OpenMP): Add != to allowed
13610 conditions and state that vars can be unsigned.
13611 * tree.def (OMP_FOR): Likewise.
13612
13613 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13614
13615 * config/aarch64/aarch64-simd.md (mulv2di3): New expander.
13616
13617 2023-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13618
13619 * doc/install.texi: Consistently use Solaris rather than Solaris 2.
13620 Remove explicit Solaris 11 references.
13621 Markup fixes.
13622 (Options specification, --with-gnu-as): as and gas always differ
13623 on Solaris.
13624 Remove /usr/ccs/bin reference.
13625 (Installing GCC: Binaries, Solaris (SPARC, Intel)): Remove.
13626 (i?86-*-solaris2*): Merge assembler, linker recommendations ...
13627 (*-*-solaris2*): ... here.
13628 Update bundled GCC versions.
13629 Don't refer to pre-built binaries.
13630 Remove /bin/sh warning.
13631 Update assembler, linker recommendations.
13632 Document GNAT bootstrap compiler.
13633 (sparc-sun-solaris2*): Remove non-UltraSPARC reference.
13634 (sparc64-*-solaris2*): Move content...
13635 (sparcv9-*-solaris2*): ...here.
13636 Add GDC for 64-bit bootstrap compilers.
13637
13638 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13639
13640 PR target/109406
13641 * config/aarch64/aarch64-sve.md (<optab><mode>3): Handle TARGET_SVE2 MUL
13642 case.
13643 * config/aarch64/aarch64-sve2.md (*aarch64_mul_unpredicated_<mode>): New
13644 pattern.
13645
13646 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13647
13648 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): Rename to...
13649 (aarch64_<su>abal2<mode>_insn): ... This. Use RTL codes instead of unspec.
13650 (aarch64_<su>abal2<mode>): New define_expand.
13651 * config/aarch64/aarch64.cc (aarch64_abd_rtx_p): New function.
13652 (aarch64_rtx_costs): Handle ABD rtxes.
13653 * config/aarch64/aarch64.md (UNSPEC_SABAL2, UNSPEC_UABAL2): Delete.
13654 * config/aarch64/iterators.md (ABAL2): Delete.
13655 (sur): Remove handling of UNSPEC_UABAL2 and UNSPEC_SABAL2.
13656
13657 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13658
13659 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>): Rename to...
13660 (aarch64_<su>abal<mode>): ... This. Use RTL codes instead of unspec.
13661 (<sur>sadv16qi): Rename to...
13662 (<su>sadv16qi): ... This. Adjust for the above.
13663 * config/aarch64/aarch64-sve.md (<sur>sad<vsi2qi>): Rename to...
13664 (<su>sad<vsi2qi>): ... This. Adjust for the above.
13665 * config/aarch64/aarch64.md (UNSPEC_SABAL, UNSPEC_UABAL): Delete.
13666 * config/aarch64/iterators.md (ABAL): Delete.
13667 (sur): Remove handling of UNSPEC_SABAL and UNSPEC_UABAL.
13668
13669 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13670
13671 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>): Rename to...
13672 (aarch64_<su>abdl2<mode>_insn): ... This. Use RTL codes instead of unspec.
13673 (aarch64_<su>abdl2<mode>): New define_expand.
13674 * config/aarch64/aarch64.md (UNSPEC_SABDL2, UNSPEC_UABDL2): Delete.
13675 * config/aarch64/iterators.md (ABDL2): Delete.
13676 (sur): Remove handling of UNSPEC_SABDL2 and UNSPEC_UABDL2.
13677
13678 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13679
13680 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): Rename to...
13681 (aarch64_<su>abdl<mode>): ... This. Use standard RTL ops instead of
13682 unspec.
13683 * config/aarch64/aarch64.md (UNSPEC_SABDL, UNSPEC_UABDL): Delete.
13684 * config/aarch64/iterators.md (ABDL): Delete.
13685 (sur): Remove handling of UNSPEC_SABDL and UNSPEC_UABDL.
13686
13687 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13688
13689 * config/aarch64/aarch64-simd.md
13690 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): New pattern.
13691
13692 2023-04-24 Richard Biener <rguenther@suse.de>
13693
13694 * gimple-ssa-split-paths.cc (is_feasible_trace): Avoid
13695 last_stmt.
13696 * graphite-scop-detection.cc (single_pred_cond_non_loop_exit):
13697 Likewise.
13698 * ipa-fnsummary.cc (set_cond_stmt_execution_predicate): Likewise.
13699 (set_switch_stmt_execution_predicate): Likewise.
13700 (phi_result_unknown_predicate): Likewise.
13701 * ipa-prop.cc (compute_complex_ancestor_jump_func): Likewise.
13702 (ipa_analyze_indirect_call_uses): Likewise.
13703 * predict.cc (predict_iv_comparison): Likewise.
13704 (predict_extra_loop_exits): Likewise.
13705 (predict_loops): Likewise.
13706 (tree_predict_by_opcode): Likewise.
13707 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
13708 Likewise.
13709 * gimple-pretty-print.cc (dump_implicit_edges): Likewise.
13710 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Likewise.
13711 (replace_phi_edge_with_variable): Likewise.
13712 (two_value_replacement): Likewise.
13713 (value_replacement): Likewise.
13714 (minmax_replacement): Likewise.
13715 (spaceship_replacement): Likewise.
13716 (cond_removal_in_builtin_zero_pattern): Likewise.
13717 * tree-ssa-reassoc.cc (maybe_optimize_range_tests): Likewise.
13718 * tree-ssa-sccvn.cc (vn_phi_eq): Likewise.
13719 (vn_phi_lookup): Likewise.
13720 (vn_phi_insert): Likewise.
13721 * tree-ssa-structalias.cc (compute_points_to_sets): Likewise.
13722 * tree-ssa-threadbackward.cc (back_threader::maybe_thread_block):
13723 Likewise.
13724 (back_threader_profitability::possibly_profitable_path_p):
13725 Likewise.
13726 * tree-ssa-threadedge.cc (jump_threader::thread_outgoing_edges):
13727 Likewise.
13728 * tree-switch-conversion.cc (pass_convert_switch::execute):
13729 Likewise.
13730 (pass_lower_switch<O0>::execute): Likewise.
13731 * tree-tailcall.cc (tree_optimize_tail_calls_1): Likewise.
13732 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
13733 * tree-vect-slp.cc (vect_slp_function): Likewise.
13734 * tree-vect-stmts.cc (cfun_returns): Likewise.
13735 * tree-vectorizer.cc (vect_loop_vectorized_call): Likewise.
13736 (vect_loop_dist_alias_call): Likewise.
13737
13738 2023-04-24 Richard Biener <rguenther@suse.de>
13739
13740 * cfgcleanup.cc (outgoing_edges_match): Use FORWARDER_BLOCK_P.
13741
13742 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13743
13744 * config/riscv/riscv-vsetvl.cc
13745 (vector_infos_manager::all_avail_in_compatible_p): New function.
13746 (pass_vsetvl::refine_vsetvls): Optimize vsetvls.
13747 * config/riscv/riscv-vsetvl.h: New function.
13748
13749 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13750
13751 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::pre_vsetvl): Add function
13752 comment for cleanup_insns.
13753
13754 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
13755
13756 * config/riscv/vector-iterators.md: New unspec to refine fault first load pattern.
13757 * config/riscv/vector.md: Refine fault first load pattern to erase avl from instructions
13758 with the fault first load property.
13759
13760 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13761
13762 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
13763 (aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.
13764
13765 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13766
13767 PR target/99195
13768 * config/aarch64/aarch64-simd.md (aarch64_addp<mode>): Rename to...
13769 (aarch64_addp<mode><vczle><vczbe>): ... This.
13770
13771 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
13772
13773 * config/stormy16/stormy16.cc (xstormy16_rtx_costs): Rewrite to
13774 provide reasonable values for common arithmetic operations and
13775 immediate operands (in several machine modes).
13776
13777 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
13778
13779 * config/stormy16/stormy16.cc (xstormy16_print_operand): Add %h
13780 format specifier to output high_part register name of SImode reg.
13781 * config/stormy16/stormy16.md (extendhisi2): New define_insn.
13782 (zero_extendqihi2): Fix lengths, consistent formatting and add
13783 "and Rx,#255" alternative, for documentation purposes.
13784 (zero_extendhisi2): New define_insn.
13785
13786 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
13787
13788 * config/stormy16/stormy16.cc (xstormy16_output_shift): Implement
13789 SImode shifts by two by performing a single bit SImode shift twice.
13790
13791 2023-04-23 Aldy Hernandez <aldyh@redhat.com>
13792
13793 PR tree-optimization/109593
13794 * value-range.cc (frange::operator==): Handle NANs.
13795
13796 2023-04-23 liuhongt <hongtao.liu@intel.com>
13797
13798 PR rtl-optimization/108707
13799 * ira-costs.cc (scan_one_insn): Use NO_REGS instead of
13800 GENERAL_REGS when preferred reg_class is not known.
13801
13802 2023-04-22 Andrew Pinski <apinski@marvell.com>
13803
13804 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
13805 Change the code around slightly to move diamond
13806 handling for do_store_elim/do_hoist_loads out of
13807 the big if/else.
13808
13809 2023-04-22 Andrew Pinski <apinski@marvell.com>
13810
13811 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
13812 Remove check on empty_block_p.
13813
13814 2023-04-22 Jakub Jelinek <jakub@redhat.com>
13815
13816 PR bootstrap/109589
13817 * system.h (class auto_mpz): Workaround PR62101 bug in GCC 4.8 and 4.9.
13818 * realmpfr.h (class auto_mpfr): Likewise.
13819
13820 2023-04-22 Jakub Jelinek <jakub@redhat.com>
13821
13822 PR tree-optimization/109583
13823 * match.pd (fneg/fadd simplify): Don't call related_vector_mode
13824 if vec_mode is not VECTOR_MODE_P.
13825
13826 2023-04-22 Jan Hubicka <hubicka@ucw.cz>
13827 Ondrej Kubanek <kubanek0ondrej@gmail.com>
13828
13829 * cfgloopmanip.h (adjust_loop_info_after_peeling): Declare.
13830 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix updating of
13831 loop profile and bounds after header duplication.
13832 * tree-ssa-loop-ivcanon.cc (adjust_loop_info_after_peeling):
13833 Break out from try_peel_loop; fix handling of 0 iterations.
13834 (try_peel_loop): Use adjust_loop_info_after_peeling.
13835
13836 2023-04-21 Andrew MacLeod <amacleod@redhat.com>
13837
13838 PR tree-optimization/109546
13839 * tree-vrp.cc (remove_unreachable::remove_and_update_globals): Do
13840 not fold conditions with ADDR_EXPR early.
13841
13842 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13843
13844 * config/aarch64/aarch64.md (aarch64_umax<mode>3_insn): Delete.
13845 (umax<mode>3): Emit raw UMAX RTL instead of going through gen_ function
13846 for umax.
13847 (<optab><mode>3): New define_expand for MAXMIN_NOUMAX codes.
13848 (*aarch64_<optab><mode>3_zero): Define.
13849 (*aarch64_<optab><mode>3_cssc): Likewise.
13850 * config/aarch64/iterators.md (maxminand): New code attribute.
13851
13852 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13853
13854 PR target/108779
13855 * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Define.
13856 * config/aarch64/aarch64-protos.h (aarch64_output_load_tp):
13857 Define prototype.
13858 * config/aarch64/aarch64.cc (aarch64_tpidr_register): Declare.
13859 (aarch64_override_options_internal): Handle the above.
13860 (aarch64_output_load_tp): New function.
13861 * config/aarch64/aarch64.md (aarch64_load_tp_hard): Call
13862 aarch64_output_load_tp.
13863 * config/aarch64/aarch64.opt (aarch64_tp_reg): Define enum.
13864 (mtp=): New option.
13865 * doc/invoke.texi (AArch64 Options): Document -mtp=.
13866
13867 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13868
13869 PR target/99195
13870 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Define.
13871 (add_vec_concat_subst_be): Likewise.
13872 (vczle): Likewise.
13873 (vczbe): Likewise.
13874 (add<mode>3): Rename to...
13875 (add<mode>3<vczle><vczbe>): ... This.
13876 (sub<mode>3): Rename to...
13877 (sub<mode>3<vczle><vczbe>): ... This.
13878 (mul<mode>3): Rename to...
13879 (mul<mode>3<vczle><vczbe>): ... This.
13880 (and<mode>3): Rename to...
13881 (and<mode>3<vczle><vczbe>): ... This.
13882 (ior<mode>3): Rename to...
13883 (ior<mode>3<vczle><vczbe>): ... This.
13884 (xor<mode>3): Rename to...
13885 (xor<mode>3<vczle><vczbe>): ... This.
13886 * config/aarch64/iterators.md (VDZ): Define.
13887
13888 2023-04-21 Patrick Palka <ppalka@redhat.com>
13889
13890 * tree.cc (walk_tree_1): Avoid repeatedly dereferencing tp
13891 and type_p.
13892
13893 2023-04-21 Jan Hubicka <jh@suse.cz>
13894
13895 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix previous
13896 commit.
13897
13898 2023-04-21 Vineet Gupta <vineetg@rivosinc.com>
13899
13900 * expmed.h (x_shift*_cost): convert to int [speed][mode][shift].
13901 (shift*_cost_ptr ()): Access x_shift*_cost array directly.
13902
13903 2023-04-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13904
13905 * config/aarch64/aarch64.cc (aarch64_simd_dup_constant): Use
13906 force_reg instead of copy_to_mode_reg.
13907 (aarch64_expand_vector_init): Likewise.
13908
13909 2023-04-21 Uroš Bizjak <ubizjak@gmail.com>
13910
13911 * config/i386/i386.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Remove.
13912 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P): Ditto.
13913 (REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P): Ditto.
13914 (FIRST_INDEX_REG, LAST_INDEX_REG): New defines.
13915 (LEGACY_INDEX_REG_P, LEGACY_INDEX_REGNO_P): New macros.
13916 (INDEX_REG_P, INDEX_REGNO_P): Ditto.
13917 (REGNO_OK_FOR_INDEX_P): Use INDEX_REGNO_P predicates.
13918 (REGNO_OK_FOR_INDEX_NONSTRICT_P): New macro.
13919 (EG_OK_FOR_BASE_NONSTRICT_P): Ditto.
13920 * config/i386/predicates.md (index_register_operand):
13921 Use REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
13922 * config/i386/i386.cc (ix86_legitimate_address_p): Use
13923 REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_BASE_NONSTRICT_P,
13924 REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
13925
13926 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
13927 Ondrej Kubanek <kubanek0ondrej@gmail.com>
13928
13929 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Update loop header and
13930 latch.
13931
13932 2023-04-21 Richard Biener <rguenther@suse.de>
13933
13934 * is-a.h (safe_is_a): New.
13935
13936 2023-04-21 Richard Biener <rguenther@suse.de>
13937
13938 * gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
13939 (gphi_iterator::operator*): Likewise.
13940
13941 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
13942 Michal Jires <michal@jires.eu>
13943
13944 * ipa-inline.cc (class inline_badness): New class.
13945 (edge_heap_t, edge_heap_node_t): Use inline_badness for badness instead
13946 of sreal.
13947 (update_edge_key): Update.
13948 (lookup_recursive_calls): Likewise.
13949 (recursive_inlining): Likewise.
13950 (add_new_edges_to_heap): Likewise.
13951 (inline_small_functions): Likewise.
13952
13953 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
13954
13955 * ipa-devirt.cc (odr_types_equivalent_p): Cleanup warned checks.
13956
13957 2023-04-21 Richard Biener <rguenther@suse.de>
13958
13959 PR tree-optimization/109573
13960 * tree-vect-loop.cc (vectorizable_live_operation): Allow
13961 unhandled SSA copy as well. Demote assert to checking only.
13962
13963 2023-04-21 Richard Biener <rguenther@suse.de>
13964
13965 * df-core.cc (df_analyze): Compute RPO on the reverse graph
13966 for DF_BACKWARD problems.
13967 (loop_post_order_compute): Rename to ...
13968 (loop_rev_post_order_compute): ... this, compute a RPO.
13969 (loop_inverted_post_order_compute): Rename to ...
13970 (loop_inverted_rev_post_order_compute): ... this, compute a RPO.
13971 (df_analyze_loop): Use RPO on the forward graph for DF_FORWARD
13972 problems, RPO on the inverted graph for DF_BACKWARD.
13973
13974 2023-04-21 Richard Biener <rguenther@suse.de>
13975
13976 * cfganal.h (inverted_rev_post_order_compute): Rename
13977 from ...
13978 (inverted_post_order_compute): ... this. Add struct function
13979 argument, change allocation to a C array.
13980 * cfganal.cc (inverted_rev_post_order_compute): Likewise.
13981 * lcm.cc (compute_antinout_edge): Adjust.
13982 * lra-lives.cc (lra_create_live_ranges_1): Likewise.
13983 * tree-ssa-dce.cc (remove_dead_stmt): Likewise.
13984 * tree-ssa-pre.cc (compute_antic): Likewise.
13985
13986 2023-04-21 Richard Biener <rguenther@suse.de>
13987
13988 * df.h (df_d::postorder_inverted): Change back to int *,
13989 clarify comments.
13990 * df-core.cc (rest_of_handle_df_finish): Adjust.
13991 (df_analyze_1): Likewise.
13992 (df_analyze): For DF_FORWARD problems use RPO on the forward
13993 graph. Adjust.
13994 (loop_inverted_post_order_compute): Adjust API.
13995 (df_analyze_loop): Adjust.
13996 (df_get_n_blocks): Likewise.
13997 (df_get_postorder): Likewise.
13998
13999 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
14000
14001 PR target/108270
14002 * config/riscv/riscv-vsetvl.cc
14003 (vector_infos_manager::all_empty_predecessor_p): New function.
14004 (pass_vsetvl::backward_demand_fusion): Ditto.
14005 * config/riscv/riscv-vsetvl.h: Ditto.
14006
14007 2023-04-21 Robin Dapp <rdapp@ventanamicro.com>
14008
14009 PR target/109582
14010 * config/riscv/generic.md: Change standard names to insn names.
14011
14012 2023-04-21 Richard Biener <rguenther@suse.de>
14013
14014 * lcm.cc (compute_antinout_edge): Use RPO on the inverted graph.
14015 (compute_laterin): Use RPO.
14016 (compute_available): Likewise.
14017
14018 2023-04-21 Peng Fan <fanpeng@loongson.cn>
14019
14020 * config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
14021
14022 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
14023
14024 PR target/109547
14025 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): New function.
14026 (vector_insn_info::skip_avl_compatible_p): Ditto.
14027 (vector_insn_info::merge): Remove default value.
14028 (pass_vsetvl::compute_local_backward_infos): Ditto.
14029 (pass_vsetvl::cleanup_insns): Add local vsetvl elimination.
14030 * config/riscv/riscv-vsetvl.h: Ditto.
14031
14032 2023-04-20 Alejandro Colomar <alx.manpages@gmail.com>
14033
14034 * doc/extend.texi (Common Function Attributes): Remove duplicate
14035 word.
14036
14037 2023-04-20 Andrew MacLeod <amacleod@redhat.com>
14038
14039 PR tree-optimization/109564
14040 * gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore
14041 UNDEFINED range names when deciding if all PHI arguments are the same,
14042
14043 2023-04-20 Jakub Jelinek <jakub@redhat.com>
14044
14045 PR tree-optimization/109011
14046 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Use
14047 .CTZ (X) = .POPCOUNT ((X - 1) & ~X) in preference to
14048 .CTZ (X) = PREC - .POPCOUNT (X | -X).
14049
14050 2023-04-20 Vladimir N. Makarov <vmakarov@redhat.com>
14051
14052 * lra-constraints.cc (match_reload): Exclude some hard regs for
14053 multi-reg inout reload pseudos used in asm in different mode.
14054
14055 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
14056
14057 * config/arm/arm.cc (thumb1_legitimate_address_p):
14058 Use VIRTUAL_REGISTER_P predicate.
14059 (arm_eliminable_register): Ditto.
14060 * config/avr/avr.md (push<mode>_1): Ditto.
14061 * config/bfin/predicates.md (register_no_elim_operand): Ditto.
14062 * config/h8300/predicates.md (register_no_sp_elim_operand): Ditto.
14063 * config/i386/predicates.md (register_no_elim_operand): Ditto.
14064 * config/iq2000/predicates.md (call_insn_operand): Ditto.
14065 * config/microblaze/microblaze.h (CALL_INSN_OP): Ditto.
14066
14067 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
14068
14069 PR target/78952
14070 * config/i386/predicates.md (extract_operator): New predicate.
14071 * config/i386/i386.md (any_extract): Remove code iterator.
14072 (*cmpqi_ext<mode>_1_mem_rex64): Use extract_operator predicate.
14073 (*cmpqi_ext<mode>_1): Ditto.
14074 (*cmpqi_ext<mode>_2): Ditto.
14075 (*cmpqi_ext<mode>_3_mem_rex64): Ditto.
14076 (*cmpqi_ext<mode>_3): Ditto.
14077 (*cmpqi_ext<mode>_4): Ditto.
14078 (*extzvqi_mem_rex64): Ditto.
14079 (*extzvqi): Ditto.
14080 (*insvqi_2): Ditto.
14081 (*extendqi<SWI24:mode>_ext_1): Ditto.
14082 (*addqi_ext<mode>_0): Ditto.
14083 (*addqi_ext<mode>_1): Ditto.
14084 (*addqi_ext<mode>_2): Ditto.
14085 (*subqi_ext<mode>_0): Ditto.
14086 (*subqi_ext<mode>_2): Ditto.
14087 (*testqi_ext<mode>_1): Ditto.
14088 (*testqi_ext<mode>_2): Ditto.
14089 (*andqi_ext<mode>_0): Ditto.
14090 (*andqi_ext<mode>_1): Ditto.
14091 (*andqi_ext<mode>_1_cc): Ditto.
14092 (*andqi_ext<mode>_2): Ditto.
14093 (*<any_or:code>qi_ext<mode>_0): Ditto.
14094 (*<any_or:code>qi_ext<mode>_1): Ditto.
14095 (*<any_or:code>qi_ext<mode>_2): Ditto.
14096 (*xorqi_ext<mode>_1_cc): Ditto.
14097 (*negqi_ext<mode>_2): Ditto.
14098 (*ashlqi_ext<mode>_2): Ditto.
14099 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
14100
14101 2023-04-20 Raphael Zinsly <rzinsly@ventanamicro.com>
14102
14103 PR target/108248
14104 * config/riscv/bitmanip.md (clz, ctz, pcnt, min, max patterns): Use
14105 <bitmanip_insn> as the type to allow for fine grained control of
14106 scheduling these insns.
14107 * config/riscv/generic.md (generic_alu): Add bitmanip, clz, ctz, pcnt,
14108 min, max.
14109 * config/riscv/riscv.md (type attribute): Add types for clz, ctz,
14110 pcnt, signed and unsigned min/max.
14111
14112 2023-04-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
14113 kito-cheng <kito.cheng@sifive.com>
14114
14115 * config/riscv/riscv.h (enum reg_class): Fix RVV register order.
14116
14117 2023-04-20 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
14118 kito-cheng <kito.cheng@sifive.com>
14119
14120 PR target/109535
14121 * config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
14122 (pass_vsetvl::cleanup_insns): Fix bug.
14123
14124 2023-04-20 Andrew Stubbs <ams@codesourcery.com>
14125
14126 * config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes.
14127 (ldexp<mode>3): Delete.
14128 (ldexp<mode>3<exec>): Change "B" to "A".
14129
14130 2023-04-20 Jakub Jelinek <jakub@redhat.com>
14131 Jonathan Wakely <jwakely@redhat.com>
14132
14133 * tree.h (built_in_function_equal_p): New helper function.
14134 (fndecl_built_in_p): Turn into variadic template to support
14135 1 or more built_in_function arguments.
14136 * builtins.cc (fold_builtin_expect): Use 3 argument fndecl_built_in_p.
14137 * gimplify.cc (goa_stabilize_expr): Likewise.
14138 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
14139 * ipa-fnsummary.cc (compute_fn_summary): Likewise.
14140 * omp-low.cc (setjmp_or_longjmp_p): Likewise.
14141 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
14142 cgraph_update_edges_for_call_stmt_node,
14143 cgraph_edge::verify_corresponds_to_fndecl,
14144 cgraph_node::verify_node): Likewise.
14145 * tree-stdarg.cc (optimize_va_list_gpr_fpr_size): Likewise.
14146 * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Likewise.
14147 * ipa-prop.cc (try_make_edge_direct_virtual_call): Likewise.
14148
14149 2023-04-20 Jakub Jelinek <jakub@redhat.com>
14150
14151 PR tree-optimization/109011
14152 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): New function.
14153 (vect_recog_popcount_clz_ctz_ffs_pattern): Move vect_pattern_detected
14154 call later. Don't punt for IFN_CTZ or IFN_FFS if it doesn't have
14155 direct optab support, but has instead IFN_CLZ, IFN_POPCOUNT or
14156 for IFN_FFS IFN_CTZ support, use vect_recog_ctz_ffs_pattern for that
14157 case.
14158 (vect_vect_recog_func_ptrs): Add ctz_ffs entry.
14159
14160 2023-04-20 Richard Biener <rguenther@suse.de>
14161
14162 * df-core.cc (rest_of_handle_df_initialize): Remove
14163 computation of df->postorder, df->postorder_inverted and
14164 df->n_blocks.
14165
14166 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14167
14168 * common/config/i386/i386-common.cc
14169 (OPTION_MASK_ISA2_AVX_UNSET): Add OPTION_MASK_ISA2_VAES_UNSET.
14170 (ix86_handle_option): Set AVX flag for VAES.
14171 * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
14172 Add OPTION_MASK_ISA2_VAES_UNSET.
14173 (def_builtin): Share builtin between AES and VAES.
14174 * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
14175 Ditto.
14176 * config/i386/i386.md (aes): New isa attribute.
14177 * config/i386/sse.md (aesenc): Add pattern for VAES with xmm.
14178 (aesenclast): Ditto.
14179 (aesdec): Ditto.
14180 (aesdeclast): Ditto.
14181 * config/i386/vaesintrin.h: Remove redundant avx target push.
14182 * config/i386/wmmintrin.h (_mm_aesdec_si128): Change to macro.
14183 (_mm_aesdeclast_si128): Ditto.
14184 (_mm_aesenc_si128): Ditto.
14185 (_mm_aesenclast_si128): Ditto.
14186
14187 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
14188
14189 * config/i386/avx2intrin.h
14190 (_MM_REDUCE_OPERATOR_BASIC_EPI16): New macro.
14191 (_MM_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
14192 (_MM256_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
14193 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
14194 (_MM_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
14195 (_MM_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
14196 (_MM256_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
14197 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
14198 (_mm_reduce_add_epi16): New instrinsics.
14199 (_mm_reduce_mul_epi16): Ditto.
14200 (_mm_reduce_and_epi16): Ditto.
14201 (_mm_reduce_or_epi16): Ditto.
14202 (_mm_reduce_max_epi16): Ditto.
14203 (_mm_reduce_max_epu16): Ditto.
14204 (_mm_reduce_min_epi16): Ditto.
14205 (_mm_reduce_min_epu16): Ditto.
14206 (_mm256_reduce_add_epi16): Ditto.
14207 (_mm256_reduce_mul_epi16): Ditto.
14208 (_mm256_reduce_and_epi16): Ditto.
14209 (_mm256_reduce_or_epi16): Ditto.
14210 (_mm256_reduce_max_epi16): Ditto.
14211 (_mm256_reduce_max_epu16): Ditto.
14212 (_mm256_reduce_min_epi16): Ditto.
14213 (_mm256_reduce_min_epu16): Ditto.
14214 (_mm_reduce_add_epi8): Ditto.
14215 (_mm_reduce_mul_epi8): Ditto.
14216 (_mm_reduce_and_epi8): Ditto.
14217 (_mm_reduce_or_epi8): Ditto.
14218 (_mm_reduce_max_epi8): Ditto.
14219 (_mm_reduce_max_epu8): Ditto.
14220 (_mm_reduce_min_epi8): Ditto.
14221 (_mm_reduce_min_epu8): Ditto.
14222 (_mm256_reduce_add_epi8): Ditto.
14223 (_mm256_reduce_mul_epi8): Ditto.
14224 (_mm256_reduce_and_epi8): Ditto.
14225 (_mm256_reduce_or_epi8): Ditto.
14226 (_mm256_reduce_max_epi8): Ditto.
14227 (_mm256_reduce_max_epu8): Ditto.
14228 (_mm256_reduce_min_epi8): Ditto.
14229 (_mm256_reduce_min_epu8): Ditto.
14230 * config/i386/avx512vlbwintrin.h:
14231 (_mm_mask_reduce_add_epi16): Ditto.
14232 (_mm_mask_reduce_mul_epi16): Ditto.
14233 (_mm_mask_reduce_and_epi16): Ditto.
14234 (_mm_mask_reduce_or_epi16): Ditto.
14235 (_mm_mask_reduce_max_epi16): Ditto.
14236 (_mm_mask_reduce_max_epu16): Ditto.
14237 (_mm_mask_reduce_min_epi16): Ditto.
14238 (_mm_mask_reduce_min_epu16): Ditto.
14239 (_mm256_mask_reduce_add_epi16): Ditto.
14240 (_mm256_mask_reduce_mul_epi16): Ditto.
14241 (_mm256_mask_reduce_and_epi16): Ditto.
14242 (_mm256_mask_reduce_or_epi16): Ditto.
14243 (_mm256_mask_reduce_max_epi16): Ditto.
14244 (_mm256_mask_reduce_max_epu16): Ditto.
14245 (_mm256_mask_reduce_min_epi16): Ditto.
14246 (_mm256_mask_reduce_min_epu16): Ditto.
14247 (_mm_mask_reduce_add_epi8): Ditto.
14248 (_mm_mask_reduce_mul_epi8): Ditto.
14249 (_mm_mask_reduce_and_epi8): Ditto.
14250 (_mm_mask_reduce_or_epi8): Ditto.
14251 (_mm_mask_reduce_max_epi8): Ditto.
14252 (_mm_mask_reduce_max_epu8): Ditto.
14253 (_mm_mask_reduce_min_epi8): Ditto.
14254 (_mm_mask_reduce_min_epu8): Ditto.
14255 (_mm256_mask_reduce_add_epi8): Ditto.
14256 (_mm256_mask_reduce_mul_epi8): Ditto.
14257 (_mm256_mask_reduce_and_epi8): Ditto.
14258 (_mm256_mask_reduce_or_epi8): Ditto.
14259 (_mm256_mask_reduce_max_epi8): Ditto.
14260 (_mm256_mask_reduce_max_epu8): Ditto.
14261 (_mm256_mask_reduce_min_epi8): Ditto.
14262 (_mm256_mask_reduce_min_epu8): Ditto.
14263
14264 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14265
14266 * common/config/i386/i386-common.cc
14267 (OPTION_MASK_ISA_VPCLMULQDQ_SET):
14268 Add OPTION_MASK_ISA_PCLMUL_SET and OPTION_MASK_ISA_AVX_SET.
14269 (OPTION_MASK_ISA_AVX_UNSET):
14270 Add OPTION_MASK_ISA_VPCLMULQDQ_UNSET.
14271 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
14272 * config/i386/i386.md (vpclmulqdqvl): New.
14273 * config/i386/sse.md (pclmulqdq): Add evex encoding.
14274 * config/i386/vpclmulqdqintrin.h: Remove redudant avx target
14275 push.
14276
14277 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14278
14279 * config/i386/avx512vlbwintrin.h
14280 (_mm_mask_blend_epi16): Remove __OPTIMIZE__ wrapper.
14281 (_mm_mask_blend_epi8): Ditto.
14282 (_mm256_mask_blend_epi16): Ditto.
14283 (_mm256_mask_blend_epi8): Ditto.
14284 * config/i386/avx512vlintrin.h
14285 (_mm256_mask_blend_pd): Ditto.
14286 (_mm256_mask_blend_ps): Ditto.
14287 (_mm256_mask_blend_epi64): Ditto.
14288 (_mm256_mask_blend_epi32): Ditto.
14289 (_mm_mask_blend_pd): Ditto.
14290 (_mm_mask_blend_ps): Ditto.
14291 (_mm_mask_blend_epi64): Ditto.
14292 (_mm_mask_blend_epi32): Ditto.
14293 * config/i386/sse.md (VF_AVX512BWHFBF16): Removed.
14294 (VF_AVX512HFBFVL): Move it before the first usage.
14295 (<avx512>_blendm<mode>): Change iterator from VF_AVX512BWHFBF16
14296 to VF_AVX512HFBFVL.
14297
14298 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14299
14300 * common/config/i386/i386-common.cc
14301 (OPTION_MASK_ISA_AVX512VBMI2_SET): Change OPTION_MASK_ISA_AVX512F_SET
14302 to OPTION_MASK_ISA_AVX512BW_SET.
14303 (OPTION_MASK_ISA_AVX512F_UNSET):
14304 Remove OPTION_MASK_ISA_AVX512VBMI2_UNSET.
14305 (OPTION_MASK_ISA_AVX512BW_UNSET):
14306 Add OPTION_MASK_ISA_AVX512VBMI2_UNSET.
14307 * config/i386/avx512vbmi2intrin.h: Do not push avx512bw.
14308 * config/i386/avx512vbmi2vlintrin.h: Ditto.
14309 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_AVX512BW.
14310 * config/i386/sse.md (VI12_AVX512VLBW): Removed.
14311 (VI12_VI48F_AVX512VLBW): Rename to VI12_VI48F_AVX512VL.
14312 (compress<mode>_mask): Change iterator from VI12_AVX512VLBW to
14313 VI12_AVX512VL.
14314 (compressstore<mode>_mask): Ditto.
14315 (expand<mode>_mask): Ditto.
14316 (expand<mode>_maskz): Ditto.
14317 (*expand<mode>_mask): Change iterator from VI12_VI48F_AVX512VLBW to
14318 VI12_VI48F_AVX512VL.
14319
14320 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14321
14322 * common/config/i386/i386-common.cc
14323 (OPTION_MASK_ISA_AVX512BITALG_SET):
14324 Change OPTION_MASK_ISA_AVX512F_SET
14325 to OPTION_MASK_ISA_AVX512BW_SET.
14326 (OPTION_MASK_ISA_AVX512F_UNSET):
14327 Remove OPTION_MASK_ISA_AVX512BITALG_SET.
14328 (OPTION_MASK_ISA_AVX512BW_UNSET):
14329 Add OPTION_MASK_ISA_AVX512BITALG_SET.
14330 * config/i386/avx512bitalgintrin.h: Do not push avx512bw.
14331 * config/i386/i386-builtin.def:
14332 Remove redundant OPTION_MASK_ISA_AVX512BW.
14333 * config/i386/sse.md (VI1_AVX512VLBW): Removed.
14334 (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>):
14335 Change the iterator from VI1_AVX512VLBW to VI1_AVX512VL.
14336
14337 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
14338
14339 * config/i386/i386-expand.cc
14340 (ix86_check_builtin_isa_match): Correct wrong comments.
14341 Add a new macro SHARE_BUILTIN and refactor the current if
14342 clauses to macro.
14343
14344 2023-04-20 Mo, Zewei <zewei.mo@intel.com>
14345
14346 * config/i386/cpuid.h: Open a new section for Extended Features
14347 Leaf (%eax == 7, %ecx == 0) and Extended Features Sub-leaf (%eax == 7,
14348 %ecx == 1).
14349
14350 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
14351
14352 * config/i386/sse.md: Modify insn vperm{i,f}
14353 and vshuf{i,f}.
14354
14355 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
14356
14357 * config/xtensa/xtensa-opts.h: New header.
14358 * config/xtensa/xtensa.h (STRICT_ALIGNMENT): Redefine as
14359 xtensa_strict_align.
14360 * config/xtensa/xtensa.cc (xtensa_option_override): When
14361 -m[no-]strict-align is not specified in the command line set
14362 xtensa_strict_align to 0 if the hardware supports both unaligned
14363 loads and stores or to 1 otherwise.
14364 * config/xtensa/xtensa.opt (mstrict-align): New option.
14365 * doc/invoke.texi (Xtensa Options): Document -m[no-]strict-align.
14366
14367 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
14368
14369 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v4): New
14370 function.
14371
14372 2023-04-19 Andrew Pinski <apinski@marvell.com>
14373
14374 * config/i386/i386.md (*movsicc_noc_zext_1): New pattern.
14375
14376 2023-04-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
14377
14378 * config/riscv/riscv-modes.def (FLOAT_MODE): Add chunk 128 support.
14379 (VECTOR_BOOL_MODE): Ditto.
14380 (ADJUST_NUNITS): Ditto.
14381 (ADJUST_ALIGNMENT): Ditto.
14382 (ADJUST_BYTESIZE): Ditto.
14383 (ADJUST_PRECISION): Ditto.
14384 (RVV_MODES): Ditto.
14385 (VECTOR_MODE_WITH_PREFIX): Ditto.
14386 * config/riscv/riscv-v.cc (ENTRY): Ditto.
14387 (get_vlmul): Ditto.
14388 (get_ratio): Ditto.
14389 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
14390 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
14391 (vbool64_t): Ditto.
14392 (vbool32_t): Ditto.
14393 (vbool16_t): Ditto.
14394 (vbool8_t): Ditto.
14395 (vbool4_t): Ditto.
14396 (vbool2_t): Ditto.
14397 (vbool1_t): Ditto.
14398 (vint8mf8_t): Ditto.
14399 (vuint8mf8_t): Ditto.
14400 (vint8mf4_t): Ditto.
14401 (vuint8mf4_t): Ditto.
14402 (vint8mf2_t): Ditto.
14403 (vuint8mf2_t): Ditto.
14404 (vint8m1_t): Ditto.
14405 (vuint8m1_t): Ditto.
14406 (vint8m2_t): Ditto.
14407 (vuint8m2_t): Ditto.
14408 (vint8m4_t): Ditto.
14409 (vuint8m4_t): Ditto.
14410 (vint8m8_t): Ditto.
14411 (vuint8m8_t): Ditto.
14412 (vint16mf4_t): Ditto.
14413 (vuint16mf4_t): Ditto.
14414 (vint16mf2_t): Ditto.
14415 (vuint16mf2_t): Ditto.
14416 (vint16m1_t): Ditto.
14417 (vuint16m1_t): Ditto.
14418 (vint16m2_t): Ditto.
14419 (vuint16m2_t): Ditto.
14420 (vint16m4_t): Ditto.
14421 (vuint16m4_t): Ditto.
14422 (vint16m8_t): Ditto.
14423 (vuint16m8_t): Ditto.
14424 (vint32mf2_t): Ditto.
14425 (vuint32mf2_t): Ditto.
14426 (vint32m1_t): Ditto.
14427 (vuint32m1_t): Ditto.
14428 (vint32m2_t): Ditto.
14429 (vuint32m2_t): Ditto.
14430 (vint32m4_t): Ditto.
14431 (vuint32m4_t): Ditto.
14432 (vint32m8_t): Ditto.
14433 (vuint32m8_t): Ditto.
14434 (vint64m1_t): Ditto.
14435 (vuint64m1_t): Ditto.
14436 (vint64m2_t): Ditto.
14437 (vuint64m2_t): Ditto.
14438 (vint64m4_t): Ditto.
14439 (vuint64m4_t): Ditto.
14440 (vint64m8_t): Ditto.
14441 (vuint64m8_t): Ditto.
14442 (vfloat32mf2_t): Ditto.
14443 (vfloat32m1_t): Ditto.
14444 (vfloat32m2_t): Ditto.
14445 (vfloat32m4_t): Ditto.
14446 (vfloat32m8_t): Ditto.
14447 (vfloat64m1_t): Ditto.
14448 (vfloat64m2_t): Ditto.
14449 (vfloat64m4_t): Ditto.
14450 (vfloat64m8_t): Ditto.
14451 * config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
14452 * config/riscv/riscv.cc (riscv_legitimize_poly_move): Ditto.
14453 (riscv_convert_vector_bits): Ditto.
14454 * config/riscv/riscv.md:
14455 * config/riscv/vector-iterators.md:
14456 * config/riscv/vector.md
14457 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
14458 (@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
14459 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
14460 (@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
14461 (@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
14462 (@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
14463 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
14464 (@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
14465 (@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
14466
14467 2023-04-19 Pan Li <pan2.li@intel.com>
14468
14469 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
14470 Align IOR (A | (~A) -> -1) optimization MODE_CLASS condition to AND.
14471
14472 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
14473
14474 PR target/78904
14475 PR target/78952
14476 * config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64): New insn pattern.
14477 (*cmpqi_ext<mode>_1): Use nonimmediate_operand predicate
14478 for operand 0. Use any_extract code iterator.
14479 (*cmpqi_ext<mode>_1 peephole2): New peephole2 pattern.
14480 (*cmpqi_ext<mode>_2): Use any_extract code iterator.
14481 (*cmpqi_ext<mode>_3_mem_rex64): New insn pattern.
14482 (*cmpqi_ext<mode>_1): Use general_operand predicate
14483 for operand 1. Use any_extract code iterator.
14484 (*cmpqi_ext<mode>_3 peephole2): New peephole2 pattern.
14485 (*cmpqi_ext<mode>_4): Use any_extract code iterator.
14486
14487 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14488
14489 * config/aarch64/aarch64-simd.md (aarch64_saddw2<mode>): Delete.
14490 (aarch64_uaddw2<mode>): Delete.
14491 (aarch64_ssubw2<mode>): Delete.
14492 (aarch64_usubw2<mode>): Delete.
14493 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>): New define_expand.
14494
14495 2023-04-19 Richard Biener <rguenther@suse.de>
14496
14497 * tree-ssa-structalias.cc (do_ds_constraint): Use
14498 solve_add_graph_edge.
14499
14500 2023-04-19 Richard Biener <rguenther@suse.de>
14501
14502 * tree-ssa-structalias.cc (solve_add_graph_edge): New function,
14503 split out from ...
14504 (do_sd_constraint): ... here.
14505
14506 2023-04-19 Richard Biener <rguenther@suse.de>
14507
14508 * tree-cfg.cc (gimple_can_merge_blocks_p): Remove condition
14509 rejecting the merge when A contains only a non-local label.
14510
14511 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
14512
14513 * rtl.h (VIRTUAL_REGISTER_P): New predicate.
14514 (VIRTUAL_REGISTER_NUM_P): Ditto.
14515 (REGNO_PTR_FRAME_P): Use VIRTUAL_REGISTER_NUM_P predicate.
14516 * expr.cc (force_operand): Use VIRTUAL_REGISTER_P predicate.
14517 * function.cc (instantiate_decl_rtl): Ditto.
14518 * rtlanal.cc (rtx_addr_can_trap_p_1): Ditto.
14519 (nonzero_address_p): Ditto.
14520 (refers_to_regno_p): Use VIRTUAL_REGISTER_NUM_P predicate.
14521
14522 2023-04-19 Aldy Hernandez <aldyh@redhat.com>
14523
14524 * value-range.h (Value_Range::Value_Range): Avoid pointer sharing.
14525
14526 2023-04-19 Richard Biener <rguenther@suse.de>
14527
14528 * system.h (auto_mpz::operator->()): New.
14529 * realmpfr.h (auto_mpfr::operator->()): New.
14530 * builtins.cc (do_mpfr_lgamma_r): Use auto_mpfr.
14531 * real.cc (real_from_string): Likewise.
14532 (dconst_e_ptr): Likewise.
14533 (dconst_sqrt2_ptr): Likewise.
14534 * tree-ssa-loop-niter.cc (refine_value_range_using_guard):
14535 Use auto_mpz.
14536 (bound_difference_of_offsetted_base): Likewise.
14537 (number_of_iterations_ne): Likewise.
14538 (number_of_iterations_lt_to_ne): Likewise.
14539 * ubsan.cc: Include realmpfr.h.
14540 (ubsan_instrument_float_cast): Use auto_mpfr.
14541
14542 2023-04-19 Richard Biener <rguenther@suse.de>
14543
14544 * tree-ssa-structalias.cc (solve_graph): Remove self-copy
14545 edges, remove edges from escaped after special-casing them.
14546
14547 2023-04-19 Richard Biener <rguenther@suse.de>
14548
14549 * tree-ssa-structalias.cc (do_sd_constraint): Fixup escape
14550 special casing.
14551
14552 2023-04-19 Richard Biener <rguenther@suse.de>
14553
14554 * tree-ssa-structalias.cc (do_sd_constraint): Do not write
14555 to the LHS varinfo solution member.
14556
14557 2023-04-19 Richard Biener <rguenther@suse.de>
14558
14559 * tree-ssa-structalias.cc (topo_visit): Look at the real
14560 destination of edges.
14561
14562 2023-04-19 Richard Biener <rguenther@suse.de>
14563
14564 PR tree-optimization/44794
14565 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
14566 If an epilogue loop is required set its iteration upper bound.
14567
14568 2023-04-19 Xi Ruoyao <xry111@xry111.site>
14569
14570 PR target/109465
14571 * config/loongarch/loongarch-protos.h
14572 (loongarch_expand_block_move): Add a parameter as alignment RTX.
14573 * config/loongarch/loongarch.h:
14574 (LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER): Remove.
14575 (LARCH_MAX_MOVE_BYTES_STRAIGHT): Remove.
14576 (LARCH_MAX_MOVE_OPS_PER_LOOP_ITER): Define.
14577 (LARCH_MAX_MOVE_OPS_STRAIGHT): Define.
14578 (MOVE_RATIO): Use LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
14579 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
14580 * config/loongarch/loongarch.cc (loongarch_expand_block_move):
14581 Take the alignment from the parameter, but set it to
14582 UNITS_PER_WORD if !TARGET_STRICT_ALIGN. Limit the length of
14583 straight-line implementation with LARCH_MAX_MOVE_OPS_STRAIGHT
14584 instead of LARCH_MAX_MOVE_BYTES_STRAIGHT.
14585 (loongarch_block_move_straight): When there are left-over bytes,
14586 half the mode size instead of falling back to byte mode at once.
14587 (loongarch_block_move_loop): Limit the length of loop body with
14588 LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
14589 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
14590 * config/loongarch/loongarch.md (cpymemsi): Pass the alignment
14591 to loongarch_expand_block_move.
14592
14593 2023-04-19 Xi Ruoyao <xry111@xry111.site>
14594
14595 * config/loongarch/loongarch.cc
14596 (loongarch_setup_incoming_varargs): Don't save more GARs than
14597 cfun->va_list_gpr_size / UNITS_PER_WORD.
14598
14599 2023-04-19 Richard Biener <rguenther@suse.de>
14600
14601 * tree-ssa-loop-manip.cc (determine_exit_conditions): Fix
14602 no epilogue condition.
14603
14604 2023-04-19 Richard Biener <rguenther@suse.de>
14605
14606 * gimple.h (gimple_assign_load): Outline...
14607 * gimple.cc (gimple_assign_load): ... here. Avoid
14608 get_base_address and instead just strip the outermost
14609 handled component, treating a remaining handled component
14610 as load.
14611
14612 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14613
14614 * config/aarch64/aarch64-simd-builtins.def (neg): Delete builtins
14615 definition.
14616 * config/aarch64/arm_fp16.h (vnegh_f16): Reimplement using normal negation.
14617
14618 2023-04-19 Jakub Jelinek <jakub@redhat.com>
14619
14620 PR tree-optimization/109011
14621 * tree-vect-patterns.cc (vect_recog_popcount_pattern): Rename to ...
14622 (vect_recog_popcount_clz_ctz_ffs_pattern): ... this. Handle also
14623 CLZ, CTZ and FFS. Remove vargs variable, use
14624 gimple_build_call_internal rather than gimple_build_call_internal_vec.
14625 (vect_vect_recog_func_ptrs): Adjust popcount entry.
14626
14627 2023-04-19 Jakub Jelinek <jakub@redhat.com>
14628
14629 PR target/109040
14630 * dse.cc (replace_read): If read_reg is a SUBREG of a word mode
14631 REG, for WORD_REGISTER_OPERATIONS copy SUBREG_REG of it into
14632 a new REG rather than the SUBREG.
14633
14634 2023-04-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14635
14636 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
14637 New pattern.
14638
14639 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14640
14641 PR target/108840
14642 * config/aarch64/aarch64.cc (aarch64_rtx_costs): Merge ASHIFT and
14643 ROTATE, ROTATERT, LSHIFTRT, ASHIFTRT cases. Handle subregs in op1.
14644
14645 2023-04-19 Richard Biener <rguenther@suse.de>
14646
14647 PR rtl-optimization/109237
14648 * cse.cc (insn_live_p): Remove NEXT_INSN walk, instead check
14649 TREE_VISITED on INSN_VAR_LOCATION_DECL.
14650 (delete_trivially_dead_insns): Maintain TREE_VISITED on
14651 active debug bind INSN_VAR_LOCATION_DECL.
14652
14653 2023-04-19 Richard Biener <rguenther@suse.de>
14654
14655 PR rtl-optimization/109237
14656 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
14657
14658 2023-04-19 Christophe Lyon <christophe.lyon@arm.com>
14659
14660 * doc/install.texi (enable-decimal-float): Add AArch64.
14661
14662 2023-04-19 liuhongt <hongtao.liu@intel.com>
14663
14664 PR rtl-optimization/109351
14665 * ira.cc (setup_class_subset_and_memory_move_costs): Check
14666 hard_regno_mode_ok before setting lowest memory move cost for
14667 the mode with different reg classes.
14668
14669 2023-04-18 Jason Merrill <jason@redhat.com>
14670
14671 * doc/invoke.texi: Remove stray @gol.
14672
14673 2023-04-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14674
14675 * ifcvt.cc (cond_move_process_if_block): Consider the result of
14676 targetm.noce_conversion_profitable_p() when replacing the original
14677 sequence with the converted one.
14678
14679 2023-04-18 Mark Harmstone <mark@harmstone.com>
14680
14681 * common.opt (gcodeview): Add new option.
14682 * gcc.cc (driver_handle_option); Handle OPT_gcodeview.
14683 * opts.cc (command_handle_option): Similarly.
14684 * doc/invoke.texi: Add documentation for -gcodeview.
14685
14686 2023-04-18 Andrew Pinski <apinski@marvell.com>
14687
14688 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove declaration.
14689 (make_pass_phiopt): Make execute out of line.
14690 (tree_ssa_cs_elim): Move code into ...
14691 (pass_cselim::execute): here.
14692
14693 2023-04-18 Sam James <sam@gentoo.org>
14694
14695 * system.h: Drop unused INCLUDE_PTHREAD_H.
14696
14697 2023-04-18 Kevin Lee <kevinl@rivosinc.com>
14698
14699 * tree-vect-data-refs.cc (vect_grouped_store_supported): Add new
14700 condition.
14701
14702 2023-04-18 Sinan Lin <sinan.lin@linux.alibaba.com>
14703
14704 * config/riscv/bitmanip.md (rotr<mode>3 expander): Enable for ZBKB.
14705 (bswapdi2, bswapsi2): Similarly.
14706
14707 2023-04-18 Uros Bizjak <ubizjak@gmail.com>
14708
14709 PR target/94908
14710 * config/i386/i386-builtin.def (__builtin_ia32_insertps128):
14711 Use CODE_FOR_sse4_1_insertps_v4sf.
14712 * config/i386/i386-expand.cc (expand_vec_perm_insertps): New.
14713 (expand_vec_perm_1): Call expand_vec_per_insertps.
14714 * config/i386/i386.md ("unspec"): Declare UNSPEC_INSERTPS here.
14715 * config/i386/mmx.md (mmxscalarmode): New mode attribute.
14716 (@sse4_1_insertps_<mode>): New insn pattern.
14717 * config/i386/sse.md (@sse4_1_insertps_<mode>): Macroize insn
14718 pattern from sse4_1_insertps using VI4F_128 mode iterator.
14719
14720 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14721
14722 * value-range.cc (gt_ggc_mx): New.
14723 (gt_pch_nx): New.
14724 * value-range.h (class vrange): Add GTY marker.
14725 (class frange): Same.
14726 (gt_ggc_mx): Remove.
14727 (gt_pch_nx): Remove.
14728
14729 2023-04-18 Victor L. Do Nascimento <victor.donascimento@arm.com>
14730
14731 * lra-constraints.cc (constraint_unique): New.
14732 (process_address_1): Apply constraint_unique test.
14733 * recog.cc (constrain_operands): Allow relaxed memory
14734 constaints.
14735
14736 2023-04-18 Kito Cheng <kito.cheng@sifive.com>
14737
14738 * doc/extend.texi (Target Builtins): Add RISC-V Vector
14739 Intrinsics.
14740 (RISC-V Vector Intrinsics): Document GCC implemented which
14741 version of RISC-V vector intrinsics and its reference.
14742
14743 2023-04-18 Richard Biener <rguenther@suse.de>
14744
14745 PR middle-end/108786
14746 * bitmap.h (bitmap_clear_first_set_bit): New.
14747 * bitmap.cc (bitmap_first_set_bit_worker): Rename from
14748 bitmap_first_set_bit and add optional clearing of the bit.
14749 (bitmap_first_set_bit): Wrap bitmap_first_set_bit_worker.
14750 (bitmap_clear_first_set_bit): Likewise.
14751 * df-core.cc (df_worklist_dataflow_doublequeue): Use
14752 bitmap_clear_first_set_bit.
14753 * graphite-scop-detection.cc (scop_detection::merge_sese):
14754 Likewise.
14755 * sanopt.cc (sanitize_asan_mark_unpoison): Likewise.
14756 (sanitize_asan_mark_poison): Likewise.
14757 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise.
14758 * tree-into-ssa.cc (rewrite_blocks): Likewise.
14759 * tree-ssa-dce.cc (simple_dce_from_worklist): Likewise.
14760 * tree-ssa-sccvn.cc (do_rpo_vn_1): Likewise.
14761
14762 2023-04-18 Richard Biener <rguenther@suse.de>
14763
14764 * tree-ssa-structalias.cc (dump_sa_stats): Split out from...
14765 (dump_sa_points_to_info): ... this function.
14766 (compute_points_to_sets): Guard large dumps with TDF_DETAILS,
14767 and call dump_sa_stats guarded with TDF_STATS.
14768 (ipa_pta_execute): Likewise.
14769 (compute_may_aliases): Guard dump_alias_info with
14770 TDF_DETAILS|TDF_ALIAS.
14771
14772 2023-04-18 Andrew Pinski <apinski@marvell.com>
14773
14774 * tree-ssa-phiopt.cc (gimple_simplify_phiopt): Dump
14775 the expression that is being tried when TDF_FOLDING
14776 is true.
14777 (phiopt_worker::match_simplify_replacement): Dump
14778 the sequence which was created by gimple_simplify_phiopt
14779 when TDF_FOLDING is true.
14780
14781 2023-04-18 Andrew Pinski <apinski@marvell.com>
14782
14783 * tree-ssa-phiopt.cc (match_simplify_replacement):
14784 Simplify code that does the movement slightly.
14785
14786 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14787
14788 * config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
14789 define_expand.
14790 (rev16<mode>2): Rename to...
14791 (aarch64_rev16<mode>2_alt1): ... This.
14792 (rev16<mode>2_alt): Rename to...
14793 (*aarch64_rev16<mode>2_alt2): ... This.
14794
14795 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14796
14797 * emit-rtl.cc (init_emit_once): Initialize dconstm0.
14798 * gimple-range-op.cc (class cfn_signbit): Remove dconstm0
14799 declaration.
14800 * range-op-float.cc (zero_range): Use dconstm0.
14801 (zero_to_inf_range): Same.
14802 * real.h (dconstm0): New.
14803 * value-range.cc (frange::flush_denormals_to_zero): Use dconstm0.
14804 (frange::set_zero): Do not declare dconstm0.
14805
14806 2023-04-18 Richard Biener <rguenther@suse.de>
14807
14808 * system.h (class auto_mpz): New,
14809 * realmpfr.h (class auto_mpfr): Likewise.
14810 * fold-const-call.cc (do_mpfr_arg1): Use auto_mpfr.
14811 (do_mpfr_arg2): Likewise.
14812 * tree-ssa-loop-niter.cc (bound_difference): Use auto_mpz;
14813
14814 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14815
14816 * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_intrinsics): Take
14817 builtin flags from intrinsic data rather than hardcoded FLAG_AUTO_FP.
14818
14819 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14820
14821 * value-range.cc (frange::operator==): Adjust for NAN.
14822 (range_tests_nan): Remove some NAN tests.
14823
14824 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14825
14826 * inchash.cc (hash::add_real_value): New.
14827 * inchash.h (class hash): Add add_real_value.
14828 * value-range.cc (add_vrange): New.
14829 * value-range.h (inchash::add_vrange): New.
14830
14831 2023-04-18 Richard Biener <rguenther@suse.de>
14832
14833 PR tree-optimization/109539
14834 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
14835 Re-implement pointer relatedness for PHIs.
14836
14837 2023-04-18 Andrew Stubbs <ams@codesourcery.com>
14838
14839 * config/gcn/gcn-valu.md (SV_SFDF): New iterator.
14840 (SV_FP): New iterator.
14841 (scalar_mode, SCALAR_MODE): Add identity mappings for scalar modes.
14842 (recip<mode>2): Unify the two patterns using SV_FP.
14843 (div_scale<mode><exec_vcc>): New insn.
14844 (div_fmas<mode><exec>): New insn.
14845 (div_fixup<mode><exec>): New insn.
14846 (div<mode>3): Unify the two expanders and rewrite using hardfp.
14847 * config/gcn/gcn.cc (gcn_md_reorg): Support "vccwait" attribute.
14848 * config/gcn/gcn.md (unspec): Add UNSPEC_DIV_SCALE, UNSPEC_DIV_FMAS,
14849 and UNSPEC_DIV_FIXUP.
14850 (vccwait): New attribute.
14851
14852 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14853
14854 * config/aarch64/aarch64.cc (aarch64_validate_mcpu): Add hint to use -march
14855 if the argument matches that.
14856
14857 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14858
14859 * config/aarch64/atomics.md
14860 (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
14861 Use SD_HSDI for destination mode iterator.
14862
14863 2023-04-18 Jin Ma <jinma@linux.alibaba.com>
14864
14865 * common/config/riscv/riscv-common.cc (multi_letter_subset_rank): Swap the order
14866 of z-extensions and s-extensions.
14867 (riscv_subset_list::parse): Likewise.
14868
14869 2023-04-18 Jakub Jelinek <jakub@redhat.com>
14870
14871 PR tree-optimization/109240
14872 * match.pd (fneg/fadd): Rewrite such that it handles both plus as
14873 first vec_perm operand and minus as second using fneg/fadd and
14874 minus as first vec_perm operand and plus as second using fneg/fsub.
14875
14876 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14877
14878 * data-streamer.cc (bp_pack_real_value): New.
14879 (bp_unpack_real_value): New.
14880 * data-streamer.h (bp_pack_real_value): New.
14881 (bp_unpack_real_value): New.
14882 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields): Use
14883 bp_unpack_real_value.
14884 * tree-streamer-out.cc (pack_ts_real_cst_value_fields): Use
14885 bp_pack_real_value.
14886
14887 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14888
14889 * wide-int.h (WIDE_INT_MAX_HWIS): New.
14890 (class fixed_wide_int_storage): Use it.
14891 (trailing_wide_ints <N>::set_precision): Use it.
14892 (trailing_wide_ints <N>::extra_size): Use it.
14893
14894 2023-04-18 Xi Ruoyao <xry111@xry111.site>
14895
14896 * config/loongarch/loongarch-protos.h
14897 (loongarch_addu16i_imm12_operand_p): New function prototype.
14898 (loongarch_split_plus_constant): Likewise.
14899 * config/loongarch/loongarch.cc
14900 (loongarch_addu16i_imm12_operand_p): New function.
14901 (loongarch_split_plus_constant): Likewise.
14902 * config/loongarch/loongarch.h (ADDU16I_OPERAND): New macro.
14903 (DUAL_IMM12_OPERAND): Likewise.
14904 (DUAL_ADDU16I_OPERAND): Likewise.
14905 * config/loongarch/constraints.md (La, Lb, Lc, Ld, Le): New
14906 constraint.
14907 * config/loongarch/predicates.md (const_dual_imm12_operand): New
14908 predicate.
14909 (const_addu16i_operand): Likewise.
14910 (const_addu16i_imm12_di_operand): Likewise.
14911 (const_addu16i_imm12_si_operand): Likewise.
14912 (plus_di_operand): Likewise.
14913 (plus_si_operand): Likewise.
14914 (plus_si_extend_operand): Likewise.
14915 * config/loongarch/loongarch.md (add<mode>3): Convert to
14916 define_insn_and_split. Use plus_<mode>_operand predicate
14917 instead of arith_operand. Add alternatives for La, Lb, Lc, Ld,
14918 and Le constraints.
14919 (*addsi3_extended): Convert to define_insn_and_split. Use
14920 plus_si_extend_operand instead of arith_operand. Add
14921 alternatives for La and Le alternatives.
14922
14923 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14924
14925 * value-range.h (Value_Range::Value_Range): New.
14926 (Value_Range::contains_p): New.
14927
14928 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
14929
14930 * value-range.h (class vrange): Make m_discriminator const.
14931 (class irange): Make m_max_ranges const. Adjust constructors
14932 accordingly.
14933 (class unsupported_range): Construct vrange appropriately.
14934 (class frange): Same.
14935
14936 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
14937
14938 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove the macro
14939 definition.
14940
14941 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
14942
14943 * doc/extend.texi: Add section for LoongArch Base Built-in functions.
14944
14945 2023-04-18 Fei Gao <gaofei@eswincomputing.com>
14946
14947 * config/riscv/riscv.cc (riscv_first_stack_step): Make codes more
14948 readable.
14949 (riscv_expand_epilogue): Likewise.
14950
14951 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
14952
14953 * config/riscv/riscv.cc (riscv_expand_prologue): Consider save-restore in
14954 stack allocation.
14955 (riscv_expand_epilogue): Consider save-restore in stack deallocation.
14956
14957 2023-04-17 Andrew Pinski <apinski@marvell.com>
14958
14959 * tree-ssa-phiopt.cc (gate_hoist_loads): Remove
14960 prototype.
14961
14962 2023-04-17 Aldy Hernandez <aldyh@redhat.com>
14963
14964 * gimple-ssa-warn-alloca.cc (pass_walloca::execute): Do not export
14965 global ranges.
14966
14967 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
14968
14969 * config/riscv/riscv.cc (riscv_first_stack_step): Add a new function
14970 parameter remaining_size.
14971 (riscv_compute_frame_info): Adapt new riscv_first_stack_step interface.
14972 (riscv_expand_prologue): Likewise.
14973 (riscv_expand_epilogue): Likewise.
14974
14975 2023-04-17 Feng Wang <wangfeng@eswincomputing.com>
14976
14977 * config/riscv/bitmanip.md (rotrsi3_sext): Support generating
14978 roriw for constant counts.
14979 * rtl.h (reverse_rotate_by_imm_p): Add function declartion
14980 * simplify-rtx.cc (reverse_rotate_by_imm_p): New function.
14981 (simplify_context::simplify_binary_operation_1): Use it.
14982 * expmed.cc (expand_shift_1): Likewise.
14983
14984 2023-04-17 Martin Jambor <mjambor@suse.cz>
14985
14986 PR ipa/107769
14987 PR ipa/109318
14988 * cgraph.h (symtab_node::find_reference): Add parameter use_type.
14989 * ipa-prop.h (ipa_pass_through_data): New flag refdesc_decremented.
14990 (ipa_zap_jf_refdesc): New function.
14991 (ipa_get_jf_pass_through_refdesc_decremented): Likewise.
14992 (ipa_set_jf_pass_through_refdesc_decremented): Likewise.
14993 * ipa-cp.cc (ipcp_discover_new_direct_edges): Provide a value for
14994 the new parameter of find_reference.
14995 (adjust_references_in_caller): Likewise. Make sure the constant jump
14996 function is not used to decrement a refdec counter again. Only
14997 decrement refdesc counters when the pass_through jump function allows
14998 it. Added a detailed dump when decrementing refdesc counters.
14999 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Dump new flag.
15000 (ipa_set_jf_simple_pass_through): Initialize the new flag.
15001 (ipa_set_jf_unary_pass_through): Likewise.
15002 (ipa_set_jf_arith_pass_through): Likewise.
15003 (remove_described_reference): Provide a value for the new parameter of
15004 find_reference.
15005 (update_jump_functions_after_inlining): Zap refdesc of new jfunc if
15006 the previous pass_through had a flag mandating that we do so.
15007 (propagate_controlled_uses): Likewise. Only decrement refdesc
15008 counters when the pass_through jump function allows it.
15009 (ipa_edge_args_sum_t::duplicate): Provide a value for the new
15010 parameter of find_reference.
15011 (ipa_write_jump_function): Assert the new flag does not have to be
15012 streamed.
15013 * symtab.cc (symtab_node::find_reference): Add parameter use_type, use
15014 it in searching.
15015
15016 2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
15017 Di Zhao <di.zhao@amperecomputing.com>
15018
15019 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
15020 Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
15021 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
15022 Check for the above tuning option when processing loads.
15023
15024 2023-04-17 Richard Biener <rguenther@suse.de>
15025
15026 PR tree-optimization/109524
15027 * tree-vrp.cc (remove_unreachable::m_list): Change to a
15028 vector of pairs of block indices.
15029 (remove_unreachable::maybe_register_block): Adjust.
15030 (remove_unreachable::remove_and_update_globals): Likewise.
15031 Deal with removed blocks.
15032
15033 2023-04-16 Jeff Law <jlaw@ventanamicro>
15034
15035 PR target/109508
15036 * config/riscv/riscv.cc (riscv_expand_conditional_move): For
15037 TARGET_SFB_ALU, force the true arm into a register.
15038
15039 2023-04-15 John David Anglin <danglin@gcc.gnu.org>
15040
15041 PR target/104989
15042 * config/pa/pa-protos.h (pa_function_arg_size): Update prototype.
15043 * config/pa/pa.cc (pa_function_arg): Return NULL_RTX if argument
15044 size is zero.
15045 (pa_arg_partial_bytes): Don't call pa_function_arg_size twice.
15046 (pa_function_arg_size): Change return type to int. Return zero
15047 for arguments larger than 1 GB. Update comments.
15048
15049 2023-04-15 Jakub Jelinek <jakub@redhat.com>
15050
15051 PR tree-optimization/109154
15052 * tree-if-conv.cc (predicate_scalar_phi): For complex PHIs, emit just
15053 args_len - 1 COND_EXPRs rather than args_len. Formatting fix.
15054
15055 2023-04-15 Jason Merrill <jason@redhat.com>
15056
15057 PR c++/109514
15058 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
15059 Overhaul lhs_ref.ref analysis.
15060
15061 2023-04-14 Richard Biener <rguenther@suse.de>
15062
15063 PR tree-optimization/109502
15064 * tree-vect-stmts.cc (vectorizable_assignment): Fix
15065 check for conversion between mask and non-mask types.
15066
15067 2023-04-14 Jeff Law <jlaw@ventanamicro.com>
15068 Jakub Jelinek <jakub@redhat.com>
15069
15070 PR target/108947
15071 PR target/109040
15072 * combine.cc (simplify_and_const_int_1): Compute nonzero_bits in
15073 word_mode rather than mode if WORD_REGISTER_OPERATIONS and mode is
15074 smaller than word_mode.
15075 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
15076 <case AND>: Likewise.
15077
15078 2023-04-14 Jakub Jelinek <jakub@redhat.com>
15079
15080 * loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
15081 of GEN_INT.
15082
15083 2023-04-13 Andrew MacLeod <amacleod@redhat.com>
15084
15085 PR tree-optimization/108139
15086 PR tree-optimization/109462
15087 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Remove
15088 equivalency check for PHI nodes.
15089 * gimple-range-fold.cc (fold_using_range::range_of_phi): Ensure def
15090 does not dominate single-arg equivalency edges.
15091
15092 2023-04-13 Richard Sandiford <richard.sandiford@arm.com>
15093
15094 PR target/108910
15095 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
15096 not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
15097
15098 2023-04-13 Richard Biener <rguenther@suse.de>
15099
15100 PR tree-optimization/109491
15101 * tree-ssa-sccvn.cc (expressions_equal_p): Restore the
15102 NULL operands test.
15103
15104 2023-04-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15105
15106 PR target/109479
15107 * config/riscv/riscv-vector-builtins-types.def (vint8mf8_t): Fix predicate.
15108 (vint16mf4_t): Ditto.
15109 (vint32mf2_t): Ditto.
15110 (vint64m1_t): Ditto.
15111 (vint64m2_t): Ditto.
15112 (vint64m4_t): Ditto.
15113 (vint64m8_t): Ditto.
15114 (vuint8mf8_t): Ditto.
15115 (vuint16mf4_t): Ditto.
15116 (vuint32mf2_t): Ditto.
15117 (vuint64m1_t): Ditto.
15118 (vuint64m2_t): Ditto.
15119 (vuint64m4_t): Ditto.
15120 (vuint64m8_t): Ditto.
15121 (vfloat32mf2_t): Ditto.
15122 (vbool64_t): Ditto.
15123 * config/riscv/riscv-vector-builtins.cc (register_builtin_type): Add comments.
15124 (register_vector_type): Ditto.
15125 (check_required_extensions): Fix condition.
15126 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ZVE64): Remove it.
15127 (RVV_REQUIRE_ELEN_64): New define.
15128 (RVV_REQUIRE_MIN_VLEN_64): Ditto.
15129 * config/riscv/riscv-vector-switch.def (TARGET_VECTOR_FP32): Remove it.
15130 (TARGET_VECTOR_FP64): Ditto.
15131 (ENTRY): Fix predicate.
15132 * config/riscv/vector-iterators.md: Fix predicate.
15133
15134 2023-04-12 Jakub Jelinek <jakub@redhat.com>
15135
15136 PR tree-optimization/109410
15137 * tree-ssa-reassoc.cc (build_and_add_sum): Split edge from entry
15138 block if first statement of the function is a call to returns_twice
15139 function.
15140
15141 2023-04-12 Jakub Jelinek <jakub@redhat.com>
15142
15143 PR target/109458
15144 * config/i386/i386.cc: Include rtl-error.h.
15145 (ix86_print_operand): For z modifier warning, use warning_for_asm
15146 if this_is_asm_operands. For Z modifier errors, use %c and code
15147 instead of hardcoded Z.
15148
15149 2023-04-12 Costas Argyris <costas.argyris@gmail.com>
15150
15151 * config/i386/x-mingw32-utf8: Remove extrataneous $@
15152
15153 2023-04-12 Andrew MacLeod <amacleod@redhat.com>
15154
15155 PR tree-optimization/109462
15156 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't
15157 check for equivalences if NAME is a phi node.
15158
15159 2023-04-12 Richard Biener <rguenther@suse.de>
15160
15161 PR tree-optimization/109473
15162 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
15163 Convert scalar result to the computation type before performing
15164 the reduction adjustment.
15165
15166 2023-04-12 Richard Biener <rguenther@suse.de>
15167
15168 PR tree-optimization/109469
15169 * tree-vect-slp.cc (vect_slp_function): Skip region starts with
15170 a returns-twice call.
15171
15172 2023-04-12 Richard Biener <rguenther@suse.de>
15173
15174 PR tree-optimization/109434
15175 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly
15176 handle possibly throwing calls when processing the LHS
15177 and may-defs are not OK.
15178
15179 2023-04-11 Lin Sinan <mynameisxiaou@gmail.com>
15180
15181 * config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
15182 predicate to avoid splitting arith constants.
15183
15184 2023-04-11 Yanzhang Wang <yanzhang.wang@intel.com>
15185 Pan Li <pan2.li@intel.com>
15186 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15187 Kito Cheng <kito.cheng@sifive.com>
15188
15189 PR target/109104
15190 * config/riscv/riscv-protos.h (emit_hard_vlmax_vsetvl): New.
15191 * config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): New.
15192 (emit_vlmax_vsetvl): Use emit_hard_vlmax_vsetvl.
15193 * config/riscv/riscv.cc (vector_zero_call_used_regs): New.
15194 (riscv_zero_call_used_regs): New.
15195 (TARGET_ZERO_CALL_USED_REGS): New.
15196
15197 2023-04-11 Martin Liska <mliska@suse.cz>
15198
15199 PR driver/108241
15200 * opts.cc (finish_options): Drop also
15201 x_flag_var_tracking_assignments.
15202
15203 2023-04-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
15204
15205 PR tree-optimization/108888
15206 * tree-if-conv.cc (predicate_statements): Fix gimple call check.
15207
15208 2023-04-11 Haochen Gui <guihaoc@gcc.gnu.org>
15209
15210 PR target/108812
15211 * config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
15212 (vsx_sign_extend_v16qi_<mode>): ... this.
15213 (vsx_sign_extend_hi_<mode>): Rename to...
15214 (vsx_sign_extend_v8hi_<mode>): ... this.
15215 (vsx_sign_extend_si_v2di): Rename to...
15216 (vsx_sign_extend_v4si_v2di): ... this.
15217 (vsignextend_qi_<mode>): Remove.
15218 (vsignextend_hi_<mode>): Remove.
15219 (vsignextend_si_v2di): Remove.
15220 (vsignextend_v2di_v1ti): Remove.
15221 (*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
15222 gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
15223 with gen_vsx_sign_extend_v16qi_v4si.
15224 * config/rs6000/rs6000.md (split for DI constant generation):
15225 Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
15226 (split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
15227 with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
15228 with gen_vsx_sign_extend_v16qi_si.
15229 * config/rs6000/rs6000-builtins.def (__builtin_altivec_vsignextsb2d):
15230 Set bif-pattern to vsx_sign_extend_v16qi_v2di.
15231 (__builtin_altivec_vsignextsb2w): Set bif-pattern to
15232 vsx_sign_extend_v16qi_v4si.
15233 (__builtin_altivec_visgnextsh2d): Set bif-pattern to
15234 vsx_sign_extend_v8hi_v2di.
15235 (__builtin_altivec_vsignextsh2w): Set bif-pattern to
15236 vsx_sign_extend_v8hi_v4si.
15237 (__builtin_altivec_vsignextsw2d): Set bif-pattern to
15238 vsx_sign_extend_si_v2di.
15239 (__builtin_altivec_vsignext): Set bif-pattern to
15240 vsx_sign_extend_v2di_v1ti.
15241 * config/rs6000/rs6000-builtin.cc (lxvrse_expand_builtin): Replace
15242 gen_vsx_sign_extend_qi_v2di with gen_vsx_sign_extend_v16qi_v2di,
15243 gen_vsx_sign_extend_hi_v2di with gen_vsx_sign_extend_v8hi_v2di and
15244 gen_vsx_sign_extend_si_v2di with gen_vsx_sign_extend_v4si_v2di.
15245
15246 2023-04-10 Michael Meissner <meissner@linux.ibm.com>
15247
15248 PR target/70243
15249 * config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
15250 (vsx_nfmsv4sf4): Do not generate vnmsubfp.
15251
15252 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
15253
15254 * config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
15255
15256 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
15257
15258 * common/config/i386/cpuinfo.h (get_available_features):
15259 Detect AMX-COMPLEX.
15260 * common/config/i386/i386-common.cc
15261 (OPTION_MASK_ISA2_AMX_COMPLEX_SET,
15262 OPTION_MASK_ISA2_AMX_COMPLEX_UNSET): New.
15263 (ix86_handle_option): Handle -mamx-complex.
15264 * common/config/i386/i386-cpuinfo.h (enum processor_features):
15265 Add FEATURE_AMX_COMPLEX.
15266 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
15267 amx-complex.
15268 * config.gcc: Add amxcomplexintrin.h.
15269 * config/i386/cpuid.h (bit_AMX_COMPLEX): New.
15270 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
15271 __AMX_COMPLEX__.
15272 * config/i386/i386-isa.def (AMX_COMPLEX): Add DEF_PTA(AMX_COMPLEX).
15273 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
15274 Handle amx-complex.
15275 * config/i386/i386.opt: Add option -mamx-complex.
15276 * config/i386/immintrin.h: Include amxcomplexintrin.h.
15277 * doc/extend.texi: Document amx-complex.
15278 * doc/invoke.texi: Document -mamx-complex.
15279 * doc/sourcebuild.texi: Document target amx-complex.
15280 * config/i386/amxcomplexintrin.h: New file.
15281
15282 2023-04-08 Jakub Jelinek <jakub@redhat.com>
15283
15284 PR tree-optimization/109392
15285 * tree-vect-generic.cc (tree_vec_extract): Handle failure
15286 of maybe_push_res_to_seq better.
15287
15288 2023-04-08 Jakub Jelinek <jakub@redhat.com>
15289
15290 * Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
15291 poly-int-types.h.
15292 (SYSTEM_H): Depend on $(HASHTAB_H).
15293 * config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused
15294 dependency on $(RTL_BASE_H), remove redundant dependency on
15295 insn-modes.h.
15296
15297 2023-04-06 Richard Earnshaw <rearnsha@arm.com>
15298
15299 PR target/107674
15300 * config/arm/arm.cc (arm_effective_regno): New function.
15301 (mve_vector_mem_operand): Use it.
15302
15303 2023-04-06 Andrew MacLeod <amacleod@redhat.com>
15304
15305 PR tree-optimization/109417
15306 * gimple-range-gori.cc (gori_compute::may_recompute_p): Check if
15307 dependency is in SSA_NAME_FREE_LIST.
15308
15309 2023-04-06 Andrew Pinski <apinski@marvell.com>
15310
15311 PR tree-optimization/109427
15312 * params.opt (-param=vect-induction-float=):
15313 Fix option attribute typo for IntegerRange.
15314
15315 2023-04-05 Jeff Law <jlaw@ventanamicro>
15316
15317 PR target/108892
15318 * combine.cc (combine_instructions): Force re-recognition when
15319 after restoring the body of an insn to its original form.
15320
15321 2023-04-05 Martin Jambor <mjambor@suse.cz>
15322
15323 PR ipa/108959
15324 * ipa-sra.cc (zap_useless_ipcp_results): New function.
15325 (process_isra_node_results): Call it.
15326
15327 2023-04-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15328
15329 * config/riscv/vector.md: Fix incorrect operand order.
15330
15331 2023-04-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
15332
15333 * config/riscv/riscv-vsetvl.cc
15334 (pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
15335 demand fusion.
15336
15337 2023-04-05 Li Xu <xuli1@eswincomputing.com>
15338
15339 * config/riscv/riscv-vector-builtins.def: Fix typo.
15340 * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
15341 * config/riscv/vector-iterators.md: Ditto.
15342
15343 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
15344
15345 * doc/md.texi (Including Patterns): Fix page break.
15346
15347 2023-04-04 Jakub Jelinek <jakub@redhat.com>
15348
15349 PR tree-optimization/109386
15350 * range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
15351 foperator_le::op1_range, foperator_le::op2_range,
15352 foperator_gt::op1_range, foperator_gt::op2_range,
15353 foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
15354 BRS_FALSE case even if the other op is maybe_isnan, not just
15355 known_isnan.
15356 (foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
15357 foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
15358 foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
15359 foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
15360 Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
15361 not just known_isnan.
15362
15363 2023-04-04 Marek Polacek <polacek@redhat.com>
15364
15365 PR sanitizer/109107
15366 * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
15367 when associating.
15368 * match.pd: Use TYPE_OVERFLOW_SANITIZED.
15369
15370 2023-04-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
15371
15372 * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
15373 (mve_vcreateq_f<mode>): Swap operands.
15374
15375 2023-04-04 Andrew Stubbs <ams@codesourcery.com>
15376
15377 * config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
15378
15379 2023-04-04 Jakub Jelinek <jakub@redhat.com>
15380
15381 PR target/109384
15382 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
15383 Reword diagnostics about zfinx conflict with f, formatting fixes.
15384
15385 2023-04-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15386
15387 * config/sol2.h (LIB_SPEC): Don't link with -lpthread.
15388
15389 2023-04-04 Richard Biener <rguenther@suse.de>
15390
15391 PR tree-optimization/109304
15392 * tree-profile.cc (tree_profiling): Use symtab node
15393 availability to decide whether to skip adjusting calls.
15394 Do not adjust calls to internal functions.
15395
15396 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
15397
15398 PR target/108807
15399 * config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
15400 function for permutation control vector by considering big endianness.
15401
15402 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
15403
15404 PR target/108699
15405 * config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
15406 (rs6000_vprtyb<mode>2): ... this.
15407 * config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
15408 rs6000_vprtybv2di2.
15409 (VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
15410 (VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
15411 * config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
15412 popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
15413
15414 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
15415 Sandra Loosemore <sandra@codesourcery.com>
15416
15417 * doc/md.texi (Insn Splitting): Tweak wording for readability.
15418
15419 2023-04-03 Martin Jambor <mjambor@suse.cz>
15420
15421 PR ipa/109303
15422 * ipa-prop.cc (determine_known_aggregate_parts): Check that the
15423 offset + size will be representable in unsigned int.
15424
15425 2023-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15426
15427 * configure.ac (ZSTD_LIB): Move before zstd.h check.
15428 Unset gcc_cv_header_zstd_h without libzstd.
15429 * configure: Regenerate.
15430
15431 2023-04-03 Martin Liska <mliska@suse.cz>
15432
15433 * doc/invoke.texi: Document new param.
15434
15435 2023-04-03 Cupertino Miranda <cupertino.miranda@oracle.com>
15436
15437 * doc/sourcebuild.texi (const_volatile_readonly_section): Document
15438 new check_effective_target function.
15439
15440 2023-04-03 Li Xu <xuli1@eswincomputing.com>
15441
15442 * config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
15443 (vfloat32m8_t): Likewise
15444
15445 2023-04-03 liuhongt <hongtao.liu@intel.com>
15446
15447 * doc/md.texi: Document signbitm2.
15448
15449 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
15450 kito-cheng <kito.cheng@sifive.com>
15451
15452 * config/riscv/vector.md: Fix RA constraint.
15453
15454 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
15455
15456 * config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
15457 * config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
15458 * config/riscv/vector.md: Fix scalar move bug.
15459
15460 2023-04-01 Jakub Jelinek <jakub@redhat.com>
15461
15462 * range-op-float.cc (foperator_equal::fold_range): If at least
15463 one of the op ranges is not singleton and neither is NaN and all
15464 4 bounds are zero, return [1, 1].
15465 (foperator_not_equal::fold_range): In the same case return [0, 0].
15466
15467 2023-04-01 Jakub Jelinek <jakub@redhat.com>
15468
15469 * range-op-float.cc (foperator_equal::fold_range): Perform the
15470 non-singleton handling regardless of maybe_isnan (op1, op2).
15471 (foperator_not_equal::fold_range): Likewise.
15472 (foperator_lt::fold_range, foperator_le::fold_range,
15473 foperator_gt::fold_range, foperator_ge::fold_range): Perform the
15474 real_* comparison check which results in range_false (type)
15475 even if maybe_isnan (op1, op2). Simplify.
15476 (foperator_ltgt): New class.
15477 (fop_ltgt): New variable.
15478 (floating_op_table::floating_op_table): Handle LTGT_EXPR using
15479 fop_ltgt.
15480
15481 2023-04-01 Jakub Jelinek <jakub@redhat.com>
15482
15483 PR target/109254
15484 * builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
15485 returns VOIDmode, handle it like if the register isn't used for
15486 passing arguments at all.
15487 (apply_result_size): If targetm.calls.get_raw_result_mode returns
15488 VOIDmode, handle it like if the register isn't used for returning
15489 results at all.
15490 * target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
15491 means to return VOIDmode.
15492 * doc/tm.texi: Regenerated.
15493 * config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
15494 TARGET_SVE for P0_REGNUM.
15495 (aarch64_function_arg_regno_p): Also return true for p0-p3.
15496 (aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
15497
15498 2023-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
15499
15500 * lra-constraints.cc: (combine_reload_insn): New function.
15501
15502 2023-03-31 Jakub Jelinek <jakub@redhat.com>
15503
15504 PR tree-optimization/91645
15505 * range-op-float.cc (foperator_unordered_lt::fold_range,
15506 foperator_unordered_le::fold_range,
15507 foperator_unordered_gt::fold_range,
15508 foperator_unordered_ge::fold_range,
15509 foperator_unordered_equal::fold_range): Call the ordered
15510 fold_range on ranges with cleared NaNs.
15511 * value-query.cc (range_query::get_tree_range): Handle also
15512 COMPARISON_CLASS_P trees.
15513
15514 2023-03-31 Kito Cheng <kito.cheng@sifive.com>
15515 Andrew Pinski <pinskia@gmail.com>
15516
15517 PR target/109328
15518 * config/riscv/t-riscv: Add missing dependencies.
15519
15520 2023-03-31 liuhongt <hongtao.liu@intel.com>
15521
15522 * config/i386/i386.cc (inline_memory_move_cost): Return 100
15523 for MASK_REGS when MODE_SIZE > 8.
15524
15525 2023-03-31 liuhongt <hongtao.liu@intel.com>
15526
15527 PR target/85048
15528 * config/i386/i386-builtin.def (BDESC): Adjust icode name from
15529 ufloat/ufix to floatuns/fixuns.
15530 * config/i386/i386-expand.cc
15531 (ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
15532 * config/i386/sse.md
15533 (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
15534 Renamed to ..
15535 (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
15536 (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
15537 Renamed to ..
15538 (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
15539 .. this.
15540 (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
15541 Renamed to ..
15542 (fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
15543 (ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
15544 (floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
15545 (ufloatv2siv2df2<mask_name>): Renamed to ..
15546 (<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
15547 (ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
15548 Renamed to ..
15549 (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
15550 .. this.
15551 (ufix_notruncv2dfv2si2): Renamed to ..
15552 (fixuns_notruncv2dfv2si2):.. this.
15553 (ufix_notruncv2dfv2si2_mask): Renamed to ..
15554 (fixuns_notruncv2dfv2si2_mask): .. this.
15555 (*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
15556 (*fixuns_notruncv2dfv2si2_mask_1): .. this.
15557 (ufix_truncv2dfv2si2): Renamed to ..
15558 (*fixuns_truncv2dfv2si2): .. this.
15559 (ufix_truncv2dfv2si2_mask): Renamed to ..
15560 (fixuns_truncv2dfv2si2_mask): .. this.
15561 (*ufix_truncv2dfv2si2_mask_1): Renamed to ..
15562 (*fixuns_truncv2dfv2si2_mask_1): .. this.
15563 (ufix_truncv4dfv4si2<mask_name>): Renamed to ..
15564 (fixuns_truncv4dfv4si2<mask_name>): .. this.
15565 (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
15566 Renamed to ..
15567 (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
15568 .. this.
15569 (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
15570 (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
15571 .. this.
15572
15573 2023-03-30 Andrew MacLeod <amacleod@redhat.com>
15574
15575 PR tree-optimization/109154
15576 * gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
15577 * gimple-range-gori.h (may_recompute_p): Add depth param.
15578 * params.opt (ranger-recompute-depth): New param.
15579
15580 2023-03-30 Jason Merrill <jason@redhat.com>
15581
15582 PR c++/107897
15583 PR c++/108887
15584 * cgraph.h: Move reset() from cgraph_node to symtab_node.
15585 * cgraphunit.cc (symtab_node::reset): Adjust. Also call
15586 remove_from_same_comdat_group.
15587
15588 2023-03-30 Richard Biener <rguenther@suse.de>
15589
15590 PR tree-optimization/107561
15591 * gimple-ssa-warn-access.cc (get_size_range): Add flags
15592 argument and pass it on.
15593 (check_access): When querying for the size range pass
15594 SR_ALLOW_ZERO when the known destination size is zero.
15595
15596 2023-03-30 Richard Biener <rguenther@suse.de>
15597
15598 PR tree-optimization/109342
15599 * tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
15600 overload for edge. When that edge is a backedge use
15601 dominated_by_p directly.
15602
15603 2023-03-30 liuhongt <hongtao.liu@intel.com>
15604
15605 * config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
15606 vpblendd instead of vpblendw for V4SI under avx2.
15607
15608 2023-03-29 Hans-Peter Nilsson <hp@axis.com>
15609
15610 * config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
15611 for many quick operands, for register-sized modes.
15612
15613 2023-03-29 Jiawei <jiawei@iscas.ac.cn>
15614
15615 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
15616 New check.
15617
15618 2023-03-29 Martin Liska <mliska@suse.cz>
15619
15620 PR bootstrap/109310
15621 * configure.ac: Emit a warning for deprecated option
15622 --enable-link-mutex.
15623 * configure: Regenerate.
15624
15625 2023-03-29 Richard Biener <rguenther@suse.de>
15626
15627 PR tree-optimization/109331
15628 * tree-ssa-forwprop.cc (pass_forwprop::execute): When we
15629 discover a taken edge make sure to cleanup the CFG.
15630
15631 2023-03-29 Richard Biener <rguenther@suse.de>
15632
15633 PR tree-optimization/109327
15634 * tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
15635 already removed stmts when draining to_remove.
15636
15637 2023-03-29 Richard Biener <rguenther@suse.de>
15638
15639 PR ipa/106124
15640 * dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
15641 so we can re-create the DIE for the type if required.
15642
15643 2023-03-29 Jakub Jelinek <jakub@redhat.com>
15644 Richard Biener <rguenther@suse.de>
15645
15646 PR tree-optimization/109301
15647 * tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
15648 properties_provided from PROP_gimple_opt_math to 0.
15649 (pass_data_expand_powcabs): Change properties_provided from 0 to
15650 PROP_gimple_opt_math.
15651
15652 2023-03-29 Richard Biener <rguenther@suse.de>
15653
15654 PR tree-optimization/109154
15655 * tree-if-conv.cc (gen_phi_arg_condition): Handle single
15656 inverted condition specially by inverting at the caller.
15657 (gen_phi_arg_condition): Swap COND_EXPR arms if requested.
15658
15659 2023-03-28 David Malcolm <dmalcolm@redhat.com>
15660
15661 PR c/107002
15662 * diagnostic-show-locus.cc (column_range::column_range): Factor
15663 out assertion conditional into...
15664 (column_range::valid_p): ...this new function.
15665 (line_corrections::add_hint): Don't attempt to consolidate hints
15666 if it would lead to invalid column_range instances.
15667
15668 2023-03-28 Kito Cheng <kito.cheng@sifive.com>
15669
15670 PR target/109312
15671 * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
15672 (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
15673 minor refactor.
15674
15675 2023-03-28 Alexander Monakov <amonakov@ispras.ru>
15676
15677 PR rtl-optimization/109187
15678 * haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
15679 subtraction in three-way comparison.
15680
15681 2023-03-28 Andrew MacLeod <amacleod@redhat.com>
15682
15683 PR tree-optimization/109265
15684 PR tree-optimization/109274
15685 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
15686 not create a relation record is op1 and op2 are the same symbol.
15687 (gori_compute::compute_operand1_range): Pass op1 == op2 to the
15688 handler for this stmt, but create a new record only if this statement
15689 generates a relation based on the ranges.
15690 (gori_compute::compute_operand2_range): Ditto.
15691 * value-relation.h (value_relation::set_relation): Always create the
15692 record that is requested.
15693
15694 2023-03-28 Richard Biener <rguenther@suse.de>
15695
15696 PR tree-optimization/107087
15697 * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
15698 executable regions to avoid useless work and to better
15699 propagate degenerate PHIs.
15700
15701 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
15702
15703 * config/i386/x-mingw32-utf8: update comments.
15704
15705 2023-03-28 Richard Sandiford <richard.sandiford@arm.com>
15706
15707 PR target/109072
15708 * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
15709 * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
15710 variable.
15711 * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
15712 New function.
15713 (aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
15714 after inlining. Record which decls are loaded from. Fix handling
15715 of vops for loads and stores.
15716 * config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
15717 (aarch64_accesses_vector_load_decl_p): Likewise.
15718 (aarch64_vector_costs::m_stores_to_vector_load_decl): New member
15719 variable.
15720 (aarch64_vector_costs::add_stmt_cost): If the function has a vld1
15721 that loads from a decl, treat vector stores to those decls as
15722 zero cost.
15723 (aarch64_vector_costs::finish_cost): ...and in that case,
15724 if the vector code does nothing more than a store, give the
15725 prologue a zero cost as well.
15726
15727 2023-03-28 Richard Biener <rguenther@suse.de>
15728
15729 PR bootstrap/84402
15730 PR tree-optimization/108129
15731 * genmatch.cc (lower_for): For (match ...) delay
15732 substituting into the match operator if possible.
15733 (dt_operand::gen_gimple_expr): For user_id look at the
15734 first substitute for determining how to access operands.
15735 (dt_operand::gen_generic_expr): Likewise.
15736 (dt_node::gen_kids): Properly sort user_ids according
15737 to their substitutes.
15738 (dt_node::gen_kids_1): Code-generate user_id matching.
15739
15740 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15741 Jonathan Wakely <jwakely@redhat.com>
15742
15743 * gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
15744 Use subcommand rather than sub-command in function comments.
15745
15746 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15747
15748 PR tree-optimization/109154
15749 * value-range.h (frange::flush_denormals_to_zero): Make it public
15750 rather than private.
15751 * value-range.cc (frange::set): Don't call flush_denormals_to_zero
15752 here.
15753 * range-op-float.cc (range_operator_float::fold_range): Call
15754 flush_denormals_to_zero.
15755
15756 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15757
15758 PR middle-end/106190
15759 * sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
15760 of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
15761
15762 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15763
15764 * range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
15765 as 4th argument to set to avoid clear_nan and union_ calls.
15766
15767 2023-03-28 Jakub Jelinek <jakub@redhat.com>
15768
15769 PR target/109276
15770 * config/i386/i386.cc (assign_386_stack_local): For DImode
15771 with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
15772 align 32 rather than 0 to assign_stack_local.
15773
15774 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
15775
15776 PR target/109140
15777 * config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
15778 on operand #3 to get the final condition code. Use std::swap.
15779 * config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
15780 (fucmp<gcond:code>8<P:mode>_vis): Move around.
15781 (fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
15782 (vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
15783
15784 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
15785
15786 * doc/gm2.texi: Add missing Next, Previous and Top fields to most
15787 top-level sections.
15788
15789 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
15790
15791 * config.host: Pull in i386/x-mingw32-utf8 Makefile
15792 fragment and reference utf8rc-mingw32.o explicitly
15793 for mingw hosts.
15794 * config/i386/sym-mingw32.cc: prevent name mangling of
15795 stub symbol.
15796 * config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
15797 depend on manifest file explicitly.
15798
15799 2023-03-28 Richard Biener <rguenther@suse.de>
15800
15801 Revert:
15802 2023-03-27 Richard Biener <rguenther@suse.de>
15803
15804 PR rtl-optimization/109237
15805 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
15806
15807 2023-03-28 Richard Biener <rguenther@suse.de>
15808
15809 * common.opt (gdwarf): Remove Negative(gdwarf-).
15810
15811 2023-03-28 Richard Biener <rguenther@suse.de>
15812
15813 * common.opt (gdwarf): Add RejectNegative.
15814 (gdwarf-): Likewise.
15815 (ggdb): Likewise.
15816 (gvms): Likewise.
15817
15818 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
15819
15820 * config/cris/constraints.md ("T"): Correct to
15821 define_memory_constraint.
15822
15823 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
15824
15825 * config/cris/cris.md (BW2): New mode-iterator.
15826 (lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
15827 peephole2s.
15828
15829 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
15830
15831 * config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
15832 for possible eliminable compares.
15833
15834 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
15835
15836 * config/cris/constraints.md ("R"): Remove unused constraint.
15837
15838 2023-03-27 Jonathan Wakely <jwakely@redhat.com>
15839
15840 PR gcov-profile/109297
15841 * gcov-tool.cc (merge_usage): Fix "subcomand" typo.
15842 (merge_stream_usage): Likewise.
15843 (overlap_usage): Likewise.
15844
15845 2023-03-27 Christoph Müllner <christoph.muellner@vrull.eu>
15846
15847 PR target/109296
15848 * config/riscv/thead.md: Add missing mode specifiers.
15849
15850 2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
15851 Jiangning Liu <jiangning.liu@amperecomputing.com>
15852 Manolis Tsamis <manolis.tsamis@vrull.eu>
15853
15854 * config/aarch64/aarch64.cc: Update vector costs for ampere1.
15855
15856 2023-03-27 Richard Biener <rguenther@suse.de>
15857
15858 PR rtl-optimization/109237
15859 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
15860
15861 2023-03-27 Richard Biener <rguenther@suse.de>
15862
15863 PR lto/109263
15864 * lto-wrapper.cc (run_gcc): Parse alternate debug options
15865 as well, they always enable debug.
15866
15867 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
15868
15869 PR target/109167
15870 * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
15871 from ...
15872 (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
15873
15874 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
15875
15876 PR target/109082
15877 * config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
15878 than zero when calling vec_sld.
15879 (_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
15880 zero when calling vec_sld.
15881 (_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
15882 than zero when calling vec_sld.
15883
15884 2023-03-27 Sandra Loosemore <sandra@codesourcery.com>
15885
15886 * doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
15887 OMP_TASKLOOP, and OMP_LOOP with OMP_FOR. Document how collapsed
15888 loops are represented and which fields are vectors. Add
15889 documentation for OMP_FOR_PRE_BODY field. Document internal
15890 form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
15891 * tree.def (OMP_FOR): Make documentation consistent with the
15892 Texinfo manual, to fill some gaps and correct errors.
15893
15894 2023-03-26 Andreas Schwab <schwab@linux-m68k.org>
15895
15896 PR target/106282
15897 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
15898 * config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
15899 (handle_move_double): Call it before handle_movsi.
15900 * config/m68k/m68k-protos.h: Declare it.
15901
15902 2023-03-26 Jakub Jelinek <jakub@redhat.com>
15903
15904 PR tree-optimization/109230
15905 * match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
15906
15907 2023-03-26 Jakub Jelinek <jakub@redhat.com>
15908
15909 PR ipa/105685
15910 * predict.cc (compute_function_frequency): Don't call
15911 warn_function_cold if function already has cold attribute.
15912
15913 2023-03-26 Gerald Pfeifer <gerald@pfeifer.com>
15914
15915 * doc/install.texi: Remove anachronistic note
15916 related to languages built and separate source tarballs.
15917
15918 2023-03-25 David Malcolm <dmalcolm@redhat.com>
15919
15920 PR analyzer/109098
15921 * diagnostic-format-sarif.cc (read_until_eof): Delete.
15922 (maybe_read_file): Delete.
15923 (sarif_builder::maybe_make_artifact_content_object): Use
15924 get_source_file_content rather than maybe_read_file.
15925 Reject it if it's not valid UTF-8.
15926 * input.cc (file_cache_slot::get_full_file_content): New.
15927 (get_source_file_content): New.
15928 (selftest::check_cpp_valid_utf8_p): New.
15929 (selftest::test_cpp_valid_utf8_p): New.
15930 (selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
15931 * input.h (get_source_file_content): New prototype.
15932
15933 2023-03-24 David Malcolm <dmalcolm@redhat.com>
15934
15935 * doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
15936 debugging options.
15937 (Special Functions for Debugging the Analyzer): Convert to a
15938 table, and rewrite in places.
15939 (Other Debugging Techniques): Add notes on how to compare two
15940 different exploded graphs.
15941
15942 2023-03-24 David Malcolm <dmalcolm@redhat.com>
15943
15944 PR other/109163
15945 * json.cc: Update comments to indicate that we now preserve
15946 insertion order of keys within objects.
15947 (object::print): Traverse keys in insertion order.
15948 (object::set): Preserve insertion order of keys.
15949 (selftest::test_writing_objects): Add an additional key to verify
15950 that we preserve insertion order.
15951 * json.h (object::m_keys): New field.
15952
15953 2023-03-24 Andrew MacLeod <amacleod@redhat.com>
15954
15955 PR tree-optimization/109238
15956 * gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
15957 predecessors which this block dominates.
15958
15959 2023-03-24 Richard Biener <rguenther@suse.de>
15960
15961 PR tree-optimization/106912
15962 * tree-profile.cc (tree_profiling): Update stmts only when
15963 profiling or testing coverage. Make sure to update calls
15964 fntype, stripping 'const' there.
15965
15966 2023-03-24 Jakub Jelinek <jakub@redhat.com>
15967
15968 PR middle-end/109258
15969 * builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
15970 if target == const0_rtx.
15971
15972 2023-03-24 Alexandre Oliva <oliva@adacore.com>
15973
15974 * doc/sourcebuild.texi (weak_undefined, posix_memalign):
15975 Document options and effective targets.
15976
15977 2023-03-24 Costas Argyris <costas.argyris@gmail.com>
15978
15979 * config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
15980 optional.
15981
15982 2023-03-23 Pat Haugen <pthaugen@linux.ibm.com>
15983
15984 * config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
15985 non-earlyclobber alternative.
15986
15987 2023-03-23 Andrew Pinski <apinski@marvell.com>
15988
15989 PR c/84900
15990 * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
15991 as a lvalue.
15992
15993 2023-03-23 Richard Biener <rguenther@suse.de>
15994
15995 PR tree-optimization/107569
15996 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
15997 Do not push SSA names with zero uses as available leader.
15998 (process_bb): Likewise.
15999
16000 2023-03-23 Richard Biener <rguenther@suse.de>
16001
16002 PR tree-optimization/109262
16003 * tree-ssa-forwprop.cc (pass_forwprop::execute): When
16004 combining a piecewise complex load avoid touching loads
16005 that throw internally. Use fun, not cfun throughout.
16006
16007 2023-03-23 Jakub Jelinek <jakub@redhat.com>
16008
16009 * value-range.cc (irange::irange_union, irange::intersect): Fix
16010 comment spelling bugs.
16011 * gimple-range-trace.cc (range_tracer::do_header): Likewise.
16012 * gimple-range-trace.h: Likewise.
16013 * gimple-range-edge.cc: Likewise.
16014 (gimple_outgoing_range_stmt_p,
16015 gimple_outgoing_range::switch_edge_range,
16016 gimple_outgoing_range::edge_range_p): Likewise.
16017 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
16018 gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
16019 assume_query::assume_query, assume_query::calculate_phi): Likewise.
16020 * gimple-range-edge.h: Likewise.
16021 * value-range.h (Value_Range::set, Value_Range::lower_bound,
16022 Value_Range::upper_bound, frange::set_undefined): Likewise.
16023 * gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
16024 gori_compute): Likewise.
16025 * gimple-range-fold.h (fold_using_range): Likewise.
16026 * gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
16027 Likewise.
16028 * gimple-range-gori.cc (range_def_chain::in_chain_p,
16029 range_def_chain::dump, gori_map::calculate_gori,
16030 gori_compute::compute_operand_range_switch,
16031 gori_compute::logical_combine, gori_compute::refine_using_relation,
16032 gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
16033 Likewise.
16034 * gimple-range.h: Likewise.
16035 (enable_ranger): Likewise.
16036 * range-op.h (empty_range_varying): Likewise.
16037 * value-query.h (value_query): Likewise.
16038 * gimple-range-cache.cc (block_range_cache::set_bb_range,
16039 block_range_cache::dump, ssa_global_cache::clear_global_range,
16040 temporal_cache::temporal_value, temporal_cache::current_p,
16041 ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
16042 ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
16043 Likewise.
16044 * gimple-range-fold.cc (fur_edge::get_phi_operand,
16045 fur_stmt::get_operand, gimple_range_adjustment,
16046 fold_using_range::range_of_phi,
16047 fold_using_range::relation_fold_and_or): Likewise.
16048 * value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
16049 * value-query.cc (range_query::value_of_expr,
16050 range_query::value_on_edge, range_query::query_relation): Likewise.
16051 * tree-vrp.cc (remove_unreachable::remove_and_update_globals,
16052 intersect_range_with_nonzero_bits): Likewise.
16053 * gimple-range-infer.cc (gimple_infer_range::check_assume_func,
16054 exit_range): Likewise.
16055 * value-relation.h: Likewise.
16056 (equiv_oracle, relation_trio::relation_trio, value_relation,
16057 value_relation::value_relation, pe_min): Likewise.
16058 * range-op-float.cc (range_operator_float::rv_fold,
16059 frange_arithmetic, foperator_unordered_equal::op1_range,
16060 foperator_div::rv_fold): Likewise.
16061 * gimple-range-op.cc (cfn_clz::fold_range): Likewise.
16062 * value-relation.cc (equiv_oracle::query_relation,
16063 equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
16064 value_relation::apply_transitive, relation_chain_head::find_relation,
16065 dom_oracle::query_relation, dom_oracle::find_relation_block,
16066 dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
16067 * range-op.cc (range_operator::wi_fold_in_parts_equiv,
16068 create_possibly_reversed_range, adjust_op1_for_overflow,
16069 operator_mult::wi_fold, operator_exact_divide::op1_range,
16070 operator_cast::lhs_op1_relation, operator_cast::fold_pair,
16071 operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
16072 range_op_lshift_tests): Likewise.
16073
16074 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
16075
16076 * config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
16077 (move_callee_saved_registers): Detect the bug condition early.
16078
16079 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
16080
16081 * config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
16082 * config/gcn/gcn-valu.md (V_1REG_ALT): New.
16083 (V_2REG_ALT): New.
16084 (vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
16085 (vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
16086 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
16087 * config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
16088 * config/gcn/predicates.md (ascending_zero_int_parallel): New.
16089
16090 2023-03-23 Jakub Jelinek <jakub@redhat.com>
16091
16092 PR tree-optimization/109176
16093 * tree-vect-generic.cc (expand_vector_condition): If a has
16094 vector boolean type and is a comparison, also check if both
16095 the comparison and VEC_COND_EXPR could be successfully expanded
16096 individually.
16097
16098 2023-03-23 Pan Li <pan2.li@intel.com>
16099 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16100
16101 PR target/108654
16102 PR target/108185
16103 * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
16104 for vector mask modes.
16105 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
16106 * config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
16107
16108 2023-03-23 Songhe Zhu <zhusonghe@eswincomputing.com>
16109
16110 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
16111
16112 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16113
16114 PR target/109244
16115 * config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
16116 (emit_vlmax_op): Ditto.
16117 * config/riscv/riscv-v.cc (get_sew): New function.
16118 (emit_vlmax_vsetvl): Adapt function.
16119 (emit_pred_op): Ditto.
16120 (emit_vlmax_op): Ditto.
16121 (emit_nonvlmax_op): Ditto.
16122 (legitimize_move): Fix LRA ICE.
16123 (gen_no_side_effects_vsetvl_rtx): Adapt function.
16124 * config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
16125 (@mov<VB:mode><P:mode>_lra): Ditto.
16126 (*mov<V_FRACT:mode><P:mode>_lra): Ditto.
16127 (*mov<VB:mode><P:mode>_lra): Ditto.
16128
16129 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16130
16131 PR target/109228
16132 * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
16133 __riscv_vlenb support.
16134 (BASE): Ditto.
16135 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16136 * config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
16137 * config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
16138 (SHAPE): Ditto.
16139 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
16140 * config/riscv/riscv-vector-builtins.cc: Ditto.
16141
16142 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16143 kito-cheng <kito.cheng@sifive.com>
16144
16145 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
16146 (pass_vsetvl::compute_local_backward_infos): Fix bugs.
16147 (pass_vsetvl::need_vsetvl): Fix bugs.
16148 (pass_vsetvl::backward_demand_fusion): Fix bugs.
16149 (pass_vsetvl::demand_fusion): Fix bugs.
16150 (eliminate_insn): Fix bugs.
16151 (insert_vsetvl): Ditto.
16152 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
16153 * config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
16154 * config/riscv/vector.md: Ditto.
16155
16156 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16157 kito-cheng <kito.cheng@sifive.com>
16158
16159 * config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
16160 * config/riscv/vector-iterators.md (nmsac): Ditto.
16161 (nmsub): Ditto.
16162 (msac): Ditto.
16163 (msub): Ditto.
16164 (nmadd): Ditto.
16165 (nmacc): Ditto.
16166 * config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
16167 (@pred_mul_plus<mode>): Ditto.
16168 (*pred_madd<mode>): Ditto.
16169 (*pred_macc<mode>): Ditto.
16170 (*pred_mul_plus<mode>): Ditto.
16171 (@pred_mul_plus<mode>_scalar): Ditto.
16172 (*pred_madd<mode>_scalar): Ditto.
16173 (*pred_macc<mode>_scalar): Ditto.
16174 (*pred_mul_plus<mode>_scalar): Ditto.
16175 (*pred_madd<mode>_extended_scalar): Ditto.
16176 (*pred_macc<mode>_extended_scalar): Ditto.
16177 (*pred_mul_plus<mode>_extended_scalar): Ditto.
16178 (@pred_minus_mul<mode>): Ditto.
16179 (*pred_<madd_nmsub><mode>): Ditto.
16180 (*pred_nmsub<mode>): Ditto.
16181 (*pred_<macc_nmsac><mode>): Ditto.
16182 (*pred_nmsac<mode>): Ditto.
16183 (*pred_mul_<optab><mode>): Ditto.
16184 (*pred_minus_mul<mode>): Ditto.
16185 (@pred_mul_<optab><mode>_scalar): Ditto.
16186 (@pred_minus_mul<mode>_scalar): Ditto.
16187 (*pred_<madd_nmsub><mode>_scalar): Ditto.
16188 (*pred_nmsub<mode>_scalar): Ditto.
16189 (*pred_<macc_nmsac><mode>_scalar): Ditto.
16190 (*pred_nmsac<mode>_scalar): Ditto.
16191 (*pred_mul_<optab><mode>_scalar): Ditto.
16192 (*pred_minus_mul<mode>_scalar): Ditto.
16193 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
16194 (*pred_nmsub<mode>_extended_scalar): Ditto.
16195 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
16196 (*pred_nmsac<mode>_extended_scalar): Ditto.
16197 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
16198 (*pred_minus_mul<mode>_extended_scalar): Ditto.
16199 (*pred_<madd_msub><mode>): Ditto.
16200 (*pred_<macc_msac><mode>): Ditto.
16201 (*pred_<madd_msub><mode>_scalar): Ditto.
16202 (*pred_<macc_msac><mode>_scalar): Ditto.
16203 (@pred_neg_mul_<optab><mode>): Ditto.
16204 (@pred_mul_neg_<optab><mode>): Ditto.
16205 (*pred_<nmadd_msub><mode>): Ditto.
16206 (*pred_<nmsub_nmadd><mode>): Ditto.
16207 (*pred_<nmacc_msac><mode>): Ditto.
16208 (*pred_<nmsac_nmacc><mode>): Ditto.
16209 (*pred_neg_mul_<optab><mode>): Ditto.
16210 (*pred_mul_neg_<optab><mode>): Ditto.
16211 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
16212 (@pred_mul_neg_<optab><mode>_scalar): Ditto.
16213 (*pred_<nmadd_msub><mode>_scalar): Ditto.
16214 (*pred_<nmsub_nmadd><mode>_scalar): Ditto.
16215 (*pred_<nmacc_msac><mode>_scalar): Ditto.
16216 (*pred_<nmsac_nmacc><mode>_scalar): Ditto.
16217 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
16218 (*pred_mul_neg_<optab><mode>_scalar): Ditto.
16219 (@pred_widen_neg_mul_<optab><mode>): Ditto.
16220 (@pred_widen_mul_neg_<optab><mode>): Ditto.
16221 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
16222 (@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
16223
16224 2023-03-23 liuhongt <hongtao.liu@intel.com>
16225
16226 * builtins.cc (builtin_memset_read_str): Replace
16227 targetm.gen_memset_scratch_rtx with gen_reg_rtx.
16228 (builtin_memset_gen_str): Ditto.
16229 * config/i386/i386-expand.cc
16230 (ix86_convert_const_wide_int_to_broadcast): Replace
16231 ix86_gen_scratch_sse_rtx with gen_reg_rtx.
16232 (ix86_expand_vector_move): Ditto.
16233 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
16234 Removed.
16235 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
16236 (TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
16237 * doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
16238 * doc/tm.texi.in: Ditto.
16239 * target.def: Ditto.
16240
16241 2023-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
16242
16243 * lra.cc (lra): Do not repeat inheritance and live range splitting
16244 when asm error is found.
16245
16246 2023-03-22 Andrew Jenner <andrew@codesourcery.com>
16247
16248 * config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
16249 (gcn_expand_dpp_distribute_even_insn)
16250 (gcn_expand_dpp_distribute_odd_insn): Declare.
16251 * config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
16252 (@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
16253 (cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
16254 (cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
16255 (fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
16256 (fms<mode>4_negop2): New patterns.
16257 * config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
16258 (gcn_expand_dpp_distribute_even_insn)
16259 (gcn_expand_dpp_distribute_odd_insn): New functions.
16260 * config/gcn/gcn.md: Add entries to unspec enum.
16261
16262 2023-03-22 Aldy Hernandez <aldyh@redhat.com>
16263
16264 PR tree-optimization/109008
16265 * value-range.cc (frange::set): Add nan_state argument.
16266 * value-range.h (class nan_state): New.
16267 (frange::get_nan_state): New.
16268
16269 2023-03-22 Martin Liska <mliska@suse.cz>
16270
16271 * configure: Regenerate.
16272
16273 2023-03-21 Joseph Myers <joseph@codesourcery.com>
16274
16275 * stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
16276 to variants.
16277
16278 2023-03-21 Andrew MacLeod <amacleod@redhat.com>
16279
16280 PR tree-optimization/109192
16281 * gimple-range-gori.cc (gori_compute::compute_operand_range):
16282 Terminate gori calculations if a relation is not relevant.
16283 * value-relation.h (value_relation::set_relation): Allow
16284 equality between op1 and op2 if they are the same.
16285
16286 2023-03-21 Richard Biener <rguenther@suse.de>
16287
16288 PR tree-optimization/109219
16289 * tree-vect-loop.cc (vectorizable_reduction): Check
16290 slp_node, not STMT_SLP_TYPE.
16291 * tree-vect-stmts.cc (vectorizable_condition): Likewise.
16292 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
16293 Remove assertion on STMT_SLP_TYPE.
16294
16295 2023-03-21 Jakub Jelinek <jakub@redhat.com>
16296
16297 PR tree-optimization/109215
16298 * tree.h (enum special_array_member): Adjust comments for int_0
16299 and trail_0.
16300 * tree.cc (component_ref_sam_type): Clear zero_elts if memtype
16301 has zero sized element type and the array has variable number of
16302 elements or constant one or more elements.
16303 (component_ref_size): Adjust comments, formatting fix.
16304
16305 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16306
16307 * configure.ac: Add check for the Texinfo 6.8
16308 CONTENTS_OUTPUT_LOCATION customization variable and set it if
16309 supported.
16310 * configure: Regenerate.
16311 * Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable. Set by
16312 configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
16313 CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
16314 ($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
16315
16316 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16317
16318 * doc/extend.texi: Associate use_hazard_barrier_return index
16319 entry with its attribute.
16320 * doc/invoke.texi: Associate -fcanon-prefix-map index entry with
16321 its attribute
16322
16323 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16324
16325 * doc/implement-c.texi: Remove usage of @gol.
16326 * doc/invoke.texi: Ditto.
16327 * doc/sourcebuild.texi: Ditto.
16328 * doc/include/gcc-common.texi: Remove @gol. In new Makeinfo and
16329 texinfo.tex versions, the bug it was working around appears to
16330 be gone.
16331
16332 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16333
16334 * doc/include/texinfo.tex: Update to 2023-01-17.19.
16335
16336 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16337
16338 * doc/include/gcc-common.texi: Add @defbuiltin{,x} and
16339 @enddefbuiltin for defining built-in functions.
16340 * doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
16341 places where it should be used.
16342
16343 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16344
16345 * doc/extend.texi (Formatted Output Function Checking): New
16346 subsection for grouping together printf et al.
16347 (Exception handling) Fix missing @ sign before copyright
16348 header, which lead to the copyright line leaking into
16349 '(gcc)Exception handling'.
16350 * doc/gcc.texi: Set document language to en_US.
16351 (@copying): Wrap front cover texts in quotations, move in manual
16352 description text.
16353
16354 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
16355
16356 * doc/gcc.texi: Add the Indices appendix, to make texinfo
16357 generate nice indices overview page.
16358
16359 2023-03-21 Richard Biener <rguenther@suse.de>
16360
16361 PR tree-optimization/109170
16362 * gimple-range-op.cc (cfn_pass_through_arg1): New.
16363 (gimple_range_op_handler::maybe_builtin_call): Handle
16364 __builtin_expect via cfn_pass_through_arg1.
16365
16366 2023-03-20 Michael Meissner <meissner@linux.ibm.com>
16367
16368 PR target/109067
16369 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
16370 (init_float128_ieee): Delete code to switch complex multiply and divide
16371 for long double.
16372 (complex_multiply_builtin_code): New helper function.
16373 (complex_divide_builtin_code): Likewise.
16374 (rs6000_mangle_decl_assembler_name): Add support for mangling the name
16375 of complex 128-bit multiply and divide built-in functions.
16376
16377 2023-03-20 Peter Bergner <bergner@linux.ibm.com>
16378
16379 PR target/109178
16380 * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
16381
16382 2023-03-19 Jonny Grant <jg@jguk.org>
16383
16384 * doc/extend.texi (Common Function Attributes) <nonnull>:
16385 Correct typo.
16386
16387 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
16388
16389 PR rtl-optimization/109179
16390 * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
16391 insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
16392
16393 2023-03-17 Jakub Jelinek <jakub@redhat.com>
16394
16395 PR target/105554
16396 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
16397 to false.
16398 * function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
16399 to allocate_struct_function instead of false.
16400 * tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
16401 nor DECL_RESULT here. Pass true as ABSTRACT_P to
16402 push_struct_function. Call targetm.target_option.relayout_function
16403 after it.
16404 (tree_function_versioning): Formatting fix.
16405
16406 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
16407
16408 * lra-constraints.cc: Include hooks.h.
16409 (combine_reload_insn): New function.
16410 (lra_constraints): Call it.
16411
16412 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16413 kito-cheng <kito.cheng@sifive.com>
16414
16415 * config/riscv/riscv-v.cc (legitimize_move): Allow undef value
16416 as legitimate value.
16417 * config/riscv/riscv-vector-builtins.cc
16418 (function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
16419 (function_expander::use_widen_ternop_insn): Ditto.
16420 * config/riscv/vector.md (@vundefined<mode>): New pattern.
16421 (pred_mul_<optab><mode>_undef_merge): Remove.
16422 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
16423 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
16424 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
16425 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
16426
16427 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16428
16429 PR target/109092
16430 * config/riscv/riscv.md: Fix subreg bug.
16431
16432 2023-03-17 Jakub Jelinek <jakub@redhat.com>
16433
16434 PR middle-end/108685
16435 * omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
16436 use its loop_father rather than BODY_BB's loop_father.
16437 (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
16438 If broken_loop with ordered > collapse and at least one of those
16439 extra loops aren't guaranteed to have at least one iteration, change
16440 l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
16441 loop_father to l0_bb's loop_father rather than l1_bb's.
16442
16443 2023-03-17 Jakub Jelinek <jakub@redhat.com>
16444
16445 PR plugins/108634
16446 * gdbhooks.py (TreePrinter.to_string): Wrap
16447 gdb.parse_and_eval('tree_code_type') in a try block, parse
16448 and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
16449 raises exception. Update comments for the recent tree_code_type
16450 changes.
16451
16452 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
16453
16454 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
16455 issues. Add more line breaks to example so it doesn't overflow
16456 the margins.
16457
16458 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
16459
16460 * doc/extend.texi (Common Function Attributes) <access>: Fix bad
16461 line breaks in examples.
16462 <malloc>: Fix bad line breaks in running text, also copy-edit
16463 for consistency.
16464 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
16465 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
16466 @gol.
16467 (C++ Dialect Options) <-fcontracts>: Add line break in example.
16468 <-Wctad-maybe-unsupported>: Likewise.
16469 <-Winvalid-constexpr>: Likewise.
16470 (Warning Options) <-Wdangling-pointer>: Likewise.
16471 <-Winterference-size>: Likewise.
16472 <-Wvla-parameter>: Likewise.
16473 (Static Analyzer Options): Fix bad line breaks in running text,
16474 plus add some missing markup.
16475 (Optimize Options) <openacc-privatization>: Fix more bad line
16476 breaks in running text.
16477
16478 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
16479
16480 * config/i386/i386-expand.cc (expand_vec_perm_pblendv):
16481 Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
16482 (expand_vec_perm_2perm_pblendv): Ditto.
16483
16484 2023-03-16 Martin Liska <mliska@suse.cz>
16485
16486 PR middle-end/106133
16487 * gcc.cc (driver_handle_option): Use x_main_input_basename
16488 if x_dump_base_name is null.
16489 * opts.cc (common_handle_option): Likewise.
16490
16491 2023-03-16 Richard Biener <rguenther@suse.de>
16492
16493 PR tree-optimization/109123
16494 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
16495 Do not emit -Wuse-after-free late.
16496 (pass_waccess::check_call): Always check call pointer uses.
16497
16498 2023-03-16 Richard Biener <rguenther@suse.de>
16499
16500 PR tree-optimization/109141
16501 * tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
16502 * tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
16503 out from ...
16504 (renumber_gimple_stmt_uids): ... here and
16505 (renumber_gimple_stmt_uids_in_blocks): ... here.
16506 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
16507 Use renumber_gimple_stmt_uids_in_block to also assign UIDs
16508 to PHIs.
16509 (pass_waccess::check_pointer_uses): Process all PHIs.
16510
16511 2023-03-15 David Malcolm <dmalcolm@redhat.com>
16512
16513 PR analyzer/109097
16514 * diagnostic-format-sarif.cc (class sarif_invocation): New.
16515 (class sarif_ice_notification): New.
16516 (sarif_builder::m_invocation_obj): New field.
16517 (sarif_invocation::add_notification_for_ice): New.
16518 (sarif_invocation::prepare_to_flush): New.
16519 (sarif_ice_notification::sarif_ice_notification): New.
16520 (sarif_builder::sarif_builder): Add m_invocation_obj.
16521 (sarif_builder::end_diagnostic): Special-case DK_ICE and
16522 DK_ICE_NOBT.
16523 (sarif_builder::flush_to_file): Call prepare_to_flush on
16524 m_invocation_obj. Pass the latter to make_top_level_object.
16525 (sarif_builder::make_result_object): Move creation of "locations"
16526 array to...
16527 (sarif_builder::make_locations_arr): ...this new function.
16528 (sarif_builder::make_top_level_object): Add "invocation_obj" param
16529 and pass it to make_run_object.
16530 (sarif_builder::make_run_object): Add "invocation_obj" param and
16531 use it.
16532 (sarif_ice_handler): New callback.
16533 (diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
16534 * diagnostic.cc (diagnostic_initialize): Initialize new field
16535 "ice_handler_cb".
16536 (diagnostic_action_after_output): If it is set, make one attempt
16537 to call ice_handler_cb.
16538 * diagnostic.h (diagnostic_context::ice_handler_cb): New field.
16539
16540 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
16541
16542 * config/i386/i386-expand.cc (expand_vec_perm_blend):
16543 Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
16544 and fix V2HImode handling.
16545 (expand_vec_perm_1): Try to emit BLEND instruction
16546 before MOVSS/MOVSD.
16547 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
16548
16549 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
16550
16551 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
16552
16553 2023-03-15 Richard Biener <rguenther@suse.de>
16554
16555 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
16556 Do not diagnose clobbers.
16557
16558 2023-03-15 Richard Biener <rguenther@suse.de>
16559
16560 PR tree-optimization/109139
16561 * tree-ssa-live.cc (remove_unused_locals): Look at the
16562 base address for unused decls on the LHS of .DEFERRED_INIT.
16563
16564 2023-03-15 Xi Ruoyao <xry111@xry111.site>
16565
16566 PR other/109086
16567 * builtins.cc (inline_string_cmp): Force the character
16568 difference into "result" pseudo-register, instead of reassign
16569 the pseudo-register.
16570
16571 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16572
16573 * config.gcc: Add thead.o to RISC-V extra_objs.
16574 * config/riscv/peephole.md: Add mempair peephole passes.
16575 * config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
16576 prototype.
16577 (th_mempair_operands_p): Likewise.
16578 (th_mempair_order_operands): Likewise.
16579 (th_mempair_prepare_save_restore_operands): Likewise.
16580 (th_mempair_save_restore_regs): Likewise.
16581 (th_mempair_output_move): Likewise.
16582 * config/riscv/riscv.cc (riscv_save_reg): Move code.
16583 (riscv_restore_reg): Move code.
16584 (riscv_for_each_saved_reg): Add code to emit mempair insns.
16585 * config/riscv/t-riscv: Add thead.cc.
16586 * config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
16587 New insn.
16588 (*th_mempair_store_<GPR:mode>2): Likewise.
16589 (*th_mempair_load_extendsidi2): Likewise.
16590 (*th_mempair_load_zero_extendsidi2): Likewise.
16591 * config/riscv/thead.cc: New file.
16592
16593 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16594
16595 * config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
16596 New constraint "th_f_fmv".
16597 (TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
16598 "th_r_fmv".
16599 * config/riscv/riscv.cc (riscv_split_doubleword_move):
16600 Add split code for XTheadFmv.
16601 (riscv_secondary_memory_needed): XTheadFmv does not need
16602 secondary memory.
16603 * config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
16604 UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
16605 movdf_hardfloat_rv32.
16606 * config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
16607 (th_fmv_x_w): New INSN.
16608 (th_fmv_x_hw): New INSN.
16609
16610 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16611
16612 * config/riscv/riscv.md (maddhisi4): New expand.
16613 (msubhisi4): New expand.
16614 * config/riscv/thead.md (*th_mula<mode>): New pattern.
16615 (*th_mulawsi): New pattern.
16616 (*th_mulawsi2): New pattern.
16617 (*th_maddhisi4): New pattern.
16618 (*th_sextw_maddhisi4): New pattern.
16619 (*th_muls<mode>): New pattern.
16620 (*th_mulswsi): New pattern.
16621 (*th_mulswsi2): New pattern.
16622 (*th_msubhisi4): New pattern.
16623 (*th_sextw_msubhisi4): New pattern.
16624
16625 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16626
16627 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
16628 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
16629 Add prototype.
16630 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
16631 XTheadCondMov.
16632 (riscv_expand_conditional_move): New function.
16633 (riscv_expand_conditional_move_onesided): New function.
16634 * config/riscv/riscv.md: Add support for XTheadCondMov.
16635 * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
16636 support for XTheadCondMov.
16637 (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
16638
16639 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16640
16641 * config/riscv/bitmanip.md (clzdi2): New expand.
16642 (clzsi2): New expand.
16643 (ctz<mode>2): New expand.
16644 (popcount<mode>2): New expand.
16645 (<bitmanip_optab>si2): Rename INSN.
16646 (*<bitmanip_optab>si2): Hide INSN name.
16647 (<bitmanip_optab>di2): Rename INSN.
16648 (*<bitmanip_optab>di2): Hide INSN name.
16649 (rotrsi3): Remove INSN.
16650 (rotr<mode>3): Add expand.
16651 (*rotrsi3): New INSN.
16652 (rotrdi3): Rename INSN.
16653 (*rotrdi3): Hide INSN name.
16654 (rotrsi3_sext): Rename INSN.
16655 (*rotrsi3_sext): Hide INSN name.
16656 (bswap<mode>2): Remove INSN.
16657 (bswapdi2): Add expand.
16658 (bswapsi2): Add expand.
16659 (*bswap<mode>2): Hide INSN name.
16660 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
16661 extraction.
16662 * config/riscv/riscv.md (extv<mode>): New expand.
16663 (extzv<mode>): New expand.
16664 * config/riscv/thead.md (*th_srri<mode>3): New INSN.
16665 (*th_ext<mode>): New INSN.
16666 (*th_extu<mode>): New INSN.
16667 (*th_clz<mode>2): New INSN.
16668 (*th_rev<mode>2): New INSN.
16669
16670 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16671
16672 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
16673 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
16674
16675 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16676
16677 * config/riscv/riscv.md: Include thead.md
16678 * config/riscv/thead.md: New file.
16679
16680 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16681
16682 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
16683
16684 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
16685
16686 * common/config/riscv/riscv-common.cc: Add xthead* extensions.
16687 * config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
16688 (MASK_XTHEADBB): New.
16689 (MASK_XTHEADBS): New.
16690 (MASK_XTHEADCMO): New.
16691 (MASK_XTHEADCONDMOV): New.
16692 (MASK_XTHEADFMEMIDX): New.
16693 (MASK_XTHEADFMV): New.
16694 (MASK_XTHEADINT): New.
16695 (MASK_XTHEADMAC): New.
16696 (MASK_XTHEADMEMIDX): New.
16697 (MASK_XTHEADMEMPAIR): New.
16698 (MASK_XTHEADSYNC): New.
16699 (TARGET_XTHEADBA): New.
16700 (TARGET_XTHEADBB): New.
16701 (TARGET_XTHEADBS): New.
16702 (TARGET_XTHEADCMO): New.
16703 (TARGET_XTHEADCONDMOV): New.
16704 (TARGET_XTHEADFMEMIDX): New.
16705 (TARGET_XTHEADFMV): New.
16706 (TARGET_XTHEADINT): New.
16707 (TARGET_XTHEADMAC): New.
16708 (TARGET_XTHEADMEMIDX): New.
16709 (TARGET_XTHEADMEMPAIR): new.
16710 (TARGET_XTHEADSYNC): New.
16711 * config/riscv/riscv.opt: Add riscv_xthead_subext.
16712
16713 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
16714
16715 PR target/109117
16716 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
16717 __builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
16718 __builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
16719
16720 2023-03-14 Jakub Jelinek <jakub@redhat.com>
16721
16722 PR target/109109
16723 * config/i386/i386-expand.cc (split_double_concat): Fix splitting
16724 when lo is equal to dhi and hi is a MEM which uses dlo register.
16725
16726 2023-03-14 Martin Jambor <mjambor@suse.cz>
16727
16728 PR ipa/107925
16729 * ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
16730 global0 instead of zeroing when it does not have as many counts as
16731 it should.
16732
16733 2023-03-14 Martin Jambor <mjambor@suse.cz>
16734
16735 PR ipa/107925
16736 * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
16737 ipa count, remove assert, lenient_count_portion_handling, dump
16738 also orig_node_count.
16739
16740 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
16741
16742 * config/i386/i386-expand.cc (expand_vec_perm_movs):
16743 Handle V2SImode for TARGET_MMX_WITH_SSE.
16744 * config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
16745 using V2FI mode iterator to handle both V2SI and V2SF modes.
16746
16747 2023-03-14 Sam James <sam@gentoo.org>
16748
16749 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
16750 including <sstream> earlier.
16751 * system.h: Add INCLUDE_SSTREAM.
16752
16753 2023-03-14 Richard Biener <rguenther@suse.de>
16754
16755 * tree-ssa-live.cc (remove_unused_locals): Do not treat
16756 the .DEFERRED_INIT of a variable as use, instead remove
16757 that if it is the only use.
16758
16759 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
16760
16761 PR rtl-optimization/107762
16762 * expr.cc (emit_group_store): Revert latest change.
16763
16764 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
16765
16766 PR tree-optimization/109005
16767 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
16768 aggregate type check.
16769
16770 2023-03-14 Jakub Jelinek <jakub@redhat.com>
16771
16772 PR tree-optimization/109115
16773 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
16774 r.upper_bound () on r.undefined_p () range.
16775
16776 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
16777
16778 PR tree-optimization/106896
16779 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
16780 implementatoin with probability_in; avoid some asserts.
16781
16782 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
16783
16784 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
16785
16786 2023-03-13 Sean Bright <sean@seanbright.com>
16787
16788 * doc/invoke.texi (Warning Options): Remove errant 'See'
16789 before @xref.
16790
16791 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
16792
16793 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
16794 REG_OK_FOR_BASE_P): Remove.
16795
16796 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16797
16798 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
16799 (=vd,vd,vr,vr): Ditto.
16800 * config/riscv/vector.md: Ditto.
16801
16802 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16803
16804 * config/riscv/riscv-vector-builtins.cc
16805 (function_expander::use_compare_insn): Add operand predicate check.
16806
16807 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16808
16809 * config/riscv/vector.md: Fine tune RA constraints.
16810
16811 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
16812
16813 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
16814 hsaco assemble/link.
16815
16816 2023-03-13 Richard Biener <rguenther@suse.de>
16817
16818 PR tree-optimization/109046
16819 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
16820 piecewise complex loads.
16821
16822 2023-03-12 Jakub Jelinek <jakub@redhat.com>
16823
16824 * config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
16825 (aarch64_bf16_ptr_type_node): Adjust comment.
16826 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
16827 bfloat16_type_node rather than aarch64_bf16_type_node.
16828 (aarch64_libgcc_floating_mode_supported_p,
16829 aarch64_scalar_mode_supported_p): Also support BFmode.
16830 (aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
16831 (aarch64_invalid_binary_op): Remove BFmode related rejections.
16832 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
16833 * config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
16834 (aarch64_int_or_fp_type): Use bfloat16_type_node rather than
16835 aarch64_bf16_type_node.
16836 (aarch64_init_simd_builtin_types): Likewise.
16837 (aarch64_init_bf16_types): Likewise. Don't create bfloat16_type_node,
16838 which is created in tree.cc already.
16839 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
16840
16841 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
16842
16843 PR middle-end/109031
16844 * tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
16845 ensure that the type of x is as wide or wider than the type of a.
16846
16847 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16848
16849 PR target/108583
16850 * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
16851 (*bitmask_shift_plus<mode>): New.
16852 * config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
16853 (@aarch64_bitmask_udiv<mode>3): Remove.
16854 * config/aarch64/aarch64.cc
16855 (aarch64_vectorize_can_special_div_by_constant,
16856 TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
16857 (TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
16858 aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
16859
16860 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16861
16862 PR target/108583
16863 * target.def (preferred_div_as_shifts_over_mult): New.
16864 * doc/tm.texi.in: Document it.
16865 * doc/tm.texi: Regenerate.
16866 * targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
16867 * targhooks.h (default_preferred_div_as_shifts_over_mult): New.
16868 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
16869
16870 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16871 Richard Sandiford <richard.sandiford@arm.com>
16872
16873 PR target/108583
16874 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
16875 single use.
16876
16877 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16878 Andrew MacLeod <amacleod@redhat.com>
16879
16880 PR target/108583
16881 * gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
16882 * gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
16883 Use it.
16884 (gimple_range_op_handler::maybe_non_standard): New.
16885 * range-op.cc (class operator_widen_plus_signed,
16886 operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
16887 operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
16888 operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
16889 operator_widen_mult_unsigned::wi_fold,
16890 ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
16891 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
16892 * range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
16893 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
16894
16895 2023-03-12 Tamar Christina <tamar.christina@arm.com>
16896
16897 PR target/108583
16898 * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
16899 * doc/tm.texi.in: Likewise.
16900 * explow.cc (round_push, align_dynamic_address): Revert previous patch.
16901 * expmed.cc (expand_divmod): Likewise.
16902 * expmed.h (expand_divmod): Likewise.
16903 * expr.cc (force_operand, expand_expr_divmod): Likewise.
16904 * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
16905 * target.def (can_special_div_by_const): Remove.
16906 * target.h: Remove tree-core.h include
16907 * targhooks.cc (default_can_special_div_by_const): Remove.
16908 * targhooks.h (default_can_special_div_by_const): Remove.
16909 * tree-vect-generic.cc (expand_vector_operation): Remove hook.
16910 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
16911 * tree-vect-stmts.cc (vectorizable_operation): Remove hook.
16912
16913 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
16914
16915 * doc/install.texi2html: Fix issue number typo in comment.
16916
16917 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
16918
16919 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
16920 bool.
16921
16922 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
16923
16924 * doc/invoke.texi (Optimize Options): Add markup to
16925 description of asan-kernel-mem-intrinsic-prefix, and clarify
16926 wording slightly.
16927
16928 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
16929
16930 * doc/extend.texi (Named Address Spaces): Drop a redundant link
16931 to AVR-LibC.
16932
16933 2023-03-11 Jeff Law <jlaw@ventanamicro>
16934
16935 PR web/88860
16936 * doc/extend.texi: Clarify Attribute Syntax a bit.
16937
16938 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
16939
16940 * doc/install.texi (Prerequisites): Suggest using newer versions
16941 of Texinfo.
16942 (Final install): Clean up and modernize discussion of how to
16943 build or obtain the GCC manuals.
16944 * doc/install.texi2html: Update comment to point to the PR instead
16945 of "makeinfo 4.7 brokenness" (it's not specific to that version).
16946
16947 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16948
16949 PR target/107703
16950 * optabs.cc (expand_fix): For conversions from BFmode to integral,
16951 use shifts to convert it to SFmode first and then convert SFmode
16952 to integral.
16953
16954 2023-03-10 Andrew Pinski <apinski@marvell.com>
16955
16956 * config/aarch64/aarch64.md: Add a new define_split
16957 to help combine.
16958
16959 2023-03-10 Richard Biener <rguenther@suse.de>
16960
16961 * tree-ssa-structalias.cc (solve_graph): Immediately
16962 iterate self-cycles.
16963
16964 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16965
16966 PR tree-optimization/109008
16967 * range-op-float.cc (float_widen_lhs_range): If not
16968 -frounding-math and not IBM double double format, extend lhs
16969 range just by 0.5ulp rather than 1ulp in each direction.
16970
16971 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16972
16973 PR target/107998
16974 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
16975 $tmake_file.
16976 * config/i386/t-cygwin-w64: Remove.
16977
16978 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16979
16980 PR plugins/108634
16981 * tree-core.h (tree_code_type, tree_code_length): For C++11 or
16982 C++14, don't declare as extern const arrays.
16983 (tree_code_type_tmpl, tree_code_length_tmpl): New types with
16984 static constexpr member arrays for C++11 or C++14.
16985 * tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
16986 tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
16987 (TREE_CODE_LENGTH): For C++11 or C++14 use
16988 tree_code_length_tmpl <0>::tree_code_length instead of
16989 tree_code_length.
16990 * tree.cc (tree_code_type, tree_code_length): Remove.
16991
16992 2023-03-10 Jakub Jelinek <jakub@redhat.com>
16993
16994 PR other/108464
16995 * common.opt (fcanon-prefix-map): New option.
16996 * opts.cc: Include file-prefix-map.h.
16997 (flag_canon_prefix_map): New variable.
16998 (common_handle_option): Handle OPT_fcanon_prefix_map.
16999 (gen_command_line_string): Ignore OPT_fcanon_prefix_map.
17000 * file-prefix-map.h (flag_canon_prefix_map): Declare.
17001 * file-prefix-map.cc (struct file_prefix_map): Add canonicalize
17002 member.
17003 (add_prefix_map): Initialize canonicalize member from
17004 flag_canon_prefix_map, and if true canonicalize it using lrealpath.
17005 (remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
17006 use lrealpath result only for map->canonicalize map entries.
17007 * lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
17008 * opts-global.cc (handle_common_deferred_options): Clear
17009 flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
17010 * doc/invoke.texi (-fcanon-prefix-map): Document.
17011 (-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
17012 see also for -fcanon-prefix-map.
17013 * doc/cppopts.texi (-fmacro-prefix-map): Likewise.
17014
17015 2023-03-10 Jakub Jelinek <jakub@redhat.com>
17016
17017 PR c/108079
17018 * cgraphunit.cc (check_global_declaration): Don't warn for unused
17019 variables which have OPT_Wunused_variable warning suppressed.
17020
17021 2023-03-10 Jakub Jelinek <jakub@redhat.com>
17022
17023 PR tree-optimization/109008
17024 * range-op-float.cc (float_widen_lhs_range): If lb is
17025 minimum representable finite number or ub is maximum
17026 representable finite number, instead of widening it to
17027 -inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
17028 Temporarily clear flag_finite_math_only when canonicalizing
17029 the widened range.
17030
17031 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17032
17033 * config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
17034 * config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
17035 (gimple_fold_builtin): Ditto.
17036 * config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
17037 (class vleff): Ditto.
17038 (BASE): Ditto.
17039 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17040 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
17041 (vleff): Ditto.
17042 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
17043 (struct fault_load_def): Ditto.
17044 (SHAPE): Ditto.
17045 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
17046 * config/riscv/riscv-vector-builtins.cc
17047 (rvv_arg_type_info::get_tree_type): Add size_ptr.
17048 (gimple_folder::gimple_folder): New class.
17049 (gimple_folder::fold): Ditto.
17050 (gimple_fold_builtin): New function.
17051 (get_read_vl_instance): Ditto.
17052 (get_read_vl_decl): Ditto.
17053 * config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
17054 * config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
17055 (get_read_vl_instance): New function.
17056 (get_read_vl_decl): Ditto.
17057 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
17058 (read_vl_insn_p): Ditto.
17059 (available_occurrence_p): Ditto.
17060 (backward_propagate_worthwhile_p): Ditto.
17061 (gen_vsetvl_pat): Adapt for vleff support.
17062 (get_forward_read_vl_insn): New function.
17063 (get_backward_fault_first_load_insn): Ditto.
17064 (source_equal_p): Adapt for vleff support.
17065 (first_ratio_invalid_for_second_sew_p): Remove.
17066 (first_ratio_invalid_for_second_lmul_p): Ditto.
17067 (first_lmul_less_than_second_lmul_p): Ditto.
17068 (first_ratio_less_than_second_ratio_p): Ditto.
17069 (support_relaxed_compatible_p): New function.
17070 (vector_insn_info::operator>): Remove.
17071 (vector_insn_info::operator>=): Refine.
17072 (vector_insn_info::parse_insn): Adapt for vleff support.
17073 (vector_insn_info::compatible_p): Ditto.
17074 (vector_insn_info::update_fault_first_load_avl): New function.
17075 (pass_vsetvl::transfer_after): Adapt for vleff support.
17076 (pass_vsetvl::demand_fusion): Ditto.
17077 (pass_vsetvl::cleanup_insns): Ditto.
17078 * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
17079 redundant condtions.
17080 * config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
17081 * config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
17082 * config/riscv/riscv.md: Adapt for vleff support.
17083 * config/riscv/t-riscv: Ditto.
17084 * config/riscv/vector-iterators.md: New iterator.
17085 * config/riscv/vector.md (read_vlsi): New pattern.
17086 (read_vldi_zero_extend): Ditto.
17087 (@pred_fault_load<mode>): Ditto.
17088
17089 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17090
17091 * config/riscv/riscv-vector-builtins.cc
17092 (function_expander::use_ternop_insn): Use maybe_gen_insn instead.
17093 (function_expander::use_widen_ternop_insn): Ditto.
17094 * optabs.cc (maybe_gen_insn): Extend nops handling.
17095
17096 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17097
17098 * config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
17099 patterns according to RVV ISA.
17100 * config/riscv/vector-iterators.md: New iterators.
17101 * config/riscv/vector.md
17102 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
17103 (@pred_indexed_<order>load<mode>_same_eew): New pattern.
17104 (@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
17105 (@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
17106 (@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
17107 (@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
17108 (@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
17109 (@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
17110 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
17111 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
17112 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
17113 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
17114 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
17115 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
17116
17117 2023-03-10 Michael Collison <collison@rivosinc.com>
17118
17119 * tree-vect-loop-manip.cc (vect_do_peeling): Use
17120 result of constant_lower_bound instead of vf for the lower
17121 bound of the epilog loop trip count.
17122
17123 2023-03-09 Tamar Christina <tamar.christina@arm.com>
17124
17125 * passes.cc (emergency_dump_function): Finish graph generation.
17126
17127 2023-03-09 Tamar Christina <tamar.christina@arm.com>
17128
17129 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
17130 and bottom bit only.
17131
17132 2023-03-09 Andrew Pinski <apinski@marvell.com>
17133
17134 PR tree-optimization/108980
17135 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
17136 Reorgnize the call to warning for not strict flexible arrays
17137 to be before the check of warned.
17138
17139 2023-03-09 Jason Merrill <jason@redhat.com>
17140
17141 * doc/extend.texi: Comment out __is_deducible docs.
17142
17143 2023-03-09 Jason Merrill <jason@redhat.com>
17144
17145 PR c++/105841
17146 * doc/extend.texi (Type Traits):: Document __is_deducible.
17147
17148 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
17149
17150 PR driver/108865
17151 * config.host: add object for x86_64-*-mingw*.
17152 * config/i386/sym-mingw32.cc: dummy file to attach
17153 symbol.
17154 * config/i386/utf8-mingw32.rc: windres resource file.
17155 * config/i386/winnt-utf8.manifest: XML manifest to
17156 enable UTF-8.
17157 * config/i386/x-mingw32: reference to x-mingw32-utf8.
17158 * config/i386/x-mingw32-utf8: Makefile fragment to
17159 embed UTF-8 manifest.
17160
17161 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
17162
17163 * lra-constraints.cc (process_alt_operands): Use operand modes for
17164 clobbered regs instead of the biggest access mode.
17165
17166 2023-03-09 Richard Biener <rguenther@suse.de>
17167
17168 PR middle-end/108995
17169 * fold-const.cc (extract_muldiv_1): Avoid folding
17170 (CST * b) / CST2 when sanitizing overflow and we rely on
17171 overflow being undefined.
17172
17173 2023-03-09 Jakub Jelinek <jakub@redhat.com>
17174 Richard Biener <rguenther@suse.de>
17175
17176 PR tree-optimization/109008
17177 * range-op-float.cc (float_widen_lhs_range): New function.
17178 (foperator_plus::op1_range, foperator_minus::op1_range,
17179 foperator_minus::op2_range, foperator_mult::op1_range,
17180 foperator_div::op1_range, foperator_div::op2_range): Use it.
17181
17182 2023-03-07 Jonathan Grant <jg@jguk.org>
17183
17184 PR sanitizer/81649
17185 * doc/invoke.texi (Instrumentation Options): Clarify
17186 LeakSanitizer behavior.
17187
17188 2023-03-07 Benson Muite <benson_muite@emailplus.org>
17189
17190 * doc/install.texi (Prerequisites): Add link to gmplib.org.
17191
17192 2023-03-07 Pan Li <pan2.li@intel.com>
17193 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17194
17195 PR target/108185
17196 PR target/108654
17197 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
17198 modes.
17199 * config/riscv/riscv.cc (riscv_v_adjust_precision): New.
17200 * config/riscv/riscv.h (riscv_v_adjust_precision): New.
17201 * genmodes.cc (adj_precision): New.
17202 (ADJUST_PRECISION): New.
17203 (emit_mode_adjustments): Handle ADJUST_PRECISION.
17204
17205 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
17206
17207 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
17208
17209 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
17210
17211 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
17212 {s|u}{max|min} in QI, HI and DI modes.
17213 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
17214 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
17215 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
17216 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
17217 saved in SGPRs.
17218
17219 2023-03-06 Richard Biener <rguenther@suse.de>
17220
17221 PR tree-optimization/109025
17222 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
17223 the inner LC PHI use is the inner loop PHI latch definition
17224 before classifying an outer PHI as double reduction.
17225
17226 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
17227
17228 PR target/108429
17229 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
17230 generic.
17231 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
17232 (X86_TUNE_USE_SCATTER): Likewise.
17233
17234 2023-03-06 Xi Ruoyao <xry111@xry111.site>
17235
17236 PR target/109000
17237 * config/loongarch/loongarch.h (FP_RETURN): Use
17238 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
17239 (UNITS_PER_FP_ARG): Likewise.
17240
17241 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17242
17243 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
17244 (pass_vsetvl::backward_demand_fusion): Ditto.
17245
17246 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17247 SiYu Wu <siyu@isrc.iscas.ac.cn>
17248
17249 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
17250 instructions.
17251 (riscv_sm3p1_<mode>): New.
17252 (riscv_sm4ed_<mode>): New.
17253 (riscv_sm4ks_<mode>): New.
17254 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
17255 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
17256 ZKSH's built-in functions.
17257
17258 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17259 SiYu Wu <siyu@isrc.iscas.ac.cn>
17260
17261 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
17262 (riscv_sha256sig1_<mode>): New.
17263 (riscv_sha256sum0_<mode>): New.
17264 (riscv_sha256sum1_<mode>): New.
17265 (riscv_sha512sig0h): New.
17266 (riscv_sha512sig0l): New.
17267 (riscv_sha512sig1h): New.
17268 (riscv_sha512sig1l): New.
17269 (riscv_sha512sum0r): New.
17270 (riscv_sha512sum1r): New.
17271 (riscv_sha512sig0): New.
17272 (riscv_sha512sig1): New.
17273 (riscv_sha512sum0): New.
17274 (riscv_sha512sum1): New.
17275 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
17276 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
17277 built-in functions.
17278 (DIRECT_BUILTIN): Add new.
17279
17280 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17281 SiYu Wu <siyu@isrc.iscas.ac.cn>
17282
17283 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
17284 (DsA): New.
17285 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
17286 (riscv_aes32dsmi): New.
17287 (riscv_aes64ds): New.
17288 (riscv_aes64dsm): New.
17289 (riscv_aes64im): New.
17290 (riscv_aes64ks1i): New.
17291 (riscv_aes64ks2): New.
17292 (riscv_aes32esi): New.
17293 (riscv_aes32esmi): New.
17294 (riscv_aes64es): New.
17295 (riscv_aes64esm): New.
17296 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
17297 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
17298 ZKNE's built-in functions.
17299
17300 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17301 SiYu Wu <siyu@isrc.iscas.ac.cn>
17302
17303 * config/riscv/bitmanip.md: Add ZBKB's instructions.
17304 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
17305 * config/riscv/riscv.md: Add new type for crypto instructions.
17306 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
17307 description file.
17308 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
17309 extension's built-in function file.
17310
17311 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
17312 SiYu Wu <siyu@isrc.iscas.ac.cn>
17313
17314 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
17315 (RISCV_FTYPE_NAME3): New.
17316 (RISCV_ATYPE_QI): New.
17317 (RISCV_ATYPE_HI): New.
17318 (RISCV_FTYPE_ATYPES2): New.
17319 (RISCV_FTYPE_ATYPES3): New.
17320 * config/riscv/riscv-ftypes.def (2): New.
17321 (3): New.
17322
17323 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
17324
17325 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
17326 use exact_log2().
17327
17328 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17329 kito-cheng <kito.cheng@sifive.com>
17330
17331 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
17332 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
17333 (riscv_register_pragmas): Add builtin function check call.
17334 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
17335 (check_builtin_call): New function.
17336 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
17337 (class vreinterpret): Ditto.
17338 (class vlmul_ext): Ditto.
17339 (class vlmul_trunc): Ditto.
17340 (class vset): Ditto.
17341 (class vget): Ditto.
17342 (BASE): Ditto.
17343 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17344 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
17345 (vluxei16): Ditto.
17346 (vluxei32): Ditto.
17347 (vluxei64): Ditto.
17348 (vloxei8): Ditto.
17349 (vloxei16): Ditto.
17350 (vloxei32): Ditto.
17351 (vloxei64): Ditto.
17352 (vsuxei8): Ditto.
17353 (vsuxei16): Ditto.
17354 (vsuxei32): Ditto.
17355 (vsuxei64): Ditto.
17356 (vsoxei8): Ditto.
17357 (vsoxei16): Ditto.
17358 (vsoxei32): Ditto.
17359 (vsoxei64): Ditto.
17360 (vundefined): Add new intrinsic.
17361 (vreinterpret): Ditto.
17362 (vlmul_ext): Ditto.
17363 (vlmul_trunc): Ditto.
17364 (vset): Ditto.
17365 (vget): Ditto.
17366 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
17367 (struct narrow_alu_def): Ditto.
17368 (struct reduc_alu_def): Ditto.
17369 (struct vundefined_def): Ditto.
17370 (struct misc_def): Ditto.
17371 (struct vset_def): Ditto.
17372 (struct vget_def): Ditto.
17373 (SHAPE): Ditto.
17374 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
17375 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
17376 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
17377 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
17378 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
17379 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
17380 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
17381 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
17382 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
17383 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
17384 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
17385 (DEF_RVV_LMUL1_OPS): Ditto.
17386 (DEF_RVV_LMUL2_OPS): Ditto.
17387 (DEF_RVV_LMUL4_OPS): Ditto.
17388 (vint16mf4_t): Ditto.
17389 (vint16mf2_t): Ditto.
17390 (vint16m1_t): Ditto.
17391 (vint16m2_t): Ditto.
17392 (vint16m4_t): Ditto.
17393 (vint16m8_t): Ditto.
17394 (vint32mf2_t): Ditto.
17395 (vint32m1_t): Ditto.
17396 (vint32m2_t): Ditto.
17397 (vint32m4_t): Ditto.
17398 (vint32m8_t): Ditto.
17399 (vint64m1_t): Ditto.
17400 (vint64m2_t): Ditto.
17401 (vint64m4_t): Ditto.
17402 (vint64m8_t): Ditto.
17403 (vuint16mf4_t): Ditto.
17404 (vuint16mf2_t): Ditto.
17405 (vuint16m1_t): Ditto.
17406 (vuint16m2_t): Ditto.
17407 (vuint16m4_t): Ditto.
17408 (vuint16m8_t): Ditto.
17409 (vuint32mf2_t): Ditto.
17410 (vuint32m1_t): Ditto.
17411 (vuint32m2_t): Ditto.
17412 (vuint32m4_t): Ditto.
17413 (vuint32m8_t): Ditto.
17414 (vuint64m1_t): Ditto.
17415 (vuint64m2_t): Ditto.
17416 (vuint64m4_t): Ditto.
17417 (vuint64m8_t): Ditto.
17418 (vint8mf4_t): Ditto.
17419 (vint8mf2_t): Ditto.
17420 (vint8m1_t): Ditto.
17421 (vint8m2_t): Ditto.
17422 (vint8m4_t): Ditto.
17423 (vint8m8_t): Ditto.
17424 (vuint8mf4_t): Ditto.
17425 (vuint8mf2_t): Ditto.
17426 (vuint8m1_t): Ditto.
17427 (vuint8m2_t): Ditto.
17428 (vuint8m4_t): Ditto.
17429 (vuint8m8_t): Ditto.
17430 (vint8mf8_t): Ditto.
17431 (vuint8mf8_t): Ditto.
17432 (vfloat32mf2_t): Ditto.
17433 (vfloat32m1_t): Ditto.
17434 (vfloat32m2_t): Ditto.
17435 (vfloat32m4_t): Ditto.
17436 (vfloat64m1_t): Ditto.
17437 (vfloat64m2_t): Ditto.
17438 (vfloat64m4_t): Ditto.
17439 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
17440 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
17441 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
17442 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
17443 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
17444 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
17445 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
17446 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
17447 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
17448 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
17449 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
17450 (DEF_RVV_LMUL1_OPS): Ditto.
17451 (DEF_RVV_LMUL2_OPS): Ditto.
17452 (DEF_RVV_LMUL4_OPS): Ditto.
17453 (DEF_RVV_TYPE_INDEX): Ditto.
17454 (required_extensions_p): Adapt for new intrinsic support/
17455 (get_required_extensions): New function.
17456 (check_required_extensions): Ditto.
17457 (unsigned_base_type_p): Remove.
17458 (rvv_arg_type_info::get_scalar_ptr_type): New function.
17459 (get_mode_for_bitsize): Remove.
17460 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
17461 (rvv_arg_type_info::get_base_vector_type): Ditto.
17462 (rvv_arg_type_info::get_function_type_index): Ditto.
17463 (DEF_RVV_BASE_TYPE): New def.
17464 (function_builder::apply_predication): New class.
17465 (function_expander::mask_mode): Ditto.
17466 (function_checker::function_checker): Ditto.
17467 (function_checker::report_non_ice): Ditto.
17468 (function_checker::report_out_of_range): Ditto.
17469 (function_checker::require_immediate): Ditto.
17470 (function_checker::require_immediate_range): Ditto.
17471 (function_checker::check): Ditto.
17472 (check_builtin_call): Ditto.
17473 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
17474 (DEF_RVV_BASE_TYPE): Ditto.
17475 (DEF_RVV_TYPE_INDEX): Ditto.
17476 (vbool64_t): Ditto.
17477 (vbool32_t): Ditto.
17478 (vbool16_t): Ditto.
17479 (vbool8_t): Ditto.
17480 (vbool4_t): Ditto.
17481 (vbool2_t): Ditto.
17482 (vbool1_t): Ditto.
17483 (vuint8mf8_t): Ditto.
17484 (vuint8mf4_t): Ditto.
17485 (vuint8mf2_t): Ditto.
17486 (vuint8m1_t): Ditto.
17487 (vuint8m2_t): Ditto.
17488 (vint8m4_t): Ditto.
17489 (vuint8m4_t): Ditto.
17490 (vint8m8_t): Ditto.
17491 (vuint8m8_t): Ditto.
17492 (vint16mf4_t): Ditto.
17493 (vuint16mf2_t): Ditto.
17494 (vuint16m1_t): Ditto.
17495 (vuint16m2_t): Ditto.
17496 (vuint16m4_t): Ditto.
17497 (vuint16m8_t): Ditto.
17498 (vint32mf2_t): Ditto.
17499 (vuint32m1_t): Ditto.
17500 (vuint32m2_t): Ditto.
17501 (vuint32m4_t): Ditto.
17502 (vuint32m8_t): Ditto.
17503 (vuint64m1_t): Ditto.
17504 (vuint64m2_t): Ditto.
17505 (vuint64m4_t): Ditto.
17506 (vuint64m8_t): Ditto.
17507 (vfloat32mf2_t): Ditto.
17508 (vfloat32m1_t): Ditto.
17509 (vfloat32m2_t): Ditto.
17510 (vfloat32m4_t): Ditto.
17511 (vfloat32m8_t): Ditto.
17512 (vfloat64m1_t): Ditto.
17513 (vfloat64m4_t): Ditto.
17514 (vector): Move it def.
17515 (scalar): Ditto.
17516 (mask): Ditto.
17517 (signed_vector): Ditto.
17518 (unsigned_vector): Ditto.
17519 (unsigned_scalar): Ditto.
17520 (vector_ptr): Ditto.
17521 (scalar_ptr): Ditto.
17522 (scalar_const_ptr): Ditto.
17523 (void): Ditto.
17524 (size): Ditto.
17525 (ptrdiff): Ditto.
17526 (unsigned_long): Ditto.
17527 (long): Ditto.
17528 (eew8_index): Ditto.
17529 (eew16_index): Ditto.
17530 (eew32_index): Ditto.
17531 (eew64_index): Ditto.
17532 (shift_vector): Ditto.
17533 (double_trunc_vector): Ditto.
17534 (quad_trunc_vector): Ditto.
17535 (oct_trunc_vector): Ditto.
17536 (double_trunc_scalar): Ditto.
17537 (double_trunc_signed_vector): Ditto.
17538 (double_trunc_unsigned_vector): Ditto.
17539 (double_trunc_unsigned_scalar): Ditto.
17540 (double_trunc_float_vector): Ditto.
17541 (float_vector): Ditto.
17542 (lmul1_vector): Ditto.
17543 (widen_lmul1_vector): Ditto.
17544 (eew8_interpret): Ditto.
17545 (eew16_interpret): Ditto.
17546 (eew32_interpret): Ditto.
17547 (eew64_interpret): Ditto.
17548 (vlmul_ext_x2): Ditto.
17549 (vlmul_ext_x4): Ditto.
17550 (vlmul_ext_x8): Ditto.
17551 (vlmul_ext_x16): Ditto.
17552 (vlmul_ext_x32): Ditto.
17553 (vlmul_ext_x64): Ditto.
17554 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
17555 (struct function_type_info): New function.
17556 (struct rvv_arg_type_info): Ditto.
17557 (class function_checker): New class.
17558 (rvv_arg_type_info::get_scalar_type): New function.
17559 (rvv_arg_type_info::get_vector_type): Ditto.
17560 (function_expander::ret_mode): New function.
17561 (function_checker::arg_mode): Ditto.
17562 (function_checker::ret_mode): Ditto.
17563 * config/riscv/t-riscv: Add generator.
17564 * config/riscv/vector-iterators.md: New iterators.
17565 * config/riscv/vector.md (vundefined<mode>): New pattern.
17566 (@vundefined<mode>): Ditto.
17567 (@vreinterpret<mode>): Ditto.
17568 (@vlmul_extx2<mode>): Ditto.
17569 (@vlmul_extx4<mode>): Ditto.
17570 (@vlmul_extx8<mode>): Ditto.
17571 (@vlmul_extx16<mode>): Ditto.
17572 (@vlmul_extx32<mode>): Ditto.
17573 (@vlmul_extx64<mode>): Ditto.
17574 (*vlmul_extx2<mode>): Ditto.
17575 (*vlmul_extx4<mode>): Ditto.
17576 (*vlmul_extx8<mode>): Ditto.
17577 (*vlmul_extx16<mode>): Ditto.
17578 (*vlmul_extx32<mode>): Ditto.
17579 (*vlmul_extx64<mode>): Ditto.
17580 * config/riscv/genrvv-type-indexer.cc: New file.
17581
17582 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17583
17584 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
17585 (slide1_sew64_helper): New function.
17586 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
17587 (get_unknown_min_value): Ditto.
17588 (force_vector_length_operand): Ditto.
17589 (gen_no_side_effects_vsetvl_rtx): Ditto.
17590 (get_vl_x2_rtx): Ditto.
17591 (slide1_sew64_helper): Ditto.
17592 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
17593 (class vrgather): Ditto.
17594 (class vrgatherei16): Ditto.
17595 (class vcompress): Ditto.
17596 (BASE): Ditto.
17597 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17598 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
17599 (vslidedown): Ditto.
17600 (vslide1up): Ditto.
17601 (vslide1down): Ditto.
17602 (vfslide1up): Ditto.
17603 (vfslide1down): Ditto.
17604 (vrgather): Ditto.
17605 (vrgatherei16): Ditto.
17606 (vcompress): Ditto.
17607 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
17608 (vint8mf8_t): Ditto.
17609 (vint8mf4_t): Ditto.
17610 (vint8mf2_t): Ditto.
17611 (vint8m1_t): Ditto.
17612 (vint8m2_t): Ditto.
17613 (vint8m4_t): Ditto.
17614 (vint16mf4_t): Ditto.
17615 (vint16mf2_t): Ditto.
17616 (vint16m1_t): Ditto.
17617 (vint16m2_t): Ditto.
17618 (vint16m4_t): Ditto.
17619 (vint16m8_t): Ditto.
17620 (vint32mf2_t): Ditto.
17621 (vint32m1_t): Ditto.
17622 (vint32m2_t): Ditto.
17623 (vint32m4_t): Ditto.
17624 (vint32m8_t): Ditto.
17625 (vint64m1_t): Ditto.
17626 (vint64m2_t): Ditto.
17627 (vint64m4_t): Ditto.
17628 (vint64m8_t): Ditto.
17629 (vuint8mf8_t): Ditto.
17630 (vuint8mf4_t): Ditto.
17631 (vuint8mf2_t): Ditto.
17632 (vuint8m1_t): Ditto.
17633 (vuint8m2_t): Ditto.
17634 (vuint8m4_t): Ditto.
17635 (vuint16mf4_t): Ditto.
17636 (vuint16mf2_t): Ditto.
17637 (vuint16m1_t): Ditto.
17638 (vuint16m2_t): Ditto.
17639 (vuint16m4_t): Ditto.
17640 (vuint16m8_t): Ditto.
17641 (vuint32mf2_t): Ditto.
17642 (vuint32m1_t): Ditto.
17643 (vuint32m2_t): Ditto.
17644 (vuint32m4_t): Ditto.
17645 (vuint32m8_t): Ditto.
17646 (vuint64m1_t): Ditto.
17647 (vuint64m2_t): Ditto.
17648 (vuint64m4_t): Ditto.
17649 (vuint64m8_t): Ditto.
17650 (vfloat32mf2_t): Ditto.
17651 (vfloat32m1_t): Ditto.
17652 (vfloat32m2_t): Ditto.
17653 (vfloat32m4_t): Ditto.
17654 (vfloat32m8_t): Ditto.
17655 (vfloat64m1_t): Ditto.
17656 (vfloat64m2_t): Ditto.
17657 (vfloat64m4_t): Ditto.
17658 (vfloat64m8_t): Ditto.
17659 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
17660 * config/riscv/riscv.md: Adjust RVV instruction types.
17661 * config/riscv/vector-iterators.md (down): New iterator.
17662 (=vd,vr): New attribute.
17663 (UNSPEC_VSLIDE1UP): New unspec.
17664 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
17665 (*pred_slide<ud><mode>): Ditto.
17666 (*pred_slide<ud><mode>_extended): Ditto.
17667 (@pred_gather<mode>): Ditto.
17668 (@pred_gather<mode>_scalar): Ditto.
17669 (@pred_gatherei16<mode>): Ditto.
17670 (@pred_compress<mode>): Ditto.
17671
17672 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17673
17674 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
17675
17676 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17677
17678 * config/riscv/constraints.md (Wb1): New constraint.
17679 * config/riscv/predicates.md
17680 (vector_least_significant_set_mask_operand): New predicate.
17681 (vector_broadcast_mask_operand): Ditto.
17682 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
17683 (gen_scalar_move_mask): New function.
17684 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
17685 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
17686 (class vmv_s): Ditto.
17687 (BASE): Ditto.
17688 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17689 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
17690 (vmv_s): Ditto.
17691 (vfmv_f): Ditto.
17692 (vfmv_s): Ditto.
17693 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
17694 (SHAPE): Ditto.
17695 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
17696 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
17697 (function_expander::use_exact_insn): New function.
17698 (function_expander::use_contiguous_load_insn): New function.
17699 (function_expander::use_contiguous_store_insn): New function.
17700 (function_expander::use_ternop_insn): New function.
17701 (function_expander::use_widen_ternop_insn): New function.
17702 (function_expander::use_scalar_move_insn): New function.
17703 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
17704 * config/riscv/riscv-vector-builtins.h
17705 (function_expander::add_scalar_move_mask_operand): New class.
17706 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
17707 (scalar_move_insn_p): Ditto.
17708 (has_vsetvl_killed_avl_p): Ditto.
17709 (anticipatable_occurrence_p): Ditto.
17710 (insert_vsetvl): Ditto.
17711 (get_vl_vtype_info): Ditto.
17712 (calculate_sew): Ditto.
17713 (calculate_vlmul): Ditto.
17714 (incompatible_avl_p): Ditto.
17715 (different_sew_p): Ditto.
17716 (different_lmul_p): Ditto.
17717 (different_ratio_p): Ditto.
17718 (different_tail_policy_p): Ditto.
17719 (different_mask_policy_p): Ditto.
17720 (possible_zero_avl_p): Ditto.
17721 (first_ratio_invalid_for_second_sew_p): Ditto.
17722 (first_ratio_invalid_for_second_lmul_p): Ditto.
17723 (second_ratio_invalid_for_first_sew_p): Ditto.
17724 (second_ratio_invalid_for_first_lmul_p): Ditto.
17725 (second_sew_less_than_first_sew_p): Ditto.
17726 (first_sew_less_than_second_sew_p): Ditto.
17727 (compare_lmul): Ditto.
17728 (second_lmul_less_than_first_lmul_p): Ditto.
17729 (first_lmul_less_than_second_lmul_p): Ditto.
17730 (first_ratio_less_than_second_ratio_p): Ditto.
17731 (second_ratio_less_than_first_ratio_p): Ditto.
17732 (DEF_INCOMPATIBLE_COND): Ditto.
17733 (greatest_sew): Ditto.
17734 (first_sew): Ditto.
17735 (second_sew): Ditto.
17736 (first_vlmul): Ditto.
17737 (second_vlmul): Ditto.
17738 (first_ratio): Ditto.
17739 (second_ratio): Ditto.
17740 (vlmul_for_first_sew_second_ratio): Ditto.
17741 (ratio_for_second_sew_first_vlmul): Ditto.
17742 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
17743 (always_unavailable): Ditto.
17744 (avl_unavailable_p): Ditto.
17745 (sew_unavailable_p): Ditto.
17746 (lmul_unavailable_p): Ditto.
17747 (ge_sew_unavailable_p): Ditto.
17748 (ge_sew_lmul_unavailable_p): Ditto.
17749 (ge_sew_ratio_unavailable_p): Ditto.
17750 (DEF_UNAVAILABLE_COND): Ditto.
17751 (same_sew_lmul_demand_p): Ditto.
17752 (propagate_avl_across_demands_p): Ditto.
17753 (reg_available_p): Ditto.
17754 (avl_info::has_non_zero_avl): Ditto.
17755 (vl_vtype_info::has_non_zero_avl): Ditto.
17756 (vector_insn_info::operator>=): Refactor.
17757 (vector_insn_info::parse_insn): Adjust for scalar move.
17758 (vector_insn_info::demand_vl_vtype): Remove.
17759 (vector_insn_info::compatible_p): New function.
17760 (vector_insn_info::compatible_avl_p): Ditto.
17761 (vector_insn_info::compatible_vtype_p): Ditto.
17762 (vector_insn_info::available_p): Ditto.
17763 (vector_insn_info::merge): Ditto.
17764 (vector_insn_info::fuse_avl): Ditto.
17765 (vector_insn_info::fuse_sew_lmul): Ditto.
17766 (vector_insn_info::fuse_tail_policy): Ditto.
17767 (vector_insn_info::fuse_mask_policy): Ditto.
17768 (vector_insn_info::dump): Ditto.
17769 (vector_infos_manager::release): Ditto.
17770 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
17771 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
17772 (pass_vsetvl::hard_empty_block_p): Ditto.
17773 (pass_vsetvl::backward_demand_fusion): Ditto.
17774 (pass_vsetvl::forward_demand_fusion): Ditto.
17775 (pass_vsetvl::refine_vsetvls): Ditto.
17776 (pass_vsetvl::cleanup_vsetvls): Ditto.
17777 (pass_vsetvl::commit_vsetvls): Ditto.
17778 (pass_vsetvl::propagate_avl): Ditto.
17779 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
17780 (struct demands_pair): Ditto.
17781 (struct demands_cond): Ditto.
17782 (struct demands_fuse_rule): Ditto.
17783 * config/riscv/vector-iterators.md: New iterator.
17784 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
17785 (*pred_broadcast<mode>): Ditto.
17786 (*pred_broadcast<mode>_extended_scalar): Ditto.
17787 (@pred_extract_first<mode>): Ditto.
17788 (*pred_extract_first<mode>): Ditto.
17789 (@pred_extract_first_trunc<mode>): Ditto.
17790 * config/riscv/riscv-vsetvl.def: New file.
17791
17792 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
17793
17794 * config/riscv/bitmanip.md: allow 0 constant in max/min
17795 pattern.
17796
17797 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
17798
17799 * config/riscv/bitmanip.md: Fix wrong index in the check.
17800
17801 2023-03-04 Jakub Jelinek <jakub@redhat.com>
17802
17803 PR middle-end/109006
17804 * vec.cc (test_auto_alias): Adjust comment for removal of
17805 m_vecdata.
17806 * read-rtl-function.cc (function_reader::parse_block): Likewise.
17807 * gdbhooks.py: Likewise.
17808
17809 2023-03-04 Jakub Jelinek <jakub@redhat.com>
17810
17811 PR testsuite/108973
17812 * selftest-diagnostic.cc
17813 (test_diagnostic_context::test_diagnostic_context): Set
17814 caret_max_width to 80.
17815
17816 2023-03-03 Alexandre Oliva <oliva@adacore.com>
17817
17818 * gimple-ssa-warn-access.cc
17819 (pass_waccess::check_dangling_stores): Skip non-stores.
17820
17821 2023-03-03 Alexandre Oliva <oliva@adacore.com>
17822
17823 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
17824 after vmsr and vmrs, and lower the case of P0.
17825
17826 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
17827
17828 PR middle-end/109006
17829 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
17830
17831 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
17832
17833 PR middle-end/109006
17834 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
17835
17836 2023-03-03 Jakub Jelinek <jakub@redhat.com>
17837
17838 PR c/108986
17839 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
17840 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
17841 suppressed on stmt. For [static %E] warning, print access_nelts
17842 rather than access_size. Fix up comment wording.
17843
17844 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
17845
17846 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
17847 arch14 instead of z16.
17848
17849 2023-03-03 Anthony Green <green@moxielogic.com>
17850
17851 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
17852
17853 2023-03-03 Anthony Green <green@moxielogic.com>
17854
17855 * config/moxie/constraints.md (A, B, W): Change
17856 define_constraint to define_memory_constraint.
17857
17858 2023-03-03 Xi Ruoyao <xry111@xry111.site>
17859
17860 * toplev.cc (process_options): Fix the spelling of
17861 "-fstack-clash-protection".
17862
17863 2023-03-03 Richard Biener <rguenther@suse.de>
17864
17865 PR tree-optimization/109002
17866 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
17867 PHI-translate ANTIC_IN.
17868
17869 2023-03-03 Jakub Jelinek <jakub@redhat.com>
17870
17871 PR tree-optimization/108988
17872 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
17873 size_type_node before passing it as argument to fwrite. Formatting
17874 fixes.
17875
17876 2023-03-03 Richard Biener <rguenther@suse.de>
17877
17878 PR target/108738
17879 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
17880 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
17881 * config/i386/i386-features.h (scalar_chain::max_visits): New.
17882 (scalar_chain::build): Add bitmap parameter, return boolean.
17883 (scalar_chain::add_insn): Likewise.
17884 (scalar_chain::analyze_register_chain): Likewise.
17885 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
17886 Initialize max_visits.
17887 (scalar_chain::analyze_register_chain): When we exhaust
17888 max_visits, abort. Also abort when running into any
17889 disallowed insn.
17890 (scalar_chain::add_insn): Propagate abort.
17891 (scalar_chain::build): Likewise. When aborting amend
17892 the set of disallowed insn with the insns set.
17893 (convert_scalars_to_vector): Adjust. Do not convert aborted
17894 chains.
17895
17896 2023-03-03 Richard Biener <rguenther@suse.de>
17897
17898 PR debug/108772
17899 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
17900 generate a DIE for a function scope static.
17901
17902 2023-03-03 Alexandre Oliva <oliva@adacore.com>
17903
17904 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
17905
17906 2023-03-02 Jakub Jelinek <jakub@redhat.com>
17907
17908 PR target/108883
17909 * target.h (emit_support_tinfos_callback): New typedef.
17910 * targhooks.h (default_emit_support_tinfos): Declare.
17911 * targhooks.cc (default_emit_support_tinfos): New function.
17912 * target.def (emit_support_tinfos): New target hook.
17913 * doc/tm.texi.in (emit_support_tinfos): Document it.
17914 * doc/tm.texi: Regenerated.
17915 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
17916 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
17917
17918 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
17919
17920 * ira-costs.cc: Include print-rtl.h.
17921 (record_reg_classes, scan_one_insn): Add code to print debug info.
17922 (record_operand_costs): Find and use smaller cost for hard reg
17923 move.
17924
17925 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
17926 Paul-Antoine Arras <pa@codesourcery.com>
17927
17928 * builtins.cc (mathfn_built_in_explicit): New.
17929 * config/gcn/gcn.cc: Include case-cfn-macros.h.
17930 (mathfn_built_in_explicit): Add prototype.
17931 (gcn_vectorize_builtin_vectorized_function): New.
17932 (gcn_libc_has_function): New.
17933 (TARGET_LIBC_HAS_FUNCTION): Define.
17934 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
17935
17936 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
17937
17938 PR tree-optimization/108979
17939 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
17940 operations on invariants.
17941
17942 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
17943
17944 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
17945 * config/s390/s390.cc (s390_option_override_internal): Make
17946 partial vector usage the default from z13 on.
17947 * config/s390/vector.md (len_load_v16qi): Add.
17948 (len_store_v16qi): Add.
17949
17950 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
17951
17952 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
17953 of constant 0 offset.
17954
17955 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
17956
17957 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
17958 instead of long.
17959 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
17960
17961 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
17962
17963 * config.gcc: add -with-{no-}msa build option.
17964 * config/mips/mips.h: Likewise.
17965 * doc/install.texi: Likewise.
17966
17967 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
17968
17969 PR tree-optimization/108603
17970 * explow.cc (convert_memory_address_addr_space_1): Only wrap
17971 the result of a recursive call in a CONST if no instructions
17972 were emitted.
17973
17974 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
17975
17976 PR tree-optimization/108430
17977 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
17978 of inverted condition.
17979
17980 2023-03-02 Jakub Jelinek <jakub@redhat.com>
17981
17982 PR c++/108934
17983 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
17984 comparison copy the bytes from ptr to a temporary buffer and clearing
17985 padding bits in there.
17986
17987 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
17988
17989 PR middle-end/108545
17990 * gimplify.cc (struct tree_operand_hash_no_se): New.
17991 (omp_index_mapping_groups_1, omp_index_mapping_groups,
17992 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
17993 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
17994 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
17995 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
17996 of tree_operand_hash.
17997
17998 2023-03-01 LIU Hao <lh_mouse@126.com>
17999
18000 PR pch/14940
18001 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
18002 Remove the size limit `pch_VA_max_size`
18003
18004 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
18005
18006 PR middle-end/108546
18007 * omp-low.cc (lower_omp_target): Remove optional handling
18008 on the receiver side, i.e. inside target (data), for
18009 use_device_ptr.
18010
18011 2023-03-01 Jakub Jelinek <jakub@redhat.com>
18012
18013 PR debug/108967
18014 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
18015 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
18016
18017 2023-03-01 Richard Biener <rguenther@suse.de>
18018
18019 PR tree-optimization/108970
18020 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
18021 Check we can copy the BBs.
18022 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
18023 check.
18024 (vect_do_peeling): Streamline error handling.
18025
18026 2023-03-01 Richard Biener <rguenther@suse.de>
18027
18028 PR tree-optimization/108950
18029 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
18030 Check oprnd0 is defined in the loop.
18031 * tree-vect-loop.cc (vectorizable_reduction): Record all
18032 operands vector types, compute that of invariants and
18033 properly update their SLP nodes.
18034
18035 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
18036
18037 PR target/108240
18038 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
18039 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
18040
18041 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
18042
18043 PR middle-end/107411
18044 PR middle-end/107411
18045 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
18046 xasprintf.
18047 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
18048 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
18049
18050 2023-02-28 Jakub Jelinek <jakub@redhat.com>
18051
18052 PR sanitizer/108894
18053 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
18054 comparison rather than index > bound.
18055 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
18056 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
18057 * doc/invoke.texi (-fsanitize=bounds): Document that whether
18058 flexible array member-like arrays are instrumented or not depends
18059 on -fstrict-flex-arrays* options of strict_flex_array attributes.
18060 (-fsanitize=bounds-strict): Document that flexible array members
18061 are not instrumented.
18062
18063 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
18064
18065 PR target/108922
18066 Revert:
18067 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
18068 (fmod<mode>3): Ditto.
18069 (fpremxf4_i387): Ditto.
18070 (reminderxf3): Ditto.
18071 (reminder<mode>3): Ditto.
18072 (fprem1xf4_i387): Ditto.
18073
18074 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
18075
18076 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
18077 generating FFS with mismatched operand and result modes, by using
18078 an explicit SIGN_EXTEND/ZERO_EXTEND.
18079 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
18080 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
18081
18082 2023-02-27 Patrick Palka <ppalka@redhat.com>
18083
18084 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
18085 * lra-int.h (lra_change_class): Likewise.
18086 * recog.h (which_op_alt): Likewise.
18087 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
18088 instead of static.
18089
18090 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18091
18092 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
18093 New prototype.
18094 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
18095 New function.
18096 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
18097 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
18098
18099 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
18100
18101 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
18102 (xtensa_get_config_v3): New functions.
18103
18104 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18105
18106 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
18107
18108 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
18109
18110 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
18111 the macro to 0x1000000000.
18112
18113 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
18114
18115 PR modula2/108261
18116 * doc/gm2.texi (-fm2-pathname): New option documented.
18117 (-fm2-pathnameI): New option documented.
18118 (-fm2-prefix=): New option documented.
18119 (-fruntime-modules=): Update default module list.
18120
18121 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
18122
18123 PR target/108919
18124 * config/xtensa/xtensa-protos.h
18125 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
18126 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
18127 to xtensa_expand_call.
18128 (xtensa_expand_call): Emit the call and add a clobber expression
18129 for the static chain to it in case of windowed ABI.
18130 * config/xtensa/xtensa.md (call, call_value, sibcall)
18131 (sibcall_value): Call xtensa_expand_call and complete expansion
18132 right after that call.
18133
18134 2023-02-24 Richard Biener <rguenther@suse.de>
18135
18136 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
18137 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
18138 changing alignment of vec<T, A, vl_embed> and simplifying
18139 address.
18140 (vec<T, A, vl_embed>::address): Compute as this + 1.
18141 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
18142 vector instead of the offset of the m_vecdata member.
18143 (auto_vec<T, N>::m_data): Turn storage into
18144 uninitialized unsigned char.
18145 (auto_vec<T, N>::auto_vec): Allow allocation of one
18146 stack member. Initialize m_vec in a special way to
18147 avoid later stringop overflow diagnostics.
18148 * vec.cc (test_auto_alias): New.
18149 (vec_cc_tests): Call it.
18150
18151 2023-02-24 Richard Biener <rguenther@suse.de>
18152
18153 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
18154 take a const reference to the object, use address to
18155 access data.
18156 (vec<T, A, vl_embed>::contains): Use address to access data.
18157 (vec<T, A, vl_embed>::operator[]): Use address instead of
18158 m_vecdata to access data.
18159 (vec<T, A, vl_embed>::iterate): Likewise.
18160 (vec<T, A, vl_embed>::copy): Likewise.
18161 (vec<T, A, vl_embed>::quick_push): Likewise.
18162 (vec<T, A, vl_embed>::pop): Likewise.
18163 (vec<T, A, vl_embed>::quick_insert): Likewise.
18164 (vec<T, A, vl_embed>::ordered_remove): Likewise.
18165 (vec<T, A, vl_embed>::unordered_remove): Likewise.
18166 (vec<T, A, vl_embed>::block_remove): Likewise.
18167 (vec<T, A, vl_heap>::address): Likewise.
18168
18169 2023-02-24 Martin Liska <mliska@suse.cz>
18170
18171 PR sanitizer/108834
18172 * asan.cc (asan_add_global): Use proper TU name for normal
18173 global variables (and aux_base_name for the artificial one).
18174
18175 2023-02-24 Jakub Jelinek <jakub@redhat.com>
18176
18177 * config/i386/i386-builtin.def: Update description of BDESC
18178 and BDESC_FIRST in file comment to include mask2.
18179
18180 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18181
18182 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
18183
18184 2023-02-24 Jakub Jelinek <jakub@redhat.com>
18185
18186 PR middle-end/108854
18187 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
18188 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
18189 nodes and adjust their DECL_CONTEXT.
18190
18191 2023-02-24 Jakub Jelinek <jakub@redhat.com>
18192
18193 PR target/108881
18194 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
18195 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
18196 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
18197 __builtin_ia32_cvtne2ps2bf16_v8bf,
18198 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
18199 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
18200 __builtin_ia32_cvtneps2bf16_v8sf_mask,
18201 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
18202 __builtin_ia32_cvtneps2bf16_v4sf_mask,
18203 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
18204 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
18205 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
18206 __builtin_ia32_dpbf16ps_v4sf_mask,
18207 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
18208 OPTION_MASK_ISA_AVX512VL.
18209
18210 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
18211
18212 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
18213 Add non-compact 32-bit multilibs.
18214
18215 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
18216
18217 * config/mips/mips.md (*clo<mode>2): New pattern.
18218
18219 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
18220
18221 * config/mips/mips.h (machine_function): New variable
18222 use_hazard_barrier_return_p.
18223 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
18224 (mips_hb_return_internal): New insn pattern.
18225 * config/mips/mips.cc (mips_attribute_table): Add attribute
18226 use_hazard_barrier_return.
18227 (mips_use_hazard_barrier_return_p): New static function.
18228 (mips_function_attr_inlinable_p): Likewise.
18229 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
18230 Emit error for unsupported architecture choice.
18231 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
18232 Return false for use_hazard_barrier_return.
18233 (mips_expand_epilogue): Emit hazard barrier return.
18234 * doc/extend.texi: Document use_hazard_barrier_return.
18235
18236 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
18237
18238 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
18239 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
18240 for the gcc-internal headers.
18241
18242 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
18243
18244 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
18245 and $(POSTCOMPILE) instead of manual dependency listing.
18246 * config/xtensa/xtensa-dynconfig.c: Rename to ...
18247 * config/xtensa/xtensa-dynconfig.cc: ... this.
18248
18249 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
18250
18251 * doc/cfg.texi: Reorder index entries around @items.
18252 * doc/cpp.texi: Ditto.
18253 * doc/cppenv.texi: Ditto.
18254 * doc/cppopts.texi: Ditto.
18255 * doc/generic.texi: Ditto.
18256 * doc/install.texi: Ditto.
18257 * doc/extend.texi: Ditto.
18258 * doc/invoke.texi: Ditto.
18259 * doc/md.texi: Ditto.
18260 * doc/rtl.texi: Ditto.
18261 * doc/tm.texi.in: Ditto.
18262 * doc/trouble.texi: Ditto.
18263 * doc/tm.texi: Regenerate.
18264
18265 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18266
18267 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
18268 the occurrence of general-purpose register used only once and for
18269 transferring intermediate value.
18270
18271 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18272
18273 * config/xtensa/xtensa.cc (machine_function): Add new member
18274 'eliminated_callee_saved_bmp'.
18275 (xtensa_can_eliminate_callee_saved_reg_p): New function to
18276 determine whether the register can be eliminated or not.
18277 (xtensa_expand_prologue): Add invoking the above function and
18278 elimination the use of callee-saved register by using its stack
18279 slot through the stack pointer (or the frame pointer if needed)
18280 directly.
18281 (xtensa_expand_prologue): Modify to not emit register restoration
18282 insn from its stack slot if the register is already eliminated.
18283
18284 2023-02-23 Jakub Jelinek <jakub@redhat.com>
18285
18286 PR translation/108890
18287 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
18288 around fatal_error format strings.
18289
18290 2023-02-23 Richard Biener <rguenther@suse.de>
18291
18292 * tree-ssa-structalias.cc (handle_lhs_call): Do not
18293 re-create rhsc, only truncate it.
18294
18295 2023-02-23 Jakub Jelinek <jakub@redhat.com>
18296
18297 PR middle-end/106258
18298 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
18299 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
18300
18301 2023-02-23 Richard Biener <rguenther@suse.de>
18302
18303 * tree-if-conv.cc (tree_if_conversion): Properly manage
18304 memory of refs and the contained data references.
18305
18306 2023-02-23 Richard Biener <rguenther@suse.de>
18307
18308 PR tree-optimization/108888
18309 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
18310 calls to predicate.
18311 (predicate_statements): Only predicate calls with PLF_2.
18312
18313 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18314
18315 * config/xtensa/xtensa.md
18316 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
18317 Add missing "SI:" to PLUS RTXes.
18318
18319 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
18320
18321 PR target/108876
18322 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
18323 Emit (use (reg:SI A0_REG)) at the end in the sibling call
18324 (i.e. the same place as (return) in the normal call).
18325
18326 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
18327
18328 Revert:
18329 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
18330
18331 PR target/108876
18332 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
18333 for A0_REG.
18334 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
18335 (sibcall_value, sibcall_value_internal): Add 'use' expression
18336 for A0_REG.
18337
18338 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
18339
18340 * doc/cppdiropts.texi: Reorder @opindex commands to precede
18341 @items they relate to.
18342 * doc/cppopts.texi: Ditto.
18343 * doc/cppwarnopts.texi: Ditto.
18344 * doc/invoke.texi: Ditto.
18345 * doc/lto.texi: Ditto.
18346
18347 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
18348
18349 * internal-fn.cc (expand_MASK_CALL): New.
18350 * internal-fn.def (MASK_CALL): New.
18351 * internal-fn.h (expand_MASK_CALL): New prototype.
18352 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
18353 for mask arguments also.
18354 * tree-if-conv.cc: Include cgraph.h.
18355 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
18356 (predicate_statements): Convert functions to IFN_MASK_CALL.
18357 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
18358 IFN_MASK_CALL as a SIMD function call.
18359 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
18360 IFN_MASK_CALL as an inbranch SIMD function call.
18361 Generate the mask vector arguments.
18362
18363 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18364
18365 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
18366 (class widen_reducop): Ditto.
18367 (class freducop): Ditto.
18368 (class widen_freducop): Ditto.
18369 (BASE): Ditto.
18370 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18371 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
18372 (vredmaxu): Ditto.
18373 (vredmax): Ditto.
18374 (vredminu): Ditto.
18375 (vredmin): Ditto.
18376 (vredand): Ditto.
18377 (vredor): Ditto.
18378 (vredxor): Ditto.
18379 (vwredsum): Ditto.
18380 (vwredsumu): Ditto.
18381 (vfredusum): Ditto.
18382 (vfredosum): Ditto.
18383 (vfredmax): Ditto.
18384 (vfredmin): Ditto.
18385 (vfwredosum): Ditto.
18386 (vfwredusum): Ditto.
18387 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
18388 (SHAPE): Ditto.
18389 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
18390 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
18391 (DEF_RVV_WU_OPS): Ditto.
18392 (DEF_RVV_WF_OPS): Ditto.
18393 (vint8mf8_t): Ditto.
18394 (vint8mf4_t): Ditto.
18395 (vint8mf2_t): Ditto.
18396 (vint8m1_t): Ditto.
18397 (vint8m2_t): Ditto.
18398 (vint8m4_t): Ditto.
18399 (vint8m8_t): Ditto.
18400 (vint16mf4_t): Ditto.
18401 (vint16mf2_t): Ditto.
18402 (vint16m1_t): Ditto.
18403 (vint16m2_t): Ditto.
18404 (vint16m4_t): Ditto.
18405 (vint16m8_t): Ditto.
18406 (vint32mf2_t): Ditto.
18407 (vint32m1_t): Ditto.
18408 (vint32m2_t): Ditto.
18409 (vint32m4_t): Ditto.
18410 (vint32m8_t): Ditto.
18411 (vuint8mf8_t): Ditto.
18412 (vuint8mf4_t): Ditto.
18413 (vuint8mf2_t): Ditto.
18414 (vuint8m1_t): Ditto.
18415 (vuint8m2_t): Ditto.
18416 (vuint8m4_t): Ditto.
18417 (vuint8m8_t): Ditto.
18418 (vuint16mf4_t): Ditto.
18419 (vuint16mf2_t): Ditto.
18420 (vuint16m1_t): Ditto.
18421 (vuint16m2_t): Ditto.
18422 (vuint16m4_t): Ditto.
18423 (vuint16m8_t): Ditto.
18424 (vuint32mf2_t): Ditto.
18425 (vuint32m1_t): Ditto.
18426 (vuint32m2_t): Ditto.
18427 (vuint32m4_t): Ditto.
18428 (vuint32m8_t): Ditto.
18429 (vfloat32mf2_t): Ditto.
18430 (vfloat32m1_t): Ditto.
18431 (vfloat32m2_t): Ditto.
18432 (vfloat32m4_t): Ditto.
18433 (vfloat32m8_t): Ditto.
18434 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
18435 (DEF_RVV_WU_OPS): Ditto.
18436 (DEF_RVV_WF_OPS): Ditto.
18437 (required_extensions_p): Add reduction support.
18438 (rvv_arg_type_info::get_base_vector_type): Ditto.
18439 (rvv_arg_type_info::get_tree_type): Ditto.
18440 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
18441 * config/riscv/riscv.md: Ditto.
18442 * config/riscv/vector-iterators.md (minu): Ditto.
18443 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
18444 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
18445 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
18446 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
18447 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
18448 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
18449 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
18450
18451 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18452
18453 * config/riscv/iterators.md: New iterator.
18454 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
18455 (enum ternop_type): New enum.
18456 (class vmacc): New class.
18457 (class imac): Ditto.
18458 (class vnmsac): Ditto.
18459 (enum widen_ternop_type): New enum.
18460 (class vmadd): Ditto.
18461 (class vnmsub): Ditto.
18462 (class iwmac): Ditto.
18463 (class vwmacc): Ditto.
18464 (class vwmaccu): Ditto.
18465 (class vwmaccsu): Ditto.
18466 (class vwmaccus): Ditto.
18467 (class reverse_binop): Ditto.
18468 (class vfmacc): Ditto.
18469 (class vfnmsac): Ditto.
18470 (class vfmadd): Ditto.
18471 (class vfnmsub): Ditto.
18472 (class vfnmacc): Ditto.
18473 (class vfmsac): Ditto.
18474 (class vfnmadd): Ditto.
18475 (class vfmsub): Ditto.
18476 (class vfwmacc): Ditto.
18477 (class vfwnmacc): Ditto.
18478 (class vfwmsac): Ditto.
18479 (class vfwnmsac): Ditto.
18480 (class float_misc): Ditto.
18481 (class fcmp): Ditto.
18482 (class vfclass): Ditto.
18483 (class vfcvt_x): Ditto.
18484 (class vfcvt_rtz_x): Ditto.
18485 (class vfcvt_f): Ditto.
18486 (class vfwcvt_x): Ditto.
18487 (class vfwcvt_rtz_x): Ditto.
18488 (class vfwcvt_f): Ditto.
18489 (class vfncvt_x): Ditto.
18490 (class vfncvt_rtz_x): Ditto.
18491 (class vfncvt_f): Ditto.
18492 (class vfncvt_rod_f): Ditto.
18493 (BASE): Ditto.
18494 * config/riscv/riscv-vector-builtins-bases.h:
18495 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
18496 (vsext): Ditto.
18497 (vfadd): Ditto.
18498 (vfsub): Ditto.
18499 (vfrsub): Ditto.
18500 (vfwadd): Ditto.
18501 (vfwsub): Ditto.
18502 (vfmul): Ditto.
18503 (vfdiv): Ditto.
18504 (vfrdiv): Ditto.
18505 (vfwmul): Ditto.
18506 (vfmacc): Ditto.
18507 (vfnmsac): Ditto.
18508 (vfmadd): Ditto.
18509 (vfnmsub): Ditto.
18510 (vfnmacc): Ditto.
18511 (vfmsac): Ditto.
18512 (vfnmadd): Ditto.
18513 (vfmsub): Ditto.
18514 (vfwmacc): Ditto.
18515 (vfwnmacc): Ditto.
18516 (vfwmsac): Ditto.
18517 (vfwnmsac): Ditto.
18518 (vfsqrt): Ditto.
18519 (vfrsqrt7): Ditto.
18520 (vfrec7): Ditto.
18521 (vfmin): Ditto.
18522 (vfmax): Ditto.
18523 (vfsgnj): Ditto.
18524 (vfsgnjn): Ditto.
18525 (vfsgnjx): Ditto.
18526 (vfneg): Ditto.
18527 (vfabs): Ditto.
18528 (vmfeq): Ditto.
18529 (vmfne): Ditto.
18530 (vmflt): Ditto.
18531 (vmfle): Ditto.
18532 (vmfgt): Ditto.
18533 (vmfge): Ditto.
18534 (vfclass): Ditto.
18535 (vfmerge): Ditto.
18536 (vfmv_v): Ditto.
18537 (vfcvt_x): Ditto.
18538 (vfcvt_xu): Ditto.
18539 (vfcvt_rtz_x): Ditto.
18540 (vfcvt_rtz_xu): Ditto.
18541 (vfcvt_f): Ditto.
18542 (vfwcvt_x): Ditto.
18543 (vfwcvt_xu): Ditto.
18544 (vfwcvt_rtz_x): Ditto.
18545 (vfwcvt_rtz_xu): Ditto.
18546 (vfwcvt_f): Ditto.
18547 (vfncvt_x): Ditto.
18548 (vfncvt_xu): Ditto.
18549 (vfncvt_rtz_x): Ditto.
18550 (vfncvt_rtz_xu): Ditto.
18551 (vfncvt_f): Ditto.
18552 (vfncvt_rod_f): Ditto.
18553 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
18554 (struct move_def): Ditto.
18555 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
18556 (DEF_RVV_CONVERT_I_OPS): Ditto.
18557 (DEF_RVV_CONVERT_U_OPS): Ditto.
18558 (DEF_RVV_WCONVERT_I_OPS): Ditto.
18559 (DEF_RVV_WCONVERT_U_OPS): Ditto.
18560 (DEF_RVV_WCONVERT_F_OPS): Ditto.
18561 (vfloat64m1_t): Ditto.
18562 (vfloat64m2_t): Ditto.
18563 (vfloat64m4_t): Ditto.
18564 (vfloat64m8_t): Ditto.
18565 (vint32mf2_t): Ditto.
18566 (vint32m1_t): Ditto.
18567 (vint32m2_t): Ditto.
18568 (vint32m4_t): Ditto.
18569 (vint32m8_t): Ditto.
18570 (vint64m1_t): Ditto.
18571 (vint64m2_t): Ditto.
18572 (vint64m4_t): Ditto.
18573 (vint64m8_t): Ditto.
18574 (vuint32mf2_t): Ditto.
18575 (vuint32m1_t): Ditto.
18576 (vuint32m2_t): Ditto.
18577 (vuint32m4_t): Ditto.
18578 (vuint32m8_t): Ditto.
18579 (vuint64m1_t): Ditto.
18580 (vuint64m2_t): Ditto.
18581 (vuint64m4_t): Ditto.
18582 (vuint64m8_t): Ditto.
18583 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
18584 (DEF_RVV_CONVERT_U_OPS): Ditto.
18585 (DEF_RVV_WCONVERT_I_OPS): Ditto.
18586 (DEF_RVV_WCONVERT_U_OPS): Ditto.
18587 (DEF_RVV_WCONVERT_F_OPS): Ditto.
18588 (DEF_RVV_F_OPS): Ditto.
18589 (DEF_RVV_WEXTF_OPS): Ditto.
18590 (required_extensions_p): Adjust for floating-point support.
18591 (check_required_extensions): Ditto.
18592 (unsigned_base_type_p): Ditto.
18593 (get_mode_for_bitsize): Ditto.
18594 (rvv_arg_type_info::get_base_vector_type): Ditto.
18595 (rvv_arg_type_info::get_tree_type): Ditto.
18596 * config/riscv/riscv-vector-builtins.def (v_f): New define.
18597 (f): New define.
18598 (f_v): New define.
18599 (xu_v): New define.
18600 (f_w): New define.
18601 (xu_w): New define.
18602 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
18603 (function_expander::arg_mode): New function.
18604 * config/riscv/vector-iterators.md (sof): New iterator.
18605 (vfrecp): Ditto.
18606 (copysign): Ditto.
18607 (n): Ditto.
18608 (msac): Ditto.
18609 (msub): Ditto.
18610 (fixuns_trunc): Ditto.
18611 (floatuns): Ditto.
18612 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
18613 (@pred_<optab><mode>): Ditto.
18614 (@pred_<optab><mode>_scalar): Ditto.
18615 (@pred_<optab><mode>_reverse_scalar): Ditto.
18616 (@pred_<copysign><mode>): Ditto.
18617 (@pred_<copysign><mode>_scalar): Ditto.
18618 (@pred_mul_<optab><mode>): Ditto.
18619 (pred_mul_<optab><mode>_undef_merge): Ditto.
18620 (*pred_<madd_nmsub><mode>): Ditto.
18621 (*pred_<macc_nmsac><mode>): Ditto.
18622 (*pred_mul_<optab><mode>): Ditto.
18623 (@pred_mul_<optab><mode>_scalar): Ditto.
18624 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
18625 (*pred_<madd_nmsub><mode>_scalar): Ditto.
18626 (*pred_<macc_nmsac><mode>_scalar): Ditto.
18627 (*pred_mul_<optab><mode>_scalar): Ditto.
18628 (@pred_neg_mul_<optab><mode>): Ditto.
18629 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
18630 (*pred_<nmadd_msub><mode>): Ditto.
18631 (*pred_<nmacc_msac><mode>): Ditto.
18632 (*pred_neg_mul_<optab><mode>): Ditto.
18633 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
18634 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
18635 (*pred_<nmadd_msub><mode>_scalar): Ditto.
18636 (*pred_<nmacc_msac><mode>_scalar): Ditto.
18637 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
18638 (@pred_<misc_op><mode>): Ditto.
18639 (@pred_class<mode>): Ditto.
18640 (@pred_dual_widen_<optab><mode>): Ditto.
18641 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
18642 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
18643 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
18644 (@pred_widen_mul_<optab><mode>): Ditto.
18645 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
18646 (@pred_widen_neg_mul_<optab><mode>): Ditto.
18647 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
18648 (@pred_cmp<mode>): Ditto.
18649 (*pred_cmp<mode>): Ditto.
18650 (*pred_cmp<mode>_narrow): Ditto.
18651 (@pred_cmp<mode>_scalar): Ditto.
18652 (*pred_cmp<mode>_scalar): Ditto.
18653 (*pred_cmp<mode>_scalar_narrow): Ditto.
18654 (@pred_eqne<mode>_scalar): Ditto.
18655 (*pred_eqne<mode>_scalar): Ditto.
18656 (*pred_eqne<mode>_scalar_narrow): Ditto.
18657 (@pred_merge<mode>_scalar): Ditto.
18658 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
18659 (@pred_<fix_cvt><mode>): Ditto.
18660 (@pred_<float_cvt><mode>): Ditto.
18661 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
18662 (@pred_widen_<fix_cvt><mode>): Ditto.
18663 (@pred_widen_<float_cvt><mode>): Ditto.
18664 (@pred_extend<mode>): Ditto.
18665 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
18666 (@pred_narrow_<fix_cvt><mode>): Ditto.
18667 (@pred_narrow_<float_cvt><mode>): Ditto.
18668 (@pred_trunc<mode>): Ditto.
18669 (@pred_rod_trunc<mode>): Ditto.
18670
18671 2023-02-22 Jakub Jelinek <jakub@redhat.com>
18672
18673 PR middle-end/106258
18674 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
18675 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
18676 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
18677 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
18678
18679 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
18680
18681 * common.opt (-Wcomplain-wrong-lang): New.
18682 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
18683 * opts-common.cc (prune_options): Handle it.
18684 * opts-global.cc (complain_wrong_lang): Use it.
18685
18686 2023-02-21 David Malcolm <dmalcolm@redhat.com>
18687
18688 PR analyzer/108830
18689 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
18690
18691 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
18692
18693 PR target/108876
18694 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
18695 for A0_REG.
18696 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
18697 (sibcall_value, sibcall_value_internal): Add 'use' expression
18698 for A0_REG.
18699
18700 2023-02-21 Richard Biener <rguenther@suse.de>
18701
18702 PR tree-optimization/108691
18703 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
18704 assert about calls_setjmp not becoming true when it was false.
18705
18706 2023-02-21 Richard Biener <rguenther@suse.de>
18707
18708 PR tree-optimization/108793
18709 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
18710 Use convert operands to niter_type when computing num.
18711
18712 2023-02-21 Richard Biener <rguenther@suse.de>
18713
18714 Revert:
18715 2023-02-13 Richard Biener <rguenther@suse.de>
18716
18717 PR tree-optimization/108691
18718 * tree-cfg.cc (notice_special_calls): When the CFG is built
18719 honor gimple_call_ctrl_altering_p.
18720 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
18721 temporarily if the call is not control-altering.
18722 * calls.cc (emit_call_1): Do not add REG_SETJMP if
18723 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
18724
18725 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18726
18727 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
18728 true if register A0 (return address register) when -Og is specified.
18729
18730 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
18731
18732 * config/i386/predicates.md
18733 (general_x64constmem_operand): New predicate.
18734 * config/i386/i386.md (*cmpqi_ext<mode>_1):
18735 Use nonimm_x64constmem_operand.
18736 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
18737 (*addqi_ext<mode>_1): Ditto.
18738 (*testqi_ext<mode>_1): Ditto.
18739 (*andqi_ext<mode>_1): Ditto.
18740 (*andqi_ext<mode>_1_cc): Ditto.
18741 (*<any_or:code>qi_ext<mode>_1): Ditto.
18742 (*xorqi_ext<mode>_1_cc): Ditto.
18743
18744 2023-02-20 Jakub Jelinek <jakub2redhat.com>
18745
18746 PR target/108862
18747 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
18748 gen_umadddi4_highpart{,_le}.
18749
18750 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
18751
18752 * config/riscv/riscv.md (prefetch): Use r instead of p for the
18753 address operand.
18754 (riscv_prefetchi_<mode>): Ditto.
18755
18756 2023-02-20 Richard Biener <rguenther@suse.de>
18757
18758 PR tree-optimization/108816
18759 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
18760 versioning condition split prerequesite, assert required
18761 invariant.
18762
18763 2023-02-20 Richard Biener <rguenther@suse.de>
18764
18765 PR tree-optimization/108825
18766 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
18767 loop-local verfication only verify there's no pending SSA
18768 update.
18769
18770 2023-02-20 Richard Biener <rguenther@suse.de>
18771
18772 PR tree-optimization/108819
18773 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
18774 we have an SSA name as iv_2 as expected.
18775
18776 2023-02-18 Jakub Jelinek <jakub@redhat.com>
18777
18778 PR tree-optimization/108819
18779 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
18780
18781 2023-02-18 Jakub Jelinek <jakub@redhat.com>
18782
18783 PR target/108832
18784 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
18785 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
18786 function.
18787 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
18788 with ix86_replace_reg_with_reg.
18789
18790 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
18791
18792 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
18793
18794 2023-02-18 Xi Ruoyao <xry111@xry111.site>
18795
18796 * config.gcc (triplet_abi): Set its value based on $with_abi,
18797 instead of $target.
18798 (la_canonical_triplet): Set it after $triplet_abi is set
18799 correctly.
18800 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
18801 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
18802 "f64" suffix).
18803
18804 2023-02-18 Andrew Pinski <apinski@marvell.com>
18805
18806 * match.pd: Remove #if GIMPLE around the
18807 "1 - a" pattern
18808
18809 2023-02-18 Andrew Pinski <apinski@marvell.com>
18810
18811 * value-query.h (get_range_query): Return the global ranges
18812 for a nullptr func.
18813
18814 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
18815
18816 * doc/invoke.texi (@item -Wall): Fix typo in
18817 -Wuse-after-free.
18818
18819 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
18820
18821 PR target/108831
18822 * config/i386/predicates.md
18823 (nonimm_x64constmem_operand): New predicate.
18824 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
18825 (*subqi_ext<mode>_0): Ditto.
18826 (*andqi_ext<mode>_0): Ditto.
18827 (*<any_or:code>qi_ext<mode>_0): Ditto.
18828
18829 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
18830
18831 PR target/108805
18832 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
18833 int_outermode instead of GET_MODE (tem) to prevent
18834 VOIDmode from entering simplify_gen_subreg.
18835
18836 2023-02-17 Richard Biener <rguenther@suse.de>
18837
18838 PR tree-optimization/108821
18839 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
18840 move volatile accesses.
18841
18842 2023-02-17 Richard Biener <rguenther@suse.de>
18843
18844 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
18845 called on virtual operands.
18846 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
18847 ssa_undefined_value_p calls.
18848 (vn_phi_insert): Likewise.
18849 (set_ssa_val_to): Likewise.
18850 (visit_phi): Avoid extra work with equivalences for
18851 virtual operand PHIs.
18852
18853 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18854
18855 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
18856 class.
18857 (class mask_nlogic): Ditto.
18858 (class mask_notlogic): Ditto.
18859 (class vmmv): Ditto.
18860 (class vmclr): Ditto.
18861 (class vmset): Ditto.
18862 (class vmnot): Ditto.
18863 (class vcpop): Ditto.
18864 (class vfirst): Ditto.
18865 (class mask_misc): Ditto.
18866 (class viota): Ditto.
18867 (class vid): Ditto.
18868 (BASE): Ditto.
18869 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
18870 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
18871 (vmnand): Ditto.
18872 (vmandn): Ditto.
18873 (vmxor): Ditto.
18874 (vmor): Ditto.
18875 (vmnor): Ditto.
18876 (vmorn): Ditto.
18877 (vmxnor): Ditto.
18878 (vmmv): Ditto.
18879 (vmclr): Ditto.
18880 (vmset): Ditto.
18881 (vmnot): Ditto.
18882 (vcpop): Ditto.
18883 (vfirst): Ditto.
18884 (vmsbf): Ditto.
18885 (vmsif): Ditto.
18886 (vmsof): Ditto.
18887 (viota): Ditto.
18888 (vid): Ditto.
18889 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
18890 (struct mask_alu_def): Ditto.
18891 (SHAPE): Ditto.
18892 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
18893 * config/riscv/riscv-vector-builtins.cc: Ditto.
18894 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
18895 for dest it scalar RVV intrinsics.
18896 * config/riscv/vector-iterators.md (sof): New iterator.
18897 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
18898 (@pred_<optab>not<mode>): New pattern.
18899 (@pred_popcount<VB:mode><P:mode>): New pattern.
18900 (@pred_ffs<VB:mode><P:mode>): New pattern.
18901 (@pred_<misc_op><mode>): New pattern.
18902 (@pred_iota<mode>): New pattern.
18903 (@pred_series<mode>): New pattern.
18904
18905 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18906
18907 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
18908 (vsbc): Ditto.
18909 (vmerge): Ditto.
18910 (vmv_v): Ditto.
18911 * config/riscv/riscv-vector-builtins.cc: Ditto.
18912
18913 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18914 kito-cheng <kito.cheng@sifive.com>
18915
18916 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
18917 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
18918 (sew64_scalar_helper): New function.
18919 * config/riscv/vector.md: Normalization.
18920
18921 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18922
18923 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
18924 (vsm): Ditto.
18925 (vsse): Ditto.
18926 (vsoxei64): Ditto.
18927 (vsub): Ditto.
18928 (vand): Ditto.
18929 (vor): Ditto.
18930 (vxor): Ditto.
18931 (vsll): Ditto.
18932 (vsra): Ditto.
18933 (vsrl): Ditto.
18934 (vmin): Ditto.
18935 (vmax): Ditto.
18936 (vminu): Ditto.
18937 (vmaxu): Ditto.
18938 (vmul): Ditto.
18939 (vmulh): Ditto.
18940 (vmulhu): Ditto.
18941 (vmulhsu): Ditto.
18942 (vdiv): Ditto.
18943 (vrem): Ditto.
18944 (vdivu): Ditto.
18945 (vremu): Ditto.
18946 (vnot): Ditto.
18947 (vsext): Ditto.
18948 (vzext): Ditto.
18949 (vwadd): Ditto.
18950 (vwsub): Ditto.
18951 (vwmul): Ditto.
18952 (vwmulu): Ditto.
18953 (vwmulsu): Ditto.
18954 (vwaddu): Ditto.
18955 (vwsubu): Ditto.
18956 (vsbc): Ditto.
18957 (vmsbc): Ditto.
18958 (vnsra): Ditto.
18959 (vmerge): Ditto.
18960 (vmv_v): Ditto.
18961 (vmsne): Ditto.
18962 (vmslt): Ditto.
18963 (vmsgt): Ditto.
18964 (vmsle): Ditto.
18965 (vmsge): Ditto.
18966 (vmsltu): Ditto.
18967 (vmsgtu): Ditto.
18968 (vmsleu): Ditto.
18969 (vmsgeu): Ditto.
18970 (vnmsac): Ditto.
18971 (vmadd): Ditto.
18972 (vnmsub): Ditto.
18973 (vwmacc): Ditto.
18974 (vsadd): Ditto.
18975 (vssub): Ditto.
18976 (vssubu): Ditto.
18977 (vaadd): Ditto.
18978 (vasub): Ditto.
18979 (vasubu): Ditto.
18980 (vsmul): Ditto.
18981 (vssra): Ditto.
18982 (vssrl): Ditto.
18983 (vnclip): Ditto.
18984
18985 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18986
18987 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
18988 (@pred_<optab><mode>_scalar): Ditto.
18989 (*pred_<optab><mode>_scalar): Ditto.
18990 (*pred_<optab><mode>_extended_scalar): Ditto.
18991
18992 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
18993
18994 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
18995 (init_builtins): Ditto.
18996 (mangle_builtin_type): Ditto.
18997 (verify_type_context): Ditto.
18998 (handle_pragma_vector): Ditto.
18999 (builtin_decl): Ditto.
19000 (expand_builtin): Ditto.
19001 (const_vec_all_same_in_range_p): Ditto.
19002 (legitimize_move): Ditto.
19003 (emit_vlmax_op): Ditto.
19004 (emit_nonvlmax_op): Ditto.
19005 (get_vlmul): Ditto.
19006 (get_ratio): Ditto.
19007 (get_ta): Ditto.
19008 (get_ma): Ditto.
19009 (get_avl_type): Ditto.
19010 (calculate_ratio): Ditto.
19011 (enum vlmul_type): Ditto.
19012 (simm5_p): Ditto.
19013 (neg_simm5_p): Ditto.
19014 (has_vi_variant_p): Ditto.
19015
19016 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19017
19018 * config/riscv/riscv-protos.h (simm32_p): Remove.
19019 * config/riscv/riscv-v.cc (simm32_p): Ditto.
19020 * config/riscv/vector.md: Use immediate_operand
19021 instead of riscv_vector::simm32_p.
19022
19023 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
19024
19025 * doc/invoke.texi (Optimize Options): Reword the explanation
19026 getting minimal, maximal and default values of a parameter.
19027
19028 2023-02-16 Patrick Palka <ppalka@redhat.com>
19029
19030 * addresses.h: Mechanically drop 'static' from 'static inline'
19031 functions via s/^static inline/inline/g.
19032 * asan.h: Likewise.
19033 * attribs.h: Likewise.
19034 * basic-block.h: Likewise.
19035 * bitmap.h: Likewise.
19036 * cfghooks.h: Likewise.
19037 * cfgloop.h: Likewise.
19038 * cgraph.h: Likewise.
19039 * cselib.h: Likewise.
19040 * data-streamer.h: Likewise.
19041 * debug.h: Likewise.
19042 * df.h: Likewise.
19043 * diagnostic.h: Likewise.
19044 * dominance.h: Likewise.
19045 * dumpfile.h: Likewise.
19046 * emit-rtl.h: Likewise.
19047 * except.h: Likewise.
19048 * expmed.h: Likewise.
19049 * expr.h: Likewise.
19050 * fixed-value.h: Likewise.
19051 * gengtype.h: Likewise.
19052 * gimple-expr.h: Likewise.
19053 * gimple-iterator.h: Likewise.
19054 * gimple-predict.h: Likewise.
19055 * gimple-range-fold.h: Likewise.
19056 * gimple-ssa.h: Likewise.
19057 * gimple.h: Likewise.
19058 * graphite.h: Likewise.
19059 * hard-reg-set.h: Likewise.
19060 * hash-map.h: Likewise.
19061 * hash-set.h: Likewise.
19062 * hash-table.h: Likewise.
19063 * hwint.h: Likewise.
19064 * input.h: Likewise.
19065 * insn-addr.h: Likewise.
19066 * internal-fn.h: Likewise.
19067 * ipa-fnsummary.h: Likewise.
19068 * ipa-icf-gimple.h: Likewise.
19069 * ipa-inline.h: Likewise.
19070 * ipa-modref.h: Likewise.
19071 * ipa-prop.h: Likewise.
19072 * ira-int.h: Likewise.
19073 * ira.h: Likewise.
19074 * lra-int.h: Likewise.
19075 * lra.h: Likewise.
19076 * lto-streamer.h: Likewise.
19077 * memmodel.h: Likewise.
19078 * omp-general.h: Likewise.
19079 * optabs-query.h: Likewise.
19080 * optabs.h: Likewise.
19081 * plugin.h: Likewise.
19082 * pretty-print.h: Likewise.
19083 * range.h: Likewise.
19084 * read-md.h: Likewise.
19085 * recog.h: Likewise.
19086 * regs.h: Likewise.
19087 * rtl-iter.h: Likewise.
19088 * rtl.h: Likewise.
19089 * sbitmap.h: Likewise.
19090 * sched-int.h: Likewise.
19091 * sel-sched-ir.h: Likewise.
19092 * sese.h: Likewise.
19093 * sparseset.h: Likewise.
19094 * ssa-iterators.h: Likewise.
19095 * system.h: Likewise.
19096 * target-globals.h: Likewise.
19097 * target.h: Likewise.
19098 * timevar.h: Likewise.
19099 * tree-chrec.h: Likewise.
19100 * tree-data-ref.h: Likewise.
19101 * tree-iterator.h: Likewise.
19102 * tree-outof-ssa.h: Likewise.
19103 * tree-phinodes.h: Likewise.
19104 * tree-scalar-evolution.h: Likewise.
19105 * tree-sra.h: Likewise.
19106 * tree-ssa-alias.h: Likewise.
19107 * tree-ssa-live.h: Likewise.
19108 * tree-ssa-loop-manip.h: Likewise.
19109 * tree-ssa-loop.h: Likewise.
19110 * tree-ssa-operands.h: Likewise.
19111 * tree-ssa-propagate.h: Likewise.
19112 * tree-ssa-sccvn.h: Likewise.
19113 * tree-ssa.h: Likewise.
19114 * tree-ssanames.h: Likewise.
19115 * tree-streamer.h: Likewise.
19116 * tree-switch-conversion.h: Likewise.
19117 * tree-vectorizer.h: Likewise.
19118 * tree.h: Likewise.
19119 * wide-int.h: Likewise.
19120
19121 2023-02-16 Jakub Jelinek <jakub@redhat.com>
19122
19123 PR tree-optimization/108657
19124 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
19125 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
19126 is a call to internal or builtin function.
19127
19128 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
19129
19130 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
19131 using-declaration to unhide functions.
19132
19133 2023-02-16 Jakub Jelinek <jakub@redhat.com>
19134
19135 PR tree-optimization/108783
19136 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
19137 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
19138 t to curr->op. Otherwise, punt if either newop1 or newop2 are
19139 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
19140
19141 2023-02-16 Richard Biener <rguenther@suse.de>
19142
19143 PR tree-optimization/108791
19144 * tree-ssa-forwprop.cc (optimize_vector_load): Build
19145 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
19146 type.
19147
19148 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
19149
19150 PR target/90458
19151 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
19152 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
19153 (ix86_expand_prologue): Likewise.
19154
19155 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
19156
19157 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
19158
19159 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
19160
19161 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
19162 int248_register_operand predicate in zero_extract sub-RTX.
19163 (*cmpqi_ext<mode>_2): Ditto.
19164 (*cmpqi_ext<mode>_3): Ditto.
19165 (*cmpqi_ext<mode>_4): Ditto.
19166 (*extzvqi_mem_rex64): Ditto.
19167 (*extzvqi): Ditto.
19168 (*insvqi_1_mem_rex64): Ditto.
19169 (@insv<mode>_1): Ditto.
19170 (*insvqi_1): Ditto.
19171 (*insvqi_2): Ditto.
19172 (*insvqi_3): Ditto.
19173 (*extendqi<SWI24:mode>_ext_1): Ditto.
19174 (*addqi_ext<mode>_1): Ditto.
19175 (*addqi_ext<mode>_2): Ditto.
19176 (*subqi_ext<mode>_2): Ditto.
19177 (*testqi_ext<mode>_1): Ditto.
19178 (*testqi_ext<mode>_2): Ditto.
19179 (*andqi_ext<mode>_1): Ditto.
19180 (*andqi_ext<mode>_1_cc): Ditto.
19181 (*andqi_ext<mode>_2): Ditto.
19182 (*<any_or:code>qi_ext<mode>_1): Ditto.
19183 (*<any_or:code>qi_ext<mode>_2): Ditto.
19184 (*xorqi_ext<mode>_1_cc): Ditto.
19185 (*negqi_ext<mode>_2): Ditto.
19186 (*ashlqi_ext<mode>_2): Ditto.
19187 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
19188
19189 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
19190
19191 * config/i386/predicates.md (int248_register_operand):
19192 Rename from extr_register_operand.
19193 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
19194 (*extzx<mode>): Ditto.
19195 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
19196 (*ashl<mode>3_mask): Ditto.
19197 (*<any_shiftrt:insn><mode>3_mask): Ditto.
19198 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
19199 (*<any_rotate:insn><mode>3_mask): Ditto.
19200 (*<btsc><mode>_mask): Ditto.
19201 (*btr<mode>_mask): Ditto.
19202 (*jcc_bt<mode>_mask_1): Ditto.
19203
19204 2023-02-15 Richard Biener <rguenther@suse.de>
19205
19206 PR middle-end/26854
19207 * df-core.cc (df_worklist_propagate_forward): Put later
19208 blocks on worklist and only earlier blocks on pending.
19209 (df_worklist_propagate_backward): Likewise.
19210 (df_worklist_dataflow_doublequeue): Change the iteration
19211 to process new blocks in the same iteration if that
19212 maintains the iteration order.
19213
19214 2023-02-15 Marek Polacek <polacek@redhat.com>
19215
19216 PR middle-end/106080
19217 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
19218 instead.
19219
19220 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19221
19222 * config/riscv/predicates.md: Refine codes.
19223 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
19224 * config/riscv/riscv-v.cc: Refine codes.
19225 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
19226 enum.
19227 (class imac): New class.
19228 (enum widen_ternop_type): New enum.
19229 (class iwmac): New class.
19230 (BASE): New class.
19231 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19232 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
19233 (vnmsac): Ditto.
19234 (vmadd): Ditto.
19235 (vnmsub): Ditto.
19236 (vwmacc): Ditto.
19237 (vwmaccu): Ditto.
19238 (vwmaccsu): Ditto.
19239 (vwmaccus): Ditto.
19240 * config/riscv/riscv-vector-builtins.cc
19241 (function_builder::apply_predication): Adjust for multiply-add support.
19242 (function_expander::add_vundef_operand): Refine codes.
19243 (function_expander::use_ternop_insn): New function.
19244 (function_expander::use_widen_ternop_insn): Ditto.
19245 * config/riscv/riscv-vector-builtins.h: New function.
19246 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
19247 (pred_mul_<optab><mode>_undef_merge): Ditto.
19248 (*pred_<madd_nmsub><mode>): Ditto.
19249 (*pred_<macc_nmsac><mode>): Ditto.
19250 (*pred_mul_<optab><mode>): Ditto.
19251 (@pred_mul_<optab><mode>_scalar): Ditto.
19252 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
19253 (*pred_<madd_nmsub><mode>_scalar): Ditto.
19254 (*pred_<macc_nmsac><mode>_scalar): Ditto.
19255 (*pred_mul_<optab><mode>_scalar): Ditto.
19256 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
19257 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
19258 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
19259 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
19260 (@pred_widen_mul_plus<su><mode>): Ditto.
19261 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
19262 (@pred_widen_mul_plussu<mode>): Ditto.
19263 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
19264 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
19265
19266 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19267
19268 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
19269 (vector_all_trues_mask_operand): New predicate.
19270 (vector_undef_operand): New predicate.
19271 (ltge_operator): New predicate.
19272 (comparison_except_ltge_operator): New predicate.
19273 (comparison_except_eqge_operator): New predicate.
19274 (ge_operator): New predicate.
19275 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
19276 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
19277 (BASE): Ditto.
19278 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19279 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
19280 (vmsne): Ditto.
19281 (vmslt): Ditto.
19282 (vmsgt): Ditto.
19283 (vmsle): Ditto.
19284 (vmsge): Ditto.
19285 (vmsltu): Ditto.
19286 (vmsgtu): Ditto.
19287 (vmsleu): Ditto.
19288 (vmsgeu): Ditto.
19289 * config/riscv/riscv-vector-builtins-shapes.cc
19290 (struct return_mask_def): Adjust for compare support.
19291 * config/riscv/riscv-vector-builtins.cc
19292 (function_expander::use_compare_insn): New function.
19293 * config/riscv/riscv-vector-builtins.h
19294 (function_expander::add_integer_operand): Ditto.
19295 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
19296 * config/riscv/riscv.md: Add vector min/max attributes.
19297 * config/riscv/vector-iterators.md (xnor): New iterator.
19298 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
19299 (*pred_cmp<mode>): Ditto.
19300 (*pred_cmp<mode>_narrow): Ditto.
19301 (@pred_ltge<mode>): Ditto.
19302 (*pred_ltge<mode>): Ditto.
19303 (*pred_ltge<mode>_narrow): Ditto.
19304 (@pred_cmp<mode>_scalar): Ditto.
19305 (*pred_cmp<mode>_scalar): Ditto.
19306 (*pred_cmp<mode>_scalar_narrow): Ditto.
19307 (@pred_eqne<mode>_scalar): Ditto.
19308 (*pred_eqne<mode>_scalar): Ditto.
19309 (*pred_eqne<mode>_scalar_narrow): Ditto.
19310 (*pred_cmp<mode>_extended_scalar): Ditto.
19311 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
19312 (*pred_eqne<mode>_extended_scalar): Ditto.
19313 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
19314 (@pred_ge<mode>_scalar): Ditto.
19315 (@pred_<optab><mode>): Ditto.
19316 (@pred_n<optab><mode>): Ditto.
19317 (@pred_<optab>n<mode>): Ditto.
19318 (@pred_not<mode>): Ditto.
19319
19320 2023-02-15 Martin Jambor <mjambor@suse.cz>
19321
19322 PR ipa/108679
19323 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
19324 creation of non-scalar replacements even if IPA-CP knows their
19325 contents.
19326
19327 2023-02-15 Jakub Jelinek <jakub@redhat.com>
19328
19329 PR target/108787
19330 PR target/103109
19331 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
19332 expander, change operand 3 to be TImode, emit maddlddi4 and
19333 umadddi4_highpart{,_le} with its low half and finally add the high
19334 half to the result.
19335
19336 2023-02-15 Martin Liska <mliska@suse.cz>
19337
19338 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
19339
19340 2023-02-15 Richard Biener <rguenther@suse.de>
19341
19342 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
19343 for with_poison and alias worklist to it.
19344 (sanitize_asan_mark_poison): Likewise.
19345
19346 2023-02-15 Richard Biener <rguenther@suse.de>
19347
19348 PR target/108738
19349 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
19350 Combine bitmap test and set.
19351 (scalar_chain::add_insn): Likewise.
19352 (scalar_chain::analyze_register_chain): Remove redundant
19353 attempt to add to queue and instead strengthen assert.
19354 Sink common attempts to mark the def dual-mode.
19355 (scalar_chain::add_to_queue): Remove redundant insn bitmap
19356 check.
19357
19358 2023-02-15 Richard Biener <rguenther@suse.de>
19359
19360 PR target/108738
19361 * config/i386/i386-features.cc (convert_scalars_to_vector):
19362 Switch candidates bitmaps to tree view before building the chains.
19363
19364 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
19365
19366 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
19367 "failure trying to reload" call.
19368
19369 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
19370
19371 * gdbinit.in (phrs): New command.
19372 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
19373 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
19374
19375 2023-02-14 David Faust <david.faust@oracle.com>
19376
19377 PR target/108790
19378 * config/bpf/constraints.md (q): New memory constraint.
19379 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
19380 (zero_extendqidi2): Likewise.
19381 (zero_extendsidi2): Likewise.
19382 (*mov<MM:mode>): Likewise.
19383
19384 2023-02-14 Andrew Pinski <apinski@marvell.com>
19385
19386 PR tree-optimization/108355
19387 PR tree-optimization/96921
19388 * match.pd: Add pattern for "1 - bool_val".
19389
19390 2023-02-14 Richard Biener <rguenther@suse.de>
19391
19392 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
19393 basic block index hashing on the availability of ->cclhs.
19394 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
19395 rely on ->cclhs availability.
19396 (vn_phi_lookup): Set ->cclhs only when we are eventually
19397 going to CSE the PHI.
19398 (vn_phi_insert): Likewise.
19399
19400 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
19401
19402 * gimplify.cc (gimplify_save_expr): Add missing guard.
19403
19404 2023-02-14 Richard Biener <rguenther@suse.de>
19405
19406 PR tree-optimization/108782
19407 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
19408 Make sure we're not vectorizing an inner loop.
19409
19410 2023-02-14 Jakub Jelinek <jakub@redhat.com>
19411
19412 PR sanitizer/108777
19413 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
19414 * asan.h (asan_memfn_rtl): Declare.
19415 * asan.cc (asan_memfn_rtls): New variable.
19416 (asan_memfn_rtl): New function.
19417 * builtins.cc (expand_builtin): If
19418 param_asan_kernel_mem_intrinsic_prefix and function is
19419 kernel-{,hw}address sanitized, emit calls to
19420 __{,hw}asan_{memcpy,memmove,memset} rather than
19421 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
19422 instead of flag_sanitize & SANITIZE_ADDRESS to check if
19423 asan_intercepted_p functions shouldn't be expanded inline.
19424
19425 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
19426
19427 PR tree-optimization/96373
19428 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
19429 operations on the loop mask. Reject partial vectors if this isn't
19430 possible.
19431
19432 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
19433
19434 PR rtl-optimization/108681
19435 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
19436 code to handle bare uses and clobbers.
19437
19438 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
19439
19440 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
19441 caller_save_p flag when clearing defined_p flag.
19442 (setup_reg_equiv): Ditto.
19443 * lra-constraints.cc (lra_constraints): Ditto.
19444
19445 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
19446
19447 PR target/108516
19448 * config/i386/predicates.md (extr_register_operand):
19449 New special predicate.
19450 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
19451 as operand 1 predicate.
19452 (*exzv<mode>): Ditto.
19453 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
19454
19455 2023-02-13 Richard Biener <rguenther@suse.de>
19456
19457 PR tree-optimization/28614
19458 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
19459 walking all edges in most cases.
19460 (vn_nary_op_insert_pieces_predicated): Avoid repeated
19461 calls to can_track_predicate_on_edge unless checking is
19462 enabled.
19463 (process_bb): Instead call it once here for each edge
19464 we register possibly multiple predicates on.
19465
19466 2023-02-13 Richard Biener <rguenther@suse.de>
19467
19468 PR tree-optimization/108691
19469 * tree-cfg.cc (notice_special_calls): When the CFG is built
19470 honor gimple_call_ctrl_altering_p.
19471 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
19472 temporarily if the call is not control-altering.
19473 * calls.cc (emit_call_1): Do not add REG_SETJMP if
19474 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
19475
19476 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
19477
19478 PR target/108102
19479 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
19480 (struct s390_sched_state): Initialise to zero.
19481 (s390_sched_variable_issue): For better debuggability also emit
19482 the current side.
19483 (s390_sched_init): Unconditionally reset scheduler state.
19484
19485 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
19486
19487 * ifcvt.h (noce_if_info::cond_inverted): New field.
19488 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
19489 values when cond_inverted is true.
19490 (noce_find_if_block): Allow the condition to be inverted when
19491 handling conditional moves.
19492
19493 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
19494
19495 * config/s390/predicates.md (execute_operation): Use
19496 constrain_operands instead of extract_constrain_insn in order to
19497 determine wheter there exists a valid alternative.
19498
19499 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
19500
19501 * common/config/arc/arc-common.cc (arc_option_optimization_table):
19502 Remove millicode from list.
19503
19504 2023-02-13 Martin Liska <mliska@suse.cz>
19505
19506 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
19507
19508 2023-02-13 Richard Biener <rguenther@suse.de>
19509
19510 PR tree-optimization/106722
19511 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
19512 whether we marked a stmt.
19513 (mark_control_dependent_edges_necessary): When
19514 mark_last_stmt_necessary didn't mark any stmt make sure
19515 to mark its control dependent edges.
19516 (propagate_necessity): Likewise.
19517
19518 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
19519
19520 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
19521 (DWARF_FRAME_REGISTERS): New.
19522 (DWARF_REG_TO_UNWIND_COLUMN): New.
19523
19524 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
19525
19526 * doc/sourcebuild.texi: Remove (broken) direct reference to
19527 "The GNU configure and build system".
19528
19529 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
19530
19531 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
19532 gen_add3_insn to gen_rtx_SET.
19533 (riscv_adjust_libcall_cfi_epilogue): Likewise.
19534
19535 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19536
19537 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
19538 (class vnclip): Ditto.
19539 (BASE): Ditto.
19540 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19541 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
19542 (vasub): Ditto.
19543 (vaaddu): Ditto.
19544 (vasubu): Ditto.
19545 (vsmul): Ditto.
19546 (vssra): Ditto.
19547 (vssrl): Ditto.
19548 (vnclipu): Ditto.
19549 (vnclip): Ditto.
19550 * config/riscv/vector-iterators.md (su): Add instruction.
19551 (aadd): Ditto.
19552 (vaalu): Ditto.
19553 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
19554 (@pred_<sat_op><mode>_scalar): Ditto.
19555 (*pred_<sat_op><mode>_scalar): Ditto.
19556 (*pred_<sat_op><mode>_extended_scalar): Ditto.
19557 (@pred_narrow_clip<v_su><mode>): Ditto.
19558 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
19559
19560 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19561
19562 * config/riscv/constraints.md (Wbr): Remove unused constraint.
19563 * config/riscv/predicates.md: Fix move operand predicate.
19564 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
19565 (class vncvt_x): Ditto.
19566 (class vmerge): Ditto.
19567 (class vmv_v): Ditto.
19568 (BASE): Ditto.
19569 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19570 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
19571 (vsrl): Ditto.
19572 (vnsrl): Ditto.
19573 (vnsra): Ditto.
19574 (vncvt_x): Ditto.
19575 (vmerge): Ditto.
19576 (vmv_v): Ditto.
19577 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
19578 (struct move_def): Ditto.
19579 (SHAPE): Ditto.
19580 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19581 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
19582 (DEF_RVV_WEXTU_OPS): Ditto
19583 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
19584 (v_v): Ditto.
19585 (v_x): Ditto.
19586 (x_w): Ditto.
19587 (x): Ditto.
19588 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
19589 * config/riscv/vector-iterators.md (nmsac):New iterator.
19590 (nmsub): New iterator.
19591 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
19592 (@pred_merge<mode>_scalar): New pattern.
19593 (*pred_merge<mode>_scalar): New pattern.
19594 (*pred_merge<mode>_extended_scalar): New pattern.
19595 (@pred_narrow_<optab><mode>): New pattern.
19596 (@pred_narrow_<optab><mode>_scalar): New pattern.
19597 (@pred_trunc<mode>): New pattern.
19598
19599 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19600
19601 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
19602 (class vmsbc): Ditto.
19603 (BASE): Define new class.
19604 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19605 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
19606 (vmsbc): Ditto.
19607 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
19608 New class.
19609 (SHAPE): Ditto.
19610 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19611 * config/riscv/riscv-vector-builtins.cc
19612 (function_expander::use_exact_insn): Adjust for new support
19613 * config/riscv/riscv-vector-builtins.h
19614 (function_base::has_merge_operand_p): New function.
19615 * config/riscv/vector-iterators.md: New iterator.
19616 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
19617 (@pred_msbc<mode>): Ditto.
19618 (@pred_madc<mode>_scalar): Ditto.
19619 (@pred_msbc<mode>_scalar): Ditto.
19620 (*pred_madc<mode>_scalar): Ditto.
19621 (*pred_madc<mode>_extended_scalar): Ditto.
19622 (*pred_msbc<mode>_scalar): Ditto.
19623 (*pred_msbc<mode>_extended_scalar): Ditto.
19624 (@pred_madc<mode>_overflow): Ditto.
19625 (@pred_msbc<mode>_overflow): Ditto.
19626 (@pred_madc<mode>_overflow_scalar): Ditto.
19627 (@pred_msbc<mode>_overflow_scalar): Ditto.
19628 (*pred_madc<mode>_overflow_scalar): Ditto.
19629 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
19630 (*pred_msbc<mode>_overflow_scalar): Ditto.
19631 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
19632
19633 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19634
19635 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
19636 * config/riscv/riscv-v.cc (simm32_p): Ditto.
19637 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
19638 (class vsbc): Ditto.
19639 (BASE): Ditto.
19640 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19641 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
19642 (vsbc): Ditto.
19643 * config/riscv/riscv-vector-builtins-shapes.cc
19644 (struct no_mask_policy_def): Ditto.
19645 (SHAPE): Ditto.
19646 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19647 * config/riscv/riscv-vector-builtins.cc
19648 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
19649 (rvv_arg_type_info::get_tree_type): Ditto.
19650 (function_expander::use_exact_insn): Ditto.
19651 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
19652 (function_base::use_mask_predication_p): New function.
19653 * config/riscv/vector-iterators.md: New iterator.
19654 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
19655 (@pred_sbc<mode>): Ditto.
19656 (@pred_adc<mode>_scalar): Ditto.
19657 (@pred_sbc<mode>_scalar): Ditto.
19658 (*pred_adc<mode>_scalar): Ditto.
19659 (*pred_adc<mode>_extended_scalar): Ditto.
19660 (*pred_sbc<mode>_scalar): Ditto.
19661 (*pred_sbc<mode>_extended_scalar): Ditto.
19662
19663 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19664
19665 * config/riscv/vector.md: use "zero" reg.
19666
19667 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19668
19669 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
19670 class.
19671 (class vwmulsu): Ditto.
19672 (class vwcvt): Ditto.
19673 (BASE): Add integer widening support.
19674 * config/riscv/riscv-vector-builtins-bases.h: Ditto
19675 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
19676 (vwsub): New class.
19677 (vwmul): New class.
19678 (vwmulu): New class.
19679 (vwmulsu): New class.
19680 (vwaddu): New class.
19681 (vwsubu): New class.
19682 (vwcvt_x): New class.
19683 (vwcvtu_x): New class.
19684 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
19685 class.
19686 (struct widen_alu_def): New class.
19687 (SHAPE): New class.
19688 * config/riscv/riscv-vector-builtins-shapes.h: New class.
19689 * config/riscv/riscv-vector-builtins.cc
19690 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
19691 (rvv_arg_type_info::get_tree_type): Ditto.
19692 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
19693 (x_v): Ditto.
19694 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
19695 widening support.
19696 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
19697 * config/riscv/riscv.h (X0_REGNUM): New constant.
19698 * config/riscv/vector-iterators.md: New iterators.
19699 * config/riscv/vector.md
19700 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
19701 pattern.
19702 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
19703 Ditto.
19704 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
19705 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
19706 Ditto.
19707 (@pred_widen_mulsu<mode>): Ditto.
19708 (@pred_widen_mulsu<mode>_scalar): Ditto.
19709 (@pred_<optab><mode>): Ditto.
19710
19711 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19712 kito-cheng <kito.cheng@sifive.com>
19713
19714 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
19715 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
19716 (BASE): Ditto.
19717 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19718 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
19719 API support.
19720 (vmulhu): Ditto.
19721 (vmulhsu): Ditto.
19722 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
19723 New macro.
19724 (DEF_RVV_FULL_V_U_OPS): Ditto.
19725 (vint8mf8_t): Ditto.
19726 (vint8mf4_t): Ditto.
19727 (vint8mf2_t): Ditto.
19728 (vint8m1_t): Ditto.
19729 (vint8m2_t): Ditto.
19730 (vint8m4_t): Ditto.
19731 (vint8m8_t): Ditto.
19732 (vint16mf4_t): Ditto.
19733 (vint16mf2_t): Ditto.
19734 (vint16m1_t): Ditto.
19735 (vint16m2_t): Ditto.
19736 (vint16m4_t): Ditto.
19737 (vint16m8_t): Ditto.
19738 (vint32mf2_t): Ditto.
19739 (vint32m1_t): Ditto.
19740 (vint32m2_t): Ditto.
19741 (vint32m4_t): Ditto.
19742 (vint32m8_t): Ditto.
19743 (vint64m1_t): Ditto.
19744 (vint64m2_t): Ditto.
19745 (vint64m4_t): Ditto.
19746 (vint64m8_t): Ditto.
19747 (vuint8mf8_t): Ditto.
19748 (vuint8mf4_t): Ditto.
19749 (vuint8mf2_t): Ditto.
19750 (vuint8m1_t): Ditto.
19751 (vuint8m2_t): Ditto.
19752 (vuint8m4_t): Ditto.
19753 (vuint8m8_t): Ditto.
19754 (vuint16mf4_t): Ditto.
19755 (vuint16mf2_t): Ditto.
19756 (vuint16m1_t): Ditto.
19757 (vuint16m2_t): Ditto.
19758 (vuint16m4_t): Ditto.
19759 (vuint16m8_t): Ditto.
19760 (vuint32mf2_t): Ditto.
19761 (vuint32m1_t): Ditto.
19762 (vuint32m2_t): Ditto.
19763 (vuint32m4_t): Ditto.
19764 (vuint32m8_t): Ditto.
19765 (vuint64m1_t): Ditto.
19766 (vuint64m2_t): Ditto.
19767 (vuint64m4_t): Ditto.
19768 (vuint64m8_t): Ditto.
19769 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
19770 (DEF_RVV_FULL_V_U_OPS): Ditto.
19771 (check_required_extensions): Add vmulh support.
19772 (rvv_arg_type_info::get_tree_type): Ditto.
19773 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
19774 (enum rvv_base_type): Ditto.
19775 * config/riscv/riscv.opt: Add 'V' extension flag.
19776 * config/riscv/vector-iterators.md (su): New iterator.
19777 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
19778 (@pred_mulh<v_su><mode>_scalar): Ditto.
19779 (*pred_mulh<v_su><mode>_scalar): Ditto.
19780 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
19781
19782 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19783
19784 * config/riscv/iterators.md: Add sign_extend/zero_extend.
19785 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
19786 (BASE): Ditto.
19787 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
19788 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
19789 define.
19790 (vzext): Ditto.
19791 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
19792 for vsext/vzext support.
19793 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
19794 macro define.
19795 (DEF_RVV_QEXTI_OPS): Ditto.
19796 (DEF_RVV_OEXTI_OPS): Ditto.
19797 (DEF_RVV_WEXTU_OPS): Ditto.
19798 (DEF_RVV_QEXTU_OPS): Ditto.
19799 (DEF_RVV_OEXTU_OPS): Ditto.
19800 (vint16mf4_t): Ditto.
19801 (vint16mf2_t): Ditto.
19802 (vint16m1_t): Ditto.
19803 (vint16m2_t): Ditto.
19804 (vint16m4_t): Ditto.
19805 (vint16m8_t): Ditto.
19806 (vint32mf2_t): Ditto.
19807 (vint32m1_t): Ditto.
19808 (vint32m2_t): Ditto.
19809 (vint32m4_t): Ditto.
19810 (vint32m8_t): Ditto.
19811 (vint64m1_t): Ditto.
19812 (vint64m2_t): Ditto.
19813 (vint64m4_t): Ditto.
19814 (vint64m8_t): Ditto.
19815 (vuint16mf4_t): Ditto.
19816 (vuint16mf2_t): Ditto.
19817 (vuint16m1_t): Ditto.
19818 (vuint16m2_t): Ditto.
19819 (vuint16m4_t): Ditto.
19820 (vuint16m8_t): Ditto.
19821 (vuint32mf2_t): Ditto.
19822 (vuint32m1_t): Ditto.
19823 (vuint32m2_t): Ditto.
19824 (vuint32m4_t): Ditto.
19825 (vuint32m8_t): Ditto.
19826 (vuint64m1_t): Ditto.
19827 (vuint64m2_t): Ditto.
19828 (vuint64m4_t): Ditto.
19829 (vuint64m8_t): Ditto.
19830 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
19831 (DEF_RVV_QEXTI_OPS): Ditto.
19832 (DEF_RVV_OEXTI_OPS): Ditto.
19833 (DEF_RVV_WEXTU_OPS): Ditto.
19834 (DEF_RVV_QEXTU_OPS): Ditto.
19835 (DEF_RVV_OEXTU_OPS): Ditto.
19836 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
19837 support.
19838 (rvv_arg_type_info::get_tree_type): Ditto.
19839 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
19840 * config/riscv/vector-iterators.md (z): New attribute.
19841 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
19842 (@pred_<optab><mode>_vf4): Ditto.
19843 (@pred_<optab><mode>_vf8): Ditto.
19844
19845 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19846
19847 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
19848 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
19849 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
19850 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19851 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
19852 (vssub): Ditto.
19853 (vsaddu): Ditto.
19854 (vssubu): Ditto.
19855 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
19856 support.
19857 (sll.vv): Ditto.
19858 (%3,%v4): Ditto.
19859 (%3,%4): Ditto.
19860 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
19861 (@pred_<optab><mode>_scalar): New pattern.
19862 (*pred_<optab><mode>_scalar): New pattern.
19863 (*pred_<optab><mode>_extended_scalar): New pattern.
19864
19865 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19866
19867 * config/riscv/iterators.md: Add neg and not.
19868 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
19869 (BASE): Ditto.
19870 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19871 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
19872 into alu.
19873 (vsub): Ditto.
19874 (vand): Ditto.
19875 (vor): Ditto.
19876 (vxor): Ditto.
19877 (vsll): Ditto.
19878 (vsra): Ditto.
19879 (vsrl): Ditto.
19880 (vmin): Ditto.
19881 (vmax): Ditto.
19882 (vminu): Ditto.
19883 (vmaxu): Ditto.
19884 (vmul): Ditto.
19885 (vdiv): Ditto.
19886 (vrem): Ditto.
19887 (vdivu): Ditto.
19888 (vremu): Ditto.
19889 (vrsub): Ditto.
19890 (vneg): Ditto.
19891 (vnot): Ditto.
19892 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
19893 (struct alu_def): Ditto.
19894 (SHAPE): Ditto.
19895 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
19896 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
19897 * config/riscv/vector-iterators.md: New iterator.
19898 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
19899
19900 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19901
19902 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
19903
19904 2023-02-11 Jakub Jelinek <jakub@redhat.com>
19905
19906 PR ipa/108605
19907 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
19908 item->offset bit position is too large to be representable as
19909 unsigned int byte position.
19910
19911 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
19912
19913 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
19914
19915 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
19916
19917 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
19918 valid_combine only when ira_use_lra_p is true.
19919
19920 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
19921
19922 * params.opt (ira-simple-lra-insn-threshold): Add new param.
19923 * ira.cc (ira): Use the param to switch on simple LRA.
19924
19925 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
19926
19927 PR tree-optimization/108687
19928 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
19929 back to RFD_NONE mode for calculations.
19930 (ranger_cache::propagate_cache): Call the internal edge range API
19931 with RFD_READ_ONLY instead of changing the external routine.
19932
19933 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
19934
19935 PR tree-optimization/108520
19936 * gimple-range-infer.cc (check_assume_func): Invoke
19937 gimple_range_global directly instead using global_range_query.
19938 * value-query.cc (get_range_global): Add function context and
19939 avoid calling nonnull_arg_p if not cfun.
19940 (gimple_range_global): Add function context pointer.
19941 * value-query.h (imple_range_global): Add function context.
19942
19943 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
19944
19945 * config/riscv/constraints.md (Wdm): Adjust constraint.
19946 (Wbr): New constraint.
19947 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
19948 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
19949 (emit_vlmax_op): New function.
19950 (emit_nonvlmax_op): Ditto.
19951 (simm32_p): Ditto.
19952 (neg_simm5_p): Ditto.
19953 (has_vi_variant_p): Ditto.
19954 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
19955 (emit_vlmax_op): New function.
19956 (emit_nonvlmax_op): Ditto.
19957 (expand_const_vector): Adjust function.
19958 (legitimize_move): Ditto.
19959 (simm32_p): New function.
19960 (simm5_p): Ditto.
19961 (neg_simm5_p): Ditto.
19962 (has_vi_variant_p): Ditto.
19963 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
19964 (BASE): Ditto.
19965 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
19966 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
19967 unsigned cases.
19968 (vmax): Ditto.
19969 (vminu): Remove signed cases.
19970 (vmaxu): Ditto.
19971 (vdiv): Remove unsigned cases.
19972 (vrem): Ditto.
19973 (vdivu): Remove signed cases.
19974 (vremu): Ditto.
19975 (vadd): Adjust.
19976 (vsub): Ditto.
19977 (vrsub): New class.
19978 (vand): Adjust.
19979 (vor): Ditto.
19980 (vxor): Ditto.
19981 (vmul): Ditto.
19982 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
19983 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
19984 * config/riscv/vector-iterators.md: New iterators.
19985 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
19986 support.
19987 (@pred_<optab><mode>_scalar): New pattern.
19988 (@pred_sub<mode>_reverse_scalar): Ditto.
19989 (*pred_<optab><mode>_scalar): Ditto.
19990 (*pred_<optab><mode>_extended_scalar): Ditto.
19991 (*pred_sub<mode>_reverse_scalar): Ditto.
19992 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
19993
19994 2023-02-10 Richard Biener <rguenther@suse.de>
19995
19996 PR tree-optimization/108724
19997 * tree-vect-stmts.cc (vectorizable_operation): Avoid
19998 using word_mode vectors when vector lowering will
19999 decompose them to elementwise operations.
20000
20001 2023-02-10 Jakub Jelinek <jakub@redhat.com>
20002
20003 Revert:
20004 2023-02-09 Martin Liska <mliska@suse.cz>
20005
20006 PR target/100758
20007 * doc/extend.texi: Document that the function
20008 does not work correctly for old VIA processors.
20009
20010 2023-02-10 Andrew Pinski <apinski@marvell.com>
20011 Andrew Macleod <amacleod@redhat.com>
20012
20013 PR tree-optimization/108684
20014 * tree-ssa-dce.cc (simple_dce_from_worklist):
20015 Check all ssa names and not just non-vdef ones
20016 before accepting the inline-asm.
20017 Call unlink_stmt_vdef on the statement before
20018 removing it.
20019
20020 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
20021
20022 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
20023 * ira.cc (validate_equiv_mem): Check memref address variance.
20024 (no_equiv): Clear caller_save_p flag.
20025 (update_equiv_regs): Define caller save equivalence for
20026 valid_combine.
20027 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
20028 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
20029 call_save_p. Use caller save equivalence depending on the arg.
20030 (split_reg): Adjust the call.
20031
20032 2023-02-09 Jakub Jelinek <jakub@redhat.com>
20033
20034 PR target/100758
20035 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
20036 (cpu_indicator_init): Call get_available_features for all CPUs with
20037 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
20038 fixes.
20039
20040 2023-02-09 Jakub Jelinek <jakub@redhat.com>
20041
20042 PR tree-optimization/108688
20043 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
20044 of BIT_INSERT_EXPR extracting exactly all inserted bits even
20045 when without mode precision. Formatting fixes.
20046
20047 2023-02-09 Andrew Pinski <apinski@marvell.com>
20048
20049 PR tree-optimization/108688
20050 * match.pd (bit_field_ref [bit_insert]): Avoid generating
20051 BIT_FIELD_REFs of non-mode-precision integral operands.
20052
20053 2023-02-09 Martin Liska <mliska@suse.cz>
20054
20055 PR target/100758
20056 * doc/extend.texi: Document that the function
20057 does not work correctly for old VIA processors.
20058
20059 2023-02-09 Andreas Schwab <schwab@suse.de>
20060
20061 * lto-wrapper.cc (merge_and_complain): Handle
20062 -funwind-tables and -fasynchronous-unwind-tables.
20063 (append_compiler_options): Likewise.
20064
20065 2023-02-09 Richard Biener <rguenther@suse.de>
20066
20067 PR tree-optimization/26854
20068 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
20069 view around insert_updated_phi_nodes_for.
20070 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
20071 in tree view.
20072 (walk_aliased_vdefs_1): Likewise.
20073
20074 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
20075
20076 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
20077
20078 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
20079
20080 PR target/108505
20081 * config.gcc (tm_mlib_file): Define new variable.
20082
20083 2023-02-08 Jakub Jelinek <jakub@redhat.com>
20084
20085 PR tree-optimization/108692
20086 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
20087 widened_code which is different from code, don't call
20088 vect_look_through_possible_promotion but instead just check op is
20089 SSA_NAME with integral type for which vect_is_simple_use is true
20090 and call set_op on this_unprom.
20091
20092 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
20093
20094 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
20095 declaration.
20096 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
20097 definition.
20098 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
20099 to 'aarch_ra_sign_key'.
20100 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
20101 declaration.
20102 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
20103 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
20104 * config/arm/arm.opt: Define.
20105
20106 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
20107
20108 PR tree-optimization/108316
20109 * tree-vect-stmts.cc (get_load_store_type): When using
20110 internal functions for gather/scatter, make sure that the type
20111 of the offset argument is consistent with the offset vector type.
20112
20113 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
20114
20115 Revert:
20116 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
20117
20118 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
20119 * ira.cc (validate_equiv_mem): Check memref address variance.
20120 (update_equiv_regs): Define caller save equivalence for
20121 valid_combine.
20122 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
20123 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
20124 call_save_p. Use caller save equivalence depending on the arg.
20125 (split_reg): Adjust the call.
20126
20127 2023-02-08 Jakub Jelinek <jakub@redhat.com>
20128
20129 * tree.def (SAD_EXPR): Remove outdated comment about missing
20130 WIDEN_MINUS_EXPR.
20131
20132 2023-02-07 Marek Polacek <polacek@redhat.com>
20133
20134 * doc/invoke.texi: Update -fchar8_t documentation.
20135
20136 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
20137
20138 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
20139 * ira.cc (validate_equiv_mem): Check memref address variance.
20140 (update_equiv_regs): Define caller save equivalence for
20141 valid_combine.
20142 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
20143 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
20144 call_save_p. Use caller save equivalence depending on the arg.
20145 (split_reg): Adjust the call.
20146
20147 2023-02-07 Richard Biener <rguenther@suse.de>
20148
20149 PR tree-optimization/26854
20150 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
20151 instead of immediate uses.
20152
20153 2023-02-07 Jakub Jelinek <jakub@redhat.com>
20154
20155 PR tree-optimization/106923
20156 * ipa-split.cc (execute_split_functions): Don't split returns_twice
20157 functions.
20158
20159 2023-02-07 Jakub Jelinek <jakub@redhat.com>
20160
20161 PR tree-optimization/106433
20162 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
20163 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
20164
20165 2023-02-07 Jan Hubicka <jh@suse.cz>
20166
20167 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
20168 for znver4.
20169
20170 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
20171
20172 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
20173 (process_asm): Create a constructor for GCN_STACK_SIZE.
20174 (main): Parse the -mstack-size option.
20175
20176 2023-02-06 Alex Coplan <alex.coplan@arm.com>
20177
20178 PR target/104921
20179 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
20180 Use correct constraint for operand 3.
20181
20182 2023-02-06 Martin Jambor <mjambor@suse.cz>
20183
20184 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
20185
20186 2023-02-06 Xi Ruoyao <xry111@xry111.site>
20187
20188 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
20189 New define_int_iterator.
20190 (bytepick_d_ashift_amount): Likewise.
20191 (bytepick_imm): New define_int_attr.
20192 (bytepick_w_lshiftrt_amount): Likewise.
20193 (bytepick_d_lshiftrt_amount): Likewise.
20194 (bytepick_w_<bytepick_imm>): New define_insn template.
20195 (bytepick_w_<bytepick_imm>_extend): Likewise.
20196 (bytepick_d_<bytepick_imm>): Likewise.
20197 (bytepick_w): Remove unused define_insn.
20198 (bytepick_d): Likewise.
20199 (UNSPEC_BYTEPICK_W): Remove unused unspec.
20200 (UNSPEC_BYTEPICK_D): Likewise.
20201 * config/loongarch/predicates.md (const_0_to_3_operand):
20202 Remove unused define_predicate.
20203 (const_0_to_7_operand): Likewise.
20204
20205 2023-02-06 Jakub Jelinek <jakub@redhat.com>
20206
20207 PR tree-optimization/108655
20208 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
20209 or -fsanitize=unreachable -fsanitize-trap=unreachable return
20210 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
20211
20212 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
20213
20214 * doc/install.texi (Specific): Remove PW32.
20215
20216 2023-02-03 Jakub Jelinek <jakub@redhat.com>
20217
20218 PR tree-optimization/108647
20219 * range-op.cc (operator_equal::op1_range,
20220 operator_not_equal::op1_range): Don't test op2 bound
20221 equality if op2.undefined_p (), instead set_varying.
20222 (operator_lt::op1_range, operator_le::op1_range,
20223 operator_gt::op1_range, operator_ge::op1_range): Return false if
20224 op2.undefined_p ().
20225 (operator_lt::op2_range, operator_le::op2_range,
20226 operator_gt::op2_range, operator_ge::op2_range): Return false if
20227 op1.undefined_p ().
20228
20229 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
20230
20231 PR tree-optimization/108639
20232 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
20233 widest_int.
20234 (irange::operator==): Same.
20235
20236 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
20237
20238 PR tree-optimization/108647
20239 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
20240 (foperator_lt::op2_range): Same.
20241 (foperator_le::op1_range): Same.
20242 (foperator_le::op2_range): Same.
20243 (foperator_gt::op1_range): Same.
20244 (foperator_gt::op2_range): Same.
20245 (foperator_ge::op1_range): Same.
20246 (foperator_ge::op2_range): Same.
20247 (foperator_unordered_lt::op1_range): Same.
20248 (foperator_unordered_lt::op2_range): Same.
20249 (foperator_unordered_le::op1_range): Same.
20250 (foperator_unordered_le::op2_range): Same.
20251 (foperator_unordered_gt::op1_range): Same.
20252 (foperator_unordered_gt::op2_range): Same.
20253 (foperator_unordered_ge::op1_range): Same.
20254 (foperator_unordered_ge::op2_range): Same.
20255
20256 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
20257
20258 PR tree-optimization/107570
20259 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
20260
20261 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
20262
20263 * doc/gm2.texi (Internals): Remove from menu.
20264 (Using): Comment out ifnohtml conditional.
20265 (Documentation): Use gcc url.
20266 (License): Node simplified.
20267 (Copying): New node. Include gpl_v3_without_node.
20268 (Contributing): Node simplified.
20269 (Internals): Commented out.
20270 (Libraries): Node simplified.
20271 (Indices): Ditto.
20272 (Contents): Ditto.
20273 (Functions): Ditto.
20274
20275 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
20276
20277 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
20278 attribute.
20279 (mve_vqshluq_m_n_s<mode>): Likewise.
20280 (mve_vshlq_m_<supf><mode>): Likewise.
20281 (mve_vsriq_m_n_<supf><mode>): Likewise.
20282 (mve_vsubq_m_<supf><mode>): Likewise.
20283
20284 2023-02-03 Martin Jambor <mjambor@suse.cz>
20285
20286 PR ipa/108384
20287 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
20288 when comparing to an IPA-CP value.
20289 (dump_list_of_param_indices): New function.
20290 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
20291 Dump removed candidates using dump_list_of_param_indices.
20292 * ipa-param-manipulation.cc
20293 (ipa_param_body_adjustments::modify_expression): Add assert checking
20294 sizes of a VIEW_CONVERT_EXPR will match.
20295 (ipa_param_body_adjustments::modify_assignment): Likewise.
20296
20297 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
20298
20299 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
20300 * config/riscv/riscv.cc: Ditto.
20301
20302 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20303
20304 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
20305 (sll.vv): Ditto.
20306 (%3,%4): Ditto.
20307 (%3,%v4): Ditto.
20308 * config/riscv/vector.md: Ditto.
20309
20310 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20311
20312 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
20313 * config/riscv/riscv-vector-builtins-bases.cc: New class.
20314 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
20315 (vsra): Ditto.
20316 (vsrl): Ditto.
20317 * config/riscv/riscv-vector-builtins.cc: Ditto.
20318 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
20319
20320 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
20321
20322 * toplev.cc (toplev::main): Only print the version information header
20323 from toplevel main().
20324
20325 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
20326
20327 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
20328 cond_{ashl|ashr|lshr}
20329
20330 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
20331
20332 PR rtl-optimization/108086
20333 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
20334 Adjust size-related commentary accordingly.
20335
20336 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
20337
20338 PR rtl-optimization/108508
20339 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
20340 the splay tree search gives the first clobber in the second group,
20341 make sure that the root of the first clobber group is updated
20342 correctly. Enter the new clobber group into the definition splay
20343 tree.
20344
20345 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
20346
20347 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
20348 Fix finding best match score.
20349
20350 2023-02-02 Jakub Jelinek <jakub@redhat.com>
20351
20352 PR debug/106746
20353 PR rtl-optimization/108463
20354 PR target/108484
20355 * cselib.cc (cselib_current_insn): Move declaration earlier.
20356 (cselib_hasher::equal): For debug only locs, temporarily override
20357 cselib_current_insn to their l->setting_insn for the
20358 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
20359 promote some debug locs.
20360 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
20361 when using cselib call cselib_lookup_from_insn on the address but
20362 don't substitute it.
20363
20364 2023-02-02 Richard Biener <rguenther@suse.de>
20365
20366 PR middle-end/108625
20367 * genmatch.cc (expr::gen_transform): Also disallow resimplification
20368 from pushing to lseq with force_leaf.
20369 (dt_simplify::gen_1): Likewise.
20370
20371 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
20372
20373 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
20374 (struct kernargs): Replace the common content with kernargs_abi.
20375 (struct heap): Delete.
20376 (main): Read GCN_STACK_SIZE envvar.
20377 Allocate space for the device stacks.
20378 Write the new kernargs fields.
20379 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
20380 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
20381 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
20382 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
20383 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
20384 Set up the stacks from the values in the kernargs, not private.
20385 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
20386 (gcn_hsa_declare_function_name): Turn off the private segment.
20387 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
20388 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
20389 * config/gcn/gcn.opt (mstack-size): Change the description.
20390
20391 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
20392
20393 PR target/108443
20394 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
20395 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
20396 addressing MVE predicate modes.
20397 (mve_bool_vec_to_const): Change to represent correct MVE predicate
20398 format.
20399 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
20400 modes.
20401 (arm_vector_mode_supported_p): Likewise.
20402 (arm_mode_to_pred_mode): Add V2QI.
20403 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
20404 qualifier.
20405 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
20406 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
20407 (v2qi_UP): New macro.
20408 (v4bi_UP): New macro.
20409 (v8bi_UP): New macro.
20410 (v16bi_UP): New macro.
20411 (arm_expand_builtin_args): Make it able to expand the new predicate
20412 modes.
20413 * config/arm/arm-modes.def (V2QI): New mode.
20414 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
20415 Pred4x4_t): Remove unused predicate builtin types.
20416 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
20417 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
20418 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
20419 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
20420 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
20421 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
20422 of MODE_VECTOR_BOOL.
20423 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
20424 (MVE_VPRED): Likewise.
20425 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
20426 (MVE_vctp): New mode attribute.
20427 (mode1): Remove.
20428 (VCTPQ): Remove.
20429 (VCTPQ_M): Remove.
20430 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
20431 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
20432 attributes.
20433 (mve_vpnothi): Rename this...
20434 (mve_vpnotv16bi): ... to this.
20435 (mve_vctp<mode1>q_mhi): Rename this...
20436 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
20437 (mve_vldrdq_gather_base_z_<supf>v2di,
20438 mve_vldrdq_gather_offset_z_<supf>v2di,
20439 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
20440 mve_vstrdq_scatter_base_p_<supf>v2di,
20441 mve_vstrdq_scatter_offset_p_<supf>v2di,
20442 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
20443 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
20444 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
20445 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
20446 mve_vldrdq_gather_base_wb_z_<supf>v2di,
20447 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
20448 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
20449 predicates.
20450 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
20451 these...
20452 (VCTP): ... with this.
20453 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
20454 (VCTP_M): ... with this.
20455 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
20456 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
20457
20458 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
20459
20460 PR target/107674
20461 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
20462 (arm_modes_tieable_p): Make MVE predicate modes tieable.
20463 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
20464 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
20465 simplify_subreg to simplify subregs where the outermode is not scalar.
20466
20467 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
20468
20469 PR target/107674
20470 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
20471 new qualifiers parameter and use unsigned short type for MVE predicate.
20472 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
20473 parameter.
20474 (arm_init_crypto_builtins): Likewise.
20475
20476 2023-02-02 Jakub Jelinek <jakub@redhat.com>
20477
20478 PR ipa/107300
20479 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
20480 * internal-fn.def (TRAP): Remove.
20481 * internal-fn.cc (expand_TRAP): Remove.
20482 * tree.cc (build_common_builtin_nodes): Define
20483 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
20484 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
20485 instead of BUILT_IN_TRAP.
20486 * gimple.cc (gimple_build_builtin_unreachable): Remove
20487 emitting internal function for BUILT_IN_TRAP.
20488 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
20489 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
20490 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
20491 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
20492 BUILT_IN_UNREACHABLE_TRAP.
20493 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
20494 * tree-cfg.cc (verify_gimple_call,
20495 pass_warn_function_return::execute): Likewise.
20496 * attribs.cc (decl_attributes): Don't report exclusions on
20497 BUILT_IN_UNREACHABLE_TRAP either.
20498
20499 2023-02-02 liuhongt <hongtao.liu@intel.com>
20500
20501 PR tree-optimization/108601
20502 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
20503 * tree-vect-loop.cc
20504 (vectorizable_nonlinear_induction): Remove
20505 vect_can_peel_nonlinear_iv_p.
20506 (vect_can_peel_nonlinear_iv_p): Don't peel
20507 nonlinear iv(mult or shift) for epilog when vf is not
20508 constant and moved the defination to ..
20509 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
20510 .. Here.
20511
20512 2023-02-02 Jakub Jelinek <jakub@redhat.com>
20513
20514 PR middle-end/108435
20515 * tree-nested.cc (convert_nonlocal_omp_clauses)
20516 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
20517 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
20518 before calling declare_vars.
20519 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
20520 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
20521 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
20522 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
20523
20524 2023-02-01 Tamar Christina <tamar.christina@arm.com>
20525
20526 * common/config/aarch64/aarch64-common.cc
20527 (struct aarch64_option_extension): Add native_detect and document struct
20528 a bit more.
20529 (all_extensions): Set new field native_detect.
20530 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
20531 unused struct.
20532
20533 2023-02-01 Martin Liska <mliska@suse.cz>
20534
20535 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
20536 value if set.
20537
20538 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
20539
20540 PR tree-optimization/108356
20541 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
20542 do a search of the DOM tree for a range.
20543
20544 2023-02-01 Martin Liska <mliska@suse.cz>
20545
20546 PR ipa/108509
20547 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
20548 ony non-null values.
20549 * ipa.cc (walk_polymorphic_call_targets): Likewise.
20550
20551 2023-02-01 Martin Liska <mliska@suse.cz>
20552
20553 PR driver/108572
20554 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
20555 -gz=zstd.
20556
20557 2023-02-01 Jakub Jelinek <jakub@redhat.com>
20558
20559 PR debug/108573
20560 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
20561 subregs in DEBUG_INSNs.
20562
20563 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
20564
20565 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
20566
20567 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
20568
20569 * config/s390/s390.cc (s390_restore_gpr_p): New function.
20570 (s390_preserve_gpr_arg_in_range_p): New function.
20571 (s390_preserve_gpr_arg_p): New function.
20572 (s390_preserve_fpr_arg_p): New function.
20573 (s390_register_info_stdarg_fpr): Rename to ...
20574 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
20575 (s390_register_info_stdarg_gpr): Rename to ...
20576 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
20577 (s390_register_info): Use the renamed functions above.
20578 (s390_optimize_register_info): Likewise.
20579 (save_fpr): Generate CFI for -mpreserve-args.
20580 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
20581 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
20582 (s390_optimize_prologue): Likewise.
20583 * config/s390/s390.opt: New option -mpreserve-args
20584
20585 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
20586
20587 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
20588 (restore_gprs): Likewise.
20589 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
20590 frame pointer if a frame-pointer is used.
20591 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
20592 * config/s390/s390.md (stack_tie): Add a register operand and
20593 rename to ...
20594 (@stack_tie<mode>): ... this.
20595
20596 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
20597
20598 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
20599 EMIT_CFI parameter.
20600 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
20601 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
20602
20603 2023-02-01 Richard Biener <rguenther@suse.de>
20604
20605 PR middle-end/108500
20606 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
20607 with tree traversal algorithm.
20608
20609 2023-02-01 Jason Merrill <jason@redhat.com>
20610
20611 * doc/invoke.texi: Document -Wno-changes-meaning.
20612
20613 2023-02-01 David Malcolm <dmalcolm@redhat.com>
20614
20615 * doc/invoke.texi (Static Analyzer Options): Add notes about
20616 limitations of -fanalyzer.
20617
20618 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20619
20620 * config/riscv/constraints.md (vj): New.
20621 (vk): Ditto
20622 * config/riscv/iterators.md: Add more opcode.
20623 * config/riscv/predicates.md (vector_arith_operand): New.
20624 (vector_neg_arith_operand): New.
20625 (vector_shift_operand): New.
20626 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
20627 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
20628 (vsub): Ditto.
20629 (vand): Ditto.
20630 (vor): Ditto.
20631 (vxor): Ditto.
20632 (vsll): Ditto.
20633 (vsra): Ditto.
20634 (vsrl): Ditto.
20635 (vmin): Ditto.
20636 (vmax): Ditto.
20637 (vminu): Ditto.
20638 (vmaxu): Ditto.
20639 (vmul): Ditto.
20640 (vdiv): Ditto.
20641 (vrem): Ditto.
20642 (vdivu): Ditto.
20643 (vremu): Ditto.
20644 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
20645 (vsub): Ditto.
20646 (vand): Ditto.
20647 (vor): Ditto.
20648 (vxor): Ditto.
20649 (vsll): Ditto.
20650 (vsra): Ditto.
20651 (vsrl): Ditto.
20652 (vmin): Ditto.
20653 (vmax): Ditto.
20654 (vminu): Ditto.
20655 (vmaxu): Ditto.
20656 (vmul): Ditto.
20657 (vdiv): Ditto.
20658 (vrem): Ditto.
20659 (vdivu): Ditto.
20660 (vremu): Ditto.
20661 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
20662 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
20663 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
20664 (DEF_RVV_U_OPS): New.
20665 (rvv_arg_type_info::get_base_vector_type): Handle
20666 RVV_BASE_shift_vector.
20667 (rvv_arg_type_info::get_tree_type): Ditto.
20668 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
20669 RVV_BASE_shift_vector.
20670 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
20671 * config/riscv/vector-iterators.md: Handle more opcode.
20672 * config/riscv/vector.md (@pred_<optab><mode>): New.
20673
20674 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
20675
20676 PR target/108589
20677 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
20678 REG_P on SET_DEST.
20679
20680 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
20681
20682 PR tree-optimization/108608
20683 * tree-vect-loop.cc (vect_transform_reduction): Handle single
20684 def-use cycles that involve function calls rather than tree codes.
20685
20686 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
20687
20688 PR tree-optimization/108385
20689 * gimple-range-gori.cc (gori_compute::compute_operand_range):
20690 Allow VARYING computations to continue if there is a relation.
20691 * range-op.cc (pointer_plus_operator::op2_range): New.
20692
20693 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
20694
20695 PR tree-optimization/108359
20696 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
20697 (range_operator::fold_range): If op1 is equivalent to op2 then
20698 invoke new fold_in_parts_equiv to operate on sub-components.
20699 * range-op.h (wi_fold_in_parts_equiv): New prototype.
20700
20701 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
20702
20703 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
20704 not abort calculations if there is a valid relation available.
20705 (gori_compute::refine_using_relation): Pass correct relation trio.
20706 (gori_compute::compute_operand1_range): Create trio and use it.
20707 (gori_compute::compute_operand2_range): Ditto.
20708 * range-op.cc (operator_plus::op1_range): Use correct trio member.
20709 (operator_minus::op1_range): Use correct trio member.
20710 * value-relation.cc (value_relation::create_trio): New.
20711 * value-relation.h (value_relation::create_trio): New prototype.
20712
20713 2023-01-31 Jakub Jelinek <jakub@redhat.com>
20714
20715 PR target/108599
20716 * config/i386/i386-expand.cc
20717 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
20718 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
20719 equal to bitsize of mode.
20720
20721 2023-01-31 Jakub Jelinek <jakub@redhat.com>
20722
20723 PR rtl-optimization/108596
20724 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
20725 ends with asm goto and has a crossing fallthrough edge to the same bb
20726 that contains at least one of its labels by restoring EDGE_CROSSING
20727 flag even on possible edge from cur_bb to new_bb successor.
20728
20729 2023-01-31 Jakub Jelinek <jakub@redhat.com>
20730
20731 PR c++/105593
20732 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
20733 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
20734 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
20735 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
20736 uninitialized automatic variable __W.
20737
20738 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
20739
20740 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
20741
20742 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20743
20744 * config/riscv/riscv-protos.h (get_vector_mode): New function.
20745 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
20746 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
20747 (class loadstore): Adjust for indexed loads/stores support.
20748 (BASE): Ditto.
20749 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
20750 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
20751 (vluxei16): Ditto.
20752 (vluxei32): Ditto.
20753 (vluxei64): Ditto.
20754 (vloxei8): Ditto.
20755 (vloxei16): Ditto.
20756 (vloxei32): Ditto.
20757 (vloxei64): Ditto.
20758 (vsuxei8): Ditto.
20759 (vsuxei16): Ditto.
20760 (vsuxei32): Ditto.
20761 (vsuxei64): Ditto.
20762 (vsoxei8): Ditto.
20763 (vsoxei16): Ditto.
20764 (vsoxei32): Ditto.
20765 (vsoxei64): Ditto.
20766 * config/riscv/riscv-vector-builtins-shapes.cc
20767 (struct indexed_loadstore_def): New class.
20768 (SHAPE): Ditto.
20769 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
20770 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
20771 for indexed loads/stores support.
20772 (check_required_extensions): Ditto.
20773 (rvv_arg_type_info::get_base_vector_type): New function.
20774 (rvv_arg_type_info::get_tree_type): Ditto.
20775 (function_builder::add_unique_function): Adjust for indexed loads/stores
20776 support.
20777 (function_expander::use_exact_insn): New function.
20778 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
20779 indexed loads/stores support.
20780 (struct rvv_arg_type_info): Ditto.
20781 (function_expander::index_mode): New function.
20782 (function_base::apply_tail_policy_p): Ditto.
20783 (function_base::apply_mask_policy_p): Ditto.
20784 * config/riscv/vector-iterators.md (unspec): New unspec.
20785 * config/riscv/vector.md (unspec): Ditto.
20786 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
20787 pattern.
20788 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
20789 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
20790 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
20791 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
20792 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
20793 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
20794 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
20795 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
20796 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
20797 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
20798 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
20799 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
20800 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
20801
20802 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
20803
20804 * config.gcc: Recognize x86_64-*-gnu* targets and include
20805 i386/gnu64.h.
20806 * config/i386/gnu64.h: Define configuration for new target
20807 including ld.so location.
20808
20809 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
20810
20811 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
20812 ampere1a to include SM4.
20813
20814 2023-01-30 Andrew Pinski <apinski@marvell.com>
20815
20816 PR tree-optimization/108582
20817 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
20818 for middlebb to have no phi nodes.
20819
20820 2023-01-30 Richard Biener <rguenther@suse.de>
20821
20822 PR tree-optimization/108574
20823 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
20824 sameval and def, ignore the equivalence if there's the
20825 danger of oscillating between two values.
20826
20827 2023-01-30 Andreas Schwab <schwab@suse.de>
20828
20829 * common/config/riscv/riscv-common.cc
20830 (riscv_option_optimization_table)
20831 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
20832 -fasynchronous-unwind-tables and -funwind-tables.
20833 * config.gcc (riscv*-*-linux*): Define
20834 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
20835
20836 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
20837
20838 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
20839 value of includedir.
20840
20841 2023-01-30 Richard Biener <rguenther@suse.de>
20842
20843 PR ipa/108511
20844 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
20845 assert.
20846
20847 2023-01-30 liuhongt <hongtao.liu@intel.com>
20848
20849 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
20850 * doc/invoke.texi: Ditto.
20851
20852 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
20853
20854 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
20855 (stmt_may_terminate_function_p): If assuming return or EH
20856 volatile asm is safe.
20857 (find_always_executed_bbs): Fix handling of terminating BBS and
20858 infinite loops; add debug output.
20859 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
20860
20861 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
20862
20863 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
20864 off-by-one in checking the permissible shift-amount.
20865
20866 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20867
20868 * doc/extend.texi (Named Address Spaces): Update link to the
20869 AVR-Libc manual.
20870
20871 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20872
20873 * doc/standards.texi (Standards): Fix markup.
20874
20875 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20876
20877 * doc/standards.texi (Standards): Update link to Objective-C book.
20878
20879 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20880
20881 * doc/invoke.texi (Instrumentation Options): Update reference to
20882 AddressSanitizer.
20883
20884 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
20885
20886 * doc/standards.texi: Update Go1 link.
20887
20888 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20889
20890 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
20891 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
20892 Support vlse/vsse.
20893 (BASE): Ditto.
20894 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
20895 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
20896 (vsse): New class.
20897 * config/riscv/riscv-vector-builtins.cc
20898 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
20899 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
20900 (@pred_strided_store<mode>): Ditto.
20901
20902 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20903
20904 * config/riscv/vector.md (tail_policy_op_idx): Remove.
20905 (mask_policy_op_idx): Remove.
20906 (avl_type_op_idx): Remove.
20907
20908 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
20909
20910 PR tree-optimization/96373
20911 * tree.h (sign_mask_for): Declare.
20912 * tree.cc (sign_mask_for): New function.
20913 (signed_or_unsigned_type_for): For vector types, try to use the
20914 related_int_vector_mode.
20915 * genmatch.cc (commutative_op): Handle conditional internal functions.
20916 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
20917
20918 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
20919
20920 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
20921 Use the likely minimum VF when bounding the denominators to
20922 the estimated number of iterations.
20923
20924 2023-01-27 Richard Biener <rguenther@suse.de>
20925
20926 PR target/55522
20927 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
20928 and -Ofast FP environment side-effects.
20929
20930 2023-01-27 Richard Biener <rguenther@suse.de>
20931
20932 PR target/55522
20933 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
20934 Don't add crtfastmath.o for -shared.
20935
20936 2023-01-27 Richard Biener <rguenther@suse.de>
20937
20938 PR target/55522
20939 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
20940 for -shared.
20941
20942 2023-01-27 Richard Biener <rguenther@suse.de>
20943
20944 PR target/55522
20945 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
20946 crtfastmath.o for -shared.
20947
20948 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
20949
20950 PR tree-optimization/108306
20951 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
20952 varying for shifts that are always out of void range.
20953 (operator_rshift::fold_range): Return [0, 0] not
20954 varying for shifts that are always out of void range.
20955
20956 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
20957
20958 PR tree-optimization/108447
20959 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
20960 Do not attempt to fold HONOR_NAN types.
20961
20962 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20963
20964 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
20965 Remove _m suffix for "vop_m" C++ overloaded API name.
20966
20967 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20968
20969 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
20970 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
20971 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
20972 (vsm): Ditto.
20973 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
20974 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
20975 (vbool64_t): Ditto.
20976 (vbool32_t): Ditto.
20977 (vbool16_t): Ditto.
20978 (vbool8_t): Ditto.
20979 (vbool4_t): Ditto.
20980 (vbool2_t): Ditto.
20981 (vbool1_t): Ditto.
20982 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
20983 (rvv_arg_type_info::get_tree_type): Ditto.
20984 (function_expander::use_contiguous_load_insn): Ditto.
20985 * config/riscv/vector.md (@pred_store<mode>): Ditto.
20986
20987 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
20988
20989 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
20990 (vsetvl_discard_result_insn_p): New function.
20991 (reg_killed_by_bb_p): rename to find_reg_killed_by.
20992 (find_reg_killed_by): New name.
20993 (get_vl): allow it to be called by more functions.
20994 (has_vsetvl_killed_avl_p): Add condition.
20995 (get_avl): allow it to be called by more functions.
20996 (insn_should_be_added_p): New function.
20997 (get_all_nonphi_defs): Refine function.
20998 (get_all_sets): Ditto.
20999 (get_same_bb_set): New function.
21000 (any_insn_in_bb_p): Ditto.
21001 (any_set_in_bb_p): Ditto.
21002 (get_vl_vtype_info): Add VLMAX forward optimization.
21003 (source_equal_p): Fix issues.
21004 (extract_single_source): Refine.
21005 (avl_info::multiple_source_equal_p): New function.
21006 (avl_info::operator==): Adjust for final version.
21007 (vl_vtype_info::operator==): Ditto.
21008 (vl_vtype_info::same_avl_p): Ditto.
21009 (vector_insn_info::parse_insn): Ditto.
21010 (vector_insn_info::available_p): New function.
21011 (vector_insn_info::merge): Adjust for final version.
21012 (vector_insn_info::dump): Add hard_empty.
21013 (pass_vsetvl::hard_empty_block_p): New function.
21014 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
21015 (pass_vsetvl::forward_demand_fusion): Ditto.
21016 (pass_vsetvl::demand_fusion): Ditto.
21017 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
21018 (pass_vsetvl::compute_local_properties): Adjust for final version.
21019 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
21020 (pass_vsetvl::refine_vsetvls): Ditto.
21021 (pass_vsetvl::commit_vsetvls): Ditto.
21022 (pass_vsetvl::propagate_avl): New function.
21023 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
21024 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
21025
21026 2023-01-27 Jakub Jelinek <jakub@redhat.com>
21027
21028 PR other/108560
21029 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
21030 from size_t to int.
21031
21032 2023-01-27 Jakub Jelinek <jakub@redhat.com>
21033
21034 PR ipa/106061
21035 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
21036 redirection of calls to __builtin_trap in addition to redirection
21037 to __builtin_unreachable.
21038
21039 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21040
21041 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
21042
21043 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21044
21045 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
21046 (emit_vsetvl_insn): Ditto.
21047
21048 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21049
21050 * config/riscv/vector.md: Fix constraints.
21051
21052 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21053
21054 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
21055
21056 2023-01-27 Patrick Palka <ppalka@redhat.com>
21057 Jakub Jelinek <jakub@redhat.com>
21058
21059 * tree-core.h (tree_code_type, tree_code_length): For
21060 C++17 and later, add inline keyword, otherwise don't define
21061 the arrays, but declare extern arrays.
21062 * tree.cc (tree_code_type, tree_code_length): Define these
21063 arrays for C++14 and older.
21064
21065 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21066
21067 * config/riscv/riscv-vsetvl.h: Change it into public.
21068
21069 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21070
21071 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
21072 pass.
21073
21074 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21075
21076 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
21077
21078 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21079
21080 * config/riscv/vector.md: Fix incorrect attributes.
21081
21082 2023-01-27 Richard Biener <rguenther@suse.de>
21083
21084 PR target/55522
21085 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
21086 Don't add crtfastmath.o for -shared.
21087
21088 2023-01-27 Alexandre Oliva <oliva@gnu.org>
21089
21090 * doc/options.texi (option, RejectNegative): Mention that
21091 -g-started options are also implicitly negatable.
21092
21093 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
21094
21095 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
21096 Use get_typenode_from_name to get fixed-width integer type
21097 nodes.
21098 * config/riscv/riscv-vector-builtins.def: Update define with
21099 fixed-width integer type nodes.
21100
21101 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21102
21103 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
21104 (real_insn_and_same_bb_p): New function.
21105 (same_bb_and_after_or_equal_p): Remove it.
21106 (before_p): New function.
21107 (reg_killed_by_bb_p): Ditto.
21108 (has_vsetvl_killed_avl_p): Ditto.
21109 (get_vl): Move location so that we can call it.
21110 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
21111 (available_occurrence_p): Ditto.
21112 (dominate_probability_p): Remove it.
21113 (can_backward_propagate_p): Remove it.
21114 (get_all_nonphi_defs): New function.
21115 (get_all_predecessors): Ditto.
21116 (any_insn_in_bb_p): Ditto.
21117 (insert_vsetvl): Adjust AVL REG.
21118 (source_equal_p): New function.
21119 (extract_single_source): Ditto.
21120 (avl_info::single_source_equal_p): Ditto.
21121 (avl_info::operator==): Adjust for AVL=REG.
21122 (vl_vtype_info::same_avl_p): Ditto.
21123 (vector_insn_info::set_demand_info): Remove it.
21124 (vector_insn_info::compatible_p): Adjust for AVL=REG.
21125 (vector_insn_info::compatible_avl_p): New function.
21126 (vector_insn_info::merge): Adjust AVL=REG.
21127 (vector_insn_info::dump): Ditto.
21128 (pass_vsetvl::merge_successors): Remove it.
21129 (enum fusion_type): New enum.
21130 (pass_vsetvl::get_backward_fusion_type): New function.
21131 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
21132 (pass_vsetvl::forward_demand_fusion): Ditto.
21133 (pass_vsetvl::demand_fusion): Ditto.
21134 (pass_vsetvl::prune_expressions): Ditto.
21135 (pass_vsetvl::compute_local_properties): Ditto.
21136 (pass_vsetvl::cleanup_vsetvls): Ditto.
21137 (pass_vsetvl::commit_vsetvls): Ditto.
21138 (pass_vsetvl::init): Ditto.
21139 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
21140 (enum merge_type): New enum.
21141
21142 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21143
21144 * config/riscv/riscv-vsetvl.cc
21145 (vector_infos_manager::vector_infos_manager): Add probability.
21146 (vector_infos_manager::dump): Ditto.
21147 (pass_vsetvl::compute_probabilities): Ditto.
21148 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
21149
21150 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21151
21152 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
21153 (vector_insn_info::merge): Ditto.
21154 (vector_insn_info::dump): Ditto.
21155 (pass_vsetvl::merge_successors): Ditto.
21156 (pass_vsetvl::backward_demand_fusion): Ditto.
21157 (pass_vsetvl::forward_demand_fusion): Ditto.
21158 (pass_vsetvl::commit_vsetvls): Ditto.
21159 * config/riscv/riscv-vsetvl.h: Ditto.
21160
21161 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21162
21163 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
21164 rinsn.
21165
21166 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21167
21168 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
21169
21170 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21171
21172 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
21173 Add pre-check for redundant flow.
21174
21175 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21176
21177 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
21178 (vector_infos_manager::free_bitmap_vectors): Ditto.
21179 (pass_vsetvl::pre_vsetvl): Adjust codes.
21180 * config/riscv/riscv-vsetvl.h: New function declaration.
21181
21182 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21183
21184 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
21185 (vector_insn_info::set_demand_info): New function.
21186 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
21187 (pass_vsetvl::merge_successors): Ditto.
21188 (pass_vsetvl::compute_global_backward_infos): Ditto.
21189 (pass_vsetvl::backward_demand_fusion): Ditto.
21190 (pass_vsetvl::forward_demand_fusion): Ditto.
21191 (pass_vsetvl::demand_fusion): New function.
21192 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
21193 * config/riscv/riscv-vsetvl.h: New function declaration.
21194
21195 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21196
21197 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
21198
21199 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21200
21201 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
21202 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
21203
21204 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21205
21206 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
21207 (backward_propagate_worthwhile_p): Fix non-worthwhile.
21208
21209 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21210
21211 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
21212
21213 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21214
21215 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
21216 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
21217 (pass_vsetvl::commit_vsetvls): Ditto.
21218 * config/riscv/riscv-vsetvl.h: New function declaration.
21219
21220 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21221
21222 * config/riscv/vector.md:
21223
21224 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21225
21226 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
21227 pred_store for vse.
21228 * config/riscv/riscv-vector-builtins.cc
21229 (function_expander::add_mem_operand): Refine function.
21230 (function_expander::use_contiguous_load_insn): Adjust new
21231 implementation.
21232 (function_expander::use_contiguous_store_insn): Ditto.
21233 * config/riscv/riscv-vector-builtins.h: Refine function.
21234 * config/riscv/vector.md (@pred_store<mode>): New pattern.
21235
21236 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
21237
21238 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
21239
21240 2023-01-26 Marek Polacek <polacek@redhat.com>
21241
21242 PR middle-end/108543
21243 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
21244 if it was previously set.
21245
21246 2023-01-26 Jakub Jelinek <jakub@redhat.com>
21247
21248 PR tree-optimization/108540
21249 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
21250 are singletons, use range_true even if op1 != op2
21251 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
21252 even if intersection of the ranges is empty and one has
21253 zero low bound and another zero high bound, use range_true_and_false
21254 rather than range_false.
21255 (foperator_not_equal::fold_range): If both op1 and op2
21256 are singletons, use range_false even if op1 != op2
21257 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
21258 even if intersection of the ranges is empty and one has
21259 zero low bound and another zero high bound, use range_true_and_false
21260 rather than range_true.
21261
21262 2023-01-26 Jakub Jelinek <jakub@redhat.com>
21263
21264 * value-relation.cc (kind_string): Add const.
21265 (rr_negate_table, rr_swap_table, rr_intersect_table,
21266 rr_union_table, rr_transitive_table): Add static const, change
21267 element type from relation_kind to unsigned char.
21268 (relation_negate, relation_swap, relation_intersect, relation_union,
21269 relation_transitive): Cast rr_*_table element to relation_kind.
21270 (relation_to_code): Add static const.
21271 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
21272
21273 2023-01-26 Richard Biener <rguenther@suse.de>
21274
21275 PR tree-optimization/108547
21276 * gimple-predicate-analysis.cc (value_sat_pred_p):
21277 Use widest_int.
21278
21279 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
21280
21281 PR tree-optimization/108522
21282 * tree-object-size.cc (compute_object_offset): Make EXPR
21283 argument non-const. Call component_ref_field_offset.
21284
21285 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21286
21287 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
21288 FEATURE_STRING field.
21289
21290 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
21291
21292 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
21293
21294 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
21295
21296 PR modula2/102343
21297 PR modula2/108182
21298 * gcc.cc: Provide default specs for Modula-2 so that when the
21299 language is not built-in better diagnostics are emitted for
21300 attempts to use .mod or .m2i file extensions.
21301
21302 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21303
21304 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
21305
21306 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21307
21308 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
21309
21310 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21311
21312 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
21313 Fix spacing.
21314
21315 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21316
21317 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
21318
21319 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
21320
21321 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
21322
21323 2023-01-25 Richard Biener <rguenther@suse.de>
21324
21325 PR tree-optimization/108523
21326 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
21327 backedge value for the result when using predication to
21328 prove equivalence.
21329
21330 2023-01-25 Richard Biener <rguenther@suse.de>
21331
21332 * doc/lto.texi (Command line options): Reword and update reference
21333 to removed lto_read_all_file_options.
21334
21335 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
21336
21337 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
21338 tests.
21339
21340 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
21341
21342 * doc/contrib.texi: Add Jose E. Marchesi.
21343
21344 2023-01-25 Jakub Jelinek <jakub@redhat.com>
21345
21346 PR tree-optimization/108498
21347 * gimple-ssa-store-merging.cc (class store_operand_info):
21348 End coment with full stop rather than comma.
21349 (split_group): Likewise.
21350 (merged_store_group::apply_stores): Clear string_concatenation if
21351 start or end aren't on a byte boundary.
21352
21353 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
21354 Jakub Jelinek <jakub@redhat.com>
21355
21356 PR tree-optimization/108522
21357 * tree-object-size.cc (compute_object_offset): Use
21358 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
21359
21360 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21361
21362 * config/xtensa/xtensa.md:
21363 Fix exit from loops detecting references before overwriting in the
21364 split pattern.
21365
21366 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
21367
21368 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
21369 do elimination but only for hard register.
21370 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
21371 calls of get_hard_regno.
21372
21373 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
21374
21375 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
21376 of CPU version.
21377
21378 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
21379
21380 PR target/108177
21381 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
21382 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
21383 as input operand.
21384
21385 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21386
21387 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
21388 and only include 'csky/t-csky-linux' when enable multilib.
21389 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
21390 define it when disable multilib.
21391
21392 2023-01-24 Richard Biener <rguenther@suse.de>
21393
21394 PR tree-optimization/108500
21395 * dominance.h (calculate_dominance_info): Add parameter
21396 to indicate fast-query compute, defaulted to true.
21397 * dominance.cc (calculate_dominance_info): Honor
21398 fast-query compute parameter.
21399 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
21400 not compute the dominator fast-query DFS numbers.
21401
21402 2023-01-24 Eric Biggers <ebiggers@google.com>
21403
21404 PR bootstrap/90543
21405 * optc-save-gen.awk: Fix copy-and-paste error.
21406
21407 2023-01-24 Jakub Jelinek <jakub@redhat.com>
21408
21409 PR c++/108474
21410 * cgraphbuild.cc: Include gimplify.h.
21411 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
21412 their corresponding DECL_VALUE_EXPR expressions after unsharing.
21413
21414 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21415
21416 PR target/108505
21417 * config.gcc (tm_file): Move the variable out of loop.
21418
21419 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
21420 Yang Yujie <yangyujie@loongson.cn>
21421
21422 PR target/107731
21423 * config/loongarch/loongarch.cc (loongarch_classify_address):
21424 Add precessint for CONST_INT.
21425 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
21426 (loongarch_print_operand): Increase the processing of '%c'.
21427 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
21428 And port the public operand modifiers information to this document.
21429
21430 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21431
21432 * doc/invoke.texi (-mbranch-protection): Update documentation.
21433
21434 2023-01-23 Richard Biener <rguenther@suse.de>
21435
21436 PR target/55522
21437 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
21438 for -shared.
21439 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
21440 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
21441 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
21442 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
21443
21444 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21445
21446 * config/arm/aout.h (ra_auth_code): Add entry in enum.
21447 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
21448 to dwarf frame expression.
21449 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
21450 (arm_expand_prologue): Update frame related information and reg notes
21451 for pac/pacbit insn.
21452 (arm_regno_class): Check for pac pseudo reigster.
21453 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
21454 (arm_init_machine_status): Set pacspval_needed to zero.
21455 (arm_debugger_regno): Check for PAC register.
21456 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
21457 register.
21458 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
21459 (arm_unwind_emit): Update REG_CFA_REGISTER case._
21460 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
21461 (DWARF_PAC_REGNUM): Define.
21462 (IS_PAC_REGNUM): Likewise.
21463 (enum reg_class): Add PAC_REG entry.
21464 (machine_function): Add pacbti_needed state to structure.
21465 * config/arm/arm.md (RA_AUTH_CODE): Define.
21466
21467 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21468
21469 * config.gcc ($tm_file): Update variable.
21470 * config/arm/arm-mlib.h: Create new header file.
21471 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
21472 multilib arch directory.
21473 (MULTILIB_REUSE): Add multilib reuse rules.
21474 (MULTILIB_MATCHES): Add multilib match rules.
21475
21476 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21477
21478 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
21479 * config/arm/arm-tables.opt: Regenerate.
21480 * config/arm/arm-tune.md: Likewise.
21481 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
21482 * (-mfix-cmse-cve-2021-35465): Likewise.
21483
21484 2023-01-23 Richard Biener <rguenther@suse.de>
21485
21486 PR tree-optimization/108482
21487 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
21488 .LOOP_DIST_ALIAS calls.
21489
21490 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21491
21492 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
21493 * config/arm/arm-protos.h: Update.
21494 * config/arm/aarch-common-protos.h: Declare
21495 'aarch_bti_arch_check'.
21496 * config/arm/arm.cc (aarch_bti_enabled) Update.
21497 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
21498 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
21499 * config/arm/arm.md (bti_nop): New insn.
21500 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
21501 (aarch-bti-insert.o): New target.
21502 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
21503 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
21504 compatibility.
21505 (gate): Make use of 'aarch_bti_arch_check'.
21506 * config/arm/arm-passes.def: New file.
21507 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
21508
21509 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21510
21511 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
21512 'aarch-bti-insert.o'.
21513 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
21514 proto.
21515 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
21516 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
21517 (aarch64_output_mi_thunk)
21518 (aarch64_print_patchable_function_entry)
21519 (aarch64_file_end_indicate_exec_stack): Update renamed function
21520 calls to renamed functions.
21521 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
21522 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
21523 target.
21524 * config/aarch64/aarch64-bti-insert.cc: Delete.
21525 * config/arm/aarch-bti-insert.cc: New file including and
21526 generalizing code from aarch64-bti-insert.cc.
21527 * config/arm/aarch-common-protos.h: Update.
21528
21529 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21530
21531 * config/arm/arm.h (arm_arch8m_main): Declare it.
21532 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
21533 Declare it.
21534 * config/arm/arm.cc (arm_arch8m_main): Define it.
21535 (arm_option_reconfigure_globals): Set arm_arch8m_main.
21536 (arm_compute_frame_layout, arm_expand_prologue)
21537 (thumb2_expand_return, arm_expand_epilogue)
21538 (arm_conditional_register_usage): Update for pac codegen.
21539 (arm_current_function_pac_enabled_p): New function.
21540 (aarch_bti_enabled) New function.
21541 (use_return_insn): Return zero when pac is enabled.
21542 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
21543 Add new patterns.
21544 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
21545 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
21546
21547 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21548
21549 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
21550 mbranch-protection.
21551
21552 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21553 Tejas Belagod <tbelagod@arm.com>
21554
21555 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
21556 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
21557
21558 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21559 Tejas Belagod <tbelagod@arm.com>
21560 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21561
21562 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
21563 new pseudo register class _UVRSC_PAC.
21564
21565 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21566 Tejas Belagod <tbelagod@arm.com>
21567
21568 * config/arm/arm-c.cc (arm_cpu_builtins): Define
21569 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
21570 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
21571
21572 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21573 Tejas Belagod <tbelagod@arm.com>
21574
21575 * doc/sourcebuild.texi: Document arm_pacbti_hw.
21576
21577 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21578 Tejas Belagod <tbelagod@arm.com>
21579 Richard Earnshaw <Richard.Earnshaw@arm.com>
21580
21581 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
21582 -mbranch-protection option and initialize appropriate data structures.
21583 * config/arm/arm.opt (-mbranch-protection): New option.
21584 * doc/invoke.texi (Arm Options): Document it.
21585
21586 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21587 Tejas Belagod <tbelagod@arm.com>
21588
21589 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
21590 * config/arm/arm-cpus.in (pacbti): New feature.
21591 * doc/invoke.texi (Arm Options): Document it.
21592
21593 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
21594 Tejas Belagod <tbelagod@arm.com>
21595
21596 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
21597 (all_architectures): Fix comment.
21598 (aarch64_parse_extension): Rename return type, enum value names.
21599 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
21600 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
21601 Also rename corresponding enum values.
21602 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
21603 out aarch64_function_type and move it to common code as
21604 aarch_function_type in aarch-common.h.
21605 * config/aarch64/aarch64-protos.h: Include common types header,
21606 move out types aarch64_parse_opt_result and aarch64_key_type to
21607 aarch-common.h
21608 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
21609 and functions out into aarch-common.h and aarch-common.cc. Fix up
21610 all the name changes resulting from the move.
21611 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
21612 and enum value.
21613 * config/aarch64/aarch64.opt: Include aarch-common.h to import
21614 type move. Fix up name changes from factoring out common code and
21615 data.
21616 * config/arm/aarch-common-protos.h: Export factored out routines to both
21617 backends.
21618 * config/arm/aarch-common.cc: Include newly factored out types.
21619 Move all mbranch-protection code and data structures from
21620 aarch64.cc.
21621 * config/arm/aarch-common.h: New header that declares types shared
21622 between aarch32 and aarch64 backends.
21623 * config/arm/arm-protos.h: Declare types and variables that are
21624 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
21625 aarch_ra_sign_scope and aarch_enable_bti.
21626 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
21627 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
21628 * config/arm/arm.cc: Add missing includes.
21629
21630 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
21631
21632 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
21633
21634 2023-01-23 Richard Biener <rguenther@suse.de>
21635
21636 PR tree-optimization/108449
21637 * cgraphunit.cc (check_global_declaration): Do not turn
21638 undefined statics into externs.
21639
21640 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
21641
21642 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
21643 and HI input modes.
21644 * config/pru/pru.md (clz): Fix generated code for QI and HI
21645 input modes.
21646
21647 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
21648
21649 * config/v850/v850.cc (v850_select_section): Put const volatile
21650 objects into read-only sections.
21651
21652 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
21653
21654 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
21655 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
21656 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
21657
21658 2023-01-20 Jakub Jelinek <jakub@redhat.com>
21659
21660 PR tree-optimization/108457
21661 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
21662 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
21663 argument instead of a temporary. Formatting fixes.
21664
21665 2023-01-19 Jakub Jelinek <jakub@redhat.com>
21666
21667 PR tree-optimization/108447
21668 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
21669 (relation_tests): Add self-tests for relation_{intersect,union}
21670 commutativity.
21671 * selftest.h (relation_tests): Declare.
21672 * function-tests.cc (test_ranges): Call it.
21673
21674 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
21675
21676 PR target/108436
21677 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
21678 invalid third argument to __builtin_ia32_prefetch.
21679
21680 2023-01-19 Jakub Jelinek <jakub@redhat.com>
21681
21682 PR middle-end/108459
21683 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
21684 than fold_unary for NEGATE_EXPR.
21685
21686 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
21687
21688 PR target/108411
21689 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
21690 comment. Move assert about alignment a bit later.
21691
21692 2023-01-19 Jakub Jelinek <jakub@redhat.com>
21693
21694 PR tree-optimization/108440
21695 * tree-ssa-forwprop.cc: Include gimple-range.h.
21696 (simplify_rotate): For the forms with T2 wider than T and shift counts of
21697 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
21698 to B. For the forms with T2 wider than T and shift counts of
21699 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
21700 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
21701 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
21702 pass specific ranger instead of get_global_range_query.
21703 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
21704 been created.
21705
21706 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21707
21708 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
21709 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
21710 the pattern.
21711 (aarch64_simd_vec_copy_lane<mode>): Likewise.
21712 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
21713
21714 2023-01-19 Alexandre Oliva <oliva@adacore.com>
21715
21716 PR debug/106746
21717 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
21718 within debug insns.
21719
21720 2023-01-18 Martin Jambor <mjambor@suse.cz>
21721
21722 PR ipa/107944
21723 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
21724 lcone_of chain also do not need the body.
21725
21726 2023-01-18 Richard Biener <rguenther@suse.de>
21727
21728 Revert:
21729 2022-12-16 Richard Biener <rguenther@suse.de>
21730
21731 PR middle-end/108086
21732 * tree-inline.cc (remap_ssa_name): Do not unshare the
21733 result from the decl_map.
21734
21735 2023-01-18 Murray Steele <murray.steele@arm.com>
21736
21737 PR target/108442
21738 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
21739 function.
21740 (__arm_vst1q_p_s8): Likewise.
21741 (__arm_vld1q_z_u8): Likewise.
21742 (__arm_vld1q_z_s8): Likewise.
21743 (__arm_vst1q_p_u16): Likewise.
21744 (__arm_vst1q_p_s16): Likewise.
21745 (__arm_vld1q_z_u16): Likewise.
21746 (__arm_vld1q_z_s16): Likewise.
21747 (__arm_vst1q_p_u32): Likewise.
21748 (__arm_vst1q_p_s32): Likewise.
21749 (__arm_vld1q_z_u32): Likewise.
21750 (__arm_vld1q_z_s32): Likewise.
21751 (__arm_vld1q_z_f16): Likewise.
21752 (__arm_vst1q_p_f16): Likewise.
21753 (__arm_vld1q_z_f32): Likewise.
21754 (__arm_vst1q_p_f32): Likewise.
21755
21756 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21757
21758 * config/xtensa/xtensa.md (xorsi3_internal):
21759 Rename from the original of "xorsi3".
21760 (xorsi3): New expansion pattern that emits addition rather than
21761 bitwise-XOR when the second source is a constant of -2147483648
21762 if TARGET_DENSITY.
21763
21764 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
21765 Andrew Pinski <apinski@marvell.com>
21766
21767 PR target/108396
21768 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
21769 vec_vsubcuqP with vec_vsubcuq.
21770
21771 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
21772
21773 PR target/108348
21774 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
21775 support for invalid uses of MMA opaque type in function arguments.
21776
21777 2023-01-18 liuhongt <hongtao.liu@intel.com>
21778
21779 PR target/55522
21780 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
21781 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
21782 -share or -mno-daz-ftz is specified.
21783 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
21784 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
21785
21786 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
21787
21788 * config/bpf/bpf.cc (bpf_option_override): Disable
21789 -fstack-protector.
21790
21791 2023-01-17 Jakub Jelinek <jakub@redhat.com>
21792
21793 PR tree-optimization/106523
21794 * tree-ssa-forwprop.cc (simplify_rotate): For the
21795 patterns with (-Y) & (B - 1) in one operand's shift
21796 count and Y in another, if T2 has wider precision than T,
21797 punt if Y could have a value in [B, B2 - 1] range.
21798
21799 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
21800
21801 PR target/105980
21802 * config/i386/i386.cc (x86_output_mi_thunk): Disable
21803 -mforce-indirect-call for PIC in 32-bit mode.
21804
21805 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
21806
21807 PR ipa/106077
21808 * ipa-modref.cc (modref_access_analysis::analyze): Use
21809 find_always_executed_bbs.
21810 * ipa-sra.cc (process_scan_results): Likewise.
21811 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
21812 (find_always_executed_bbs): New function.
21813 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
21814 (find_always_executed_bbs): Declare.
21815
21816 2023-01-16 Jan Hubicka <jh@suse.cz>
21817
21818 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
21819 by TARGET_USE_SCATTER.
21820 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
21821 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
21822 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
21823 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
21824 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
21825 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
21826
21827 2023-01-16 Richard Biener <rguenther@suse.de>
21828
21829 PR target/55522
21830 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
21831
21832 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
21833
21834 PR target/96795
21835 PR target/107515
21836 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
21837 (__ARM_mve_coerce3): Likewise.
21838
21839 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
21840
21841 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
21842
21843 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
21844
21845 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
21846 (number_of_iterations_bitcount): Add call to the above.
21847 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
21848 c[lt]z idiom recognition.
21849
21850 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
21851
21852 * doc/sourcebuild.texi: Add missing target attributes.
21853
21854 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
21855
21856 PR tree-optimization/94793
21857 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
21858 for c[lt]z optabs.
21859 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
21860 (number_of_iterations_cltz_complement): New.
21861 (number_of_iterations_bitcount): Add call to the above.
21862
21863 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
21864
21865 * doc/extend.texi (Common Function Attributes): Fix grammar.
21866
21867 2023-01-16 Jakub Jelinek <jakub@redhat.com>
21868
21869 PR other/108413
21870 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
21871 * config/riscv/riscv-vsetvl.cc: Likewise.
21872
21873 2023-01-16 Jakub Jelinek <jakub@redhat.com>
21874
21875 PR c++/105593
21876 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
21877 disable -Winit-self using pragma GCC diagnostic ignored.
21878 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
21879 Likewise.
21880 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
21881 _mm256_undefined_si256): Likewise.
21882 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
21883 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
21884 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
21885 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
21886
21887 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
21888
21889 PR target/108272
21890 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
21891 support for invalid uses in inline asm, factor out the checking and
21892 erroring to lambda function check_and_error_invalid_use.
21893
21894 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
21895
21896 PR tree-optimization/107608
21897 * range-op-float.cc (range_operator_float::fold_range): Avoid
21898 folding into INF when flag_trapping_math.
21899 * value-range.h (frange::known_isinf): Return false for possible NANs.
21900
21901 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
21902
21903 * config.gcc (csky-*-*): Support --with-float=softfp.
21904
21905 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
21906
21907 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
21908 Rename to xtensa_adjust_reg_alloc_order.
21909 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
21910 Ditto. And also remove code to reorder register numbers for
21911 leaf functions, rename the tables, and adjust the allocation
21912 order for the call0 ABI to use register A0 more.
21913 (xtensa_leaf_regs): Remove.
21914 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
21915 (order_regs_for_local_alloc): Rename as the above.
21916 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
21917
21918 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21919
21920 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
21921 Change to define_insn_and_split to fold ldr+dup to ld1rq.
21922 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
21923
21924 2023-01-14 Alexandre Oliva <oliva@adacore.com>
21925
21926 * hash-table.h (is_deleted): Precheck !is_empty.
21927 (mark_deleted): Postcheck !is_empty.
21928 (copy constructor): Test is_empty before is_deleted.
21929
21930 2023-01-14 Alexandre Oliva <oliva@adacore.com>
21931
21932 PR target/40457
21933 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
21934 moves.
21935
21936 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
21937
21938 PR rtl-optimization/108274
21939 * function.cc (thread_prologue_and_epilogue_insns): Also update the
21940 DF information for calls in a few more cases.
21941
21942 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
21943
21944 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
21945 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
21946 define.
21947 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
21948 (MAX_SYNC_LIBFUNC_SIZE): Define.
21949 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
21950 enabled.
21951 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
21952 libcall when sync libcalls are disabled.
21953 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
21954 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
21955 are disabled on 32-bit target.
21956 * config/pa/pa.opt (matomic-libcalls): New option.
21957 * doc/invoke.texi (HPPA Options): Update.
21958
21959 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
21960
21961 PR rtl-optimization/108117
21962 PR rtl-optimization/108132
21963 * sched-deps.cc (deps_analyze_insn): Do not schedule across
21964 calls before reload.
21965
21966 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
21967
21968 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
21969 options for -mlibarch.
21970 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
21971 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
21972
21973 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
21974
21975 * attribs.cc (strict_flex_array_level_of): Move this function to ...
21976 * attribs.h (strict_flex_array_level_of): Remove the declaration.
21977 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
21978 replace the referece to strict_flex_array_level_of with
21979 DECL_NOT_FLEXARRAY.
21980 * tree.cc (component_ref_size): Likewise.
21981
21982 2023-01-13 Richard Biener <rguenther@suse.de>
21983
21984 PR target/55522
21985 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
21986 crtfastmath.o for -shared.
21987 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
21988
21989 2023-01-13 Richard Biener <rguenther@suse.de>
21990
21991 PR target/55522
21992 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
21993 crtfastmath.o for -shared.
21994 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
21995 Likewise.
21996 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
21997 Likewise.
21998
21999 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
22000
22001 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
22002 function.
22003 (TARGET_DWARF_FRAME_REG_MODE): Define.
22004
22005 2023-01-13 Richard Biener <rguenther@suse.de>
22006
22007 PR target/107209
22008 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
22009 update EH info on the fly.
22010
22011 2023-01-13 Richard Biener <rguenther@suse.de>
22012
22013 PR tree-optimization/108387
22014 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
22015 value before inserting expression into the tables.
22016
22017 2023-01-12 Andrew Pinski <apinski@marvell.com>
22018 Roger Sayle <roger@nextmovesoftware.com>
22019
22020 PR tree-optimization/92342
22021 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
22022 Use tcc_comparison and :c for the multiply.
22023 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
22024
22025 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
22026 Richard Sandiford <richard.sandiford@arm.com>
22027
22028 PR target/105549
22029 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
22030 Check DECL_PACKED for bitfield.
22031 (aarch64_layout_arg): Warn when parameter passing ABI changes.
22032 (aarch64_function_arg_boundary): Do not warn here.
22033 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
22034 changes.
22035
22036 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
22037 Richard Sandiford <richard.sandiford@arm.com>
22038
22039 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
22040 comment.
22041 (aarch64_layout_arg): Factorize warning conditions.
22042 (aarch64_function_arg_boundary): Fix typo.
22043 * function.cc (currently_expanding_function_start): New variable.
22044 (expand_function_start): Handle
22045 currently_expanding_function_start.
22046 * function.h (currently_expanding_function_start): Declare.
22047
22048 2023-01-12 Richard Biener <rguenther@suse.de>
22049
22050 PR tree-optimization/99412
22051 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
22052 (swap_ops_for_binary_stmt): Remove reduction handling.
22053 (rewrite_expr_tree_parallel): Adjust.
22054 (reassociate_bb): Likewise.
22055 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
22056
22057 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
22058
22059 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
22060 Rearrange the emitting codes.
22061
22062 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
22063
22064 * config/xtensa/xtensa.md (*btrue):
22065 Correct value of the attribute "length" that depends on
22066 TARGET_DENSITY and operands, and add '?' character to the register
22067 constraint of the compared operand.
22068
22069 2023-01-12 Alexandre Oliva <oliva@adacore.com>
22070
22071 * hash-table.h (expand): Check elements and deleted counts.
22072 (verify): Likewise.
22073
22074 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
22075
22076 PR tree-optimization/71343
22077 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
22078 the value number of the expression X << C the same as the value
22079 number for the multiplication X * (1<<C).
22080
22081 2023-01-11 David Faust <david.faust@oracle.com>
22082
22083 PR target/108293
22084 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
22085 floating point modes.
22086
22087 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
22088
22089 PR tree-optimization/108199
22090 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
22091 for bit-field references.
22092
22093 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
22094
22095 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
22096 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
22097 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
22098 OPTION_MASK_P10_FUSION.
22099
22100 2023-01-11 Richard Biener <rguenther@suse.de>
22101
22102 PR tree-optimization/107767
22103 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
22104 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
22105 * tree-switch-conversion.cc (switch_conversion::collect):
22106 Count unique non-default targets accounting for later
22107 merging opportunities.
22108
22109 2023-01-11 Martin Liska <mliska@suse.cz>
22110
22111 PR middle-end/107976
22112 * params.opt: Limit JT params.
22113 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
22114
22115 2023-01-11 Richard Biener <rguenther@suse.de>
22116
22117 PR tree-optimization/108352
22118 * tree-ssa-threadbackward.cc
22119 (back_threader_profitability::profitable_path_p): Adjust
22120 heuristic that allows non-multi-way branch threads creating
22121 irreducible loops.
22122 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
22123 (--param fsm-scale-path-stmts): Adjust.
22124 * params.opt (--param=fsm-scale-path-blocks=): Remove.
22125 (-param=fsm-scale-path-stmts=): Adjust description.
22126
22127 2023-01-11 Richard Biener <rguenther@suse.de>
22128
22129 PR tree-optimization/108353
22130 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
22131 Remove.
22132 (add_ssa_edge): Simplify.
22133 (add_control_edge): Likewise.
22134 (ssa_prop_init): Likewise.
22135 (ssa_prop_fini): Likewise.
22136 (ssa_propagation_engine::ssa_propagate): Likewise.
22137
22138 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
22139
22140 * config/s390/s390.md (*not<mode>): New pattern.
22141
22142 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
22143
22144 * config/xtensa/xtensa.cc (xtensa_insn_cost):
22145 Let insn cost for size be obtained by applying COSTS_N_INSNS()
22146 to instruction length and then dividing by 3.
22147
22148 2023-01-10 Richard Biener <rguenther@suse.de>
22149
22150 PR tree-optimization/106293
22151 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
22152 process degenerate PHI defs.
22153
22154 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
22155
22156 PR rtl-optimization/106421
22157 * cprop.cc (bypass_block): Check that DEST is local to this
22158 function (non-NULL) before calling find_edge.
22159
22160 2023-01-10 Martin Jambor <mjambor@suse.cz>
22161
22162 PR ipa/108110
22163 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
22164 sort_replacements, lookup_first_base_replacement and
22165 m_sorted_replacements_p.
22166 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
22167 (ipa_param_body_adjustments::register_replacement): Set
22168 m_sorted_replacements_p to false.
22169 (compare_param_body_replacement): New function.
22170 (ipa_param_body_adjustments::sort_replacements): Likewise.
22171 (ipa_param_body_adjustments::common_initialization): Call
22172 sort_replacements.
22173 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
22174 m_sorted_replacements_p.
22175 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
22176 std::lower_bound.
22177 (ipa_param_body_adjustments::lookup_first_base_replacement): New
22178 function.
22179 (ipa_param_body_adjustments::modify_call_stmt): Use
22180 lookup_first_base_replacement.
22181 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
22182 adjustments->sort_replacements.
22183
22184 2023-01-10 Richard Biener <rguenther@suse.de>
22185
22186 PR tree-optimization/108314
22187 * tree-vect-stmts.cc (vectorizable_condition): Do not
22188 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
22189
22190 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22191
22192 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
22193
22194 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22195
22196 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
22197
22198 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22199
22200 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
22201 defines for soft float abi.
22202
22203 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22204
22205 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
22206 (smart_bclri): Likewise.
22207 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
22208 (fast_bclri): Likewise.
22209 (fast_cmpnesi_i): Likewise.
22210 (*fast_cmpltsi_i): Likewise.
22211 (*fast_cmpgeusi_i): Likewise.
22212
22213 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
22214
22215 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
22216 flag_fp_int_builtin_inexact || !flag_trapping_math.
22217 (<frm_pattern><mode>2): Likewise.
22218
22219 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
22220
22221 * config/s390/s390.cc (s390_register_info): Check call_used_regs
22222 instead of hard-coding the register numbers for call saved
22223 registers.
22224 (s390_optimize_register_info): Likewise.
22225
22226 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
22227
22228 * doc/gm2.texi (Overview): Fix @node markers.
22229 (Using): Likewise. Remove subsections that were moved to Overview
22230 from the menu and move others around.
22231
22232 2023-01-09 Richard Biener <rguenther@suse.de>
22233
22234 PR middle-end/108209
22235 * genmatch.cc (commutative_op): Fix return value for
22236 user-id with non-commutative first replacement.
22237
22238 2023-01-09 Jakub Jelinek <jakub@redhat.com>
22239
22240 PR target/107453
22241 * calls.cc (expand_call): For calls with
22242 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
22243 Formatting fix.
22244
22245 2023-01-09 Richard Biener <rguenther@suse.de>
22246
22247 PR middle-end/69482
22248 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
22249 qualified accesses also force objects to memory.
22250
22251 2023-01-09 Martin Liska <mliska@suse.cz>
22252
22253 PR lto/108330
22254 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
22255 NULL (deleleted value) to a hash_set.
22256
22257 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
22258
22259 * config/xtensa/xtensa.md (*splice_bits):
22260 New insn_and_split pattern.
22261
22262 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
22263
22264 * config/xtensa/xtensa.cc
22265 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
22266 New helper functions.
22267 (xtensa_set_return_address, xtensa_output_mi_thunk):
22268 Change to use the helper function.
22269 (xtensa_emit_adjust_stack_ptr): Ditto.
22270 And also change to try reusing the content of scratch register
22271 A9 if the register is not modified in the function body.
22272
22273 2023-01-07 LIU Hao <lh_mouse@126.com>
22274
22275 PR middle-end/108300
22276 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
22277 before <windows.h>.
22278 * diagnostic-color.cc: Likewise.
22279 * plugin.cc: Likewise.
22280 * prefix.cc: Likewise.
22281
22282 2023-01-06 Joseph Myers <joseph@codesourcery.com>
22283
22284 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
22285 for handling real integer types.
22286
22287 2023-01-06 Tamar Christina <tamar.christina@arm.com>
22288
22289 Revert:
22290 2022-12-12 Tamar Christina <tamar.christina@arm.com>
22291
22292 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
22293 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
22294 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
22295 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
22296 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
22297 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
22298 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
22299 (aarch64_simd_dupv2hf): New.
22300 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
22301 Add E_V2HFmode.
22302 * config/aarch64/iterators.md (VHSDF_P): New.
22303 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
22304 Vel, q, vp): Add V2HF.
22305 * config/arm/types.md (neon_fp_reduc_add_h): New.
22306
22307 2023-01-06 Martin Liska <mliska@suse.cz>
22308
22309 PR middle-end/107966
22310 * doc/options.texi: Fix Var documentation in internal manual.
22311
22312 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
22313
22314 Revert:
22315 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
22316
22317 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
22318 RTL expansion to allow condition (mask) to be shared/reused,
22319 by avoiding overwriting pseudos and adding REG_EQUAL notes.
22320
22321 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
22322
22323 * common.opt: Add -static-libgm2.
22324 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
22325 * doc/gm2.texi: Document static-libgm2.
22326 * gcc.cc (driver_handle_option): Allow static-libgm2.
22327
22328 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
22329
22330 * common/config/i386/i386-common.cc (processor_alias_table):
22331 Use CPU_ZNVER4 for znver4.
22332 * config/i386/i386.md: Add znver4.md.
22333 * config/i386/znver4.md: New.
22334
22335 2023-01-04 Jakub Jelinek <jakub@redhat.com>
22336
22337 PR tree-optimization/108253
22338 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
22339 types.
22340
22341 2023-01-04 Jakub Jelinek <jakub@redhat.com>
22342
22343 PR middle-end/108237
22344 * generic-match-head.cc: Include tree-pass.h.
22345 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
22346 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
22347 resp. PROP_gimple_lvec property set.
22348
22349 2023-01-04 Jakub Jelinek <jakub@redhat.com>
22350
22351 PR sanitizer/108256
22352 * convert.cc (do_narrow): Punt for MULT_EXPR if original
22353 type doesn't wrap around and -fsanitize=signed-integer-overflow
22354 is on.
22355 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
22356
22357 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
22358
22359 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
22360 * common/config/i386/i386-common.cc: Add Emeraldrapids.
22361
22362 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
22363
22364 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
22365 for meteorlake.
22366
22367 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
22368
22369 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
22370 default constructor to initialize it.
22371 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
22372 for last and iterate to handle recursive calls. Delete leftover
22373 candidates at the end.
22374 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
22375 on local clones.
22376 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
22377 gc_candidate bit when a clone is used.
22378
22379 2023-01-03 Florian Weimer <fweimer@redhat.com>
22380
22381 Revert:
22382 2023-01-02 Florian Weimer <fweimer@redhat.com>
22383
22384 * dwarf2cfi.cc (init_return_column_size): Remove.
22385 (init_one_dwarf_reg_size): Adjust.
22386 (generate_dwarf_reg_sizes): New function. Extracted
22387 from expand_builtin_init_dwarf_reg_sizes.
22388 (expand_builtin_init_dwarf_reg_sizes): Call
22389 generate_dwarf_reg_sizes.
22390 * target.def (init_dwarf_reg_sizes_extra): Adjust
22391 hook signature.
22392 * config/msp430/msp430.cc
22393 (msp430_init_dwarf_reg_sizes_extra): Adjust.
22394 * config/rs6000/rs6000.cc
22395 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
22396 * doc/tm.texi: Update.
22397
22398 2023-01-03 Florian Weimer <fweimer@redhat.com>
22399
22400 Revert:
22401 2023-01-02 Florian Weimer <fweimer@redhat.com>
22402
22403 * debug.h (dwarf_reg_sizes_constant): Declare.
22404 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
22405
22406 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
22407
22408 PR tree-optimization/105043
22409 * doc/extend.texi (Object Size Checking): Split out into two
22410 subsections and mention _FORTIFY_SOURCE.
22411
22412 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
22413
22414 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
22415 RTL expansion to allow condition (mask) to be shared/reused,
22416 by avoiding overwriting pseudos and adding REG_EQUAL notes.
22417
22418 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
22419
22420 PR target/108229
22421 * config/i386/i386-features.cc
22422 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
22423 the gain/cost of converting a MEM operand.
22424
22425 2023-01-03 Jakub Jelinek <jakub@redhat.com>
22426
22427 PR middle-end/108264
22428 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
22429 from source which doesn't have scalar integral mode first convert
22430 it to outer_mode.
22431
22432 2023-01-03 Jakub Jelinek <jakub@redhat.com>
22433
22434 PR rtl-optimization/108263
22435 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
22436 asm goto to EXIT.
22437
22438 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
22439
22440 PR target/87832
22441 * config/i386/lujiazui.md (lujiazui_div): New automaton.
22442 (lua_div): New unit.
22443 (lua_idiv_qi): Correct unit in the reservation.
22444 (lua_idiv_qi_load): Ditto.
22445 (lua_idiv_hi): Ditto.
22446 (lua_idiv_hi_load): Ditto.
22447 (lua_idiv_si): Ditto.
22448 (lua_idiv_si_load): Ditto.
22449 (lua_idiv_di): Ditto.
22450 (lua_idiv_di_load): Ditto.
22451 (lua_fdiv_SF): Ditto.
22452 (lua_fdiv_SF_load): Ditto.
22453 (lua_fdiv_DF): Ditto.
22454 (lua_fdiv_DF_load): Ditto.
22455 (lua_fdiv_XF): Ditto.
22456 (lua_fdiv_XF_load): Ditto.
22457 (lua_ssediv_SF): Ditto.
22458 (lua_ssediv_load_SF): Ditto.
22459 (lua_ssediv_V4SF): Ditto.
22460 (lua_ssediv_load_V4SF): Ditto.
22461 (lua_ssediv_V8SF): Ditto.
22462 (lua_ssediv_load_V8SF): Ditto.
22463 (lua_ssediv_SD): Ditto.
22464 (lua_ssediv_load_SD): Ditto.
22465 (lua_ssediv_V2DF): Ditto.
22466 (lua_ssediv_load_V2DF): Ditto.
22467 (lua_ssediv_V4DF): Ditto.
22468 (lua_ssediv_load_V4DF): Ditto.
22469
22470 2023-01-02 Florian Weimer <fweimer@redhat.com>
22471
22472 * debug.h (dwarf_reg_sizes_constant): Declare.
22473 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
22474
22475 2023-01-02 Florian Weimer <fweimer@redhat.com>
22476
22477 * dwarf2cfi.cc (init_return_column_size): Remove.
22478 (init_one_dwarf_reg_size): Adjust.
22479 (generate_dwarf_reg_sizes): New function. Extracted
22480 from expand_builtin_init_dwarf_reg_sizes.
22481 (expand_builtin_init_dwarf_reg_sizes): Call
22482 generate_dwarf_reg_sizes.
22483 * target.def (init_dwarf_reg_sizes_extra): Adjust
22484 hook signature.
22485 * config/msp430/msp430.cc
22486 (msp430_init_dwarf_reg_sizes_extra): Adjust.
22487 * config/rs6000/rs6000.cc
22488 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
22489 * doc/tm.texi: Update.
22490
22491 2023-01-02 Jakub Jelinek <jakub@redhat.com>
22492
22493 * gcc.cc (process_command): Update copyright notice dates.
22494 * gcov-dump.cc (print_version): Ditto.
22495 * gcov.cc (print_version): Ditto.
22496 * gcov-tool.cc (print_version): Ditto.
22497 * gengtype.cc (create_file): Ditto.
22498 * doc/cpp.texi: Bump @copying's copyright year.
22499 * doc/cppinternals.texi: Ditto.
22500 * doc/gcc.texi: Ditto.
22501 * doc/gccint.texi: Ditto.
22502 * doc/gcov.texi: Ditto.
22503 * doc/install.texi: Ditto.
22504 * doc/invoke.texi: Ditto.
22505
22506 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
22507 Uroš Bizjak <ubizjak@gmail.com>
22508
22509 * config/i386/i386.md (extendditi2): New define_insn.
22510 (define_split): Use DWIH mode iterator to treat new extendditi2
22511 identically to existing extendsidi2_1.
22512 (define_peephole2): Likewise.
22513 (define_peephole2): Likewise.
22514 (define_Split): Likewise.
22515
22516 \f
22517 Copyright (C) 2023 Free Software Foundation, Inc.
22518
22519 Copying and distribution of this file, with or without modification,
22520 are permitted in any medium without royalty provided the copyright
22521 notice and this notice are preserved.