]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
d00dafc2f335156eb1882b6bc45be73a0ae70b61
[thirdparty/gcc.git] / gcc / ChangeLog
1 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2
3 * alias.cc (ref_all_alias_ptr_type_p): Use _P() defines from tree.h.
4 * attribs.cc (diag_attr_exclusions): Ditto.
5 (decl_attributes): Ditto.
6 (build_type_attribute_qual_variant): Ditto.
7 * builtins.cc (fold_builtin_carg): Ditto.
8 (fold_builtin_next_arg): Ditto.
9 (do_mpc_arg2): Ditto.
10 * cfgexpand.cc (expand_return): Ditto.
11 * cgraph.h (decl_in_symtab_p): Ditto.
12 (symtab_node::get_create): Ditto.
13 * dwarf2out.cc (base_type_die): Ditto.
14 (implicit_ptr_descriptor): Ditto.
15 (gen_array_type_die): Ditto.
16 (gen_type_die_with_usage): Ditto.
17 (optimize_location_into_implicit_ptr): Ditto.
18 * expr.cc (do_store_flag): Ditto.
19 * fold-const.cc (negate_expr_p): Ditto.
20 (fold_negate_expr_1): Ditto.
21 (fold_convert_const): Ditto.
22 (fold_convert_loc): Ditto.
23 (constant_boolean_node): Ditto.
24 (fold_binary_op_with_conditional_arg): Ditto.
25 (build_fold_addr_expr_with_type_loc): Ditto.
26 (fold_comparison): Ditto.
27 (fold_checksum_tree): Ditto.
28 (tree_unary_nonnegative_warnv_p): Ditto.
29 (integer_valued_real_unary_p): Ditto.
30 (fold_read_from_constant_string): Ditto.
31 * gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text): Ditto.
32 * gimple-expr.cc (useless_type_conversion_p): Ditto.
33 (is_gimple_reg): Ditto.
34 (is_gimple_asm_val): Ditto.
35 (mark_addressable): Ditto.
36 * gimple-expr.h (is_gimple_variable): Ditto.
37 (virtual_operand_p): Ditto.
38 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores): Ditto.
39 * gimplify.cc (gimplify_bind_expr): Ditto.
40 (gimplify_return_expr): Ditto.
41 (gimple_add_padding_init_for_auto_var): Ditto.
42 (gimplify_addr_expr): Ditto.
43 (omp_add_variable): Ditto.
44 (omp_notice_variable): Ditto.
45 (omp_get_base_pointer): Ditto.
46 (omp_strip_components_and_deref): Ditto.
47 (omp_strip_indirections): Ditto.
48 (omp_accumulate_sibling_list): Ditto.
49 (omp_build_struct_sibling_lists): Ditto.
50 (gimplify_adjust_omp_clauses_1): Ditto.
51 (gimplify_adjust_omp_clauses): Ditto.
52 (gimplify_omp_for): Ditto.
53 (goa_lhs_expr_p): Ditto.
54 (gimplify_one_sizepos): Ditto.
55 * graphite-scop-detection.cc (scop_detection::graphite_can_represent_scev): Ditto.
56 * ipa-devirt.cc (odr_types_equivalent_p): Ditto.
57 * ipa-prop.cc (ipa_set_jf_constant): Ditto.
58 (propagate_controlled_uses): Ditto.
59 * ipa-sra.cc (type_prevails_p): Ditto.
60 (scan_expr_access): Ditto.
61 * optabs-tree.cc (optab_for_tree_code): Ditto.
62 * toplev.cc (wrapup_global_declaration_1): Ditto.
63 * trans-mem.cc (transaction_invariant_address_p): Ditto.
64 * tree-cfg.cc (verify_types_in_gimple_reference): Ditto.
65 (verify_gimple_comparison): Ditto.
66 (verify_gimple_assign_binary): Ditto.
67 (verify_gimple_assign_single): Ditto.
68 * tree-complex.cc (get_component_ssa_name): Ditto.
69 * tree-emutls.cc (lower_emutls_2): Ditto.
70 * tree-inline.cc (copy_tree_body_r): Ditto.
71 (estimate_move_cost): Ditto.
72 (copy_decl_for_dup_finish): Ditto.
73 * tree-nested.cc (convert_nonlocal_omp_clauses): Ditto.
74 (note_nonlocal_vla_type): Ditto.
75 (convert_local_omp_clauses): Ditto.
76 (remap_vla_decls): Ditto.
77 (fixup_vla_decls): Ditto.
78 * tree-parloops.cc (loop_has_vector_phi_nodes): Ditto.
79 * tree-pretty-print.cc (print_declaration): Ditto.
80 (print_call_name): Ditto.
81 * tree-sra.cc (compare_access_positions): Ditto.
82 * tree-ssa-alias.cc (compare_type_sizes): Ditto.
83 * tree-ssa-ccp.cc (get_default_value): Ditto.
84 * tree-ssa-coalesce.cc (populate_coalesce_list_for_outofssa): Ditto.
85 * tree-ssa-dom.cc (reduce_vector_comparison_to_scalar_comparison): Ditto.
86 * tree-ssa-forwprop.cc (can_propagate_from): Ditto.
87 * tree-ssa-propagate.cc (may_propagate_copy): Ditto.
88 * tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Ditto.
89 * tree-ssa-sink.cc (statement_sink_location): Ditto.
90 * tree-ssa-structalias.cc (type_must_have_pointers): Ditto.
91 * tree-ssa-ter.cc (find_replaceable_in_bb): Ditto.
92 * tree-ssa-uninit.cc (warn_uninit): Ditto.
93 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Ditto.
94 (non_rewritable_mem_ref_base): Ditto.
95 * tree-streamer-in.cc (lto_input_ts_type_non_common_tree_pointers): Ditto.
96 * tree-streamer-out.cc (write_ts_type_non_common_tree_pointers): Ditto.
97 * tree-vect-generic.cc (do_binop): Ditto.
98 (do_cond): Ditto.
99 * tree-vect-stmts.cc (vect_init_vector): Ditto.
100 * tree-vector-builder.h (tree_vector_builder::note_representative): Ditto.
101 * tree.cc (sign_mask_for): Ditto.
102 (verify_type_variant): Ditto.
103 (gimple_canonical_types_compatible_p): Ditto.
104 (verify_type): Ditto.
105 * ubsan.cc (get_ubsan_type_info_for_type): Ditto.
106 * var-tracking.cc (prepare_call_arguments): Ditto.
107 (vt_add_function_parameters): Ditto.
108 * varasm.cc (decode_addr_const): Ditto.
109
110 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
111
112 * omp-low.cc (scan_sharing_clauses): Use _P() defines from tree.h.
113 (lower_reduction_clauses): Ditto.
114 (lower_send_clauses): Ditto.
115 (lower_omp_task_reductions): Ditto.
116 * omp-oacc-neuter-broadcast.cc (install_var_field): Ditto.
117 (worker_single_copy): Ditto.
118 * omp-offload.cc (oacc_rewrite_var_decl): Ditto.
119 * omp-simd-clone.cc (plausible_type_for_simd_clone): Ditto.
120
121 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
122
123 * lto-streamer-in.cc (lto_input_var_decl_ref): Use _P defines from
124 tree.h.
125 (lto_read_body_or_constructor): Ditto.
126 * lto-streamer-out.cc (tree_is_indexable): Ditto.
127 (lto_output_var_decl_ref): Ditto.
128 (DFS::DFS_write_tree_body): Ditto.
129 (wrap_refs): Ditto.
130 (write_symbol_extension_info): Ditto.
131
132 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
133
134 * config/aarch64/aarch64.cc (aarch64_short_vector_p): Use _P
135 defines from tree.h.
136 (aarch64_mangle_type): Ditto.
137 * config/alpha/alpha.cc (alpha_in_small_data_p): Ditto.
138 (alpha_gimplify_va_arg_1): Ditto.
139 * config/arc/arc.cc (arc_encode_section_info): Ditto.
140 (arc_is_aux_reg_p): Ditto.
141 (arc_is_uncached_mem_p): Ditto.
142 (arc_handle_aux_attribute): Ditto.
143 * config/arm/arm.cc (arm_handle_isr_attribute): Ditto.
144 (arm_handle_cmse_nonsecure_call): Ditto.
145 (arm_set_default_type_attributes): Ditto.
146 (arm_is_segment_info_known): Ditto.
147 (arm_mangle_type): Ditto.
148 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Ditto.
149 * config/avr/avr.cc (avr_lookup_function_attribute1): Ditto.
150 (avr_decl_absdata_p): Ditto.
151 (avr_insert_attributes): Ditto.
152 (avr_section_type_flags): Ditto.
153 (avr_encode_section_info): Ditto.
154 * config/bfin/bfin.cc (bfin_handle_l2_attribute): Ditto.
155 * config/bpf/bpf.cc (bpf_core_compute): Ditto.
156 * config/c6x/c6x.cc (c6x_in_small_data_p): Ditto.
157 * config/csky/csky.cc (csky_handle_isr_attribute): Ditto.
158 (csky_mangle_type): Ditto.
159 * config/darwin-c.cc (darwin_pragma_unused): Ditto.
160 * config/darwin.cc (is_objc_metadata): Ditto.
161 * config/epiphany/epiphany.cc (epiphany_function_ok_for_sibcall): Ditto.
162 * config/epiphany/epiphany.h (ROUND_TYPE_ALIGN): Ditto.
163 * config/frv/frv.cc (frv_emit_movsi): Ditto.
164 * config/gcn/gcn-tree.cc (gcn_lockless_update): Ditto.
165 * config/gcn/gcn.cc (gcn_asm_output_symbol_ref): Ditto.
166 * config/h8300/h8300.cc (h8300_encode_section_info): Ditto.
167 * config/i386/i386-expand.cc: Ditto.
168 * config/i386/i386.cc (type_natural_mode): Ditto.
169 (ix86_function_arg): Ditto.
170 (ix86_data_alignment): Ditto.
171 (ix86_local_alignment): Ditto.
172 (ix86_simd_clone_compute_vecsize_and_simdlen): Ditto.
173 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Ditto.
174 (i386_pe_type_dllexport_p): Ditto.
175 (i386_pe_adjust_class_at_definition): Ditto.
176 * config/i386/winnt.cc (i386_pe_determine_dllimport_p): Ditto.
177 (i386_pe_binds_local_p): Ditto.
178 (i386_pe_section_type_flags): Ditto.
179 * config/ia64/ia64.cc (ia64_encode_section_info): Ditto.
180 (ia64_gimplify_va_arg): Ditto.
181 (ia64_in_small_data_p): Ditto.
182 * config/iq2000/iq2000.cc (iq2000_function_arg): Ditto.
183 * config/lm32/lm32.cc (lm32_in_small_data_p): Ditto.
184 * config/loongarch/loongarch.cc (loongarch_handle_model_attribute): Ditto.
185 * config/m32c/m32c.cc (m32c_insert_attributes): Ditto.
186 * config/mcore/mcore.cc (mcore_mark_dllimport): Ditto.
187 (mcore_encode_section_info): Ditto.
188 * config/microblaze/microblaze.cc (microblaze_elf_in_small_data_p): Ditto.
189 * config/mips/mips.cc (mips_output_aligned_decl_common): Ditto.
190 * config/mmix/mmix.cc (mmix_encode_section_info): Ditto.
191 * config/nvptx/nvptx.cc (nvptx_encode_section_info): Ditto.
192 (pass_in_memory): Ditto.
193 (nvptx_generate_vector_shuffle): Ditto.
194 (nvptx_lockless_update): Ditto.
195 * config/pa/pa.cc (pa_function_arg_padding): Ditto.
196 (pa_function_value): Ditto.
197 (pa_function_arg): Ditto.
198 * config/pa/pa.h (IN_NAMED_SECTION_P): Ditto.
199 (TEXT_SPACE_P): Ditto.
200 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Ditto.
201 * config/pdp11/pdp11.cc (pdp11_return_in_memory): Ditto.
202 * config/riscv/riscv.cc (riscv_in_small_data_p): Ditto.
203 (riscv_mangle_type): Ditto.
204 * config/rl78/rl78.cc (rl78_insert_attributes): Ditto.
205 (rl78_addsi3_internal): Ditto.
206 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Ditto.
207 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Ditto.
208 * config/rs6000/freebsd64.h (ROUND_TYPE_ALIGN): Ditto.
209 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Ditto.
210 * config/rs6000/rs6000-call.cc (rs6000_function_arg_boundary): Ditto.
211 (rs6000_function_arg_advance_1): Ditto.
212 (rs6000_function_arg): Ditto.
213 (rs6000_pass_by_reference): Ditto.
214 * config/rs6000/rs6000-logue.cc (rs6000_function_ok_for_sibcall): Ditto.
215 * config/rs6000/rs6000.cc (rs6000_data_alignment): Ditto.
216 (rs6000_set_default_type_attributes): Ditto.
217 (rs6000_elf_in_small_data_p): Ditto.
218 (IN_NAMED_SECTION): Ditto.
219 (rs6000_xcoff_encode_section_info): Ditto.
220 (rs6000_function_value): Ditto.
221 (invalid_arg_for_unprototyped_fn): Ditto.
222 * config/s390/s390-c.cc (s390_fn_types_compatible): Ditto.
223 (s390_vec_n_elem): Ditto.
224 * config/s390/s390.cc (s390_check_type_for_vector_abi): Ditto.
225 (s390_function_arg_integer): Ditto.
226 (s390_return_in_memory): Ditto.
227 (s390_encode_section_info): Ditto.
228 * config/sh/sh.cc (sh_gimplify_va_arg_expr): Ditto.
229 (sh_function_value): Ditto.
230 * config/sol2.cc (solaris_insert_attributes): Ditto.
231 * config/sparc/sparc.cc (function_arg_slotno): Ditto.
232 * config/sparc/sparc.h (ROUND_TYPE_ALIGN): Ditto.
233 * config/stormy16/stormy16.cc (xstormy16_encode_section_info): Ditto.
234 (xstormy16_handle_below100_attribute): Ditto.
235 * config/v850/v850.cc (v850_encode_section_info): Ditto.
236 (v850_insert_attributes): Ditto.
237 * config/visium/visium.cc (visium_pass_by_reference): Ditto.
238 (visium_return_in_memory): Ditto.
239 * config/xtensa/xtensa.cc (xtensa_multibss_section_type_flags): Ditto.
240
241 2023-05-18 Uros Bizjak <ubizjak@gmail.com>
242
243 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): New.
244 (ix86_expand_vecop_qihi): Add op2vec bool variable.
245 Do not set REG_EQUAL note.
246 * config/i386/i386-protos.h (ix86_expand_vecop_qihi_partial):
247 Add prototype.
248 * config/i386/i386.cc (ix86_multiplication_cost): Handle
249 V4QImode and V8QImode.
250 * config/i386/mmx.md (mulv8qi3): New expander.
251 (mulv4qi3): Ditto.
252 * config/i386/sse.md (mulv8qi3): Remove.
253
254 2023-05-18 Georg-Johann Lay <avr@gjlay.de>
255
256 * config/avr/gen-avr-mmcu-specs.cc: Remove stale */ after // comment.
257
258 2023-05-18 Jonathan Wakely <jwakely@redhat.com>
259
260 PR bootstrap/105831
261 * config.gcc: Use = operator instead of ==.
262
263 2023-05-18 Michael Bäuerle <micha@NetBSD.org>
264
265 PR bootstrap/105831
266 * config/nvptx/gen-opt.sh: Use = operator instead of ==.
267 * configure.ac: Likewise.
268 * configure: Regenerate.
269
270 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
271
272 * config/arm/arm_mve.h: (__ARM_mve_typeid): Add more pointer types.
273 (__ARM_mve_coerce1): Remove.
274 (__ARM_mve_coerce2): Remove.
275 (__ARM_mve_coerce3): Remove.
276 (__ARM_mve_coerce_i_scalar): New.
277 (__ARM_mve_coerce_s8_ptr): New.
278 (__ARM_mve_coerce_u8_ptr): New.
279 (__ARM_mve_coerce_s16_ptr): New.
280 (__ARM_mve_coerce_u16_ptr): New.
281 (__ARM_mve_coerce_s32_ptr): New.
282 (__ARM_mve_coerce_u32_ptr): New.
283 (__ARM_mve_coerce_s64_ptr): New.
284 (__ARM_mve_coerce_u64_ptr): New.
285 (__ARM_mve_coerce_f_scalar): New.
286 (__ARM_mve_coerce_f16_ptr): New.
287 (__ARM_mve_coerce_f32_ptr): New.
288 (__arm_vst4q): Change _coerce_ overloads.
289 (__arm_vbicq): Change _coerce_ overloads.
290 (__arm_vld1q): Change _coerce_ overloads.
291 (__arm_vld1q_z): Change _coerce_ overloads.
292 (__arm_vld2q): Change _coerce_ overloads.
293 (__arm_vld4q): Change _coerce_ overloads.
294 (__arm_vldrhq_gather_offset): Change _coerce_ overloads.
295 (__arm_vldrhq_gather_offset_z): Change _coerce_ overloads.
296 (__arm_vldrhq_gather_shifted_offset): Change _coerce_ overloads.
297 (__arm_vldrhq_gather_shifted_offset_z): Change _coerce_ overloads.
298 (__arm_vldrwq_gather_offset): Change _coerce_ overloads.
299 (__arm_vldrwq_gather_offset_z): Change _coerce_ overloads.
300 (__arm_vldrwq_gather_shifted_offset): Change _coerce_ overloads.
301 (__arm_vldrwq_gather_shifted_offset_z): Change _coerce_ overloads.
302 (__arm_vst1q_p): Change _coerce_ overloads.
303 (__arm_vst2q): Change _coerce_ overloads.
304 (__arm_vst1q): Change _coerce_ overloads.
305 (__arm_vstrhq): Change _coerce_ overloads.
306 (__arm_vstrhq_p): Change _coerce_ overloads.
307 (__arm_vstrhq_scatter_offset_p): Change _coerce_ overloads.
308 (__arm_vstrhq_scatter_offset): Change _coerce_ overloads.
309 (__arm_vstrhq_scatter_shifted_offset_p): Change _coerce_ overloads.
310 (__arm_vstrhq_scatter_shifted_offset): Change _coerce_ overloads.
311 (__arm_vstrwq_p): Change _coerce_ overloads.
312 (__arm_vstrwq): Change _coerce_ overloads.
313 (__arm_vstrwq_scatter_offset): Change _coerce_ overloads.
314 (__arm_vstrwq_scatter_offset_p): Change _coerce_ overloads.
315 (__arm_vstrwq_scatter_shifted_offset): Change _coerce_ overloads.
316 (__arm_vstrwq_scatter_shifted_offset_p): Change _coerce_ overloads.
317 (__arm_vsetq_lane): Change _coerce_ overloads.
318 (__arm_vldrbq_gather_offset): Change _coerce_ overloads.
319 (__arm_vdwdupq_x_u8): Change _coerce_ overloads.
320 (__arm_vdwdupq_x_u16): Change _coerce_ overloads.
321 (__arm_vdwdupq_x_u32): Change _coerce_ overloads.
322 (__arm_viwdupq_x_u8): Change _coerce_ overloads.
323 (__arm_viwdupq_x_u16): Change _coerce_ overloads.
324 (__arm_viwdupq_x_u32): Change _coerce_ overloads.
325 (__arm_vidupq_x_u8): Change _coerce_ overloads.
326 (__arm_vddupq_x_u8): Change _coerce_ overloads.
327 (__arm_vidupq_x_u16): Change _coerce_ overloads.
328 (__arm_vddupq_x_u16): Change _coerce_ overloads.
329 (__arm_vidupq_x_u32): Change _coerce_ overloads.
330 (__arm_vddupq_x_u32): Change _coerce_ overloads.
331 (__arm_vldrdq_gather_offset): Change _coerce_ overloads.
332 (__arm_vldrdq_gather_offset_z): Change _coerce_ overloads.
333 (__arm_vldrdq_gather_shifted_offset): Change _coerce_ overloads.
334 (__arm_vldrdq_gather_shifted_offset_z): Change _coerce_ overloads.
335 (__arm_vldrbq_gather_offset_z): Change _coerce_ overloads.
336 (__arm_vidupq_u16): Change _coerce_ overloads.
337 (__arm_vidupq_u32): Change _coerce_ overloads.
338 (__arm_vidupq_u8): Change _coerce_ overloads.
339 (__arm_vddupq_u16): Change _coerce_ overloads.
340 (__arm_vddupq_u32): Change _coerce_ overloads.
341 (__arm_vddupq_u8): Change _coerce_ overloads.
342 (__arm_viwdupq_m): Change _coerce_ overloads.
343 (__arm_viwdupq_u16): Change _coerce_ overloads.
344 (__arm_viwdupq_u32): Change _coerce_ overloads.
345 (__arm_viwdupq_u8): Change _coerce_ overloads.
346 (__arm_vdwdupq_m): Change _coerce_ overloads.
347 (__arm_vdwdupq_u16): Change _coerce_ overloads.
348 (__arm_vdwdupq_u32): Change _coerce_ overloads.
349 (__arm_vdwdupq_u8): Change _coerce_ overloads.
350 (__arm_vstrbq): Change _coerce_ overloads.
351 (__arm_vstrbq_p): Change _coerce_ overloads.
352 (__arm_vstrbq_scatter_offset_p): Change _coerce_ overloads.
353 (__arm_vstrdq_scatter_offset_p): Change _coerce_ overloads.
354 (__arm_vstrdq_scatter_offset): Change _coerce_ overloads.
355 (__arm_vstrdq_scatter_shifted_offset_p): Change _coerce_ overloads.
356 (__arm_vstrdq_scatter_shifted_offset): Change _coerce_ overloads.
357
358 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
359
360 * config/arm/arm_mve.h (__arm_vbicq): Change coerce on
361 scalar constant.
362
363 2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
364
365 * config/arm/arm_mve.h (__arm_vadcq_s32): Fix arithmetic.
366 (__arm_vadcq_u32): Likewise.
367 (__arm_vadcq_m_s32): Likewise.
368 (__arm_vadcq_m_u32): Likewise.
369 (__arm_vsbcq_s32): Likewise.
370 (__arm_vsbcq_u32): Likewise.
371 (__arm_vsbcq_m_s32): Likewise.
372 (__arm_vsbcq_m_u32): Likewise.
373 * config/arm/mve.md (get_fpscr_nzcvqc): Make unspec_volatile.
374
375 2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
376
377 * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrev64q_f<mode>)
378 (mve_vrev32q_fv8hf, mve_vcvttq_f32_f16v4sf)
379 (mve_vcvtbq_f32_f16v4sf, mve_vcvtq_to_f_<supf><mode>)
380 (mve_vrev64q_<supf><mode>, mve_vcvtq_from_f_<supf><mode>)
381 (mve_vmovltq_<supf><mode>, mve_vmovlbq_<supf><mode>)
382 (mve_vcvtpq_<supf><mode>, mve_vcvtnq_<supf><mode>)
383 (mve_vcvtmq_<supf><mode>, mve_vcvtaq_<supf><mode>)
384 (mve_vmvnq_n_<supf><mode>, mve_vrev16q_<supf>v16qi)
385 (mve_vctp<MVE_vctp>q<MVE_vpred>, mve_vbrsrq_n_f<mode>)
386 (mve_vbrsrq_n_<supf><mode>, mve_vandq_f<mode>, mve_vbicq_f<mode>)
387 (mve_vctp<MVE_vctp>q_m<MVE_vpred>, mve_vcvtbq_f16_f32v8hf)
388 (mve_vcvttq_f16_f32v8hf, mve_veorq_f<mode>)
389 (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
390 (mve_vmlsldavxq_s<mode>, mve_vornq_f<mode>, mve_vorrq_f<mode>)
391 (mve_vrmlaldavhxq_sv4si, mve_vcvtq_m_to_f_<supf><mode>)
392 (mve_vshlcq_<supf><mode>, mve_vmvnq_m_<supf><mode>)
393 (mve_vpselq_<supf><mode>, mve_vcvtbq_m_f16_f32v8hf)
394 (mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f16_f32v8hf)
395 (mve_vcvttq_m_f32_f16v4sf, mve_vmlaldavq_p_<supf><mode>)
396 (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
397 (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>)
398 (mve_vmvnq_m_n_<supf><mode>, mve_vorrq_m_n_<supf><mode>)
399 (mve_vpselq_f<mode>, mve_vrev32q_m_fv8hf)
400 (mve_vrev32q_m_<supf><mode>, mve_vrev64q_m_f<mode>)
401 (mve_vrmlaldavhaxq_sv4si, mve_vrmlaldavhxq_p_sv4si)
402 (mve_vrmlsldavhaxq_sv4si, mve_vrmlsldavhq_p_sv4si)
403 (mve_vrmlsldavhxq_p_sv4si, mve_vrev16q_m_<supf>v16qi)
404 (mve_vrmlaldavhq_p_<supf>v4si, mve_vrmlsldavhaq_sv4si)
405 (mve_vandq_m_<supf><mode>, mve_vbicq_m_<supf><mode>)
406 (mve_veorq_m_<supf><mode>, mve_vornq_m_<supf><mode>)
407 (mve_vorrq_m_<supf><mode>, mve_vandq_m_f<mode>)
408 (mve_vbicq_m_f<mode>, mve_veorq_m_f<mode>, mve_vornq_m_f<mode>)
409 (mve_vorrq_m_f<mode>)
410 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn)
411 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn)
412 (mve_vstrdq_scatter_base_wb_p_<supf>v2di) : Fix spacing and
413 capitalization in the emitted asm.
414
415 2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
416
417 * config/arm/constraints.md (mve_vldrd_immediate): Move it to
418 predicates.md.
419 (Ri): Move constraint definition from predicates.md.
420 (Rl): Define new constraint.
421 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Add
422 missing constraint.
423 (mve_vstrwq_scatter_base_wb_p_fv4sf): Add missing Up constraint
424 for op 1, use mve_vstrw_immediate predicate and Rl constraint for
425 op 2. Fix asm output spacing.
426 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Add missing constraint.
427 * config/arm/predicates.md (Ri) Move constraint to constraints.md
428 (mve_vldrd_immediate): Move it from
429 constraints.md.
430 (mve_vstrw_immediate): New predicate.
431
432 2023-05-18 Pan Li <pan2.li@intel.com>
433 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
434 Kito Cheng <kito.cheng@sifive.com>
435 Richard Biener <rguenther@suse.de>
436 Richard Sandiford <richard.sandiford@arm.com>
437
438 * combine.cc (struct reg_stat_type): Extend machine_mode to 16 bits.
439 * cse.cc (struct qty_table_elem): Extend machine_mode to 16 bits
440 (struct table_elt): Extend machine_mode to 16 bits.
441 (struct set): Ditto.
442 * genmodes.cc (emit_mode_wider): Extend type from char to short.
443 (emit_mode_complex): Ditto.
444 (emit_mode_inner): Ditto.
445 (emit_class_narrowest_mode): Ditto.
446 * genopinit.cc (main): Extend the machine_mode limit.
447 * ira-int.h (struct ira_allocno): Extend machine_mode to 16 bits and
448 re-ordered the struct fields for padding.
449 * machmode.h (MACHINE_MODE_BITSIZE): New macro.
450 (GET_MODE_2XWIDER_MODE): Extend type from char to short.
451 (get_mode_alignment): Extend type from char to short.
452 * ree.cc (struct ext_modified): Extend machine_mode to 16 bits and
453 removed the ATTRIBUTE_PACKED.
454 * rtl-ssa/accesses.h: Extend machine_mode to 16 bits, narrow
455 * rtl-ssa/internals.inl (rtl_ssa::access_info): Adjust the assignment.
456 m_kind to 2 bits and remove m_spare.
457 * rtl.h (RTX_CODE_BITSIZE): New macro.
458 (struct rtx_def): Swap both the bit size and location between the
459 rtx_code and the machine_mode.
460 (subreg_shape::unique_id): Extend the machine_mode limit.
461 * rtlanal.h: Extend machine_mode to 16 bits.
462 * tree-core.h (struct tree_type_common): Extend machine_mode to 16
463 bits and re-ordered the struct fields for padding.
464 (struct tree_decl_common): Extend machine_mode to 16 bits.
465
466 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
467
468 * genrecog.cc (print_nonbool_test): Fix type error of
469 switch (SUBREG_BYTE (op))'.
470
471 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
472
473 * common/config/riscv/riscv-common.cc: Remove
474 trailing spaces on lines.
475 * config/riscv/riscv.cc (riscv_legitimize_move): Likewise.
476 * config/riscv/riscv.h (enum reg_class): Likewise.
477 * config/riscv/riscv.md: Likewise.
478
479 2023-05-17 John David Anglin <danglin@gcc.gnu.org>
480
481 * config/pa/pa.md (clear_cache): New.
482
483 2023-05-17 Arsen Arsenović <arsen@aarsen.me>
484
485 * doc/extend.texi (C++ Concepts) <forall>: Remove extraneous
486 parenthesis. Fix misnamed index entry.
487 <concept>: Fix misnamed index entry.
488
489 2023-05-17 Jivan Hakobyan <jivanhakobyan9@gmail.com>
490
491 * config/riscv/riscv.md (*<optab><GPR:mode>3_mask): New pattern,
492 combined from ...
493 (*<optab>si3_mask, *<optab>di3_mask): Here.
494 (*<optab>si3_mask_1, *<optab>di3_mask_1): And here.
495 * config/riscv/bitmanip.md (*<bitmanip_optab><GPR:mode>3_mask): New
496 pattern.
497 (*<bitmanip_optab>si3_sext_mask): Likewise.
498 * config/riscv/iterators.md (shiftm1): Use const_si_mask_operand
499 and const_di_mask_operand.
500 (bitmanip_rotate): New iterator.
501 (bitmanip_optab): Add rotates.
502 * config/riscv/predicates.md (const_si_mask_operand): Renamed
503 from const31_operand. Generalize to handle more mask constants.
504 (const_di_mask_operand): Similarly.
505
506 2023-05-17 Jakub Jelinek <jakub@redhat.com>
507
508 PR c++/109884
509 * config/i386/i386-builtin-types.def (FLOAT128): Use
510 float128t_type_node rather than float128_type_node.
511
512 2023-05-17 Alexander Monakov <amonakov@ispras.ru>
513
514 * tree-ssa-math-opts.cc (convert_mult_to_fma): Enable only for
515 FP_CONTRACT_FAST (no functional change).
516
517 2023-05-17 Uros Bizjak <ubizjak@gmail.com>
518
519 * config/i386/i386.cc (ix86_multiplication_cost): Correct
520 calcuation of integer vector mode costs to reflect generated
521 instruction sequences of different integer vector modes and
522 different target ABIs.
523
524 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
525
526 * config/riscv/riscv-opts.h (enum riscv_entity): New enum.
527 * config/riscv/riscv.cc (riscv_emit_mode_set): New function.
528 (riscv_mode_needed): Ditto.
529 (riscv_mode_after): Ditto.
530 (riscv_mode_entry): Ditto.
531 (riscv_mode_exit): Ditto.
532 (riscv_mode_priority): Ditto.
533 (TARGET_MODE_EMIT): New target hook.
534 (TARGET_MODE_NEEDED): Ditto.
535 (TARGET_MODE_AFTER): Ditto.
536 (TARGET_MODE_ENTRY): Ditto.
537 (TARGET_MODE_EXIT): Ditto.
538 (TARGET_MODE_PRIORITY): Ditto.
539 * config/riscv/riscv.h (OPTIMIZE_MODE_SWITCHING): Ditto.
540 (NUM_MODES_FOR_MODE_SWITCHING): Ditto.
541 * config/riscv/riscv.md: Add csrwvxrm.
542 * config/riscv/vector.md (rnu,rne,rdn,rod,none): New attribute.
543 (vxrmsi): New pattern.
544
545 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
546
547 * config/riscv/riscv-vector-builtins-bases.cc: Introduce rounding mode.
548 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
549 (struct narrow_alu_def): Ditto.
550 * config/riscv/riscv-vector-builtins.cc (function_builder::apply_predication): Ditto.
551 (function_expander::use_exact_insn): Ditto.
552 * config/riscv/riscv-vector-builtins.h (function_checker::arg_num): New function.
553 (function_base::has_rounding_mode_operand_p): New function.
554
555 2023-05-17 Andrew Pinski <apinski@marvell.com>
556
557 * tree-ssa-forwprop.cc (simplify_builtin_call): Check
558 against 0 instead of calling integer_zerop.
559
560 2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
561
562 * config/riscv/riscv-vector-builtins.cc (register_vxrm): New function.
563 (DEF_RVV_VXRM_ENUM): New macro.
564 (handle_pragma_vector): Add vxrm enum register.
565 * config/riscv/riscv-vector-builtins.def (DEF_RVV_VXRM_ENUM): New macro.
566 (RNU): Ditto.
567 (RNE): Ditto.
568 (RDN): Ditto.
569 (ROD): Ditto.
570
571 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
572
573 * value-range.h (Value_Range::operator=): New.
574
575 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
576
577 * value-range.cc (vrange::operator=): Add a stub to copy
578 unsupported ranges.
579 * value-range.h (is_a <unsupported_range>): New.
580 (Value_Range::operator=): Support copying unsupported ranges.
581
582 2023-05-17 Aldy Hernandez <aldyh@redhat.com>
583
584 * data-streamer-in.cc (streamer_read_real_value): New.
585 (streamer_read_value_range): New.
586 * data-streamer-out.cc (streamer_write_real_value): New.
587 (streamer_write_vrange): New.
588 * data-streamer.h (streamer_write_vrange): New.
589 (streamer_read_value_range): New.
590
591 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
592
593 PR c++/109532
594 * doc/invoke.texi (Code Gen Options): Note that -fshort-enums
595 is ignored for a fixed underlying type.
596 (C++ Dialect Options): Likewise for -fstrict-enums.
597
598 2023-05-17 Tobias Burnus <tobias@codesourcery.com>
599
600 * gimplify.cc (gimplify_scan_omp_clauses): Remove Fortran
601 special case.
602
603 2023-05-17 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
604
605 * config/s390/s390.cc (TARGET_ATOMIC_ALIGN_FOR_MODE):
606 New.
607 (s390_atomic_align_for_mode): New.
608
609 2023-05-17 Jakub Jelinek <jakub@redhat.com>
610
611 * wide-int.cc (wi::from_array): Add missing closing paren in function
612 comment.
613
614 2023-05-17 Kewen Lin <linkw@linux.ibm.com>
615
616 * tree-vect-loop.cc (vect_analyze_loop_1): Don't retry analysis with
617 suggested unroll factor once the previous analysis fails.
618
619 2023-05-17 Pan Li <pan2.li@intel.com>
620
621 * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): New
622 macro.
623 (main): Add bool1 to the type indexer.
624 * config/riscv/riscv-vector-builtins-functions.def
625 (vreinterpret): Register vbool1 interpret function.
626 * config/riscv/riscv-vector-builtins-types.def
627 (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
628 (vint8m1_t): Add the type to bool1_interpret_ops.
629 (vint16m1_t): Ditto.
630 (vint32m1_t): Ditto.
631 (vint64m1_t): Ditto.
632 (vuint8m1_t): Ditto.
633 (vuint16m1_t): Ditto.
634 (vuint32m1_t): Ditto.
635 (vuint64m1_t): Ditto.
636 * config/riscv/riscv-vector-builtins.cc
637 (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
638 (required_extensions_p): Add bool1 interpret case.
639 * config/riscv/riscv-vector-builtins.def
640 (bool1_interpret): Add bool1 interpret to base type.
641 * config/riscv/vector.md (@vreinterpret<mode>): Add new expand
642 with VB dest for vreinterpret.
643
644 2023-05-17 Jiufu Guo <guojiufu@linux.ibm.com>
645
646 PR target/106708
647 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Support building
648 constants through "lis; xoris".
649
650 2023-05-16 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com>
651
652 * common/config/rs6000/rs6000-common.cc: Add REE pass as a
653 default rs6000 target pass for O2 and above.
654 * doc/invoke.texi: Document -free
655
656 2023-05-16 Kito Cheng <kito.cheng@sifive.com>
657
658 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
659 Fix wrong select_kind...
660
661 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
662
663 * config/s390/s390-protos.h (s390_expand_setmem): Change
664 function signature.
665 * config/s390/s390.cc (s390_expand_setmem): For memset's less
666 than or equal to 256 byte do not perform a libc call.
667 * config/s390/s390.md: Change expander into a version which
668 takes 8 operands.
669
670 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
671
672 * config/s390/s390-protos.h (s390_expand_movmem): New.
673 * config/s390/s390.cc (s390_expand_movmem): New.
674 * config/s390/s390.md (movmem<mode>): New.
675 (*mvcrl): New.
676 (mvcrl): New.
677
678 2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
679
680 * config/s390/s390-protos.h (s390_expand_cpymem): Change
681 function signature.
682 * config/s390/s390.cc (s390_expand_cpymem): For memcpy's less
683 than or equal to 256 byte do not perform a libc call.
684 (s390_expand_insv): Adapt new function signature of
685 s390_expand_cpymem.
686 * config/s390/s390.md: Change expander into a version which
687 takes 8 operands.
688
689 2023-05-16 Andrew Pinski <apinski@marvell.com>
690
691 PR tree-optimization/109424
692 * match.pd: Add patterns for min/max of zero_one_valued
693 values to `&`/`|`.
694
695 2023-05-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
696
697 * config/riscv/riscv-protos.h (enum frm_field_enum): New enum.
698 * config/riscv/riscv-vector-builtins.cc
699 (function_expander::use_ternop_insn): Add default rounding mode.
700 (function_expander::use_widen_ternop_insn): Ditto.
701 * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add FRM REGNUM.
702 (riscv_hard_regno_mode_ok): Ditto.
703 (riscv_conditional_register_usage): Ditto.
704 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
705 (FRM_REG_P): Ditto.
706 (RISCV_DWARF_FRM): Ditto.
707 * config/riscv/riscv.md: Ditto.
708 * config/riscv/vector-iterators.md: split no frm and has frm operations.
709 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
710 (@pred_<optab><mode>): Ditto.
711
712 2023-05-15 Aldy Hernandez <aldyh@redhat.com>
713
714 PR tree-optimization/109695
715 * value-range.cc (irange::operator=): Resize range.
716 (irange::union_): Same.
717 (irange::intersect): Same.
718 (irange::invert): Same.
719 (int_range_max): Default to 3 sub-ranges and resize as needed.
720 * value-range.h (irange::maybe_resize): New.
721 (~int_range): New.
722 (int_range::int_range): Adjust for resizing.
723 (int_range::operator=): Same.
724
725 2023-05-15 Aldy Hernandez <aldyh@redhat.com>
726
727 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Avoid unnecessary
728 range copying
729 * value-range.cc (irange::union_nonzero_bits): Return TRUE only
730 when range changed.
731
732 2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
733
734 * config/riscv/riscv-protos.h (enum vxrm_field_enum): New enum.
735 * config/riscv/riscv-vector-builtins.cc
736 (function_expander::use_exact_insn): Add default rounding mode operand.
737 * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add VXRM_REGNUM.
738 (riscv_hard_regno_mode_ok): Ditto.
739 (riscv_conditional_register_usage): Ditto.
740 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
741 (VXRM_REG_P): Ditto.
742 (RISCV_DWARF_VXRM): Ditto.
743 * config/riscv/riscv.md: Ditto.
744 * config/riscv/vector.md: Ditto
745
746 2023-05-15 Pan Li <pan2.li@intel.com>
747
748 * optabs.cc (maybe_gen_insn): Add case to generate instruction
749 that has 11 operands.
750
751 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
752
753 * config/aarch64/aarch64.cc (aarch64_rtx_costs, NEG case): Add costing
754 logic for vector modes.
755
756 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
757
758 PR target/99195
759 * config/aarch64/aarch64-simd.md (aarch64_cm<optab><mode>): Rename to...
760 (aarch64_cm<optab><mode><vczle><vczbe>): ... This.
761 (aarch64_cmtst<mode>): Rename to...
762 (aarch64_cmtst<mode><vczle><vczbe>): ... This.
763 (*aarch64_cmtst_same_<mode>): Rename to...
764 (*aarch64_cmtst_same_<mode><vczle><vczbe>): ... This.
765 (*aarch64_cmtstdi): Rename to...
766 (*aarch64_cmtstdi<vczle><vczbe>): ... This.
767 (aarch64_fac<optab><mode>): Rename to...
768 (aarch64_fac<optab><mode><vczle><vczbe>): ... This.
769
770 2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
771
772 PR target/99195
773 * config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>): Rename to...
774 (aarch64_s<optab><mode><vczle><vczbe>): ... This.
775
776 2023-05-15 Pan Li <pan2.li@intel.com>
777 Juzhe-Zhong <juzhe.zhong@rivai.ai>
778 kito-cheng <kito.cheng@sifive.com>
779
780 * config/riscv/riscv-v.cc (const_vlmax_p): New function for
781 deciding the mode is constant or not.
782 (set_len_and_policy): Optimize VLS-VLMAX code gen to vsetivli.
783
784 2023-05-15 Richard Biener <rguenther@suse.de>
785
786 PR tree-optimization/109848
787 * tree-ssa-forwprop.cc (pass_forwprop::execute): Put the
788 TARGET_MEM_REF address preparation before the store, not
789 before the CTOR.
790
791 2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
792
793 * config/riscv/riscv.cc
794 (riscv_vectorize_preferred_vector_alignment): New function.
795 (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New target hook.
796
797 2023-05-14 Andrew Pinski <apinski@marvell.com>
798
799 PR tree-optimization/109829
800 * match.pd: Add pattern for `signbit(x) !=/== 0 ? x : -x`.
801
802 2023-05-14 Uros Bizjak <ubizjak@gmail.com>
803
804 PR target/109807
805 * config/i386/i386.cc: Revert the 2023-05-11 change.
806 (ix86_widen_mult_cost): Return high value instead of
807 ICEing for unsupported modes.
808
809 2023-05-14 Ard Biesheuvel <ardb@kernel.org>
810
811 * config/i386/i386.cc (x86_function_profiler): Take
812 ix86_direct_extern_access into account when generating calls
813 to __fentry__()
814
815 2023-05-14 Pan Li <pan2.li@intel.com>
816
817 * config/riscv/riscv-vector-builtins.cc (required_extensions_p):
818 Refactor the or pattern to switch cases.
819
820 2023-05-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
821
822 * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Rename
823 aarch64_expand_vector_init to this, and remove interleaving case.
824 Recursively call aarch64_expand_vector_init_fallback, instead of
825 aarch64_expand_vector_init.
826 (aarch64_unzip_vector_init): New function.
827 (aarch64_expand_vector_init): Likewise.
828
829 2023-05-13 Kito Cheng <kito.cheng@sifive.com>
830
831 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns):
832 Pull out function call from the gcc_assert.
833
834 2023-05-13 Kito Cheng <kito.cheng@sifive.com>
835
836 * config/riscv/riscv-vsetvl.cc (vlmul_to_str): New.
837 (policy_to_str): New.
838 (vector_insn_info::dump): Use vlmul_to_str and policy_to_str.
839
840 2023-05-13 Andrew Pinski <apinski@marvell.com>
841
842 PR tree-optimization/109834
843 * match.pd (popcount(bswap(x))->popcount(x)): Fix up unsigned type checking.
844 (popcount(rotate(x,y))->popcount(x)): Likewise.
845
846 2023-05-12 Uros Bizjak <ubizjak@gmail.com>
847
848 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also
849 reject ymm instructions for TARGET_PREFER_AVX128. Use generic
850 gen_extend_insn to generate zero/sign extension instructions.
851 Fix comments.
852 (ix86_expand_vecop_qihi): Initialize interleave functions
853 for MULT code only. Fix comments.
854
855 2023-05-12 Uros Bizjak <ubizjak@gmail.com>
856
857 PR target/109797
858 * config/i386/mmx.md (mulv2si3): Remove expander.
859 (mulv2si3): Rename insn pattern from *mulv2si.
860
861 2023-05-12 Tobias Burnus <tobias@codesourcery.com>
862
863 PR libstdc++/109816
864 * lto-cgraph.cc (output_symtab): Guard lto_output_toplevel_asms by
865 '!lto_stream_offload_p'.
866
867 2023-05-12 Kito Cheng <kito.cheng@sifive.com>
868 Juzhe-Zhong <juzhe.zhong@rivai.ai>
869
870 PR target/109743
871 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vsetvl_at_end): New.
872 (local_avl_compatible_p): New.
873 (pass_vsetvl::local_eliminate_vsetvl_insn): Enhance local optimizations
874 for LCM, rewrite as a backward algorithm.
875 (pass_vsetvl::cleanup_insns): Use new local_eliminate_vsetvl_insn
876 interface, handle a BB at once.
877
878 2023-05-12 Richard Biener <rguenther@suse.de>
879
880 PR tree-optimization/64731
881 * tree-ssa-forwprop.cc (pass_forwprop::execute): Also
882 handle TARGET_MEM_REF destinations of stores from vector
883 CTORs.
884
885 2023-05-12 Richard Biener <rguenther@suse.de>
886
887 PR tree-optimization/109791
888 * match.pd (minus (convert ADDR_EXPR@0) (convert (pointer_plus @1 @2))):
889 New pattern.
890 (minus (convert (pointer_plus @1 @2)) (convert ADDR_EXPR@0)):
891 Likewise.
892
893 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
894
895 * config/arm/arm-mve-builtins-base.cc (vsriq): New.
896 * config/arm/arm-mve-builtins-base.def (vsriq): New.
897 * config/arm/arm-mve-builtins-base.h (vsriq): New.
898 * config/arm/arm-mve-builtins.cc
899 (function_instance::has_inactive_argument): Handle vsriq.
900 * config/arm/arm_mve.h (vsriq): Remove.
901 (vsriq_m): Remove.
902 (vsriq_n_u8): Remove.
903 (vsriq_n_s8): Remove.
904 (vsriq_n_u16): Remove.
905 (vsriq_n_s16): Remove.
906 (vsriq_n_u32): Remove.
907 (vsriq_n_s32): Remove.
908 (vsriq_m_n_s8): Remove.
909 (vsriq_m_n_u8): Remove.
910 (vsriq_m_n_s16): Remove.
911 (vsriq_m_n_u16): Remove.
912 (vsriq_m_n_s32): Remove.
913 (vsriq_m_n_u32): Remove.
914 (__arm_vsriq_n_u8): Remove.
915 (__arm_vsriq_n_s8): Remove.
916 (__arm_vsriq_n_u16): Remove.
917 (__arm_vsriq_n_s16): Remove.
918 (__arm_vsriq_n_u32): Remove.
919 (__arm_vsriq_n_s32): Remove.
920 (__arm_vsriq_m_n_s8): Remove.
921 (__arm_vsriq_m_n_u8): Remove.
922 (__arm_vsriq_m_n_s16): Remove.
923 (__arm_vsriq_m_n_u16): Remove.
924 (__arm_vsriq_m_n_s32): Remove.
925 (__arm_vsriq_m_n_u32): Remove.
926 (__arm_vsriq): Remove.
927 (__arm_vsriq_m): Remove.
928
929 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
930
931 * config/arm/iterators.md (mve_insn): Add vsri.
932 * config/arm/mve.md (mve_vsriq_n_<supf><mode>): Rename into ...
933 (@mve_<mve_insn>q_n_<supf><mode>): .,. this.
934 (mve_vsriq_m_n_<supf><mode>): Rename into ...
935 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
936
937 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
938
939 * config/arm/arm-mve-builtins-shapes.cc (ternary_rshift): New.
940 * config/arm/arm-mve-builtins-shapes.h (ternary_rshift): New.
941
942 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
943
944 * config/arm/arm-mve-builtins-base.cc (vsliq): New.
945 * config/arm/arm-mve-builtins-base.def (vsliq): New.
946 * config/arm/arm-mve-builtins-base.h (vsliq): New.
947 * config/arm/arm-mve-builtins.cc
948 (function_instance::has_inactive_argument): Handle vsliq.
949 * config/arm/arm_mve.h (vsliq): Remove.
950 (vsliq_m): Remove.
951 (vsliq_n_u8): Remove.
952 (vsliq_n_s8): Remove.
953 (vsliq_n_u16): Remove.
954 (vsliq_n_s16): Remove.
955 (vsliq_n_u32): Remove.
956 (vsliq_n_s32): Remove.
957 (vsliq_m_n_s8): Remove.
958 (vsliq_m_n_s32): Remove.
959 (vsliq_m_n_s16): Remove.
960 (vsliq_m_n_u8): Remove.
961 (vsliq_m_n_u32): Remove.
962 (vsliq_m_n_u16): Remove.
963 (__arm_vsliq_n_u8): Remove.
964 (__arm_vsliq_n_s8): Remove.
965 (__arm_vsliq_n_u16): Remove.
966 (__arm_vsliq_n_s16): Remove.
967 (__arm_vsliq_n_u32): Remove.
968 (__arm_vsliq_n_s32): Remove.
969 (__arm_vsliq_m_n_s8): Remove.
970 (__arm_vsliq_m_n_s32): Remove.
971 (__arm_vsliq_m_n_s16): Remove.
972 (__arm_vsliq_m_n_u8): Remove.
973 (__arm_vsliq_m_n_u32): Remove.
974 (__arm_vsliq_m_n_u16): Remove.
975 (__arm_vsliq): Remove.
976 (__arm_vsliq_m): Remove.
977
978 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
979
980 * config/arm/iterators.md (mve_insn>): Add vsli.
981 * config/arm/mve.md (mve_vsliq_n_<supf><mode>): Rename into ...
982 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
983 (mve_vsliq_m_n_<supf><mode>): Rename into ...
984 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
985
986 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
987
988 * config/arm/arm-mve-builtins-shapes.cc (ternary_lshift): New.
989 * config/arm/arm-mve-builtins-shapes.h (ternary_lshift): New.
990
991 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
992
993 * config/arm/arm-mve-builtins-base.cc (vpselq): New.
994 * config/arm/arm-mve-builtins-base.def (vpselq): New.
995 * config/arm/arm-mve-builtins-base.h (vpselq): New.
996 * config/arm/arm_mve.h (vpselq): Remove.
997 (vpselq_u8): Remove.
998 (vpselq_s8): Remove.
999 (vpselq_u16): Remove.
1000 (vpselq_s16): Remove.
1001 (vpselq_u32): Remove.
1002 (vpselq_s32): Remove.
1003 (vpselq_u64): Remove.
1004 (vpselq_s64): Remove.
1005 (vpselq_f16): Remove.
1006 (vpselq_f32): Remove.
1007 (__arm_vpselq_u8): Remove.
1008 (__arm_vpselq_s8): Remove.
1009 (__arm_vpselq_u16): Remove.
1010 (__arm_vpselq_s16): Remove.
1011 (__arm_vpselq_u32): Remove.
1012 (__arm_vpselq_s32): Remove.
1013 (__arm_vpselq_u64): Remove.
1014 (__arm_vpselq_s64): Remove.
1015 (__arm_vpselq_f16): Remove.
1016 (__arm_vpselq_f32): Remove.
1017 (__arm_vpselq): Remove.
1018
1019 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1020
1021 * config/arm/arm-mve-builtins-shapes.cc (vpsel): New.
1022 * config/arm/arm-mve-builtins-shapes.h (vpsel): New.
1023
1024 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1025
1026 * config/arm/arm.cc (arm_expand_vcond): Use gen_mve_q instead of
1027 gen_mve_vpselq.
1028 * config/arm/iterators.md (MVE_VPSELQ_F): New.
1029 (mve_insn): Add vpsel.
1030 * config/arm/mve.md (@mve_vpselq_<supf><mode>): Rename into ...
1031 (@mve_<mve_insn>q_<supf><mode>): ... this.
1032 (@mve_vpselq_f<mode>): Rename into ...
1033 (@mve_<mve_insn>q_f<mode>): ... this.
1034
1035 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1036
1037 * config/arm/arm-mve-builtins-base.cc (vfmaq, vfmasq, vfmsq): New.
1038 * config/arm/arm-mve-builtins-base.def (vfmaq, vfmasq, vfmsq): New.
1039 * config/arm/arm-mve-builtins-base.h (vfmaq, vfmasq, vfmsq): New.
1040 * config/arm/arm-mve-builtins.cc
1041 (function_instance::has_inactive_argument): Handle vfmaq, vfmasq,
1042 vfmsq.
1043 * config/arm/arm_mve.h (vfmaq): Remove.
1044 (vfmasq): Remove.
1045 (vfmsq): Remove.
1046 (vfmaq_m): Remove.
1047 (vfmasq_m): Remove.
1048 (vfmsq_m): Remove.
1049 (vfmaq_f16): Remove.
1050 (vfmaq_n_f16): Remove.
1051 (vfmasq_n_f16): Remove.
1052 (vfmsq_f16): Remove.
1053 (vfmaq_f32): Remove.
1054 (vfmaq_n_f32): Remove.
1055 (vfmasq_n_f32): Remove.
1056 (vfmsq_f32): Remove.
1057 (vfmaq_m_f32): Remove.
1058 (vfmaq_m_f16): Remove.
1059 (vfmaq_m_n_f32): Remove.
1060 (vfmaq_m_n_f16): Remove.
1061 (vfmasq_m_n_f32): Remove.
1062 (vfmasq_m_n_f16): Remove.
1063 (vfmsq_m_f32): Remove.
1064 (vfmsq_m_f16): Remove.
1065 (__arm_vfmaq_f16): Remove.
1066 (__arm_vfmaq_n_f16): Remove.
1067 (__arm_vfmasq_n_f16): Remove.
1068 (__arm_vfmsq_f16): Remove.
1069 (__arm_vfmaq_f32): Remove.
1070 (__arm_vfmaq_n_f32): Remove.
1071 (__arm_vfmasq_n_f32): Remove.
1072 (__arm_vfmsq_f32): Remove.
1073 (__arm_vfmaq_m_f32): Remove.
1074 (__arm_vfmaq_m_f16): Remove.
1075 (__arm_vfmaq_m_n_f32): Remove.
1076 (__arm_vfmaq_m_n_f16): Remove.
1077 (__arm_vfmasq_m_n_f32): Remove.
1078 (__arm_vfmasq_m_n_f16): Remove.
1079 (__arm_vfmsq_m_f32): Remove.
1080 (__arm_vfmsq_m_f16): Remove.
1081 (__arm_vfmaq): Remove.
1082 (__arm_vfmasq): Remove.
1083 (__arm_vfmsq): Remove.
1084 (__arm_vfmaq_m): Remove.
1085 (__arm_vfmasq_m): Remove.
1086 (__arm_vfmsq_m): Remove.
1087
1088 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1089
1090 * config/arm/iterators.md (MVE_FP_M_BINARY): Add VFMAQ_M_F,
1091 VFMSQ_M_F.
1092 (MVE_FP_M_N_BINARY): Add VFMAQ_M_N_F, VFMASQ_M_N_F.
1093 (MVE_VFMxQ_F, MVE_VFMAxQ_N_F): New.
1094 (mve_insn): Add vfma, vfmas, vfms.
1095 * config/arm/mve.md (mve_vfmaq_f<mode>, mve_vfmsq_f<mode>): Merge
1096 into ...
1097 (@mve_<mve_insn>q_f<mode>): ... this.
1098 (mve_vfmaq_n_f<mode>, mve_vfmasq_n_f<mode>): Merge into ...
1099 (@mve_<mve_insn>q_n_f<mode>): ... this.
1100 (mve_vfmaq_m_f<mode>, mve_vfmsq_m_f<mode>): Merge into
1101 @mve_<mve_insn>q_m_f<mode>.
1102 (mve_vfmaq_m_n_f<mode>, mve_vfmasq_m_n_f<mode>): Merge into
1103 @mve_<mve_insn>q_m_n_f<mode>.
1104
1105 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1106
1107 * config/arm/arm-mve-builtins-shapes.cc (ternary_opt_n): New.
1108 * config/arm/arm-mve-builtins-shapes.h (ternary_opt_n): New.
1109
1110 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1111
1112 * config/arm/arm-mve-builtins-base.cc
1113 (FUNCTION_WITH_RTX_M_N_NO_F): New.
1114 (vmvnq): New.
1115 * config/arm/arm-mve-builtins-base.def (vmvnq): New.
1116 * config/arm/arm-mve-builtins-base.h (vmvnq): New.
1117 * config/arm/arm_mve.h (vmvnq): Remove.
1118 (vmvnq_m): Remove.
1119 (vmvnq_x): Remove.
1120 (vmvnq_s8): Remove.
1121 (vmvnq_s16): Remove.
1122 (vmvnq_s32): Remove.
1123 (vmvnq_n_s16): Remove.
1124 (vmvnq_n_s32): Remove.
1125 (vmvnq_u8): Remove.
1126 (vmvnq_u16): Remove.
1127 (vmvnq_u32): Remove.
1128 (vmvnq_n_u16): Remove.
1129 (vmvnq_n_u32): Remove.
1130 (vmvnq_m_u8): Remove.
1131 (vmvnq_m_s8): Remove.
1132 (vmvnq_m_u16): Remove.
1133 (vmvnq_m_s16): Remove.
1134 (vmvnq_m_u32): Remove.
1135 (vmvnq_m_s32): Remove.
1136 (vmvnq_m_n_s16): Remove.
1137 (vmvnq_m_n_u16): Remove.
1138 (vmvnq_m_n_s32): Remove.
1139 (vmvnq_m_n_u32): Remove.
1140 (vmvnq_x_s8): Remove.
1141 (vmvnq_x_s16): Remove.
1142 (vmvnq_x_s32): Remove.
1143 (vmvnq_x_u8): Remove.
1144 (vmvnq_x_u16): Remove.
1145 (vmvnq_x_u32): Remove.
1146 (vmvnq_x_n_s16): Remove.
1147 (vmvnq_x_n_s32): Remove.
1148 (vmvnq_x_n_u16): Remove.
1149 (vmvnq_x_n_u32): Remove.
1150 (__arm_vmvnq_s8): Remove.
1151 (__arm_vmvnq_s16): Remove.
1152 (__arm_vmvnq_s32): Remove.
1153 (__arm_vmvnq_n_s16): Remove.
1154 (__arm_vmvnq_n_s32): Remove.
1155 (__arm_vmvnq_u8): Remove.
1156 (__arm_vmvnq_u16): Remove.
1157 (__arm_vmvnq_u32): Remove.
1158 (__arm_vmvnq_n_u16): Remove.
1159 (__arm_vmvnq_n_u32): Remove.
1160 (__arm_vmvnq_m_u8): Remove.
1161 (__arm_vmvnq_m_s8): Remove.
1162 (__arm_vmvnq_m_u16): Remove.
1163 (__arm_vmvnq_m_s16): Remove.
1164 (__arm_vmvnq_m_u32): Remove.
1165 (__arm_vmvnq_m_s32): Remove.
1166 (__arm_vmvnq_m_n_s16): Remove.
1167 (__arm_vmvnq_m_n_u16): Remove.
1168 (__arm_vmvnq_m_n_s32): Remove.
1169 (__arm_vmvnq_m_n_u32): Remove.
1170 (__arm_vmvnq_x_s8): Remove.
1171 (__arm_vmvnq_x_s16): Remove.
1172 (__arm_vmvnq_x_s32): Remove.
1173 (__arm_vmvnq_x_u8): Remove.
1174 (__arm_vmvnq_x_u16): Remove.
1175 (__arm_vmvnq_x_u32): Remove.
1176 (__arm_vmvnq_x_n_s16): Remove.
1177 (__arm_vmvnq_x_n_s32): Remove.
1178 (__arm_vmvnq_x_n_u16): Remove.
1179 (__arm_vmvnq_x_n_u32): Remove.
1180 (__arm_vmvnq): Remove.
1181 (__arm_vmvnq_m): Remove.
1182 (__arm_vmvnq_x): Remove.
1183
1184 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1185
1186 * config/arm/iterators.md (mve_insn): Add vmvn.
1187 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Rename into ...
1188 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
1189 (mve_vmvnq_m_<supf><mode>): Rename into ...
1190 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
1191 (mve_vmvnq_m_n_<supf><mode>): Rename into ...
1192 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
1193
1194 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1195
1196 * config/arm/arm-mve-builtins-shapes.cc (mvn): New.
1197 * config/arm/arm-mve-builtins-shapes.h (mvn): New.
1198
1199 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1200
1201 * config/arm/arm-mve-builtins-base.cc (vbrsrq): New.
1202 * config/arm/arm-mve-builtins-base.def (vbrsrq): New.
1203 * config/arm/arm-mve-builtins-base.h (vbrsrq): New.
1204 * config/arm/arm_mve.h (vbrsrq): Remove.
1205 (vbrsrq_m): Remove.
1206 (vbrsrq_x): Remove.
1207 (vbrsrq_n_f16): Remove.
1208 (vbrsrq_n_f32): Remove.
1209 (vbrsrq_n_u8): Remove.
1210 (vbrsrq_n_s8): Remove.
1211 (vbrsrq_n_u16): Remove.
1212 (vbrsrq_n_s16): Remove.
1213 (vbrsrq_n_u32): Remove.
1214 (vbrsrq_n_s32): Remove.
1215 (vbrsrq_m_n_s8): Remove.
1216 (vbrsrq_m_n_s32): Remove.
1217 (vbrsrq_m_n_s16): Remove.
1218 (vbrsrq_m_n_u8): Remove.
1219 (vbrsrq_m_n_u32): Remove.
1220 (vbrsrq_m_n_u16): Remove.
1221 (vbrsrq_m_n_f32): Remove.
1222 (vbrsrq_m_n_f16): Remove.
1223 (vbrsrq_x_n_s8): Remove.
1224 (vbrsrq_x_n_s16): Remove.
1225 (vbrsrq_x_n_s32): Remove.
1226 (vbrsrq_x_n_u8): Remove.
1227 (vbrsrq_x_n_u16): Remove.
1228 (vbrsrq_x_n_u32): Remove.
1229 (vbrsrq_x_n_f16): Remove.
1230 (vbrsrq_x_n_f32): Remove.
1231 (__arm_vbrsrq_n_u8): Remove.
1232 (__arm_vbrsrq_n_s8): Remove.
1233 (__arm_vbrsrq_n_u16): Remove.
1234 (__arm_vbrsrq_n_s16): Remove.
1235 (__arm_vbrsrq_n_u32): Remove.
1236 (__arm_vbrsrq_n_s32): Remove.
1237 (__arm_vbrsrq_m_n_s8): Remove.
1238 (__arm_vbrsrq_m_n_s32): Remove.
1239 (__arm_vbrsrq_m_n_s16): Remove.
1240 (__arm_vbrsrq_m_n_u8): Remove.
1241 (__arm_vbrsrq_m_n_u32): Remove.
1242 (__arm_vbrsrq_m_n_u16): Remove.
1243 (__arm_vbrsrq_x_n_s8): Remove.
1244 (__arm_vbrsrq_x_n_s16): Remove.
1245 (__arm_vbrsrq_x_n_s32): Remove.
1246 (__arm_vbrsrq_x_n_u8): Remove.
1247 (__arm_vbrsrq_x_n_u16): Remove.
1248 (__arm_vbrsrq_x_n_u32): Remove.
1249 (__arm_vbrsrq_n_f16): Remove.
1250 (__arm_vbrsrq_n_f32): Remove.
1251 (__arm_vbrsrq_m_n_f32): Remove.
1252 (__arm_vbrsrq_m_n_f16): Remove.
1253 (__arm_vbrsrq_x_n_f16): Remove.
1254 (__arm_vbrsrq_x_n_f32): Remove.
1255 (__arm_vbrsrq): Remove.
1256 (__arm_vbrsrq_m): Remove.
1257 (__arm_vbrsrq_x): Remove.
1258
1259 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1260
1261 * config/arm/iterators.md (MVE_VBRSR_M_N_FP, MVE_VBRSR_N_FP): New.
1262 (mve_insn): Add vbrsr.
1263 * config/arm/mve.md (mve_vbrsrq_n_f<mode>): Rename into ...
1264 (@mve_<mve_insn>q_n_f<mode>): ... this.
1265 (mve_vbrsrq_n_<supf><mode>): Rename into ...
1266 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
1267 (mve_vbrsrq_m_n_<supf><mode>): Rename into ...
1268 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
1269 (mve_vbrsrq_m_n_f<mode>): Rename into ...
1270 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
1271
1272 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1273
1274 * config/arm/arm-mve-builtins-shapes.cc (binary_imm32): New.
1275 * config/arm/arm-mve-builtins-shapes.h (binary_imm32): New.
1276
1277 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1278
1279 * config/arm/arm-mve-builtins-base.cc (vqshluq): New.
1280 * config/arm/arm-mve-builtins-base.def (vqshluq): New.
1281 * config/arm/arm-mve-builtins-base.h (vqshluq): New.
1282 * config/arm/arm_mve.h (vqshluq): Remove.
1283 (vqshluq_m): Remove.
1284 (vqshluq_n_s8): Remove.
1285 (vqshluq_n_s16): Remove.
1286 (vqshluq_n_s32): Remove.
1287 (vqshluq_m_n_s8): Remove.
1288 (vqshluq_m_n_s16): Remove.
1289 (vqshluq_m_n_s32): Remove.
1290 (__arm_vqshluq_n_s8): Remove.
1291 (__arm_vqshluq_n_s16): Remove.
1292 (__arm_vqshluq_n_s32): Remove.
1293 (__arm_vqshluq_m_n_s8): Remove.
1294 (__arm_vqshluq_m_n_s16): Remove.
1295 (__arm_vqshluq_m_n_s32): Remove.
1296 (__arm_vqshluq): Remove.
1297 (__arm_vqshluq_m): Remove.
1298
1299 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1300
1301 * config/arm/iterators.md (mve_insn): Add vqshlu.
1302 (supf): Add VQSHLUQ_M_N_S, VQSHLUQ_N_S.
1303 (VQSHLUQ_M_N, VQSHLUQ_N): New.
1304 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Change name into ...
1305 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
1306 (mve_vqshluq_m_n_s<mode>): Change name into ...
1307 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
1308
1309 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1310
1311 * config/arm/arm-mve-builtins-shapes.cc
1312 (binary_lshift_unsigned): New.
1313 * config/arm/arm-mve-builtins-shapes.h
1314 (binary_lshift_unsigned): New.
1315
1316 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1317
1318 * config/arm/arm-mve-builtins-base.cc (vrmlaldavhaq)
1319 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
1320 * config/arm/arm-mve-builtins-base.def (vrmlaldavhaq)
1321 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
1322 * config/arm/arm-mve-builtins-base.h (vrmlaldavhaq)
1323 (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
1324 * config/arm/arm-mve-builtins-functions.h: Handle vrmlaldavhaq,
1325 vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq.
1326 * config/arm/arm_mve.h (vrmlaldavhaq): Remove.
1327 (vrmlaldavhaxq): Remove.
1328 (vrmlsldavhaq): Remove.
1329 (vrmlsldavhaxq): Remove.
1330 (vrmlaldavhaq_p): Remove.
1331 (vrmlaldavhaxq_p): Remove.
1332 (vrmlsldavhaq_p): Remove.
1333 (vrmlsldavhaxq_p): Remove.
1334 (vrmlaldavhaq_s32): Remove.
1335 (vrmlaldavhaq_u32): Remove.
1336 (vrmlaldavhaxq_s32): Remove.
1337 (vrmlsldavhaq_s32): Remove.
1338 (vrmlsldavhaxq_s32): Remove.
1339 (vrmlaldavhaq_p_s32): Remove.
1340 (vrmlaldavhaq_p_u32): Remove.
1341 (vrmlaldavhaxq_p_s32): Remove.
1342 (vrmlsldavhaq_p_s32): Remove.
1343 (vrmlsldavhaxq_p_s32): Remove.
1344 (__arm_vrmlaldavhaq_s32): Remove.
1345 (__arm_vrmlaldavhaq_u32): Remove.
1346 (__arm_vrmlaldavhaxq_s32): Remove.
1347 (__arm_vrmlsldavhaq_s32): Remove.
1348 (__arm_vrmlsldavhaxq_s32): Remove.
1349 (__arm_vrmlaldavhaq_p_s32): Remove.
1350 (__arm_vrmlaldavhaq_p_u32): Remove.
1351 (__arm_vrmlaldavhaxq_p_s32): Remove.
1352 (__arm_vrmlsldavhaq_p_s32): Remove.
1353 (__arm_vrmlsldavhaxq_p_s32): Remove.
1354 (__arm_vrmlaldavhaq): Remove.
1355 (__arm_vrmlaldavhaxq): Remove.
1356 (__arm_vrmlsldavhaq): Remove.
1357 (__arm_vrmlsldavhaxq): Remove.
1358 (__arm_vrmlaldavhaq_p): Remove.
1359 (__arm_vrmlaldavhaxq_p): Remove.
1360 (__arm_vrmlsldavhaq_p): Remove.
1361 (__arm_vrmlsldavhaxq_p): Remove.
1362
1363 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1364
1365 * config/arm/iterators.md (MVE_VRMLxLDAVHAxQ)
1366 (MVE_VRMLxLDAVHAxQ_P): New.
1367 (mve_insn): Add vrmlaldavha, vrmlaldavhax, vrmlsldavha,
1368 vrmlsldavhax.
1369 (supf): Add VRMLALDAVHAXQ_P_S, VRMLALDAVHAXQ_S, VRMLSLDAVHAQ_P_S,
1370 VRMLSLDAVHAQ_S, VRMLSLDAVHAXQ_P_S, VRMLSLDAVHAXQ_S,
1371 VRMLALDAVHAQ_P_S.
1372 * config/arm/mve.md (mve_vrmlaldavhaq_<supf>v4si)
1373 (mve_vrmlaldavhaxq_sv4si, mve_vrmlsldavhaxq_sv4si)
1374 (mve_vrmlsldavhaq_sv4si): Merge into ...
1375 (@mve_<mve_insn>q_<supf>v4si): ... this.
1376 (mve_vrmlaldavhaq_p_sv4si, mve_vrmlaldavhaq_p_uv4si)
1377 (mve_vrmlaldavhaxq_p_sv4si, mve_vrmlsldavhaq_p_sv4si)
1378 (mve_vrmlsldavhaxq_p_sv4si): Merge into ...
1379 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
1380
1381 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1382
1383 * config/arm/arm-mve-builtins-base.cc (vqdmullbq, vqdmulltq): New.
1384 * config/arm/arm-mve-builtins-base.def (vqdmullbq, vqdmulltq):
1385 New.
1386 * config/arm/arm-mve-builtins-base.h (vqdmullbq, vqdmulltq): New.
1387 * config/arm/arm_mve.h (vqdmulltq): Remove.
1388 (vqdmullbq): Remove.
1389 (vqdmullbq_m): Remove.
1390 (vqdmulltq_m): Remove.
1391 (vqdmulltq_s16): Remove.
1392 (vqdmulltq_n_s16): Remove.
1393 (vqdmullbq_s16): Remove.
1394 (vqdmullbq_n_s16): Remove.
1395 (vqdmulltq_s32): Remove.
1396 (vqdmulltq_n_s32): Remove.
1397 (vqdmullbq_s32): Remove.
1398 (vqdmullbq_n_s32): Remove.
1399 (vqdmullbq_m_n_s32): Remove.
1400 (vqdmullbq_m_n_s16): Remove.
1401 (vqdmullbq_m_s32): Remove.
1402 (vqdmullbq_m_s16): Remove.
1403 (vqdmulltq_m_n_s32): Remove.
1404 (vqdmulltq_m_n_s16): Remove.
1405 (vqdmulltq_m_s32): Remove.
1406 (vqdmulltq_m_s16): Remove.
1407 (__arm_vqdmulltq_s16): Remove.
1408 (__arm_vqdmulltq_n_s16): Remove.
1409 (__arm_vqdmullbq_s16): Remove.
1410 (__arm_vqdmullbq_n_s16): Remove.
1411 (__arm_vqdmulltq_s32): Remove.
1412 (__arm_vqdmulltq_n_s32): Remove.
1413 (__arm_vqdmullbq_s32): Remove.
1414 (__arm_vqdmullbq_n_s32): Remove.
1415 (__arm_vqdmullbq_m_n_s32): Remove.
1416 (__arm_vqdmullbq_m_n_s16): Remove.
1417 (__arm_vqdmullbq_m_s32): Remove.
1418 (__arm_vqdmullbq_m_s16): Remove.
1419 (__arm_vqdmulltq_m_n_s32): Remove.
1420 (__arm_vqdmulltq_m_n_s16): Remove.
1421 (__arm_vqdmulltq_m_s32): Remove.
1422 (__arm_vqdmulltq_m_s16): Remove.
1423 (__arm_vqdmulltq): Remove.
1424 (__arm_vqdmullbq): Remove.
1425 (__arm_vqdmullbq_m): Remove.
1426 (__arm_vqdmulltq_m): Remove.
1427
1428 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1429
1430 * config/arm/iterators.md (MVE_VQDMULLxQ, MVE_VQDMULLxQ_M)
1431 (MVE_VQDMULLxQ_M_N, MVE_VQDMULLxQ_N): New.
1432 (mve_insn): Add vqdmullb, vqdmullt.
1433 (supf): Add VQDMULLBQ_S, VQDMULLBQ_M_S, VQDMULLBQ_M_N_S,
1434 VQDMULLBQ_N_S, VQDMULLTQ_S, VQDMULLTQ_M_S, VQDMULLTQ_M_N_S,
1435 VQDMULLTQ_N_S.
1436 * config/arm/mve.md (mve_vqdmullbq_n_s<mode>)
1437 (mve_vqdmulltq_n_s<mode>): Merge into ...
1438 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
1439 (mve_vqdmullbq_s<mode>, mve_vqdmulltq_s<mode>): Merge into ...
1440 (@mve_<mve_insn>q_<supf><mode>): ... this.
1441 (mve_vqdmullbq_m_n_s<mode>, mve_vqdmulltq_m_n_s<mode>): Merge into
1442 ...
1443 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
1444 (mve_vqdmullbq_m_s<mode>, mve_vqdmulltq_m_s<mode>): Merge into ...
1445 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
1446
1447 2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
1448
1449 * config/arm/arm-mve-builtins-shapes.cc (binary_widen_opt_n): New.
1450 * config/arm/arm-mve-builtins-shapes.h (binary_widen_opt_n): New.
1451
1452 2023-05-12 Kito Cheng <kito.cheng@sifive.com>
1453
1454 * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi):
1455 Drop unused parameter.
1456 (riscv_select_multilib): Ditto.
1457 (riscv_compute_multilib): Update call site of
1458 riscv_select_multilib_by_abi and riscv_select_multilib_by_abi.
1459
1460 2023-05-12 Juzhe Zhong <juzhe.zhong@rivai.ai>
1461
1462 * config/riscv/autovec.md (vec_init<mode><vel>): New pattern.
1463 * config/riscv/riscv-protos.h (expand_vec_init): New function.
1464 * config/riscv/riscv-v.cc (class rvv_builder): New class.
1465 (rvv_builder::can_duplicate_repeating_sequence_p): New function.
1466 (rvv_builder::get_merged_repeating_sequence): Ditto.
1467 (expand_vector_init_insert_elems): Ditto.
1468 (expand_vec_init): Ditto.
1469 * config/riscv/vector-iterators.md: New attribute.
1470
1471 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
1472
1473 * config/rs6000/rs6000-builtins.def
1474 (__builtin_vsx_scalar_insert_exp): Replace bif-pattern from xsiexpdp
1475 to xsiexpdp_di.
1476 (__builtin_vsx_scalar_insert_exp_dp): Replace bif-pattern from
1477 xsiexpdpf to xsiexpdpf_di.
1478 * config/rs6000/vsx.md (xsiexpdp): Rename to...
1479 (xsiexpdp_<mode>): ..., set the mode of second operand to GPR and
1480 replace TARGET_64BIT with TARGET_POWERPC64.
1481 (xsiexpdpf): Rename to...
1482 (xsiexpdpf_<mode>): ..., set the mode of second operand to GPR and
1483 replace TARGET_64BIT with TARGET_POWERPC64.
1484
1485 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
1486
1487 * config/rs6000/rs6000-builtins.def
1488 (__builtin_vsx_scalar_extract_sig): Set return type to const signed
1489 long long.
1490 * config/rs6000/vsx.md (xsxsigdp): Replace TARGET_64BIT with
1491 TARGET_POWERPC64.
1492
1493 2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
1494
1495 * config/rs6000/rs6000-builtins.def
1496 (__builtin_vsx_scalar_extract_exp): Set return type to const signed
1497 int and set its bif-pattern to xsxexpdp_si, move it from power9-64
1498 to power9 catalog.
1499 * config/rs6000/vsx.md (xsxexpdp): Rename to ...
1500 (xsxexpdp_<mode>): ..., set mode of operand 0 to GPR and remove
1501 TARGET_64BIT check.
1502 * doc/extend.texi (scalar_extract_exp): Remove 64-bit environment
1503 requirement when it has a 64-bit argument.
1504
1505 2023-05-12 Pan Li <pan2.li@intel.com>
1506 Richard Sandiford <richard.sandiford@arm.com>
1507 Richard Biener <rguenther@suse.de>
1508 Jakub Jelinek <jakub@redhat.com>
1509
1510 * mux-utils.h: Add overload operator == and != for pointer_mux.
1511 * var-tracking.cc: Included mux-utils.h for pointer_tmux.
1512 (decl_or_value): Changed from void * to pointer_mux<tree_node, rtx_def>.
1513 (dv_is_decl_p): Reconciled to the new type, aka pointer_mux.
1514 (dv_as_decl): Ditto.
1515 (dv_as_opaque): Removed due to unnecessary.
1516 (struct variable_hasher): Take decl_or_value as compare_type.
1517 (variable_hasher::equal): Diito.
1518 (dv_from_decl): Reconciled to the new type, aka pointer_mux.
1519 (dv_from_value): Ditto.
1520 (attrs_list_member): Ditto.
1521 (vars_copy): Ditto.
1522 (var_reg_decl_set): Ditto.
1523 (var_reg_delete_and_set): Ditto.
1524 (find_loc_in_1pdv): Ditto.
1525 (canonicalize_values_star): Ditto.
1526 (variable_post_merge_new_vals): Ditto.
1527 (dump_onepart_variable_differences): Ditto.
1528 (variable_different_p): Ditto.
1529 (set_slot_part): Ditto.
1530 (clobber_slot_part): Ditto.
1531 (clobber_variable_part): Ditto.
1532
1533 2023-05-11 mtsamis <manolis.tsamis@vrull.eu>
1534
1535 * match.pd: simplify vector shift + bit_and + multiply.
1536
1537 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1538
1539 * config/arm/arm-mve-builtins-base.cc (vmlaq, vmlasq, vqdmlahq)
1540 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
1541 * config/arm/arm-mve-builtins-base.def (vmlaq, vmlasq, vqdmlahq)
1542 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
1543 * config/arm/arm-mve-builtins-base.h (vmlaq, vmlasq, vqdmlahq)
1544 (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
1545 * config/arm/arm-mve-builtins.cc
1546 (function_instance::has_inactive_argument): Handle vmlaq, vmlasq,
1547 vqdmlahq, vqdmlashq, vqrdmlahq, vqrdmlashq.
1548 * config/arm/arm_mve.h (vqrdmlashq): Remove.
1549 (vqrdmlahq): Remove.
1550 (vqdmlashq): Remove.
1551 (vqdmlahq): Remove.
1552 (vmlasq): Remove.
1553 (vmlaq): Remove.
1554 (vmlaq_m): Remove.
1555 (vmlasq_m): Remove.
1556 (vqdmlashq_m): Remove.
1557 (vqdmlahq_m): Remove.
1558 (vqrdmlahq_m): Remove.
1559 (vqrdmlashq_m): Remove.
1560 (vmlasq_n_u8): Remove.
1561 (vmlaq_n_u8): Remove.
1562 (vqrdmlashq_n_s8): Remove.
1563 (vqrdmlahq_n_s8): Remove.
1564 (vqdmlahq_n_s8): Remove.
1565 (vqdmlashq_n_s8): Remove.
1566 (vmlasq_n_s8): Remove.
1567 (vmlaq_n_s8): Remove.
1568 (vmlasq_n_u16): Remove.
1569 (vmlaq_n_u16): Remove.
1570 (vqrdmlashq_n_s16): Remove.
1571 (vqrdmlahq_n_s16): Remove.
1572 (vqdmlashq_n_s16): Remove.
1573 (vqdmlahq_n_s16): Remove.
1574 (vmlasq_n_s16): Remove.
1575 (vmlaq_n_s16): Remove.
1576 (vmlasq_n_u32): Remove.
1577 (vmlaq_n_u32): Remove.
1578 (vqrdmlashq_n_s32): Remove.
1579 (vqrdmlahq_n_s32): Remove.
1580 (vqdmlashq_n_s32): Remove.
1581 (vqdmlahq_n_s32): Remove.
1582 (vmlasq_n_s32): Remove.
1583 (vmlaq_n_s32): Remove.
1584 (vmlaq_m_n_s8): Remove.
1585 (vmlaq_m_n_s32): Remove.
1586 (vmlaq_m_n_s16): Remove.
1587 (vmlaq_m_n_u8): Remove.
1588 (vmlaq_m_n_u32): Remove.
1589 (vmlaq_m_n_u16): Remove.
1590 (vmlasq_m_n_s8): Remove.
1591 (vmlasq_m_n_s32): Remove.
1592 (vmlasq_m_n_s16): Remove.
1593 (vmlasq_m_n_u8): Remove.
1594 (vmlasq_m_n_u32): Remove.
1595 (vmlasq_m_n_u16): Remove.
1596 (vqdmlashq_m_n_s8): Remove.
1597 (vqdmlashq_m_n_s32): Remove.
1598 (vqdmlashq_m_n_s16): Remove.
1599 (vqdmlahq_m_n_s8): Remove.
1600 (vqdmlahq_m_n_s32): Remove.
1601 (vqdmlahq_m_n_s16): Remove.
1602 (vqrdmlahq_m_n_s8): Remove.
1603 (vqrdmlahq_m_n_s32): Remove.
1604 (vqrdmlahq_m_n_s16): Remove.
1605 (vqrdmlashq_m_n_s8): Remove.
1606 (vqrdmlashq_m_n_s32): Remove.
1607 (vqrdmlashq_m_n_s16): Remove.
1608 (__arm_vmlasq_n_u8): Remove.
1609 (__arm_vmlaq_n_u8): Remove.
1610 (__arm_vqrdmlashq_n_s8): Remove.
1611 (__arm_vqdmlashq_n_s8): Remove.
1612 (__arm_vqrdmlahq_n_s8): Remove.
1613 (__arm_vqdmlahq_n_s8): Remove.
1614 (__arm_vmlasq_n_s8): Remove.
1615 (__arm_vmlaq_n_s8): Remove.
1616 (__arm_vmlasq_n_u16): Remove.
1617 (__arm_vmlaq_n_u16): Remove.
1618 (__arm_vqrdmlashq_n_s16): Remove.
1619 (__arm_vqdmlashq_n_s16): Remove.
1620 (__arm_vqrdmlahq_n_s16): Remove.
1621 (__arm_vqdmlahq_n_s16): Remove.
1622 (__arm_vmlasq_n_s16): Remove.
1623 (__arm_vmlaq_n_s16): Remove.
1624 (__arm_vmlasq_n_u32): Remove.
1625 (__arm_vmlaq_n_u32): Remove.
1626 (__arm_vqrdmlashq_n_s32): Remove.
1627 (__arm_vqdmlashq_n_s32): Remove.
1628 (__arm_vqrdmlahq_n_s32): Remove.
1629 (__arm_vqdmlahq_n_s32): Remove.
1630 (__arm_vmlasq_n_s32): Remove.
1631 (__arm_vmlaq_n_s32): Remove.
1632 (__arm_vmlaq_m_n_s8): Remove.
1633 (__arm_vmlaq_m_n_s32): Remove.
1634 (__arm_vmlaq_m_n_s16): Remove.
1635 (__arm_vmlaq_m_n_u8): Remove.
1636 (__arm_vmlaq_m_n_u32): Remove.
1637 (__arm_vmlaq_m_n_u16): Remove.
1638 (__arm_vmlasq_m_n_s8): Remove.
1639 (__arm_vmlasq_m_n_s32): Remove.
1640 (__arm_vmlasq_m_n_s16): Remove.
1641 (__arm_vmlasq_m_n_u8): Remove.
1642 (__arm_vmlasq_m_n_u32): Remove.
1643 (__arm_vmlasq_m_n_u16): Remove.
1644 (__arm_vqdmlahq_m_n_s8): Remove.
1645 (__arm_vqdmlahq_m_n_s32): Remove.
1646 (__arm_vqdmlahq_m_n_s16): Remove.
1647 (__arm_vqrdmlahq_m_n_s8): Remove.
1648 (__arm_vqrdmlahq_m_n_s32): Remove.
1649 (__arm_vqrdmlahq_m_n_s16): Remove.
1650 (__arm_vqrdmlashq_m_n_s8): Remove.
1651 (__arm_vqrdmlashq_m_n_s32): Remove.
1652 (__arm_vqrdmlashq_m_n_s16): Remove.
1653 (__arm_vqdmlashq_m_n_s8): Remove.
1654 (__arm_vqdmlashq_m_n_s16): Remove.
1655 (__arm_vqdmlashq_m_n_s32): Remove.
1656 (__arm_vmlasq): Remove.
1657 (__arm_vmlaq): Remove.
1658 (__arm_vqrdmlashq): Remove.
1659 (__arm_vqdmlashq): Remove.
1660 (__arm_vqrdmlahq): Remove.
1661 (__arm_vqdmlahq): Remove.
1662 (__arm_vmlaq_m): Remove.
1663 (__arm_vmlasq_m): Remove.
1664 (__arm_vqdmlahq_m): Remove.
1665 (__arm_vqrdmlahq_m): Remove.
1666 (__arm_vqrdmlashq_m): Remove.
1667 (__arm_vqdmlashq_m): Remove.
1668
1669 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1670
1671 * config/arm/iterators.md (MVE_VMLxQ_N): New.
1672 (mve_insn): Add vmla, vmlas, vqdmlah, vqdmlash, vqrdmlah,
1673 vqrdmlash.
1674 (supf): Add VQDMLAHQ_N_S, VQDMLASHQ_N_S, VQRDMLAHQ_N_S,
1675 VQRDMLASHQ_N_S.
1676 * config/arm/mve.md (mve_vmlaq_n_<supf><mode>)
1677 (mve_vmlasq_n_<supf><mode>, mve_vqdmlahq_n_<supf><mode>)
1678 (mve_vqdmlashq_n_<supf><mode>, mve_vqrdmlahq_n_<supf><mode>)
1679 (mve_vqrdmlashq_n_<supf><mode>): Merge into ...
1680 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
1681
1682 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1683
1684 * config/arm/arm-mve-builtins-shapes.cc (ternary_n): New.
1685 * config/arm/arm-mve-builtins-shapes.h (ternary_n): New.
1686
1687 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1688
1689 * config/arm/arm-mve-builtins-base.cc (vqdmladhq, vqdmladhxq)
1690 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
1691 (vqrdmlsdhxq): New.
1692 * config/arm/arm-mve-builtins-base.def (vqdmladhq, vqdmladhxq)
1693 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
1694 (vqrdmlsdhxq): New.
1695 * config/arm/arm-mve-builtins-base.h (vqdmladhq, vqdmladhxq)
1696 (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
1697 (vqrdmlsdhxq): New.
1698 * config/arm/arm-mve-builtins.cc
1699 (function_instance::has_inactive_argument): Handle vqrdmladhq,
1700 vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq vqdmladhq, vqdmladhxq,
1701 vqdmlsdhq, vqdmlsdhxq.
1702 * config/arm/arm_mve.h (vqrdmlsdhxq): Remove.
1703 (vqrdmlsdhq): Remove.
1704 (vqrdmladhxq): Remove.
1705 (vqrdmladhq): Remove.
1706 (vqdmlsdhxq): Remove.
1707 (vqdmlsdhq): Remove.
1708 (vqdmladhxq): Remove.
1709 (vqdmladhq): Remove.
1710 (vqdmladhq_m): Remove.
1711 (vqdmladhxq_m): Remove.
1712 (vqdmlsdhq_m): Remove.
1713 (vqdmlsdhxq_m): Remove.
1714 (vqrdmladhq_m): Remove.
1715 (vqrdmladhxq_m): Remove.
1716 (vqrdmlsdhq_m): Remove.
1717 (vqrdmlsdhxq_m): Remove.
1718 (vqrdmlsdhxq_s8): Remove.
1719 (vqrdmlsdhq_s8): Remove.
1720 (vqrdmladhxq_s8): Remove.
1721 (vqrdmladhq_s8): Remove.
1722 (vqdmlsdhxq_s8): Remove.
1723 (vqdmlsdhq_s8): Remove.
1724 (vqdmladhxq_s8): Remove.
1725 (vqdmladhq_s8): Remove.
1726 (vqrdmlsdhxq_s16): Remove.
1727 (vqrdmlsdhq_s16): Remove.
1728 (vqrdmladhxq_s16): Remove.
1729 (vqrdmladhq_s16): Remove.
1730 (vqdmlsdhxq_s16): Remove.
1731 (vqdmlsdhq_s16): Remove.
1732 (vqdmladhxq_s16): Remove.
1733 (vqdmladhq_s16): Remove.
1734 (vqrdmlsdhxq_s32): Remove.
1735 (vqrdmlsdhq_s32): Remove.
1736 (vqrdmladhxq_s32): Remove.
1737 (vqrdmladhq_s32): Remove.
1738 (vqdmlsdhxq_s32): Remove.
1739 (vqdmlsdhq_s32): Remove.
1740 (vqdmladhxq_s32): Remove.
1741 (vqdmladhq_s32): Remove.
1742 (vqdmladhq_m_s8): Remove.
1743 (vqdmladhq_m_s32): Remove.
1744 (vqdmladhq_m_s16): Remove.
1745 (vqdmladhxq_m_s8): Remove.
1746 (vqdmladhxq_m_s32): Remove.
1747 (vqdmladhxq_m_s16): Remove.
1748 (vqdmlsdhq_m_s8): Remove.
1749 (vqdmlsdhq_m_s32): Remove.
1750 (vqdmlsdhq_m_s16): Remove.
1751 (vqdmlsdhxq_m_s8): Remove.
1752 (vqdmlsdhxq_m_s32): Remove.
1753 (vqdmlsdhxq_m_s16): Remove.
1754 (vqrdmladhq_m_s8): Remove.
1755 (vqrdmladhq_m_s32): Remove.
1756 (vqrdmladhq_m_s16): Remove.
1757 (vqrdmladhxq_m_s8): Remove.
1758 (vqrdmladhxq_m_s32): Remove.
1759 (vqrdmladhxq_m_s16): Remove.
1760 (vqrdmlsdhq_m_s8): Remove.
1761 (vqrdmlsdhq_m_s32): Remove.
1762 (vqrdmlsdhq_m_s16): Remove.
1763 (vqrdmlsdhxq_m_s8): Remove.
1764 (vqrdmlsdhxq_m_s32): Remove.
1765 (vqrdmlsdhxq_m_s16): Remove.
1766 (__arm_vqrdmlsdhxq_s8): Remove.
1767 (__arm_vqrdmlsdhq_s8): Remove.
1768 (__arm_vqrdmladhxq_s8): Remove.
1769 (__arm_vqrdmladhq_s8): Remove.
1770 (__arm_vqdmlsdhxq_s8): Remove.
1771 (__arm_vqdmlsdhq_s8): Remove.
1772 (__arm_vqdmladhxq_s8): Remove.
1773 (__arm_vqdmladhq_s8): Remove.
1774 (__arm_vqrdmlsdhxq_s16): Remove.
1775 (__arm_vqrdmlsdhq_s16): Remove.
1776 (__arm_vqrdmladhxq_s16): Remove.
1777 (__arm_vqrdmladhq_s16): Remove.
1778 (__arm_vqdmlsdhxq_s16): Remove.
1779 (__arm_vqdmlsdhq_s16): Remove.
1780 (__arm_vqdmladhxq_s16): Remove.
1781 (__arm_vqdmladhq_s16): Remove.
1782 (__arm_vqrdmlsdhxq_s32): Remove.
1783 (__arm_vqrdmlsdhq_s32): Remove.
1784 (__arm_vqrdmladhxq_s32): Remove.
1785 (__arm_vqrdmladhq_s32): Remove.
1786 (__arm_vqdmlsdhxq_s32): Remove.
1787 (__arm_vqdmlsdhq_s32): Remove.
1788 (__arm_vqdmladhxq_s32): Remove.
1789 (__arm_vqdmladhq_s32): Remove.
1790 (__arm_vqdmladhq_m_s8): Remove.
1791 (__arm_vqdmladhq_m_s32): Remove.
1792 (__arm_vqdmladhq_m_s16): Remove.
1793 (__arm_vqdmladhxq_m_s8): Remove.
1794 (__arm_vqdmladhxq_m_s32): Remove.
1795 (__arm_vqdmladhxq_m_s16): Remove.
1796 (__arm_vqdmlsdhq_m_s8): Remove.
1797 (__arm_vqdmlsdhq_m_s32): Remove.
1798 (__arm_vqdmlsdhq_m_s16): Remove.
1799 (__arm_vqdmlsdhxq_m_s8): Remove.
1800 (__arm_vqdmlsdhxq_m_s32): Remove.
1801 (__arm_vqdmlsdhxq_m_s16): Remove.
1802 (__arm_vqrdmladhq_m_s8): Remove.
1803 (__arm_vqrdmladhq_m_s32): Remove.
1804 (__arm_vqrdmladhq_m_s16): Remove.
1805 (__arm_vqrdmladhxq_m_s8): Remove.
1806 (__arm_vqrdmladhxq_m_s32): Remove.
1807 (__arm_vqrdmladhxq_m_s16): Remove.
1808 (__arm_vqrdmlsdhq_m_s8): Remove.
1809 (__arm_vqrdmlsdhq_m_s32): Remove.
1810 (__arm_vqrdmlsdhq_m_s16): Remove.
1811 (__arm_vqrdmlsdhxq_m_s8): Remove.
1812 (__arm_vqrdmlsdhxq_m_s32): Remove.
1813 (__arm_vqrdmlsdhxq_m_s16): Remove.
1814 (__arm_vqrdmlsdhxq): Remove.
1815 (__arm_vqrdmlsdhq): Remove.
1816 (__arm_vqrdmladhxq): Remove.
1817 (__arm_vqrdmladhq): Remove.
1818 (__arm_vqdmlsdhxq): Remove.
1819 (__arm_vqdmlsdhq): Remove.
1820 (__arm_vqdmladhxq): Remove.
1821 (__arm_vqdmladhq): Remove.
1822 (__arm_vqdmladhq_m): Remove.
1823 (__arm_vqdmladhxq_m): Remove.
1824 (__arm_vqdmlsdhq_m): Remove.
1825 (__arm_vqdmlsdhxq_m): Remove.
1826 (__arm_vqrdmladhq_m): Remove.
1827 (__arm_vqrdmladhxq_m): Remove.
1828 (__arm_vqrdmlsdhq_m): Remove.
1829 (__arm_vqrdmlsdhxq_m): Remove.
1830
1831 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1832
1833 * config/arm/iterators.md (MVE_VQxDMLxDHxQ_S): New.
1834 (mve_insn): Add vqdmladh, vqdmladhx, vqdmlsdh, vqdmlsdhx,
1835 vqrdmladh, vqrdmladhx, vqrdmlsdh, vqrdmlsdhx.
1836 (supf): Add VQDMLADHQ_S, VQDMLADHXQ_S, VQDMLSDHQ_S, VQDMLSDHXQ_S,
1837 VQRDMLADHQ_S,VQRDMLADHXQ_S, VQRDMLSDHQ_S, VQRDMLSDHXQ_S.
1838 * config/arm/mve.md (mve_vqrdmladhq_s<mode>)
1839 (mve_vqrdmladhxq_s<mode>, mve_vqrdmlsdhq_s<mode>)
1840 (mve_vqrdmlsdhxq_s<mode>, mve_vqdmlsdhxq_s<mode>)
1841 (mve_vqdmlsdhq_s<mode>, mve_vqdmladhxq_s<mode>)
1842 (mve_vqdmladhq_s<mode>): Merge into ...
1843 (@mve_<mve_insn>q_<supf><mode>): ... this.
1844
1845 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1846
1847 * config/arm/arm-mve-builtins-shapes.cc (ternary): New.
1848 * config/arm/arm-mve-builtins-shapes.h (ternary): New.
1849
1850 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1851
1852 * config/arm/arm-mve-builtins-base.cc (vmlaldavaq, vmlaldavaxq)
1853 (vmlsldavaq, vmlsldavaxq): New.
1854 * config/arm/arm-mve-builtins-base.def (vmlaldavaq, vmlaldavaxq)
1855 (vmlsldavaq, vmlsldavaxq): New.
1856 * config/arm/arm-mve-builtins-base.h (vmlaldavaq, vmlaldavaxq)
1857 (vmlsldavaq, vmlsldavaxq): New.
1858 * config/arm/arm_mve.h (vmlaldavaq): Remove.
1859 (vmlaldavaxq): Remove.
1860 (vmlsldavaq): Remove.
1861 (vmlsldavaxq): Remove.
1862 (vmlaldavaq_p): Remove.
1863 (vmlaldavaxq_p): Remove.
1864 (vmlsldavaq_p): Remove.
1865 (vmlsldavaxq_p): Remove.
1866 (vmlaldavaq_s16): Remove.
1867 (vmlaldavaxq_s16): Remove.
1868 (vmlsldavaq_s16): Remove.
1869 (vmlsldavaxq_s16): Remove.
1870 (vmlaldavaq_u16): Remove.
1871 (vmlaldavaq_s32): Remove.
1872 (vmlaldavaxq_s32): Remove.
1873 (vmlsldavaq_s32): Remove.
1874 (vmlsldavaxq_s32): Remove.
1875 (vmlaldavaq_u32): Remove.
1876 (vmlaldavaq_p_s32): Remove.
1877 (vmlaldavaq_p_s16): Remove.
1878 (vmlaldavaq_p_u32): Remove.
1879 (vmlaldavaq_p_u16): Remove.
1880 (vmlaldavaxq_p_s32): Remove.
1881 (vmlaldavaxq_p_s16): Remove.
1882 (vmlsldavaq_p_s32): Remove.
1883 (vmlsldavaq_p_s16): Remove.
1884 (vmlsldavaxq_p_s32): Remove.
1885 (vmlsldavaxq_p_s16): Remove.
1886 (__arm_vmlaldavaq_s16): Remove.
1887 (__arm_vmlaldavaxq_s16): Remove.
1888 (__arm_vmlsldavaq_s16): Remove.
1889 (__arm_vmlsldavaxq_s16): Remove.
1890 (__arm_vmlaldavaq_u16): Remove.
1891 (__arm_vmlaldavaq_s32): Remove.
1892 (__arm_vmlaldavaxq_s32): Remove.
1893 (__arm_vmlsldavaq_s32): Remove.
1894 (__arm_vmlsldavaxq_s32): Remove.
1895 (__arm_vmlaldavaq_u32): Remove.
1896 (__arm_vmlaldavaq_p_s32): Remove.
1897 (__arm_vmlaldavaq_p_s16): Remove.
1898 (__arm_vmlaldavaq_p_u32): Remove.
1899 (__arm_vmlaldavaq_p_u16): Remove.
1900 (__arm_vmlaldavaxq_p_s32): Remove.
1901 (__arm_vmlaldavaxq_p_s16): Remove.
1902 (__arm_vmlsldavaq_p_s32): Remove.
1903 (__arm_vmlsldavaq_p_s16): Remove.
1904 (__arm_vmlsldavaxq_p_s32): Remove.
1905 (__arm_vmlsldavaxq_p_s16): Remove.
1906 (__arm_vmlaldavaq): Remove.
1907 (__arm_vmlaldavaxq): Remove.
1908 (__arm_vmlsldavaq): Remove.
1909 (__arm_vmlsldavaxq): Remove.
1910 (__arm_vmlaldavaq_p): Remove.
1911 (__arm_vmlaldavaxq_p): Remove.
1912 (__arm_vmlsldavaq_p): Remove.
1913 (__arm_vmlsldavaxq_p): Remove.
1914
1915 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1916
1917 * config/arm/iterators.md (MVE_VMLxLDAVAxQ, MVE_VMLxLDAVAxQ_P):
1918 New.
1919 (mve_insn): Add vmlaldava, vmlaldavax, vmlsldava, vmlsldavax.
1920 (supf): Add VMLALDAVAXQ_P_S, VMLALDAVAXQ_S, VMLSLDAVAQ_P_S,
1921 VMLSLDAVAQ_S, VMLSLDAVAXQ_P_S, VMLSLDAVAXQ_S.
1922 * config/arm/mve.md (mve_vmlaldavaq_<supf><mode>)
1923 (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
1924 (mve_vmlaldavaxq_s<mode>): Merge into ...
1925 (@mve_<mve_insn>q_<supf><mode>): ... this.
1926 (mve_vmlaldavaq_p_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>)
1927 (mve_vmlsldavaq_p_s<mode>, mve_vmlsldavaxq_p_s<mode>): Merge into
1928 ...
1929 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
1930
1931 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1932
1933 * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int64): New.
1934 * config/arm/arm-mve-builtins-shapes.h (binary_acca_int64): New.
1935
1936 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1937
1938 * config/arm/arm-mve-builtins-base.cc (vrmlaldavhq, vrmlaldavhxq)
1939 (vrmlsldavhq, vrmlsldavhxq): New.
1940 * config/arm/arm-mve-builtins-base.def (vrmlaldavhq, vrmlaldavhxq)
1941 (vrmlsldavhq, vrmlsldavhxq): New.
1942 * config/arm/arm-mve-builtins-base.h (vrmlaldavhq, vrmlaldavhxq)
1943 (vrmlsldavhq, vrmlsldavhxq): New.
1944 * config/arm/arm-mve-builtins-functions.h
1945 (unspec_mve_function_exact_insn_pred_p): Handle vrmlaldavhq,
1946 vrmlaldavhxq, vrmlsldavhq, vrmlsldavhxq.
1947 * config/arm/arm_mve.h (vrmlaldavhq): Remove.
1948 (vrmlsldavhxq): Remove.
1949 (vrmlsldavhq): Remove.
1950 (vrmlaldavhxq): Remove.
1951 (vrmlaldavhq_p): Remove.
1952 (vrmlaldavhxq_p): Remove.
1953 (vrmlsldavhq_p): Remove.
1954 (vrmlsldavhxq_p): Remove.
1955 (vrmlaldavhq_u32): Remove.
1956 (vrmlsldavhxq_s32): Remove.
1957 (vrmlsldavhq_s32): Remove.
1958 (vrmlaldavhxq_s32): Remove.
1959 (vrmlaldavhq_s32): Remove.
1960 (vrmlaldavhq_p_s32): Remove.
1961 (vrmlaldavhxq_p_s32): Remove.
1962 (vrmlsldavhq_p_s32): Remove.
1963 (vrmlsldavhxq_p_s32): Remove.
1964 (vrmlaldavhq_p_u32): Remove.
1965 (__arm_vrmlaldavhq_u32): Remove.
1966 (__arm_vrmlsldavhxq_s32): Remove.
1967 (__arm_vrmlsldavhq_s32): Remove.
1968 (__arm_vrmlaldavhxq_s32): Remove.
1969 (__arm_vrmlaldavhq_s32): Remove.
1970 (__arm_vrmlaldavhq_p_s32): Remove.
1971 (__arm_vrmlaldavhxq_p_s32): Remove.
1972 (__arm_vrmlsldavhq_p_s32): Remove.
1973 (__arm_vrmlsldavhxq_p_s32): Remove.
1974 (__arm_vrmlaldavhq_p_u32): Remove.
1975 (__arm_vrmlaldavhq): Remove.
1976 (__arm_vrmlsldavhxq): Remove.
1977 (__arm_vrmlsldavhq): Remove.
1978 (__arm_vrmlaldavhxq): Remove.
1979 (__arm_vrmlaldavhq_p): Remove.
1980 (__arm_vrmlaldavhxq_p): Remove.
1981 (__arm_vrmlsldavhq_p): Remove.
1982 (__arm_vrmlsldavhxq_p): Remove.
1983
1984 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
1985
1986 * config/arm/iterators.md (MVE_VRMLxLDAVxQ, MVE_VRMLxLDAVHxQ_P):
1987 New.
1988 (mve_insn): Add vrmlaldavh, vrmlaldavhx, vrmlsldavh, vrmlsldavhx.
1989 (supf): Add VRMLALDAVHXQ_P_S, VRMLALDAVHXQ_S, VRMLSLDAVHQ_P_S,
1990 VRMLSLDAVHQ_S, VRMLSLDAVHXQ_P_S, VRMLSLDAVHXQ_S.
1991 * config/arm/mve.md (mve_vrmlaldavhxq_sv4si)
1992 (mve_vrmlsldavhq_sv4si, mve_vrmlsldavhxq_sv4si)
1993 (mve_vrmlaldavhq_<supf>v4si): Merge into ...
1994 (@mve_<mve_insn>q_<supf>v4si): ... this.
1995 (mve_vrmlaldavhxq_p_sv4si, mve_vrmlsldavhq_p_sv4si)
1996 (mve_vrmlsldavhxq_p_sv4si, mve_vrmlaldavhq_p_<supf>v4si): Merge
1997 into ...
1998 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
1999
2000 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2001
2002 * config/arm/arm-mve-builtins-base.cc (vmlaldavq, vmlaldavxq)
2003 (vmlsldavq, vmlsldavxq): New.
2004 * config/arm/arm-mve-builtins-base.def (vmlaldavq, vmlaldavxq)
2005 (vmlsldavq, vmlsldavxq): New.
2006 * config/arm/arm-mve-builtins-base.h (vmlaldavq, vmlaldavxq)
2007 (vmlsldavq, vmlsldavxq): New.
2008 * config/arm/arm_mve.h (vmlaldavq): Remove.
2009 (vmlsldavxq): Remove.
2010 (vmlsldavq): Remove.
2011 (vmlaldavxq): Remove.
2012 (vmlaldavq_p): Remove.
2013 (vmlaldavxq_p): Remove.
2014 (vmlsldavq_p): Remove.
2015 (vmlsldavxq_p): Remove.
2016 (vmlaldavq_u16): Remove.
2017 (vmlsldavxq_s16): Remove.
2018 (vmlsldavq_s16): Remove.
2019 (vmlaldavxq_s16): Remove.
2020 (vmlaldavq_s16): Remove.
2021 (vmlaldavq_u32): Remove.
2022 (vmlsldavxq_s32): Remove.
2023 (vmlsldavq_s32): Remove.
2024 (vmlaldavxq_s32): Remove.
2025 (vmlaldavq_s32): Remove.
2026 (vmlaldavq_p_s16): Remove.
2027 (vmlaldavxq_p_s16): Remove.
2028 (vmlsldavq_p_s16): Remove.
2029 (vmlsldavxq_p_s16): Remove.
2030 (vmlaldavq_p_u16): Remove.
2031 (vmlaldavq_p_s32): Remove.
2032 (vmlaldavxq_p_s32): Remove.
2033 (vmlsldavq_p_s32): Remove.
2034 (vmlsldavxq_p_s32): Remove.
2035 (vmlaldavq_p_u32): Remove.
2036 (__arm_vmlaldavq_u16): Remove.
2037 (__arm_vmlsldavxq_s16): Remove.
2038 (__arm_vmlsldavq_s16): Remove.
2039 (__arm_vmlaldavxq_s16): Remove.
2040 (__arm_vmlaldavq_s16): Remove.
2041 (__arm_vmlaldavq_u32): Remove.
2042 (__arm_vmlsldavxq_s32): Remove.
2043 (__arm_vmlsldavq_s32): Remove.
2044 (__arm_vmlaldavxq_s32): Remove.
2045 (__arm_vmlaldavq_s32): Remove.
2046 (__arm_vmlaldavq_p_s16): Remove.
2047 (__arm_vmlaldavxq_p_s16): Remove.
2048 (__arm_vmlsldavq_p_s16): Remove.
2049 (__arm_vmlsldavxq_p_s16): Remove.
2050 (__arm_vmlaldavq_p_u16): Remove.
2051 (__arm_vmlaldavq_p_s32): Remove.
2052 (__arm_vmlaldavxq_p_s32): Remove.
2053 (__arm_vmlsldavq_p_s32): Remove.
2054 (__arm_vmlsldavxq_p_s32): Remove.
2055 (__arm_vmlaldavq_p_u32): Remove.
2056 (__arm_vmlaldavq): Remove.
2057 (__arm_vmlsldavxq): Remove.
2058 (__arm_vmlsldavq): Remove.
2059 (__arm_vmlaldavxq): Remove.
2060 (__arm_vmlaldavq_p): Remove.
2061 (__arm_vmlaldavxq_p): Remove.
2062 (__arm_vmlsldavq_p): Remove.
2063 (__arm_vmlsldavxq_p): Remove.
2064
2065 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2066
2067 * config/arm/iterators.md (MVE_VMLxLDAVxQ, MVE_VMLxLDAVxQ_P): New.
2068 (mve_insn): Add vmlaldav, vmlaldavx, vmlsldav, vmlsldavx.
2069 (supf): Add VMLALDAVXQ_S, VMLSLDAVQ_S, VMLSLDAVXQ_S,
2070 VMLALDAVXQ_P_S, VMLSLDAVQ_P_S, VMLSLDAVXQ_P_S.
2071 * config/arm/mve.md (mve_vmlaldavq_<supf><mode>)
2072 (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
2073 (mve_vmlsldavxq_s<mode>): Merge into ...
2074 (@mve_<mve_insn>q_<supf><mode>): ... this.
2075 (mve_vmlaldavq_p_<supf><mode>, mve_vmlaldavxq_p_s<mode>)
2076 (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>): Merge into
2077 ...
2078 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
2079
2080 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2081
2082 * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int64): New.
2083 * config/arm/arm-mve-builtins-shapes.h (binary_acc_int64): New.
2084
2085 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2086
2087 * config/arm/arm-mve-builtins-base.cc (vabavq): New.
2088 * config/arm/arm-mve-builtins-base.def (vabavq): New.
2089 * config/arm/arm-mve-builtins-base.h (vabavq): New.
2090 * config/arm/arm_mve.h (vabavq): Remove.
2091 (vabavq_p): Remove.
2092 (vabavq_s8): Remove.
2093 (vabavq_s16): Remove.
2094 (vabavq_s32): Remove.
2095 (vabavq_u8): Remove.
2096 (vabavq_u16): Remove.
2097 (vabavq_u32): Remove.
2098 (vabavq_p_s8): Remove.
2099 (vabavq_p_u8): Remove.
2100 (vabavq_p_s16): Remove.
2101 (vabavq_p_u16): Remove.
2102 (vabavq_p_s32): Remove.
2103 (vabavq_p_u32): Remove.
2104 (__arm_vabavq_s8): Remove.
2105 (__arm_vabavq_s16): Remove.
2106 (__arm_vabavq_s32): Remove.
2107 (__arm_vabavq_u8): Remove.
2108 (__arm_vabavq_u16): Remove.
2109 (__arm_vabavq_u32): Remove.
2110 (__arm_vabavq_p_s8): Remove.
2111 (__arm_vabavq_p_u8): Remove.
2112 (__arm_vabavq_p_s16): Remove.
2113 (__arm_vabavq_p_u16): Remove.
2114 (__arm_vabavq_p_s32): Remove.
2115 (__arm_vabavq_p_u32): Remove.
2116 (__arm_vabavq): Remove.
2117 (__arm_vabavq_p): Remove.
2118
2119 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2120
2121 * config/arm/iterators.md (mve_insn): Add vabav.
2122 * config/arm/mve.md (mve_vabavq_<supf><mode>): Rename into ...
2123 (@mve_<mve_insn>q_<supf><mode>): ... this,.
2124 (mve_vabavq_p_<supf><mode>): Rename into ...
2125 (@mve_<mve_insn>q_p_<supf><mode>): ... this,.
2126
2127 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2128
2129 * config/arm/arm-mve-builtins-base.cc (vmladavaxq, vmladavaq)
2130 (vmlsdavaq, vmlsdavaxq): New.
2131 * config/arm/arm-mve-builtins-base.def (vmladavaxq, vmladavaq)
2132 (vmlsdavaq, vmlsdavaxq): New.
2133 * config/arm/arm-mve-builtins-base.h (vmladavaxq, vmladavaq)
2134 (vmlsdavaq, vmlsdavaxq): New.
2135 * config/arm/arm_mve.h (vmladavaq): Remove.
2136 (vmlsdavaxq): Remove.
2137 (vmlsdavaq): Remove.
2138 (vmladavaxq): Remove.
2139 (vmladavaq_p): Remove.
2140 (vmladavaxq_p): Remove.
2141 (vmlsdavaq_p): Remove.
2142 (vmlsdavaxq_p): Remove.
2143 (vmladavaq_u8): Remove.
2144 (vmlsdavaxq_s8): Remove.
2145 (vmlsdavaq_s8): Remove.
2146 (vmladavaxq_s8): Remove.
2147 (vmladavaq_s8): Remove.
2148 (vmladavaq_u16): Remove.
2149 (vmlsdavaxq_s16): Remove.
2150 (vmlsdavaq_s16): Remove.
2151 (vmladavaxq_s16): Remove.
2152 (vmladavaq_s16): Remove.
2153 (vmladavaq_u32): Remove.
2154 (vmlsdavaxq_s32): Remove.
2155 (vmlsdavaq_s32): Remove.
2156 (vmladavaxq_s32): Remove.
2157 (vmladavaq_s32): Remove.
2158 (vmladavaq_p_s8): Remove.
2159 (vmladavaq_p_s32): Remove.
2160 (vmladavaq_p_s16): Remove.
2161 (vmladavaq_p_u8): Remove.
2162 (vmladavaq_p_u32): Remove.
2163 (vmladavaq_p_u16): Remove.
2164 (vmladavaxq_p_s8): Remove.
2165 (vmladavaxq_p_s32): Remove.
2166 (vmladavaxq_p_s16): Remove.
2167 (vmlsdavaq_p_s8): Remove.
2168 (vmlsdavaq_p_s32): Remove.
2169 (vmlsdavaq_p_s16): Remove.
2170 (vmlsdavaxq_p_s8): Remove.
2171 (vmlsdavaxq_p_s32): Remove.
2172 (vmlsdavaxq_p_s16): Remove.
2173 (__arm_vmladavaq_u8): Remove.
2174 (__arm_vmlsdavaxq_s8): Remove.
2175 (__arm_vmlsdavaq_s8): Remove.
2176 (__arm_vmladavaxq_s8): Remove.
2177 (__arm_vmladavaq_s8): Remove.
2178 (__arm_vmladavaq_u16): Remove.
2179 (__arm_vmlsdavaxq_s16): Remove.
2180 (__arm_vmlsdavaq_s16): Remove.
2181 (__arm_vmladavaxq_s16): Remove.
2182 (__arm_vmladavaq_s16): Remove.
2183 (__arm_vmladavaq_u32): Remove.
2184 (__arm_vmlsdavaxq_s32): Remove.
2185 (__arm_vmlsdavaq_s32): Remove.
2186 (__arm_vmladavaxq_s32): Remove.
2187 (__arm_vmladavaq_s32): Remove.
2188 (__arm_vmladavaq_p_s8): Remove.
2189 (__arm_vmladavaq_p_s32): Remove.
2190 (__arm_vmladavaq_p_s16): Remove.
2191 (__arm_vmladavaq_p_u8): Remove.
2192 (__arm_vmladavaq_p_u32): Remove.
2193 (__arm_vmladavaq_p_u16): Remove.
2194 (__arm_vmladavaxq_p_s8): Remove.
2195 (__arm_vmladavaxq_p_s32): Remove.
2196 (__arm_vmladavaxq_p_s16): Remove.
2197 (__arm_vmlsdavaq_p_s8): Remove.
2198 (__arm_vmlsdavaq_p_s32): Remove.
2199 (__arm_vmlsdavaq_p_s16): Remove.
2200 (__arm_vmlsdavaxq_p_s8): Remove.
2201 (__arm_vmlsdavaxq_p_s32): Remove.
2202 (__arm_vmlsdavaxq_p_s16): Remove.
2203 (__arm_vmladavaq): Remove.
2204 (__arm_vmlsdavaxq): Remove.
2205 (__arm_vmlsdavaq): Remove.
2206 (__arm_vmladavaxq): Remove.
2207 (__arm_vmladavaq_p): Remove.
2208 (__arm_vmladavaxq_p): Remove.
2209 (__arm_vmlsdavaq_p): Remove.
2210 (__arm_vmlsdavaxq_p): Remove.
2211
2212 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2213
2214 * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): New.
2215 * config/arm/arm-mve-builtins-shapes.h (binary_acca_int32): New.
2216
2217 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2218
2219 * config/arm/arm-mve-builtins-base.cc (vmladavq, vmladavxq)
2220 (vmlsdavq, vmlsdavxq): New.
2221 * config/arm/arm-mve-builtins-base.def (vmladavq, vmladavxq)
2222 (vmlsdavq, vmlsdavxq): New.
2223 * config/arm/arm-mve-builtins-base.h (vmladavq, vmladavxq)
2224 (vmlsdavq, vmlsdavxq): New.
2225 * config/arm/arm_mve.h (vmladavq): Remove.
2226 (vmlsdavxq): Remove.
2227 (vmlsdavq): Remove.
2228 (vmladavxq): Remove.
2229 (vmladavq_p): Remove.
2230 (vmlsdavxq_p): Remove.
2231 (vmlsdavq_p): Remove.
2232 (vmladavxq_p): Remove.
2233 (vmladavq_u8): Remove.
2234 (vmlsdavxq_s8): Remove.
2235 (vmlsdavq_s8): Remove.
2236 (vmladavxq_s8): Remove.
2237 (vmladavq_s8): Remove.
2238 (vmladavq_u16): Remove.
2239 (vmlsdavxq_s16): Remove.
2240 (vmlsdavq_s16): Remove.
2241 (vmladavxq_s16): Remove.
2242 (vmladavq_s16): Remove.
2243 (vmladavq_u32): Remove.
2244 (vmlsdavxq_s32): Remove.
2245 (vmlsdavq_s32): Remove.
2246 (vmladavxq_s32): Remove.
2247 (vmladavq_s32): Remove.
2248 (vmladavq_p_u8): Remove.
2249 (vmlsdavxq_p_s8): Remove.
2250 (vmlsdavq_p_s8): Remove.
2251 (vmladavxq_p_s8): Remove.
2252 (vmladavq_p_s8): Remove.
2253 (vmladavq_p_u16): Remove.
2254 (vmlsdavxq_p_s16): Remove.
2255 (vmlsdavq_p_s16): Remove.
2256 (vmladavxq_p_s16): Remove.
2257 (vmladavq_p_s16): Remove.
2258 (vmladavq_p_u32): Remove.
2259 (vmlsdavxq_p_s32): Remove.
2260 (vmlsdavq_p_s32): Remove.
2261 (vmladavxq_p_s32): Remove.
2262 (vmladavq_p_s32): Remove.
2263 (__arm_vmladavq_u8): Remove.
2264 (__arm_vmlsdavxq_s8): Remove.
2265 (__arm_vmlsdavq_s8): Remove.
2266 (__arm_vmladavxq_s8): Remove.
2267 (__arm_vmladavq_s8): Remove.
2268 (__arm_vmladavq_u16): Remove.
2269 (__arm_vmlsdavxq_s16): Remove.
2270 (__arm_vmlsdavq_s16): Remove.
2271 (__arm_vmladavxq_s16): Remove.
2272 (__arm_vmladavq_s16): Remove.
2273 (__arm_vmladavq_u32): Remove.
2274 (__arm_vmlsdavxq_s32): Remove.
2275 (__arm_vmlsdavq_s32): Remove.
2276 (__arm_vmladavxq_s32): Remove.
2277 (__arm_vmladavq_s32): Remove.
2278 (__arm_vmladavq_p_u8): Remove.
2279 (__arm_vmlsdavxq_p_s8): Remove.
2280 (__arm_vmlsdavq_p_s8): Remove.
2281 (__arm_vmladavxq_p_s8): Remove.
2282 (__arm_vmladavq_p_s8): Remove.
2283 (__arm_vmladavq_p_u16): Remove.
2284 (__arm_vmlsdavxq_p_s16): Remove.
2285 (__arm_vmlsdavq_p_s16): Remove.
2286 (__arm_vmladavxq_p_s16): Remove.
2287 (__arm_vmladavq_p_s16): Remove.
2288 (__arm_vmladavq_p_u32): Remove.
2289 (__arm_vmlsdavxq_p_s32): Remove.
2290 (__arm_vmlsdavq_p_s32): Remove.
2291 (__arm_vmladavxq_p_s32): Remove.
2292 (__arm_vmladavq_p_s32): Remove.
2293 (__arm_vmladavq): Remove.
2294 (__arm_vmlsdavxq): Remove.
2295 (__arm_vmlsdavq): Remove.
2296 (__arm_vmladavxq): Remove.
2297 (__arm_vmladavq_p): Remove.
2298 (__arm_vmlsdavxq_p): Remove.
2299 (__arm_vmlsdavq_p): Remove.
2300 (__arm_vmladavxq_p): Remove.
2301
2302 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2303
2304 * config/arm/iterators.md (MVE_VMLxDAVQ, MVE_VMLxDAVQ_P)
2305 (MVE_VMLxDAVAQ, MVE_VMLxDAVAQ_P): New.
2306 (mve_insn): Add vmladava, vmladavax, vmladav, vmladavx, vmlsdava,
2307 vmlsdavax, vmlsdav, vmlsdavx.
2308 (supf): Add VMLADAVAXQ_P_S, VMLADAVAXQ_S, VMLADAVXQ_P_S,
2309 VMLADAVXQ_S, VMLSDAVAQ_P_S, VMLSDAVAQ_S, VMLSDAVAXQ_P_S,
2310 VMLSDAVAXQ_S, VMLSDAVQ_P_S, VMLSDAVQ_S, VMLSDAVXQ_P_S,
2311 VMLSDAVXQ_S.
2312 * config/arm/mve.md (mve_vmladavq_<supf><mode>)
2313 (mve_vmladavxq_s<mode>, mve_vmlsdavq_s<mode>)
2314 (mve_vmlsdavxq_s<mode>): Merge into ...
2315 (@mve_<mve_insn>q_<supf><mode>): ... this.
2316 (mve_vmlsdavaq_s<mode>, mve_vmladavaxq_s<mode>)
2317 (mve_vmlsdavaxq_s<mode>, mve_vmladavaq_<supf><mode>): Merge into
2318 ...
2319 (@mve_<mve_insn>q_<supf><mode>): ... this.
2320 (mve_vmladavq_p_<supf><mode>, mve_vmladavxq_p_s<mode>)
2321 (mve_vmlsdavq_p_s<mode>, mve_vmlsdavxq_p_s<mode>): Merge into ...
2322 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
2323 (mve_vmladavaq_p_<supf><mode>, mve_vmladavaxq_p_s<mode>)
2324 (mve_vmlsdavaq_p_s<mode>, mve_vmlsdavaxq_p_s<mode>): Merge into
2325 ...
2326 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
2327
2328 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2329
2330 * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int32): New.
2331 * config/arm/arm-mve-builtins-shapes.h (binary_acc_int32): New.
2332
2333 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2334
2335 * config/arm/arm-mve-builtins-base.cc (vaddlvaq): New.
2336 * config/arm/arm-mve-builtins-base.def (vaddlvaq): New.
2337 * config/arm/arm-mve-builtins-base.h (vaddlvaq): New.
2338 * config/arm/arm_mve.h (vaddlvaq): Remove.
2339 (vaddlvaq_p): Remove.
2340 (vaddlvaq_u32): Remove.
2341 (vaddlvaq_s32): Remove.
2342 (vaddlvaq_p_s32): Remove.
2343 (vaddlvaq_p_u32): Remove.
2344 (__arm_vaddlvaq_u32): Remove.
2345 (__arm_vaddlvaq_s32): Remove.
2346 (__arm_vaddlvaq_p_s32): Remove.
2347 (__arm_vaddlvaq_p_u32): Remove.
2348 (__arm_vaddlvaq): Remove.
2349 (__arm_vaddlvaq_p): Remove.
2350
2351 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2352
2353 * config/arm/arm-mve-builtins-shapes.cc (unary_widen_acc): New.
2354 * config/arm/arm-mve-builtins-shapes.h (unary_widen_acc): New.
2355
2356 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2357
2358 * config/arm/iterators.md (mve_insn): Add vaddlva.
2359 * config/arm/mve.md (mve_vaddlvaq_<supf>v4si): Rename into ...
2360 (@mve_<mve_insn>q_<supf>v4si): ... this.
2361 (mve_vaddlvaq_p_<supf>v4si): Rename into ...
2362 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
2363
2364 2023-05-11 Uros Bizjak <ubizjak@gmail.com>
2365
2366 PR target/109807
2367 * config/i386/i386.cc (ix86_widen_mult_cost):
2368 Handle V4HImode and V2SImode.
2369
2370 2023-05-11 Andrew Pinski <apinski@marvell.com>
2371
2372 * tree-ssa-dce.cc (simple_dce_from_worklist): For ssa names
2373 defined by a phi node with more than one uses, allow for the
2374 only uses are in that same defining statement.
2375
2376 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
2377
2378 * config/riscv/riscv.cc (riscv_const_insns): Add permissible
2379 vector constants.
2380
2381 2023-05-11 Pan Li <pan2.li@intel.com>
2382
2383 * config/riscv/vector.md: Add comments for simplifying to vmset.
2384
2385 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
2386
2387 * config/riscv/autovec.md (<optab><mode>3): Add scalar shift
2388 pattern.
2389 (v<optab><mode>3): Add vector shift pattern.
2390 * config/riscv/vector-iterators.md: New iterator.
2391
2392 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
2393
2394 * config/riscv/autovec.md: Use renamed functions.
2395 * config/riscv/riscv-protos.h (emit_vlmax_op): Rename.
2396 (emit_vlmax_reg_op): To this.
2397 (emit_nonvlmax_op): Rename.
2398 (emit_len_op): To this.
2399 (emit_nonvlmax_binop): Rename.
2400 (emit_len_binop): To this.
2401 * config/riscv/riscv-v.cc (emit_pred_op): Add default parameter.
2402 (emit_pred_binop): Remove vlmax_p.
2403 (emit_vlmax_op): Rename.
2404 (emit_vlmax_reg_op): To this.
2405 (emit_nonvlmax_op): Rename.
2406 (emit_len_op): To this.
2407 (emit_nonvlmax_binop): Rename.
2408 (emit_len_binop): To this.
2409 (sew64_scalar_helper): Use renamed functions.
2410 (expand_tuple_move): Use renamed functions.
2411 * config/riscv/riscv.cc (vector_zero_call_used_regs): Use
2412 renamed functions.
2413 * config/riscv/vector.md: Use renamed functions.
2414
2415 2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
2416 Michael Collison <collison@rivosinc.com>
2417
2418 * config/riscv/autovec.md (<optab><mode>3): Add integer binops.
2419 * config/riscv/riscv-protos.h (emit_nonvlmax_binop): Declare.
2420 * config/riscv/riscv-v.cc (emit_pred_op): New function.
2421 (set_expander_dest_and_mask): New function.
2422 (emit_pred_binop): New function.
2423 (emit_nonvlmax_binop): New function.
2424
2425 2023-05-11 Pan Li <pan2.li@intel.com>
2426
2427 * cfgloopmanip.cc (create_empty_loop_on_edge): Add PLUS_EXPR.
2428 * gimple-loop-interchange.cc
2429 (tree_loop_interchange::map_inductions_to_loop): Ditto.
2430 * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Ditto.
2431 * tree-ssa-loop-ivopts.cc (create_new_iv): Ditto.
2432 * tree-ssa-loop-manip.cc (create_iv): Ditto.
2433 (tree_transform_and_unroll_loop): Ditto.
2434 (canonicalize_loop_ivs): Ditto.
2435 * tree-ssa-loop-manip.h (create_iv): Ditto.
2436 * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Ditto.
2437 * tree-vect-loop-manip.cc (vect_set_loop_controls_directly):
2438 Ditto.
2439 (vect_set_loop_condition_normal): Ditto.
2440 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Ditto.
2441 * tree-vect-stmts.cc (vectorizable_store): Ditto.
2442 (vectorizable_load): Ditto.
2443
2444 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2445
2446 * config/arm/arm-mve-builtins-base.cc (vmovlbq, vmovltq): New.
2447 * config/arm/arm-mve-builtins-base.def (vmovlbq, vmovltq): New.
2448 * config/arm/arm-mve-builtins-base.h (vmovlbq, vmovltq): New.
2449 * config/arm/arm_mve.h (vmovlbq): Remove.
2450 (vmovltq): Remove.
2451 (vmovlbq_m): Remove.
2452 (vmovltq_m): Remove.
2453 (vmovlbq_x): Remove.
2454 (vmovltq_x): Remove.
2455 (vmovlbq_s8): Remove.
2456 (vmovlbq_s16): Remove.
2457 (vmovltq_s8): Remove.
2458 (vmovltq_s16): Remove.
2459 (vmovltq_u8): Remove.
2460 (vmovltq_u16): Remove.
2461 (vmovlbq_u8): Remove.
2462 (vmovlbq_u16): Remove.
2463 (vmovlbq_m_s8): Remove.
2464 (vmovltq_m_s8): Remove.
2465 (vmovlbq_m_u8): Remove.
2466 (vmovltq_m_u8): Remove.
2467 (vmovlbq_m_s16): Remove.
2468 (vmovltq_m_s16): Remove.
2469 (vmovlbq_m_u16): Remove.
2470 (vmovltq_m_u16): Remove.
2471 (vmovlbq_x_s8): Remove.
2472 (vmovlbq_x_s16): Remove.
2473 (vmovlbq_x_u8): Remove.
2474 (vmovlbq_x_u16): Remove.
2475 (vmovltq_x_s8): Remove.
2476 (vmovltq_x_s16): Remove.
2477 (vmovltq_x_u8): Remove.
2478 (vmovltq_x_u16): Remove.
2479 (__arm_vmovlbq_s8): Remove.
2480 (__arm_vmovlbq_s16): Remove.
2481 (__arm_vmovltq_s8): Remove.
2482 (__arm_vmovltq_s16): Remove.
2483 (__arm_vmovltq_u8): Remove.
2484 (__arm_vmovltq_u16): Remove.
2485 (__arm_vmovlbq_u8): Remove.
2486 (__arm_vmovlbq_u16): Remove.
2487 (__arm_vmovlbq_m_s8): Remove.
2488 (__arm_vmovltq_m_s8): Remove.
2489 (__arm_vmovlbq_m_u8): Remove.
2490 (__arm_vmovltq_m_u8): Remove.
2491 (__arm_vmovlbq_m_s16): Remove.
2492 (__arm_vmovltq_m_s16): Remove.
2493 (__arm_vmovlbq_m_u16): Remove.
2494 (__arm_vmovltq_m_u16): Remove.
2495 (__arm_vmovlbq_x_s8): Remove.
2496 (__arm_vmovlbq_x_s16): Remove.
2497 (__arm_vmovlbq_x_u8): Remove.
2498 (__arm_vmovlbq_x_u16): Remove.
2499 (__arm_vmovltq_x_s8): Remove.
2500 (__arm_vmovltq_x_s16): Remove.
2501 (__arm_vmovltq_x_u8): Remove.
2502 (__arm_vmovltq_x_u16): Remove.
2503 (__arm_vmovlbq): Remove.
2504 (__arm_vmovltq): Remove.
2505 (__arm_vmovlbq_m): Remove.
2506 (__arm_vmovltq_m): Remove.
2507 (__arm_vmovlbq_x): Remove.
2508 (__arm_vmovltq_x): Remove.
2509
2510 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2511
2512 * config/arm/arm-mve-builtins-shapes.cc (unary_widen): New.
2513 * config/arm/arm-mve-builtins-shapes.h (unary_widen): New.
2514
2515 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2516
2517 * config/arm/iterators.md (mve_insn): Add vmovlb, vmovlt.
2518 (VMOVLBQ, VMOVLTQ): Merge into ...
2519 (VMOVLxQ): ... this.
2520 (VMOVLTQ_M, VMOVLBQ_M): Merge into ...
2521 (VMOVLxQ_M): ... this.
2522 * config/arm/mve.md (mve_vmovltq_<supf><mode>)
2523 (mve_vmovlbq_<supf><mode>): Merge into ...
2524 (@mve_<mve_insn>q_<supf><mode>): ... this.
2525 (mve_vmovlbq_m_<supf><mode>, mve_vmovltq_m_<supf><mode>): Merge
2526 into ...
2527 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
2528
2529 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2530
2531 * config/arm/arm-mve-builtins-base.cc (vaddlvq): New.
2532 * config/arm/arm-mve-builtins-base.def (vaddlvq): New.
2533 * config/arm/arm-mve-builtins-base.h (vaddlvq): New.
2534 * config/arm/arm-mve-builtins-functions.h
2535 (unspec_mve_function_exact_insn_pred_p): Handle vaddlvq.
2536 * config/arm/arm_mve.h (vaddlvq): Remove.
2537 (vaddlvq_p): Remove.
2538 (vaddlvq_s32): Remove.
2539 (vaddlvq_u32): Remove.
2540 (vaddlvq_p_s32): Remove.
2541 (vaddlvq_p_u32): Remove.
2542 (__arm_vaddlvq_s32): Remove.
2543 (__arm_vaddlvq_u32): Remove.
2544 (__arm_vaddlvq_p_s32): Remove.
2545 (__arm_vaddlvq_p_u32): Remove.
2546 (__arm_vaddlvq): Remove.
2547 (__arm_vaddlvq_p): Remove.
2548
2549 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2550
2551 * config/arm/iterators.md (mve_insn): Add vaddlv.
2552 * config/arm/mve.md (mve_vaddlvq_<supf>v4si): Rename into ...
2553 (@mve_<mve_insn>q_<supf>v4si): ... this.
2554 (mve_vaddlvq_p_<supf>v4si): Rename into ...
2555 (@mve_<mve_insn>q_p_<supf>v4si): ... this.
2556
2557 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2558
2559 * config/arm/arm-mve-builtins-shapes.cc (unary_acc): New.
2560 * config/arm/arm-mve-builtins-shapes.h (unary_acc): New.
2561
2562 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2563
2564 * config/arm/arm-mve-builtins-base.cc (vaddvaq): New.
2565 * config/arm/arm-mve-builtins-base.def (vaddvaq): New.
2566 * config/arm/arm-mve-builtins-base.h (vaddvaq): New.
2567 * config/arm/arm_mve.h (vaddvaq): Remove.
2568 (vaddvaq_p): Remove.
2569 (vaddvaq_u8): Remove.
2570 (vaddvaq_s8): Remove.
2571 (vaddvaq_u16): Remove.
2572 (vaddvaq_s16): Remove.
2573 (vaddvaq_u32): Remove.
2574 (vaddvaq_s32): Remove.
2575 (vaddvaq_p_u8): Remove.
2576 (vaddvaq_p_s8): Remove.
2577 (vaddvaq_p_u16): Remove.
2578 (vaddvaq_p_s16): Remove.
2579 (vaddvaq_p_u32): Remove.
2580 (vaddvaq_p_s32): Remove.
2581 (__arm_vaddvaq_u8): Remove.
2582 (__arm_vaddvaq_s8): Remove.
2583 (__arm_vaddvaq_u16): Remove.
2584 (__arm_vaddvaq_s16): Remove.
2585 (__arm_vaddvaq_u32): Remove.
2586 (__arm_vaddvaq_s32): Remove.
2587 (__arm_vaddvaq_p_u8): Remove.
2588 (__arm_vaddvaq_p_s8): Remove.
2589 (__arm_vaddvaq_p_u16): Remove.
2590 (__arm_vaddvaq_p_s16): Remove.
2591 (__arm_vaddvaq_p_u32): Remove.
2592 (__arm_vaddvaq_p_s32): Remove.
2593 (__arm_vaddvaq): Remove.
2594 (__arm_vaddvaq_p): Remove.
2595
2596 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2597
2598 * config/arm/arm-mve-builtins-shapes.cc (unary_int32_acc): New.
2599 * config/arm/arm-mve-builtins-shapes.h (unary_int32_acc): New.
2600
2601 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2602
2603 * config/arm/iterators.md (mve_insn): Add vaddva.
2604 * config/arm/mve.md (mve_vaddvaq_<supf><mode>): Rename into ...
2605 (@mve_<mve_insn>q_<supf><mode>): ... this.
2606 (mve_vaddvaq_p_<supf><mode>): Rename into ...
2607 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
2608
2609 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2610
2611 * config/arm/arm-mve-builtins-base.cc (vaddvq): New.
2612 * config/arm/arm-mve-builtins-base.def (vaddvq): New.
2613 * config/arm/arm-mve-builtins-base.h (vaddvq): New.
2614 * config/arm/arm_mve.h (vaddvq): Remove.
2615 (vaddvq_p): Remove.
2616 (vaddvq_s8): Remove.
2617 (vaddvq_s16): Remove.
2618 (vaddvq_s32): Remove.
2619 (vaddvq_u8): Remove.
2620 (vaddvq_u16): Remove.
2621 (vaddvq_u32): Remove.
2622 (vaddvq_p_u8): Remove.
2623 (vaddvq_p_s8): Remove.
2624 (vaddvq_p_u16): Remove.
2625 (vaddvq_p_s16): Remove.
2626 (vaddvq_p_u32): Remove.
2627 (vaddvq_p_s32): Remove.
2628 (__arm_vaddvq_s8): Remove.
2629 (__arm_vaddvq_s16): Remove.
2630 (__arm_vaddvq_s32): Remove.
2631 (__arm_vaddvq_u8): Remove.
2632 (__arm_vaddvq_u16): Remove.
2633 (__arm_vaddvq_u32): Remove.
2634 (__arm_vaddvq_p_u8): Remove.
2635 (__arm_vaddvq_p_s8): Remove.
2636 (__arm_vaddvq_p_u16): Remove.
2637 (__arm_vaddvq_p_s16): Remove.
2638 (__arm_vaddvq_p_u32): Remove.
2639 (__arm_vaddvq_p_s32): Remove.
2640 (__arm_vaddvq): Remove.
2641 (__arm_vaddvq_p): Remove.
2642
2643 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2644
2645 * config/arm/arm-mve-builtins-shapes.cc (unary_int32): New.
2646 * config/arm/arm-mve-builtins-shapes.h (unary_int32): New.
2647
2648 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2649
2650 * config/arm/iterators.md (mve_insn): Add vaddv.
2651 * config/arm/mve.md (@mve_vaddvq_<supf><mode>): Rename into ...
2652 (@mve_<mve_insn>q_<supf><mode>): ... this.
2653 (mve_vaddvq_p_<supf><mode>): Rename into ...
2654 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
2655 * config/arm/vec-common.md: Use gen_mve_q instead of
2656 gen_mve_vaddvq.
2657
2658 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2659
2660 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N): New.
2661 (vdupq): New.
2662 * config/arm/arm-mve-builtins-base.def (vdupq): New.
2663 * config/arm/arm-mve-builtins-base.h: (vdupq): New.
2664 * config/arm/arm_mve.h (vdupq_n): Remove.
2665 (vdupq_m): Remove.
2666 (vdupq_n_f16): Remove.
2667 (vdupq_n_f32): Remove.
2668 (vdupq_n_s8): Remove.
2669 (vdupq_n_s16): Remove.
2670 (vdupq_n_s32): Remove.
2671 (vdupq_n_u8): Remove.
2672 (vdupq_n_u16): Remove.
2673 (vdupq_n_u32): Remove.
2674 (vdupq_m_n_u8): Remove.
2675 (vdupq_m_n_s8): Remove.
2676 (vdupq_m_n_u16): Remove.
2677 (vdupq_m_n_s16): Remove.
2678 (vdupq_m_n_u32): Remove.
2679 (vdupq_m_n_s32): Remove.
2680 (vdupq_m_n_f16): Remove.
2681 (vdupq_m_n_f32): Remove.
2682 (vdupq_x_n_s8): Remove.
2683 (vdupq_x_n_s16): Remove.
2684 (vdupq_x_n_s32): Remove.
2685 (vdupq_x_n_u8): Remove.
2686 (vdupq_x_n_u16): Remove.
2687 (vdupq_x_n_u32): Remove.
2688 (vdupq_x_n_f16): Remove.
2689 (vdupq_x_n_f32): Remove.
2690 (__arm_vdupq_n_s8): Remove.
2691 (__arm_vdupq_n_s16): Remove.
2692 (__arm_vdupq_n_s32): Remove.
2693 (__arm_vdupq_n_u8): Remove.
2694 (__arm_vdupq_n_u16): Remove.
2695 (__arm_vdupq_n_u32): Remove.
2696 (__arm_vdupq_m_n_u8): Remove.
2697 (__arm_vdupq_m_n_s8): Remove.
2698 (__arm_vdupq_m_n_u16): Remove.
2699 (__arm_vdupq_m_n_s16): Remove.
2700 (__arm_vdupq_m_n_u32): Remove.
2701 (__arm_vdupq_m_n_s32): Remove.
2702 (__arm_vdupq_x_n_s8): Remove.
2703 (__arm_vdupq_x_n_s16): Remove.
2704 (__arm_vdupq_x_n_s32): Remove.
2705 (__arm_vdupq_x_n_u8): Remove.
2706 (__arm_vdupq_x_n_u16): Remove.
2707 (__arm_vdupq_x_n_u32): Remove.
2708 (__arm_vdupq_n_f16): Remove.
2709 (__arm_vdupq_n_f32): Remove.
2710 (__arm_vdupq_m_n_f16): Remove.
2711 (__arm_vdupq_m_n_f32): Remove.
2712 (__arm_vdupq_x_n_f16): Remove.
2713 (__arm_vdupq_x_n_f32): Remove.
2714 (__arm_vdupq_n): Remove.
2715 (__arm_vdupq_m): Remove.
2716
2717 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2718
2719 * config/arm/arm-mve-builtins-shapes.cc (unary_n): New.
2720 * config/arm/arm-mve-builtins-shapes.h (unary_n): New.
2721
2722 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2723
2724 * config/arm/iterators.md (MVE_FP_M_N_VDUPQ_ONLY)
2725 (MVE_FP_N_VDUPQ_ONLY): New.
2726 (mve_insn): Add vdupq.
2727 * config/arm/mve.md (mve_vdupq_n_f<mode>): Rename into ...
2728 (@mve_<mve_insn>q_n_f<mode>): ... this.
2729 (mve_vdupq_n_<supf><mode>): Rename into ...
2730 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
2731 (mve_vdupq_m_n_<supf><mode>): Rename into ...
2732 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
2733 (mve_vdupq_m_n_f<mode>): Rename into ...
2734 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
2735
2736 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2737
2738 * config/arm/arm-mve-builtins-base.cc (vrev16q, vrev32q, vrev64q):
2739 New.
2740 * config/arm/arm-mve-builtins-base.def (vrev16q, vrev32q)
2741 (vrev64q): New.
2742 * config/arm/arm-mve-builtins-base.h (vrev16q, vrev32q)
2743 (vrev64q): New.
2744 * config/arm/arm_mve.h (vrev16q): Remove.
2745 (vrev32q): Remove.
2746 (vrev64q): Remove.
2747 (vrev64q_m): Remove.
2748 (vrev16q_m): Remove.
2749 (vrev32q_m): Remove.
2750 (vrev16q_x): Remove.
2751 (vrev32q_x): Remove.
2752 (vrev64q_x): Remove.
2753 (vrev64q_f16): Remove.
2754 (vrev64q_f32): Remove.
2755 (vrev32q_f16): Remove.
2756 (vrev16q_s8): Remove.
2757 (vrev32q_s8): Remove.
2758 (vrev32q_s16): Remove.
2759 (vrev64q_s8): Remove.
2760 (vrev64q_s16): Remove.
2761 (vrev64q_s32): Remove.
2762 (vrev64q_u8): Remove.
2763 (vrev64q_u16): Remove.
2764 (vrev64q_u32): Remove.
2765 (vrev32q_u8): Remove.
2766 (vrev32q_u16): Remove.
2767 (vrev16q_u8): Remove.
2768 (vrev64q_m_u8): Remove.
2769 (vrev64q_m_s8): Remove.
2770 (vrev64q_m_u16): Remove.
2771 (vrev64q_m_s16): Remove.
2772 (vrev64q_m_u32): Remove.
2773 (vrev64q_m_s32): Remove.
2774 (vrev16q_m_s8): Remove.
2775 (vrev32q_m_f16): Remove.
2776 (vrev16q_m_u8): Remove.
2777 (vrev32q_m_s8): Remove.
2778 (vrev64q_m_f16): Remove.
2779 (vrev32q_m_u8): Remove.
2780 (vrev32q_m_s16): Remove.
2781 (vrev64q_m_f32): Remove.
2782 (vrev32q_m_u16): Remove.
2783 (vrev16q_x_s8): Remove.
2784 (vrev16q_x_u8): Remove.
2785 (vrev32q_x_s8): Remove.
2786 (vrev32q_x_s16): Remove.
2787 (vrev32q_x_u8): Remove.
2788 (vrev32q_x_u16): Remove.
2789 (vrev64q_x_s8): Remove.
2790 (vrev64q_x_s16): Remove.
2791 (vrev64q_x_s32): Remove.
2792 (vrev64q_x_u8): Remove.
2793 (vrev64q_x_u16): Remove.
2794 (vrev64q_x_u32): Remove.
2795 (vrev32q_x_f16): Remove.
2796 (vrev64q_x_f16): Remove.
2797 (vrev64q_x_f32): Remove.
2798 (__arm_vrev16q_s8): Remove.
2799 (__arm_vrev32q_s8): Remove.
2800 (__arm_vrev32q_s16): Remove.
2801 (__arm_vrev64q_s8): Remove.
2802 (__arm_vrev64q_s16): Remove.
2803 (__arm_vrev64q_s32): Remove.
2804 (__arm_vrev64q_u8): Remove.
2805 (__arm_vrev64q_u16): Remove.
2806 (__arm_vrev64q_u32): Remove.
2807 (__arm_vrev32q_u8): Remove.
2808 (__arm_vrev32q_u16): Remove.
2809 (__arm_vrev16q_u8): Remove.
2810 (__arm_vrev64q_m_u8): Remove.
2811 (__arm_vrev64q_m_s8): Remove.
2812 (__arm_vrev64q_m_u16): Remove.
2813 (__arm_vrev64q_m_s16): Remove.
2814 (__arm_vrev64q_m_u32): Remove.
2815 (__arm_vrev64q_m_s32): Remove.
2816 (__arm_vrev16q_m_s8): Remove.
2817 (__arm_vrev16q_m_u8): Remove.
2818 (__arm_vrev32q_m_s8): Remove.
2819 (__arm_vrev32q_m_u8): Remove.
2820 (__arm_vrev32q_m_s16): Remove.
2821 (__arm_vrev32q_m_u16): Remove.
2822 (__arm_vrev16q_x_s8): Remove.
2823 (__arm_vrev16q_x_u8): Remove.
2824 (__arm_vrev32q_x_s8): Remove.
2825 (__arm_vrev32q_x_s16): Remove.
2826 (__arm_vrev32q_x_u8): Remove.
2827 (__arm_vrev32q_x_u16): Remove.
2828 (__arm_vrev64q_x_s8): Remove.
2829 (__arm_vrev64q_x_s16): Remove.
2830 (__arm_vrev64q_x_s32): Remove.
2831 (__arm_vrev64q_x_u8): Remove.
2832 (__arm_vrev64q_x_u16): Remove.
2833 (__arm_vrev64q_x_u32): Remove.
2834 (__arm_vrev64q_f16): Remove.
2835 (__arm_vrev64q_f32): Remove.
2836 (__arm_vrev32q_f16): Remove.
2837 (__arm_vrev32q_m_f16): Remove.
2838 (__arm_vrev64q_m_f16): Remove.
2839 (__arm_vrev64q_m_f32): Remove.
2840 (__arm_vrev32q_x_f16): Remove.
2841 (__arm_vrev64q_x_f16): Remove.
2842 (__arm_vrev64q_x_f32): Remove.
2843 (__arm_vrev16q): Remove.
2844 (__arm_vrev32q): Remove.
2845 (__arm_vrev64q): Remove.
2846 (__arm_vrev64q_m): Remove.
2847 (__arm_vrev16q_m): Remove.
2848 (__arm_vrev32q_m): Remove.
2849 (__arm_vrev16q_x): Remove.
2850 (__arm_vrev32q_x): Remove.
2851 (__arm_vrev64q_x): Remove.
2852
2853 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2854
2855 * config/arm/iterators.md (MVE_V8HF, MVE_V16QI)
2856 (MVE_FP_VREV64Q_ONLY, MVE_FP_M_VREV64Q_ONLY, MVE_FP_VREV32Q_ONLY)
2857 (MVE_FP_M_VREV32Q_ONLY): New iterators.
2858 (mve_insn): Add vrev16q, vrev32q, vrev64q.
2859 * config/arm/mve.md (mve_vrev64q_f<mode>): Rename into ...
2860 (@mve_<mve_insn>q_f<mode>): ... this
2861 (mve_vrev32q_fv8hf): Rename into @mve_<mve_insn>q_f<mode>.
2862 (mve_vrev64q_<supf><mode>): Rename into ...
2863 (@mve_<mve_insn>q_<supf><mode>): ... this.
2864 (mve_vrev32q_<supf><mode>): Rename into
2865 @mve_<mve_insn>q_<supf><mode>.
2866 (mve_vrev16q_<supf>v16qi): Rename into
2867 @mve_<mve_insn>q_<supf><mode>.
2868 (mve_vrev64q_m_<supf><mode>): Rename into
2869 @mve_<mve_insn>q_m_<supf><mode>.
2870 (mve_vrev32q_m_fv8hf): Rename into @mve_<mve_insn>q_m_f<mode>.
2871 (mve_vrev32q_m_<supf><mode>): Rename into
2872 @mve_<mve_insn>q_m_<supf><mode>.
2873 (mve_vrev64q_m_f<mode>): Rename into @mve_<mve_insn>q_m_f<mode>.
2874 (mve_vrev16q_m_<supf>v16qi): Rename into
2875 @mve_<mve_insn>q_m_<supf><mode>.
2876
2877 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
2878
2879 * config/arm/arm-mve-builtins-base.cc (vcmpeqq, vcmpneq, vcmpgeq)
2880 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
2881 * config/arm/arm-mve-builtins-base.def (vcmpeqq, vcmpneq, vcmpgeq)
2882 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
2883 * config/arm/arm-mve-builtins-base.h (vcmpeqq, vcmpneq, vcmpgeq)
2884 (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
2885 * config/arm/arm-mve-builtins-functions.h (class
2886 unspec_based_mve_function_exact_insn_vcmp): New.
2887 * config/arm/arm-mve-builtins.cc
2888 (function_instance::has_inactive_argument): Handle vcmp.
2889 * config/arm/arm_mve.h (vcmpneq): Remove.
2890 (vcmphiq): Remove.
2891 (vcmpeqq): Remove.
2892 (vcmpcsq): Remove.
2893 (vcmpltq): Remove.
2894 (vcmpleq): Remove.
2895 (vcmpgtq): Remove.
2896 (vcmpgeq): Remove.
2897 (vcmpneq_m): Remove.
2898 (vcmphiq_m): Remove.
2899 (vcmpeqq_m): Remove.
2900 (vcmpcsq_m): Remove.
2901 (vcmpcsq_m_n): Remove.
2902 (vcmpltq_m): Remove.
2903 (vcmpleq_m): Remove.
2904 (vcmpgtq_m): Remove.
2905 (vcmpgeq_m): Remove.
2906 (vcmpneq_s8): Remove.
2907 (vcmpneq_s16): Remove.
2908 (vcmpneq_s32): Remove.
2909 (vcmpneq_u8): Remove.
2910 (vcmpneq_u16): Remove.
2911 (vcmpneq_u32): Remove.
2912 (vcmpneq_n_u8): Remove.
2913 (vcmphiq_u8): Remove.
2914 (vcmphiq_n_u8): Remove.
2915 (vcmpeqq_u8): Remove.
2916 (vcmpeqq_n_u8): Remove.
2917 (vcmpcsq_u8): Remove.
2918 (vcmpcsq_n_u8): Remove.
2919 (vcmpneq_n_s8): Remove.
2920 (vcmpltq_s8): Remove.
2921 (vcmpltq_n_s8): Remove.
2922 (vcmpleq_s8): Remove.
2923 (vcmpleq_n_s8): Remove.
2924 (vcmpgtq_s8): Remove.
2925 (vcmpgtq_n_s8): Remove.
2926 (vcmpgeq_s8): Remove.
2927 (vcmpgeq_n_s8): Remove.
2928 (vcmpeqq_s8): Remove.
2929 (vcmpeqq_n_s8): Remove.
2930 (vcmpneq_n_u16): Remove.
2931 (vcmphiq_u16): Remove.
2932 (vcmphiq_n_u16): Remove.
2933 (vcmpeqq_u16): Remove.
2934 (vcmpeqq_n_u16): Remove.
2935 (vcmpcsq_u16): Remove.
2936 (vcmpcsq_n_u16): Remove.
2937 (vcmpneq_n_s16): Remove.
2938 (vcmpltq_s16): Remove.
2939 (vcmpltq_n_s16): Remove.
2940 (vcmpleq_s16): Remove.
2941 (vcmpleq_n_s16): Remove.
2942 (vcmpgtq_s16): Remove.
2943 (vcmpgtq_n_s16): Remove.
2944 (vcmpgeq_s16): Remove.
2945 (vcmpgeq_n_s16): Remove.
2946 (vcmpeqq_s16): Remove.
2947 (vcmpeqq_n_s16): Remove.
2948 (vcmpneq_n_u32): Remove.
2949 (vcmphiq_u32): Remove.
2950 (vcmphiq_n_u32): Remove.
2951 (vcmpeqq_u32): Remove.
2952 (vcmpeqq_n_u32): Remove.
2953 (vcmpcsq_u32): Remove.
2954 (vcmpcsq_n_u32): Remove.
2955 (vcmpneq_n_s32): Remove.
2956 (vcmpltq_s32): Remove.
2957 (vcmpltq_n_s32): Remove.
2958 (vcmpleq_s32): Remove.
2959 (vcmpleq_n_s32): Remove.
2960 (vcmpgtq_s32): Remove.
2961 (vcmpgtq_n_s32): Remove.
2962 (vcmpgeq_s32): Remove.
2963 (vcmpgeq_n_s32): Remove.
2964 (vcmpeqq_s32): Remove.
2965 (vcmpeqq_n_s32): Remove.
2966 (vcmpneq_n_f16): Remove.
2967 (vcmpneq_f16): Remove.
2968 (vcmpltq_n_f16): Remove.
2969 (vcmpltq_f16): Remove.
2970 (vcmpleq_n_f16): Remove.
2971 (vcmpleq_f16): Remove.
2972 (vcmpgtq_n_f16): Remove.
2973 (vcmpgtq_f16): Remove.
2974 (vcmpgeq_n_f16): Remove.
2975 (vcmpgeq_f16): Remove.
2976 (vcmpeqq_n_f16): Remove.
2977 (vcmpeqq_f16): Remove.
2978 (vcmpneq_n_f32): Remove.
2979 (vcmpneq_f32): Remove.
2980 (vcmpltq_n_f32): Remove.
2981 (vcmpltq_f32): Remove.
2982 (vcmpleq_n_f32): Remove.
2983 (vcmpleq_f32): Remove.
2984 (vcmpgtq_n_f32): Remove.
2985 (vcmpgtq_f32): Remove.
2986 (vcmpgeq_n_f32): Remove.
2987 (vcmpgeq_f32): Remove.
2988 (vcmpeqq_n_f32): Remove.
2989 (vcmpeqq_f32): Remove.
2990 (vcmpeqq_m_f16): Remove.
2991 (vcmpeqq_m_f32): Remove.
2992 (vcmpneq_m_u8): Remove.
2993 (vcmpneq_m_n_u8): Remove.
2994 (vcmphiq_m_u8): Remove.
2995 (vcmphiq_m_n_u8): Remove.
2996 (vcmpeqq_m_u8): Remove.
2997 (vcmpeqq_m_n_u8): Remove.
2998 (vcmpcsq_m_u8): Remove.
2999 (vcmpcsq_m_n_u8): Remove.
3000 (vcmpneq_m_s8): Remove.
3001 (vcmpneq_m_n_s8): Remove.
3002 (vcmpltq_m_s8): Remove.
3003 (vcmpltq_m_n_s8): Remove.
3004 (vcmpleq_m_s8): Remove.
3005 (vcmpleq_m_n_s8): Remove.
3006 (vcmpgtq_m_s8): Remove.
3007 (vcmpgtq_m_n_s8): Remove.
3008 (vcmpgeq_m_s8): Remove.
3009 (vcmpgeq_m_n_s8): Remove.
3010 (vcmpeqq_m_s8): Remove.
3011 (vcmpeqq_m_n_s8): Remove.
3012 (vcmpneq_m_u16): Remove.
3013 (vcmpneq_m_n_u16): Remove.
3014 (vcmphiq_m_u16): Remove.
3015 (vcmphiq_m_n_u16): Remove.
3016 (vcmpeqq_m_u16): Remove.
3017 (vcmpeqq_m_n_u16): Remove.
3018 (vcmpcsq_m_u16): Remove.
3019 (vcmpcsq_m_n_u16): Remove.
3020 (vcmpneq_m_s16): Remove.
3021 (vcmpneq_m_n_s16): Remove.
3022 (vcmpltq_m_s16): Remove.
3023 (vcmpltq_m_n_s16): Remove.
3024 (vcmpleq_m_s16): Remove.
3025 (vcmpleq_m_n_s16): Remove.
3026 (vcmpgtq_m_s16): Remove.
3027 (vcmpgtq_m_n_s16): Remove.
3028 (vcmpgeq_m_s16): Remove.
3029 (vcmpgeq_m_n_s16): Remove.
3030 (vcmpeqq_m_s16): Remove.
3031 (vcmpeqq_m_n_s16): Remove.
3032 (vcmpneq_m_u32): Remove.
3033 (vcmpneq_m_n_u32): Remove.
3034 (vcmphiq_m_u32): Remove.
3035 (vcmphiq_m_n_u32): Remove.
3036 (vcmpeqq_m_u32): Remove.
3037 (vcmpeqq_m_n_u32): Remove.
3038 (vcmpcsq_m_u32): Remove.
3039 (vcmpcsq_m_n_u32): Remove.
3040 (vcmpneq_m_s32): Remove.
3041 (vcmpneq_m_n_s32): Remove.
3042 (vcmpltq_m_s32): Remove.
3043 (vcmpltq_m_n_s32): Remove.
3044 (vcmpleq_m_s32): Remove.
3045 (vcmpleq_m_n_s32): Remove.
3046 (vcmpgtq_m_s32): Remove.
3047 (vcmpgtq_m_n_s32): Remove.
3048 (vcmpgeq_m_s32): Remove.
3049 (vcmpgeq_m_n_s32): Remove.
3050 (vcmpeqq_m_s32): Remove.
3051 (vcmpeqq_m_n_s32): Remove.
3052 (vcmpeqq_m_n_f16): Remove.
3053 (vcmpgeq_m_f16): Remove.
3054 (vcmpgeq_m_n_f16): Remove.
3055 (vcmpgtq_m_f16): Remove.
3056 (vcmpgtq_m_n_f16): Remove.
3057 (vcmpleq_m_f16): Remove.
3058 (vcmpleq_m_n_f16): Remove.
3059 (vcmpltq_m_f16): Remove.
3060 (vcmpltq_m_n_f16): Remove.
3061 (vcmpneq_m_f16): Remove.
3062 (vcmpneq_m_n_f16): Remove.
3063 (vcmpeqq_m_n_f32): Remove.
3064 (vcmpgeq_m_f32): Remove.
3065 (vcmpgeq_m_n_f32): Remove.
3066 (vcmpgtq_m_f32): Remove.
3067 (vcmpgtq_m_n_f32): Remove.
3068 (vcmpleq_m_f32): Remove.
3069 (vcmpleq_m_n_f32): Remove.
3070 (vcmpltq_m_f32): Remove.
3071 (vcmpltq_m_n_f32): Remove.
3072 (vcmpneq_m_f32): Remove.
3073 (vcmpneq_m_n_f32): Remove.
3074 (__arm_vcmpneq_s8): Remove.
3075 (__arm_vcmpneq_s16): Remove.
3076 (__arm_vcmpneq_s32): Remove.
3077 (__arm_vcmpneq_u8): Remove.
3078 (__arm_vcmpneq_u16): Remove.
3079 (__arm_vcmpneq_u32): Remove.
3080 (__arm_vcmpneq_n_u8): Remove.
3081 (__arm_vcmphiq_u8): Remove.
3082 (__arm_vcmphiq_n_u8): Remove.
3083 (__arm_vcmpeqq_u8): Remove.
3084 (__arm_vcmpeqq_n_u8): Remove.
3085 (__arm_vcmpcsq_u8): Remove.
3086 (__arm_vcmpcsq_n_u8): Remove.
3087 (__arm_vcmpneq_n_s8): Remove.
3088 (__arm_vcmpltq_s8): Remove.
3089 (__arm_vcmpltq_n_s8): Remove.
3090 (__arm_vcmpleq_s8): Remove.
3091 (__arm_vcmpleq_n_s8): Remove.
3092 (__arm_vcmpgtq_s8): Remove.
3093 (__arm_vcmpgtq_n_s8): Remove.
3094 (__arm_vcmpgeq_s8): Remove.
3095 (__arm_vcmpgeq_n_s8): Remove.
3096 (__arm_vcmpeqq_s8): Remove.
3097 (__arm_vcmpeqq_n_s8): Remove.
3098 (__arm_vcmpneq_n_u16): Remove.
3099 (__arm_vcmphiq_u16): Remove.
3100 (__arm_vcmphiq_n_u16): Remove.
3101 (__arm_vcmpeqq_u16): Remove.
3102 (__arm_vcmpeqq_n_u16): Remove.
3103 (__arm_vcmpcsq_u16): Remove.
3104 (__arm_vcmpcsq_n_u16): Remove.
3105 (__arm_vcmpneq_n_s16): Remove.
3106 (__arm_vcmpltq_s16): Remove.
3107 (__arm_vcmpltq_n_s16): Remove.
3108 (__arm_vcmpleq_s16): Remove.
3109 (__arm_vcmpleq_n_s16): Remove.
3110 (__arm_vcmpgtq_s16): Remove.
3111 (__arm_vcmpgtq_n_s16): Remove.
3112 (__arm_vcmpgeq_s16): Remove.
3113 (__arm_vcmpgeq_n_s16): Remove.
3114 (__arm_vcmpeqq_s16): Remove.
3115 (__arm_vcmpeqq_n_s16): Remove.
3116 (__arm_vcmpneq_n_u32): Remove.
3117 (__arm_vcmphiq_u32): Remove.
3118 (__arm_vcmphiq_n_u32): Remove.
3119 (__arm_vcmpeqq_u32): Remove.
3120 (__arm_vcmpeqq_n_u32): Remove.
3121 (__arm_vcmpcsq_u32): Remove.
3122 (__arm_vcmpcsq_n_u32): Remove.
3123 (__arm_vcmpneq_n_s32): Remove.
3124 (__arm_vcmpltq_s32): Remove.
3125 (__arm_vcmpltq_n_s32): Remove.
3126 (__arm_vcmpleq_s32): Remove.
3127 (__arm_vcmpleq_n_s32): Remove.
3128 (__arm_vcmpgtq_s32): Remove.
3129 (__arm_vcmpgtq_n_s32): Remove.
3130 (__arm_vcmpgeq_s32): Remove.
3131 (__arm_vcmpgeq_n_s32): Remove.
3132 (__arm_vcmpeqq_s32): Remove.
3133 (__arm_vcmpeqq_n_s32): Remove.
3134 (__arm_vcmpneq_m_u8): Remove.
3135 (__arm_vcmpneq_m_n_u8): Remove.
3136 (__arm_vcmphiq_m_u8): Remove.
3137 (__arm_vcmphiq_m_n_u8): Remove.
3138 (__arm_vcmpeqq_m_u8): Remove.
3139 (__arm_vcmpeqq_m_n_u8): Remove.
3140 (__arm_vcmpcsq_m_u8): Remove.
3141 (__arm_vcmpcsq_m_n_u8): Remove.
3142 (__arm_vcmpneq_m_s8): Remove.
3143 (__arm_vcmpneq_m_n_s8): Remove.
3144 (__arm_vcmpltq_m_s8): Remove.
3145 (__arm_vcmpltq_m_n_s8): Remove.
3146 (__arm_vcmpleq_m_s8): Remove.
3147 (__arm_vcmpleq_m_n_s8): Remove.
3148 (__arm_vcmpgtq_m_s8): Remove.
3149 (__arm_vcmpgtq_m_n_s8): Remove.
3150 (__arm_vcmpgeq_m_s8): Remove.
3151 (__arm_vcmpgeq_m_n_s8): Remove.
3152 (__arm_vcmpeqq_m_s8): Remove.
3153 (__arm_vcmpeqq_m_n_s8): Remove.
3154 (__arm_vcmpneq_m_u16): Remove.
3155 (__arm_vcmpneq_m_n_u16): Remove.
3156 (__arm_vcmphiq_m_u16): Remove.
3157 (__arm_vcmphiq_m_n_u16): Remove.
3158 (__arm_vcmpeqq_m_u16): Remove.
3159 (__arm_vcmpeqq_m_n_u16): Remove.
3160 (__arm_vcmpcsq_m_u16): Remove.
3161 (__arm_vcmpcsq_m_n_u16): Remove.
3162 (__arm_vcmpneq_m_s16): Remove.
3163 (__arm_vcmpneq_m_n_s16): Remove.
3164 (__arm_vcmpltq_m_s16): Remove.
3165 (__arm_vcmpltq_m_n_s16): Remove.
3166 (__arm_vcmpleq_m_s16): Remove.
3167 (__arm_vcmpleq_m_n_s16): Remove.
3168 (__arm_vcmpgtq_m_s16): Remove.
3169 (__arm_vcmpgtq_m_n_s16): Remove.
3170 (__arm_vcmpgeq_m_s16): Remove.
3171 (__arm_vcmpgeq_m_n_s16): Remove.
3172 (__arm_vcmpeqq_m_s16): Remove.
3173 (__arm_vcmpeqq_m_n_s16): Remove.
3174 (__arm_vcmpneq_m_u32): Remove.
3175 (__arm_vcmpneq_m_n_u32): Remove.
3176 (__arm_vcmphiq_m_u32): Remove.
3177 (__arm_vcmphiq_m_n_u32): Remove.
3178 (__arm_vcmpeqq_m_u32): Remove.
3179 (__arm_vcmpeqq_m_n_u32): Remove.
3180 (__arm_vcmpcsq_m_u32): Remove.
3181 (__arm_vcmpcsq_m_n_u32): Remove.
3182 (__arm_vcmpneq_m_s32): Remove.
3183 (__arm_vcmpneq_m_n_s32): Remove.
3184 (__arm_vcmpltq_m_s32): Remove.
3185 (__arm_vcmpltq_m_n_s32): Remove.
3186 (__arm_vcmpleq_m_s32): Remove.
3187 (__arm_vcmpleq_m_n_s32): Remove.
3188 (__arm_vcmpgtq_m_s32): Remove.
3189 (__arm_vcmpgtq_m_n_s32): Remove.
3190 (__arm_vcmpgeq_m_s32): Remove.
3191 (__arm_vcmpgeq_m_n_s32): Remove.
3192 (__arm_vcmpeqq_m_s32): Remove.
3193 (__arm_vcmpeqq_m_n_s32): Remove.
3194 (__arm_vcmpneq_n_f16): Remove.
3195 (__arm_vcmpneq_f16): Remove.
3196 (__arm_vcmpltq_n_f16): Remove.
3197 (__arm_vcmpltq_f16): Remove.
3198 (__arm_vcmpleq_n_f16): Remove.
3199 (__arm_vcmpleq_f16): Remove.
3200 (__arm_vcmpgtq_n_f16): Remove.
3201 (__arm_vcmpgtq_f16): Remove.
3202 (__arm_vcmpgeq_n_f16): Remove.
3203 (__arm_vcmpgeq_f16): Remove.
3204 (__arm_vcmpeqq_n_f16): Remove.
3205 (__arm_vcmpeqq_f16): Remove.
3206 (__arm_vcmpneq_n_f32): Remove.
3207 (__arm_vcmpneq_f32): Remove.
3208 (__arm_vcmpltq_n_f32): Remove.
3209 (__arm_vcmpltq_f32): Remove.
3210 (__arm_vcmpleq_n_f32): Remove.
3211 (__arm_vcmpleq_f32): Remove.
3212 (__arm_vcmpgtq_n_f32): Remove.
3213 (__arm_vcmpgtq_f32): Remove.
3214 (__arm_vcmpgeq_n_f32): Remove.
3215 (__arm_vcmpgeq_f32): Remove.
3216 (__arm_vcmpeqq_n_f32): Remove.
3217 (__arm_vcmpeqq_f32): Remove.
3218 (__arm_vcmpeqq_m_f16): Remove.
3219 (__arm_vcmpeqq_m_f32): Remove.
3220 (__arm_vcmpeqq_m_n_f16): Remove.
3221 (__arm_vcmpgeq_m_f16): Remove.
3222 (__arm_vcmpgeq_m_n_f16): Remove.
3223 (__arm_vcmpgtq_m_f16): Remove.
3224 (__arm_vcmpgtq_m_n_f16): Remove.
3225 (__arm_vcmpleq_m_f16): Remove.
3226 (__arm_vcmpleq_m_n_f16): Remove.
3227 (__arm_vcmpltq_m_f16): Remove.
3228 (__arm_vcmpltq_m_n_f16): Remove.
3229 (__arm_vcmpneq_m_f16): Remove.
3230 (__arm_vcmpneq_m_n_f16): Remove.
3231 (__arm_vcmpeqq_m_n_f32): Remove.
3232 (__arm_vcmpgeq_m_f32): Remove.
3233 (__arm_vcmpgeq_m_n_f32): Remove.
3234 (__arm_vcmpgtq_m_f32): Remove.
3235 (__arm_vcmpgtq_m_n_f32): Remove.
3236 (__arm_vcmpleq_m_f32): Remove.
3237 (__arm_vcmpleq_m_n_f32): Remove.
3238 (__arm_vcmpltq_m_f32): Remove.
3239 (__arm_vcmpltq_m_n_f32): Remove.
3240 (__arm_vcmpneq_m_f32): Remove.
3241 (__arm_vcmpneq_m_n_f32): Remove.
3242 (__arm_vcmpneq): Remove.
3243 (__arm_vcmphiq): Remove.
3244 (__arm_vcmpeqq): Remove.
3245 (__arm_vcmpcsq): Remove.
3246 (__arm_vcmpltq): Remove.
3247 (__arm_vcmpleq): Remove.
3248 (__arm_vcmpgtq): Remove.
3249 (__arm_vcmpgeq): Remove.
3250 (__arm_vcmpneq_m): Remove.
3251 (__arm_vcmphiq_m): Remove.
3252 (__arm_vcmpeqq_m): Remove.
3253 (__arm_vcmpcsq_m): Remove.
3254 (__arm_vcmpltq_m): Remove.
3255 (__arm_vcmpleq_m): Remove.
3256 (__arm_vcmpgtq_m): Remove.
3257 (__arm_vcmpgeq_m): Remove.
3258
3259 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
3260
3261 * config/arm/arm-mve-builtins-shapes.cc (cmp): New.
3262 * config/arm/arm-mve-builtins-shapes.h (cmp): New.
3263
3264 2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
3265
3266 * config/arm/iterators.md (MVE_CMP_M, MVE_CMP_M_F, MVE_CMP_M_N)
3267 (MVE_CMP_M_N_F, mve_cmp_op1): New.
3268 (isu): Add VCMP*
3269 (supf): Likewise.
3270 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>): Rename into ...
3271 (@mve_vcmp<mve_cmp_op>q_n_<mode>): ... this.
3272 (mve_vcmpeqq_m_f<mode>, mve_vcmpgeq_m_f<mode>)
3273 (mve_vcmpgtq_m_f<mode>, mve_vcmpleq_m_f<mode>)
3274 (mve_vcmpltq_m_f<mode>, mve_vcmpneq_m_f<mode>): Merge into ...
3275 (@mve_vcmp<mve_cmp_op1>q_m_f<mode>): ... this.
3276 (mve_vcmpcsq_m_u<mode>, mve_vcmpeqq_m_<supf><mode>)
3277 (mve_vcmpgeq_m_s<mode>, mve_vcmpgtq_m_s<mode>)
3278 (mve_vcmphiq_m_u<mode>, mve_vcmpleq_m_s<mode>)
3279 (mve_vcmpltq_m_s<mode>, mve_vcmpneq_m_<supf><mode>): Merge into
3280 ...
3281 (@mve_vcmp<mve_cmp_op1>q_m_<supf><mode>): ... this.
3282 (mve_vcmpcsq_m_n_u<mode>, mve_vcmpeqq_m_n_<supf><mode>)
3283 (mve_vcmpgeq_m_n_s<mode>, mve_vcmpgtq_m_n_s<mode>)
3284 (mve_vcmphiq_m_n_u<mode>, mve_vcmpleq_m_n_s<mode>)
3285 (mve_vcmpltq_m_n_s<mode>, mve_vcmpneq_m_n_<supf><mode>): Merge
3286 into ...
3287 (@mve_vcmp<mve_cmp_op1>q_m_n_<supf><mode>): ... this.
3288 (mve_vcmpeqq_m_n_f<mode>, mve_vcmpgeq_m_n_f<mode>)
3289 (mve_vcmpgtq_m_n_f<mode>, mve_vcmpleq_m_n_f<mode>)
3290 (mve_vcmpltq_m_n_f<mode>, mve_vcmpneq_m_n_f<mode>): Merge into ...
3291 (@mve_vcmp<mve_cmp_op1>q_m_n_f<mode>): ... this.
3292
3293 2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
3294
3295 * match.pd <popcount optimizations>: Simplify popcount(X|Y) +
3296 popcount(X&Y) as popcount(X)+popcount(Y). Likewise, simplify
3297 popcount(X)+popcount(Y)-popcount(X&Y) as popcount(X|Y), and
3298 vice versa.
3299
3300 2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
3301
3302 * match.pd <popcount optimizations>: Simplify popcount(bswap(x))
3303 as popcount(x). Simplify popcount(rotate(x,y)) as popcount(x).
3304 <parity optimizations>: Simplify parity(bswap(x)) as parity(x).
3305 Simplify parity(rotate(x,y)) as parity(x).
3306
3307 2023-05-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3308
3309 * config/riscv/autovec.md (@vec_series<mode>): New pattern
3310 * config/riscv/riscv-protos.h (expand_vec_series): New function.
3311 * config/riscv/riscv-v.cc (emit_binop): Ditto.
3312 (emit_index_op): Ditto.
3313 (expand_vec_series): Ditto.
3314 (expand_const_vector): Add series vector handling.
3315 * config/riscv/riscv.cc (riscv_const_insns): Enable series vector for testing.
3316
3317 2023-05-10 Roger Sayle <roger@nextmovesoftware.com>
3318
3319 * config/i386/i386.md (*concat<mode><dwi>3_1): Use preferred
3320 [(const_int 0)] idiom, instead of [(clobber (const_int 0))].
3321 (*concat<mode><dwi>3_2): Likewise.
3322 (*concat<mode><dwi>3_3): Likewise.
3323 (*concat<mode><dwi>3_4): Likewise.
3324 (*concat<mode><dwi>3_5): Likewise.
3325 (*concat<mode><dwi>3_6): Likewise.
3326 (*concat<mode><dwi>3_7): Likewise.
3327
3328 2023-05-10 Uros Bizjak <ubizjak@gmail.com>
3329
3330 PR target/92658
3331 * config/i386/mmx.md (sse4_1_<code>v2qiv2si2): New insn pattern.
3332 (<insn>v4qiv4hi2): New expander.
3333 (<insn>v2hiv2si2): Ditto.
3334 (<insn>v2qiv2si2): Ditto.
3335 (<insn>v2qiv2hi2): Ditto.
3336
3337 2023-05-10 Jeff Law <jlaw@ventanamicro>
3338
3339 * config/h8300/constraints.md (Q): Make this a special memory
3340 constraint.
3341 (Zz): Similarly.
3342
3343 2023-05-10 Jakub Jelinek <jakub@redhat.com>
3344
3345 PR fortran/109788
3346 * ipa-prop.cc (ipa_get_callee_param_type): Don't return TREE_VALUE (t)
3347 if t is void_list_node.
3348
3349 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3350
3351 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>_insn_le): Delete.
3352 (aarch64_sqmovun<mode>_insn_be): Delete.
3353 (aarch64_sqmovun<mode><vczle><vczbe>): New define_insn.
3354 (aarch64_sqmovun<mode>): Delete expander.
3355
3356 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3357
3358 PR target/99195
3359 * config/aarch64/aarch64-simd.md (aarch64_<PERMUTE:perm_insn><mode>):
3360 Rename to...
3361 (aarch64_<PERMUTE:perm_insn><mode><vczle><vczbe>): ... This.
3362 (aarch64_rev<REVERSE:rev_op><mode>): Rename to...
3363 (aarch64_rev<REVERSE:rev_op><mode><vczle><vczbe>): ... This.
3364
3365 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3366
3367 PR target/99195
3368 * config/aarch64/aarch64-simd.md (aarch64_<su_optab>q<addsub><mode>):
3369 Rename to...
3370 (aarch64_<su_optab>q<addsub><mode><vczle><vczbe>): ... This.
3371 (aarch64_<sur>qadd<mode>): Rename to...
3372 (aarch64_<sur>qadd<mode><vczle><vczbe>): ... This.
3373
3374 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3375
3376 * config/aarch64/aarch64-simd.md
3377 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): Delete.
3378 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): Delete.
3379 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn<vczle><vczbe>): New define_insn.
3380 (aarch64_<sur>q<r>shr<u>n_n<mode>): Simplify expander.
3381
3382 2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3383
3384 PR target/99195
3385 * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le): Delete.
3386 (aarch64_xtn<mode>_insn_be): Likewise.
3387 (trunc<mode><Vnarrowq>2): Rename to...
3388 (trunc<mode><Vnarrowq>2<vczle><vczbe>): ... This.
3389 (aarch64_xtn<mode>): Move under the above. Just emit the truncate RTL.
3390 (aarch64_<su>qmovn<mode>): Likewise.
3391 (aarch64_<su>qmovn<mode><vczle><vczbe>): New define_insn.
3392 (aarch64_<su>qmovn<mode>_insn_le): Delete.
3393 (aarch64_<su>qmovn<mode>_insn_be): Likewise.
3394
3395 2023-05-10 Li Xu <xuli1@eswincomputing.com>
3396
3397 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): For vfmv.f.s/vmv.x.s
3398 intruction replace null avl with (const_int 0).
3399
3400 2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3401
3402 * config/riscv/riscv.cc (riscv_support_vector_misalignment): Fix
3403 incorrect codes.
3404
3405 2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3406
3407 PR target/109773
3408 * config/riscv/riscv-vsetvl.cc (avl_source_has_vsetvl_p): New function.
3409 (source_equal_p): Fix dead loop in vsetvl avl checking.
3410
3411 2023-05-10 Hans-Peter Nilsson <hp@axis.com>
3412
3413 * config/cris/cris.cc (cris_postdbr_cmpelim): Correct mode
3414 of modeadjusted_dccr.
3415
3416 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3417
3418 * config/arm/arm-mve-builtins-base.cc (vmaxaq, vminaq): New.
3419 * config/arm/arm-mve-builtins-base.def (vmaxaq, vminaq): New.
3420 * config/arm/arm-mve-builtins-base.h (vmaxaq, vminaq): New.
3421 * config/arm/arm-mve-builtins.cc
3422 (function_instance::has_inactive_argument): Handle vmaxaq and
3423 vminaq.
3424 * config/arm/arm_mve.h (vminaq): Remove.
3425 (vmaxaq): Remove.
3426 (vminaq_m): Remove.
3427 (vmaxaq_m): Remove.
3428 (vminaq_s8): Remove.
3429 (vmaxaq_s8): Remove.
3430 (vminaq_s16): Remove.
3431 (vmaxaq_s16): Remove.
3432 (vminaq_s32): Remove.
3433 (vmaxaq_s32): Remove.
3434 (vminaq_m_s8): Remove.
3435 (vmaxaq_m_s8): Remove.
3436 (vminaq_m_s16): Remove.
3437 (vmaxaq_m_s16): Remove.
3438 (vminaq_m_s32): Remove.
3439 (vmaxaq_m_s32): Remove.
3440 (__arm_vminaq_s8): Remove.
3441 (__arm_vmaxaq_s8): Remove.
3442 (__arm_vminaq_s16): Remove.
3443 (__arm_vmaxaq_s16): Remove.
3444 (__arm_vminaq_s32): Remove.
3445 (__arm_vmaxaq_s32): Remove.
3446 (__arm_vminaq_m_s8): Remove.
3447 (__arm_vmaxaq_m_s8): Remove.
3448 (__arm_vminaq_m_s16): Remove.
3449 (__arm_vmaxaq_m_s16): Remove.
3450 (__arm_vminaq_m_s32): Remove.
3451 (__arm_vmaxaq_m_s32): Remove.
3452 (__arm_vminaq): Remove.
3453 (__arm_vmaxaq): Remove.
3454 (__arm_vminaq_m): Remove.
3455 (__arm_vmaxaq_m): Remove.
3456
3457 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3458
3459 * config/arm/iterators.md (MVE_VMAXAVMINAQ, MVE_VMAXAVMINAQ_M):
3460 New.
3461 (mve_insn): Add vmaxa, vmina.
3462 (supf): Add VMAXAQ_S, VMAXAQ_M_S, VMINAQ_S, VMINAQ_M_S.
3463 * config/arm/mve.md (mve_vmaxaq_s<mode>, mve_vminaq_s<mode>):
3464 Merge into ...
3465 (@mve_<mve_insn>q_<supf><mode>): ... this.
3466 (mve_vmaxaq_m_s<mode>, mve_vminaq_m_s<mode>): Merge into ...
3467 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
3468
3469 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3470
3471 * config/arm/arm-mve-builtins-shapes.cc (binary_maxamina): New.
3472 * config/arm/arm-mve-builtins-shapes.h (binary_maxamina): New.
3473
3474 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3475
3476 * config/arm/arm-mve-builtins-base.cc (vmaxnmaq, vminnmaq): New.
3477 * config/arm/arm-mve-builtins-base.def (vmaxnmaq, vminnmaq): New.
3478 * config/arm/arm-mve-builtins-base.h (vmaxnmaq, vminnmaq): New.
3479 * config/arm/arm-mve-builtins.cc
3480 (function_instance::has_inactive_argument): Handle vmaxnmaq and
3481 vminnmaq.
3482 * config/arm/arm_mve.h (vminnmaq): Remove.
3483 (vmaxnmaq): Remove.
3484 (vmaxnmaq_m): Remove.
3485 (vminnmaq_m): Remove.
3486 (vminnmaq_f16): Remove.
3487 (vmaxnmaq_f16): Remove.
3488 (vminnmaq_f32): Remove.
3489 (vmaxnmaq_f32): Remove.
3490 (vmaxnmaq_m_f16): Remove.
3491 (vminnmaq_m_f16): Remove.
3492 (vmaxnmaq_m_f32): Remove.
3493 (vminnmaq_m_f32): Remove.
3494 (__arm_vminnmaq_f16): Remove.
3495 (__arm_vmaxnmaq_f16): Remove.
3496 (__arm_vminnmaq_f32): Remove.
3497 (__arm_vmaxnmaq_f32): Remove.
3498 (__arm_vmaxnmaq_m_f16): Remove.
3499 (__arm_vminnmaq_m_f16): Remove.
3500 (__arm_vmaxnmaq_m_f32): Remove.
3501 (__arm_vminnmaq_m_f32): Remove.
3502 (__arm_vminnmaq): Remove.
3503 (__arm_vmaxnmaq): Remove.
3504 (__arm_vmaxnmaq_m): Remove.
3505 (__arm_vminnmaq_m): Remove.
3506
3507 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3508
3509 * config/arm/iterators.md (MVE_VMAXNMA_VMINNMAQ)
3510 (MVE_VMAXNMA_VMINNMAQ_M): New.
3511 (mve_insn): Add vmaxnma, vminnma.
3512 * config/arm/mve.md (mve_vmaxnmaq_f<mode>, mve_vminnmaq_f<mode>):
3513 Merge into ...
3514 (@mve_<mve_insn>q_f<mode>): ... this.
3515 (mve_vmaxnmaq_m_f<mode>, mve_vminnmaq_m_f<mode>): Merge into ...
3516 (@mve_<mve_insn>q_m_f<mode>): ... this.
3517
3518 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3519
3520 * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_F): New.
3521 (vmaxnmavq, vmaxnmvq, vminnmavq, vminnmvq): New.
3522 * config/arm/arm-mve-builtins-base.def (vmaxnmavq, vmaxnmvq)
3523 (vminnmavq, vminnmvq): New.
3524 * config/arm/arm-mve-builtins-base.h (vmaxnmavq, vmaxnmvq)
3525 (vminnmavq, vminnmvq): New.
3526 * config/arm/arm_mve.h (vminnmvq): Remove.
3527 (vminnmavq): Remove.
3528 (vmaxnmvq): Remove.
3529 (vmaxnmavq): Remove.
3530 (vmaxnmavq_p): Remove.
3531 (vmaxnmvq_p): Remove.
3532 (vminnmavq_p): Remove.
3533 (vminnmvq_p): Remove.
3534 (vminnmvq_f16): Remove.
3535 (vminnmavq_f16): Remove.
3536 (vmaxnmvq_f16): Remove.
3537 (vmaxnmavq_f16): Remove.
3538 (vminnmvq_f32): Remove.
3539 (vminnmavq_f32): Remove.
3540 (vmaxnmvq_f32): Remove.
3541 (vmaxnmavq_f32): Remove.
3542 (vmaxnmavq_p_f16): Remove.
3543 (vmaxnmvq_p_f16): Remove.
3544 (vminnmavq_p_f16): Remove.
3545 (vminnmvq_p_f16): Remove.
3546 (vmaxnmavq_p_f32): Remove.
3547 (vmaxnmvq_p_f32): Remove.
3548 (vminnmavq_p_f32): Remove.
3549 (vminnmvq_p_f32): Remove.
3550 (__arm_vminnmvq_f16): Remove.
3551 (__arm_vminnmavq_f16): Remove.
3552 (__arm_vmaxnmvq_f16): Remove.
3553 (__arm_vmaxnmavq_f16): Remove.
3554 (__arm_vminnmvq_f32): Remove.
3555 (__arm_vminnmavq_f32): Remove.
3556 (__arm_vmaxnmvq_f32): Remove.
3557 (__arm_vmaxnmavq_f32): Remove.
3558 (__arm_vmaxnmavq_p_f16): Remove.
3559 (__arm_vmaxnmvq_p_f16): Remove.
3560 (__arm_vminnmavq_p_f16): Remove.
3561 (__arm_vminnmvq_p_f16): Remove.
3562 (__arm_vmaxnmavq_p_f32): Remove.
3563 (__arm_vmaxnmvq_p_f32): Remove.
3564 (__arm_vminnmavq_p_f32): Remove.
3565 (__arm_vminnmvq_p_f32): Remove.
3566 (__arm_vminnmvq): Remove.
3567 (__arm_vminnmavq): Remove.
3568 (__arm_vmaxnmvq): Remove.
3569 (__arm_vmaxnmavq): Remove.
3570 (__arm_vmaxnmavq_p): Remove.
3571 (__arm_vmaxnmvq_p): Remove.
3572 (__arm_vminnmavq_p): Remove.
3573 (__arm_vminnmvq_p): Remove.
3574 (__arm_vmaxnmavq_m): Remove.
3575 (__arm_vmaxnmvq_m): Remove.
3576
3577 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3578
3579 * config/arm/arm-mve-builtins-functions.h
3580 (unspec_mve_function_exact_insn_pred_p): Use code_for_mve_q_p_f.
3581
3582 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3583
3584 * config/arm/iterators.md (MVE_VMAXNMxV_MINNMxVQ)
3585 (MVE_VMAXNMxV_MINNMxVQ_P): New.
3586 (mve_insn): Add vmaxnmav, vmaxnmv, vminnmav, vminnmv.
3587 * config/arm/mve.md (mve_vmaxnmavq_f<mode>, mve_vmaxnmvq_f<mode>)
3588 (mve_vminnmavq_f<mode>, mve_vminnmvq_f<mode>): Merge into ...
3589 (@mve_<mve_insn>q_f<mode>): ... this.
3590 (mve_vmaxnmavq_p_f<mode>, mve_vmaxnmvq_p_f<mode>)
3591 (mve_vminnmavq_p_f<mode>, mve_vminnmvq_p_f<mode>): Merge into ...
3592 (@mve_<mve_insn>q_p_f<mode>): ... this.
3593
3594 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3595
3596 * config/arm/arm-mve-builtins-base.cc (vmaxnmq, vminnmq): New.
3597 * config/arm/arm-mve-builtins-base.def (vmaxnmq, vminnmq): New.
3598 * config/arm/arm-mve-builtins-base.h (vmaxnmq, vminnmq): New.
3599 * config/arm/arm_mve.h (vminnmq): Remove.
3600 (vmaxnmq): Remove.
3601 (vmaxnmq_m): Remove.
3602 (vminnmq_m): Remove.
3603 (vminnmq_x): Remove.
3604 (vmaxnmq_x): Remove.
3605 (vminnmq_f16): Remove.
3606 (vmaxnmq_f16): Remove.
3607 (vminnmq_f32): Remove.
3608 (vmaxnmq_f32): Remove.
3609 (vmaxnmq_m_f32): Remove.
3610 (vmaxnmq_m_f16): Remove.
3611 (vminnmq_m_f32): Remove.
3612 (vminnmq_m_f16): Remove.
3613 (vminnmq_x_f16): Remove.
3614 (vminnmq_x_f32): Remove.
3615 (vmaxnmq_x_f16): Remove.
3616 (vmaxnmq_x_f32): Remove.
3617 (__arm_vminnmq_f16): Remove.
3618 (__arm_vmaxnmq_f16): Remove.
3619 (__arm_vminnmq_f32): Remove.
3620 (__arm_vmaxnmq_f32): Remove.
3621 (__arm_vmaxnmq_m_f32): Remove.
3622 (__arm_vmaxnmq_m_f16): Remove.
3623 (__arm_vminnmq_m_f32): Remove.
3624 (__arm_vminnmq_m_f16): Remove.
3625 (__arm_vminnmq_x_f16): Remove.
3626 (__arm_vminnmq_x_f32): Remove.
3627 (__arm_vmaxnmq_x_f16): Remove.
3628 (__arm_vmaxnmq_x_f32): Remove.
3629 (__arm_vminnmq): Remove.
3630 (__arm_vmaxnmq): Remove.
3631 (__arm_vmaxnmq_m): Remove.
3632 (__arm_vminnmq_m): Remove.
3633 (__arm_vminnmq_x): Remove.
3634 (__arm_vmaxnmq_x): Remove.
3635
3636 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3637
3638 * config/arm/iterators.md (MAX_MIN_F): New.
3639 (MVE_FP_M_BINARY): Add VMAXNMQ_M_F, VMINNMQ_M_F.
3640 (mve_insn): Add vmaxnm, vminnm.
3641 (max_min_f_str): New.
3642 * config/arm/mve.md (mve_vmaxnmq_f<mode>, mve_vminnmq_f<mode>):
3643 Merge into ...
3644 (@mve_<max_min_f_str>q_f<mode>): ... this.
3645 (mve_vmaxnmq_m_f<mode>, mve_vminnmq_m_f<mode>): Merge into ...
3646 (@mve_<mve_insn>q_m_f<mode>): ... this.
3647
3648 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3649
3650 * config/arm/vec-common.md (smin<mode>3): Use VDQWH iterator.
3651 (smax<mode>3): Likewise.
3652
3653 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3654
3655 * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_S_U)
3656 (FUNCTION_PRED_P_S): New.
3657 (vmaxavq, vminavq, vmaxvq, vminvq): New.
3658 * config/arm/arm-mve-builtins-base.def (vmaxavq, vminavq, vmaxvq)
3659 (vminvq): New.
3660 * config/arm/arm-mve-builtins-base.h (vmaxavq, vminavq, vmaxvq)
3661 (vminvq): New.
3662 * config/arm/arm_mve.h (vminvq): Remove.
3663 (vmaxvq): Remove.
3664 (vminvq_p): Remove.
3665 (vmaxvq_p): Remove.
3666 (vminvq_u8): Remove.
3667 (vmaxvq_u8): Remove.
3668 (vminvq_s8): Remove.
3669 (vmaxvq_s8): Remove.
3670 (vminvq_u16): Remove.
3671 (vmaxvq_u16): Remove.
3672 (vminvq_s16): Remove.
3673 (vmaxvq_s16): Remove.
3674 (vminvq_u32): Remove.
3675 (vmaxvq_u32): Remove.
3676 (vminvq_s32): Remove.
3677 (vmaxvq_s32): Remove.
3678 (vminvq_p_u8): Remove.
3679 (vmaxvq_p_u8): Remove.
3680 (vminvq_p_s8): Remove.
3681 (vmaxvq_p_s8): Remove.
3682 (vminvq_p_u16): Remove.
3683 (vmaxvq_p_u16): Remove.
3684 (vminvq_p_s16): Remove.
3685 (vmaxvq_p_s16): Remove.
3686 (vminvq_p_u32): Remove.
3687 (vmaxvq_p_u32): Remove.
3688 (vminvq_p_s32): Remove.
3689 (vmaxvq_p_s32): Remove.
3690 (__arm_vminvq_u8): Remove.
3691 (__arm_vmaxvq_u8): Remove.
3692 (__arm_vminvq_s8): Remove.
3693 (__arm_vmaxvq_s8): Remove.
3694 (__arm_vminvq_u16): Remove.
3695 (__arm_vmaxvq_u16): Remove.
3696 (__arm_vminvq_s16): Remove.
3697 (__arm_vmaxvq_s16): Remove.
3698 (__arm_vminvq_u32): Remove.
3699 (__arm_vmaxvq_u32): Remove.
3700 (__arm_vminvq_s32): Remove.
3701 (__arm_vmaxvq_s32): Remove.
3702 (__arm_vminvq_p_u8): Remove.
3703 (__arm_vmaxvq_p_u8): Remove.
3704 (__arm_vminvq_p_s8): Remove.
3705 (__arm_vmaxvq_p_s8): Remove.
3706 (__arm_vminvq_p_u16): Remove.
3707 (__arm_vmaxvq_p_u16): Remove.
3708 (__arm_vminvq_p_s16): Remove.
3709 (__arm_vmaxvq_p_s16): Remove.
3710 (__arm_vminvq_p_u32): Remove.
3711 (__arm_vmaxvq_p_u32): Remove.
3712 (__arm_vminvq_p_s32): Remove.
3713 (__arm_vmaxvq_p_s32): Remove.
3714 (__arm_vminvq): Remove.
3715 (__arm_vmaxvq): Remove.
3716 (__arm_vminvq_p): Remove.
3717 (__arm_vmaxvq_p): Remove.
3718 (vminavq): Remove.
3719 (vmaxavq): Remove.
3720 (vminavq_p): Remove.
3721 (vmaxavq_p): Remove.
3722 (vminavq_s8): Remove.
3723 (vmaxavq_s8): Remove.
3724 (vminavq_s16): Remove.
3725 (vmaxavq_s16): Remove.
3726 (vminavq_s32): Remove.
3727 (vmaxavq_s32): Remove.
3728 (vminavq_p_s8): Remove.
3729 (vmaxavq_p_s8): Remove.
3730 (vminavq_p_s16): Remove.
3731 (vmaxavq_p_s16): Remove.
3732 (vminavq_p_s32): Remove.
3733 (vmaxavq_p_s32): Remove.
3734 (__arm_vminavq_s8): Remove.
3735 (__arm_vmaxavq_s8): Remove.
3736 (__arm_vminavq_s16): Remove.
3737 (__arm_vmaxavq_s16): Remove.
3738 (__arm_vminavq_s32): Remove.
3739 (__arm_vmaxavq_s32): Remove.
3740 (__arm_vminavq_p_s8): Remove.
3741 (__arm_vmaxavq_p_s8): Remove.
3742 (__arm_vminavq_p_s16): Remove.
3743 (__arm_vmaxavq_p_s16): Remove.
3744 (__arm_vminavq_p_s32): Remove.
3745 (__arm_vmaxavq_p_s32): Remove.
3746 (__arm_vminavq): Remove.
3747 (__arm_vmaxavq): Remove.
3748 (__arm_vminavq_p): Remove.
3749 (__arm_vmaxavq_p): Remove.
3750
3751 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3752
3753 * config/arm/iterators.md (MVE_VMAXVQ_VMINVQ, MVE_VMAXVQ_VMINVQ_P): New.
3754 (mve_insn): Add vmaxav, vmaxv, vminav, vminv.
3755 (supf): Add VMAXAVQ_S, VMAXAVQ_P_S, VMINAVQ_S, VMINAVQ_P_S.
3756 * config/arm/mve.md (mve_vmaxavq_s<mode>, mve_vmaxvq_<supf><mode>)
3757 (mve_vminavq_s<mode>, mve_vminvq_<supf><mode>): Merge into ...
3758 (@mve_<mve_insn>q_<supf><mode>): ... this.
3759 (mve_vmaxavq_p_s<mode>, mve_vmaxvq_p_<supf><mode>)
3760 (mve_vminavq_p_s<mode>, mve_vminvq_p_<supf><mode>): Merge into ...
3761 (@mve_<mve_insn>q_p_<supf><mode>): ... this.
3762
3763 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3764
3765 * config/arm/arm-mve-builtins-functions.h (class
3766 unspec_mve_function_exact_insn_pred_p): New.
3767
3768 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3769
3770 * config/arm/arm-mve-builtins-shapes.cc (binary_maxavminav): New.
3771 * config/arm/arm-mve-builtins-shapes.h (binary_maxavminav): New.
3772
3773 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3774
3775 * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New.
3776 * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New.
3777
3778 2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
3779
3780 * config/aarch64/aarch64-protos.h (aarch64_adjust_reg_alloc_order):
3781 Declare.
3782 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
3783 (ADJUST_REG_ALLOC_ORDER): Likewise.
3784 * config/aarch64/aarch64.cc (aarch64_adjust_reg_alloc_order): New
3785 function.
3786 * config/aarch64/aarch64-sve.md (*vcond_mask_<mode><vpred>): Use
3787 Upa rather than Upl for unpredicated movprfx alternatives.
3788
3789 2023-05-09 Jeff Law <jlaw@ventanamicro>
3790
3791 * config/h8300/testcompare.md: Add peephole2 which uses a memory
3792 load to set flags, thus eliminating a compare against zero.
3793
3794 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3795
3796 * config/arm/arm-mve-builtins-base.cc (vshllbq, vshlltq): New.
3797 * config/arm/arm-mve-builtins-base.def (vshllbq, vshlltq): New.
3798 * config/arm/arm-mve-builtins-base.h (vshllbq, vshlltq): New.
3799 * config/arm/arm_mve.h (vshlltq): Remove.
3800 (vshllbq): Remove.
3801 (vshllbq_m): Remove.
3802 (vshlltq_m): Remove.
3803 (vshllbq_x): Remove.
3804 (vshlltq_x): Remove.
3805 (vshlltq_n_u8): Remove.
3806 (vshllbq_n_u8): Remove.
3807 (vshlltq_n_s8): Remove.
3808 (vshllbq_n_s8): Remove.
3809 (vshlltq_n_u16): Remove.
3810 (vshllbq_n_u16): Remove.
3811 (vshlltq_n_s16): Remove.
3812 (vshllbq_n_s16): Remove.
3813 (vshllbq_m_n_s8): Remove.
3814 (vshllbq_m_n_s16): Remove.
3815 (vshllbq_m_n_u8): Remove.
3816 (vshllbq_m_n_u16): Remove.
3817 (vshlltq_m_n_s8): Remove.
3818 (vshlltq_m_n_s16): Remove.
3819 (vshlltq_m_n_u8): Remove.
3820 (vshlltq_m_n_u16): Remove.
3821 (vshllbq_x_n_s8): Remove.
3822 (vshllbq_x_n_s16): Remove.
3823 (vshllbq_x_n_u8): Remove.
3824 (vshllbq_x_n_u16): Remove.
3825 (vshlltq_x_n_s8): Remove.
3826 (vshlltq_x_n_s16): Remove.
3827 (vshlltq_x_n_u8): Remove.
3828 (vshlltq_x_n_u16): Remove.
3829 (__arm_vshlltq_n_u8): Remove.
3830 (__arm_vshllbq_n_u8): Remove.
3831 (__arm_vshlltq_n_s8): Remove.
3832 (__arm_vshllbq_n_s8): Remove.
3833 (__arm_vshlltq_n_u16): Remove.
3834 (__arm_vshllbq_n_u16): Remove.
3835 (__arm_vshlltq_n_s16): Remove.
3836 (__arm_vshllbq_n_s16): Remove.
3837 (__arm_vshllbq_m_n_s8): Remove.
3838 (__arm_vshllbq_m_n_s16): Remove.
3839 (__arm_vshllbq_m_n_u8): Remove.
3840 (__arm_vshllbq_m_n_u16): Remove.
3841 (__arm_vshlltq_m_n_s8): Remove.
3842 (__arm_vshlltq_m_n_s16): Remove.
3843 (__arm_vshlltq_m_n_u8): Remove.
3844 (__arm_vshlltq_m_n_u16): Remove.
3845 (__arm_vshllbq_x_n_s8): Remove.
3846 (__arm_vshllbq_x_n_s16): Remove.
3847 (__arm_vshllbq_x_n_u8): Remove.
3848 (__arm_vshllbq_x_n_u16): Remove.
3849 (__arm_vshlltq_x_n_s8): Remove.
3850 (__arm_vshlltq_x_n_s16): Remove.
3851 (__arm_vshlltq_x_n_u8): Remove.
3852 (__arm_vshlltq_x_n_u16): Remove.
3853 (__arm_vshlltq): Remove.
3854 (__arm_vshllbq): Remove.
3855 (__arm_vshllbq_m): Remove.
3856 (__arm_vshlltq_m): Remove.
3857 (__arm_vshllbq_x): Remove.
3858 (__arm_vshlltq_x): Remove.
3859
3860 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3861
3862 * config/arm/iterators.md (mve_insn): Add vshllb, vshllt.
3863 (VSHLLBQ_N, VSHLLTQ_N): Remove.
3864 (VSHLLxQ_N): New.
3865 (VSHLLBQ_M_N, VSHLLTQ_M_N): Remove.
3866 (VSHLLxQ_M_N): New.
3867 * config/arm/mve.md (mve_vshllbq_n_<supf><mode>)
3868 (mve_vshlltq_n_<supf><mode>): Merge into ...
3869 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
3870 (mve_vshllbq_m_n_<supf><mode>, mve_vshlltq_m_n_<supf><mode>):
3871 Merge into ...
3872 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
3873
3874 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3875
3876 * config/arm/arm-mve-builtins-shapes.cc (binary_widen_n): New.
3877 * config/arm/arm-mve-builtins-shapes.h (binary_widen_n): New.
3878
3879 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3880
3881 * config/arm/arm-mve-builtins-base.cc (vmovnbq, vmovntq, vqmovnbq)
3882 (vqmovntq, vqmovunbq, vqmovuntq): New.
3883 * config/arm/arm-mve-builtins-base.def (vmovnbq, vmovntq)
3884 (vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq): New.
3885 * config/arm/arm-mve-builtins-base.h (vmovnbq, vmovntq, vqmovnbq)
3886 (vqmovntq, vqmovunbq, vqmovuntq): New.
3887 * config/arm/arm-mve-builtins.cc
3888 (function_instance::has_inactive_argument): Handle vmovnbq,
3889 vmovntq, vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq.
3890 * config/arm/arm_mve.h (vqmovntq): Remove.
3891 (vqmovnbq): Remove.
3892 (vqmovnbq_m): Remove.
3893 (vqmovntq_m): Remove.
3894 (vqmovntq_u16): Remove.
3895 (vqmovnbq_u16): Remove.
3896 (vqmovntq_s16): Remove.
3897 (vqmovnbq_s16): Remove.
3898 (vqmovntq_u32): Remove.
3899 (vqmovnbq_u32): Remove.
3900 (vqmovntq_s32): Remove.
3901 (vqmovnbq_s32): Remove.
3902 (vqmovnbq_m_s16): Remove.
3903 (vqmovntq_m_s16): Remove.
3904 (vqmovnbq_m_u16): Remove.
3905 (vqmovntq_m_u16): Remove.
3906 (vqmovnbq_m_s32): Remove.
3907 (vqmovntq_m_s32): Remove.
3908 (vqmovnbq_m_u32): Remove.
3909 (vqmovntq_m_u32): Remove.
3910 (__arm_vqmovntq_u16): Remove.
3911 (__arm_vqmovnbq_u16): Remove.
3912 (__arm_vqmovntq_s16): Remove.
3913 (__arm_vqmovnbq_s16): Remove.
3914 (__arm_vqmovntq_u32): Remove.
3915 (__arm_vqmovnbq_u32): Remove.
3916 (__arm_vqmovntq_s32): Remove.
3917 (__arm_vqmovnbq_s32): Remove.
3918 (__arm_vqmovnbq_m_s16): Remove.
3919 (__arm_vqmovntq_m_s16): Remove.
3920 (__arm_vqmovnbq_m_u16): Remove.
3921 (__arm_vqmovntq_m_u16): Remove.
3922 (__arm_vqmovnbq_m_s32): Remove.
3923 (__arm_vqmovntq_m_s32): Remove.
3924 (__arm_vqmovnbq_m_u32): Remove.
3925 (__arm_vqmovntq_m_u32): Remove.
3926 (__arm_vqmovntq): Remove.
3927 (__arm_vqmovnbq): Remove.
3928 (__arm_vqmovnbq_m): Remove.
3929 (__arm_vqmovntq_m): Remove.
3930 (vmovntq): Remove.
3931 (vmovnbq): Remove.
3932 (vmovnbq_m): Remove.
3933 (vmovntq_m): Remove.
3934 (vmovntq_u16): Remove.
3935 (vmovnbq_u16): Remove.
3936 (vmovntq_s16): Remove.
3937 (vmovnbq_s16): Remove.
3938 (vmovntq_u32): Remove.
3939 (vmovnbq_u32): Remove.
3940 (vmovntq_s32): Remove.
3941 (vmovnbq_s32): Remove.
3942 (vmovnbq_m_s16): Remove.
3943 (vmovntq_m_s16): Remove.
3944 (vmovnbq_m_u16): Remove.
3945 (vmovntq_m_u16): Remove.
3946 (vmovnbq_m_s32): Remove.
3947 (vmovntq_m_s32): Remove.
3948 (vmovnbq_m_u32): Remove.
3949 (vmovntq_m_u32): Remove.
3950 (__arm_vmovntq_u16): Remove.
3951 (__arm_vmovnbq_u16): Remove.
3952 (__arm_vmovntq_s16): Remove.
3953 (__arm_vmovnbq_s16): Remove.
3954 (__arm_vmovntq_u32): Remove.
3955 (__arm_vmovnbq_u32): Remove.
3956 (__arm_vmovntq_s32): Remove.
3957 (__arm_vmovnbq_s32): Remove.
3958 (__arm_vmovnbq_m_s16): Remove.
3959 (__arm_vmovntq_m_s16): Remove.
3960 (__arm_vmovnbq_m_u16): Remove.
3961 (__arm_vmovntq_m_u16): Remove.
3962 (__arm_vmovnbq_m_s32): Remove.
3963 (__arm_vmovntq_m_s32): Remove.
3964 (__arm_vmovnbq_m_u32): Remove.
3965 (__arm_vmovntq_m_u32): Remove.
3966 (__arm_vmovntq): Remove.
3967 (__arm_vmovnbq): Remove.
3968 (__arm_vmovnbq_m): Remove.
3969 (__arm_vmovntq_m): Remove.
3970 (vqmovuntq): Remove.
3971 (vqmovunbq): Remove.
3972 (vqmovunbq_m): Remove.
3973 (vqmovuntq_m): Remove.
3974 (vqmovuntq_s16): Remove.
3975 (vqmovunbq_s16): Remove.
3976 (vqmovuntq_s32): Remove.
3977 (vqmovunbq_s32): Remove.
3978 (vqmovunbq_m_s16): Remove.
3979 (vqmovuntq_m_s16): Remove.
3980 (vqmovunbq_m_s32): Remove.
3981 (vqmovuntq_m_s32): Remove.
3982 (__arm_vqmovuntq_s16): Remove.
3983 (__arm_vqmovunbq_s16): Remove.
3984 (__arm_vqmovuntq_s32): Remove.
3985 (__arm_vqmovunbq_s32): Remove.
3986 (__arm_vqmovunbq_m_s16): Remove.
3987 (__arm_vqmovuntq_m_s16): Remove.
3988 (__arm_vqmovunbq_m_s32): Remove.
3989 (__arm_vqmovuntq_m_s32): Remove.
3990 (__arm_vqmovuntq): Remove.
3991 (__arm_vqmovunbq): Remove.
3992 (__arm_vqmovunbq_m): Remove.
3993 (__arm_vqmovuntq_m): Remove.
3994
3995 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
3996
3997 * config/arm/iterators.md (MVE_MOVN, MVE_MOVN_M): New.
3998 (mve_insn): Add vmovnb, vmovnt, vqmovnb, vqmovnt, vqmovunb,
3999 vqmovunt.
4000 (isu): Likewise.
4001 (supf): Add VQMOVUNBQ_M_S, VQMOVUNBQ_S, VQMOVUNTQ_M_S,
4002 VQMOVUNTQ_S.
4003 * config/arm/mve.md (mve_vmovnbq_<supf><mode>)
4004 (mve_vmovntq_<supf><mode>, mve_vqmovnbq_<supf><mode>)
4005 (mve_vqmovntq_<supf><mode>, mve_vqmovunbq_s<mode>)
4006 (mve_vqmovuntq_s<mode>): Merge into ...
4007 (@mve_<mve_insn>q_<supf><mode>): ... this.
4008 (mve_vmovnbq_m_<supf><mode>, mve_vmovntq_m_<supf><mode>)
4009 (mve_vqmovnbq_m_<supf><mode>, mve_vqmovntq_m_<supf><mode>)
4010 (mve_vqmovunbq_m_s<mode>, mve_vqmovuntq_m_s<mode>): Merge into ...
4011 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
4012
4013 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
4014
4015 * config/arm/arm-mve-builtins-shapes.cc (binary_move_narrow): New.
4016 (binary_move_narrow_unsigned): New.
4017 * config/arm/arm-mve-builtins-shapes.h (binary_move_narrow): New.
4018 (binary_move_narrow_unsigned): New.
4019
4020 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
4021
4022 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_F): New.
4023 (vrndaq, vrndmq, vrndnq, vrndpq, vrndq, vrndxq): New.
4024 * config/arm/arm-mve-builtins-base.def (vrndaq, vrndmq, vrndnq)
4025 (vrndpq, vrndq, vrndxq): New.
4026 * config/arm/arm-mve-builtins-base.h (vrndaq, vrndmq, vrndnq)
4027 (vrndpq, vrndq, vrndxq): New.
4028 * config/arm/arm_mve.h (vrndxq): Remove.
4029 (vrndq): Remove.
4030 (vrndpq): Remove.
4031 (vrndnq): Remove.
4032 (vrndmq): Remove.
4033 (vrndaq): Remove.
4034 (vrndaq_m): Remove.
4035 (vrndmq_m): Remove.
4036 (vrndnq_m): Remove.
4037 (vrndpq_m): Remove.
4038 (vrndq_m): Remove.
4039 (vrndxq_m): Remove.
4040 (vrndq_x): Remove.
4041 (vrndnq_x): Remove.
4042 (vrndmq_x): Remove.
4043 (vrndpq_x): Remove.
4044 (vrndaq_x): Remove.
4045 (vrndxq_x): Remove.
4046 (vrndxq_f16): Remove.
4047 (vrndxq_f32): Remove.
4048 (vrndq_f16): Remove.
4049 (vrndq_f32): Remove.
4050 (vrndpq_f16): Remove.
4051 (vrndpq_f32): Remove.
4052 (vrndnq_f16): Remove.
4053 (vrndnq_f32): Remove.
4054 (vrndmq_f16): Remove.
4055 (vrndmq_f32): Remove.
4056 (vrndaq_f16): Remove.
4057 (vrndaq_f32): Remove.
4058 (vrndaq_m_f16): Remove.
4059 (vrndmq_m_f16): Remove.
4060 (vrndnq_m_f16): Remove.
4061 (vrndpq_m_f16): Remove.
4062 (vrndq_m_f16): Remove.
4063 (vrndxq_m_f16): Remove.
4064 (vrndaq_m_f32): Remove.
4065 (vrndmq_m_f32): Remove.
4066 (vrndnq_m_f32): Remove.
4067 (vrndpq_m_f32): Remove.
4068 (vrndq_m_f32): Remove.
4069 (vrndxq_m_f32): Remove.
4070 (vrndq_x_f16): Remove.
4071 (vrndq_x_f32): Remove.
4072 (vrndnq_x_f16): Remove.
4073 (vrndnq_x_f32): Remove.
4074 (vrndmq_x_f16): Remove.
4075 (vrndmq_x_f32): Remove.
4076 (vrndpq_x_f16): Remove.
4077 (vrndpq_x_f32): Remove.
4078 (vrndaq_x_f16): Remove.
4079 (vrndaq_x_f32): Remove.
4080 (vrndxq_x_f16): Remove.
4081 (vrndxq_x_f32): Remove.
4082 (__arm_vrndxq_f16): Remove.
4083 (__arm_vrndxq_f32): Remove.
4084 (__arm_vrndq_f16): Remove.
4085 (__arm_vrndq_f32): Remove.
4086 (__arm_vrndpq_f16): Remove.
4087 (__arm_vrndpq_f32): Remove.
4088 (__arm_vrndnq_f16): Remove.
4089 (__arm_vrndnq_f32): Remove.
4090 (__arm_vrndmq_f16): Remove.
4091 (__arm_vrndmq_f32): Remove.
4092 (__arm_vrndaq_f16): Remove.
4093 (__arm_vrndaq_f32): Remove.
4094 (__arm_vrndaq_m_f16): Remove.
4095 (__arm_vrndmq_m_f16): Remove.
4096 (__arm_vrndnq_m_f16): Remove.
4097 (__arm_vrndpq_m_f16): Remove.
4098 (__arm_vrndq_m_f16): Remove.
4099 (__arm_vrndxq_m_f16): Remove.
4100 (__arm_vrndaq_m_f32): Remove.
4101 (__arm_vrndmq_m_f32): Remove.
4102 (__arm_vrndnq_m_f32): Remove.
4103 (__arm_vrndpq_m_f32): Remove.
4104 (__arm_vrndq_m_f32): Remove.
4105 (__arm_vrndxq_m_f32): Remove.
4106 (__arm_vrndq_x_f16): Remove.
4107 (__arm_vrndq_x_f32): Remove.
4108 (__arm_vrndnq_x_f16): Remove.
4109 (__arm_vrndnq_x_f32): Remove.
4110 (__arm_vrndmq_x_f16): Remove.
4111 (__arm_vrndmq_x_f32): Remove.
4112 (__arm_vrndpq_x_f16): Remove.
4113 (__arm_vrndpq_x_f32): Remove.
4114 (__arm_vrndaq_x_f16): Remove.
4115 (__arm_vrndaq_x_f32): Remove.
4116 (__arm_vrndxq_x_f16): Remove.
4117 (__arm_vrndxq_x_f32): Remove.
4118 (__arm_vrndxq): Remove.
4119 (__arm_vrndq): Remove.
4120 (__arm_vrndpq): Remove.
4121 (__arm_vrndnq): Remove.
4122 (__arm_vrndmq): Remove.
4123 (__arm_vrndaq): Remove.
4124 (__arm_vrndaq_m): Remove.
4125 (__arm_vrndmq_m): Remove.
4126 (__arm_vrndnq_m): Remove.
4127 (__arm_vrndpq_m): Remove.
4128 (__arm_vrndq_m): Remove.
4129 (__arm_vrndxq_m): Remove.
4130 (__arm_vrndq_x): Remove.
4131 (__arm_vrndnq_x): Remove.
4132 (__arm_vrndmq_x): Remove.
4133 (__arm_vrndpq_x): Remove.
4134 (__arm_vrndaq_x): Remove.
4135 (__arm_vrndxq_x): Remove.
4136
4137 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
4138
4139 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N_NO_U_F): New.
4140 (vabsq, vnegq, vclsq, vclzq, vqabsq, vqnegq): New.
4141 * config/arm/arm-mve-builtins-base.def (vabsq, vnegq, vclsq)
4142 (vclzq, vqabsq, vqnegq): New.
4143 * config/arm/arm-mve-builtins-base.h (vabsq, vnegq, vclsq, vclzq)
4144 (vqabsq, vqnegq): New.
4145 * config/arm/arm_mve.h (vabsq): Remove.
4146 (vabsq_m): Remove.
4147 (vabsq_x): Remove.
4148 (vabsq_f16): Remove.
4149 (vabsq_f32): Remove.
4150 (vabsq_s8): Remove.
4151 (vabsq_s16): Remove.
4152 (vabsq_s32): Remove.
4153 (vabsq_m_s8): Remove.
4154 (vabsq_m_s16): Remove.
4155 (vabsq_m_s32): Remove.
4156 (vabsq_m_f16): Remove.
4157 (vabsq_m_f32): Remove.
4158 (vabsq_x_s8): Remove.
4159 (vabsq_x_s16): Remove.
4160 (vabsq_x_s32): Remove.
4161 (vabsq_x_f16): Remove.
4162 (vabsq_x_f32): Remove.
4163 (__arm_vabsq_s8): Remove.
4164 (__arm_vabsq_s16): Remove.
4165 (__arm_vabsq_s32): Remove.
4166 (__arm_vabsq_m_s8): Remove.
4167 (__arm_vabsq_m_s16): Remove.
4168 (__arm_vabsq_m_s32): Remove.
4169 (__arm_vabsq_x_s8): Remove.
4170 (__arm_vabsq_x_s16): Remove.
4171 (__arm_vabsq_x_s32): Remove.
4172 (__arm_vabsq_f16): Remove.
4173 (__arm_vabsq_f32): Remove.
4174 (__arm_vabsq_m_f16): Remove.
4175 (__arm_vabsq_m_f32): Remove.
4176 (__arm_vabsq_x_f16): Remove.
4177 (__arm_vabsq_x_f32): Remove.
4178 (__arm_vabsq): Remove.
4179 (__arm_vabsq_m): Remove.
4180 (__arm_vabsq_x): Remove.
4181 (vnegq): Remove.
4182 (vnegq_m): Remove.
4183 (vnegq_x): Remove.
4184 (vnegq_f16): Remove.
4185 (vnegq_f32): Remove.
4186 (vnegq_s8): Remove.
4187 (vnegq_s16): Remove.
4188 (vnegq_s32): Remove.
4189 (vnegq_m_s8): Remove.
4190 (vnegq_m_s16): Remove.
4191 (vnegq_m_s32): Remove.
4192 (vnegq_m_f16): Remove.
4193 (vnegq_m_f32): Remove.
4194 (vnegq_x_s8): Remove.
4195 (vnegq_x_s16): Remove.
4196 (vnegq_x_s32): Remove.
4197 (vnegq_x_f16): Remove.
4198 (vnegq_x_f32): Remove.
4199 (__arm_vnegq_s8): Remove.
4200 (__arm_vnegq_s16): Remove.
4201 (__arm_vnegq_s32): Remove.
4202 (__arm_vnegq_m_s8): Remove.
4203 (__arm_vnegq_m_s16): Remove.
4204 (__arm_vnegq_m_s32): Remove.
4205 (__arm_vnegq_x_s8): Remove.
4206 (__arm_vnegq_x_s16): Remove.
4207 (__arm_vnegq_x_s32): Remove.
4208 (__arm_vnegq_f16): Remove.
4209 (__arm_vnegq_f32): Remove.
4210 (__arm_vnegq_m_f16): Remove.
4211 (__arm_vnegq_m_f32): Remove.
4212 (__arm_vnegq_x_f16): Remove.
4213 (__arm_vnegq_x_f32): Remove.
4214 (__arm_vnegq): Remove.
4215 (__arm_vnegq_m): Remove.
4216 (__arm_vnegq_x): Remove.
4217 (vclsq): Remove.
4218 (vclsq_m): Remove.
4219 (vclsq_x): Remove.
4220 (vclsq_s8): Remove.
4221 (vclsq_s16): Remove.
4222 (vclsq_s32): Remove.
4223 (vclsq_m_s8): Remove.
4224 (vclsq_m_s16): Remove.
4225 (vclsq_m_s32): Remove.
4226 (vclsq_x_s8): Remove.
4227 (vclsq_x_s16): Remove.
4228 (vclsq_x_s32): Remove.
4229 (__arm_vclsq_s8): Remove.
4230 (__arm_vclsq_s16): Remove.
4231 (__arm_vclsq_s32): Remove.
4232 (__arm_vclsq_m_s8): Remove.
4233 (__arm_vclsq_m_s16): Remove.
4234 (__arm_vclsq_m_s32): Remove.
4235 (__arm_vclsq_x_s8): Remove.
4236 (__arm_vclsq_x_s16): Remove.
4237 (__arm_vclsq_x_s32): Remove.
4238 (__arm_vclsq): Remove.
4239 (__arm_vclsq_m): Remove.
4240 (__arm_vclsq_x): Remove.
4241 (vclzq): Remove.
4242 (vclzq_m): Remove.
4243 (vclzq_x): Remove.
4244 (vclzq_s8): Remove.
4245 (vclzq_s16): Remove.
4246 (vclzq_s32): Remove.
4247 (vclzq_u8): Remove.
4248 (vclzq_u16): Remove.
4249 (vclzq_u32): Remove.
4250 (vclzq_m_u8): Remove.
4251 (vclzq_m_s8): Remove.
4252 (vclzq_m_u16): Remove.
4253 (vclzq_m_s16): Remove.
4254 (vclzq_m_u32): Remove.
4255 (vclzq_m_s32): Remove.
4256 (vclzq_x_s8): Remove.
4257 (vclzq_x_s16): Remove.
4258 (vclzq_x_s32): Remove.
4259 (vclzq_x_u8): Remove.
4260 (vclzq_x_u16): Remove.
4261 (vclzq_x_u32): Remove.
4262 (__arm_vclzq_s8): Remove.
4263 (__arm_vclzq_s16): Remove.
4264 (__arm_vclzq_s32): Remove.
4265 (__arm_vclzq_u8): Remove.
4266 (__arm_vclzq_u16): Remove.
4267 (__arm_vclzq_u32): Remove.
4268 (__arm_vclzq_m_u8): Remove.
4269 (__arm_vclzq_m_s8): Remove.
4270 (__arm_vclzq_m_u16): Remove.
4271 (__arm_vclzq_m_s16): Remove.
4272 (__arm_vclzq_m_u32): Remove.
4273 (__arm_vclzq_m_s32): Remove.
4274 (__arm_vclzq_x_s8): Remove.
4275 (__arm_vclzq_x_s16): Remove.
4276 (__arm_vclzq_x_s32): Remove.
4277 (__arm_vclzq_x_u8): Remove.
4278 (__arm_vclzq_x_u16): Remove.
4279 (__arm_vclzq_x_u32): Remove.
4280 (__arm_vclzq): Remove.
4281 (__arm_vclzq_m): Remove.
4282 (__arm_vclzq_x): Remove.
4283 (vqabsq): Remove.
4284 (vqnegq): Remove.
4285 (vqnegq_m): Remove.
4286 (vqabsq_m): Remove.
4287 (vqabsq_s8): Remove.
4288 (vqabsq_s16): Remove.
4289 (vqabsq_s32): Remove.
4290 (vqnegq_s8): Remove.
4291 (vqnegq_s16): Remove.
4292 (vqnegq_s32): Remove.
4293 (vqnegq_m_s8): Remove.
4294 (vqabsq_m_s8): Remove.
4295 (vqnegq_m_s16): Remove.
4296 (vqabsq_m_s16): Remove.
4297 (vqnegq_m_s32): Remove.
4298 (vqabsq_m_s32): Remove.
4299 (__arm_vqabsq_s8): Remove.
4300 (__arm_vqabsq_s16): Remove.
4301 (__arm_vqabsq_s32): Remove.
4302 (__arm_vqnegq_s8): Remove.
4303 (__arm_vqnegq_s16): Remove.
4304 (__arm_vqnegq_s32): Remove.
4305 (__arm_vqnegq_m_s8): Remove.
4306 (__arm_vqabsq_m_s8): Remove.
4307 (__arm_vqnegq_m_s16): Remove.
4308 (__arm_vqabsq_m_s16): Remove.
4309 (__arm_vqnegq_m_s32): Remove.
4310 (__arm_vqabsq_m_s32): Remove.
4311 (__arm_vqabsq): Remove.
4312 (__arm_vqnegq): Remove.
4313 (__arm_vqnegq_m): Remove.
4314 (__arm_vqabsq_m): Remove.
4315
4316 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
4317
4318 * config/arm/iterators.md (MVE_INT_M_UNARY, MVE_INT_UNARY)
4319 (MVE_FP_UNARY, MVE_FP_M_UNARY): New.
4320 (mve_insn): Add vabs, vcls, vclz, vneg, vqabs, vqneg, vrnda,
4321 vrndm, vrndn, vrndp, vrnd, vrndx.
4322 (isu): Add VABSQ_M_S, VCLSQ_M_S, VCLZQ_M_S, VCLZQ_M_U, VNEGQ_M_S,
4323 VQABSQ_M_S, VQNEGQ_M_S.
4324 (mve_mnemo): New.
4325 * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrndxq_f<mode>)
4326 (mve_vrndq_f<mode>, mve_vrndpq_f<mode>, mve_vrndnq_f<mode>)
4327 (mve_vrndmq_f<mode>, mve_vrndaq_f<mode>): Merge into ...
4328 (@mve_<mve_insn>q_f<mode>): ... this.
4329 (mve_vnegq_f<mode>, mve_vabsq_f<mode>): Merge into ...
4330 (mve_v<absneg_str>q_f<mode>): ... this.
4331 (mve_vnegq_s<mode>, mve_vabsq_s<mode>): Merge into ...
4332 (mve_v<absneg_str>q_s<mode>): ... this.
4333 (mve_vclsq_s<mode>, mve_vqnegq_s<mode>, mve_vqabsq_s<mode>): Merge into ...
4334 (@mve_<mve_insn>q_<supf><mode>): ... this.
4335 (mve_vabsq_m_s<mode>, mve_vclsq_m_s<mode>)
4336 (mve_vclzq_m_<supf><mode>, mve_vnegq_m_s<mode>)
4337 (mve_vqabsq_m_s<mode>, mve_vqnegq_m_s<mode>): Merge into ...
4338 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
4339 (mve_vabsq_m_f<mode>, mve_vnegq_m_f<mode>, mve_vrndaq_m_f<mode>)
4340 (mve_vrndmq_m_f<mode>, mve_vrndnq_m_f<mode>, mve_vrndpq_m_f<mode>)
4341 (mve_vrndxq_m_f<mode>): Merge into ...
4342 (@mve_<mve_insn>q_m_f<mode>): ... this.
4343
4344 2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
4345
4346 * config/arm/arm-mve-builtins-shapes.cc (unary): New.
4347 * config/arm/arm-mve-builtins-shapes.h (unary): New.
4348
4349 2023-05-09 Jakub Jelinek <jakub@redhat.com>
4350
4351 * mux-utils.h: Fix comment typo, avoides -> avoids.
4352
4353 2023-05-09 Jakub Jelinek <jakub@redhat.com>
4354
4355 PR tree-optimization/109778
4356 * wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on
4357 wi::zext (x, width) rather than x if width != precision, rather
4358 than using wi::zext (right, width) after the shift.
4359 * tree-ssa-ccp.cc (bit_value_binop): Call wi::ext on the results
4360 of wi::lrotate or wi::rrotate.
4361
4362 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
4363
4364 * genmatch.cc (get_out_file): Make static and rename to ...
4365 (choose_output): ... this. Reimplement. Update all uses ...
4366 (decision_tree::gen): ... here and ...
4367 (main): ... here.
4368
4369 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
4370
4371 * genmatch.cc (showUsage): Reimplement as ...
4372 (usage): ...this. Adjust all uses.
4373 (main): Print usage when no arguments. Add missing 'return 1'.
4374
4375 2023-05-09 Alexander Monakov <amonakov@ispras.ru>
4376
4377 * genmatch.cc (header_file): Make static.
4378 (emit_func): Rename to...
4379 (fp_decl): ... this. Adjust all uses.
4380 (fp_decl_done): New function. Use it...
4381 (decision_tree::gen): ... here and...
4382 (write_predicate): ... here.
4383 (main): Adjust.
4384
4385 2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
4386
4387 * ira-conflicts.cc (can_use_same_reg_p): Skip over non-matching
4388 earlyclobbers.
4389
4390 2023-05-08 Roger Sayle <roger@nextmovesoftware.com>
4391 Uros Bizjak <ubizjak@gmail.com>
4392
4393 * config/i386/i386.md (any_or_plus): Move definition earlier.
4394 (*insvti_highpart_1): New define_insn_and_split to overwrite
4395 (insv) the highpart of a TImode register/memory.
4396
4397 2023-05-08 Eugene Rozenfeld <erozen@microsoft.com>
4398
4399 * auto-profile.cc (auto_profile): Check todo from early_inline
4400 to see if cleanup_tree_vfg needs to be called.
4401 (early_inline): Return todo from early_inliner.
4402
4403 2023-05-08 Kito Cheng <kito.cheng@sifive.com>
4404
4405 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vector_info):
4406 New.
4407 (pass_vsetvl::get_block_info): New.
4408 (pass_vsetvl::update_vector_info): New.
4409 (pass_vsetvl::simple_vsetvl): Use get_vector_info.
4410 (pass_vsetvl::compute_local_backward_infos): Ditto.
4411 (pass_vsetvl::transfer_before): Ditto.
4412 (pass_vsetvl::transfer_after): Ditto.
4413 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
4414 (pass_vsetvl::local_eliminate_vsetvl_insn): Ditto.
4415 (pass_vsetvl::cleanup_insns): Ditto.
4416 (pass_vsetvl::compute_local_backward_infos): Use
4417 update_vector_info.
4418
4419 2023-05-08 Jeff Law <jlaw@ventanamicro>
4420
4421 * config/stormy16/stormy16.md (zero_extendhisi2): Fix length.
4422
4423 2023-05-08 Richard Biener <rguenther@suse.de>
4424 Michael Meissner <meissner@linux.ibm.com>
4425
4426 PR middle-end/108623
4427 * tree-core.h (tree_type_common): Bump up precision field to 16 bits.
4428 Align bit fields > 1 bit to at least an 8-bit boundary.
4429
4430 2023-05-08 Andrew Pinski <apinski@marvell.com>
4431
4432 PR tree-optimization/109424
4433 PR tree-optimization/59424
4434 * tree-ssa-phiopt.cc (factor_out_conditional_conversion): Rename to ...
4435 (factor_out_conditional_operation): This and add support for all unary
4436 operations.
4437 (pass_phiopt::execute): Update call to factor_out_conditional_conversion
4438 to call factor_out_conditional_operation instead.
4439
4440 2023-05-08 Andrew Pinski <apinski@marvell.com>
4441
4442 * tree-ssa-phiopt.cc (pass_phiopt::execute): Loop
4443 over factor_out_conditional_conversion.
4444
4445 2023-05-08 Andrew Pinski <apinski@marvell.com>
4446
4447 PR tree-optimization/49959
4448 PR tree-optimization/103771
4449 * tree-ssa-phiopt.cc (pass_phiopt::execute): Support
4450 Diamond shapped bb form for factor_out_conditional_conversion.
4451
4452 2023-05-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4453
4454 * config/riscv/autovec.md (movmisalign<mode>): New pattern.
4455 * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): Delete.
4456 (riscv_vector_get_mask_mode): Ditto.
4457 (get_mask_policy_no_pred): Ditto.
4458 (get_tail_policy_no_pred): Ditto.
4459 (get_mask_mode): New function.
4460 * config/riscv/riscv-v.cc (get_mask_policy_no_pred): Delete.
4461 (get_tail_policy_no_pred): Ditto.
4462 (riscv_vector_mask_mode_p): Ditto.
4463 (riscv_vector_get_mask_mode): Ditto.
4464 (get_mask_mode): New function.
4465 * config/riscv/riscv-vector-builtins.cc (use_real_merge_p): Remove
4466 global extern.
4467 (get_tail_policy_for_pred): Ditto.
4468 * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred): Ditto.
4469 (get_mask_policy_for_pred): Ditto
4470 * config/riscv/riscv.cc (riscv_get_mask_mode): Refine codes.
4471
4472 2023-05-08 Kito Cheng <kito.cheng@sifive.com>
4473
4474 * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi): New.
4475 (riscv_select_multilib): New.
4476 (riscv_compute_multilib): Extract logic to riscv_select_multilib and
4477 also handle select_by_abi.
4478 * config/riscv/elf.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Change it
4479 to select_by_abi_arch_cmodel from 1.
4480 * config/riscv/linux.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Define.
4481 * config/riscv/riscv-opts.h (enum riscv_multilib_select_kind): New.
4482
4483 2023-05-08 Alexander Monakov <amonakov@ispras.ru>
4484
4485 * Makefile.in: (gimple-match-head.o-warn): Remove.
4486 (GIMPLE_MATCH_PD_SEQ_SRC): Do not depend on
4487 gimple-match-exports.cc.
4488 (gimple-match-auto.h): Only depend on s-gimple-match.
4489 (generic-match-auto.h): Likewise.
4490
4491 2023-05-08 Andrew Pinski <apinski@marvell.com>
4492
4493 PR tree-optimization/109691
4494 * tree-ssa-dce.cc (simple_dce_from_worklist): Add need_eh_cleanup
4495 argument.
4496 If the removed statement can throw, have need_eh_cleanup
4497 include the bb of that statement.
4498 * tree-ssa-dce.h (simple_dce_from_worklist): Update declaration.
4499 * tree-ssa-propagate.cc (struct prop_stats_d): Remove
4500 num_dce.
4501 (substitute_and_fold_dom_walker::substitute_and_fold_dom_walker):
4502 Initialize dceworklist instead of stmts_to_remove.
4503 (substitute_and_fold_dom_walker::~substitute_and_fold_dom_walker):
4504 Destore dceworklist instead of stmts_to_remove.
4505 (substitute_and_fold_dom_walker::before_dom_children):
4506 Set dceworklist instead of adding to stmts_to_remove.
4507 (substitute_and_fold_engine::substitute_and_fold):
4508 Call simple_dce_from_worklist instead of poping
4509 from the list.
4510 Don't update the stat on removal statements.
4511
4512 2023-05-07 Andrew Pinski <apinski@marvell.com>
4513
4514 PR target/109762
4515 * config/aarch64/aarch64-builtins.cc (aarch64_simd_switcher::aarch64_simd_switcher):
4516 Change argument type to aarch64_feature_flags.
4517 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Change
4518 constructor argument type to aarch64_feature_flags.
4519 Change m_old_asm_isa_flags to be aarch64_feature_flags.
4520
4521 2023-05-07 Jiufu Guo <guojiufu@linux.ibm.com>
4522
4523 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Generate
4524 more parallel code if can_create_pseudo_p.
4525
4526 2023-05-07 Roger Sayle <roger@nextmovesoftware.com>
4527
4528 PR target/43644
4529 * lower-subreg.cc (resolve_simple_move): Don't emit a clobber
4530 immediately before moving a multi-word register by parts.
4531
4532 2023-05-06 Jeff Law <jlaw@ventanamicro>
4533
4534 * config/riscv/riscv-v.cc (riscv_vector_preferred_simd_mode): Delete.
4535
4536 2023-05-06 Michael Collison <collison@rivosinc.com>
4537
4538 * tree-vect-slp.cc (can_duplicate_and_interleave_p):
4539 Check that GET_MODE_NUNITS is a multiple of 2.
4540
4541 2023-05-06 Michael Collison <collison@rivosinc.com>
4542
4543 * config/riscv/riscv.cc
4544 (riscv_estimated_poly_value): Implement
4545 TARGET_ESTIMATED_POLY_VALUE.
4546 (riscv_preferred_simd_mode): Implement
4547 TARGET_VECTORIZE_PREFERRED_SIMD_MODE.
4548 (riscv_get_mask_mode): Implement TARGET_VECTORIZE_GET_MASK_MODE.
4549 (riscv_empty_mask_is_expensive): Implement
4550 TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE.
4551 (riscv_vectorize_create_costs): Implement
4552 TARGET_VECTORIZE_CREATE_COSTS.
4553 (riscv_support_vector_misalignment): Implement
4554 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT.
4555 (TARGET_ESTIMATED_POLY_VALUE): Register target macro.
4556 (TARGET_VECTORIZE_GET_MASK_MODE): Ditto.
4557 (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Ditto.
4558 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Ditto.
4559
4560 2023-05-06 Jeff Law <jlaw@ventanamicro>
4561
4562 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Remove
4563 duplicate definition.
4564
4565 2023-05-06 Michael Collison <collison@rivosinc.com>
4566
4567 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): New function.
4568 (riscv_vector_preferred_simd_mode): Ditto.
4569 (get_mask_policy_no_pred): Ditto.
4570 (get_tail_policy_no_pred): Ditto.
4571 (riscv_vector_mask_mode_p): Ditto.
4572 (riscv_vector_get_mask_mode): Ditto.
4573
4574 2023-05-06 Michael Collison <collison@rivosinc.com>
4575
4576 * config/riscv/riscv-vector-builtins.cc (get_tail_policy_for_pred):
4577 Remove static declaration to to make externally visible.
4578 (get_mask_policy_for_pred): Ditto.
4579 * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred):
4580 New external declaration.
4581 (get_mask_policy_for_pred): Ditto.
4582
4583 2023-05-06 Michael Collison <collison@rivosinc.com>
4584
4585 * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): New.
4586 (riscv_vector_get_mask_mode): Ditto.
4587 (get_mask_policy_no_pred): Ditto.
4588 (get_tail_policy_no_pred): Ditto.
4589
4590 2023-05-06 Xi Ruoyao <xry111@xry111.site>
4591
4592 * config/loongarch/loongarch.h (struct machine_function): Add
4593 reg_is_wrapped_separately array for register wrapping
4594 information.
4595 * config/loongarch/loongarch.cc
4596 (loongarch_get_separate_components): New function.
4597 (loongarch_components_for_bb): Likewise.
4598 (loongarch_disqualify_components): Likewise.
4599 (loongarch_process_components): Likewise.
4600 (loongarch_emit_prologue_components): Likewise.
4601 (loongarch_emit_epilogue_components): Likewise.
4602 (loongarch_set_handled_components): Likewise.
4603 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
4604 (TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
4605 (TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
4606 (TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
4607 (TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
4608 (TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
4609 (loongarch_for_each_saved_reg): Skip registers that are wrapped
4610 separately.
4611
4612 2023-05-06 Xi Ruoyao <xry111@xry111.site>
4613
4614 PR other/109522
4615 * Makefile.in (s-macro_list): Pass -nostdinc to
4616 $(GCC_FOR_TARGET).
4617
4618 2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4619
4620 * config/riscv/riscv-protos.h (preferred_simd_mode): New function.
4621 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Ditto.
4622 (preferred_simd_mode): Ditto.
4623 * config/riscv/riscv.cc (riscv_get_arg_info): Handle RVV type in function arg.
4624 (riscv_convert_vector_bits): Adjust for RVV auto-vectorization.
4625 (riscv_preferred_simd_mode): New function.
4626 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): New target hook support.
4627 * config/riscv/vector.md: Add autovec.md.
4628 * config/riscv/autovec.md: New file.
4629
4630 2023-05-06 Jakub Jelinek <jakub@redhat.com>
4631
4632 * real.h (dconst_pi): Define.
4633 (dconst_e_ptr): Formatting fix.
4634 (dconst_pi_ptr): Declare.
4635 * real.cc (dconst_pi_ptr): New function.
4636 * gimple-range-op.cc (cfn_sincos::fold_range): Intersect the generic
4637 boundaries range with range computed from sin/cos of the particular
4638 bounds if the argument range is shorter than 2*pi.
4639 (cfn_sincos::op1_range): Take bulps into account when determining
4640 which result ranges are always invalid or behave like known NAN.
4641
4642 2023-05-06 Aldy Hernandez <aldyh@redhat.com>
4643
4644 * gimple-range-cache.cc (sbr_sparse_bitmap::set_bb_range): Do not
4645 pass type to vrange_storage::equal_p.
4646 * value-range-storage.cc (vrange_storage::equal_p): Remove type.
4647 (irange_storage::equal_p): Same.
4648 (frange_storage::equal_p): Same.
4649 * value-range-storage.h (class frange_storage): Same.
4650
4651 2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4652
4653 PR target/109748
4654 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): Remove it.
4655 (pass_vsetvl::local_eliminate_vsetvl_insn): New function.
4656
4657 2023-05-06 liuhongt <hongtao.liu@intel.com>
4658
4659 * combine.cc (maybe_swap_commutative_operands): Canonicalize
4660 vec_merge when mask is constant.
4661 * doc/md.texi: Document vec_merge canonicalization.
4662
4663 2023-05-06 Jakub Jelinek <jakub@redhat.com>
4664
4665 * value-range.h (frange_arithmetic): Declare.
4666 * range-op-float.cc (frange_arithmetic): No longer static.
4667 * gimple-range-op.cc (frange_mpfr_arg1): New function.
4668 (cfn_sqrt::fold_range): Intersect the generic boundaries range
4669 with range computed from sqrt of the particular bounds.
4670 (cfn_sqrt::op1_range): Intersect the generic boundaries range
4671 with range computed from squared particular bounds.
4672
4673 2023-05-06 Jakub Jelinek <jakub@redhat.com>
4674
4675 * Makefile.in (check_p_numbers): Rename to one_to_9999, move
4676 earlier with helper variables also renamed.
4677 (MATCH_SPLUT_SEQ): Use $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999))
4678 instead of $(shell seq 1 $(NUM_MATCH_SPLITS)).
4679 (check_p_subdirs): Use $(one_to_9999) instead of $(check_p_numbers).
4680
4681 2023-05-06 Hans-Peter Nilsson <hp@axis.com>
4682
4683 * config/cris/cris.md (splitop): Add PLUS.
4684 * config/cris/cris.cc (cris_split_constant): Also handle
4685 PLUS when a split into two insns may be useful.
4686
4687 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
4688
4689 * config/cris/cris.md (movandsplit1): New define_peephole2.
4690
4691 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
4692
4693 * config/cris/cris.md (lsrandsplit1): New define_peephole2.
4694
4695 2023-05-05 Hans-Peter Nilsson <hp@axis.com>
4696
4697 * doc/md.texi (define_peephole2): Document order of scanning.
4698
4699 2023-05-05 Pan Li <pan2.li@intel.com>
4700 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4701
4702 * config/riscv/vector.md: Allow const as the operand of RVV
4703 indexed load/store.
4704
4705 2023-05-05 Pan Li <pan2.li@intel.com>
4706
4707 * config/riscv/riscv.h (VECTOR_STORE_FLAG_VALUE): Add new macro
4708 consumed by simplify_rtx.
4709
4710 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
4711
4712 * config/arm/arm-mve-builtins-base.cc (vrshrq, vshrq): New.
4713 * config/arm/arm-mve-builtins-base.def (vrshrq, vshrq): New.
4714 * config/arm/arm-mve-builtins-base.h (vrshrq, vshrq): New.
4715 * config/arm/arm_mve.h (vshrq): Remove.
4716 (vrshrq): Remove.
4717 (vrshrq_m): Remove.
4718 (vshrq_m): Remove.
4719 (vrshrq_x): Remove.
4720 (vshrq_x): Remove.
4721 (vshrq_n_s8): Remove.
4722 (vshrq_n_s16): Remove.
4723 (vshrq_n_s32): Remove.
4724 (vshrq_n_u8): Remove.
4725 (vshrq_n_u16): Remove.
4726 (vshrq_n_u32): Remove.
4727 (vrshrq_n_u8): Remove.
4728 (vrshrq_n_s8): Remove.
4729 (vrshrq_n_u16): Remove.
4730 (vrshrq_n_s16): Remove.
4731 (vrshrq_n_u32): Remove.
4732 (vrshrq_n_s32): Remove.
4733 (vrshrq_m_n_s8): Remove.
4734 (vrshrq_m_n_s32): Remove.
4735 (vrshrq_m_n_s16): Remove.
4736 (vrshrq_m_n_u8): Remove.
4737 (vrshrq_m_n_u32): Remove.
4738 (vrshrq_m_n_u16): Remove.
4739 (vshrq_m_n_s8): Remove.
4740 (vshrq_m_n_s32): Remove.
4741 (vshrq_m_n_s16): Remove.
4742 (vshrq_m_n_u8): Remove.
4743 (vshrq_m_n_u32): Remove.
4744 (vshrq_m_n_u16): Remove.
4745 (vrshrq_x_n_s8): Remove.
4746 (vrshrq_x_n_s16): Remove.
4747 (vrshrq_x_n_s32): Remove.
4748 (vrshrq_x_n_u8): Remove.
4749 (vrshrq_x_n_u16): Remove.
4750 (vrshrq_x_n_u32): Remove.
4751 (vshrq_x_n_s8): Remove.
4752 (vshrq_x_n_s16): Remove.
4753 (vshrq_x_n_s32): Remove.
4754 (vshrq_x_n_u8): Remove.
4755 (vshrq_x_n_u16): Remove.
4756 (vshrq_x_n_u32): Remove.
4757 (__arm_vshrq_n_s8): Remove.
4758 (__arm_vshrq_n_s16): Remove.
4759 (__arm_vshrq_n_s32): Remove.
4760 (__arm_vshrq_n_u8): Remove.
4761 (__arm_vshrq_n_u16): Remove.
4762 (__arm_vshrq_n_u32): Remove.
4763 (__arm_vrshrq_n_u8): Remove.
4764 (__arm_vrshrq_n_s8): Remove.
4765 (__arm_vrshrq_n_u16): Remove.
4766 (__arm_vrshrq_n_s16): Remove.
4767 (__arm_vrshrq_n_u32): Remove.
4768 (__arm_vrshrq_n_s32): Remove.
4769 (__arm_vrshrq_m_n_s8): Remove.
4770 (__arm_vrshrq_m_n_s32): Remove.
4771 (__arm_vrshrq_m_n_s16): Remove.
4772 (__arm_vrshrq_m_n_u8): Remove.
4773 (__arm_vrshrq_m_n_u32): Remove.
4774 (__arm_vrshrq_m_n_u16): Remove.
4775 (__arm_vshrq_m_n_s8): Remove.
4776 (__arm_vshrq_m_n_s32): Remove.
4777 (__arm_vshrq_m_n_s16): Remove.
4778 (__arm_vshrq_m_n_u8): Remove.
4779 (__arm_vshrq_m_n_u32): Remove.
4780 (__arm_vshrq_m_n_u16): Remove.
4781 (__arm_vrshrq_x_n_s8): Remove.
4782 (__arm_vrshrq_x_n_s16): Remove.
4783 (__arm_vrshrq_x_n_s32): Remove.
4784 (__arm_vrshrq_x_n_u8): Remove.
4785 (__arm_vrshrq_x_n_u16): Remove.
4786 (__arm_vrshrq_x_n_u32): Remove.
4787 (__arm_vshrq_x_n_s8): Remove.
4788 (__arm_vshrq_x_n_s16): Remove.
4789 (__arm_vshrq_x_n_s32): Remove.
4790 (__arm_vshrq_x_n_u8): Remove.
4791 (__arm_vshrq_x_n_u16): Remove.
4792 (__arm_vshrq_x_n_u32): Remove.
4793 (__arm_vshrq): Remove.
4794 (__arm_vrshrq): Remove.
4795 (__arm_vrshrq_m): Remove.
4796 (__arm_vshrq_m): Remove.
4797 (__arm_vrshrq_x): Remove.
4798 (__arm_vshrq_x): Remove.
4799
4800 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
4801
4802 * config/arm/iterators.md (MVE_VSHRQ_M_N, MVE_VSHRQ_N): New.
4803 (mve_insn): Add vrshr, vshr.
4804 * config/arm/mve.md (mve_vshrq_n_<supf><mode>)
4805 (mve_vrshrq_n_<supf><mode>): Merge into ...
4806 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
4807 (mve_vrshrq_m_n_<supf><mode>, mve_vshrq_m_n_<supf><mode>): Merge
4808 into ...
4809 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
4810
4811 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
4812
4813 * config/arm/arm-mve-builtins-shapes.cc (binary_rshift): New.
4814 * config/arm/arm-mve-builtins-shapes.h (binary_rshift): New.
4815
4816 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
4817
4818 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_U_F): New.
4819 (vqshrunbq, vqshruntq, vqrshrunbq, vqrshruntq): New.
4820 * config/arm/arm-mve-builtins-base.def (vqshrunbq, vqshruntq)
4821 (vqrshrunbq, vqrshruntq): New.
4822 * config/arm/arm-mve-builtins-base.h (vqshrunbq, vqshruntq)
4823 (vqrshrunbq, vqrshruntq): New.
4824 * config/arm/arm-mve-builtins.cc
4825 (function_instance::has_inactive_argument): Handle vqshrunbq,
4826 vqshruntq, vqrshrunbq, vqrshruntq.
4827 * config/arm/arm_mve.h (vqrshrunbq): Remove.
4828 (vqrshruntq): Remove.
4829 (vqrshrunbq_m): Remove.
4830 (vqrshruntq_m): Remove.
4831 (vqrshrunbq_n_s16): Remove.
4832 (vqrshrunbq_n_s32): Remove.
4833 (vqrshruntq_n_s16): Remove.
4834 (vqrshruntq_n_s32): Remove.
4835 (vqrshrunbq_m_n_s32): Remove.
4836 (vqrshrunbq_m_n_s16): Remove.
4837 (vqrshruntq_m_n_s32): Remove.
4838 (vqrshruntq_m_n_s16): Remove.
4839 (__arm_vqrshrunbq_n_s16): Remove.
4840 (__arm_vqrshrunbq_n_s32): Remove.
4841 (__arm_vqrshruntq_n_s16): Remove.
4842 (__arm_vqrshruntq_n_s32): Remove.
4843 (__arm_vqrshrunbq_m_n_s32): Remove.
4844 (__arm_vqrshrunbq_m_n_s16): Remove.
4845 (__arm_vqrshruntq_m_n_s32): Remove.
4846 (__arm_vqrshruntq_m_n_s16): Remove.
4847 (__arm_vqrshrunbq): Remove.
4848 (__arm_vqrshruntq): Remove.
4849 (__arm_vqrshrunbq_m): Remove.
4850 (__arm_vqrshruntq_m): Remove.
4851 (vqshrunbq): Remove.
4852 (vqshruntq): Remove.
4853 (vqshrunbq_m): Remove.
4854 (vqshruntq_m): Remove.
4855 (vqshrunbq_n_s16): Remove.
4856 (vqshruntq_n_s16): Remove.
4857 (vqshrunbq_n_s32): Remove.
4858 (vqshruntq_n_s32): Remove.
4859 (vqshrunbq_m_n_s32): Remove.
4860 (vqshrunbq_m_n_s16): Remove.
4861 (vqshruntq_m_n_s32): Remove.
4862 (vqshruntq_m_n_s16): Remove.
4863 (__arm_vqshrunbq_n_s16): Remove.
4864 (__arm_vqshruntq_n_s16): Remove.
4865 (__arm_vqshrunbq_n_s32): Remove.
4866 (__arm_vqshruntq_n_s32): Remove.
4867 (__arm_vqshrunbq_m_n_s32): Remove.
4868 (__arm_vqshrunbq_m_n_s16): Remove.
4869 (__arm_vqshruntq_m_n_s32): Remove.
4870 (__arm_vqshruntq_m_n_s16): Remove.
4871 (__arm_vqshrunbq): Remove.
4872 (__arm_vqshruntq): Remove.
4873 (__arm_vqshrunbq_m): Remove.
4874 (__arm_vqshruntq_m): Remove.
4875
4876 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
4877
4878 * config/arm/iterators.md (MVE_SHRN_N): Add VQRSHRUNBQ,
4879 VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
4880 (MVE_SHRN_M_N): Likewise.
4881 (mve_insn): Add vqrshrunb, vqrshrunt, vqshrunb, vqshrunt.
4882 (isu): Add VQRSHRUNBQ, VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
4883 (supf): Likewise.
4884 * config/arm/mve.md (mve_vqrshrunbq_n_s<mode>): Remove.
4885 (mve_vqrshruntq_n_s<mode>): Remove.
4886 (mve_vqshrunbq_n_s<mode>): Remove.
4887 (mve_vqshruntq_n_s<mode>): Remove.
4888 (mve_vqrshrunbq_m_n_s<mode>): Remove.
4889 (mve_vqrshruntq_m_n_s<mode>): Remove.
4890 (mve_vqshrunbq_m_n_s<mode>): Remove.
4891 (mve_vqshruntq_m_n_s<mode>): Remove.
4892
4893 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
4894
4895 * config/arm/arm-mve-builtins-shapes.cc
4896 (binary_rshift_narrow_unsigned): New.
4897 * config/arm/arm-mve-builtins-shapes.h
4898 (binary_rshift_narrow_unsigned): New.
4899
4900 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
4901
4902 * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_F): New.
4903 (vshrnbq, vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq)
4904 (vqrshrnbq, vqrshrntq): New.
4905 * config/arm/arm-mve-builtins-base.def (vshrnbq, vshrntq)
4906 (vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq):
4907 New.
4908 * config/arm/arm-mve-builtins-base.h (vshrnbq, vshrntq, vrshrnbq)
4909 (vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq): New.
4910 * config/arm/arm-mve-builtins.cc
4911 (function_instance::has_inactive_argument): Handle vshrnbq,
4912 vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq,
4913 vqrshrntq.
4914 * config/arm/arm_mve.h (vshrnbq): Remove.
4915 (vshrntq): Remove.
4916 (vshrnbq_m): Remove.
4917 (vshrntq_m): Remove.
4918 (vshrnbq_n_s16): Remove.
4919 (vshrntq_n_s16): Remove.
4920 (vshrnbq_n_u16): Remove.
4921 (vshrntq_n_u16): Remove.
4922 (vshrnbq_n_s32): Remove.
4923 (vshrntq_n_s32): Remove.
4924 (vshrnbq_n_u32): Remove.
4925 (vshrntq_n_u32): Remove.
4926 (vshrnbq_m_n_s32): Remove.
4927 (vshrnbq_m_n_s16): Remove.
4928 (vshrnbq_m_n_u32): Remove.
4929 (vshrnbq_m_n_u16): Remove.
4930 (vshrntq_m_n_s32): Remove.
4931 (vshrntq_m_n_s16): Remove.
4932 (vshrntq_m_n_u32): Remove.
4933 (vshrntq_m_n_u16): Remove.
4934 (__arm_vshrnbq_n_s16): Remove.
4935 (__arm_vshrntq_n_s16): Remove.
4936 (__arm_vshrnbq_n_u16): Remove.
4937 (__arm_vshrntq_n_u16): Remove.
4938 (__arm_vshrnbq_n_s32): Remove.
4939 (__arm_vshrntq_n_s32): Remove.
4940 (__arm_vshrnbq_n_u32): Remove.
4941 (__arm_vshrntq_n_u32): Remove.
4942 (__arm_vshrnbq_m_n_s32): Remove.
4943 (__arm_vshrnbq_m_n_s16): Remove.
4944 (__arm_vshrnbq_m_n_u32): Remove.
4945 (__arm_vshrnbq_m_n_u16): Remove.
4946 (__arm_vshrntq_m_n_s32): Remove.
4947 (__arm_vshrntq_m_n_s16): Remove.
4948 (__arm_vshrntq_m_n_u32): Remove.
4949 (__arm_vshrntq_m_n_u16): Remove.
4950 (__arm_vshrnbq): Remove.
4951 (__arm_vshrntq): Remove.
4952 (__arm_vshrnbq_m): Remove.
4953 (__arm_vshrntq_m): Remove.
4954 (vrshrnbq): Remove.
4955 (vrshrntq): Remove.
4956 (vrshrnbq_m): Remove.
4957 (vrshrntq_m): Remove.
4958 (vrshrnbq_n_s16): Remove.
4959 (vrshrntq_n_s16): Remove.
4960 (vrshrnbq_n_u16): Remove.
4961 (vrshrntq_n_u16): Remove.
4962 (vrshrnbq_n_s32): Remove.
4963 (vrshrntq_n_s32): Remove.
4964 (vrshrnbq_n_u32): Remove.
4965 (vrshrntq_n_u32): Remove.
4966 (vrshrnbq_m_n_s32): Remove.
4967 (vrshrnbq_m_n_s16): Remove.
4968 (vrshrnbq_m_n_u32): Remove.
4969 (vrshrnbq_m_n_u16): Remove.
4970 (vrshrntq_m_n_s32): Remove.
4971 (vrshrntq_m_n_s16): Remove.
4972 (vrshrntq_m_n_u32): Remove.
4973 (vrshrntq_m_n_u16): Remove.
4974 (__arm_vrshrnbq_n_s16): Remove.
4975 (__arm_vrshrntq_n_s16): Remove.
4976 (__arm_vrshrnbq_n_u16): Remove.
4977 (__arm_vrshrntq_n_u16): Remove.
4978 (__arm_vrshrnbq_n_s32): Remove.
4979 (__arm_vrshrntq_n_s32): Remove.
4980 (__arm_vrshrnbq_n_u32): Remove.
4981 (__arm_vrshrntq_n_u32): Remove.
4982 (__arm_vrshrnbq_m_n_s32): Remove.
4983 (__arm_vrshrnbq_m_n_s16): Remove.
4984 (__arm_vrshrnbq_m_n_u32): Remove.
4985 (__arm_vrshrnbq_m_n_u16): Remove.
4986 (__arm_vrshrntq_m_n_s32): Remove.
4987 (__arm_vrshrntq_m_n_s16): Remove.
4988 (__arm_vrshrntq_m_n_u32): Remove.
4989 (__arm_vrshrntq_m_n_u16): Remove.
4990 (__arm_vrshrnbq): Remove.
4991 (__arm_vrshrntq): Remove.
4992 (__arm_vrshrnbq_m): Remove.
4993 (__arm_vrshrntq_m): Remove.
4994 (vqshrnbq): Remove.
4995 (vqshrntq): Remove.
4996 (vqshrnbq_m): Remove.
4997 (vqshrntq_m): Remove.
4998 (vqshrnbq_n_s16): Remove.
4999 (vqshrntq_n_s16): Remove.
5000 (vqshrnbq_n_u16): Remove.
5001 (vqshrntq_n_u16): Remove.
5002 (vqshrnbq_n_s32): Remove.
5003 (vqshrntq_n_s32): Remove.
5004 (vqshrnbq_n_u32): Remove.
5005 (vqshrntq_n_u32): Remove.
5006 (vqshrnbq_m_n_s32): Remove.
5007 (vqshrnbq_m_n_s16): Remove.
5008 (vqshrnbq_m_n_u32): Remove.
5009 (vqshrnbq_m_n_u16): Remove.
5010 (vqshrntq_m_n_s32): Remove.
5011 (vqshrntq_m_n_s16): Remove.
5012 (vqshrntq_m_n_u32): Remove.
5013 (vqshrntq_m_n_u16): Remove.
5014 (__arm_vqshrnbq_n_s16): Remove.
5015 (__arm_vqshrntq_n_s16): Remove.
5016 (__arm_vqshrnbq_n_u16): Remove.
5017 (__arm_vqshrntq_n_u16): Remove.
5018 (__arm_vqshrnbq_n_s32): Remove.
5019 (__arm_vqshrntq_n_s32): Remove.
5020 (__arm_vqshrnbq_n_u32): Remove.
5021 (__arm_vqshrntq_n_u32): Remove.
5022 (__arm_vqshrnbq_m_n_s32): Remove.
5023 (__arm_vqshrnbq_m_n_s16): Remove.
5024 (__arm_vqshrnbq_m_n_u32): Remove.
5025 (__arm_vqshrnbq_m_n_u16): Remove.
5026 (__arm_vqshrntq_m_n_s32): Remove.
5027 (__arm_vqshrntq_m_n_s16): Remove.
5028 (__arm_vqshrntq_m_n_u32): Remove.
5029 (__arm_vqshrntq_m_n_u16): Remove.
5030 (__arm_vqshrnbq): Remove.
5031 (__arm_vqshrntq): Remove.
5032 (__arm_vqshrnbq_m): Remove.
5033 (__arm_vqshrntq_m): Remove.
5034 (vqrshrnbq): Remove.
5035 (vqrshrntq): Remove.
5036 (vqrshrnbq_m): Remove.
5037 (vqrshrntq_m): Remove.
5038 (vqrshrnbq_n_s16): Remove.
5039 (vqrshrnbq_n_u16): Remove.
5040 (vqrshrnbq_n_s32): Remove.
5041 (vqrshrnbq_n_u32): Remove.
5042 (vqrshrntq_n_s16): Remove.
5043 (vqrshrntq_n_u16): Remove.
5044 (vqrshrntq_n_s32): Remove.
5045 (vqrshrntq_n_u32): Remove.
5046 (vqrshrnbq_m_n_s32): Remove.
5047 (vqrshrnbq_m_n_s16): Remove.
5048 (vqrshrnbq_m_n_u32): Remove.
5049 (vqrshrnbq_m_n_u16): Remove.
5050 (vqrshrntq_m_n_s32): Remove.
5051 (vqrshrntq_m_n_s16): Remove.
5052 (vqrshrntq_m_n_u32): Remove.
5053 (vqrshrntq_m_n_u16): Remove.
5054 (__arm_vqrshrnbq_n_s16): Remove.
5055 (__arm_vqrshrnbq_n_u16): Remove.
5056 (__arm_vqrshrnbq_n_s32): Remove.
5057 (__arm_vqrshrnbq_n_u32): Remove.
5058 (__arm_vqrshrntq_n_s16): Remove.
5059 (__arm_vqrshrntq_n_u16): Remove.
5060 (__arm_vqrshrntq_n_s32): Remove.
5061 (__arm_vqrshrntq_n_u32): Remove.
5062 (__arm_vqrshrnbq_m_n_s32): Remove.
5063 (__arm_vqrshrnbq_m_n_s16): Remove.
5064 (__arm_vqrshrnbq_m_n_u32): Remove.
5065 (__arm_vqrshrnbq_m_n_u16): Remove.
5066 (__arm_vqrshrntq_m_n_s32): Remove.
5067 (__arm_vqrshrntq_m_n_s16): Remove.
5068 (__arm_vqrshrntq_m_n_u32): Remove.
5069 (__arm_vqrshrntq_m_n_u16): Remove.
5070 (__arm_vqrshrnbq): Remove.
5071 (__arm_vqrshrntq): Remove.
5072 (__arm_vqrshrnbq_m): Remove.
5073 (__arm_vqrshrntq_m): Remove.
5074
5075 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5076
5077 * config/arm/iterators.md (MVE_SHRN_N, MVE_SHRN_M_N): New.
5078 (mve_insn): Add vqrshrnb, vqrshrnt, vqshrnb, vqshrnt, vrshrnb,
5079 vrshrnt, vshrnb, vshrnt.
5080 (isu): New.
5081 * config/arm/mve.md (mve_vqrshrnbq_n_<supf><mode>)
5082 (mve_vqrshrntq_n_<supf><mode>, mve_vqshrnbq_n_<supf><mode>)
5083 (mve_vqshrntq_n_<supf><mode>, mve_vrshrnbq_n_<supf><mode>)
5084 (mve_vrshrntq_n_<supf><mode>, mve_vshrnbq_n_<supf><mode>)
5085 (mve_vshrntq_n_<supf><mode>): Merge into ...
5086 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
5087 (mve_vqrshrnbq_m_n_<supf><mode>, mve_vqrshrntq_m_n_<supf><mode>)
5088 (mve_vqshrnbq_m_n_<supf><mode>, mve_vqshrntq_m_n_<supf><mode>)
5089 (mve_vrshrnbq_m_n_<supf><mode>, mve_vrshrntq_m_n_<supf><mode>)
5090 (mve_vshrnbq_m_n_<supf><mode>, mve_vshrntq_m_n_<supf><mode>):
5091 Merge into ...
5092 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
5093
5094 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5095
5096 * config/arm/arm-mve-builtins-shapes.cc (binary_rshift_narrow):
5097 New.
5098 * config/arm/arm-mve-builtins-shapes.h (binary_rshift_narrow): New.
5099
5100 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5101
5102 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_NO_F): New.
5103 (vmaxq, vminq): New.
5104 * config/arm/arm-mve-builtins-base.def (vmaxq, vminq): New.
5105 * config/arm/arm-mve-builtins-base.h (vmaxq, vminq): New.
5106 * config/arm/arm_mve.h (vminq): Remove.
5107 (vmaxq): Remove.
5108 (vmaxq_m): Remove.
5109 (vminq_m): Remove.
5110 (vminq_x): Remove.
5111 (vmaxq_x): Remove.
5112 (vminq_u8): Remove.
5113 (vmaxq_u8): Remove.
5114 (vminq_s8): Remove.
5115 (vmaxq_s8): Remove.
5116 (vminq_u16): Remove.
5117 (vmaxq_u16): Remove.
5118 (vminq_s16): Remove.
5119 (vmaxq_s16): Remove.
5120 (vminq_u32): Remove.
5121 (vmaxq_u32): Remove.
5122 (vminq_s32): Remove.
5123 (vmaxq_s32): Remove.
5124 (vmaxq_m_s8): Remove.
5125 (vmaxq_m_s32): Remove.
5126 (vmaxq_m_s16): Remove.
5127 (vmaxq_m_u8): Remove.
5128 (vmaxq_m_u32): Remove.
5129 (vmaxq_m_u16): Remove.
5130 (vminq_m_s8): Remove.
5131 (vminq_m_s32): Remove.
5132 (vminq_m_s16): Remove.
5133 (vminq_m_u8): Remove.
5134 (vminq_m_u32): Remove.
5135 (vminq_m_u16): Remove.
5136 (vminq_x_s8): Remove.
5137 (vminq_x_s16): Remove.
5138 (vminq_x_s32): Remove.
5139 (vminq_x_u8): Remove.
5140 (vminq_x_u16): Remove.
5141 (vminq_x_u32): Remove.
5142 (vmaxq_x_s8): Remove.
5143 (vmaxq_x_s16): Remove.
5144 (vmaxq_x_s32): Remove.
5145 (vmaxq_x_u8): Remove.
5146 (vmaxq_x_u16): Remove.
5147 (vmaxq_x_u32): Remove.
5148 (__arm_vminq_u8): Remove.
5149 (__arm_vmaxq_u8): Remove.
5150 (__arm_vminq_s8): Remove.
5151 (__arm_vmaxq_s8): Remove.
5152 (__arm_vminq_u16): Remove.
5153 (__arm_vmaxq_u16): Remove.
5154 (__arm_vminq_s16): Remove.
5155 (__arm_vmaxq_s16): Remove.
5156 (__arm_vminq_u32): Remove.
5157 (__arm_vmaxq_u32): Remove.
5158 (__arm_vminq_s32): Remove.
5159 (__arm_vmaxq_s32): Remove.
5160 (__arm_vmaxq_m_s8): Remove.
5161 (__arm_vmaxq_m_s32): Remove.
5162 (__arm_vmaxq_m_s16): Remove.
5163 (__arm_vmaxq_m_u8): Remove.
5164 (__arm_vmaxq_m_u32): Remove.
5165 (__arm_vmaxq_m_u16): Remove.
5166 (__arm_vminq_m_s8): Remove.
5167 (__arm_vminq_m_s32): Remove.
5168 (__arm_vminq_m_s16): Remove.
5169 (__arm_vminq_m_u8): Remove.
5170 (__arm_vminq_m_u32): Remove.
5171 (__arm_vminq_m_u16): Remove.
5172 (__arm_vminq_x_s8): Remove.
5173 (__arm_vminq_x_s16): Remove.
5174 (__arm_vminq_x_s32): Remove.
5175 (__arm_vminq_x_u8): Remove.
5176 (__arm_vminq_x_u16): Remove.
5177 (__arm_vminq_x_u32): Remove.
5178 (__arm_vmaxq_x_s8): Remove.
5179 (__arm_vmaxq_x_s16): Remove.
5180 (__arm_vmaxq_x_s32): Remove.
5181 (__arm_vmaxq_x_u8): Remove.
5182 (__arm_vmaxq_x_u16): Remove.
5183 (__arm_vmaxq_x_u32): Remove.
5184 (__arm_vminq): Remove.
5185 (__arm_vmaxq): Remove.
5186 (__arm_vmaxq_m): Remove.
5187 (__arm_vminq_m): Remove.
5188 (__arm_vminq_x): Remove.
5189 (__arm_vmaxq_x): Remove.
5190
5191 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5192
5193 * config/arm/iterators.md (MAX_MIN_SU): New.
5194 (max_min_su_str): New.
5195 (max_min_supf): New.
5196 * config/arm/mve.md (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>)
5197 (mve_vminq_s<mode>, mve_vminq_u<mode>): Merge into ...
5198 (mve_<max_min_su_str>q_<max_min_supf><mode>): ... this.
5199
5200 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5201
5202 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_R): New.
5203 (vqshlq, vshlq): New.
5204 * config/arm/arm-mve-builtins-base.def (vqshlq, vshlq): New.
5205 * config/arm/arm-mve-builtins-base.h (vqshlq, vshlq): New.
5206 * config/arm/arm_mve.h (vshlq): Remove.
5207 (vshlq_r): Remove.
5208 (vshlq_n): Remove.
5209 (vshlq_m_r): Remove.
5210 (vshlq_m): Remove.
5211 (vshlq_m_n): Remove.
5212 (vshlq_x): Remove.
5213 (vshlq_x_n): Remove.
5214 (vshlq_s8): Remove.
5215 (vshlq_s16): Remove.
5216 (vshlq_s32): Remove.
5217 (vshlq_u8): Remove.
5218 (vshlq_u16): Remove.
5219 (vshlq_u32): Remove.
5220 (vshlq_r_u8): Remove.
5221 (vshlq_n_u8): Remove.
5222 (vshlq_r_s8): Remove.
5223 (vshlq_n_s8): Remove.
5224 (vshlq_r_u16): Remove.
5225 (vshlq_n_u16): Remove.
5226 (vshlq_r_s16): Remove.
5227 (vshlq_n_s16): Remove.
5228 (vshlq_r_u32): Remove.
5229 (vshlq_n_u32): Remove.
5230 (vshlq_r_s32): Remove.
5231 (vshlq_n_s32): Remove.
5232 (vshlq_m_r_u8): Remove.
5233 (vshlq_m_r_s8): Remove.
5234 (vshlq_m_r_u16): Remove.
5235 (vshlq_m_r_s16): Remove.
5236 (vshlq_m_r_u32): Remove.
5237 (vshlq_m_r_s32): Remove.
5238 (vshlq_m_u8): Remove.
5239 (vshlq_m_s8): Remove.
5240 (vshlq_m_u16): Remove.
5241 (vshlq_m_s16): Remove.
5242 (vshlq_m_u32): Remove.
5243 (vshlq_m_s32): Remove.
5244 (vshlq_m_n_s8): Remove.
5245 (vshlq_m_n_s32): Remove.
5246 (vshlq_m_n_s16): Remove.
5247 (vshlq_m_n_u8): Remove.
5248 (vshlq_m_n_u32): Remove.
5249 (vshlq_m_n_u16): Remove.
5250 (vshlq_x_s8): Remove.
5251 (vshlq_x_s16): Remove.
5252 (vshlq_x_s32): Remove.
5253 (vshlq_x_u8): Remove.
5254 (vshlq_x_u16): Remove.
5255 (vshlq_x_u32): Remove.
5256 (vshlq_x_n_s8): Remove.
5257 (vshlq_x_n_s16): Remove.
5258 (vshlq_x_n_s32): Remove.
5259 (vshlq_x_n_u8): Remove.
5260 (vshlq_x_n_u16): Remove.
5261 (vshlq_x_n_u32): Remove.
5262 (__arm_vshlq_s8): Remove.
5263 (__arm_vshlq_s16): Remove.
5264 (__arm_vshlq_s32): Remove.
5265 (__arm_vshlq_u8): Remove.
5266 (__arm_vshlq_u16): Remove.
5267 (__arm_vshlq_u32): Remove.
5268 (__arm_vshlq_r_u8): Remove.
5269 (__arm_vshlq_n_u8): Remove.
5270 (__arm_vshlq_r_s8): Remove.
5271 (__arm_vshlq_n_s8): Remove.
5272 (__arm_vshlq_r_u16): Remove.
5273 (__arm_vshlq_n_u16): Remove.
5274 (__arm_vshlq_r_s16): Remove.
5275 (__arm_vshlq_n_s16): Remove.
5276 (__arm_vshlq_r_u32): Remove.
5277 (__arm_vshlq_n_u32): Remove.
5278 (__arm_vshlq_r_s32): Remove.
5279 (__arm_vshlq_n_s32): Remove.
5280 (__arm_vshlq_m_r_u8): Remove.
5281 (__arm_vshlq_m_r_s8): Remove.
5282 (__arm_vshlq_m_r_u16): Remove.
5283 (__arm_vshlq_m_r_s16): Remove.
5284 (__arm_vshlq_m_r_u32): Remove.
5285 (__arm_vshlq_m_r_s32): Remove.
5286 (__arm_vshlq_m_u8): Remove.
5287 (__arm_vshlq_m_s8): Remove.
5288 (__arm_vshlq_m_u16): Remove.
5289 (__arm_vshlq_m_s16): Remove.
5290 (__arm_vshlq_m_u32): Remove.
5291 (__arm_vshlq_m_s32): Remove.
5292 (__arm_vshlq_m_n_s8): Remove.
5293 (__arm_vshlq_m_n_s32): Remove.
5294 (__arm_vshlq_m_n_s16): Remove.
5295 (__arm_vshlq_m_n_u8): Remove.
5296 (__arm_vshlq_m_n_u32): Remove.
5297 (__arm_vshlq_m_n_u16): Remove.
5298 (__arm_vshlq_x_s8): Remove.
5299 (__arm_vshlq_x_s16): Remove.
5300 (__arm_vshlq_x_s32): Remove.
5301 (__arm_vshlq_x_u8): Remove.
5302 (__arm_vshlq_x_u16): Remove.
5303 (__arm_vshlq_x_u32): Remove.
5304 (__arm_vshlq_x_n_s8): Remove.
5305 (__arm_vshlq_x_n_s16): Remove.
5306 (__arm_vshlq_x_n_s32): Remove.
5307 (__arm_vshlq_x_n_u8): Remove.
5308 (__arm_vshlq_x_n_u16): Remove.
5309 (__arm_vshlq_x_n_u32): Remove.
5310 (__arm_vshlq): Remove.
5311 (__arm_vshlq_r): Remove.
5312 (__arm_vshlq_n): Remove.
5313 (__arm_vshlq_m_r): Remove.
5314 (__arm_vshlq_m): Remove.
5315 (__arm_vshlq_m_n): Remove.
5316 (__arm_vshlq_x): Remove.
5317 (__arm_vshlq_x_n): Remove.
5318 (vqshlq): Remove.
5319 (vqshlq_r): Remove.
5320 (vqshlq_n): Remove.
5321 (vqshlq_m_r): Remove.
5322 (vqshlq_m_n): Remove.
5323 (vqshlq_m): Remove.
5324 (vqshlq_u8): Remove.
5325 (vqshlq_r_u8): Remove.
5326 (vqshlq_n_u8): Remove.
5327 (vqshlq_s8): Remove.
5328 (vqshlq_r_s8): Remove.
5329 (vqshlq_n_s8): Remove.
5330 (vqshlq_u16): Remove.
5331 (vqshlq_r_u16): Remove.
5332 (vqshlq_n_u16): Remove.
5333 (vqshlq_s16): Remove.
5334 (vqshlq_r_s16): Remove.
5335 (vqshlq_n_s16): Remove.
5336 (vqshlq_u32): Remove.
5337 (vqshlq_r_u32): Remove.
5338 (vqshlq_n_u32): Remove.
5339 (vqshlq_s32): Remove.
5340 (vqshlq_r_s32): Remove.
5341 (vqshlq_n_s32): Remove.
5342 (vqshlq_m_r_u8): Remove.
5343 (vqshlq_m_r_s8): Remove.
5344 (vqshlq_m_r_u16): Remove.
5345 (vqshlq_m_r_s16): Remove.
5346 (vqshlq_m_r_u32): Remove.
5347 (vqshlq_m_r_s32): Remove.
5348 (vqshlq_m_n_s8): Remove.
5349 (vqshlq_m_n_s32): Remove.
5350 (vqshlq_m_n_s16): Remove.
5351 (vqshlq_m_n_u8): Remove.
5352 (vqshlq_m_n_u32): Remove.
5353 (vqshlq_m_n_u16): Remove.
5354 (vqshlq_m_s8): Remove.
5355 (vqshlq_m_s32): Remove.
5356 (vqshlq_m_s16): Remove.
5357 (vqshlq_m_u8): Remove.
5358 (vqshlq_m_u32): Remove.
5359 (vqshlq_m_u16): Remove.
5360 (__arm_vqshlq_u8): Remove.
5361 (__arm_vqshlq_r_u8): Remove.
5362 (__arm_vqshlq_n_u8): Remove.
5363 (__arm_vqshlq_s8): Remove.
5364 (__arm_vqshlq_r_s8): Remove.
5365 (__arm_vqshlq_n_s8): Remove.
5366 (__arm_vqshlq_u16): Remove.
5367 (__arm_vqshlq_r_u16): Remove.
5368 (__arm_vqshlq_n_u16): Remove.
5369 (__arm_vqshlq_s16): Remove.
5370 (__arm_vqshlq_r_s16): Remove.
5371 (__arm_vqshlq_n_s16): Remove.
5372 (__arm_vqshlq_u32): Remove.
5373 (__arm_vqshlq_r_u32): Remove.
5374 (__arm_vqshlq_n_u32): Remove.
5375 (__arm_vqshlq_s32): Remove.
5376 (__arm_vqshlq_r_s32): Remove.
5377 (__arm_vqshlq_n_s32): Remove.
5378 (__arm_vqshlq_m_r_u8): Remove.
5379 (__arm_vqshlq_m_r_s8): Remove.
5380 (__arm_vqshlq_m_r_u16): Remove.
5381 (__arm_vqshlq_m_r_s16): Remove.
5382 (__arm_vqshlq_m_r_u32): Remove.
5383 (__arm_vqshlq_m_r_s32): Remove.
5384 (__arm_vqshlq_m_n_s8): Remove.
5385 (__arm_vqshlq_m_n_s32): Remove.
5386 (__arm_vqshlq_m_n_s16): Remove.
5387 (__arm_vqshlq_m_n_u8): Remove.
5388 (__arm_vqshlq_m_n_u32): Remove.
5389 (__arm_vqshlq_m_n_u16): Remove.
5390 (__arm_vqshlq_m_s8): Remove.
5391 (__arm_vqshlq_m_s32): Remove.
5392 (__arm_vqshlq_m_s16): Remove.
5393 (__arm_vqshlq_m_u8): Remove.
5394 (__arm_vqshlq_m_u32): Remove.
5395 (__arm_vqshlq_m_u16): Remove.
5396 (__arm_vqshlq): Remove.
5397 (__arm_vqshlq_r): Remove.
5398 (__arm_vqshlq_n): Remove.
5399 (__arm_vqshlq_m_r): Remove.
5400 (__arm_vqshlq_m_n): Remove.
5401 (__arm_vqshlq_m): Remove.
5402
5403 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5404
5405 * config/arm/arm-mve-builtins-functions.h (class
5406 unspec_mve_function_exact_insn_vshl): New.
5407
5408 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5409
5410 * config/arm/arm-mve-builtins-shapes.cc (binary_lshift_r): New.
5411 * config/arm/arm-mve-builtins-shapes.h (binary_lshift_r): New.
5412
5413 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5414
5415 * config/arm/arm-mve-builtins.cc (has_inactive_argument)
5416 (finish_opt_n_resolution): Handle MODE_r.
5417 * config/arm/arm-mve-builtins.def (r): New mode.
5418
5419 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5420
5421 * config/arm/arm-mve-builtins-shapes.cc (binary_lshift): New.
5422 * config/arm/arm-mve-builtins-shapes.h (binary_lshift): New.
5423
5424 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5425
5426 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N): New.
5427 (vabdq): New.
5428 * config/arm/arm-mve-builtins-base.def (vabdq): New.
5429 * config/arm/arm-mve-builtins-base.h (vabdq): New.
5430 * config/arm/arm_mve.h (vabdq): Remove.
5431 (vabdq_m): Remove.
5432 (vabdq_x): Remove.
5433 (vabdq_u8): Remove.
5434 (vabdq_s8): Remove.
5435 (vabdq_u16): Remove.
5436 (vabdq_s16): Remove.
5437 (vabdq_u32): Remove.
5438 (vabdq_s32): Remove.
5439 (vabdq_f16): Remove.
5440 (vabdq_f32): Remove.
5441 (vabdq_m_s8): Remove.
5442 (vabdq_m_s32): Remove.
5443 (vabdq_m_s16): Remove.
5444 (vabdq_m_u8): Remove.
5445 (vabdq_m_u32): Remove.
5446 (vabdq_m_u16): Remove.
5447 (vabdq_m_f32): Remove.
5448 (vabdq_m_f16): Remove.
5449 (vabdq_x_s8): Remove.
5450 (vabdq_x_s16): Remove.
5451 (vabdq_x_s32): Remove.
5452 (vabdq_x_u8): Remove.
5453 (vabdq_x_u16): Remove.
5454 (vabdq_x_u32): Remove.
5455 (vabdq_x_f16): Remove.
5456 (vabdq_x_f32): Remove.
5457 (__arm_vabdq_u8): Remove.
5458 (__arm_vabdq_s8): Remove.
5459 (__arm_vabdq_u16): Remove.
5460 (__arm_vabdq_s16): Remove.
5461 (__arm_vabdq_u32): Remove.
5462 (__arm_vabdq_s32): Remove.
5463 (__arm_vabdq_m_s8): Remove.
5464 (__arm_vabdq_m_s32): Remove.
5465 (__arm_vabdq_m_s16): Remove.
5466 (__arm_vabdq_m_u8): Remove.
5467 (__arm_vabdq_m_u32): Remove.
5468 (__arm_vabdq_m_u16): Remove.
5469 (__arm_vabdq_x_s8): Remove.
5470 (__arm_vabdq_x_s16): Remove.
5471 (__arm_vabdq_x_s32): Remove.
5472 (__arm_vabdq_x_u8): Remove.
5473 (__arm_vabdq_x_u16): Remove.
5474 (__arm_vabdq_x_u32): Remove.
5475 (__arm_vabdq_f16): Remove.
5476 (__arm_vabdq_f32): Remove.
5477 (__arm_vabdq_m_f32): Remove.
5478 (__arm_vabdq_m_f16): Remove.
5479 (__arm_vabdq_x_f16): Remove.
5480 (__arm_vabdq_x_f32): Remove.
5481 (__arm_vabdq): Remove.
5482 (__arm_vabdq_m): Remove.
5483 (__arm_vabdq_x): Remove.
5484
5485 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5486
5487 * config/arm/iterators.md (MVE_FP_M_BINARY): Add vabdq.
5488 (MVE_FP_VABDQ_ONLY): New.
5489 (mve_insn): Add vabd.
5490 * config/arm/mve.md (mve_vabdq_f<mode>): Move into ...
5491 (@mve_<mve_insn>q_f<mode>): ... this.
5492 (mve_vabdq_m_f<mode>): Remove.
5493
5494 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5495
5496 * config/arm/arm-mve-builtins-base.cc (vqrdmulhq): New.
5497 * config/arm/arm-mve-builtins-base.def (vqrdmulhq): New.
5498 * config/arm/arm-mve-builtins-base.h (vqrdmulhq): New.
5499 * config/arm/arm_mve.h (vqrdmulhq): Remove.
5500 (vqrdmulhq_m): Remove.
5501 (vqrdmulhq_s8): Remove.
5502 (vqrdmulhq_n_s8): Remove.
5503 (vqrdmulhq_s16): Remove.
5504 (vqrdmulhq_n_s16): Remove.
5505 (vqrdmulhq_s32): Remove.
5506 (vqrdmulhq_n_s32): Remove.
5507 (vqrdmulhq_m_n_s8): Remove.
5508 (vqrdmulhq_m_n_s32): Remove.
5509 (vqrdmulhq_m_n_s16): Remove.
5510 (vqrdmulhq_m_s8): Remove.
5511 (vqrdmulhq_m_s32): Remove.
5512 (vqrdmulhq_m_s16): Remove.
5513 (__arm_vqrdmulhq_s8): Remove.
5514 (__arm_vqrdmulhq_n_s8): Remove.
5515 (__arm_vqrdmulhq_s16): Remove.
5516 (__arm_vqrdmulhq_n_s16): Remove.
5517 (__arm_vqrdmulhq_s32): Remove.
5518 (__arm_vqrdmulhq_n_s32): Remove.
5519 (__arm_vqrdmulhq_m_n_s8): Remove.
5520 (__arm_vqrdmulhq_m_n_s32): Remove.
5521 (__arm_vqrdmulhq_m_n_s16): Remove.
5522 (__arm_vqrdmulhq_m_s8): Remove.
5523 (__arm_vqrdmulhq_m_s32): Remove.
5524 (__arm_vqrdmulhq_m_s16): Remove.
5525 (__arm_vqrdmulhq): Remove.
5526 (__arm_vqrdmulhq_m): Remove.
5527
5528 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5529
5530 * config/arm/iterators.md (MVE_SHIFT_M_R, MVE_SHIFT_M_N)
5531 (MVE_SHIFT_N, MVE_SHIFT_R): New.
5532 (mve_insn): Add vqshl, vshl.
5533 * config/arm/mve.md (mve_vqshlq_n_<supf><mode>)
5534 (mve_vshlq_n_<supf><mode>): Merge into ...
5535 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
5536 (mve_vqshlq_r_<supf><mode>, mve_vshlq_r_<supf><mode>): Merge into
5537 ...
5538 (@mve_<mve_insn>q_r_<supf><mode>): ... this.
5539 (mve_vqshlq_m_r_<supf><mode>, mve_vshlq_m_r_<supf><mode>): Merge
5540 into ...
5541 (@mve_<mve_insn>q_m_r_<supf><mode>): ... this.
5542 (mve_vqshlq_m_n_<supf><mode>, mve_vshlq_m_n_<supf><mode>): Merge
5543 into ...
5544 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
5545 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Transform
5546 into ...
5547 (@mve_<mve_insn>q_<supf><mode>): ... this.
5548
5549 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5550
5551 * config/arm/arm-mve-builtins-base.cc (vqrshlq, vrshlq): New.
5552 * config/arm/arm-mve-builtins-base.def (vqrshlq, vrshlq): New.
5553 * config/arm/arm-mve-builtins-base.h (vqrshlq, vrshlq): New.
5554 * config/arm/arm-mve-builtins.cc (has_inactive_argument): Handle
5555 vqrshlq, vrshlq.
5556 * config/arm/arm_mve.h (vrshlq): Remove.
5557 (vrshlq_m_n): Remove.
5558 (vrshlq_m): Remove.
5559 (vrshlq_x): Remove.
5560 (vrshlq_u8): Remove.
5561 (vrshlq_n_u8): Remove.
5562 (vrshlq_s8): Remove.
5563 (vrshlq_n_s8): Remove.
5564 (vrshlq_u16): Remove.
5565 (vrshlq_n_u16): Remove.
5566 (vrshlq_s16): Remove.
5567 (vrshlq_n_s16): Remove.
5568 (vrshlq_u32): Remove.
5569 (vrshlq_n_u32): Remove.
5570 (vrshlq_s32): Remove.
5571 (vrshlq_n_s32): Remove.
5572 (vrshlq_m_n_u8): Remove.
5573 (vrshlq_m_n_s8): Remove.
5574 (vrshlq_m_n_u16): Remove.
5575 (vrshlq_m_n_s16): Remove.
5576 (vrshlq_m_n_u32): Remove.
5577 (vrshlq_m_n_s32): Remove.
5578 (vrshlq_m_s8): Remove.
5579 (vrshlq_m_s32): Remove.
5580 (vrshlq_m_s16): Remove.
5581 (vrshlq_m_u8): Remove.
5582 (vrshlq_m_u32): Remove.
5583 (vrshlq_m_u16): Remove.
5584 (vrshlq_x_s8): Remove.
5585 (vrshlq_x_s16): Remove.
5586 (vrshlq_x_s32): Remove.
5587 (vrshlq_x_u8): Remove.
5588 (vrshlq_x_u16): Remove.
5589 (vrshlq_x_u32): Remove.
5590 (__arm_vrshlq_u8): Remove.
5591 (__arm_vrshlq_n_u8): Remove.
5592 (__arm_vrshlq_s8): Remove.
5593 (__arm_vrshlq_n_s8): Remove.
5594 (__arm_vrshlq_u16): Remove.
5595 (__arm_vrshlq_n_u16): Remove.
5596 (__arm_vrshlq_s16): Remove.
5597 (__arm_vrshlq_n_s16): Remove.
5598 (__arm_vrshlq_u32): Remove.
5599 (__arm_vrshlq_n_u32): Remove.
5600 (__arm_vrshlq_s32): Remove.
5601 (__arm_vrshlq_n_s32): Remove.
5602 (__arm_vrshlq_m_n_u8): Remove.
5603 (__arm_vrshlq_m_n_s8): Remove.
5604 (__arm_vrshlq_m_n_u16): Remove.
5605 (__arm_vrshlq_m_n_s16): Remove.
5606 (__arm_vrshlq_m_n_u32): Remove.
5607 (__arm_vrshlq_m_n_s32): Remove.
5608 (__arm_vrshlq_m_s8): Remove.
5609 (__arm_vrshlq_m_s32): Remove.
5610 (__arm_vrshlq_m_s16): Remove.
5611 (__arm_vrshlq_m_u8): Remove.
5612 (__arm_vrshlq_m_u32): Remove.
5613 (__arm_vrshlq_m_u16): Remove.
5614 (__arm_vrshlq_x_s8): Remove.
5615 (__arm_vrshlq_x_s16): Remove.
5616 (__arm_vrshlq_x_s32): Remove.
5617 (__arm_vrshlq_x_u8): Remove.
5618 (__arm_vrshlq_x_u16): Remove.
5619 (__arm_vrshlq_x_u32): Remove.
5620 (__arm_vrshlq): Remove.
5621 (__arm_vrshlq_m_n): Remove.
5622 (__arm_vrshlq_m): Remove.
5623 (__arm_vrshlq_x): Remove.
5624 (vqrshlq): Remove.
5625 (vqrshlq_m_n): Remove.
5626 (vqrshlq_m): Remove.
5627 (vqrshlq_u8): Remove.
5628 (vqrshlq_n_u8): Remove.
5629 (vqrshlq_s8): Remove.
5630 (vqrshlq_n_s8): Remove.
5631 (vqrshlq_u16): Remove.
5632 (vqrshlq_n_u16): Remove.
5633 (vqrshlq_s16): Remove.
5634 (vqrshlq_n_s16): Remove.
5635 (vqrshlq_u32): Remove.
5636 (vqrshlq_n_u32): Remove.
5637 (vqrshlq_s32): Remove.
5638 (vqrshlq_n_s32): Remove.
5639 (vqrshlq_m_n_u8): Remove.
5640 (vqrshlq_m_n_s8): Remove.
5641 (vqrshlq_m_n_u16): Remove.
5642 (vqrshlq_m_n_s16): Remove.
5643 (vqrshlq_m_n_u32): Remove.
5644 (vqrshlq_m_n_s32): Remove.
5645 (vqrshlq_m_s8): Remove.
5646 (vqrshlq_m_s32): Remove.
5647 (vqrshlq_m_s16): Remove.
5648 (vqrshlq_m_u8): Remove.
5649 (vqrshlq_m_u32): Remove.
5650 (vqrshlq_m_u16): Remove.
5651 (__arm_vqrshlq_u8): Remove.
5652 (__arm_vqrshlq_n_u8): Remove.
5653 (__arm_vqrshlq_s8): Remove.
5654 (__arm_vqrshlq_n_s8): Remove.
5655 (__arm_vqrshlq_u16): Remove.
5656 (__arm_vqrshlq_n_u16): Remove.
5657 (__arm_vqrshlq_s16): Remove.
5658 (__arm_vqrshlq_n_s16): Remove.
5659 (__arm_vqrshlq_u32): Remove.
5660 (__arm_vqrshlq_n_u32): Remove.
5661 (__arm_vqrshlq_s32): Remove.
5662 (__arm_vqrshlq_n_s32): Remove.
5663 (__arm_vqrshlq_m_n_u8): Remove.
5664 (__arm_vqrshlq_m_n_s8): Remove.
5665 (__arm_vqrshlq_m_n_u16): Remove.
5666 (__arm_vqrshlq_m_n_s16): Remove.
5667 (__arm_vqrshlq_m_n_u32): Remove.
5668 (__arm_vqrshlq_m_n_s32): Remove.
5669 (__arm_vqrshlq_m_s8): Remove.
5670 (__arm_vqrshlq_m_s32): Remove.
5671 (__arm_vqrshlq_m_s16): Remove.
5672 (__arm_vqrshlq_m_u8): Remove.
5673 (__arm_vqrshlq_m_u32): Remove.
5674 (__arm_vqrshlq_m_u16): Remove.
5675 (__arm_vqrshlq): Remove.
5676 (__arm_vqrshlq_m_n): Remove.
5677 (__arm_vqrshlq_m): Remove.
5678
5679 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5680
5681 * config/arm/iterators.md (MVE_RSHIFT_M_N, MVE_RSHIFT_N): New.
5682 (mve_insn): Add vqrshl, vrshl.
5683 * config/arm/mve.md (mve_vqrshlq_n_<supf><mode>)
5684 (mve_vrshlq_n_<supf><mode>): Merge into ...
5685 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
5686 (mve_vqrshlq_m_n_<supf><mode>, mve_vrshlq_m_n_<supf><mode>): Merge
5687 into ...
5688 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
5689
5690 2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
5691
5692 * config/arm/arm-mve-builtins-shapes.cc (binary_round_lshift): New.
5693 * config/arm/arm-mve-builtins-shapes.h (binary_round_lshift): New.
5694
5695 2023-05-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5696
5697 PR target/109615
5698 * config/riscv/riscv-vsetvl.cc (avl_info::multiple_source_equal_p): Add
5699 denegrate PHI optmization.
5700
5701 2023-05-05 Uros Bizjak <ubizjak@gmail.com>
5702
5703 * config/i386/predicates.md (register_no_SP_operand):
5704 Rename from index_register_operand.
5705 (call_register_operand): Update for rename.
5706 * config/i386/i386.md (*lea<mode>_general_[1234]): Update for rename.
5707
5708 2023-05-05 Tamar Christina <tamar.christina@arm.com>
5709
5710 PR bootstrap/84402
5711 * Makefile.in (NUM_MATCH_SPLITS, MATCH_SPLITS_SEQ,
5712 GIMPLE_MATCH_PD_SEQ_SRC, GIMPLE_MATCH_PD_SEQ_O,
5713 GENERIC_MATCH_PD_SEQ_SRC, GENERIC_MATCH_PD_SEQ_O): New.
5714 (OBJS, MOSTLYCLEANFILES, .PRECIOUS): Use them.
5715 (s-match): Split into s-generic-match and s-gimple-match.
5716 * configure.ac (with-matchpd-partitions,
5717 DEFAULT_MATCHPD_PARTITIONS): New.
5718 * configure: Regenerate.
5719
5720 2023-05-05 Tamar Christina <tamar.christina@arm.com>
5721
5722 PR bootstrap/84402
5723 * genmatch.cc (emit_func, SIZED_BASED_CHUNKS, get_out_file): New.
5724 (decision_tree::gen): Accept list of files instead of single and update
5725 to write function definition to header and main file.
5726 (write_predicate): Likewise.
5727 (write_header): Emit pragmas and new includes.
5728 (main): Create file buffers and cleanup.
5729 (showUsage, write_header_includes): New.
5730
5731 2023-05-05 Tamar Christina <tamar.christina@arm.com>
5732
5733 PR bootstrap/84402
5734 * Makefile.in (OBJS): Add gimple-match-exports.o.
5735 * genmatch.cc (decision_tree::gen): Export gimple_gimplify helpers.
5736 * gimple-match-head.cc (gimple_simplify, gimple_resimplify1,
5737 gimple_resimplify2, gimple_resimplify3, gimple_resimplify4,
5738 gimple_resimplify5, constant_for_folding, convert_conditional_op,
5739 maybe_resimplify_conditional_op, gimple_match_op::resimplify,
5740 maybe_build_generic_op, build_call_internal, maybe_push_res_to_seq,
5741 do_valueize, try_conditional_simplification, gimple_extract,
5742 gimple_extract_op, canonicalize_code, commutative_binary_op_p,
5743 commutative_ternary_op_p, first_commutative_argument,
5744 associative_binary_op_p, directly_supported_p,
5745 get_conditional_internal_fn): Moved to gimple-match-exports.cc
5746 * gimple-match-exports.cc: New file.
5747
5748 2023-05-05 Tamar Christina <tamar.christina@arm.com>
5749
5750 PR bootstrap/84402
5751 * genmatch.cc (decision_tree::gen, write_predicate): Generate new
5752 debug_dump var.
5753 (dt_simplify::gen_1): Use it.
5754
5755 2023-05-05 Tamar Christina <tamar.christina@arm.com>
5756
5757 PR bootstrap/84402
5758 * genmatch.cc (output_line_directive): Only emit commented directive
5759 when -vv.
5760
5761 2023-05-05 Tamar Christina <tamar.christina@arm.com>
5762
5763 PR bootstrap/84402
5764 * genmatch.cc (dt_simplify::gen_1): Only emit labels if used.
5765
5766 2023-05-05 Tobias Burnus <tobias@codesourcery.com>
5767
5768 * config/gcn/gcn.cc (gcn_vectorize_builtin_vectorized_function): Remove
5769 unused in_mode/in_n variables.
5770
5771 2023-05-05 Richard Biener <rguenther@suse.de>
5772
5773 PR tree-optimization/109735
5774 * tree-vect-stmts.cc (vectorizable_operation): Perform
5775 conversion for POINTER_DIFF_EXPR unconditionally.
5776
5777 2023-05-05 Uros Bizjak <ubizjak@gmail.com>
5778
5779 * config/i386/mmx.md (mulv2si3): New expander.
5780 (*mulv2si3): New insn pattern.
5781
5782 2023-05-05 Tobias Burnus <tobias@codesourcery.com>
5783 Thomas Schwinge <thomas@codesourcery.com>
5784
5785 PR libgomp/108098
5786 * config/nvptx/mkoffload.cc (process): Emit dummy procedure
5787 alongside reverse-offload function table to prevent NULL values
5788 of the function addresses.
5789
5790 2023-05-05 Jakub Jelinek <jakub@redhat.com>
5791
5792 * builtins.cc (do_mpfr_ckconv, do_mpc_ckconv): Fix comment typo,
5793 mpft_t -> mpfr_t.
5794 * fold-const-call.cc (do_mpfr_ckconv, do_mpc_ckconv): Likewise.
5795
5796 2023-05-05 Andrew Pinski <apinski@marvell.com>
5797
5798 PR tree-optimization/109732
5799 * tree-ssa-phiopt.cc (match_simplify_replacement): Fix the selection
5800 of the argtrue/argfalse.
5801
5802 2023-05-05 Andrew Pinski <apinski@marvell.com>
5803
5804 PR tree-optimization/109722
5805 * match.pd: Extend the `ABS<a> == 0` pattern
5806 to cover `ABSU<a> == 0` too.
5807
5808 2023-05-04 Uros Bizjak <ubizjak@gmail.com>
5809
5810 PR target/109733
5811 * config/i386/predicates.md (index_reg_operand): New predicate.
5812 * config/i386/i386.md (ashift to lea spliter): Use
5813 general_reg_operand and index_reg_operand predicates.
5814
5815 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5816
5817 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>_insn_le):
5818 Rename and reimplement with RTL codes to...
5819 (aarch64_<optab>hn2<mode>_insn_le): .. This.
5820 (aarch64_r<optab>hn2<mode>_insn_le): New pattern.
5821 (aarch64_<sur><addsub>hn2<mode>_insn_be): Rename and reimplement with RTL
5822 codes to...
5823 (aarch64_<optab>hn2<mode>_insn_be): ... This.
5824 (aarch64_r<optab>hn2<mode>_insn_be): New pattern.
5825 (aarch64_<sur><addsub>hn2<mode>): Rename and adjust expander to...
5826 (aarch64_<optab>hn2<mode>): ... This.
5827 (aarch64_r<optab>hn2<mode>): New expander.
5828 * config/aarch64/iterators.md (UNSPEC_ADDHN, UNSPEC_RADDHN,
5829 UNSPEC_SUBHN, UNSPEC_RSUBHN): Delete unspecs.
5830 (ADDSUBHN): Delete.
5831 (sur): Remove handling of the above.
5832 (addsub): Likewise.
5833
5834 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5835
5836 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>_insn_le):
5837 Delete.
5838 (aarch64_<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
5839 (aarch64_<sur><addsub>hn<mode>_insn_be): Delete.
5840 (aarch64_r<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
5841 (aarch64_<sur><addsub>hn<mode>): Delete.
5842 (aarch64_<optab>hn<mode>): New define_expand.
5843 (aarch64_r<optab>hn<mode>): Likewise.
5844 * config/aarch64/predicates.md (aarch64_simd_raddsubhn_imm_vec):
5845 New predicate.
5846
5847 2023-05-04 Andrew Pinski <apinski@marvell.com>
5848
5849 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Handle
5850 diamond form bb with forwarder only empty blocks better.
5851
5852 2023-05-04 Andrew Pinski <apinski@marvell.com>
5853
5854 * tree-ssa-threadupdate.cc (copy_phi_arg_into_existing_phi): Move to ...
5855 * tree-cfg.cc (copy_phi_arg_into_existing_phi): Here and remove static.
5856 (gimple_duplicate_sese_tail): Use copy_phi_arg_into_existing_phi instead
5857 of an inline version of it.
5858 * tree-cfgcleanup.cc (remove_forwarder_block): Likewise.
5859 * tree-cfg.h (copy_phi_arg_into_existing_phi): New declaration.
5860
5861 2023-05-04 Andrew Pinski <apinski@marvell.com>
5862
5863 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Change
5864 the default argument value for dce_ssa_names to nullptr.
5865 Check to make sure dce_ssa_names is a non-nullptr before
5866 calling simple_dce_from_worklist.
5867
5868 2023-05-04 Uros Bizjak <ubizjak@gmail.com>
5869
5870 * config/i386/predicates.md (index_register_operand): Reject
5871 arg_pointer_rtx, frame_pointer_rtx, stack_pointer_rtx and
5872 VIRTUAL_REGISTER_P operands. Allow subregs of memory before reload.
5873 (call_register_no_elim_operand): Rewrite as ...
5874 (call_register_operand): ... this.
5875 (call_insn_operand): Use call_register_operand predicate.
5876
5877 2023-05-04 Richard Biener <rguenther@suse.de>
5878
5879 PR tree-optimization/109721
5880 * tree-vect-stmts.cc (vectorizable_operation): Make sure
5881 to test word_mode for all !target_support_p operations.
5882
5883 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5884
5885 PR target/99195
5886 * config/aarch64/aarch64-simd.md (aarch64_<su>aba<mode>): Rename to...
5887 (aarch64_<su>aba<mode><vczle><vczbe>): ... This.
5888 (aarch64_mla<mode>): Rename to...
5889 (aarch64_mla<mode><vczle><vczbe>): ... This.
5890 (*aarch64_mla_elt<mode>): Rename to...
5891 (*aarch64_mla_elt<mode><vczle><vczbe>): ... This.
5892 (*aarch64_mla_elt_<vswap_width_name><mode>): Rename to...
5893 (*aarch64_mla_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
5894 (aarch64_mla_n<mode>): Rename to...
5895 (aarch64_mla_n<mode><vczle><vczbe>): ... This.
5896 (aarch64_mls<mode>): Rename to...
5897 (aarch64_mls<mode><vczle><vczbe>): ... This.
5898 (*aarch64_mls_elt<mode>): Rename to...
5899 (*aarch64_mls_elt<mode><vczle><vczbe>): ... This.
5900 (*aarch64_mls_elt_<vswap_width_name><mode>): Rename to...
5901 (*aarch64_mls_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
5902 (aarch64_mls_n<mode>): Rename to...
5903 (aarch64_mls_n<mode><vczle><vczbe>): ... This.
5904 (fma<mode>4): Rename to...
5905 (fma<mode>4<vczle><vczbe>): ... This.
5906 (*aarch64_fma4_elt<mode>): Rename to...
5907 (*aarch64_fma4_elt<mode><vczle><vczbe>): ... This.
5908 (*aarch64_fma4_elt_<vswap_width_name><mode>): Rename to...
5909 (*aarch64_fma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
5910 (*aarch64_fma4_elt_from_dup<mode>): Rename to...
5911 (*aarch64_fma4_elt_from_dup<mode><vczle><vczbe>): ... This.
5912 (fnma<mode>4): Rename to...
5913 (fnma<mode>4<vczle><vczbe>): ... This.
5914 (*aarch64_fnma4_elt<mode>): Rename to...
5915 (*aarch64_fnma4_elt<mode><vczle><vczbe>): ... This.
5916 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Rename to...
5917 (*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
5918 (*aarch64_fnma4_elt_from_dup<mode>): Rename to...
5919 (*aarch64_fnma4_elt_from_dup<mode><vczle><vczbe>): ... This.
5920 (aarch64_simd_bsl<mode>_internal): Rename to...
5921 (aarch64_simd_bsl<mode>_internal<vczle><vczbe>): ... This.
5922 (*aarch64_simd_bsl<mode>_alt): Rename to...
5923 (*aarch64_simd_bsl<mode>_alt<vczle><vczbe>): ... This.
5924
5925 2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5926
5927 PR target/99195
5928 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>): Rename to...
5929 (aarch64_<su>abd<mode><vczle><vczbe>): ... This.
5930 (fabd<mode>3): Rename to...
5931 (fabd<mode>3<vczle><vczbe>): ... This.
5932 (aarch64_<optab>p<mode>): Rename to...
5933 (aarch64_<optab>p<mode><vczle><vczbe>): ... This.
5934 (aarch64_faddp<mode>): Rename to...
5935 (aarch64_faddp<mode><vczle><vczbe>): ... This.
5936
5937 2023-05-04 Martin Liska <mliska@suse.cz>
5938
5939 * gcov.cc (GCOV_JSON_FORMAT_VERSION): New definition.
5940 (print_version): Use it.
5941 (generate_results): Likewise.
5942
5943 2023-05-04 Richard Biener <rguenther@suse.de>
5944
5945 * tree-cfg.h (last_stmt): Rename to ...
5946 (last_nondebug_stmt): ... this.
5947 * tree-cfg.cc (last_stmt): Rename to ...
5948 (last_nondebug_stmt): ... this.
5949 (assign_discriminators): Adjust.
5950 (group_case_labels_stmt): Likewise.
5951 (gimple_can_duplicate_bb_p): Likewise.
5952 (execute_fixup_cfg): Likewise.
5953 * auto-profile.cc (afdo_propagate_circuit): Likewise.
5954 * gimple-range.cc (gimple_ranger::range_on_exit): Likewise.
5955 * omp-expand.cc (workshare_safe_to_combine_p): Likewise.
5956 (determine_parallel_type): Likewise.
5957 (adjust_context_and_scope): Likewise.
5958 (expand_task_call): Likewise.
5959 (remove_exit_barrier): Likewise.
5960 (expand_omp_taskreg): Likewise.
5961 (expand_omp_for_init_counts): Likewise.
5962 (expand_omp_for_init_vars): Likewise.
5963 (expand_omp_for_static_chunk): Likewise.
5964 (expand_omp_simd): Likewise.
5965 (expand_oacc_for): Likewise.
5966 (expand_omp_for): Likewise.
5967 (expand_omp_sections): Likewise.
5968 (expand_omp_atomic_fetch_op): Likewise.
5969 (expand_omp_atomic_cas): Likewise.
5970 (expand_omp_atomic): Likewise.
5971 (expand_omp_target): Likewise.
5972 (expand_omp): Likewise.
5973 (omp_make_gimple_edges): Likewise.
5974 * trans-mem.cc (tm_region_init): Likewise.
5975 * tree-inline.cc (redirect_all_calls): Likewise.
5976 * tree-parloops.cc (gen_parallel_loop): Likewise.
5977 * tree-ssa-loop-ch.cc (do_while_loop_p): Likewise.
5978 * tree-ssa-loop-ivcanon.cc (canonicalize_loop_induction_variables):
5979 Likewise.
5980 * tree-ssa-loop-ivopts.cc (stmt_after_ip_normal_pos): Likewise.
5981 (may_eliminate_iv): Likewise.
5982 * tree-ssa-loop-manip.cc (standard_iv_increment_position): Likewise.
5983 * tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations):
5984 Likewise.
5985 (estimate_numbers_of_iterations): Likewise.
5986 * tree-ssa-loop-split.cc (compute_added_num_insns): Likewise.
5987 * tree-ssa-loop-unswitch.cc (get_predicates_for_bb): Likewise.
5988 (set_predicates_for_bb): Likewise.
5989 (init_loop_unswitch_info): Likewise.
5990 (hoist_guard): Likewise.
5991 * tree-ssa-phiopt.cc (match_simplify_replacement): Likewise.
5992 (minmax_replacement): Likewise.
5993 * tree-ssa-reassoc.cc (update_range_test): Likewise.
5994 (optimize_range_tests_to_bit_test): Likewise.
5995 (optimize_range_tests_var_bound): Likewise.
5996 (optimize_range_tests): Likewise.
5997 (no_side_effect_bb): Likewise.
5998 (suitable_cond_bb): Likewise.
5999 (maybe_optimize_range_tests): Likewise.
6000 (reassociate_bb): Likewise.
6001 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Likewise.
6002
6003 2023-05-04 Jakub Jelinek <jakub@redhat.com>
6004
6005 PR debug/109676
6006 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
6007 If src is REG, change its mode to V1TImode and call fix_debug_reg_uses
6008 for it only if it still has TImode. Don't decide whether to call
6009 fix_debug_reg_uses based on whether SRC is ever set or not.
6010
6011 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
6012
6013 * config/cris/cris.cc (cris_split_constant): New function.
6014 * config/cris/cris.md (splitop): New iterator.
6015 (opsplit1): New define_peephole2.
6016 * config/cris/cris-protos.h (cris_split_constant): Declare.
6017 (cris_splittable_constant_p): New macro.
6018
6019 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
6020
6021 * config/cris/cris.cc (TARGET_SPILL_CLASS): Define
6022 to ALL_REGS.
6023
6024 2023-05-04 Hans-Peter Nilsson <hp@axis.com>
6025
6026 * config/cris/cris.cc (cris_side_effect_mode_ok): Use
6027 lra_in_progress, not reload_in_progress.
6028 * config/cris/cris.md ("movdi", "*addi_reload"): Ditto.
6029 * config/cris/constraints.md ("Q"): Ditto.
6030
6031 2023-05-03 Andrew Pinski <apinski@marvell.com>
6032
6033 * tree-ssa-dce.cc (simple_dce_from_worklist): Record
6034 stats on removed number of statements and phis.
6035
6036 2023-05-03 Aldy Hernandez <aldyh@redhat.com>
6037
6038 PR tree-optimization/109711
6039 * value-range.cc (irange::verify_range): Allow types of
6040 error_mark_node.
6041
6042 2023-05-03 Alexander Monakov <amonakov@ispras.ru>
6043
6044 PR sanitizer/90746
6045 * calls.cc (can_implement_as_sibling_call_p): Reject calls
6046 to __sanitizer_cov_trace_pc.
6047
6048 2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
6049
6050 PR target/109661
6051 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Add
6052 a new ABI break parameter for GCC 14. Set it to the alignment
6053 of enums that have an underlying type. Take the true alignment
6054 of such enums from the TYPE_ALIGN of the underlying type's
6055 TYPE_MAIN_VARIANT.
6056 (aarch64_function_arg_boundary): Update accordingly.
6057 (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Likewise.
6058 Warn about ABI differences.
6059
6060 2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
6061
6062 PR target/109661
6063 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Rename
6064 ABI break variables to abi_break_gcc_9 and abi_break_gcc_13.
6065 (aarch64_layout_arg, aarch64_function_arg_boundary): Likewise.
6066 (aarch64_gimplify_va_arg_expr): Likewise.
6067
6068 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6069
6070 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_NO_F)
6071 (FUNCTION_WITHOUT_N_NO_F, FUNCTION_WITH_M_N_NO_U_F): New.
6072 (vhaddq, vhsubq, vmulhq, vqaddq, vqsubq, vqdmulhq, vrhaddq)
6073 (vrmulhq): New.
6074 * config/arm/arm-mve-builtins-base.def (vhaddq, vhsubq, vmulhq)
6075 (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
6076 * config/arm/arm-mve-builtins-base.h (vhaddq, vhsubq, vmulhq)
6077 (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
6078 * config/arm/arm_mve.h (vhsubq): Remove.
6079 (vhaddq): Remove.
6080 (vhaddq_m): Remove.
6081 (vhsubq_m): Remove.
6082 (vhaddq_x): Remove.
6083 (vhsubq_x): Remove.
6084 (vhsubq_u8): Remove.
6085 (vhsubq_n_u8): Remove.
6086 (vhaddq_u8): Remove.
6087 (vhaddq_n_u8): Remove.
6088 (vhsubq_s8): Remove.
6089 (vhsubq_n_s8): Remove.
6090 (vhaddq_s8): Remove.
6091 (vhaddq_n_s8): Remove.
6092 (vhsubq_u16): Remove.
6093 (vhsubq_n_u16): Remove.
6094 (vhaddq_u16): Remove.
6095 (vhaddq_n_u16): Remove.
6096 (vhsubq_s16): Remove.
6097 (vhsubq_n_s16): Remove.
6098 (vhaddq_s16): Remove.
6099 (vhaddq_n_s16): Remove.
6100 (vhsubq_u32): Remove.
6101 (vhsubq_n_u32): Remove.
6102 (vhaddq_u32): Remove.
6103 (vhaddq_n_u32): Remove.
6104 (vhsubq_s32): Remove.
6105 (vhsubq_n_s32): Remove.
6106 (vhaddq_s32): Remove.
6107 (vhaddq_n_s32): Remove.
6108 (vhaddq_m_n_s8): Remove.
6109 (vhaddq_m_n_s32): Remove.
6110 (vhaddq_m_n_s16): Remove.
6111 (vhaddq_m_n_u8): Remove.
6112 (vhaddq_m_n_u32): Remove.
6113 (vhaddq_m_n_u16): Remove.
6114 (vhaddq_m_s8): Remove.
6115 (vhaddq_m_s32): Remove.
6116 (vhaddq_m_s16): Remove.
6117 (vhaddq_m_u8): Remove.
6118 (vhaddq_m_u32): Remove.
6119 (vhaddq_m_u16): Remove.
6120 (vhsubq_m_n_s8): Remove.
6121 (vhsubq_m_n_s32): Remove.
6122 (vhsubq_m_n_s16): Remove.
6123 (vhsubq_m_n_u8): Remove.
6124 (vhsubq_m_n_u32): Remove.
6125 (vhsubq_m_n_u16): Remove.
6126 (vhsubq_m_s8): Remove.
6127 (vhsubq_m_s32): Remove.
6128 (vhsubq_m_s16): Remove.
6129 (vhsubq_m_u8): Remove.
6130 (vhsubq_m_u32): Remove.
6131 (vhsubq_m_u16): Remove.
6132 (vhaddq_x_n_s8): Remove.
6133 (vhaddq_x_n_s16): Remove.
6134 (vhaddq_x_n_s32): Remove.
6135 (vhaddq_x_n_u8): Remove.
6136 (vhaddq_x_n_u16): Remove.
6137 (vhaddq_x_n_u32): Remove.
6138 (vhaddq_x_s8): Remove.
6139 (vhaddq_x_s16): Remove.
6140 (vhaddq_x_s32): Remove.
6141 (vhaddq_x_u8): Remove.
6142 (vhaddq_x_u16): Remove.
6143 (vhaddq_x_u32): Remove.
6144 (vhsubq_x_n_s8): Remove.
6145 (vhsubq_x_n_s16): Remove.
6146 (vhsubq_x_n_s32): Remove.
6147 (vhsubq_x_n_u8): Remove.
6148 (vhsubq_x_n_u16): Remove.
6149 (vhsubq_x_n_u32): Remove.
6150 (vhsubq_x_s8): Remove.
6151 (vhsubq_x_s16): Remove.
6152 (vhsubq_x_s32): Remove.
6153 (vhsubq_x_u8): Remove.
6154 (vhsubq_x_u16): Remove.
6155 (vhsubq_x_u32): Remove.
6156 (__arm_vhsubq_u8): Remove.
6157 (__arm_vhsubq_n_u8): Remove.
6158 (__arm_vhaddq_u8): Remove.
6159 (__arm_vhaddq_n_u8): Remove.
6160 (__arm_vhsubq_s8): Remove.
6161 (__arm_vhsubq_n_s8): Remove.
6162 (__arm_vhaddq_s8): Remove.
6163 (__arm_vhaddq_n_s8): Remove.
6164 (__arm_vhsubq_u16): Remove.
6165 (__arm_vhsubq_n_u16): Remove.
6166 (__arm_vhaddq_u16): Remove.
6167 (__arm_vhaddq_n_u16): Remove.
6168 (__arm_vhsubq_s16): Remove.
6169 (__arm_vhsubq_n_s16): Remove.
6170 (__arm_vhaddq_s16): Remove.
6171 (__arm_vhaddq_n_s16): Remove.
6172 (__arm_vhsubq_u32): Remove.
6173 (__arm_vhsubq_n_u32): Remove.
6174 (__arm_vhaddq_u32): Remove.
6175 (__arm_vhaddq_n_u32): Remove.
6176 (__arm_vhsubq_s32): Remove.
6177 (__arm_vhsubq_n_s32): Remove.
6178 (__arm_vhaddq_s32): Remove.
6179 (__arm_vhaddq_n_s32): Remove.
6180 (__arm_vhaddq_m_n_s8): Remove.
6181 (__arm_vhaddq_m_n_s32): Remove.
6182 (__arm_vhaddq_m_n_s16): Remove.
6183 (__arm_vhaddq_m_n_u8): Remove.
6184 (__arm_vhaddq_m_n_u32): Remove.
6185 (__arm_vhaddq_m_n_u16): Remove.
6186 (__arm_vhaddq_m_s8): Remove.
6187 (__arm_vhaddq_m_s32): Remove.
6188 (__arm_vhaddq_m_s16): Remove.
6189 (__arm_vhaddq_m_u8): Remove.
6190 (__arm_vhaddq_m_u32): Remove.
6191 (__arm_vhaddq_m_u16): Remove.
6192 (__arm_vhsubq_m_n_s8): Remove.
6193 (__arm_vhsubq_m_n_s32): Remove.
6194 (__arm_vhsubq_m_n_s16): Remove.
6195 (__arm_vhsubq_m_n_u8): Remove.
6196 (__arm_vhsubq_m_n_u32): Remove.
6197 (__arm_vhsubq_m_n_u16): Remove.
6198 (__arm_vhsubq_m_s8): Remove.
6199 (__arm_vhsubq_m_s32): Remove.
6200 (__arm_vhsubq_m_s16): Remove.
6201 (__arm_vhsubq_m_u8): Remove.
6202 (__arm_vhsubq_m_u32): Remove.
6203 (__arm_vhsubq_m_u16): Remove.
6204 (__arm_vhaddq_x_n_s8): Remove.
6205 (__arm_vhaddq_x_n_s16): Remove.
6206 (__arm_vhaddq_x_n_s32): Remove.
6207 (__arm_vhaddq_x_n_u8): Remove.
6208 (__arm_vhaddq_x_n_u16): Remove.
6209 (__arm_vhaddq_x_n_u32): Remove.
6210 (__arm_vhaddq_x_s8): Remove.
6211 (__arm_vhaddq_x_s16): Remove.
6212 (__arm_vhaddq_x_s32): Remove.
6213 (__arm_vhaddq_x_u8): Remove.
6214 (__arm_vhaddq_x_u16): Remove.
6215 (__arm_vhaddq_x_u32): Remove.
6216 (__arm_vhsubq_x_n_s8): Remove.
6217 (__arm_vhsubq_x_n_s16): Remove.
6218 (__arm_vhsubq_x_n_s32): Remove.
6219 (__arm_vhsubq_x_n_u8): Remove.
6220 (__arm_vhsubq_x_n_u16): Remove.
6221 (__arm_vhsubq_x_n_u32): Remove.
6222 (__arm_vhsubq_x_s8): Remove.
6223 (__arm_vhsubq_x_s16): Remove.
6224 (__arm_vhsubq_x_s32): Remove.
6225 (__arm_vhsubq_x_u8): Remove.
6226 (__arm_vhsubq_x_u16): Remove.
6227 (__arm_vhsubq_x_u32): Remove.
6228 (__arm_vhsubq): Remove.
6229 (__arm_vhaddq): Remove.
6230 (__arm_vhaddq_m): Remove.
6231 (__arm_vhsubq_m): Remove.
6232 (__arm_vhaddq_x): Remove.
6233 (__arm_vhsubq_x): Remove.
6234 (vmulhq): Remove.
6235 (vmulhq_m): Remove.
6236 (vmulhq_x): Remove.
6237 (vmulhq_u8): Remove.
6238 (vmulhq_s8): Remove.
6239 (vmulhq_u16): Remove.
6240 (vmulhq_s16): Remove.
6241 (vmulhq_u32): Remove.
6242 (vmulhq_s32): Remove.
6243 (vmulhq_m_s8): Remove.
6244 (vmulhq_m_s32): Remove.
6245 (vmulhq_m_s16): Remove.
6246 (vmulhq_m_u8): Remove.
6247 (vmulhq_m_u32): Remove.
6248 (vmulhq_m_u16): Remove.
6249 (vmulhq_x_s8): Remove.
6250 (vmulhq_x_s16): Remove.
6251 (vmulhq_x_s32): Remove.
6252 (vmulhq_x_u8): Remove.
6253 (vmulhq_x_u16): Remove.
6254 (vmulhq_x_u32): Remove.
6255 (__arm_vmulhq_u8): Remove.
6256 (__arm_vmulhq_s8): Remove.
6257 (__arm_vmulhq_u16): Remove.
6258 (__arm_vmulhq_s16): Remove.
6259 (__arm_vmulhq_u32): Remove.
6260 (__arm_vmulhq_s32): Remove.
6261 (__arm_vmulhq_m_s8): Remove.
6262 (__arm_vmulhq_m_s32): Remove.
6263 (__arm_vmulhq_m_s16): Remove.
6264 (__arm_vmulhq_m_u8): Remove.
6265 (__arm_vmulhq_m_u32): Remove.
6266 (__arm_vmulhq_m_u16): Remove.
6267 (__arm_vmulhq_x_s8): Remove.
6268 (__arm_vmulhq_x_s16): Remove.
6269 (__arm_vmulhq_x_s32): Remove.
6270 (__arm_vmulhq_x_u8): Remove.
6271 (__arm_vmulhq_x_u16): Remove.
6272 (__arm_vmulhq_x_u32): Remove.
6273 (__arm_vmulhq): Remove.
6274 (__arm_vmulhq_m): Remove.
6275 (__arm_vmulhq_x): Remove.
6276 (vqsubq): Remove.
6277 (vqaddq): Remove.
6278 (vqaddq_m): Remove.
6279 (vqsubq_m): Remove.
6280 (vqsubq_u8): Remove.
6281 (vqsubq_n_u8): Remove.
6282 (vqaddq_u8): Remove.
6283 (vqaddq_n_u8): Remove.
6284 (vqsubq_s8): Remove.
6285 (vqsubq_n_s8): Remove.
6286 (vqaddq_s8): Remove.
6287 (vqaddq_n_s8): Remove.
6288 (vqsubq_u16): Remove.
6289 (vqsubq_n_u16): Remove.
6290 (vqaddq_u16): Remove.
6291 (vqaddq_n_u16): Remove.
6292 (vqsubq_s16): Remove.
6293 (vqsubq_n_s16): Remove.
6294 (vqaddq_s16): Remove.
6295 (vqaddq_n_s16): Remove.
6296 (vqsubq_u32): Remove.
6297 (vqsubq_n_u32): Remove.
6298 (vqaddq_u32): Remove.
6299 (vqaddq_n_u32): Remove.
6300 (vqsubq_s32): Remove.
6301 (vqsubq_n_s32): Remove.
6302 (vqaddq_s32): Remove.
6303 (vqaddq_n_s32): Remove.
6304 (vqaddq_m_n_s8): Remove.
6305 (vqaddq_m_n_s32): Remove.
6306 (vqaddq_m_n_s16): Remove.
6307 (vqaddq_m_n_u8): Remove.
6308 (vqaddq_m_n_u32): Remove.
6309 (vqaddq_m_n_u16): Remove.
6310 (vqaddq_m_s8): Remove.
6311 (vqaddq_m_s32): Remove.
6312 (vqaddq_m_s16): Remove.
6313 (vqaddq_m_u8): Remove.
6314 (vqaddq_m_u32): Remove.
6315 (vqaddq_m_u16): Remove.
6316 (vqsubq_m_n_s8): Remove.
6317 (vqsubq_m_n_s32): Remove.
6318 (vqsubq_m_n_s16): Remove.
6319 (vqsubq_m_n_u8): Remove.
6320 (vqsubq_m_n_u32): Remove.
6321 (vqsubq_m_n_u16): Remove.
6322 (vqsubq_m_s8): Remove.
6323 (vqsubq_m_s32): Remove.
6324 (vqsubq_m_s16): Remove.
6325 (vqsubq_m_u8): Remove.
6326 (vqsubq_m_u32): Remove.
6327 (vqsubq_m_u16): Remove.
6328 (__arm_vqsubq_u8): Remove.
6329 (__arm_vqsubq_n_u8): Remove.
6330 (__arm_vqaddq_u8): Remove.
6331 (__arm_vqaddq_n_u8): Remove.
6332 (__arm_vqsubq_s8): Remove.
6333 (__arm_vqsubq_n_s8): Remove.
6334 (__arm_vqaddq_s8): Remove.
6335 (__arm_vqaddq_n_s8): Remove.
6336 (__arm_vqsubq_u16): Remove.
6337 (__arm_vqsubq_n_u16): Remove.
6338 (__arm_vqaddq_u16): Remove.
6339 (__arm_vqaddq_n_u16): Remove.
6340 (__arm_vqsubq_s16): Remove.
6341 (__arm_vqsubq_n_s16): Remove.
6342 (__arm_vqaddq_s16): Remove.
6343 (__arm_vqaddq_n_s16): Remove.
6344 (__arm_vqsubq_u32): Remove.
6345 (__arm_vqsubq_n_u32): Remove.
6346 (__arm_vqaddq_u32): Remove.
6347 (__arm_vqaddq_n_u32): Remove.
6348 (__arm_vqsubq_s32): Remove.
6349 (__arm_vqsubq_n_s32): Remove.
6350 (__arm_vqaddq_s32): Remove.
6351 (__arm_vqaddq_n_s32): Remove.
6352 (__arm_vqaddq_m_n_s8): Remove.
6353 (__arm_vqaddq_m_n_s32): Remove.
6354 (__arm_vqaddq_m_n_s16): Remove.
6355 (__arm_vqaddq_m_n_u8): Remove.
6356 (__arm_vqaddq_m_n_u32): Remove.
6357 (__arm_vqaddq_m_n_u16): Remove.
6358 (__arm_vqaddq_m_s8): Remove.
6359 (__arm_vqaddq_m_s32): Remove.
6360 (__arm_vqaddq_m_s16): Remove.
6361 (__arm_vqaddq_m_u8): Remove.
6362 (__arm_vqaddq_m_u32): Remove.
6363 (__arm_vqaddq_m_u16): Remove.
6364 (__arm_vqsubq_m_n_s8): Remove.
6365 (__arm_vqsubq_m_n_s32): Remove.
6366 (__arm_vqsubq_m_n_s16): Remove.
6367 (__arm_vqsubq_m_n_u8): Remove.
6368 (__arm_vqsubq_m_n_u32): Remove.
6369 (__arm_vqsubq_m_n_u16): Remove.
6370 (__arm_vqsubq_m_s8): Remove.
6371 (__arm_vqsubq_m_s32): Remove.
6372 (__arm_vqsubq_m_s16): Remove.
6373 (__arm_vqsubq_m_u8): Remove.
6374 (__arm_vqsubq_m_u32): Remove.
6375 (__arm_vqsubq_m_u16): Remove.
6376 (__arm_vqsubq): Remove.
6377 (__arm_vqaddq): Remove.
6378 (__arm_vqaddq_m): Remove.
6379 (__arm_vqsubq_m): Remove.
6380 (vqdmulhq): Remove.
6381 (vqdmulhq_m): Remove.
6382 (vqdmulhq_s8): Remove.
6383 (vqdmulhq_n_s8): Remove.
6384 (vqdmulhq_s16): Remove.
6385 (vqdmulhq_n_s16): Remove.
6386 (vqdmulhq_s32): Remove.
6387 (vqdmulhq_n_s32): Remove.
6388 (vqdmulhq_m_n_s8): Remove.
6389 (vqdmulhq_m_n_s32): Remove.
6390 (vqdmulhq_m_n_s16): Remove.
6391 (vqdmulhq_m_s8): Remove.
6392 (vqdmulhq_m_s32): Remove.
6393 (vqdmulhq_m_s16): Remove.
6394 (__arm_vqdmulhq_s8): Remove.
6395 (__arm_vqdmulhq_n_s8): Remove.
6396 (__arm_vqdmulhq_s16): Remove.
6397 (__arm_vqdmulhq_n_s16): Remove.
6398 (__arm_vqdmulhq_s32): Remove.
6399 (__arm_vqdmulhq_n_s32): Remove.
6400 (__arm_vqdmulhq_m_n_s8): Remove.
6401 (__arm_vqdmulhq_m_n_s32): Remove.
6402 (__arm_vqdmulhq_m_n_s16): Remove.
6403 (__arm_vqdmulhq_m_s8): Remove.
6404 (__arm_vqdmulhq_m_s32): Remove.
6405 (__arm_vqdmulhq_m_s16): Remove.
6406 (__arm_vqdmulhq): Remove.
6407 (__arm_vqdmulhq_m): Remove.
6408 (vrhaddq): Remove.
6409 (vrhaddq_m): Remove.
6410 (vrhaddq_x): Remove.
6411 (vrhaddq_u8): Remove.
6412 (vrhaddq_s8): Remove.
6413 (vrhaddq_u16): Remove.
6414 (vrhaddq_s16): Remove.
6415 (vrhaddq_u32): Remove.
6416 (vrhaddq_s32): Remove.
6417 (vrhaddq_m_s8): Remove.
6418 (vrhaddq_m_s32): Remove.
6419 (vrhaddq_m_s16): Remove.
6420 (vrhaddq_m_u8): Remove.
6421 (vrhaddq_m_u32): Remove.
6422 (vrhaddq_m_u16): Remove.
6423 (vrhaddq_x_s8): Remove.
6424 (vrhaddq_x_s16): Remove.
6425 (vrhaddq_x_s32): Remove.
6426 (vrhaddq_x_u8): Remove.
6427 (vrhaddq_x_u16): Remove.
6428 (vrhaddq_x_u32): Remove.
6429 (__arm_vrhaddq_u8): Remove.
6430 (__arm_vrhaddq_s8): Remove.
6431 (__arm_vrhaddq_u16): Remove.
6432 (__arm_vrhaddq_s16): Remove.
6433 (__arm_vrhaddq_u32): Remove.
6434 (__arm_vrhaddq_s32): Remove.
6435 (__arm_vrhaddq_m_s8): Remove.
6436 (__arm_vrhaddq_m_s32): Remove.
6437 (__arm_vrhaddq_m_s16): Remove.
6438 (__arm_vrhaddq_m_u8): Remove.
6439 (__arm_vrhaddq_m_u32): Remove.
6440 (__arm_vrhaddq_m_u16): Remove.
6441 (__arm_vrhaddq_x_s8): Remove.
6442 (__arm_vrhaddq_x_s16): Remove.
6443 (__arm_vrhaddq_x_s32): Remove.
6444 (__arm_vrhaddq_x_u8): Remove.
6445 (__arm_vrhaddq_x_u16): Remove.
6446 (__arm_vrhaddq_x_u32): Remove.
6447 (__arm_vrhaddq): Remove.
6448 (__arm_vrhaddq_m): Remove.
6449 (__arm_vrhaddq_x): Remove.
6450 (vrmulhq): Remove.
6451 (vrmulhq_m): Remove.
6452 (vrmulhq_x): Remove.
6453 (vrmulhq_u8): Remove.
6454 (vrmulhq_s8): Remove.
6455 (vrmulhq_u16): Remove.
6456 (vrmulhq_s16): Remove.
6457 (vrmulhq_u32): Remove.
6458 (vrmulhq_s32): Remove.
6459 (vrmulhq_m_s8): Remove.
6460 (vrmulhq_m_s32): Remove.
6461 (vrmulhq_m_s16): Remove.
6462 (vrmulhq_m_u8): Remove.
6463 (vrmulhq_m_u32): Remove.
6464 (vrmulhq_m_u16): Remove.
6465 (vrmulhq_x_s8): Remove.
6466 (vrmulhq_x_s16): Remove.
6467 (vrmulhq_x_s32): Remove.
6468 (vrmulhq_x_u8): Remove.
6469 (vrmulhq_x_u16): Remove.
6470 (vrmulhq_x_u32): Remove.
6471 (__arm_vrmulhq_u8): Remove.
6472 (__arm_vrmulhq_s8): Remove.
6473 (__arm_vrmulhq_u16): Remove.
6474 (__arm_vrmulhq_s16): Remove.
6475 (__arm_vrmulhq_u32): Remove.
6476 (__arm_vrmulhq_s32): Remove.
6477 (__arm_vrmulhq_m_s8): Remove.
6478 (__arm_vrmulhq_m_s32): Remove.
6479 (__arm_vrmulhq_m_s16): Remove.
6480 (__arm_vrmulhq_m_u8): Remove.
6481 (__arm_vrmulhq_m_u32): Remove.
6482 (__arm_vrmulhq_m_u16): Remove.
6483 (__arm_vrmulhq_x_s8): Remove.
6484 (__arm_vrmulhq_x_s16): Remove.
6485 (__arm_vrmulhq_x_s32): Remove.
6486 (__arm_vrmulhq_x_u8): Remove.
6487 (__arm_vrmulhq_x_u16): Remove.
6488 (__arm_vrmulhq_x_u32): Remove.
6489 (__arm_vrmulhq): Remove.
6490 (__arm_vrmulhq_m): Remove.
6491 (__arm_vrmulhq_x): Remove.
6492
6493 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6494
6495 * config/arm/iterators.md (MVE_INT_SU_BINARY): New.
6496 (mve_insn): Add vabdq, vhaddq, vhsubq, vmulhq, vqaddq, vqdmulhq,
6497 vqrdmulhq, vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq.
6498 (supf): Add VQDMULHQ_S, VQRDMULHQ_S.
6499 * config/arm/mve.md (mve_vabdq_<supf><mode>)
6500 (@mve_vhaddq_<supf><mode>, mve_vhsubq_<supf><mode>)
6501 (mve_vmulhq_<supf><mode>, mve_vqaddq_<supf><mode>)
6502 (mve_vqdmulhq_s<mode>, mve_vqrdmulhq_s<mode>)
6503 (mve_vqrshlq_<supf><mode>, mve_vqshlq_<supf><mode>)
6504 (mve_vqsubq_<supf><mode>, @mve_vrhaddq_<supf><mode>)
6505 (mve_vrmulhq_<supf><mode>, mve_vrshlq_<supf><mode>): Merge into
6506 ...
6507 (@mve_<mve_insn>q_<supf><mode>): ... this.
6508 * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
6509 (avg<mode>3_ceil, uavg<mode>3_ceil): Use gen_mve_q instead of
6510 gen_mve_vhaddq / gen_mve_vrhaddq.
6511
6512 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6513
6514 * config/arm/iterators.md (MVE_INT_SU_M_N_BINARY): New.
6515 (mve_insn): Add vhaddq, vhsubq, vmlaq, vmlasq, vqaddq, vqdmlahq,
6516 vqdmlashq, vqdmulhq, vqrdmlahq, vqrdmlashq, vqrdmulhq, vqsubq.
6517 (supf): Add VQDMLAHQ_M_N_S, VQDMLASHQ_M_N_S, VQRDMLAHQ_M_N_S,
6518 VQRDMLASHQ_M_N_S, VQDMULHQ_M_N_S, VQRDMULHQ_M_N_S.
6519 * config/arm/mve.md (mve_vhaddq_m_n_<supf><mode>)
6520 (mve_vhsubq_m_n_<supf><mode>, mve_vmlaq_m_n_<supf><mode>)
6521 (mve_vmlasq_m_n_<supf><mode>, mve_vqaddq_m_n_<supf><mode>)
6522 (mve_vqdmlahq_m_n_s<mode>, mve_vqdmlashq_m_n_s<mode>)
6523 (mve_vqrdmlahq_m_n_s<mode>, mve_vqrdmlashq_m_n_s<mode>)
6524 (mve_vqsubq_m_n_<supf><mode>, mve_vqdmulhq_m_n_s<mode>)
6525 (mve_vqrdmulhq_m_n_s<mode>): Merge into ...
6526 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
6527
6528 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6529
6530 * config/arm/iterators.md (MVE_INT_SU_N_BINARY): New.
6531 (mve_insn): Add vhaddq, vhsubq, vqaddq, vqdmulhq, vqrdmulhq,
6532 vqsubq.
6533 (supf): Add VQDMULHQ_N_S, VQRDMULHQ_N_S.
6534 * config/arm/mve.md (mve_vhaddq_n_<supf><mode>)
6535 (mve_vhsubq_n_<supf><mode>, mve_vqaddq_n_<supf><mode>)
6536 (mve_vqdmulhq_n_s<mode>, mve_vqrdmulhq_n_s<mode>)
6537 (mve_vqsubq_n_<supf><mode>): Merge into ...
6538 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
6539
6540 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6541
6542 * config/arm/iterators.md (MVE_INT_SU_M_BINARY): New.
6543 (mve_insn): Add vabdq, vhaddq, vhsubq, vmaxq, vminq, vmulhq,
6544 vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq, vqdmulhq,
6545 vqrdmladhq, vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq, vqrdmulhq,
6546 vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq, vshlq.
6547 (supf): Add VQDMLADHQ_M_S, VQDMLADHXQ_M_S, VQDMLSDHQ_M_S,
6548 VQDMLSDHXQ_M_S, VQDMULHQ_M_S, VQRDMLADHQ_M_S, VQRDMLADHXQ_M_S,
6549 VQRDMLSDHQ_M_S, VQRDMLSDHXQ_M_S, VQRDMULHQ_M_S.
6550 * config/arm/mve.md (@mve_<mve_insn>q_m_<supf><mode>): New.
6551 (mve_vshlq_m_<supf><mode>): Merged into
6552 @mve_<mve_insn>q_m_<supf><mode>.
6553 (mve_vabdq_m_<supf><mode>): Likewise.
6554 (mve_vhaddq_m_<supf><mode>): Likewise.
6555 (mve_vhsubq_m_<supf><mode>): Likewise.
6556 (mve_vmaxq_m_<supf><mode>): Likewise.
6557 (mve_vminq_m_<supf><mode>): Likewise.
6558 (mve_vmulhq_m_<supf><mode>): Likewise.
6559 (mve_vqaddq_m_<supf><mode>): Likewise.
6560 (mve_vqrshlq_m_<supf><mode>): Likewise.
6561 (mve_vqshlq_m_<supf><mode>): Likewise.
6562 (mve_vqsubq_m_<supf><mode>): Likewise.
6563 (mve_vrhaddq_m_<supf><mode>): Likewise.
6564 (mve_vrmulhq_m_<supf><mode>): Likewise.
6565 (mve_vrshlq_m_<supf><mode>): Likewise.
6566 (mve_vqdmladhq_m_s<mode>): Likewise.
6567 (mve_vqdmladhxq_m_s<mode>): Likewise.
6568 (mve_vqdmlsdhq_m_s<mode>): Likewise.
6569 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
6570 (mve_vqdmulhq_m_s<mode>): Likewise.
6571 (mve_vqrdmladhq_m_s<mode>): Likewise.
6572 (mve_vqrdmladhxq_m_s<mode>): Likewise.
6573 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
6574 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
6575 (mve_vqrdmulhq_m_s<mode>): Likewise.
6576
6577 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6578
6579 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_M_N): New. (vcreateq): New.
6580 * config/arm/arm-mve-builtins-base.def (vcreateq): New.
6581 * config/arm/arm-mve-builtins-base.h (vcreateq): New.
6582 * config/arm/arm_mve.h (vcreateq_f16): Remove.
6583 (vcreateq_f32): Remove.
6584 (vcreateq_u8): Remove.
6585 (vcreateq_u16): Remove.
6586 (vcreateq_u32): Remove.
6587 (vcreateq_u64): Remove.
6588 (vcreateq_s8): Remove.
6589 (vcreateq_s16): Remove.
6590 (vcreateq_s32): Remove.
6591 (vcreateq_s64): Remove.
6592 (__arm_vcreateq_u8): Remove.
6593 (__arm_vcreateq_u16): Remove.
6594 (__arm_vcreateq_u32): Remove.
6595 (__arm_vcreateq_u64): Remove.
6596 (__arm_vcreateq_s8): Remove.
6597 (__arm_vcreateq_s16): Remove.
6598 (__arm_vcreateq_s32): Remove.
6599 (__arm_vcreateq_s64): Remove.
6600 (__arm_vcreateq_f16): Remove.
6601 (__arm_vcreateq_f32): Remove.
6602
6603 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6604
6605 * config/arm/iterators.md (MVE_FP_CREATE_ONLY): New.
6606 (mve_insn): Add VCREATEQ_S, VCREATEQ_U, VCREATEQ_F.
6607 * config/arm/mve.md (mve_vcreateq_f<mode>): Rename into ...
6608 (@mve_<mve_insn>q_f<mode>): ... this.
6609 (mve_vcreateq_<supf><mode>): Rename into ...
6610 (@mve_<mve_insn>q_<supf><mode>): ... this.
6611
6612 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6613
6614 * config/arm/arm-mve-builtins-shapes.cc (create): New.
6615 * config/arm/arm-mve-builtins-shapes.h: (create): New.
6616
6617 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6618
6619 * config/arm/arm-mve-builtins-functions.h (class
6620 unspec_mve_function_exact_insn): New.
6621
6622 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6623
6624 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N_NO_N_F): New.
6625 (vorrq): New.
6626 * config/arm/arm-mve-builtins-base.def (vorrq): New.
6627 * config/arm/arm-mve-builtins-base.h (vorrq): New.
6628 * config/arm/arm-mve-builtins.cc
6629 (function_instance::has_inactive_argument): Handle vorrq.
6630 * config/arm/arm_mve.h (vorrq): Remove.
6631 (vorrq_m_n): Remove.
6632 (vorrq_m): Remove.
6633 (vorrq_x): Remove.
6634 (vorrq_u8): Remove.
6635 (vorrq_s8): Remove.
6636 (vorrq_u16): Remove.
6637 (vorrq_s16): Remove.
6638 (vorrq_u32): Remove.
6639 (vorrq_s32): Remove.
6640 (vorrq_n_u16): Remove.
6641 (vorrq_f16): Remove.
6642 (vorrq_n_s16): Remove.
6643 (vorrq_n_u32): Remove.
6644 (vorrq_f32): Remove.
6645 (vorrq_n_s32): Remove.
6646 (vorrq_m_n_s16): Remove.
6647 (vorrq_m_n_u16): Remove.
6648 (vorrq_m_n_s32): Remove.
6649 (vorrq_m_n_u32): Remove.
6650 (vorrq_m_s8): Remove.
6651 (vorrq_m_s32): Remove.
6652 (vorrq_m_s16): Remove.
6653 (vorrq_m_u8): Remove.
6654 (vorrq_m_u32): Remove.
6655 (vorrq_m_u16): Remove.
6656 (vorrq_m_f32): Remove.
6657 (vorrq_m_f16): Remove.
6658 (vorrq_x_s8): Remove.
6659 (vorrq_x_s16): Remove.
6660 (vorrq_x_s32): Remove.
6661 (vorrq_x_u8): Remove.
6662 (vorrq_x_u16): Remove.
6663 (vorrq_x_u32): Remove.
6664 (vorrq_x_f16): Remove.
6665 (vorrq_x_f32): Remove.
6666 (__arm_vorrq_u8): Remove.
6667 (__arm_vorrq_s8): Remove.
6668 (__arm_vorrq_u16): Remove.
6669 (__arm_vorrq_s16): Remove.
6670 (__arm_vorrq_u32): Remove.
6671 (__arm_vorrq_s32): Remove.
6672 (__arm_vorrq_n_u16): Remove.
6673 (__arm_vorrq_n_s16): Remove.
6674 (__arm_vorrq_n_u32): Remove.
6675 (__arm_vorrq_n_s32): Remove.
6676 (__arm_vorrq_m_n_s16): Remove.
6677 (__arm_vorrq_m_n_u16): Remove.
6678 (__arm_vorrq_m_n_s32): Remove.
6679 (__arm_vorrq_m_n_u32): Remove.
6680 (__arm_vorrq_m_s8): Remove.
6681 (__arm_vorrq_m_s32): Remove.
6682 (__arm_vorrq_m_s16): Remove.
6683 (__arm_vorrq_m_u8): Remove.
6684 (__arm_vorrq_m_u32): Remove.
6685 (__arm_vorrq_m_u16): Remove.
6686 (__arm_vorrq_x_s8): Remove.
6687 (__arm_vorrq_x_s16): Remove.
6688 (__arm_vorrq_x_s32): Remove.
6689 (__arm_vorrq_x_u8): Remove.
6690 (__arm_vorrq_x_u16): Remove.
6691 (__arm_vorrq_x_u32): Remove.
6692 (__arm_vorrq_f16): Remove.
6693 (__arm_vorrq_f32): Remove.
6694 (__arm_vorrq_m_f32): Remove.
6695 (__arm_vorrq_m_f16): Remove.
6696 (__arm_vorrq_x_f16): Remove.
6697 (__arm_vorrq_x_f32): Remove.
6698 (__arm_vorrq): Remove.
6699 (__arm_vorrq_m_n): Remove.
6700 (__arm_vorrq_m): Remove.
6701 (__arm_vorrq_x): Remove.
6702
6703 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6704
6705 * config/arm/arm-mve-builtins-shapes.cc (binary_orrq): New.
6706 * config/arm/arm-mve-builtins-shapes.h (binary_orrq): New.
6707 * config/arm/arm-mve-builtins.cc (preds_m_or_none): Remove static.
6708 * config/arm/arm-mve-builtins.h (preds_m_or_none): Declare.
6709
6710 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6711
6712 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M): New.
6713 (vandq,veorq): New.
6714 * config/arm/arm-mve-builtins-base.def (vandq, veorq): New.
6715 * config/arm/arm-mve-builtins-base.h (vandq, veorq): New.
6716 * config/arm/arm_mve.h (vandq): Remove.
6717 (vandq_m): Remove.
6718 (vandq_x): Remove.
6719 (vandq_u8): Remove.
6720 (vandq_s8): Remove.
6721 (vandq_u16): Remove.
6722 (vandq_s16): Remove.
6723 (vandq_u32): Remove.
6724 (vandq_s32): Remove.
6725 (vandq_f16): Remove.
6726 (vandq_f32): Remove.
6727 (vandq_m_s8): Remove.
6728 (vandq_m_s32): Remove.
6729 (vandq_m_s16): Remove.
6730 (vandq_m_u8): Remove.
6731 (vandq_m_u32): Remove.
6732 (vandq_m_u16): Remove.
6733 (vandq_m_f32): Remove.
6734 (vandq_m_f16): Remove.
6735 (vandq_x_s8): Remove.
6736 (vandq_x_s16): Remove.
6737 (vandq_x_s32): Remove.
6738 (vandq_x_u8): Remove.
6739 (vandq_x_u16): Remove.
6740 (vandq_x_u32): Remove.
6741 (vandq_x_f16): Remove.
6742 (vandq_x_f32): Remove.
6743 (__arm_vandq_u8): Remove.
6744 (__arm_vandq_s8): Remove.
6745 (__arm_vandq_u16): Remove.
6746 (__arm_vandq_s16): Remove.
6747 (__arm_vandq_u32): Remove.
6748 (__arm_vandq_s32): Remove.
6749 (__arm_vandq_m_s8): Remove.
6750 (__arm_vandq_m_s32): Remove.
6751 (__arm_vandq_m_s16): Remove.
6752 (__arm_vandq_m_u8): Remove.
6753 (__arm_vandq_m_u32): Remove.
6754 (__arm_vandq_m_u16): Remove.
6755 (__arm_vandq_x_s8): Remove.
6756 (__arm_vandq_x_s16): Remove.
6757 (__arm_vandq_x_s32): Remove.
6758 (__arm_vandq_x_u8): Remove.
6759 (__arm_vandq_x_u16): Remove.
6760 (__arm_vandq_x_u32): Remove.
6761 (__arm_vandq_f16): Remove.
6762 (__arm_vandq_f32): Remove.
6763 (__arm_vandq_m_f32): Remove.
6764 (__arm_vandq_m_f16): Remove.
6765 (__arm_vandq_x_f16): Remove.
6766 (__arm_vandq_x_f32): Remove.
6767 (__arm_vandq): Remove.
6768 (__arm_vandq_m): Remove.
6769 (__arm_vandq_x): Remove.
6770 (veorq_m): Remove.
6771 (veorq_x): Remove.
6772 (veorq_u8): Remove.
6773 (veorq_s8): Remove.
6774 (veorq_u16): Remove.
6775 (veorq_s16): Remove.
6776 (veorq_u32): Remove.
6777 (veorq_s32): Remove.
6778 (veorq_f16): Remove.
6779 (veorq_f32): Remove.
6780 (veorq_m_s8): Remove.
6781 (veorq_m_s32): Remove.
6782 (veorq_m_s16): Remove.
6783 (veorq_m_u8): Remove.
6784 (veorq_m_u32): Remove.
6785 (veorq_m_u16): Remove.
6786 (veorq_m_f32): Remove.
6787 (veorq_m_f16): Remove.
6788 (veorq_x_s8): Remove.
6789 (veorq_x_s16): Remove.
6790 (veorq_x_s32): Remove.
6791 (veorq_x_u8): Remove.
6792 (veorq_x_u16): Remove.
6793 (veorq_x_u32): Remove.
6794 (veorq_x_f16): Remove.
6795 (veorq_x_f32): Remove.
6796 (__arm_veorq_u8): Remove.
6797 (__arm_veorq_s8): Remove.
6798 (__arm_veorq_u16): Remove.
6799 (__arm_veorq_s16): Remove.
6800 (__arm_veorq_u32): Remove.
6801 (__arm_veorq_s32): Remove.
6802 (__arm_veorq_m_s8): Remove.
6803 (__arm_veorq_m_s32): Remove.
6804 (__arm_veorq_m_s16): Remove.
6805 (__arm_veorq_m_u8): Remove.
6806 (__arm_veorq_m_u32): Remove.
6807 (__arm_veorq_m_u16): Remove.
6808 (__arm_veorq_x_s8): Remove.
6809 (__arm_veorq_x_s16): Remove.
6810 (__arm_veorq_x_s32): Remove.
6811 (__arm_veorq_x_u8): Remove.
6812 (__arm_veorq_x_u16): Remove.
6813 (__arm_veorq_x_u32): Remove.
6814 (__arm_veorq_f16): Remove.
6815 (__arm_veorq_f32): Remove.
6816 (__arm_veorq_m_f32): Remove.
6817 (__arm_veorq_m_f16): Remove.
6818 (__arm_veorq_x_f16): Remove.
6819 (__arm_veorq_x_f32): Remove.
6820 (__arm_veorq): Remove.
6821 (__arm_veorq_m): Remove.
6822 (__arm_veorq_x): Remove.
6823
6824 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6825
6826 * config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC)
6827 (MVE_FP_M_BINARY_LOGIC): New.
6828 (MVE_INT_M_N_BINARY_LOGIC): New.
6829 (MVE_INT_N_BINARY_LOGIC): New.
6830 (mve_insn): Add vand, veor, vorr, vbic.
6831 * config/arm/mve.md (mve_vandq_m_<supf><mode>)
6832 (mve_veorq_m_<supf><mode>, mve_vorrq_m_<supf><mode>)
6833 (mve_vbicq_m_<supf><mode>): Merge into ...
6834 (@mve_<mve_insn>q_m_<supf><mode>): ... this.
6835 (mve_vandq_m_f<mode>, mve_veorq_m_f<mode>, mve_vorrq_m_f<mode>)
6836 (mve_vbicq_m_f<mode>): Merge into ...
6837 (@mve_<mve_insn>q_m_f<mode>): ... this.
6838 (mve_vorrq_n_<supf><mode>)
6839 (mve_vbicq_n_<supf><mode>): Merge into ...
6840 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
6841 (mve_vorrq_m_n_<supf><mode>, mve_vbicq_m_n_<supf><mode>): Merge
6842 into ...
6843 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
6844
6845 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6846
6847 * config/arm/arm-mve-builtins-shapes.cc (binary): New.
6848 * config/arm/arm-mve-builtins-shapes.h (binary): New.
6849
6850 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
6851
6852 * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N):
6853 New.
6854 (vaddq, vmulq, vsubq): New.
6855 * config/arm/arm-mve-builtins-base.def (vaddq, vmulq, vsubq): New.
6856 * config/arm/arm-mve-builtins-base.h (vaddq, vmulq, vsubq): New.
6857 * config/arm/arm_mve.h (vaddq): Remove.
6858 (vaddq_m): Remove.
6859 (vaddq_x): Remove.
6860 (vaddq_n_u8): Remove.
6861 (vaddq_n_s8): Remove.
6862 (vaddq_n_u16): Remove.
6863 (vaddq_n_s16): Remove.
6864 (vaddq_n_u32): Remove.
6865 (vaddq_n_s32): Remove.
6866 (vaddq_n_f16): Remove.
6867 (vaddq_n_f32): Remove.
6868 (vaddq_m_n_s8): Remove.
6869 (vaddq_m_n_s32): Remove.
6870 (vaddq_m_n_s16): Remove.
6871 (vaddq_m_n_u8): Remove.
6872 (vaddq_m_n_u32): Remove.
6873 (vaddq_m_n_u16): Remove.
6874 (vaddq_m_s8): Remove.
6875 (vaddq_m_s32): Remove.
6876 (vaddq_m_s16): Remove.
6877 (vaddq_m_u8): Remove.
6878 (vaddq_m_u32): Remove.
6879 (vaddq_m_u16): Remove.
6880 (vaddq_m_f32): Remove.
6881 (vaddq_m_f16): Remove.
6882 (vaddq_m_n_f32): Remove.
6883 (vaddq_m_n_f16): Remove.
6884 (vaddq_s8): Remove.
6885 (vaddq_s16): Remove.
6886 (vaddq_s32): Remove.
6887 (vaddq_u8): Remove.
6888 (vaddq_u16): Remove.
6889 (vaddq_u32): Remove.
6890 (vaddq_f16): Remove.
6891 (vaddq_f32): Remove.
6892 (vaddq_x_s8): Remove.
6893 (vaddq_x_s16): Remove.
6894 (vaddq_x_s32): Remove.
6895 (vaddq_x_n_s8): Remove.
6896 (vaddq_x_n_s16): Remove.
6897 (vaddq_x_n_s32): Remove.
6898 (vaddq_x_u8): Remove.
6899 (vaddq_x_u16): Remove.
6900 (vaddq_x_u32): Remove.
6901 (vaddq_x_n_u8): Remove.
6902 (vaddq_x_n_u16): Remove.
6903 (vaddq_x_n_u32): Remove.
6904 (vaddq_x_f16): Remove.
6905 (vaddq_x_f32): Remove.
6906 (vaddq_x_n_f16): Remove.
6907 (vaddq_x_n_f32): Remove.
6908 (__arm_vaddq_n_u8): Remove.
6909 (__arm_vaddq_n_s8): Remove.
6910 (__arm_vaddq_n_u16): Remove.
6911 (__arm_vaddq_n_s16): Remove.
6912 (__arm_vaddq_n_u32): Remove.
6913 (__arm_vaddq_n_s32): Remove.
6914 (__arm_vaddq_m_n_s8): Remove.
6915 (__arm_vaddq_m_n_s32): Remove.
6916 (__arm_vaddq_m_n_s16): Remove.
6917 (__arm_vaddq_m_n_u8): Remove.
6918 (__arm_vaddq_m_n_u32): Remove.
6919 (__arm_vaddq_m_n_u16): Remove.
6920 (__arm_vaddq_m_s8): Remove.
6921 (__arm_vaddq_m_s32): Remove.
6922 (__arm_vaddq_m_s16): Remove.
6923 (__arm_vaddq_m_u8): Remove.
6924 (__arm_vaddq_m_u32): Remove.
6925 (__arm_vaddq_m_u16): Remove.
6926 (__arm_vaddq_s8): Remove.
6927 (__arm_vaddq_s16): Remove.
6928 (__arm_vaddq_s32): Remove.
6929 (__arm_vaddq_u8): Remove.
6930 (__arm_vaddq_u16): Remove.
6931 (__arm_vaddq_u32): Remove.
6932 (__arm_vaddq_x_s8): Remove.
6933 (__arm_vaddq_x_s16): Remove.
6934 (__arm_vaddq_x_s32): Remove.
6935 (__arm_vaddq_x_n_s8): Remove.
6936 (__arm_vaddq_x_n_s16): Remove.
6937 (__arm_vaddq_x_n_s32): Remove.
6938 (__arm_vaddq_x_u8): Remove.
6939 (__arm_vaddq_x_u16): Remove.
6940 (__arm_vaddq_x_u32): Remove.
6941 (__arm_vaddq_x_n_u8): Remove.
6942 (__arm_vaddq_x_n_u16): Remove.
6943 (__arm_vaddq_x_n_u32): Remove.
6944 (__arm_vaddq_n_f16): Remove.
6945 (__arm_vaddq_n_f32): Remove.
6946 (__arm_vaddq_m_f32): Remove.
6947 (__arm_vaddq_m_f16): Remove.
6948 (__arm_vaddq_m_n_f32): Remove.
6949 (__arm_vaddq_m_n_f16): Remove.
6950 (__arm_vaddq_f16): Remove.
6951 (__arm_vaddq_f32): Remove.
6952 (__arm_vaddq_x_f16): Remove.
6953 (__arm_vaddq_x_f32): Remove.
6954 (__arm_vaddq_x_n_f16): Remove.
6955 (__arm_vaddq_x_n_f32): Remove.
6956 (__arm_vaddq): Remove.
6957 (__arm_vaddq_m): Remove.
6958 (__arm_vaddq_x): Remove.
6959 (vmulq): Remove.
6960 (vmulq_m): Remove.
6961 (vmulq_x): Remove.
6962 (vmulq_u8): Remove.
6963 (vmulq_n_u8): Remove.
6964 (vmulq_s8): Remove.
6965 (vmulq_n_s8): Remove.
6966 (vmulq_u16): Remove.
6967 (vmulq_n_u16): Remove.
6968 (vmulq_s16): Remove.
6969 (vmulq_n_s16): Remove.
6970 (vmulq_u32): Remove.
6971 (vmulq_n_u32): Remove.
6972 (vmulq_s32): Remove.
6973 (vmulq_n_s32): Remove.
6974 (vmulq_n_f16): Remove.
6975 (vmulq_f16): Remove.
6976 (vmulq_n_f32): Remove.
6977 (vmulq_f32): Remove.
6978 (vmulq_m_n_s8): Remove.
6979 (vmulq_m_n_s32): Remove.
6980 (vmulq_m_n_s16): Remove.
6981 (vmulq_m_n_u8): Remove.
6982 (vmulq_m_n_u32): Remove.
6983 (vmulq_m_n_u16): Remove.
6984 (vmulq_m_s8): Remove.
6985 (vmulq_m_s32): Remove.
6986 (vmulq_m_s16): Remove.
6987 (vmulq_m_u8): Remove.
6988 (vmulq_m_u32): Remove.
6989 (vmulq_m_u16): Remove.
6990 (vmulq_m_f32): Remove.
6991 (vmulq_m_f16): Remove.
6992 (vmulq_m_n_f32): Remove.
6993 (vmulq_m_n_f16): Remove.
6994 (vmulq_x_s8): Remove.
6995 (vmulq_x_s16): Remove.
6996 (vmulq_x_s32): Remove.
6997 (vmulq_x_n_s8): Remove.
6998 (vmulq_x_n_s16): Remove.
6999 (vmulq_x_n_s32): Remove.
7000 (vmulq_x_u8): Remove.
7001 (vmulq_x_u16): Remove.
7002 (vmulq_x_u32): Remove.
7003 (vmulq_x_n_u8): Remove.
7004 (vmulq_x_n_u16): Remove.
7005 (vmulq_x_n_u32): Remove.
7006 (vmulq_x_f16): Remove.
7007 (vmulq_x_f32): Remove.
7008 (vmulq_x_n_f16): Remove.
7009 (vmulq_x_n_f32): Remove.
7010 (__arm_vmulq_u8): Remove.
7011 (__arm_vmulq_n_u8): Remove.
7012 (__arm_vmulq_s8): Remove.
7013 (__arm_vmulq_n_s8): Remove.
7014 (__arm_vmulq_u16): Remove.
7015 (__arm_vmulq_n_u16): Remove.
7016 (__arm_vmulq_s16): Remove.
7017 (__arm_vmulq_n_s16): Remove.
7018 (__arm_vmulq_u32): Remove.
7019 (__arm_vmulq_n_u32): Remove.
7020 (__arm_vmulq_s32): Remove.
7021 (__arm_vmulq_n_s32): Remove.
7022 (__arm_vmulq_m_n_s8): Remove.
7023 (__arm_vmulq_m_n_s32): Remove.
7024 (__arm_vmulq_m_n_s16): Remove.
7025 (__arm_vmulq_m_n_u8): Remove.
7026 (__arm_vmulq_m_n_u32): Remove.
7027 (__arm_vmulq_m_n_u16): Remove.
7028 (__arm_vmulq_m_s8): Remove.
7029 (__arm_vmulq_m_s32): Remove.
7030 (__arm_vmulq_m_s16): Remove.
7031 (__arm_vmulq_m_u8): Remove.
7032 (__arm_vmulq_m_u32): Remove.
7033 (__arm_vmulq_m_u16): Remove.
7034 (__arm_vmulq_x_s8): Remove.
7035 (__arm_vmulq_x_s16): Remove.
7036 (__arm_vmulq_x_s32): Remove.
7037 (__arm_vmulq_x_n_s8): Remove.
7038 (__arm_vmulq_x_n_s16): Remove.
7039 (__arm_vmulq_x_n_s32): Remove.
7040 (__arm_vmulq_x_u8): Remove.
7041 (__arm_vmulq_x_u16): Remove.
7042 (__arm_vmulq_x_u32): Remove.
7043 (__arm_vmulq_x_n_u8): Remove.
7044 (__arm_vmulq_x_n_u16): Remove.
7045 (__arm_vmulq_x_n_u32): Remove.
7046 (__arm_vmulq_n_f16): Remove.
7047 (__arm_vmulq_f16): Remove.
7048 (__arm_vmulq_n_f32): Remove.
7049 (__arm_vmulq_f32): Remove.
7050 (__arm_vmulq_m_f32): Remove.
7051 (__arm_vmulq_m_f16): Remove.
7052 (__arm_vmulq_m_n_f32): Remove.
7053 (__arm_vmulq_m_n_f16): Remove.
7054 (__arm_vmulq_x_f16): Remove.
7055 (__arm_vmulq_x_f32): Remove.
7056 (__arm_vmulq_x_n_f16): Remove.
7057 (__arm_vmulq_x_n_f32): Remove.
7058 (__arm_vmulq): Remove.
7059 (__arm_vmulq_m): Remove.
7060 (__arm_vmulq_x): Remove.
7061 (vsubq): Remove.
7062 (vsubq_m): Remove.
7063 (vsubq_x): Remove.
7064 (vsubq_n_f16): Remove.
7065 (vsubq_n_f32): Remove.
7066 (vsubq_u8): Remove.
7067 (vsubq_n_u8): Remove.
7068 (vsubq_s8): Remove.
7069 (vsubq_n_s8): Remove.
7070 (vsubq_u16): Remove.
7071 (vsubq_n_u16): Remove.
7072 (vsubq_s16): Remove.
7073 (vsubq_n_s16): Remove.
7074 (vsubq_u32): Remove.
7075 (vsubq_n_u32): Remove.
7076 (vsubq_s32): Remove.
7077 (vsubq_n_s32): Remove.
7078 (vsubq_f16): Remove.
7079 (vsubq_f32): Remove.
7080 (vsubq_m_s8): Remove.
7081 (vsubq_m_u8): Remove.
7082 (vsubq_m_s16): Remove.
7083 (vsubq_m_u16): Remove.
7084 (vsubq_m_s32): Remove.
7085 (vsubq_m_u32): Remove.
7086 (vsubq_m_n_s8): Remove.
7087 (vsubq_m_n_s32): Remove.
7088 (vsubq_m_n_s16): Remove.
7089 (vsubq_m_n_u8): Remove.
7090 (vsubq_m_n_u32): Remove.
7091 (vsubq_m_n_u16): Remove.
7092 (vsubq_m_f32): Remove.
7093 (vsubq_m_f16): Remove.
7094 (vsubq_m_n_f32): Remove.
7095 (vsubq_m_n_f16): Remove.
7096 (vsubq_x_s8): Remove.
7097 (vsubq_x_s16): Remove.
7098 (vsubq_x_s32): Remove.
7099 (vsubq_x_n_s8): Remove.
7100 (vsubq_x_n_s16): Remove.
7101 (vsubq_x_n_s32): Remove.
7102 (vsubq_x_u8): Remove.
7103 (vsubq_x_u16): Remove.
7104 (vsubq_x_u32): Remove.
7105 (vsubq_x_n_u8): Remove.
7106 (vsubq_x_n_u16): Remove.
7107 (vsubq_x_n_u32): Remove.
7108 (vsubq_x_f16): Remove.
7109 (vsubq_x_f32): Remove.
7110 (vsubq_x_n_f16): Remove.
7111 (vsubq_x_n_f32): Remove.
7112 (__arm_vsubq_u8): Remove.
7113 (__arm_vsubq_n_u8): Remove.
7114 (__arm_vsubq_s8): Remove.
7115 (__arm_vsubq_n_s8): Remove.
7116 (__arm_vsubq_u16): Remove.
7117 (__arm_vsubq_n_u16): Remove.
7118 (__arm_vsubq_s16): Remove.
7119 (__arm_vsubq_n_s16): Remove.
7120 (__arm_vsubq_u32): Remove.
7121 (__arm_vsubq_n_u32): Remove.
7122 (__arm_vsubq_s32): Remove.
7123 (__arm_vsubq_n_s32): Remove.
7124 (__arm_vsubq_m_s8): Remove.
7125 (__arm_vsubq_m_u8): Remove.
7126 (__arm_vsubq_m_s16): Remove.
7127 (__arm_vsubq_m_u16): Remove.
7128 (__arm_vsubq_m_s32): Remove.
7129 (__arm_vsubq_m_u32): Remove.
7130 (__arm_vsubq_m_n_s8): Remove.
7131 (__arm_vsubq_m_n_s32): Remove.
7132 (__arm_vsubq_m_n_s16): Remove.
7133 (__arm_vsubq_m_n_u8): Remove.
7134 (__arm_vsubq_m_n_u32): Remove.
7135 (__arm_vsubq_m_n_u16): Remove.
7136 (__arm_vsubq_x_s8): Remove.
7137 (__arm_vsubq_x_s16): Remove.
7138 (__arm_vsubq_x_s32): Remove.
7139 (__arm_vsubq_x_n_s8): Remove.
7140 (__arm_vsubq_x_n_s16): Remove.
7141 (__arm_vsubq_x_n_s32): Remove.
7142 (__arm_vsubq_x_u8): Remove.
7143 (__arm_vsubq_x_u16): Remove.
7144 (__arm_vsubq_x_u32): Remove.
7145 (__arm_vsubq_x_n_u8): Remove.
7146 (__arm_vsubq_x_n_u16): Remove.
7147 (__arm_vsubq_x_n_u32): Remove.
7148 (__arm_vsubq_n_f16): Remove.
7149 (__arm_vsubq_n_f32): Remove.
7150 (__arm_vsubq_f16): Remove.
7151 (__arm_vsubq_f32): Remove.
7152 (__arm_vsubq_m_f32): Remove.
7153 (__arm_vsubq_m_f16): Remove.
7154 (__arm_vsubq_m_n_f32): Remove.
7155 (__arm_vsubq_m_n_f16): Remove.
7156 (__arm_vsubq_x_f16): Remove.
7157 (__arm_vsubq_x_f32): Remove.
7158 (__arm_vsubq_x_n_f16): Remove.
7159 (__arm_vsubq_x_n_f32): Remove.
7160 (__arm_vsubq): Remove.
7161 (__arm_vsubq_m): Remove.
7162 (__arm_vsubq_x): Remove.
7163 * config/arm/arm_mve_builtins.def (vsubq_u, vsubq_s, vsubq_f):
7164 Remove.
7165 (vmulq_u, vmulq_s, vmulq_f): Remove.
7166 * config/arm/mve.md (mve_vsubq_<supf><mode>): Remove.
7167 (mve_vmulq_<supf><mode>): Remove.
7168
7169 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
7170
7171 * config/arm/iterators.md (MVE_INT_BINARY_RTX, MVE_INT_M_BINARY)
7172 (MVE_INT_M_N_BINARY, MVE_INT_N_BINARY, MVE_FP_M_BINARY)
7173 (MVE_FP_M_N_BINARY, MVE_FP_N_BINARY, mve_addsubmul, mve_insn): New
7174 iterators.
7175 * config/arm/mve.md
7176 (mve_vsubq_n_f<mode>, mve_vaddq_n_f<mode>, mve_vmulq_n_f<mode>):
7177 Factorize into ...
7178 (@mve_<mve_insn>q_n_f<mode>): ... this.
7179 (mve_vaddq_n_<supf><mode>, mve_vmulq_n_<supf><mode>)
7180 (mve_vsubq_n_<supf><mode>): Factorize into ...
7181 (@mve_<mve_insn>q_n_<supf><mode>): ... this.
7182 (mve_vaddq<mode>, mve_vmulq<mode>, mve_vsubq<mode>): Factorize
7183 into ...
7184 (mve_<mve_addsubmul>q<mode>): ... this.
7185 (mve_vaddq_f<mode>, mve_vmulq_f<mode>, mve_vsubq_f<mode>):
7186 Factorize into ...
7187 (mve_<mve_addsubmul>q_f<mode>): ... this.
7188 (mve_vaddq_m_<supf><mode>, mve_vmulq_m_<supf><mode>)
7189 (mve_vsubq_m_<supf><mode>): Factorize into ...
7190 (@mve_<mve_insn>q_m_<supf><mode>): ... this,
7191 (mve_vaddq_m_n_<supf><mode>, mve_vmulq_m_n_<supf><mode>)
7192 (mve_vsubq_m_n_<supf><mode>): Factorize into ...
7193 (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
7194 (mve_vaddq_m_f<mode>, mve_vmulq_m_f<mode>, mve_vsubq_m_f<mode>):
7195 Factorize into ...
7196 (@mve_<mve_insn>q_m_f<mode>): ... this.
7197 (mve_vaddq_m_n_f<mode>, mve_vmulq_m_n_f<mode>)
7198 (mve_vsubq_m_n_f<mode>): Factorize into ...
7199 (@mve_<mve_insn>q_m_n_f<mode>): ... this.
7200
7201 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
7202
7203 * config/arm/arm-mve-builtins-functions.h (class
7204 unspec_based_mve_function_base): New.
7205 (class unspec_based_mve_function_exact_insn): New.
7206
7207 2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
7208
7209 * config/arm/arm-mve-builtins-shapes.cc (binary_opt_n): New.
7210 * config/arm/arm-mve-builtins-shapes.h (binary_opt_n): New.
7211
7212 2023-05-03 Murray Steele <murray.steele@arm.com>
7213 Christophe Lyon <christophe.lyon@arm.com>
7214
7215 * config/arm/arm-mve-builtins-base.cc (class
7216 vuninitializedq_impl): New.
7217 * config/arm/arm-mve-builtins-base.def (vuninitializedq): New.
7218 * config/arm/arm-mve-builtins-base.h (vuninitializedq): New
7219 declaration.
7220 * config/arm/arm-mve-builtins-shapes.cc (inherent): New.
7221 * config/arm/arm-mve-builtins-shapes.h (inherent): New
7222 declaration.
7223 * config/arm/arm_mve_types.h (__arm_vuninitializedq): Move to ...
7224 * config/arm/arm_mve.h (__arm_vuninitializedq): ... here.
7225 (__arm_vuninitializedq_u8): Remove.
7226 (__arm_vuninitializedq_u16): Remove.
7227 (__arm_vuninitializedq_u32): Remove.
7228 (__arm_vuninitializedq_u64): Remove.
7229 (__arm_vuninitializedq_s8): Remove.
7230 (__arm_vuninitializedq_s16): Remove.
7231 (__arm_vuninitializedq_s32): Remove.
7232 (__arm_vuninitializedq_s64): Remove.
7233 (__arm_vuninitializedq_f16): Remove.
7234 (__arm_vuninitializedq_f32): Remove.
7235
7236 2023-05-03 Murray Steele <murray.steele@arm.com>
7237 Christophe Lyon <christophe.lyon@arm.com>
7238
7239 * config/arm/arm-mve-builtins-base.cc (vreinterpretq_impl): New class.
7240 * config/arm/arm-mve-builtins-base.def: Define vreinterpretq.
7241 * config/arm/arm-mve-builtins-base.h (vreinterpretq): New declaration.
7242 * config/arm/arm-mve-builtins-shapes.cc (parse_element_type): New function.
7243 (parse_type): Likewise.
7244 (parse_signature): Likewise.
7245 (build_one): Likewise.
7246 (build_all): Likewise.
7247 (overloaded_base): New struct.
7248 (unary_convert_def): Likewise.
7249 * config/arm/arm-mve-builtins-shapes.h (unary_convert): Declare.
7250 * config/arm/arm-mve-builtins.cc (TYPES_reinterpret_signed1): New
7251 macro.
7252 (TYPES_reinterpret_unsigned1): Likewise.
7253 (TYPES_reinterpret_integer): Likewise.
7254 (TYPES_reinterpret_integer1): Likewise.
7255 (TYPES_reinterpret_float1): Likewise.
7256 (TYPES_reinterpret_float): Likewise.
7257 (reinterpret_integer): New.
7258 (reinterpret_float): New.
7259 (handle_arm_mve_h): Register builtins.
7260 * config/arm/arm_mve.h (vreinterpretq_s16): Remove.
7261 (vreinterpretq_s32): Likewise.
7262 (vreinterpretq_s64): Likewise.
7263 (vreinterpretq_s8): Likewise.
7264 (vreinterpretq_u16): Likewise.
7265 (vreinterpretq_u32): Likewise.
7266 (vreinterpretq_u64): Likewise.
7267 (vreinterpretq_u8): Likewise.
7268 (vreinterpretq_f16): Likewise.
7269 (vreinterpretq_f32): Likewise.
7270 (vreinterpretq_s16_s32): Likewise.
7271 (vreinterpretq_s16_s64): Likewise.
7272 (vreinterpretq_s16_s8): Likewise.
7273 (vreinterpretq_s16_u16): Likewise.
7274 (vreinterpretq_s16_u32): Likewise.
7275 (vreinterpretq_s16_u64): Likewise.
7276 (vreinterpretq_s16_u8): Likewise.
7277 (vreinterpretq_s32_s16): Likewise.
7278 (vreinterpretq_s32_s64): Likewise.
7279 (vreinterpretq_s32_s8): Likewise.
7280 (vreinterpretq_s32_u16): Likewise.
7281 (vreinterpretq_s32_u32): Likewise.
7282 (vreinterpretq_s32_u64): Likewise.
7283 (vreinterpretq_s32_u8): Likewise.
7284 (vreinterpretq_s64_s16): Likewise.
7285 (vreinterpretq_s64_s32): Likewise.
7286 (vreinterpretq_s64_s8): Likewise.
7287 (vreinterpretq_s64_u16): Likewise.
7288 (vreinterpretq_s64_u32): Likewise.
7289 (vreinterpretq_s64_u64): Likewise.
7290 (vreinterpretq_s64_u8): Likewise.
7291 (vreinterpretq_s8_s16): Likewise.
7292 (vreinterpretq_s8_s32): Likewise.
7293 (vreinterpretq_s8_s64): Likewise.
7294 (vreinterpretq_s8_u16): Likewise.
7295 (vreinterpretq_s8_u32): Likewise.
7296 (vreinterpretq_s8_u64): Likewise.
7297 (vreinterpretq_s8_u8): Likewise.
7298 (vreinterpretq_u16_s16): Likewise.
7299 (vreinterpretq_u16_s32): Likewise.
7300 (vreinterpretq_u16_s64): Likewise.
7301 (vreinterpretq_u16_s8): Likewise.
7302 (vreinterpretq_u16_u32): Likewise.
7303 (vreinterpretq_u16_u64): Likewise.
7304 (vreinterpretq_u16_u8): Likewise.
7305 (vreinterpretq_u32_s16): Likewise.
7306 (vreinterpretq_u32_s32): Likewise.
7307 (vreinterpretq_u32_s64): Likewise.
7308 (vreinterpretq_u32_s8): Likewise.
7309 (vreinterpretq_u32_u16): Likewise.
7310 (vreinterpretq_u32_u64): Likewise.
7311 (vreinterpretq_u32_u8): Likewise.
7312 (vreinterpretq_u64_s16): Likewise.
7313 (vreinterpretq_u64_s32): Likewise.
7314 (vreinterpretq_u64_s64): Likewise.
7315 (vreinterpretq_u64_s8): Likewise.
7316 (vreinterpretq_u64_u16): Likewise.
7317 (vreinterpretq_u64_u32): Likewise.
7318 (vreinterpretq_u64_u8): Likewise.
7319 (vreinterpretq_u8_s16): Likewise.
7320 (vreinterpretq_u8_s32): Likewise.
7321 (vreinterpretq_u8_s64): Likewise.
7322 (vreinterpretq_u8_s8): Likewise.
7323 (vreinterpretq_u8_u16): Likewise.
7324 (vreinterpretq_u8_u32): Likewise.
7325 (vreinterpretq_u8_u64): Likewise.
7326 (vreinterpretq_s32_f16): Likewise.
7327 (vreinterpretq_s32_f32): Likewise.
7328 (vreinterpretq_u16_f16): Likewise.
7329 (vreinterpretq_u16_f32): Likewise.
7330 (vreinterpretq_u32_f16): Likewise.
7331 (vreinterpretq_u32_f32): Likewise.
7332 (vreinterpretq_u64_f16): Likewise.
7333 (vreinterpretq_u64_f32): Likewise.
7334 (vreinterpretq_u8_f16): Likewise.
7335 (vreinterpretq_u8_f32): Likewise.
7336 (vreinterpretq_f16_f32): Likewise.
7337 (vreinterpretq_f16_s16): Likewise.
7338 (vreinterpretq_f16_s32): Likewise.
7339 (vreinterpretq_f16_s64): Likewise.
7340 (vreinterpretq_f16_s8): Likewise.
7341 (vreinterpretq_f16_u16): Likewise.
7342 (vreinterpretq_f16_u32): Likewise.
7343 (vreinterpretq_f16_u64): Likewise.
7344 (vreinterpretq_f16_u8): Likewise.
7345 (vreinterpretq_f32_f16): Likewise.
7346 (vreinterpretq_f32_s16): Likewise.
7347 (vreinterpretq_f32_s32): Likewise.
7348 (vreinterpretq_f32_s64): Likewise.
7349 (vreinterpretq_f32_s8): Likewise.
7350 (vreinterpretq_f32_u16): Likewise.
7351 (vreinterpretq_f32_u32): Likewise.
7352 (vreinterpretq_f32_u64): Likewise.
7353 (vreinterpretq_f32_u8): Likewise.
7354 (vreinterpretq_s16_f16): Likewise.
7355 (vreinterpretq_s16_f32): Likewise.
7356 (vreinterpretq_s64_f16): Likewise.
7357 (vreinterpretq_s64_f32): Likewise.
7358 (vreinterpretq_s8_f16): Likewise.
7359 (vreinterpretq_s8_f32): Likewise.
7360 (__arm_vreinterpretq_f16): Likewise.
7361 (__arm_vreinterpretq_f32): Likewise.
7362 (__arm_vreinterpretq_s16): Likewise.
7363 (__arm_vreinterpretq_s32): Likewise.
7364 (__arm_vreinterpretq_s64): Likewise.
7365 (__arm_vreinterpretq_s8): Likewise.
7366 (__arm_vreinterpretq_u16): Likewise.
7367 (__arm_vreinterpretq_u32): Likewise.
7368 (__arm_vreinterpretq_u64): Likewise.
7369 (__arm_vreinterpretq_u8): Likewise.
7370 * config/arm/arm_mve_types.h (__arm_vreinterpretq_s16_s32): Remove.
7371 (__arm_vreinterpretq_s16_s64): Likewise.
7372 (__arm_vreinterpretq_s16_s8): Likewise.
7373 (__arm_vreinterpretq_s16_u16): Likewise.
7374 (__arm_vreinterpretq_s16_u32): Likewise.
7375 (__arm_vreinterpretq_s16_u64): Likewise.
7376 (__arm_vreinterpretq_s16_u8): Likewise.
7377 (__arm_vreinterpretq_s32_s16): Likewise.
7378 (__arm_vreinterpretq_s32_s64): Likewise.
7379 (__arm_vreinterpretq_s32_s8): Likewise.
7380 (__arm_vreinterpretq_s32_u16): Likewise.
7381 (__arm_vreinterpretq_s32_u32): Likewise.
7382 (__arm_vreinterpretq_s32_u64): Likewise.
7383 (__arm_vreinterpretq_s32_u8): Likewise.
7384 (__arm_vreinterpretq_s64_s16): Likewise.
7385 (__arm_vreinterpretq_s64_s32): Likewise.
7386 (__arm_vreinterpretq_s64_s8): Likewise.
7387 (__arm_vreinterpretq_s64_u16): Likewise.
7388 (__arm_vreinterpretq_s64_u32): Likewise.
7389 (__arm_vreinterpretq_s64_u64): Likewise.
7390 (__arm_vreinterpretq_s64_u8): Likewise.
7391 (__arm_vreinterpretq_s8_s16): Likewise.
7392 (__arm_vreinterpretq_s8_s32): Likewise.
7393 (__arm_vreinterpretq_s8_s64): Likewise.
7394 (__arm_vreinterpretq_s8_u16): Likewise.
7395 (__arm_vreinterpretq_s8_u32): Likewise.
7396 (__arm_vreinterpretq_s8_u64): Likewise.
7397 (__arm_vreinterpretq_s8_u8): Likewise.
7398 (__arm_vreinterpretq_u16_s16): Likewise.
7399 (__arm_vreinterpretq_u16_s32): Likewise.
7400 (__arm_vreinterpretq_u16_s64): Likewise.
7401 (__arm_vreinterpretq_u16_s8): Likewise.
7402 (__arm_vreinterpretq_u16_u32): Likewise.
7403 (__arm_vreinterpretq_u16_u64): Likewise.
7404 (__arm_vreinterpretq_u16_u8): Likewise.
7405 (__arm_vreinterpretq_u32_s16): Likewise.
7406 (__arm_vreinterpretq_u32_s32): Likewise.
7407 (__arm_vreinterpretq_u32_s64): Likewise.
7408 (__arm_vreinterpretq_u32_s8): Likewise.
7409 (__arm_vreinterpretq_u32_u16): Likewise.
7410 (__arm_vreinterpretq_u32_u64): Likewise.
7411 (__arm_vreinterpretq_u32_u8): Likewise.
7412 (__arm_vreinterpretq_u64_s16): Likewise.
7413 (__arm_vreinterpretq_u64_s32): Likewise.
7414 (__arm_vreinterpretq_u64_s64): Likewise.
7415 (__arm_vreinterpretq_u64_s8): Likewise.
7416 (__arm_vreinterpretq_u64_u16): Likewise.
7417 (__arm_vreinterpretq_u64_u32): Likewise.
7418 (__arm_vreinterpretq_u64_u8): Likewise.
7419 (__arm_vreinterpretq_u8_s16): Likewise.
7420 (__arm_vreinterpretq_u8_s32): Likewise.
7421 (__arm_vreinterpretq_u8_s64): Likewise.
7422 (__arm_vreinterpretq_u8_s8): Likewise.
7423 (__arm_vreinterpretq_u8_u16): Likewise.
7424 (__arm_vreinterpretq_u8_u32): Likewise.
7425 (__arm_vreinterpretq_u8_u64): Likewise.
7426 (__arm_vreinterpretq_s32_f16): Likewise.
7427 (__arm_vreinterpretq_s32_f32): Likewise.
7428 (__arm_vreinterpretq_s16_f16): Likewise.
7429 (__arm_vreinterpretq_s16_f32): Likewise.
7430 (__arm_vreinterpretq_s64_f16): Likewise.
7431 (__arm_vreinterpretq_s64_f32): Likewise.
7432 (__arm_vreinterpretq_s8_f16): Likewise.
7433 (__arm_vreinterpretq_s8_f32): Likewise.
7434 (__arm_vreinterpretq_u16_f16): Likewise.
7435 (__arm_vreinterpretq_u16_f32): Likewise.
7436 (__arm_vreinterpretq_u32_f16): Likewise.
7437 (__arm_vreinterpretq_u32_f32): Likewise.
7438 (__arm_vreinterpretq_u64_f16): Likewise.
7439 (__arm_vreinterpretq_u64_f32): Likewise.
7440 (__arm_vreinterpretq_u8_f16): Likewise.
7441 (__arm_vreinterpretq_u8_f32): Likewise.
7442 (__arm_vreinterpretq_f16_f32): Likewise.
7443 (__arm_vreinterpretq_f16_s16): Likewise.
7444 (__arm_vreinterpretq_f16_s32): Likewise.
7445 (__arm_vreinterpretq_f16_s64): Likewise.
7446 (__arm_vreinterpretq_f16_s8): Likewise.
7447 (__arm_vreinterpretq_f16_u16): Likewise.
7448 (__arm_vreinterpretq_f16_u32): Likewise.
7449 (__arm_vreinterpretq_f16_u64): Likewise.
7450 (__arm_vreinterpretq_f16_u8): Likewise.
7451 (__arm_vreinterpretq_f32_f16): Likewise.
7452 (__arm_vreinterpretq_f32_s16): Likewise.
7453 (__arm_vreinterpretq_f32_s32): Likewise.
7454 (__arm_vreinterpretq_f32_s64): Likewise.
7455 (__arm_vreinterpretq_f32_s8): Likewise.
7456 (__arm_vreinterpretq_f32_u16): Likewise.
7457 (__arm_vreinterpretq_f32_u32): Likewise.
7458 (__arm_vreinterpretq_f32_u64): Likewise.
7459 (__arm_vreinterpretq_f32_u8): Likewise.
7460 (__arm_vreinterpretq_s16): Likewise.
7461 (__arm_vreinterpretq_s32): Likewise.
7462 (__arm_vreinterpretq_s64): Likewise.
7463 (__arm_vreinterpretq_s8): Likewise.
7464 (__arm_vreinterpretq_u16): Likewise.
7465 (__arm_vreinterpretq_u32): Likewise.
7466 (__arm_vreinterpretq_u64): Likewise.
7467 (__arm_vreinterpretq_u8): Likewise.
7468 (__arm_vreinterpretq_f16): Likewise.
7469 (__arm_vreinterpretq_f32): Likewise.
7470 * config/arm/mve.md (@arm_mve_reinterpret<mode>): New pattern.
7471 * config/arm/unspecs.md: (REINTERPRET): New unspec.
7472
7473 2023-05-03 Murray Steele <murray.steele@arm.com>
7474 Christophe Lyon <christophe.lyon@arm.com>
7475 Christophe Lyon <christophe.lyon@arm.com
7476
7477 * config.gcc: Add arm-mve-builtins-base.o and
7478 arm-mve-builtins-shapes.o to extra_objs.
7479 * config/arm/arm-builtins.cc (arm_builtin_decl): Handle MVE builtin
7480 numberspace.
7481 (arm_expand_builtin): Likewise
7482 (arm_check_builtin_call): Likewise
7483 (arm_describe_resolver): Likewise.
7484 * config/arm/arm-builtins.h (enum resolver_ident): Add
7485 arm_mve_resolver.
7486 * config/arm/arm-c.cc (arm_pragma_arm): Handle new pragma.
7487 (arm_resolve_overloaded_builtin): Handle MVE builtins.
7488 (arm_register_target_pragmas): Register arm_check_builtin_call.
7489 * config/arm/arm-mve-builtins.cc (class registered_function): New
7490 class.
7491 (struct registered_function_hasher): New struct.
7492 (pred_suffixes): New table.
7493 (mode_suffixes): New table.
7494 (type_suffix_info): New table.
7495 (TYPES_float16): New.
7496 (TYPES_all_float): New.
7497 (TYPES_integer_8): New.
7498 (TYPES_integer_8_16): New.
7499 (TYPES_integer_16_32): New.
7500 (TYPES_integer_32): New.
7501 (TYPES_signed_16_32): New.
7502 (TYPES_signed_32): New.
7503 (TYPES_all_signed): New.
7504 (TYPES_all_unsigned): New.
7505 (TYPES_all_integer): New.
7506 (TYPES_all_integer_with_64): New.
7507 (DEF_VECTOR_TYPE): New.
7508 (DEF_DOUBLE_TYPE): New.
7509 (DEF_MVE_TYPES_ARRAY): New.
7510 (all_integer): New.
7511 (all_integer_with_64): New.
7512 (float16): New.
7513 (all_float): New.
7514 (all_signed): New.
7515 (all_unsigned): New.
7516 (integer_8): New.
7517 (integer_8_16): New.
7518 (integer_16_32): New.
7519 (integer_32): New.
7520 (signed_16_32): New.
7521 (signed_32): New.
7522 (register_vector_type): Use void_type_node for mve.fp-only types when
7523 mve.fp is not enabled.
7524 (register_builtin_tuple_types): Likewise.
7525 (handle_arm_mve_h): New function..
7526 (matches_type_p): Likewise..
7527 (report_out_of_range): Likewise.
7528 (report_not_enum): Likewise.
7529 (report_missing_float): Likewise.
7530 (report_non_ice): Likewise.
7531 (check_requires_float): Likewise.
7532 (function_instance::hash): Likewise
7533 (function_instance::call_properties): Likewise.
7534 (function_instance::reads_global_state_p): Likewise.
7535 (function_instance::modifies_global_state_p): Likewise.
7536 (function_instance::could_trap_p): Likewise.
7537 (function_instance::has_inactive_argument): Likewise.
7538 (registered_function_hasher::hash): Likewise.
7539 (registered_function_hasher::equal): Likewise.
7540 (function_builder::function_builder): Likewise.
7541 (function_builder::~function_builder): Likewise.
7542 (function_builder::append_name): Likewise.
7543 (function_builder::finish_name): Likewise.
7544 (function_builder::get_name): Likewise.
7545 (add_attribute): Likewise.
7546 (function_builder::get_attributes): Likewise.
7547 (function_builder::add_function): Likewise.
7548 (function_builder::add_unique_function): Likewise.
7549 (function_builder::add_overloaded_function): Likewise.
7550 (function_builder::add_overloaded_functions): Likewise.
7551 (function_builder::register_function_group): Likewise.
7552 (function_call_info::function_call_info): Likewise.
7553 (function_resolver::function_resolver): Likewise.
7554 (function_resolver::get_vector_type): Likewise.
7555 (function_resolver::get_scalar_type_name): Likewise.
7556 (function_resolver::get_argument_type): Likewise.
7557 (function_resolver::scalar_argument_p): Likewise.
7558 (function_resolver::report_no_such_form): Likewise.
7559 (function_resolver::lookup_form): Likewise.
7560 (function_resolver::resolve_to): Likewise.
7561 (function_resolver::infer_vector_or_tuple_type): Likewise.
7562 (function_resolver::infer_vector_type): Likewise.
7563 (function_resolver::require_vector_or_scalar_type): Likewise.
7564 (function_resolver::require_vector_type): Likewise.
7565 (function_resolver::require_matching_vector_type): Likewise.
7566 (function_resolver::require_derived_vector_type): Likewise.
7567 (function_resolver::require_derived_scalar_type): Likewise.
7568 (function_resolver::require_integer_immediate): Likewise.
7569 (function_resolver::require_scalar_type): Likewise.
7570 (function_resolver::check_num_arguments): Likewise.
7571 (function_resolver::check_gp_argument): Likewise.
7572 (function_resolver::finish_opt_n_resolution): Likewise.
7573 (function_resolver::resolve_unary): Likewise.
7574 (function_resolver::resolve_unary_n): Likewise.
7575 (function_resolver::resolve_uniform): Likewise.
7576 (function_resolver::resolve_uniform_opt_n): Likewise.
7577 (function_resolver::resolve): Likewise.
7578 (function_checker::function_checker): Likewise.
7579 (function_checker::argument_exists_p): Likewise.
7580 (function_checker::require_immediate): Likewise.
7581 (function_checker::require_immediate_enum): Likewise.
7582 (function_checker::require_immediate_range): Likewise.
7583 (function_checker::check): Likewise.
7584 (gimple_folder::gimple_folder): Likewise.
7585 (gimple_folder::fold): Likewise.
7586 (function_expander::function_expander): Likewise.
7587 (function_expander::direct_optab_handler): Likewise.
7588 (function_expander::get_fallback_value): Likewise.
7589 (function_expander::get_reg_target): Likewise.
7590 (function_expander::add_output_operand): Likewise.
7591 (function_expander::add_input_operand): Likewise.
7592 (function_expander::add_integer_operand): Likewise.
7593 (function_expander::generate_insn): Likewise.
7594 (function_expander::use_exact_insn): Likewise.
7595 (function_expander::use_unpred_insn): Likewise.
7596 (function_expander::use_pred_x_insn): Likewise.
7597 (function_expander::use_cond_insn): Likewise.
7598 (function_expander::map_to_rtx_codes): Likewise.
7599 (function_expander::expand): Likewise.
7600 (resolve_overloaded_builtin): Likewise.
7601 (check_builtin_call): Likewise.
7602 (gimple_fold_builtin): Likewise.
7603 (expand_builtin): Likewise.
7604 (gt_ggc_mx): Likewise.
7605 (gt_pch_nx): Likewise.
7606 (gt_pch_nx): Likewise.
7607 * config/arm/arm-mve-builtins.def(s8): Define new type suffix.
7608 (s16): Likewise.
7609 (s32): Likewise.
7610 (s64): Likewise.
7611 (u8): Likewise.
7612 (u16): Likewise.
7613 (u32): Likewise.
7614 (u64): Likewise.
7615 (f16): Likewise.
7616 (f32): Likewise.
7617 (n): New mode.
7618 (offset): New mode.
7619 * config/arm/arm-mve-builtins.h (MAX_TUPLE_SIZE): New constant.
7620 (CP_READ_FPCR): Likewise.
7621 (CP_RAISE_FP_EXCEPTIONS): Likewise.
7622 (CP_READ_MEMORY): Likewise.
7623 (CP_WRITE_MEMORY): Likewise.
7624 (enum units_index): New enum.
7625 (enum predication_index): New.
7626 (enum type_class_index): New.
7627 (enum mode_suffix_index): New enum.
7628 (enum type_suffix_index): New.
7629 (struct mode_suffix_info): New struct.
7630 (struct type_suffix_info): New.
7631 (struct function_group_info): Likewise.
7632 (class function_instance): Likewise.
7633 (class registered_function): Likewise.
7634 (class function_builder): Likewise.
7635 (class function_call_info): Likewise.
7636 (class function_resolver): Likewise.
7637 (class function_checker): Likewise.
7638 (class gimple_folder): Likewise.
7639 (class function_expander): Likewise.
7640 (get_mve_pred16_t): Likewise.
7641 (find_mode_suffix): New function.
7642 (class function_base): Likewise.
7643 (class function_shape): Likewise.
7644 (function_instance::operator==): New function.
7645 (function_instance::operator!=): Likewise.
7646 (function_instance::vectors_per_tuple): Likewise.
7647 (function_instance::mode_suffix): Likewise.
7648 (function_instance::type_suffix): Likewise.
7649 (function_instance::scalar_type): Likewise.
7650 (function_instance::vector_type): Likewise.
7651 (function_instance::tuple_type): Likewise.
7652 (function_instance::vector_mode): Likewise.
7653 (function_call_info::function_returns_void_p): Likewise.
7654 (function_base::call_properties): Likewise.
7655 * config/arm/arm-protos.h (enum arm_builtin_class): Add
7656 ARM_BUILTIN_MVE.
7657 (handle_arm_mve_h): New.
7658 (resolve_overloaded_builtin): New.
7659 (check_builtin_call): New.
7660 (gimple_fold_builtin): New.
7661 (expand_builtin): New.
7662 * config/arm/arm.cc (TARGET_GIMPLE_FOLD_BUILTIN): Define as
7663 arm_gimple_fold_builtin.
7664 (arm_gimple_fold_builtin): New function.
7665 * config/arm/arm_mve.h: Use new arm_mve.h pragma.
7666 * config/arm/predicates.md (arm_any_register_operand): New predicate.
7667 * config/arm/t-arm: (arm-mve-builtins.o): Add includes.
7668 (arm-mve-builtins-shapes.o): New target.
7669 (arm-mve-builtins-base.o): New target.
7670 * config/arm/arm-mve-builtins-base.cc: New file.
7671 * config/arm/arm-mve-builtins-base.def: New file.
7672 * config/arm/arm-mve-builtins-base.h: New file.
7673 * config/arm/arm-mve-builtins-functions.h: New file.
7674 * config/arm/arm-mve-builtins-shapes.cc: New file.
7675 * config/arm/arm-mve-builtins-shapes.h: New file.
7676
7677 2023-05-03 Murray Steele <murray.steele@arm.com>
7678 Christophe Lyon <christophe.lyon@arm.com>
7679 Christophe Lyon <christophe.lyon@arm.com>
7680
7681 * config/arm/arm-builtins.cc (arm_general_add_builtin_function):
7682 New function.
7683 (arm_init_builtin): Use arm_general_add_builtin_function instead
7684 of arm_add_builtin_function.
7685 (arm_init_acle_builtins): Likewise.
7686 (arm_init_mve_builtins): Likewise.
7687 (arm_init_crypto_builtins): Likewise.
7688 (arm_init_builtins): Likewise.
7689 (arm_general_builtin_decl): New function.
7690 (arm_builtin_decl): Defer to numberspace-specialized functions.
7691 (arm_expand_builtin_args): Rename into arm_general_expand_builtin_args.
7692 (arm_expand_builtin_1): Rename into arm_general_expand_builtin_1 and ...
7693 (arm_general_expand_builtin_1): ... specialize for general builtins.
7694 (arm_expand_acle_builtin): Use arm_general_expand_builtin
7695 instead of arm_expand_builtin.
7696 (arm_expand_mve_builtin): Likewise.
7697 (arm_expand_neon_builtin): Likewise.
7698 (arm_expand_vfp_builtin): Likewise.
7699 (arm_general_expand_builtin): New function.
7700 (arm_expand_builtin): Specialize for general builtins.
7701 (arm_general_check_builtin_call): New function.
7702 (arm_check_builtin_call): Specialize for general builtins.
7703 (arm_describe_resolver): Validate numberspace.
7704 (arm_cde_end_args): Likewise.
7705 * config/arm/arm-protos.h (enum arm_builtin_class): New enum.
7706 (ARM_BUILTIN_SHIFT, ARM_BUILTIN_CLASS): New constants.
7707
7708 2023-05-03 Martin Liska <mliska@suse.cz>
7709
7710 PR target/109713
7711 * config/riscv/sync.md: Add gcc_unreachable to a switch.
7712
7713 2023-05-03 Richard Biener <rguenther@suse.de>
7714
7715 * tree-ssa-loop-split.cc (split_at_bb_p): Avoid last_stmt.
7716 (patch_loop_exit): Likewise.
7717 (connect_loops): Likewise.
7718 (split_loop): Likewise.
7719 (control_dep_semi_invariant_p): Likewise.
7720 (do_split_loop_on_cond): Likewise.
7721 (split_loop_on_cond): Likewise.
7722 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
7723 Likewise.
7724 (simplify_loop_version): Likewise.
7725 (evaluate_bbs): Likewise.
7726 (find_loop_guard): Likewise.
7727 (clean_up_after_unswitching): Likewise.
7728 * tree-ssa-math-opts.cc (maybe_optimize_guarding_check):
7729 Likewise.
7730 (optimize_spaceship): Take a gcond * argument, avoid
7731 last_stmt.
7732 (math_opts_dom_walker::after_dom_children): Adjust call to
7733 optimize_spaceship.
7734 * tree-vrp.cc (maybe_set_nonzero_bits): Avoid last_stmt.
7735 * value-pointer-equiv.cc (pointer_equiv_analyzer::visit_edge):
7736 Likewise.
7737
7738 2023-05-03 Andreas Schwab <schwab@suse.de>
7739
7740 * config/riscv/linux.h (LIB_SPEC): Don't redefine.
7741
7742 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7743
7744 * config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load):
7745 New function.
7746 (class vlseg): New class.
7747 (class vsseg): Ditto.
7748 (class vlsseg): Ditto.
7749 (class vssseg): Ditto.
7750 (class seg_indexed_load): Ditto.
7751 (class seg_indexed_store): Ditto.
7752 (class vlsegff): Ditto.
7753 (BASE): Ditto.
7754 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
7755 * config/riscv/riscv-vector-builtins-functions.def (vlseg):
7756 Ditto.
7757 (vsseg): Ditto.
7758 (vlsseg): Ditto.
7759 (vssseg): Ditto.
7760 (vluxseg): Ditto.
7761 (vloxseg): Ditto.
7762 (vsuxseg): Ditto.
7763 (vsoxseg): Ditto.
7764 (vlsegff): Ditto.
7765 * config/riscv/riscv-vector-builtins-shapes.cc (struct
7766 seg_loadstore_def): Ditto.
7767 (struct seg_indexed_loadstore_def): Ditto.
7768 (struct seg_fault_load_def): Ditto.
7769 (SHAPE): Ditto.
7770 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
7771 * config/riscv/riscv-vector-builtins.cc
7772 (function_builder::append_nf): New function.
7773 * config/riscv/riscv-vector-builtins.def (vfloat32m1x2_t):
7774 Change ptr from double into float.
7775 (vfloat32m1x3_t): Ditto.
7776 (vfloat32m1x4_t): Ditto.
7777 (vfloat32m1x5_t): Ditto.
7778 (vfloat32m1x6_t): Ditto.
7779 (vfloat32m1x7_t): Ditto.
7780 (vfloat32m1x8_t): Ditto.
7781 (vfloat32m2x2_t): Ditto.
7782 (vfloat32m2x3_t): Ditto.
7783 (vfloat32m2x4_t): Ditto.
7784 (vfloat32m4x2_t): Ditto.
7785 * config/riscv/riscv-vector-builtins.h: Add segment intrinsics.
7786 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Adapt for
7787 segment ff load.
7788 * config/riscv/riscv.md: Add segment instructions.
7789 * config/riscv/vector-iterators.md: Support segment intrinsics.
7790 * config/riscv/vector.md (@pred_unit_strided_load<mode>): New
7791 pattern.
7792 (@pred_unit_strided_store<mode>): Ditto.
7793 (@pred_strided_load<mode>): Ditto.
7794 (@pred_strided_store<mode>): Ditto.
7795 (@pred_fault_load<mode>): Ditto.
7796 (@pred_indexed_<order>load<V1T:mode><V1I:mode>): Ditto.
7797 (@pred_indexed_<order>load<V2T:mode><V2I:mode>): Ditto.
7798 (@pred_indexed_<order>load<V4T:mode><V4I:mode>): Ditto.
7799 (@pred_indexed_<order>load<V8T:mode><V8I:mode>): Ditto.
7800 (@pred_indexed_<order>load<V16T:mode><V16I:mode>): Ditto.
7801 (@pred_indexed_<order>load<V32T:mode><V32I:mode>): Ditto.
7802 (@pred_indexed_<order>load<V64T:mode><V64I:mode>): Ditto.
7803 (@pred_indexed_<order>store<V1T:mode><V1I:mode>): Ditto.
7804 (@pred_indexed_<order>store<V2T:mode><V2I:mode>): Ditto.
7805 (@pred_indexed_<order>store<V4T:mode><V4I:mode>): Ditto.
7806 (@pred_indexed_<order>store<V8T:mode><V8I:mode>): Ditto.
7807 (@pred_indexed_<order>store<V16T:mode><V16I:mode>): Ditto.
7808 (@pred_indexed_<order>store<V32T:mode><V32I:mode>): Ditto.
7809 (@pred_indexed_<order>store<V64T:mode><V64I:mode>): Ditto.
7810
7811 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7812
7813 * config/riscv/genrvv-type-indexer.cc (valid_type): Adapt for
7814 tuple type support.
7815 (inttype): Ditto.
7816 (floattype): Ditto.
7817 (main): Ditto.
7818 * config/riscv/riscv-vector-builtins-bases.cc: Ditto.
7819 * config/riscv/riscv-vector-builtins-functions.def (vset): Add
7820 tuple type vset.
7821 (vget): Add tuple type vget.
7822 * config/riscv/riscv-vector-builtins-types.def
7823 (DEF_RVV_TUPLE_OPS): New macro.
7824 (vint8mf8x2_t): Ditto.
7825 (vuint8mf8x2_t): Ditto.
7826 (vint8mf8x3_t): Ditto.
7827 (vuint8mf8x3_t): Ditto.
7828 (vint8mf8x4_t): Ditto.
7829 (vuint8mf8x4_t): Ditto.
7830 (vint8mf8x5_t): Ditto.
7831 (vuint8mf8x5_t): Ditto.
7832 (vint8mf8x6_t): Ditto.
7833 (vuint8mf8x6_t): Ditto.
7834 (vint8mf8x7_t): Ditto.
7835 (vuint8mf8x7_t): Ditto.
7836 (vint8mf8x8_t): Ditto.
7837 (vuint8mf8x8_t): Ditto.
7838 (vint8mf4x2_t): Ditto.
7839 (vuint8mf4x2_t): Ditto.
7840 (vint8mf4x3_t): Ditto.
7841 (vuint8mf4x3_t): Ditto.
7842 (vint8mf4x4_t): Ditto.
7843 (vuint8mf4x4_t): Ditto.
7844 (vint8mf4x5_t): Ditto.
7845 (vuint8mf4x5_t): Ditto.
7846 (vint8mf4x6_t): Ditto.
7847 (vuint8mf4x6_t): Ditto.
7848 (vint8mf4x7_t): Ditto.
7849 (vuint8mf4x7_t): Ditto.
7850 (vint8mf4x8_t): Ditto.
7851 (vuint8mf4x8_t): Ditto.
7852 (vint8mf2x2_t): Ditto.
7853 (vuint8mf2x2_t): Ditto.
7854 (vint8mf2x3_t): Ditto.
7855 (vuint8mf2x3_t): Ditto.
7856 (vint8mf2x4_t): Ditto.
7857 (vuint8mf2x4_t): Ditto.
7858 (vint8mf2x5_t): Ditto.
7859 (vuint8mf2x5_t): Ditto.
7860 (vint8mf2x6_t): Ditto.
7861 (vuint8mf2x6_t): Ditto.
7862 (vint8mf2x7_t): Ditto.
7863 (vuint8mf2x7_t): Ditto.
7864 (vint8mf2x8_t): Ditto.
7865 (vuint8mf2x8_t): Ditto.
7866 (vint8m1x2_t): Ditto.
7867 (vuint8m1x2_t): Ditto.
7868 (vint8m1x3_t): Ditto.
7869 (vuint8m1x3_t): Ditto.
7870 (vint8m1x4_t): Ditto.
7871 (vuint8m1x4_t): Ditto.
7872 (vint8m1x5_t): Ditto.
7873 (vuint8m1x5_t): Ditto.
7874 (vint8m1x6_t): Ditto.
7875 (vuint8m1x6_t): Ditto.
7876 (vint8m1x7_t): Ditto.
7877 (vuint8m1x7_t): Ditto.
7878 (vint8m1x8_t): Ditto.
7879 (vuint8m1x8_t): Ditto.
7880 (vint8m2x2_t): Ditto.
7881 (vuint8m2x2_t): Ditto.
7882 (vint8m2x3_t): Ditto.
7883 (vuint8m2x3_t): Ditto.
7884 (vint8m2x4_t): Ditto.
7885 (vuint8m2x4_t): Ditto.
7886 (vint8m4x2_t): Ditto.
7887 (vuint8m4x2_t): Ditto.
7888 (vint16mf4x2_t): Ditto.
7889 (vuint16mf4x2_t): Ditto.
7890 (vint16mf4x3_t): Ditto.
7891 (vuint16mf4x3_t): Ditto.
7892 (vint16mf4x4_t): Ditto.
7893 (vuint16mf4x4_t): Ditto.
7894 (vint16mf4x5_t): Ditto.
7895 (vuint16mf4x5_t): Ditto.
7896 (vint16mf4x6_t): Ditto.
7897 (vuint16mf4x6_t): Ditto.
7898 (vint16mf4x7_t): Ditto.
7899 (vuint16mf4x7_t): Ditto.
7900 (vint16mf4x8_t): Ditto.
7901 (vuint16mf4x8_t): Ditto.
7902 (vint16mf2x2_t): Ditto.
7903 (vuint16mf2x2_t): Ditto.
7904 (vint16mf2x3_t): Ditto.
7905 (vuint16mf2x3_t): Ditto.
7906 (vint16mf2x4_t): Ditto.
7907 (vuint16mf2x4_t): Ditto.
7908 (vint16mf2x5_t): Ditto.
7909 (vuint16mf2x5_t): Ditto.
7910 (vint16mf2x6_t): Ditto.
7911 (vuint16mf2x6_t): Ditto.
7912 (vint16mf2x7_t): Ditto.
7913 (vuint16mf2x7_t): Ditto.
7914 (vint16mf2x8_t): Ditto.
7915 (vuint16mf2x8_t): Ditto.
7916 (vint16m1x2_t): Ditto.
7917 (vuint16m1x2_t): Ditto.
7918 (vint16m1x3_t): Ditto.
7919 (vuint16m1x3_t): Ditto.
7920 (vint16m1x4_t): Ditto.
7921 (vuint16m1x4_t): Ditto.
7922 (vint16m1x5_t): Ditto.
7923 (vuint16m1x5_t): Ditto.
7924 (vint16m1x6_t): Ditto.
7925 (vuint16m1x6_t): Ditto.
7926 (vint16m1x7_t): Ditto.
7927 (vuint16m1x7_t): Ditto.
7928 (vint16m1x8_t): Ditto.
7929 (vuint16m1x8_t): Ditto.
7930 (vint16m2x2_t): Ditto.
7931 (vuint16m2x2_t): Ditto.
7932 (vint16m2x3_t): Ditto.
7933 (vuint16m2x3_t): Ditto.
7934 (vint16m2x4_t): Ditto.
7935 (vuint16m2x4_t): Ditto.
7936 (vint16m4x2_t): Ditto.
7937 (vuint16m4x2_t): Ditto.
7938 (vint32mf2x2_t): Ditto.
7939 (vuint32mf2x2_t): Ditto.
7940 (vint32mf2x3_t): Ditto.
7941 (vuint32mf2x3_t): Ditto.
7942 (vint32mf2x4_t): Ditto.
7943 (vuint32mf2x4_t): Ditto.
7944 (vint32mf2x5_t): Ditto.
7945 (vuint32mf2x5_t): Ditto.
7946 (vint32mf2x6_t): Ditto.
7947 (vuint32mf2x6_t): Ditto.
7948 (vint32mf2x7_t): Ditto.
7949 (vuint32mf2x7_t): Ditto.
7950 (vint32mf2x8_t): Ditto.
7951 (vuint32mf2x8_t): Ditto.
7952 (vint32m1x2_t): Ditto.
7953 (vuint32m1x2_t): Ditto.
7954 (vint32m1x3_t): Ditto.
7955 (vuint32m1x3_t): Ditto.
7956 (vint32m1x4_t): Ditto.
7957 (vuint32m1x4_t): Ditto.
7958 (vint32m1x5_t): Ditto.
7959 (vuint32m1x5_t): Ditto.
7960 (vint32m1x6_t): Ditto.
7961 (vuint32m1x6_t): Ditto.
7962 (vint32m1x7_t): Ditto.
7963 (vuint32m1x7_t): Ditto.
7964 (vint32m1x8_t): Ditto.
7965 (vuint32m1x8_t): Ditto.
7966 (vint32m2x2_t): Ditto.
7967 (vuint32m2x2_t): Ditto.
7968 (vint32m2x3_t): Ditto.
7969 (vuint32m2x3_t): Ditto.
7970 (vint32m2x4_t): Ditto.
7971 (vuint32m2x4_t): Ditto.
7972 (vint32m4x2_t): Ditto.
7973 (vuint32m4x2_t): Ditto.
7974 (vint64m1x2_t): Ditto.
7975 (vuint64m1x2_t): Ditto.
7976 (vint64m1x3_t): Ditto.
7977 (vuint64m1x3_t): Ditto.
7978 (vint64m1x4_t): Ditto.
7979 (vuint64m1x4_t): Ditto.
7980 (vint64m1x5_t): Ditto.
7981 (vuint64m1x5_t): Ditto.
7982 (vint64m1x6_t): Ditto.
7983 (vuint64m1x6_t): Ditto.
7984 (vint64m1x7_t): Ditto.
7985 (vuint64m1x7_t): Ditto.
7986 (vint64m1x8_t): Ditto.
7987 (vuint64m1x8_t): Ditto.
7988 (vint64m2x2_t): Ditto.
7989 (vuint64m2x2_t): Ditto.
7990 (vint64m2x3_t): Ditto.
7991 (vuint64m2x3_t): Ditto.
7992 (vint64m2x4_t): Ditto.
7993 (vuint64m2x4_t): Ditto.
7994 (vint64m4x2_t): Ditto.
7995 (vuint64m4x2_t): Ditto.
7996 (vfloat32mf2x2_t): Ditto.
7997 (vfloat32mf2x3_t): Ditto.
7998 (vfloat32mf2x4_t): Ditto.
7999 (vfloat32mf2x5_t): Ditto.
8000 (vfloat32mf2x6_t): Ditto.
8001 (vfloat32mf2x7_t): Ditto.
8002 (vfloat32mf2x8_t): Ditto.
8003 (vfloat32m1x2_t): Ditto.
8004 (vfloat32m1x3_t): Ditto.
8005 (vfloat32m1x4_t): Ditto.
8006 (vfloat32m1x5_t): Ditto.
8007 (vfloat32m1x6_t): Ditto.
8008 (vfloat32m1x7_t): Ditto.
8009 (vfloat32m1x8_t): Ditto.
8010 (vfloat32m2x2_t): Ditto.
8011 (vfloat32m2x3_t): Ditto.
8012 (vfloat32m2x4_t): Ditto.
8013 (vfloat32m4x2_t): Ditto.
8014 (vfloat64m1x2_t): Ditto.
8015 (vfloat64m1x3_t): Ditto.
8016 (vfloat64m1x4_t): Ditto.
8017 (vfloat64m1x5_t): Ditto.
8018 (vfloat64m1x6_t): Ditto.
8019 (vfloat64m1x7_t): Ditto.
8020 (vfloat64m1x8_t): Ditto.
8021 (vfloat64m2x2_t): Ditto.
8022 (vfloat64m2x3_t): Ditto.
8023 (vfloat64m2x4_t): Ditto.
8024 (vfloat64m4x2_t): Ditto.
8025 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_OPS):
8026 Ditto.
8027 (DEF_RVV_TYPE_INDEX): Ditto.
8028 (rvv_arg_type_info::get_tuple_subpart_type): New function.
8029 (DEF_RVV_TUPLE_TYPE): New macro.
8030 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX):
8031 Adapt for tuple vget/vset support.
8032 (vint8mf4_t): Ditto.
8033 (vuint8mf4_t): Ditto.
8034 (vint8mf2_t): Ditto.
8035 (vuint8mf2_t): Ditto.
8036 (vint8m1_t): Ditto.
8037 (vuint8m1_t): Ditto.
8038 (vint8m2_t): Ditto.
8039 (vuint8m2_t): Ditto.
8040 (vint8m4_t): Ditto.
8041 (vuint8m4_t): Ditto.
8042 (vint8m8_t): Ditto.
8043 (vuint8m8_t): Ditto.
8044 (vint16mf4_t): Ditto.
8045 (vuint16mf4_t): Ditto.
8046 (vint16mf2_t): Ditto.
8047 (vuint16mf2_t): Ditto.
8048 (vint16m1_t): Ditto.
8049 (vuint16m1_t): Ditto.
8050 (vint16m2_t): Ditto.
8051 (vuint16m2_t): Ditto.
8052 (vint16m4_t): Ditto.
8053 (vuint16m4_t): Ditto.
8054 (vint16m8_t): Ditto.
8055 (vuint16m8_t): Ditto.
8056 (vint32mf2_t): Ditto.
8057 (vuint32mf2_t): Ditto.
8058 (vint32m1_t): Ditto.
8059 (vuint32m1_t): Ditto.
8060 (vint32m2_t): Ditto.
8061 (vuint32m2_t): Ditto.
8062 (vint32m4_t): Ditto.
8063 (vuint32m4_t): Ditto.
8064 (vint32m8_t): Ditto.
8065 (vuint32m8_t): Ditto.
8066 (vint64m1_t): Ditto.
8067 (vuint64m1_t): Ditto.
8068 (vint64m2_t): Ditto.
8069 (vuint64m2_t): Ditto.
8070 (vint64m4_t): Ditto.
8071 (vuint64m4_t): Ditto.
8072 (vint64m8_t): Ditto.
8073 (vuint64m8_t): Ditto.
8074 (vfloat32mf2_t): Ditto.
8075 (vfloat32m1_t): Ditto.
8076 (vfloat32m2_t): Ditto.
8077 (vfloat32m4_t): Ditto.
8078 (vfloat32m8_t): Ditto.
8079 (vfloat64m1_t): Ditto.
8080 (vfloat64m2_t): Ditto.
8081 (vfloat64m4_t): Ditto.
8082 (vfloat64m8_t): Ditto.
8083 (tuple_subpart): Add tuple subpart base type.
8084 * config/riscv/riscv-vector-builtins.h (struct
8085 rvv_arg_type_info): Ditto.
8086 (tuple_type_field): New function.
8087
8088 2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
8089
8090 * config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
8091 (RVV_TUPLE_PARTIAL_MODES): Ditto.
8092 * config/riscv/riscv-protos.h (riscv_v_ext_tuple_mode_p): New
8093 function.
8094 (get_nf): Ditto.
8095 (get_subpart_mode): Ditto.
8096 (get_tuple_mode): Ditto.
8097 (expand_tuple_move): Ditto.
8098 * config/riscv/riscv-v.cc (ENTRY): New macro.
8099 (TUPLE_ENTRY): Ditto.
8100 (get_nf): New function.
8101 (get_subpart_mode): Ditto.
8102 (get_tuple_mode): Ditto.
8103 (expand_tuple_move): Ditto.
8104 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_TYPE):
8105 New macro.
8106 (register_tuple_type): New function
8107 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TUPLE_TYPE):
8108 New macro.
8109 (vint8mf8x2_t): New macro.
8110 (vuint8mf8x2_t): Ditto.
8111 (vint8mf8x3_t): Ditto.
8112 (vuint8mf8x3_t): Ditto.
8113 (vint8mf8x4_t): Ditto.
8114 (vuint8mf8x4_t): Ditto.
8115 (vint8mf8x5_t): Ditto.
8116 (vuint8mf8x5_t): Ditto.
8117 (vint8mf8x6_t): Ditto.
8118 (vuint8mf8x6_t): Ditto.
8119 (vint8mf8x7_t): Ditto.
8120 (vuint8mf8x7_t): Ditto.
8121 (vint8mf8x8_t): Ditto.
8122 (vuint8mf8x8_t): Ditto.
8123 (vint8mf4x2_t): Ditto.
8124 (vuint8mf4x2_t): Ditto.
8125 (vint8mf4x3_t): Ditto.
8126 (vuint8mf4x3_t): Ditto.
8127 (vint8mf4x4_t): Ditto.
8128 (vuint8mf4x4_t): Ditto.
8129 (vint8mf4x5_t): Ditto.
8130 (vuint8mf4x5_t): Ditto.
8131 (vint8mf4x6_t): Ditto.
8132 (vuint8mf4x6_t): Ditto.
8133 (vint8mf4x7_t): Ditto.
8134 (vuint8mf4x7_t): Ditto.
8135 (vint8mf4x8_t): Ditto.
8136 (vuint8mf4x8_t): Ditto.
8137 (vint8mf2x2_t): Ditto.
8138 (vuint8mf2x2_t): Ditto.
8139 (vint8mf2x3_t): Ditto.
8140 (vuint8mf2x3_t): Ditto.
8141 (vint8mf2x4_t): Ditto.
8142 (vuint8mf2x4_t): Ditto.
8143 (vint8mf2x5_t): Ditto.
8144 (vuint8mf2x5_t): Ditto.
8145 (vint8mf2x6_t): Ditto.
8146 (vuint8mf2x6_t): Ditto.
8147 (vint8mf2x7_t): Ditto.
8148 (vuint8mf2x7_t): Ditto.
8149 (vint8mf2x8_t): Ditto.
8150 (vuint8mf2x8_t): Ditto.
8151 (vint8m1x2_t): Ditto.
8152 (vuint8m1x2_t): Ditto.
8153 (vint8m1x3_t): Ditto.
8154 (vuint8m1x3_t): Ditto.
8155 (vint8m1x4_t): Ditto.
8156 (vuint8m1x4_t): Ditto.
8157 (vint8m1x5_t): Ditto.
8158 (vuint8m1x5_t): Ditto.
8159 (vint8m1x6_t): Ditto.
8160 (vuint8m1x6_t): Ditto.
8161 (vint8m1x7_t): Ditto.
8162 (vuint8m1x7_t): Ditto.
8163 (vint8m1x8_t): Ditto.
8164 (vuint8m1x8_t): Ditto.
8165 (vint8m2x2_t): Ditto.
8166 (vuint8m2x2_t): Ditto.
8167 (vint8m2x3_t): Ditto.
8168 (vuint8m2x3_t): Ditto.
8169 (vint8m2x4_t): Ditto.
8170 (vuint8m2x4_t): Ditto.
8171 (vint8m4x2_t): Ditto.
8172 (vuint8m4x2_t): Ditto.
8173 (vint16mf4x2_t): Ditto.
8174 (vuint16mf4x2_t): Ditto.
8175 (vint16mf4x3_t): Ditto.
8176 (vuint16mf4x3_t): Ditto.
8177 (vint16mf4x4_t): Ditto.
8178 (vuint16mf4x4_t): Ditto.
8179 (vint16mf4x5_t): Ditto.
8180 (vuint16mf4x5_t): Ditto.
8181 (vint16mf4x6_t): Ditto.
8182 (vuint16mf4x6_t): Ditto.
8183 (vint16mf4x7_t): Ditto.
8184 (vuint16mf4x7_t): Ditto.
8185 (vint16mf4x8_t): Ditto.
8186 (vuint16mf4x8_t): Ditto.
8187 (vint16mf2x2_t): Ditto.
8188 (vuint16mf2x2_t): Ditto.
8189 (vint16mf2x3_t): Ditto.
8190 (vuint16mf2x3_t): Ditto.
8191 (vint16mf2x4_t): Ditto.
8192 (vuint16mf2x4_t): Ditto.
8193 (vint16mf2x5_t): Ditto.
8194 (vuint16mf2x5_t): Ditto.
8195 (vint16mf2x6_t): Ditto.
8196 (vuint16mf2x6_t): Ditto.
8197 (vint16mf2x7_t): Ditto.
8198 (vuint16mf2x7_t): Ditto.
8199 (vint16mf2x8_t): Ditto.
8200 (vuint16mf2x8_t): Ditto.
8201 (vint16m1x2_t): Ditto.
8202 (vuint16m1x2_t): Ditto.
8203 (vint16m1x3_t): Ditto.
8204 (vuint16m1x3_t): Ditto.
8205 (vint16m1x4_t): Ditto.
8206 (vuint16m1x4_t): Ditto.
8207 (vint16m1x5_t): Ditto.
8208 (vuint16m1x5_t): Ditto.
8209 (vint16m1x6_t): Ditto.
8210 (vuint16m1x6_t): Ditto.
8211 (vint16m1x7_t): Ditto.
8212 (vuint16m1x7_t): Ditto.
8213 (vint16m1x8_t): Ditto.
8214 (vuint16m1x8_t): Ditto.
8215 (vint16m2x2_t): Ditto.
8216 (vuint16m2x2_t): Ditto.
8217 (vint16m2x3_t): Ditto.
8218 (vuint16m2x3_t): Ditto.
8219 (vint16m2x4_t): Ditto.
8220 (vuint16m2x4_t): Ditto.
8221 (vint16m4x2_t): Ditto.
8222 (vuint16m4x2_t): Ditto.
8223 (vint32mf2x2_t): Ditto.
8224 (vuint32mf2x2_t): Ditto.
8225 (vint32mf2x3_t): Ditto.
8226 (vuint32mf2x3_t): Ditto.
8227 (vint32mf2x4_t): Ditto.
8228 (vuint32mf2x4_t): Ditto.
8229 (vint32mf2x5_t): Ditto.
8230 (vuint32mf2x5_t): Ditto.
8231 (vint32mf2x6_t): Ditto.
8232 (vuint32mf2x6_t): Ditto.
8233 (vint32mf2x7_t): Ditto.
8234 (vuint32mf2x7_t): Ditto.
8235 (vint32mf2x8_t): Ditto.
8236 (vuint32mf2x8_t): Ditto.
8237 (vint32m1x2_t): Ditto.
8238 (vuint32m1x2_t): Ditto.
8239 (vint32m1x3_t): Ditto.
8240 (vuint32m1x3_t): Ditto.
8241 (vint32m1x4_t): Ditto.
8242 (vuint32m1x4_t): Ditto.
8243 (vint32m1x5_t): Ditto.
8244 (vuint32m1x5_t): Ditto.
8245 (vint32m1x6_t): Ditto.
8246 (vuint32m1x6_t): Ditto.
8247 (vint32m1x7_t): Ditto.
8248 (vuint32m1x7_t): Ditto.
8249 (vint32m1x8_t): Ditto.
8250 (vuint32m1x8_t): Ditto.
8251 (vint32m2x2_t): Ditto.
8252 (vuint32m2x2_t): Ditto.
8253 (vint32m2x3_t): Ditto.
8254 (vuint32m2x3_t): Ditto.
8255 (vint32m2x4_t): Ditto.
8256 (vuint32m2x4_t): Ditto.
8257 (vint32m4x2_t): Ditto.
8258 (vuint32m4x2_t): Ditto.
8259 (vint64m1x2_t): Ditto.
8260 (vuint64m1x2_t): Ditto.
8261 (vint64m1x3_t): Ditto.
8262 (vuint64m1x3_t): Ditto.
8263 (vint64m1x4_t): Ditto.
8264 (vuint64m1x4_t): Ditto.
8265 (vint64m1x5_t): Ditto.
8266 (vuint64m1x5_t): Ditto.
8267 (vint64m1x6_t): Ditto.
8268 (vuint64m1x6_t): Ditto.
8269 (vint64m1x7_t): Ditto.
8270 (vuint64m1x7_t): Ditto.
8271 (vint64m1x8_t): Ditto.
8272 (vuint64m1x8_t): Ditto.
8273 (vint64m2x2_t): Ditto.
8274 (vuint64m2x2_t): Ditto.
8275 (vint64m2x3_t): Ditto.
8276 (vuint64m2x3_t): Ditto.
8277 (vint64m2x4_t): Ditto.
8278 (vuint64m2x4_t): Ditto.
8279 (vint64m4x2_t): Ditto.
8280 (vuint64m4x2_t): Ditto.
8281 (vfloat32mf2x2_t): Ditto.
8282 (vfloat32mf2x3_t): Ditto.
8283 (vfloat32mf2x4_t): Ditto.
8284 (vfloat32mf2x5_t): Ditto.
8285 (vfloat32mf2x6_t): Ditto.
8286 (vfloat32mf2x7_t): Ditto.
8287 (vfloat32mf2x8_t): Ditto.
8288 (vfloat32m1x2_t): Ditto.
8289 (vfloat32m1x3_t): Ditto.
8290 (vfloat32m1x4_t): Ditto.
8291 (vfloat32m1x5_t): Ditto.
8292 (vfloat32m1x6_t): Ditto.
8293 (vfloat32m1x7_t): Ditto.
8294 (vfloat32m1x8_t): Ditto.
8295 (vfloat32m2x2_t): Ditto.
8296 (vfloat32m2x3_t): Ditto.
8297 (vfloat32m2x4_t): Ditto.
8298 (vfloat32m4x2_t): Ditto.
8299 (vfloat64m1x2_t): Ditto.
8300 (vfloat64m1x3_t): Ditto.
8301 (vfloat64m1x4_t): Ditto.
8302 (vfloat64m1x5_t): Ditto.
8303 (vfloat64m1x6_t): Ditto.
8304 (vfloat64m1x7_t): Ditto.
8305 (vfloat64m1x8_t): Ditto.
8306 (vfloat64m2x2_t): Ditto.
8307 (vfloat64m2x3_t): Ditto.
8308 (vfloat64m2x4_t): Ditto.
8309 (vfloat64m4x2_t): Ditto.
8310 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TUPLE_TYPE):
8311 Ditto.
8312 * config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): Ditto.
8313 * config/riscv/riscv.cc (riscv_v_ext_tuple_mode_p): New
8314 function.
8315 (TUPLE_ENTRY): Ditto.
8316 (riscv_v_ext_mode_p): New function.
8317 (riscv_v_adjust_nunits): Add tuple mode adjustment.
8318 (riscv_classify_address): Ditto.
8319 (riscv_binary_cost): Ditto.
8320 (riscv_rtx_costs): Ditto.
8321 (riscv_secondary_memory_needed): Ditto.
8322 (riscv_hard_regno_nregs): Ditto.
8323 (riscv_hard_regno_mode_ok): Ditto.
8324 (riscv_vector_mode_supported_p): Ditto.
8325 (riscv_regmode_natural_size): Ditto.
8326 (riscv_array_mode): New function.
8327 (TARGET_ARRAY_MODE): New target hook.
8328 * config/riscv/riscv.md: Add tuple modes.
8329 * config/riscv/vector-iterators.md: Ditto.
8330 * config/riscv/vector.md (mov<mode>): Add tuple modes data
8331 movement.
8332 (*mov<VT:mode>_<P:mode>): Ditto.
8333
8334 2023-05-03 Richard Biener <rguenther@suse.de>
8335
8336 * cse.cc (cse_insn): Track an equivalence to the destination
8337 separately and delay using src_related for it.
8338
8339 2023-05-03 Richard Biener <rguenther@suse.de>
8340
8341 * cse.cc (HASH): Turn into inline function and mix
8342 in another HASH_SHIFT bits.
8343 (SAFE_HASH): Likewise.
8344
8345 2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8346
8347 PR target/99195
8348 * config/aarch64/aarch64-simd.md (aarch64_<sur>h<addsub><mode>): Rename to...
8349 (aarch64_<sur>h<addsub><mode><vczle><vczbe>): ... This.
8350
8351 2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8352
8353 PR target/99195
8354 * config/aarch64/aarch64-simd.md (add<mode>3): Rename to...
8355 (add<mode>3<vczle><vczbe>): ... This.
8356 (sub<mode>3): Rename to...
8357 (sub<mode>3<vczle><vczbe>): ... This.
8358 (mul<mode>3): Rename to...
8359 (mul<mode>3<vczle><vczbe>): ... This.
8360 (*div<mode>3): Rename to...
8361 (*div<mode>3<vczle><vczbe>): ... This.
8362 (neg<mode>2): Rename to...
8363 (neg<mode>2<vczle><vczbe>): ... This.
8364 (abs<mode>2): Rename to...
8365 (abs<mode>2<vczle><vczbe>): ... This.
8366 (<frint_pattern><mode>2): Rename to...
8367 (<frint_pattern><mode>2<vczle><vczbe>): ... This.
8368 (<fmaxmin><mode>3): Rename to...
8369 (<fmaxmin><mode>3<vczle><vczbe>): ... This.
8370 (*sqrt<mode>2): Rename to...
8371 (*sqrt<mode>2<vczle><vczbe>): ... This.
8372
8373 2023-05-03 Kito Cheng <kito.cheng@sifive.com>
8374
8375 * doc/md.texi (RISC-V): Add vr, vm, vd constarint.
8376
8377 2023-05-03 Martin Liska <mliska@suse.cz>
8378
8379 PR tree-optimization/109693
8380 * value-range-storage.cc (vrange_allocator::vrange_allocator):
8381 Remove unused field.
8382 * value-range-storage.h: Likewise.
8383
8384 2023-05-02 Andrew Pinski <apinski@marvell.com>
8385
8386 * tree-ssa-phiopt.cc (move_stmt): New function.
8387 (match_simplify_replacement): Use move_stmt instead
8388 of the inlined version.
8389
8390 2023-05-02 Andrew Pinski <apinski@marvell.com>
8391
8392 * match.pd (a != 0 ? CLRSB(a) : CST -> CLRSB(a)): New
8393 pattern.
8394
8395 2023-05-02 Andrew Pinski <apinski@marvell.com>
8396
8397 PR tree-optimization/109702
8398 * match.pd: Fix "a != 0 ? FUNC(a) : CST" patterns
8399 for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
8400
8401 2023-05-02 Andrew Pinski <apinski@marvell.com>
8402
8403 PR target/109657
8404 * config/aarch64/aarch64.md (*cmov<mode>_insn_m1): New
8405 insn_and_split pattern.
8406
8407 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8408
8409 * config/riscv/sync.md (atomic_load<mode>): Implement atomic
8410 load mapping.
8411
8412 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8413
8414 * config/riscv/sync.md (mem_thread_fence_1): Change fence
8415 depending on the given memory model.
8416
8417 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8418
8419 * config/riscv/riscv-protos.h (riscv_union_memmodels): Expose
8420 riscv_union_memmodels function to sync.md.
8421 * config/riscv/riscv.cc (riscv_union_memmodels): Add function to
8422 get the union of two memmodels in sync.md.
8423 (riscv_print_operand): Add %I and %J flags that output the
8424 optimal LR/SC flag bits for a given memory model.
8425 * config/riscv/sync.md: Remove static .aqrl bits on LR op/.rl
8426 bits on SC op and replace with optimized %I, %J flags.
8427
8428 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8429
8430 * config/riscv/riscv.cc
8431 (riscv_memmodel_needs_amo_release): Change function name.
8432 (riscv_print_operand): Remove unneeded %F case.
8433 * config/riscv/sync.md: Remove unneeded fences.
8434
8435 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8436
8437 PR target/89835
8438 * config/riscv/sync.md (atomic_store<mode>): Use simple store
8439 instruction in combination with fence(s).
8440
8441 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8442
8443 * config/riscv/riscv.cc (riscv_print_operand): Change behavior
8444 of %A to include release bits.
8445
8446 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8447
8448 * config/riscv/sync.md (atomic_cas_value_strong<mode>): Change
8449 FENCE/LR.aq/SC.aq into sequentially consistent LR.aqrl/SC.rl
8450 pair.
8451
8452 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8453
8454 * config/riscv/sync.md: Change LR.aq/SC.rl pairs into
8455 sequentially consistent LR.aqrl/SC.rl pairs.
8456
8457 2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
8458
8459 * config/riscv/riscv.cc: Remove MEMMODEL_SYNC_* cases and
8460 sanitize memmodel input with memmodel_base.
8461
8462 2023-05-02 Yanzhang Wang <yanzhang.wang@intel.com>
8463 Pan Li <pan2.li@intel.com>
8464
8465 PR target/109617
8466 * config/riscv/vector-iterators.md: Support VNx2HI and VNX4DI when MIN_VLEN >= 128.
8467
8468 2023-05-02 Romain Naour <romain.naour@gmail.com>
8469
8470 * config/riscv/genrvv-type-indexer.cc: Use log2 from the C header, without
8471 the namespace.
8472
8473 2023-05-02 Martin Liska <mliska@suse.cz>
8474
8475 * doc/invoke.texi: Update documentation based on param.opt file.
8476
8477 2023-05-02 Richard Biener <rguenther@suse.de>
8478
8479 PR tree-optimization/109672
8480 * tree-vect-stmts.cc (vectorizable_operation): For plus,
8481 minus and negate always check the vector mode is word mode.
8482
8483 2023-05-01 Andrew Pinski <apinski@marvell.com>
8484
8485 * tree-ssa-phiopt.cc: Update comment about
8486 how the transformation are implemented.
8487
8488 2023-05-01 Jeff Law <jlaw@ventanamicro>
8489
8490 * config/stormy16/stormy16.cc (TARGET_LRA_P): Remove defintion.
8491
8492 2023-05-01 Jeff Law <jlaw@ventanamicro>
8493
8494 * config/cris/cris.cc (TARGET_LRA_P): Remove.
8495 * config/epiphany/epiphany.cc (TARGET_LRA_P): Remove.
8496 * config/iq2000/iq2000.cc (TARGET_LRA_P): Remove.
8497 * config/m32r/m32r.cc (TARGET_LRA_P): Remove.
8498 * config/microblaze/microblaze.cc (TARGET_LRA_P): Remove.
8499 * config/mmix/mmix.cc (TARGET_LRA_P): Remove.
8500
8501 2023-05-01 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
8502
8503 * print-tree.h (PRINT_DECL_REMAP_DEBUG): New flag.
8504 * print-tree.cc (print_decl_identifier): Implement it.
8505 * toplev.cc (output_stack_usage_1): Use it.
8506
8507 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8508
8509 * value-range.h (class int_range): Remove gt_ggc_mx and gt_pch_nx
8510 friends.
8511
8512 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8513
8514 * value-range.h (irange::set_nonzero): Inline.
8515
8516 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8517
8518 * gimple-range-op.cc (cfn_ffs::fold_range): Use the correct
8519 precision.
8520 * gimple-ssa-warn-alloca.cc (alloca_call_type): Use <2> for
8521 invalid_range, as it is an inverse range.
8522 * tree-vrp.cc (find_case_label_range): Avoid trees.
8523 * value-range.cc (irange::irange_set): Delete.
8524 (irange::irange_set_1bit_anti_range): Delete.
8525 (irange::irange_set_anti_range): Delete.
8526 (irange::set): Cleanup.
8527 * value-range.h (class irange): Remove irange_set,
8528 irange_set_anti_range, irange_set_1bit_anti_range.
8529 (irange::set_undefined): Remove set to m_type.
8530
8531 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8532
8533 * range-op.cc (update_known_bitmask): Adjust for irange containing
8534 wide_ints internally.
8535 * tree-ssanames.cc (set_nonzero_bits): Same.
8536 * tree-ssanames.h (set_nonzero_bits): Same.
8537 * value-range-storage.cc (irange_storage::set_irange): Same.
8538 (irange_storage::get_irange): Same.
8539 * value-range.cc (irange::operator=): Same.
8540 (irange::irange_set): Same.
8541 (irange::irange_set_1bit_anti_range): Same.
8542 (irange::irange_set_anti_range): Same.
8543 (irange::set): Same.
8544 (irange::verify_range): Same.
8545 (irange::contains_p): Same.
8546 (irange::irange_single_pair_union): Same.
8547 (irange::union_): Same.
8548 (irange::irange_contains_p): Same.
8549 (irange::intersect): Same.
8550 (irange::invert): Same.
8551 (irange::set_range_from_nonzero_bits): Same.
8552 (irange::set_nonzero_bits): Same.
8553 (mask_to_wi): Same.
8554 (irange::intersect_nonzero_bits): Same.
8555 (irange::union_nonzero_bits): Same.
8556 (gt_ggc_mx): Same.
8557 (gt_pch_nx): Same.
8558 (tree_range): Same.
8559 (range_tests_strict_enum): Same.
8560 (range_tests_misc): Same.
8561 (range_tests_nonzero_bits): Same.
8562 * value-range.h (irange::type): Same.
8563 (irange::varying_compatible_p): Same.
8564 (irange::irange): Same.
8565 (int_range::int_range): Same.
8566 (irange::set_undefined): Same.
8567 (irange::set_varying): Same.
8568 (irange::lower_bound): Same.
8569 (irange::upper_bound): Same.
8570
8571 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8572
8573 * gimple-range-fold.cc (tree_lower_bound): Delete.
8574 (tree_upper_bound): Delete.
8575 (vrp_val_max): Delete.
8576 (vrp_val_min): Delete.
8577 (fold_using_range::range_of_ssa_name_with_loop_info): Call
8578 range_of_var_in_loop.
8579 * vr-values.cc (valid_value_p): Delete.
8580 (fix_overflow): Delete.
8581 (get_scev_info): New.
8582 (bounds_of_var_in_loop): Refactor into...
8583 (induction_variable_may_overflow_p): ...this,
8584 (range_from_loop_direction): ...and this,
8585 (range_of_var_in_loop): ...and this.
8586 * vr-values.h (bounds_of_var_in_loop): Delete.
8587 (range_of_var_in_loop): New.
8588
8589 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8590
8591 * gimple-range-fold.cc (adjust_pointer_diff_expr): Rewrite with
8592 irange_val*.
8593 (vrp_val_max): New.
8594 (vrp_val_min): New.
8595 * gimple-range-op.cc (cfn_strlen::fold_range): Use irange_val_*.
8596 * range-op.cc (max_limit): Same.
8597 (min_limit): Same.
8598 (plus_minus_ranges): Same.
8599 (operator_rshift::op1_range): Same.
8600 (operator_cast::inside_domain_p): Same.
8601 * value-range.cc (vrp_val_is_max): Delete.
8602 (vrp_val_is_min): Delete.
8603 (range_tests_misc): Use irange_val_*.
8604 * value-range.h (vrp_val_is_min): Delete.
8605 (vrp_val_is_max): Delete.
8606 (vrp_val_max): Delete.
8607 (irange_val_min): New.
8608 (vrp_val_min): Delete.
8609 (irange_val_max): New.
8610 * vr-values.cc (check_for_binary_op_overflow): Use irange_val_*.
8611
8612 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8613
8614 * fold-const.cc (expr_not_equal_to): Convert to irange wide_int API.
8615 * gimple-fold.cc (size_must_be_zero_p): Same.
8616 * gimple-loop-versioning.cc
8617 (loop_versioning::prune_loop_conditions): Same.
8618 * gimple-range-edge.cc (gcond_edge_range): Same.
8619 (gimple_outgoing_range::calc_switch_ranges): Same.
8620 * gimple-range-fold.cc (adjust_imagpart_expr): Same.
8621 (adjust_realpart_expr): Same.
8622 (fold_using_range::range_of_address): Same.
8623 (fold_using_range::relation_fold_and_or): Same.
8624 * gimple-range-gori.cc (gori_compute::gori_compute): Same.
8625 (range_is_either_true_or_false): Same.
8626 * gimple-range-op.cc (cfn_toupper_tolower::get_letter_range): Same.
8627 (cfn_clz::fold_range): Same.
8628 (cfn_ctz::fold_range): Same.
8629 * gimple-range-tests.cc (class test_expr_eval): Same.
8630 * gimple-ssa-warn-alloca.cc (alloca_call_type): Same.
8631 * ipa-cp.cc (ipa_value_range_from_jfunc): Same.
8632 (propagate_vr_across_jump_function): Same.
8633 (decide_whether_version_node): Same.
8634 * ipa-prop.cc (ipa_get_value_range): Same.
8635 * ipa-prop.h (ipa_range_set_and_normalize): Same.
8636 * range-op.cc (get_shift_range): Same.
8637 (value_range_from_overflowed_bounds): Same.
8638 (value_range_with_overflow): Same.
8639 (create_possibly_reversed_range): Same.
8640 (equal_op1_op2_relation): Same.
8641 (not_equal_op1_op2_relation): Same.
8642 (lt_op1_op2_relation): Same.
8643 (le_op1_op2_relation): Same.
8644 (gt_op1_op2_relation): Same.
8645 (ge_op1_op2_relation): Same.
8646 (operator_mult::op1_range): Same.
8647 (operator_exact_divide::op1_range): Same.
8648 (operator_lshift::op1_range): Same.
8649 (operator_rshift::op1_range): Same.
8650 (operator_cast::op1_range): Same.
8651 (operator_logical_and::fold_range): Same.
8652 (set_nonzero_range_from_mask): Same.
8653 (operator_bitwise_or::op1_range): Same.
8654 (operator_bitwise_xor::op1_range): Same.
8655 (operator_addr_expr::fold_range): Same.
8656 (pointer_plus_operator::wi_fold): Same.
8657 (pointer_or_operator::op1_range): Same.
8658 (INT): Same.
8659 (UINT): Same.
8660 (INT16): Same.
8661 (UINT16): Same.
8662 (SCHAR): Same.
8663 (UCHAR): Same.
8664 (range_op_cast_tests): Same.
8665 (range_op_lshift_tests): Same.
8666 (range_op_rshift_tests): Same.
8667 (range_op_bitwise_and_tests): Same.
8668 (range_relational_tests): Same.
8669 * range.cc (range_zero): Same.
8670 (range_nonzero): Same.
8671 * range.h (range_true): Same.
8672 (range_false): Same.
8673 (range_true_and_false): Same.
8674 * tree-data-ref.cc (split_constant_offset_1): Same.
8675 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
8676 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
8677 (find_unswitching_predicates_for_bb): Same.
8678 * tree-ssa-phiopt.cc (value_replacement): Same.
8679 * tree-ssa-threadbackward.cc
8680 (back_threader::find_taken_edge_cond): Same.
8681 * tree-ssanames.cc (ssa_name_has_boolean_range): Same.
8682 * tree-vrp.cc (find_case_label_range): Same.
8683 * value-query.cc (range_query::get_tree_range): Same.
8684 * value-range.cc (irange::set_nonnegative): Same.
8685 (frange::contains_p): Same.
8686 (frange::singleton_p): Same.
8687 (frange::internal_singleton_p): Same.
8688 (irange::irange_set): Same.
8689 (irange::irange_set_1bit_anti_range): Same.
8690 (irange::irange_set_anti_range): Same.
8691 (irange::set): Same.
8692 (irange::operator==): Same.
8693 (irange::singleton_p): Same.
8694 (irange::contains_p): Same.
8695 (irange::set_range_from_nonzero_bits): Same.
8696 (DEFINE_INT_RANGE_INSTANCE): Same.
8697 (INT): Same.
8698 (UINT): Same.
8699 (SCHAR): Same.
8700 (UINT128): Same.
8701 (UCHAR): Same.
8702 (range): New.
8703 (tree_range): New.
8704 (range_int): New.
8705 (range_uint): New.
8706 (range_uint128): New.
8707 (range_uchar): New.
8708 (range_char): New.
8709 (build_range3): Convert to irange wide_int API.
8710 (range_tests_irange3): Same.
8711 (range_tests_int_range_max): Same.
8712 (range_tests_strict_enum): Same.
8713 (range_tests_misc): Same.
8714 (range_tests_nonzero_bits): Same.
8715 (range_tests_nan): Same.
8716 (range_tests_signed_zeros): Same.
8717 * value-range.h (Value_Range::Value_Range): Same.
8718 (irange::set): Same.
8719 (irange::nonzero_p): Same.
8720 (irange::contains_p): Same.
8721 (range_includes_zero_p): Same.
8722 (irange::set_nonzero): Same.
8723 (irange::set_zero): Same.
8724 (contains_zero_p): Same.
8725 (frange::contains_p): Same.
8726 * vr-values.cc
8727 (simplify_using_ranges::op_with_boolean_value_range_p): Same.
8728 (bounds_of_var_in_loop): Same.
8729 (simplify_using_ranges::legacy_fold_cond_overflow): Same.
8730
8731 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8732
8733 * value-range.cc (irange::irange_union): Rename to...
8734 (irange::union_): ...this.
8735 (irange::irange_intersect): Rename to...
8736 (irange::intersect): ...this.
8737 * value-range.h (irange::union_): Delete.
8738 (irange::intersect): Delete.
8739
8740 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8741
8742 * vr-values.cc (bounds_of_var_in_loop): Convert to irange API.
8743
8744 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8745
8746 * vr-values.cc (check_for_binary_op_overflow): Tidy up by using
8747 ranger API.
8748 (compare_ranges): Delete.
8749 (compare_range_with_value): Delete.
8750 (bounds_of_var_in_loop): Tidy up by using ranger API.
8751 (simplify_using_ranges::fold_cond_with_ops): Cleanup and rename
8752 from vrp_evaluate_conditional_warnv_with_ops_using_ranges.
8753 (simplify_using_ranges::legacy_fold_cond_overflow): Remove
8754 strict_overflow_p and only_ranges.
8755 (simplify_using_ranges::legacy_fold_cond): Adjust call to
8756 legacy_fold_cond_overflow.
8757 (simplify_using_ranges::simplify_abs_using_ranges): Adjust for
8758 rename.
8759 (range_fits_type_p): Rename value_range to irange.
8760 * vr-values.h (range_fits_type_p): Adjust prototype.
8761
8762 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8763
8764 * value-range.cc (irange::irange_set_anti_range): Remove uses of
8765 tree_lower_bound and tree_upper_bound.
8766 (irange::verify_range): Same.
8767 (irange::operator==): Same.
8768 (irange::singleton_p): Same.
8769 * value-range.h (irange::tree_lower_bound): Delete.
8770 (irange::tree_upper_bound): Delete.
8771 (irange::lower_bound): Delete.
8772 (irange::upper_bound): Delete.
8773 (irange::zero_p): Remove uses of tree_lower_bound and
8774 tree_upper_bound.
8775
8776 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8777
8778 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Remove
8779 kind() call.
8780 (determine_value_range): Same.
8781 (record_nonwrapping_iv): Same.
8782 (infer_loop_bounds_from_signedness): Same.
8783 (scev_var_range_cant_overflow): Same.
8784 * tree-vrp.cc (operand_less_p): Delete.
8785 * tree-vrp.h (operand_less_p): Delete.
8786 * value-range.cc (get_legacy_range): Remove uses of deprecated API.
8787 (irange::value_inside_range): Delete.
8788 * value-range.h (vrange::kind): Delete.
8789 (irange::num_pairs): Remove check of m_kind.
8790 (irange::min): Delete.
8791 (irange::max): Delete.
8792
8793 2023-05-01 Aldy Hernandez <aldyh@redhat.com>
8794
8795 * gimple-fold.cc (maybe_fold_comparisons_from_match_pd): Adjust
8796 for vrange_storage.
8797 * gimple-range-cache.cc (sbr_vector::sbr_vector): Same.
8798 (sbr_vector::grow): Same.
8799 (sbr_vector::set_bb_range): Same.
8800 (sbr_vector::get_bb_range): Same.
8801 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
8802 (sbr_sparse_bitmap::set_bb_range): Same.
8803 (sbr_sparse_bitmap::get_bb_range): Same.
8804 (block_range_cache::block_range_cache): Same.
8805 (ssa_global_cache::ssa_global_cache): Same.
8806 (ssa_global_cache::get_global_range): Same.
8807 (ssa_global_cache::set_global_range): Same.
8808 * gimple-range-cache.h: Same.
8809 * gimple-range-edge.cc
8810 (gimple_outgoing_range::gimple_outgoing_range): Same.
8811 (gimple_outgoing_range::switch_edge_range): Same.
8812 (gimple_outgoing_range::calc_switch_ranges): Same.
8813 * gimple-range-edge.h: Same.
8814 * gimple-range-infer.cc
8815 (infer_range_manager::infer_range_manager): Same.
8816 (infer_range_manager::get_nonzero): Same.
8817 (infer_range_manager::maybe_adjust_range): Same.
8818 (infer_range_manager::add_range): Same.
8819 * gimple-range-infer.h: Rename obstack_vrange_allocator to
8820 vrange_allocator.
8821 * tree-core.h (struct irange_storage_slot): Remove.
8822 (struct tree_ssa_name): Remove irange_info and frange_info. Make
8823 range_info a pointer to vrange_storage.
8824 * tree-ssanames.cc (range_info_fits_p): Adjust for vrange_storage.
8825 (range_info_alloc): Same.
8826 (range_info_free): Same.
8827 (range_info_get_range): Same.
8828 (range_info_set_range): Same.
8829 (get_nonzero_bits): Same.
8830 * value-query.cc (get_ssa_name_range_info): Same.
8831 * value-range-storage.cc (class vrange_internal_alloc): New.
8832 (class vrange_obstack_alloc): New.
8833 (class vrange_ggc_alloc): New.
8834 (vrange_allocator::vrange_allocator): New.
8835 (vrange_allocator::~vrange_allocator): New.
8836 (vrange_storage::alloc_slot): New.
8837 (vrange_allocator::alloc): New.
8838 (vrange_allocator::free): New.
8839 (vrange_allocator::clone): New.
8840 (vrange_allocator::clone_varying): New.
8841 (vrange_allocator::clone_undefined): New.
8842 (vrange_storage::alloc): New.
8843 (vrange_storage::set_vrange): Remove slot argument.
8844 (vrange_storage::get_vrange): Same.
8845 (vrange_storage::fits_p): Same.
8846 (vrange_storage::equal_p): New.
8847 (irange_storage::write_lengths_address): New.
8848 (irange_storage::lengths_address): New.
8849 (irange_storage_slot::alloc_slot): Remove.
8850 (irange_storage::alloc): New.
8851 (irange_storage_slot::irange_storage_slot): Remove.
8852 (irange_storage::irange_storage): New.
8853 (write_wide_int): New.
8854 (irange_storage_slot::set_irange): Remove.
8855 (irange_storage::set_irange): New.
8856 (read_wide_int): New.
8857 (irange_storage_slot::get_irange): Remove.
8858 (irange_storage::get_irange): New.
8859 (irange_storage_slot::size): Remove.
8860 (irange_storage::equal_p): New.
8861 (irange_storage_slot::num_wide_ints_needed): Remove.
8862 (irange_storage::size): New.
8863 (irange_storage_slot::fits_p): Remove.
8864 (irange_storage::fits_p): New.
8865 (irange_storage_slot::dump): Remove.
8866 (irange_storage::dump): New.
8867 (frange_storage_slot::alloc_slot): Remove.
8868 (frange_storage::alloc): New.
8869 (frange_storage_slot::set_frange): Remove.
8870 (frange_storage::set_frange): New.
8871 (frange_storage_slot::get_frange): Remove.
8872 (frange_storage::get_frange): New.
8873 (frange_storage_slot::fits_p): Remove.
8874 (frange_storage::equal_p): New.
8875 (frange_storage::fits_p): New.
8876 (ggc_vrange_allocator): New.
8877 (ggc_alloc_vrange_storage): New.
8878 * value-range-storage.h (class vrange_storage): Rewrite.
8879 (class irange_storage): Rewrite.
8880 (class frange_storage): Rewrite.
8881 (class obstack_vrange_allocator): Remove.
8882 (class ggc_vrange_allocator): Remove.
8883 (vrange_allocator::alloc_vrange): Remove.
8884 (vrange_allocator::alloc_irange): Remove.
8885 (vrange_allocator::alloc_frange): Remove.
8886 (ggc_alloc_vrange_storage): New.
8887 * value-range.h (class irange): Rename vrange_allocator to
8888 irange_storage.
8889 (class frange): Same.
8890
8891 2023-04-30 Roger Sayle <roger@nextmovesoftware.com>
8892
8893 * config/stormy16/stormy16.md (neghi2): Rewrite pattern using
8894 inc to avoid clobbering the carry flag.
8895
8896 2023-04-30 Andrew Pinski <apinski@marvell.com>
8897
8898 * match.pd: Add patterns for "a != 0 ? FUNC(a) : CST"
8899 for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
8900
8901 2023-04-30 Andrew Pinski <apinski@marvell.com>
8902
8903 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
8904 Allow some builtin/internal function calls which
8905 are known not to trap/throw.
8906 (phiopt_worker::match_simplify_replacement):
8907 Use name instead of getting the lhs again.
8908
8909 2023-04-30 Joakim Nohlgård <joakim@nohlgard.se>
8910
8911 * configure: Regenerate.
8912 * configure.ac: Use ld -r in the check for HAVE_LD_RO_RW_SECTION_MIXING
8913
8914 2023-04-29 Hans-Peter Nilsson <hp@axis.com>
8915
8916 * reload1.cc (emit_insn_if_valid_for_reload_1): Rename from
8917 emit_insn_if_valid_for_reload.
8918 (emit_insn_if_valid_for_reload): Call new helper, and if a SET fails
8919 to be recognized, also try emitting a parallel that clobbers
8920 TARGET_FLAGS_REGNUM, as applicable.
8921
8922 2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
8923
8924 * config/stormy16/stormy16.md (neghi2): Convert from a define_expand
8925 to a define_insn.
8926 (*rotatehi_1): New define_insn for efficient 2 insn sequence.
8927 (*rotatehi_8, *rotaterthi_8): New define_insn to emit a swpb.
8928
8929 2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
8930
8931 * config/stormy16/stormy16.md (any_lshift): New code iterator.
8932 (any_or_plus): Likewise.
8933 (any_rotate): Likewise.
8934 (*<any_lshift>_and_internal): New define_insn_and_split to
8935 recognize a logical shift followed by an AND, and split it
8936 again after reload.
8937 (*swpn): New define_insn matching xstormy16's swpn.
8938 (*swpn_zext): New define_insn recognizing swpn followed by
8939 zero_extendqihi2, i.e. with the high byte set to zero.
8940 (*swpn_sext): Likewise, for swpn followed by cbw.
8941 (*swpn_sext_2): Likewise, for an alternate RTL form.
8942 (*swpn_zext_ior): A pre-reload splitter so that an swpn+zext+ior
8943 sequence is split in the correct place to recognize the *swpn_zext
8944 followed by any_or_plus (ior, xor or plus) instruction.
8945
8946 2023-04-29 Mikael Pettersson <mikpelinux@gmail.com>
8947
8948 PR target/105525
8949 * config.gcc (vax-*-linux*): Add glibc-stdint.h.
8950 (lm32-*-uclinux*): Likewise.
8951
8952 2023-04-29 Fei Gao <gaofei@eswincomputing.com>
8953
8954 * config/riscv/riscv.cc (riscv_avoid_save_libcall): helper function
8955 for riscv_use_save_libcall.
8956 (riscv_use_save_libcall): call riscv_avoid_save_libcall.
8957 (riscv_compute_frame_info): restructure to decouple stack allocation
8958 for rv32e w/o save-restore.
8959
8960 2023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
8961
8962 * doc/install.texi: Fix documentation typo
8963
8964 2023-04-28 Matevos Mehrabyan <matevosmehrabyan@gmail.com>
8965
8966 * config/riscv/iterators.md (only_div, paired_mod): New iterators.
8967 (u): Add div/udiv cases.
8968 * config/riscv/riscv-protos.h (riscv_use_divmod_expander): Prototype.
8969 * config/riscv/riscv.cc (struct riscv_tune_param): Add field for
8970 divmod expansion.
8971 (rocket_tune_info, sifive_7_tune_info): Initialize new field.
8972 (thead_c906_tune_info): Likewise.
8973 (optimize_size_tune_info): Likewise.
8974 (riscv_use_divmod_expander): New function.
8975 * config/riscv/riscv.md (<u>divmod<mode>4): New expander.
8976
8977 2023-04-28 Karen Sargsyan <karen1999411@gmail.com>
8978
8979 * config/riscv/bitmanip.md: Added clmulr instruction.
8980 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
8981 * config/riscv/riscv.md: (UNSPEC_CLMULR): Add new unspec type.
8982 (type): Add clmul
8983 * config/riscv/riscv-cmo.def: Added built-in function for clmulr.
8984 * config/riscv/crypto.md: Move clmul[h] instructions to bitmanip.md.
8985 * config/riscv/riscv-scalar-crypto.def: Move clmul[h] built-in
8986 functions to riscv-cmo.def.
8987 * config/riscv/generic.md: Add clmul to list of instructions
8988 using the generic_imul reservation.
8989
8990 2023-04-28 Jivan Hakobyan <jivanhakobyan9@gmail.com>
8991
8992 * config/riscv/bitmanip.md: Added expanders for minu/maxu instructions
8993
8994 2023-04-28 Andrew Pinski <apinski@marvell.com>
8995
8996 PR tree-optimization/100958
8997 * tree-ssa-phiopt.cc (two_value_replacement): Remove.
8998 (pass_phiopt::execute): Don't call two_value_replacement.
8999 * match.pd (a !=/== CST1 ? CST2 : CST3): Add pattern to
9000 handle what two_value_replacement did.
9001
9002 2023-04-28 Andrew Pinski <apinski@marvell.com>
9003
9004 * match.pd: Add patterns for
9005 "(A CMP B) ? MIN/MAX<A, C> : MIN/MAX <B, C>".
9006
9007 2023-04-28 Andrew Pinski <apinski@marvell.com>
9008
9009 * match.pd: Factor out the deciding the min/max from
9010 the "(cond (cmp (convert1? x) c1) (convert2? x) c2)"
9011 pattern to ...
9012 * fold-const.cc (minmax_from_comparison): this new function.
9013 * fold-const.h (minmax_from_comparison): New prototype.
9014
9015 2023-04-28 Roger Sayle <roger@nextmovesoftware.com>
9016
9017 PR rtl-optimization/109476
9018 * lower-subreg.cc: Include explow.h for force_reg.
9019 (find_decomposable_shift_zext): Pass an additional SPEED_P argument.
9020 If decomposing a suitable LSHIFTRT and we're not splitting
9021 ZERO_EXTEND (based on the current SPEED_P), then use a ZERO_EXTEND
9022 instead of setting a high part SUBREG to zero, which helps combine.
9023 (decompose_multiword_subregs): Update call to resolve_shift_zext.
9024
9025 2023-04-28 Richard Biener <rguenther@suse.de>
9026
9027 * tree-vect-data-refs.cc (vect_analyze_data_refs): Always
9028 consider scatters.
9029 * tree-vect-stmts.cc (vect_model_store_cost): Pass in the
9030 gather-scatter info and cost emulated scatters accordingly.
9031 (get_load_store_type): Support emulated scatters.
9032 (vectorizable_store): Likewise. Emulate them by extracting
9033 scalar offsets and data, doing scalar stores.
9034
9035 2023-04-28 Richard Biener <rguenther@suse.de>
9036
9037 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
9038 Tame down element extracts and scalar loads for gather/scatter
9039 similar to elementwise strided accesses.
9040
9041 2023-04-28 Pan Li <pan2.li@intel.com>
9042 kito-cheng <kito.cheng@sifive.com>
9043
9044 * config/riscv/vector.md: Add new define split to perform
9045 the simplification.
9046
9047 2023-04-28 Richard Biener <rguenther@suse.de>
9048
9049 PR ipa/109652
9050 * ipa-param-manipulation.cc
9051 (ipa_param_body_adjustments::modify_expression): Allow
9052 conversion of a register to a non-register type. Elide
9053 conversions inside BIT_FIELD_REFs.
9054
9055 2023-04-28 Richard Biener <rguenther@suse.de>
9056
9057 PR tree-optimization/109644
9058 * tree-cfg.cc (verify_types_in_gimple_reference): Check
9059 register constraints on the outermost VIEW_CONVERT_EXPR
9060 only. Do not allow register or invariant bases on
9061 multi-level or possibly variable index handled components.
9062
9063 2023-04-28 Richard Biener <rguenther@suse.de>
9064
9065 * gimplify.cc (gimplify_compound_lval): When there's a
9066 non-register type produced by one of the handled component
9067 operations make sure we get a non-register base.
9068
9069 2023-04-28 Richard Biener <rguenther@suse.de>
9070
9071 PR tree-optimization/108752
9072 * tree-vect-generic.cc (build_replicated_const): Rename
9073 to build_replicated_int_cst and move to tree.{h,cc}.
9074 (do_plus_minus): Adjust.
9075 (do_negate): Likewise.
9076 * tree-vect-stmts.cc (vectorizable_operation): Emit emulated
9077 arithmetic vector operations in lowered form.
9078 * tree.h (build_replicated_int_cst): Declare.
9079 * tree.cc (build_replicated_int_cst): Moved from
9080 tree-vect-generic.cc build_replicated_const.
9081
9082 2023-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9083
9084 PR target/99195
9085 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): Rename to...
9086 (aarch64_rbit<mode><vczle><vczbe>): ... This.
9087 (neg<mode>2): Rename to...
9088 (neg<mode>2<vczle><vczbe>): ... This.
9089 (abs<mode>2): Rename to...
9090 (abs<mode>2<vczle><vczbe>): ... This.
9091 (aarch64_abs<mode>): Rename to...
9092 (aarch64_abs<mode><vczle><vczbe>): ... This.
9093 (one_cmpl<mode>2): Rename to...
9094 (one_cmpl<mode>2<vczle><vczbe>): ... This.
9095 (clrsb<mode>2): Rename to...
9096 (clrsb<mode>2<vczle><vczbe>): ... This.
9097 (clz<mode>2): Rename to...
9098 (clz<mode>2<vczle><vczbe>): ... This.
9099 (popcount<mode>2): Rename to...
9100 (popcount<mode>2<vczle><vczbe>): ... This.
9101
9102 2023-04-28 Jakub Jelinek <jakub@redhat.com>
9103
9104 * gimple-range-op.cc (class cfn_sqrt): New type.
9105 (op_cfn_sqrt): New variable.
9106 (gimple_range_op_handler::maybe_builtin_call): Handle
9107 CASE_CFN_SQRT{,_FN}.
9108
9109 2023-04-28 Aldy Hernandez <aldyh@redhat.com>
9110 Jakub Jelinek <jakub@redhat.com>
9111
9112 * value-range.h (frange_nextafter): Declare.
9113 * gimple-range-op.cc (class cfn_sincos): New.
9114 (op_cfn_sin, op_cfn_cos): New variables.
9115 (gimple_range_op_handler::maybe_builtin_call): Handle
9116 CASE_CFN_{SIN,COS}{,_FN}.
9117
9118 2023-04-28 Jakub Jelinek <jakub@redhat.com>
9119
9120 * target.def (libm_function_max_error): New target hook.
9121 * doc/tm.texi.in (TARGET_LIBM_FUNCTION_MAX_ERROR): Add.
9122 * doc/tm.texi: Regenerated.
9123 * targhooks.h (default_libm_function_max_error,
9124 glibc_linux_libm_function_max_error): Declare.
9125 * targhooks.cc: Include case-cfn-macros.h.
9126 (default_libm_function_max_error,
9127 glibc_linux_libm_function_max_error): New functions.
9128 * config/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
9129 * config/linux-protos.h (linux_libm_function_max_error): Declare.
9130 * config/linux.cc: Include target.h and targhooks.h.
9131 (linux_libm_function_max_error): New function.
9132 * config/arc/arc.cc: Include targhooks.h and case-cfn-macros.h.
9133 (arc_libm_function_max_error): New function.
9134 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
9135 * config/i386/i386.cc (ix86_libc_has_fast_function): Formatting fix.
9136 (ix86_libm_function_max_error): New function.
9137 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
9138 * config/rs6000/rs6000-protos.h
9139 (rs6000_linux_libm_function_max_error): Declare.
9140 * config/rs6000/rs6000-linux.cc: Include target.h, targhooks.h, tree.h
9141 and case-cfn-macros.h.
9142 (rs6000_linux_libm_function_max_error): New function.
9143 * config/rs6000/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
9144 * config/rs6000/linux64.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
9145 * config/or1k/or1k.cc: Include targhooks.h and case-cfn-macros.h.
9146 (or1k_libm_function_max_error): New function.
9147 (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
9148
9149 2023-04-28 Alexandre Oliva <oliva@adacore.com>
9150
9151 * gimple-harden-conditionals.cc (insert_edge_check_and_trap):
9152 Move detach value calls...
9153 (pass_harden_conditional_branches::execute): ... here.
9154 (pass_harden_compares::execute): Detach values before
9155 compares.
9156
9157 2023-04-27 Andrew Stubbs <ams@codesourcery.com>
9158
9159 * config/gcn/gcn-valu.md (cmul<conj_op><mode>3): Use gcn_gen_undef.
9160 (cml<addsub_as><mode>4): Likewise.
9161 (vec_addsub<mode>3): Likewise.
9162 (cadd<rot><mode>3): Likewise.
9163 (vec_fmaddsub<mode>4): Likewise.
9164 (vec_fmsubadd<mode>4): Likewise, and use sub for the odd lanes.
9165
9166 2023-04-27 Andrew Pinski <apinski@marvell.com>
9167
9168 * tree-ssa-phiopt.cc (phiopt_early_allow): Allow for
9169 up to 2 min/max expressions in the sequence/match code.
9170
9171 2023-04-27 Andrew Pinski <apinski@marvell.com>
9172
9173 * rtlanal.cc (may_trap_p_1): Treat SMIN/SMAX similar as
9174 COMPARISON.
9175 * tree-eh.cc (operation_could_trap_helper_p): Treate
9176 MIN_EXPR/MAX_EXPR similar as other comparisons.
9177
9178 2023-04-27 Andrew Pinski <apinski@marvell.com>
9179
9180 * tree-ssa-phiopt.cc (cond_store_replacement): Remove
9181 prototype.
9182 (cond_if_else_store_replacement): Likewise.
9183 (get_non_trapping): Likewise.
9184 (store_elim_worker): Move into ...
9185 (pass_cselim::execute): This.
9186
9187 2023-04-27 Andrew Pinski <apinski@marvell.com>
9188
9189 * tree-ssa-phiopt.cc (two_value_replacement): Remove
9190 prototype.
9191 (match_simplify_replacement): Likewise.
9192 (factor_out_conditional_conversion): Likewise.
9193 (value_replacement): Likewise.
9194 (minmax_replacement): Likewise.
9195 (spaceship_replacement): Likewise.
9196 (cond_removal_in_builtin_zero_pattern): Likewise.
9197 (hoist_adjacent_loads): Likewise.
9198 (tree_ssa_phiopt_worker): Move into ...
9199 (pass_phiopt::execute): this.
9200
9201 2023-04-27 Andrew Pinski <apinski@marvell.com>
9202
9203 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove
9204 do_store_elim argument and split that part out to ...
9205 (store_elim_worker): This new function.
9206 (pass_cselim::execute): Call store_elim_worker.
9207 (pass_phiopt::execute): Update call to tree_ssa_phiopt_worker.
9208
9209 2023-04-27 Jan Hubicka <jh@suse.cz>
9210
9211 * cfgloopmanip.h (unloop_loops): Export.
9212 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Unloop loops
9213 that no longer loop.
9214 * tree-ssa-loop-ivcanon.cc (unloop_loops): Export; do not free
9215 vectors of loops to unloop.
9216 (canonicalize_induction_variables): Free vectors here.
9217 (tree_unroll_loops_completely): Free vectors here.
9218
9219 2023-04-27 Richard Biener <rguenther@suse.de>
9220
9221 PR tree-optimization/109170
9222 * gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call):
9223 Handle __builtin_expect and similar via cfn_pass_through_arg1
9224 and inspecting the calls fnspec.
9225 * builtins.cc (builtin_fnspec): Handle BUILT_IN_EXPECT
9226 and BUILT_IN_EXPECT_WITH_PROBABILITY.
9227
9228 2023-04-27 Alexandre Oliva <oliva@adacore.com>
9229
9230 * genmultilib: Use CONFIG_SHELL to run sub-scripts.
9231
9232 2023-04-27 Aldy Hernandez <aldyh@redhat.com>
9233
9234 PR tree-optimization/109639
9235 * ipa-cp.cc (ipa_value_range_from_jfunc): Normalize range.
9236 (propagate_vr_across_jump_function): Same.
9237 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
9238 * ipa-prop.h (ipa_range_set_and_normalize): New.
9239 * value-range.cc (irange::set): Assert min and max are INTEGER_CST.
9240
9241 2023-04-27 Richard Biener <rguenther@suse.de>
9242
9243 * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Do not
9244 create a CTOR operand in the result when simplifying GIMPLE.
9245
9246 2023-04-27 Richard Biener <rguenther@suse.de>
9247
9248 * gimplify.cc (gimplify_compound_lval): When the base
9249 gimplified to a register make sure to split up chains
9250 of operations.
9251
9252 2023-04-27 Richard Biener <rguenther@suse.de>
9253
9254 PR ipa/109607
9255 * ipa-param-manipulation.h
9256 (ipa_param_body_adjustments::modify_expression): Add extra_stmts
9257 argument.
9258 * ipa-param-manipulation.cc
9259 (ipa_param_body_adjustments::modify_expression): Likewise.
9260 When we need a conversion and the replacement is a register
9261 split the conversion out.
9262 (ipa_param_body_adjustments::modify_assignment): Pass
9263 extra_stmts to RHS modify_expression.
9264
9265 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
9266
9267 * doc/extend.texi (Zero Length): Describe example.
9268
9269 2023-04-27 Richard Biener <rguenther@suse.de>
9270
9271 PR tree-optimization/109594
9272 * tree-ssa.cc (non_rewritable_mem_ref_base): Constrain
9273 what we rewrite to a register based on the above.
9274
9275 2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
9276
9277 * config/riscv/riscv.cc: Fix whitespace.
9278 * config/riscv/sync.md: Fix whitespace.
9279
9280 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
9281
9282 PR tree-optimization/108697
9283 * gimple-range-cache.cc (ssa_global_cache::clear_range): Do
9284 not clear the vector on an out of range query.
9285 (ssa_cache::dump): Use dump_range_query instead of get_range.
9286 (ssa_cache::dump_range_query): New.
9287 (ssa_lazy_cache::dump_range_query): New.
9288 (ssa_lazy_cache::set_range): New.
9289 * gimple-range-cache.h (ssa_cache::dump_range_query): New.
9290 (class ssa_lazy_cache): New.
9291 (ssa_lazy_cache::ssa_lazy_cache): New.
9292 (ssa_lazy_cache::~ssa_lazy_cache): New.
9293 (ssa_lazy_cache::get_range): New.
9294 (ssa_lazy_cache::clear_range): New.
9295 (ssa_lazy_cache::clear): New.
9296 (ssa_lazy_cache::dump): New.
9297 * gimple-range-path.cc (path_range_query::path_range_query): Do
9298 not allocate a ssa_cache object nor has_cache bitmap.
9299 (path_range_query::~path_range_query): Do not free objects.
9300 (path_range_query::clear_cache): Remove.
9301 (path_range_query::get_cache): Adjust.
9302 (path_range_query::set_cache): Remove.
9303 (path_range_query::dump): Don't call through a pointer.
9304 (path_range_query::internal_range_of_expr): Set cache directly.
9305 (path_range_query::reset_path): Clear cache directly.
9306 (path_range_query::ssa_range_in_phi): Fold with globals only.
9307 (path_range_query::compute_ranges_in_phis): Simply set range.
9308 (path_range_query::compute_ranges_in_block): Call cache directly.
9309 * gimple-range-path.h (class path_range_query): Replace bitmap
9310 and cache pointer with lazy cache object.
9311 * gimple-range.h (class assume_query): Use ssa_lazy_cache.
9312
9313 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
9314
9315 * gimple-range-cache.cc (ssa_cache::ssa_cache): Rename.
9316 (ssa_cache::~ssa_cache): Rename.
9317 (ssa_cache::has_range): New.
9318 (ssa_cache::get_range): Rename.
9319 (ssa_cache::set_range): Rename.
9320 (ssa_cache::clear_range): Rename.
9321 (ssa_cache::clear): Rename.
9322 (ssa_cache::dump): Rename and use get_range.
9323 (ranger_cache::get_global_range): Use get_range and set_range.
9324 (ranger_cache::range_of_def): Use get_range.
9325 * gimple-range-cache.h (class ssa_cache): Rename class and methods.
9326 (class ranger_cache): Use ssa_cache.
9327 * gimple-range-path.cc (path_range_query::path_range_query): Use
9328 ssa_cache.
9329 (path_range_query::get_cache): Use get_range.
9330 (path_range_query::set_cache): Use set_range.
9331 * gimple-range-path.h (class path_range_query): Use ssa_cache.
9332 * gimple-range.cc (assume_query::assume_range_p): Use get_range.
9333 (assume_query::range_of_expr): Use get_range.
9334 (assume_query::assume_query): Use set_range.
9335 (assume_query::calculate_op): Use get_range and set_range.
9336 * gimple-range.h (class assume_query): Use ssa_cache.
9337
9338 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
9339
9340 * gimple-range-cache.cc (sbr_vector::sbr_vector): Add parameter
9341 and local to optionally zero memory.
9342 (br_vector::grow): Only zero memory if flag is set.
9343 (class sbr_lazy_vector): New.
9344 (sbr_lazy_vector::sbr_lazy_vector): New.
9345 (sbr_lazy_vector::set_bb_range): New.
9346 (sbr_lazy_vector::get_bb_range): New.
9347 (sbr_lazy_vector::bb_range_p): New.
9348 (block_range_cache::set_bb_range): Check flags and Use sbr_lazy_vector.
9349 * gimple-range-gori.cc (gori_map::calculate_gori): Use
9350 param_vrp_switch_limit.
9351 (gori_compute::gori_compute): Use param_vrp_switch_limit.
9352 * params.opt (vrp_sparse_threshold): Rename from evrp_sparse_threshold.
9353 (vrp_switch_limit): Rename from evrp_switch_limit.
9354 (vrp_vector_threshold): New.
9355
9356 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
9357
9358 * value-relation.cc (dom_oracle::query_relation): Check early for lack
9359 of any relation.
9360 * value-relation.h (equiv_oracle::has_equiv_p): New.
9361
9362 2023-04-26 Andrew MacLeod <amacleod@redhat.com>
9363
9364 PR tree-optimization/109417
9365 * gimple-range-gori.cc (range_def_chain::register_dependency):
9366 Save the ssa version number, not the pointer.
9367 (gori_compute::may_recompute_p): No need to check if a dependency
9368 is in the free list.
9369 * gimple-range-gori.h (class range_def_chain): Change ssa1 and ssa2
9370 fields to be unsigned int instead of trees.
9371 (ange_def_chain::depend1): Adjust.
9372 (ange_def_chain::depend2): Adjust.
9373 * gimple-range.h: Include "ssa.h" to inline ssa_name().
9374
9375 2023-04-26 David Edelsohn <dje.gcc@gmail.com>
9376
9377 * config/rs6000/aix72.h (TARGET_DEFAULT): Use ISA_2_6_MASKS_SERVER.
9378 * config/rs6000/aix73.h (TARGET_DEFAULT): Use ISA_2_7_MASKS_SERVER.
9379 (PROCESSOR_DEFAULT): Use PROCESSOR_POWER8.
9380
9381 2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
9382
9383 PR target/104338
9384 * config/riscv/riscv-protos.h: Add helper function stubs.
9385 * config/riscv/riscv.cc: Add helper functions for subword masking.
9386 * config/riscv/riscv.opt: Add command-line flags -minline-atomics and
9387 -mno-inline-atomics.
9388 * config/riscv/sync.md: Add masking logic and inline asm for fetch_and_op,
9389 fetch_and_nand, CAS, and exchange ops.
9390 * doc/invoke.texi: Add blurb regarding new command-line flags
9391 -minline-atomics and -mno-inline-atomics.
9392
9393 2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9394
9395 * config/aarch64/aarch64-simd.md (aarch64_rshrn2<mode>_insn_le):
9396 Reimplement using standard RTL codes instead of unspec.
9397 (aarch64_rshrn2<mode>_insn_be): Likewise.
9398 (aarch64_rshrn2<mode>): Adjust for the above.
9399 * config/aarch64/aarch64.md (UNSPEC_RSHRN): Delete.
9400
9401 2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9402
9403 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le): Reimplement
9404 with standard RTL codes instead of an UNSPEC.
9405 (aarch64_rshrn<mode>_insn_be): Likewise.
9406 (aarch64_rshrn<mode>): Adjust for the above.
9407 * config/aarch64/predicates.md (aarch64_simd_rshrn_imm_vec): Define.
9408
9409 2023-04-26 Pan Li <pan2.li@intel.com>
9410 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
9411
9412 * config/riscv/riscv.cc (riscv_classify_address): Allow
9413 const0_rtx for the RVV load/store.
9414
9415 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9416
9417 * range-op.cc (range_op_cast_tests): Remove legacy support.
9418 * value-range-storage.h (vrange_allocator::alloc_irange): Same.
9419 * value-range.cc (irange::operator=): Same.
9420 (get_legacy_range): Same.
9421 (irange::copy_legacy_to_multi_range): Delete.
9422 (irange::copy_to_legacy): Delete.
9423 (irange::irange_set_anti_range): Delete.
9424 (irange::set): Remove legacy support.
9425 (irange::verify_range): Same.
9426 (irange::legacy_lower_bound): Delete.
9427 (irange::legacy_upper_bound): Delete.
9428 (irange::legacy_equal_p): Delete.
9429 (irange::operator==): Remove legacy support.
9430 (irange::singleton_p): Same.
9431 (irange::value_inside_range): Same.
9432 (irange::contains_p): Same.
9433 (intersect_ranges): Delete.
9434 (irange::legacy_intersect): Delete.
9435 (union_ranges): Delete.
9436 (irange::legacy_union): Delete.
9437 (irange::legacy_verbose_union_): Delete.
9438 (irange::legacy_verbose_intersect): Delete.
9439 (irange::irange_union): Remove legacy support.
9440 (irange::irange_intersect): Same.
9441 (irange::intersect): Same.
9442 (irange::invert): Same.
9443 (ranges_from_anti_range): Delete.
9444 (gt_pch_nx): Adjust for legacy removal.
9445 (gt_ggc_mx): Same.
9446 (range_tests_legacy): Delete.
9447 (range_tests_misc): Adjust for legacy removal.
9448 (range_tests): Same.
9449 * value-range.h (class irange): Same.
9450 (irange::legacy_mode_p): Delete.
9451 (ranges_from_anti_range): Delete.
9452 (irange::nonzero_p): Adjust for legacy removal.
9453 (irange::lower_bound): Same.
9454 (irange::upper_bound): Same.
9455 (irange::union_): Same.
9456 (irange::intersect): Same.
9457 (irange::set_nonzero): Same.
9458 (irange::set_zero): Same.
9459 * vr-values.cc (simplify_using_ranges::legacy_fold_cond_overflow): Same.
9460
9461 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9462
9463 * value-range.cc (irange::copy_legacy_to_multi_range): Rewrite use
9464 of range_has_numeric_bounds_p with irange API.
9465 (range_has_numeric_bounds_p): Delete.
9466 * value-range.h (range_has_numeric_bounds_p): Delete.
9467
9468 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9469
9470 * tree-data-ref.cc (compute_distributive_range): Replace uses of
9471 range_int_cst_p with irange API.
9472 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.
9473 * tree-vrp.h (range_int_cst_p): Delete.
9474 * vr-values.cc (check_for_binary_op_overflow): Replace usees of
9475 range_int_cst_p with irange API.
9476 (vr_set_zero_nonzero_bits): Same.
9477 (range_fits_type_p): Same.
9478 (simplify_using_ranges::simplify_casted_cond): Same.
9479 * tree-vrp.cc (range_int_cst_p): Remove.
9480
9481 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9482
9483 * tree-ssa-strlen.cc (compare_nonzero_chars): Convert to wide_ints.
9484
9485 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9486
9487 * builtins.cc (expand_builtin_strnlen): Rewrite deprecated irange
9488 API uses to new API.
9489 * gimple-predicate-analysis.cc (find_var_cmp_const): Same.
9490 * internal-fn.cc (get_min_precision): Same.
9491 * match.pd: Same.
9492 * tree-affine.cc (expr_to_aff_combination): Same.
9493 * tree-data-ref.cc (dr_step_indicator): Same.
9494 * tree-dfa.cc (get_ref_base_and_extent): Same.
9495 * tree-scalar-evolution.cc (iv_can_overflow_p): Same.
9496 * tree-ssa-phiopt.cc (two_value_replacement): Same.
9497 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
9498 * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
9499 * tree-ssa-strlen.cc (compare_nonzero_chars): Same.
9500 * tree-switch-conversion.cc (bit_test_cluster::emit): Same.
9501 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Same.
9502 * tree.cc (get_range_pos_neg): Same.
9503
9504 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9505
9506 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Use
9507 vrange::dump instead of ad-hoc dumper.
9508 * tree-ssa-strlen.cc (dump_strlen_info): Same.
9509 * value-range-pretty-print.cc (visit): Pass TDF_NOUID to
9510 dump_generic_node.
9511
9512 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9513
9514 * range-op.cc (operator_cast::op1_range): Use
9515 create_possibly_reversed_range.
9516 (operator_bitwise_and::simple_op1_range_solver): Same.
9517 * value-range.cc (swap_out_of_order_endpoints): Delete.
9518 (irange::set): Remove call to swap_out_of_order_endpoints.
9519
9520 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9521
9522 * builtins.cc (determine_block_size): Convert use of legacy API to
9523 get_legacy_range.
9524 * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same.
9525 (array_bounds_checker::check_array_ref): Same.
9526 * gimple-ssa-warn-restrict.cc
9527 (builtin_memref::extend_offset_range): Same.
9528 * ipa-cp.cc (ipcp_store_vr_results): Same.
9529 * ipa-fnsummary.cc (set_switch_stmt_execution_predicate): Same.
9530 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
9531 (ipa_write_jump_function): Same.
9532 * pointer-query.cc (get_size_range): Same.
9533 * tree-data-ref.cc (split_constant_offset): Same.
9534 * tree-ssa-strlen.cc (get_range): Same.
9535 (maybe_diag_stxncpy_trunc): Same.
9536 (strlen_pass::get_len_or_size): Same.
9537 (strlen_pass::count_nonzero_bytes_addr): Same.
9538 * tree-vect-patterns.cc (vect_get_range_info): Same.
9539 * value-range.cc (irange::maybe_anti_range): Remove.
9540 (get_legacy_range): New.
9541 (irange::copy_to_legacy): Use get_legacy_range.
9542 (ranges_from_anti_range): Same.
9543 * value-range.h (class irange): Remove maybe_anti_range.
9544 (get_legacy_range): New.
9545 * vr-values.cc (check_for_binary_op_overflow): Convert use of
9546 legacy API to get_legacy_range.
9547 (compare_ranges): Same.
9548 (compare_range_with_value): Same.
9549 (bounds_of_var_in_loop): Same.
9550 (find_case_label_ranges): Same.
9551 (simplify_using_ranges::simplify_switch_using_ranges): Same.
9552
9553 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9554
9555 * value-range-pretty-print.cc (vrange_printer::visit): Remove
9556 constant_p use.
9557 * value-range.cc (irange::constant_p): Remove.
9558 (irange::get_nonzero_bits_from_range): Remove constant_p use.
9559 * value-range.h (class irange): Remove constant_p.
9560 (irange::num_pairs): Remove constant_p use.
9561
9562 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9563
9564 * value-range.cc (irange::copy_legacy_to_multi_range): Remove
9565 symbolics support.
9566 (irange::set): Same.
9567 (irange::legacy_lower_bound): Same.
9568 (irange::legacy_upper_bound): Same.
9569 (irange::contains_p): Same.
9570 (range_tests_legacy): Same.
9571 (irange::normalize_addresses): Remove.
9572 (irange::normalize_symbolics): Remove.
9573 (irange::symbolic_p): Remove.
9574 * value-range.h (class irange): Remove symbolic_p,
9575 normalize_symbolics, and normalize_addresses.
9576 * vr-values.cc (simplify_using_ranges::two_valued_val_range_p):
9577 Remove symbolics support.
9578
9579 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9580
9581 * value-range.cc (irange::may_contain_p): Remove.
9582 * value-range.h (range_includes_zero_p): Rewrite may_contain_p
9583 usage with contains_p.
9584 * vr-values.cc (compare_range_with_value): Same.
9585
9586 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9587
9588 * tree-vrp.cc (supported_types_p): Remove.
9589 (defined_ranges_p): Remove.
9590 (range_fold_binary_expr): Remove.
9591 (range_fold_unary_expr): Remove.
9592 * tree-vrp.h (range_fold_unary_expr): Remove.
9593 (range_fold_binary_expr): Remove.
9594
9595 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9596
9597 * ipa-cp.cc (ipa_vr_operation_and_type_effects): Convert to ranger API.
9598 (ipa_value_range_from_jfunc): Same.
9599 (propagate_vr_across_jump_function): Same.
9600 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
9601 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
9602 * vr-values.cc (bounds_of_var_in_loop): Same.
9603
9604 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9605
9606 * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
9607 Add irange argument.
9608 (check_out_of_bounds_and_warn): Remove check for vr.
9609 (array_bounds_checker::check_array_ref): Remove pointer qualifier
9610 for vr and adjust accordingly.
9611 * gimple-array-bounds.h (get_value_range): Add irange argument.
9612 * value-query.cc (class equiv_allocator): Delete.
9613 (range_query::get_value_range): Delete.
9614 (range_query::range_query): Remove allocator access.
9615 (range_query::~range_query): Same.
9616 * value-query.h (get_value_range): Delete.
9617 * vr-values.cc
9618 (simplify_using_ranges::op_with_boolean_value_range_p): Remove
9619 call to get_value_range.
9620 (check_for_binary_op_overflow): Same.
9621 (simplify_using_ranges::legacy_fold_cond_overflow): Same.
9622 (simplify_using_ranges::simplify_abs_using_ranges): Same.
9623 (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
9624 (simplify_using_ranges::simplify_casted_cond): Same.
9625 (simplify_using_ranges::simplify_switch_using_ranges): Same.
9626 (simplify_using_ranges::two_valued_val_range_p): Same.
9627
9628 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9629
9630 * vr-values.cc
9631 (simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops):
9632 Rename to...
9633 (simplify_using_ranges::legacy_fold_cond_overflow): ...this.
9634 (simplify_using_ranges::vrp_visit_cond_stmt): Rename to...
9635 (simplify_using_ranges::legacy_fold_cond): ...this.
9636 (simplify_using_ranges::fold_cond): Rename
9637 vrp_evaluate_conditional_warnv_with_ops to
9638 legacy_fold_cond_overflow.
9639 * vr-values.h (class vr_values): Replace vrp_visit_cond_stmt and
9640 vrp_evaluate_conditional_warnv_with_ops with legacy_fold_cond and
9641 legacy_fold_cond_overflow respectively.
9642
9643 2023-04-26 Aldy Hernandez <aldyh@redhat.com>
9644
9645 * vr-values.cc (get_vr_for_comparison): Remove.
9646 (compare_name_with_value): Same.
9647 (vrp_evaluate_conditional_warnv_with_ops): Remove calls to
9648 compare_name_with_value.
9649 * vr-values.h: Remove compare_name_with_value.
9650 Remove get_vr_for_comparison.
9651
9652 2023-04-26 Roger Sayle <roger@nextmovesoftware.com>
9653
9654 * config/stormy16/stormy16.md (bswaphi2): New define_insn.
9655 (bswapsi2): New define_insn.
9656 (swaphi): New define_insn to exchange two registers (swpw).
9657 (define_peephole2): Recognize exchange of registers as swaphi.
9658
9659 2023-04-26 Richard Biener <rguenther@suse.de>
9660
9661 * gimple-range-path.cc (path_range_query::compute_outgoing_relations):
9662 Avoid last_stmt.
9663 * ipa-pure-const.cc (pass_nothrow::execute): Likewise.
9664 * predict.cc (apply_return_prediction): Likewise.
9665 * sese.cc (set_ifsese_condition): Likewise. Simplify.
9666 * tree-cfg.cc (assert_unreachable_fallthru_edge_p): Avoid last_stmt.
9667 (make_edges_bb): Likewise.
9668 (make_cond_expr_edges): Likewise.
9669 (end_recording_case_labels): Likewise.
9670 (make_gimple_asm_edges): Likewise.
9671 (cleanup_dead_labels): Likewise.
9672 (group_case_labels): Likewise.
9673 (gimple_can_merge_blocks_p): Likewise.
9674 (gimple_merge_blocks): Likewise.
9675 (find_taken_edge): Likewise. Also handle empty fallthru blocks.
9676 (gimple_duplicate_sese_tail): Avoid last_stmt.
9677 (find_loop_dist_alias): Likewise.
9678 (gimple_block_ends_with_condjump_p): Likewise.
9679 (gimple_purge_dead_eh_edges): Likewise.
9680 (gimple_purge_dead_abnormal_call_edges): Likewise.
9681 (pass_warn_function_return::execute): Likewise.
9682 (execute_fixup_cfg): Likewise.
9683 * tree-eh.cc (redirect_eh_edge_1): Likewise.
9684 (pass_lower_resx::execute): Likewise.
9685 (pass_lower_eh_dispatch::execute): Likewise.
9686 (cleanup_empty_eh): Likewise.
9687 * tree-if-conv.cc (if_convertible_bb_p): Likewise.
9688 (predicate_bbs): Likewise.
9689 (ifcvt_split_critical_edges): Likewise.
9690 * tree-loop-distribution.cc (create_edge_for_control_dependence):
9691 Likewise.
9692 (loop_distribution::transform_reduction_loop): Likewise.
9693 * tree-parloops.cc (transform_to_exit_first_loop_alt): Likewise.
9694 (try_transform_to_exit_first_loop_alt): Likewise.
9695 (transform_to_exit_first_loop): Likewise.
9696 (create_parallel_loop): Likewise.
9697 * tree-scalar-evolution.cc (get_loop_exit_condition): Likewise.
9698 * tree-ssa-dce.cc (mark_last_stmt_necessary): Likewise.
9699 (eliminate_unnecessary_stmts): Likewise.
9700 * tree-ssa-dom.cc
9701 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
9702 Likewise.
9703 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Likewise.
9704 (pass_tree_ifcombine::execute): Likewise.
9705 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Likewise.
9706 (should_duplicate_loop_header_p): Likewise.
9707 * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Likewise.
9708 (tree_estimate_loop_size): Likewise.
9709 (try_unroll_loop_completely): Likewise.
9710 * tree-ssa-loop-ivopts.cc (tree_ssa_iv_optimize_loop): Likewise.
9711 * tree-ssa-loop-manip.cc (ip_normal_pos): Likewise.
9712 (canonicalize_loop_ivs): Likewise.
9713 * tree-ssa-loop-niter.cc (determine_value_range): Likewise.
9714 (bound_difference): Likewise.
9715 (number_of_iterations_popcount): Likewise.
9716 (number_of_iterations_cltz): Likewise.
9717 (number_of_iterations_cltz_complement): Likewise.
9718 (simplify_using_initial_conditions): Likewise.
9719 (number_of_iterations_exit_assumptions): Likewise.
9720 (loop_niter_by_eval): Likewise.
9721 (estimate_numbers_of_iterations): Likewise.
9722
9723 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
9724
9725 * config/riscv/vector.md: Refine vmadc/vmsbc RA constraint.
9726
9727 2023-04-26 Kewen Lin <linkw@linux.ibm.com>
9728
9729 PR target/108758
9730 * config/rs6000/rs6000-builtins.def
9731 (__builtin_vsx_scalar_cmp_exp_qp_eq, __builtin_vsx_scalar_cmp_exp_qp_gt
9732 __builtin_vsx_scalar_cmp_exp_qp_lt,
9733 __builtin_vsx_scalar_cmp_exp_qp_unordered): Move from stanza ieee128-hw
9734 to power9-vector.
9735
9736 2023-04-26 Kewen Lin <linkw@linux.ibm.com>
9737
9738 PR target/109069
9739 * config/rs6000/altivec.md (sldoi_to_mov<mode>): Replace predicate
9740 easy_vector_constant with const_vector_each_byte_same, add
9741 handlings in preparation for !easy_vector_constant, and update
9742 VECTOR_UNIT_ALTIVEC_OR_VSX_P with VECTOR_MEM_ALTIVEC_OR_VSX_P.
9743 * config/rs6000/predicates.md (const_vector_each_byte_same): New
9744 predicate.
9745
9746 2023-04-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
9747
9748 * config/riscv/vector.md (*pred_cmp<mode>_merge_tie_mask): New pattern.
9749 (*pred_ltge<mode>_merge_tie_mask): Ditto.
9750 (*pred_cmp<mode>_scalar_merge_tie_mask): Ditto.
9751 (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto.
9752 (*pred_cmp<mode>_extended_scalar_merge_tie_mask): Ditto.
9753 (*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto.
9754 (*pred_cmp<mode>_narrow_merge_tie_mask): Ditto.
9755
9756 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
9757
9758 * config/riscv/vector.md: Fix redundant vmv1r.v.
9759
9760 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
9761
9762 * config/riscv/vector.md: Fix RA constraint.
9763
9764 2023-04-26 Pan Li <pan2.li@intel.com>
9765
9766 PR target/109272
9767 * tree-ssa-sccvn.cc (vn_reference_eq): add type vector subparts
9768 check for vn_reference equal.
9769
9770 2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
9771
9772 * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Add enum for
9773 auto-vectorization preference.
9774 (enum riscv_autovec_lmul_enum): Add enum for choosing LMUL of RVV
9775 auto-vectorization.
9776 * config/riscv/riscv.opt: Add compile option for RVV auto-vectorization.
9777
9778 2023-04-26 Jivan Hakobyan <jivanhakobyan9@gmail.com>
9779
9780 * config/riscv/bitmanip.md: Updated predicates of bclri<mode>_nottwobits
9781 and bclridisi_nottwobits patterns.
9782 * config/riscv/predicates.md: (not_uimm_extra_bit_or_nottwobits): Adjust
9783 predicate to avoid splitting arith constants.
9784 (const_nottwobits_not_arith_operand): New predicate.
9785
9786 2023-04-25 Hans-Peter Nilsson <hp@axis.com>
9787
9788 * recog.cc (peep2_attempt, peep2_update_life): Correct
9789 head-comment description of parameter match_len.
9790
9791 2023-04-25 Vineet Gupta <vineetg@rivosinc.com>
9792
9793 * config/riscv/riscv.md: riscv_move_integer() drop in_splitter arg.
9794 riscv_split_symbol() drop in_splitter arg.
9795 * config/riscv/riscv.cc: riscv_move_integer() drop in_splitter arg.
9796 riscv_split_symbol() drop in_splitter arg.
9797 riscv_force_temporary() drop in_splitter arg.
9798 * config/riscv/riscv-protos.h: riscv_move_integer() drop in_splitter arg.
9799 riscv_split_symbol() drop in_splitter arg.
9800
9801 2023-04-25 Eric Botcazou <ebotcazou@adacore.com>
9802
9803 * tree-ssa.cc (insert_debug_temp_for_var_def): Do not create
9804 superfluous debug temporaries for single GIMPLE assignments.
9805
9806 2023-04-25 Richard Biener <rguenther@suse.de>
9807
9808 PR tree-optimization/109609
9809 * attr-fnspec.h (arg_max_access_size_given_by_arg_p):
9810 Clarify semantics.
9811 * tree-ssa-alias.cc (check_fnspec): Correctly interpret
9812 the size given by arg_max_access_size_given_by_arg_p as
9813 maximum, not exact, size.
9814
9815 2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9816
9817 PR target/99195
9818 * config/aarch64/aarch64-simd.md (orn<mode>3): Rename to...
9819 (orn<mode>3<vczle><vczbe>): ... This.
9820 (bic<mode>3): Rename to...
9821 (bic<mode>3<vczle><vczbe>): ... This.
9822 (<su><maxmin><mode>3): Rename to...
9823 (<su><maxmin><mode>3<vczle><vczbe>): ... This.
9824
9825 2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9826
9827 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3): New define_expand.
9828 * config/aarch64/iterators.md (VQDIV): New mode iterator.
9829 (vnx2di): New mode attribute.
9830
9831 2023-04-25 Richard Biener <rguenther@suse.de>
9832
9833 PR rtl-optimization/109585
9834 * tree-ssa-alias.cc (aliasing_component_refs_p): Fix typo.
9835
9836 2023-04-25 Jakub Jelinek <jakub@redhat.com>
9837
9838 PR target/109566
9839 * config/rs6000/rs6000.cc (rs6000_is_valid_rotate_dot_mask): For
9840 !TARGET_64BIT, don't return true if UINTVAL (mask) << (63 - nb)
9841 is larger than signed int maximum.
9842
9843 2023-04-25 Martin Liska <mliska@suse.cz>
9844
9845 * doc/gcov.texi: Document the new "calls" field and document
9846 the API bump. Mention also "block_ids" for lines.
9847 * gcov.cc (output_intermediate_json_line): Output info about
9848 calls and extend branches as well.
9849 (generate_results): Bump version to 2.
9850 (output_line_details): Use block ID instead of a non-sensual
9851 index.
9852
9853 2023-04-25 Roger Sayle <roger@nextmovesoftware.com>
9854
9855 * config/stormy16/stormy16.md (zero_extendqihi2): Restore/fix
9856 length attribute for the first (memory operand) alternative.
9857
9858 2023-04-25 Victor Do Nascimento <victor.donascimento@arm.com>
9859
9860 * config/aarch64/aarch64-simd.md(aarch64_simd_stp<mode>): New.
9861 * config/aarch64/constraints.md: Make "Umn" relaxed memory
9862 constraint.
9863 * config/aarch64/iterators.md(ldpstp_vel_sz): New.
9864
9865 2023-04-25 Aldy Hernandez <aldyh@redhat.com>
9866
9867 * value-range.cc (frange::set): Adjust constructor.
9868 * value-range.h (nan_state::nan_state): Replace default
9869 constructor with one taking an argument.
9870
9871 2023-04-25 Aldy Hernandez <aldyh@redhat.com>
9872
9873 * ipa-cp.cc (ipa_range_contains_p): New.
9874 (decide_whether_version_node): Use it.
9875
9876 2023-04-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9877
9878 * tree-ssa-forwprop.cc (is_combined_permutation_identity): Try to
9879 simplify two successive VEC_PERM_EXPRs with same VLA mask,
9880 where mask chooses elements in reverse order.
9881
9882 2023-04-24 Andrew Pinski <apinski@marvell.com>
9883
9884 * tree-ssa-phiopt.cc (match_simplify_replacement): Add new arguments
9885 and support diamond shaped basic block form.
9886 (tree_ssa_phiopt_worker): Update call to match_simplify_replacement
9887
9888 2023-04-24 Andrew Pinski <apinski@marvell.com>
9889
9890 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
9891 Instead of calling last_and_only_stmt, look for the last statement
9892 manually.
9893
9894 2023-04-24 Andrew Pinski <apinski@marvell.com>
9895
9896 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
9897 New function.
9898 (match_simplify_replacement): Call
9899 empty_bb_or_one_feeding_into_p instead of doing it inline.
9900
9901 2023-04-24 Andrew Pinski <apinski@marvell.com>
9902
9903 PR tree-optimization/68894
9904 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove the
9905 continue for the do_hoist_loads diamond case.
9906
9907 2023-04-24 Andrew Pinski <apinski@marvell.com>
9908
9909 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Rearrange
9910 code for better code readability.
9911
9912 2023-04-24 Andrew Pinski <apinski@marvell.com>
9913
9914 PR tree-optimization/109604
9915 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Move the
9916 diamond form check from ...
9917 (minmax_replacement): Here.
9918
9919 2023-04-24 Patrick Palka <ppalka@redhat.com>
9920
9921 * tree.cc (strip_array_types): Don't define here.
9922 (is_typedef_decl): Don't define here.
9923 (typedef_variant_p): Don't define here.
9924 * tree.h (strip_array_types): Define here.
9925 (is_typedef_decl): Define here.
9926 (typedef_variant_p): Define here.
9927
9928 2023-04-24 Frederik Harwath <frederik@codesourcery.com>
9929
9930 * doc/generic.texi (OpenMP): Add != to allowed
9931 conditions and state that vars can be unsigned.
9932 * tree.def (OMP_FOR): Likewise.
9933
9934 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9935
9936 * config/aarch64/aarch64-simd.md (mulv2di3): New expander.
9937
9938 2023-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9939
9940 * doc/install.texi: Consistently use Solaris rather than Solaris 2.
9941 Remove explicit Solaris 11 references.
9942 Markup fixes.
9943 (Options specification, --with-gnu-as): as and gas always differ
9944 on Solaris.
9945 Remove /usr/ccs/bin reference.
9946 (Installing GCC: Binaries, Solaris (SPARC, Intel)): Remove.
9947 (i?86-*-solaris2*): Merge assembler, linker recommendations ...
9948 (*-*-solaris2*): ... here.
9949 Update bundled GCC versions.
9950 Don't refer to pre-built binaries.
9951 Remove /bin/sh warning.
9952 Update assembler, linker recommendations.
9953 Document GNAT bootstrap compiler.
9954 (sparc-sun-solaris2*): Remove non-UltraSPARC reference.
9955 (sparc64-*-solaris2*): Move content...
9956 (sparcv9-*-solaris2*): ...here.
9957 Add GDC for 64-bit bootstrap compilers.
9958
9959 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9960
9961 PR target/109406
9962 * config/aarch64/aarch64-sve.md (<optab><mode>3): Handle TARGET_SVE2 MUL
9963 case.
9964 * config/aarch64/aarch64-sve2.md (*aarch64_mul_unpredicated_<mode>): New
9965 pattern.
9966
9967 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9968
9969 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): Rename to...
9970 (aarch64_<su>abal2<mode>_insn): ... This. Use RTL codes instead of unspec.
9971 (aarch64_<su>abal2<mode>): New define_expand.
9972 * config/aarch64/aarch64.cc (aarch64_abd_rtx_p): New function.
9973 (aarch64_rtx_costs): Handle ABD rtxes.
9974 * config/aarch64/aarch64.md (UNSPEC_SABAL2, UNSPEC_UABAL2): Delete.
9975 * config/aarch64/iterators.md (ABAL2): Delete.
9976 (sur): Remove handling of UNSPEC_UABAL2 and UNSPEC_SABAL2.
9977
9978 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9979
9980 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>): Rename to...
9981 (aarch64_<su>abal<mode>): ... This. Use RTL codes instead of unspec.
9982 (<sur>sadv16qi): Rename to...
9983 (<su>sadv16qi): ... This. Adjust for the above.
9984 * config/aarch64/aarch64-sve.md (<sur>sad<vsi2qi>): Rename to...
9985 (<su>sad<vsi2qi>): ... This. Adjust for the above.
9986 * config/aarch64/aarch64.md (UNSPEC_SABAL, UNSPEC_UABAL): Delete.
9987 * config/aarch64/iterators.md (ABAL): Delete.
9988 (sur): Remove handling of UNSPEC_SABAL and UNSPEC_UABAL.
9989
9990 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9991
9992 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>): Rename to...
9993 (aarch64_<su>abdl2<mode>_insn): ... This. Use RTL codes instead of unspec.
9994 (aarch64_<su>abdl2<mode>): New define_expand.
9995 * config/aarch64/aarch64.md (UNSPEC_SABDL2, UNSPEC_UABDL2): Delete.
9996 * config/aarch64/iterators.md (ABDL2): Delete.
9997 (sur): Remove handling of UNSPEC_SABDL2 and UNSPEC_UABDL2.
9998
9999 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10000
10001 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): Rename to...
10002 (aarch64_<su>abdl<mode>): ... This. Use standard RTL ops instead of
10003 unspec.
10004 * config/aarch64/aarch64.md (UNSPEC_SABDL, UNSPEC_UABDL): Delete.
10005 * config/aarch64/iterators.md (ABDL): Delete.
10006 (sur): Remove handling of UNSPEC_SABDL and UNSPEC_UABDL.
10007
10008 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10009
10010 * config/aarch64/aarch64-simd.md
10011 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): New pattern.
10012
10013 2023-04-24 Richard Biener <rguenther@suse.de>
10014
10015 * gimple-ssa-split-paths.cc (is_feasible_trace): Avoid
10016 last_stmt.
10017 * graphite-scop-detection.cc (single_pred_cond_non_loop_exit):
10018 Likewise.
10019 * ipa-fnsummary.cc (set_cond_stmt_execution_predicate): Likewise.
10020 (set_switch_stmt_execution_predicate): Likewise.
10021 (phi_result_unknown_predicate): Likewise.
10022 * ipa-prop.cc (compute_complex_ancestor_jump_func): Likewise.
10023 (ipa_analyze_indirect_call_uses): Likewise.
10024 * predict.cc (predict_iv_comparison): Likewise.
10025 (predict_extra_loop_exits): Likewise.
10026 (predict_loops): Likewise.
10027 (tree_predict_by_opcode): Likewise.
10028 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
10029 Likewise.
10030 * gimple-pretty-print.cc (dump_implicit_edges): Likewise.
10031 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Likewise.
10032 (replace_phi_edge_with_variable): Likewise.
10033 (two_value_replacement): Likewise.
10034 (value_replacement): Likewise.
10035 (minmax_replacement): Likewise.
10036 (spaceship_replacement): Likewise.
10037 (cond_removal_in_builtin_zero_pattern): Likewise.
10038 * tree-ssa-reassoc.cc (maybe_optimize_range_tests): Likewise.
10039 * tree-ssa-sccvn.cc (vn_phi_eq): Likewise.
10040 (vn_phi_lookup): Likewise.
10041 (vn_phi_insert): Likewise.
10042 * tree-ssa-structalias.cc (compute_points_to_sets): Likewise.
10043 * tree-ssa-threadbackward.cc (back_threader::maybe_thread_block):
10044 Likewise.
10045 (back_threader_profitability::possibly_profitable_path_p):
10046 Likewise.
10047 * tree-ssa-threadedge.cc (jump_threader::thread_outgoing_edges):
10048 Likewise.
10049 * tree-switch-conversion.cc (pass_convert_switch::execute):
10050 Likewise.
10051 (pass_lower_switch<O0>::execute): Likewise.
10052 * tree-tailcall.cc (tree_optimize_tail_calls_1): Likewise.
10053 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
10054 * tree-vect-slp.cc (vect_slp_function): Likewise.
10055 * tree-vect-stmts.cc (cfun_returns): Likewise.
10056 * tree-vectorizer.cc (vect_loop_vectorized_call): Likewise.
10057 (vect_loop_dist_alias_call): Likewise.
10058
10059 2023-04-24 Richard Biener <rguenther@suse.de>
10060
10061 * cfgcleanup.cc (outgoing_edges_match): Use FORWARDER_BLOCK_P.
10062
10063 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
10064
10065 * config/riscv/riscv-vsetvl.cc
10066 (vector_infos_manager::all_avail_in_compatible_p): New function.
10067 (pass_vsetvl::refine_vsetvls): Optimize vsetvls.
10068 * config/riscv/riscv-vsetvl.h: New function.
10069
10070 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
10071
10072 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::pre_vsetvl): Add function
10073 comment for cleanup_insns.
10074
10075 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
10076
10077 * config/riscv/vector-iterators.md: New unspec to refine fault first load pattern.
10078 * config/riscv/vector.md: Refine fault first load pattern to erase avl from instructions
10079 with the fault first load property.
10080
10081 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10082
10083 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
10084 (aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.
10085
10086 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10087
10088 PR target/99195
10089 * config/aarch64/aarch64-simd.md (aarch64_addp<mode>): Rename to...
10090 (aarch64_addp<mode><vczle><vczbe>): ... This.
10091
10092 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
10093
10094 * config/stormy16/stormy16.cc (xstormy16_rtx_costs): Rewrite to
10095 provide reasonable values for common arithmetic operations and
10096 immediate operands (in several machine modes).
10097
10098 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
10099
10100 * config/stormy16/stormy16.cc (xstormy16_print_operand): Add %h
10101 format specifier to output high_part register name of SImode reg.
10102 * config/stormy16/stormy16.md (extendhisi2): New define_insn.
10103 (zero_extendqihi2): Fix lengths, consistent formatting and add
10104 "and Rx,#255" alternative, for documentation purposes.
10105 (zero_extendhisi2): New define_insn.
10106
10107 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
10108
10109 * config/stormy16/stormy16.cc (xstormy16_output_shift): Implement
10110 SImode shifts by two by performing a single bit SImode shift twice.
10111
10112 2023-04-23 Aldy Hernandez <aldyh@redhat.com>
10113
10114 PR tree-optimization/109593
10115 * value-range.cc (frange::operator==): Handle NANs.
10116
10117 2023-04-23 liuhongt <hongtao.liu@intel.com>
10118
10119 PR rtl-optimization/108707
10120 * ira-costs.cc (scan_one_insn): Use NO_REGS instead of
10121 GENERAL_REGS when preferred reg_class is not known.
10122
10123 2023-04-22 Andrew Pinski <apinski@marvell.com>
10124
10125 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
10126 Change the code around slightly to move diamond
10127 handling for do_store_elim/do_hoist_loads out of
10128 the big if/else.
10129
10130 2023-04-22 Andrew Pinski <apinski@marvell.com>
10131
10132 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
10133 Remove check on empty_block_p.
10134
10135 2023-04-22 Jakub Jelinek <jakub@redhat.com>
10136
10137 PR bootstrap/109589
10138 * system.h (class auto_mpz): Workaround PR62101 bug in GCC 4.8 and 4.9.
10139 * realmpfr.h (class auto_mpfr): Likewise.
10140
10141 2023-04-22 Jakub Jelinek <jakub@redhat.com>
10142
10143 PR tree-optimization/109583
10144 * match.pd (fneg/fadd simplify): Don't call related_vector_mode
10145 if vec_mode is not VECTOR_MODE_P.
10146
10147 2023-04-22 Jan Hubicka <hubicka@ucw.cz>
10148 Ondrej Kubanek <kubanek0ondrej@gmail.com>
10149
10150 * cfgloopmanip.h (adjust_loop_info_after_peeling): Declare.
10151 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix updating of
10152 loop profile and bounds after header duplication.
10153 * tree-ssa-loop-ivcanon.cc (adjust_loop_info_after_peeling):
10154 Break out from try_peel_loop; fix handling of 0 iterations.
10155 (try_peel_loop): Use adjust_loop_info_after_peeling.
10156
10157 2023-04-21 Andrew MacLeod <amacleod@redhat.com>
10158
10159 PR tree-optimization/109546
10160 * tree-vrp.cc (remove_unreachable::remove_and_update_globals): Do
10161 not fold conditions with ADDR_EXPR early.
10162
10163 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10164
10165 * config/aarch64/aarch64.md (aarch64_umax<mode>3_insn): Delete.
10166 (umax<mode>3): Emit raw UMAX RTL instead of going through gen_ function
10167 for umax.
10168 (<optab><mode>3): New define_expand for MAXMIN_NOUMAX codes.
10169 (*aarch64_<optab><mode>3_zero): Define.
10170 (*aarch64_<optab><mode>3_cssc): Likewise.
10171 * config/aarch64/iterators.md (maxminand): New code attribute.
10172
10173 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10174
10175 PR target/108779
10176 * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Define.
10177 * config/aarch64/aarch64-protos.h (aarch64_output_load_tp):
10178 Define prototype.
10179 * config/aarch64/aarch64.cc (aarch64_tpidr_register): Declare.
10180 (aarch64_override_options_internal): Handle the above.
10181 (aarch64_output_load_tp): New function.
10182 * config/aarch64/aarch64.md (aarch64_load_tp_hard): Call
10183 aarch64_output_load_tp.
10184 * config/aarch64/aarch64.opt (aarch64_tp_reg): Define enum.
10185 (mtp=): New option.
10186 * doc/invoke.texi (AArch64 Options): Document -mtp=.
10187
10188 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10189
10190 PR target/99195
10191 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Define.
10192 (add_vec_concat_subst_be): Likewise.
10193 (vczle): Likewise.
10194 (vczbe): Likewise.
10195 (add<mode>3): Rename to...
10196 (add<mode>3<vczle><vczbe>): ... This.
10197 (sub<mode>3): Rename to...
10198 (sub<mode>3<vczle><vczbe>): ... This.
10199 (mul<mode>3): Rename to...
10200 (mul<mode>3<vczle><vczbe>): ... This.
10201 (and<mode>3): Rename to...
10202 (and<mode>3<vczle><vczbe>): ... This.
10203 (ior<mode>3): Rename to...
10204 (ior<mode>3<vczle><vczbe>): ... This.
10205 (xor<mode>3): Rename to...
10206 (xor<mode>3<vczle><vczbe>): ... This.
10207 * config/aarch64/iterators.md (VDZ): Define.
10208
10209 2023-04-21 Patrick Palka <ppalka@redhat.com>
10210
10211 * tree.cc (walk_tree_1): Avoid repeatedly dereferencing tp
10212 and type_p.
10213
10214 2023-04-21 Jan Hubicka <jh@suse.cz>
10215
10216 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix previous
10217 commit.
10218
10219 2023-04-21 Vineet Gupta <vineetg@rivosinc.com>
10220
10221 * expmed.h (x_shift*_cost): convert to int [speed][mode][shift].
10222 (shift*_cost_ptr ()): Access x_shift*_cost array directly.
10223
10224 2023-04-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10225
10226 * config/aarch64/aarch64.cc (aarch64_simd_dup_constant): Use
10227 force_reg instead of copy_to_mode_reg.
10228 (aarch64_expand_vector_init): Likewise.
10229
10230 2023-04-21 Uroš Bizjak <ubizjak@gmail.com>
10231
10232 * config/i386/i386.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Remove.
10233 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P): Ditto.
10234 (REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P): Ditto.
10235 (FIRST_INDEX_REG, LAST_INDEX_REG): New defines.
10236 (LEGACY_INDEX_REG_P, LEGACY_INDEX_REGNO_P): New macros.
10237 (INDEX_REG_P, INDEX_REGNO_P): Ditto.
10238 (REGNO_OK_FOR_INDEX_P): Use INDEX_REGNO_P predicates.
10239 (REGNO_OK_FOR_INDEX_NONSTRICT_P): New macro.
10240 (EG_OK_FOR_BASE_NONSTRICT_P): Ditto.
10241 * config/i386/predicates.md (index_register_operand):
10242 Use REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
10243 * config/i386/i386.cc (ix86_legitimate_address_p): Use
10244 REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_BASE_NONSTRICT_P,
10245 REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
10246
10247 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
10248 Ondrej Kubanek <kubanek0ondrej@gmail.com>
10249
10250 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Update loop header and
10251 latch.
10252
10253 2023-04-21 Richard Biener <rguenther@suse.de>
10254
10255 * is-a.h (safe_is_a): New.
10256
10257 2023-04-21 Richard Biener <rguenther@suse.de>
10258
10259 * gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
10260 (gphi_iterator::operator*): Likewise.
10261
10262 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
10263 Michal Jires <michal@jires.eu>
10264
10265 * ipa-inline.cc (class inline_badness): New class.
10266 (edge_heap_t, edge_heap_node_t): Use inline_badness for badness instead
10267 of sreal.
10268 (update_edge_key): Update.
10269 (lookup_recursive_calls): Likewise.
10270 (recursive_inlining): Likewise.
10271 (add_new_edges_to_heap): Likewise.
10272 (inline_small_functions): Likewise.
10273
10274 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
10275
10276 * ipa-devirt.cc (odr_types_equivalent_p): Cleanup warned checks.
10277
10278 2023-04-21 Richard Biener <rguenther@suse.de>
10279
10280 PR tree-optimization/109573
10281 * tree-vect-loop.cc (vectorizable_live_operation): Allow
10282 unhandled SSA copy as well. Demote assert to checking only.
10283
10284 2023-04-21 Richard Biener <rguenther@suse.de>
10285
10286 * df-core.cc (df_analyze): Compute RPO on the reverse graph
10287 for DF_BACKWARD problems.
10288 (loop_post_order_compute): Rename to ...
10289 (loop_rev_post_order_compute): ... this, compute a RPO.
10290 (loop_inverted_post_order_compute): Rename to ...
10291 (loop_inverted_rev_post_order_compute): ... this, compute a RPO.
10292 (df_analyze_loop): Use RPO on the forward graph for DF_FORWARD
10293 problems, RPO on the inverted graph for DF_BACKWARD.
10294
10295 2023-04-21 Richard Biener <rguenther@suse.de>
10296
10297 * cfganal.h (inverted_rev_post_order_compute): Rename
10298 from ...
10299 (inverted_post_order_compute): ... this. Add struct function
10300 argument, change allocation to a C array.
10301 * cfganal.cc (inverted_rev_post_order_compute): Likewise.
10302 * lcm.cc (compute_antinout_edge): Adjust.
10303 * lra-lives.cc (lra_create_live_ranges_1): Likewise.
10304 * tree-ssa-dce.cc (remove_dead_stmt): Likewise.
10305 * tree-ssa-pre.cc (compute_antic): Likewise.
10306
10307 2023-04-21 Richard Biener <rguenther@suse.de>
10308
10309 * df.h (df_d::postorder_inverted): Change back to int *,
10310 clarify comments.
10311 * df-core.cc (rest_of_handle_df_finish): Adjust.
10312 (df_analyze_1): Likewise.
10313 (df_analyze): For DF_FORWARD problems use RPO on the forward
10314 graph. Adjust.
10315 (loop_inverted_post_order_compute): Adjust API.
10316 (df_analyze_loop): Adjust.
10317 (df_get_n_blocks): Likewise.
10318 (df_get_postorder): Likewise.
10319
10320 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
10321
10322 PR target/108270
10323 * config/riscv/riscv-vsetvl.cc
10324 (vector_infos_manager::all_empty_predecessor_p): New function.
10325 (pass_vsetvl::backward_demand_fusion): Ditto.
10326 * config/riscv/riscv-vsetvl.h: Ditto.
10327
10328 2023-04-21 Robin Dapp <rdapp@ventanamicro.com>
10329
10330 PR target/109582
10331 * config/riscv/generic.md: Change standard names to insn names.
10332
10333 2023-04-21 Richard Biener <rguenther@suse.de>
10334
10335 * lcm.cc (compute_antinout_edge): Use RPO on the inverted graph.
10336 (compute_laterin): Use RPO.
10337 (compute_available): Likewise.
10338
10339 2023-04-21 Peng Fan <fanpeng@loongson.cn>
10340
10341 * config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
10342
10343 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
10344
10345 PR target/109547
10346 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): New function.
10347 (vector_insn_info::skip_avl_compatible_p): Ditto.
10348 (vector_insn_info::merge): Remove default value.
10349 (pass_vsetvl::compute_local_backward_infos): Ditto.
10350 (pass_vsetvl::cleanup_insns): Add local vsetvl elimination.
10351 * config/riscv/riscv-vsetvl.h: Ditto.
10352
10353 2023-04-20 Alejandro Colomar <alx.manpages@gmail.com>
10354
10355 * doc/extend.texi (Common Function Attributes): Remove duplicate
10356 word.
10357
10358 2023-04-20 Andrew MacLeod <amacleod@redhat.com>
10359
10360 PR tree-optimization/109564
10361 * gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore
10362 UNDEFINED range names when deciding if all PHI arguments are the same,
10363
10364 2023-04-20 Jakub Jelinek <jakub@redhat.com>
10365
10366 PR tree-optimization/109011
10367 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Use
10368 .CTZ (X) = .POPCOUNT ((X - 1) & ~X) in preference to
10369 .CTZ (X) = PREC - .POPCOUNT (X | -X).
10370
10371 2023-04-20 Vladimir N. Makarov <vmakarov@redhat.com>
10372
10373 * lra-constraints.cc (match_reload): Exclude some hard regs for
10374 multi-reg inout reload pseudos used in asm in different mode.
10375
10376 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
10377
10378 * config/arm/arm.cc (thumb1_legitimate_address_p):
10379 Use VIRTUAL_REGISTER_P predicate.
10380 (arm_eliminable_register): Ditto.
10381 * config/avr/avr.md (push<mode>_1): Ditto.
10382 * config/bfin/predicates.md (register_no_elim_operand): Ditto.
10383 * config/h8300/predicates.md (register_no_sp_elim_operand): Ditto.
10384 * config/i386/predicates.md (register_no_elim_operand): Ditto.
10385 * config/iq2000/predicates.md (call_insn_operand): Ditto.
10386 * config/microblaze/microblaze.h (CALL_INSN_OP): Ditto.
10387
10388 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
10389
10390 PR target/78952
10391 * config/i386/predicates.md (extract_operator): New predicate.
10392 * config/i386/i386.md (any_extract): Remove code iterator.
10393 (*cmpqi_ext<mode>_1_mem_rex64): Use extract_operator predicate.
10394 (*cmpqi_ext<mode>_1): Ditto.
10395 (*cmpqi_ext<mode>_2): Ditto.
10396 (*cmpqi_ext<mode>_3_mem_rex64): Ditto.
10397 (*cmpqi_ext<mode>_3): Ditto.
10398 (*cmpqi_ext<mode>_4): Ditto.
10399 (*extzvqi_mem_rex64): Ditto.
10400 (*extzvqi): Ditto.
10401 (*insvqi_2): Ditto.
10402 (*extendqi<SWI24:mode>_ext_1): Ditto.
10403 (*addqi_ext<mode>_0): Ditto.
10404 (*addqi_ext<mode>_1): Ditto.
10405 (*addqi_ext<mode>_2): Ditto.
10406 (*subqi_ext<mode>_0): Ditto.
10407 (*subqi_ext<mode>_2): Ditto.
10408 (*testqi_ext<mode>_1): Ditto.
10409 (*testqi_ext<mode>_2): Ditto.
10410 (*andqi_ext<mode>_0): Ditto.
10411 (*andqi_ext<mode>_1): Ditto.
10412 (*andqi_ext<mode>_1_cc): Ditto.
10413 (*andqi_ext<mode>_2): Ditto.
10414 (*<any_or:code>qi_ext<mode>_0): Ditto.
10415 (*<any_or:code>qi_ext<mode>_1): Ditto.
10416 (*<any_or:code>qi_ext<mode>_2): Ditto.
10417 (*xorqi_ext<mode>_1_cc): Ditto.
10418 (*negqi_ext<mode>_2): Ditto.
10419 (*ashlqi_ext<mode>_2): Ditto.
10420 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
10421
10422 2023-04-20 Raphael Zinsly <rzinsly@ventanamicro.com>
10423
10424 PR target/108248
10425 * config/riscv/bitmanip.md (clz, ctz, pcnt, min, max patterns): Use
10426 <bitmanip_insn> as the type to allow for fine grained control of
10427 scheduling these insns.
10428 * config/riscv/generic.md (generic_alu): Add bitmanip, clz, ctz, pcnt,
10429 min, max.
10430 * config/riscv/riscv.md (type attribute): Add types for clz, ctz,
10431 pcnt, signed and unsigned min/max.
10432
10433 2023-04-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
10434 kito-cheng <kito.cheng@sifive.com>
10435
10436 * config/riscv/riscv.h (enum reg_class): Fix RVV register order.
10437
10438 2023-04-20 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
10439 kito-cheng <kito.cheng@sifive.com>
10440
10441 PR target/109535
10442 * config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
10443 (pass_vsetvl::cleanup_insns): Fix bug.
10444
10445 2023-04-20 Andrew Stubbs <ams@codesourcery.com>
10446
10447 * config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes.
10448 (ldexp<mode>3): Delete.
10449 (ldexp<mode>3<exec>): Change "B" to "A".
10450
10451 2023-04-20 Jakub Jelinek <jakub@redhat.com>
10452 Jonathan Wakely <jwakely@redhat.com>
10453
10454 * tree.h (built_in_function_equal_p): New helper function.
10455 (fndecl_built_in_p): Turn into variadic template to support
10456 1 or more built_in_function arguments.
10457 * builtins.cc (fold_builtin_expect): Use 3 argument fndecl_built_in_p.
10458 * gimplify.cc (goa_stabilize_expr): Likewise.
10459 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
10460 * ipa-fnsummary.cc (compute_fn_summary): Likewise.
10461 * omp-low.cc (setjmp_or_longjmp_p): Likewise.
10462 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
10463 cgraph_update_edges_for_call_stmt_node,
10464 cgraph_edge::verify_corresponds_to_fndecl,
10465 cgraph_node::verify_node): Likewise.
10466 * tree-stdarg.cc (optimize_va_list_gpr_fpr_size): Likewise.
10467 * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Likewise.
10468 * ipa-prop.cc (try_make_edge_direct_virtual_call): Likewise.
10469
10470 2023-04-20 Jakub Jelinek <jakub@redhat.com>
10471
10472 PR tree-optimization/109011
10473 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): New function.
10474 (vect_recog_popcount_clz_ctz_ffs_pattern): Move vect_pattern_detected
10475 call later. Don't punt for IFN_CTZ or IFN_FFS if it doesn't have
10476 direct optab support, but has instead IFN_CLZ, IFN_POPCOUNT or
10477 for IFN_FFS IFN_CTZ support, use vect_recog_ctz_ffs_pattern for that
10478 case.
10479 (vect_vect_recog_func_ptrs): Add ctz_ffs entry.
10480
10481 2023-04-20 Richard Biener <rguenther@suse.de>
10482
10483 * df-core.cc (rest_of_handle_df_initialize): Remove
10484 computation of df->postorder, df->postorder_inverted and
10485 df->n_blocks.
10486
10487 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
10488
10489 * common/config/i386/i386-common.cc
10490 (OPTION_MASK_ISA2_AVX_UNSET): Add OPTION_MASK_ISA2_VAES_UNSET.
10491 (ix86_handle_option): Set AVX flag for VAES.
10492 * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
10493 Add OPTION_MASK_ISA2_VAES_UNSET.
10494 (def_builtin): Share builtin between AES and VAES.
10495 * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
10496 Ditto.
10497 * config/i386/i386.md (aes): New isa attribute.
10498 * config/i386/sse.md (aesenc): Add pattern for VAES with xmm.
10499 (aesenclast): Ditto.
10500 (aesdec): Ditto.
10501 (aesdeclast): Ditto.
10502 * config/i386/vaesintrin.h: Remove redundant avx target push.
10503 * config/i386/wmmintrin.h (_mm_aesdec_si128): Change to macro.
10504 (_mm_aesdeclast_si128): Ditto.
10505 (_mm_aesenc_si128): Ditto.
10506 (_mm_aesenclast_si128): Ditto.
10507
10508 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
10509
10510 * config/i386/avx2intrin.h
10511 (_MM_REDUCE_OPERATOR_BASIC_EPI16): New macro.
10512 (_MM_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
10513 (_MM256_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
10514 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
10515 (_MM_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
10516 (_MM_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
10517 (_MM256_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
10518 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
10519 (_mm_reduce_add_epi16): New instrinsics.
10520 (_mm_reduce_mul_epi16): Ditto.
10521 (_mm_reduce_and_epi16): Ditto.
10522 (_mm_reduce_or_epi16): Ditto.
10523 (_mm_reduce_max_epi16): Ditto.
10524 (_mm_reduce_max_epu16): Ditto.
10525 (_mm_reduce_min_epi16): Ditto.
10526 (_mm_reduce_min_epu16): Ditto.
10527 (_mm256_reduce_add_epi16): Ditto.
10528 (_mm256_reduce_mul_epi16): Ditto.
10529 (_mm256_reduce_and_epi16): Ditto.
10530 (_mm256_reduce_or_epi16): Ditto.
10531 (_mm256_reduce_max_epi16): Ditto.
10532 (_mm256_reduce_max_epu16): Ditto.
10533 (_mm256_reduce_min_epi16): Ditto.
10534 (_mm256_reduce_min_epu16): Ditto.
10535 (_mm_reduce_add_epi8): Ditto.
10536 (_mm_reduce_mul_epi8): Ditto.
10537 (_mm_reduce_and_epi8): Ditto.
10538 (_mm_reduce_or_epi8): Ditto.
10539 (_mm_reduce_max_epi8): Ditto.
10540 (_mm_reduce_max_epu8): Ditto.
10541 (_mm_reduce_min_epi8): Ditto.
10542 (_mm_reduce_min_epu8): Ditto.
10543 (_mm256_reduce_add_epi8): Ditto.
10544 (_mm256_reduce_mul_epi8): Ditto.
10545 (_mm256_reduce_and_epi8): Ditto.
10546 (_mm256_reduce_or_epi8): Ditto.
10547 (_mm256_reduce_max_epi8): Ditto.
10548 (_mm256_reduce_max_epu8): Ditto.
10549 (_mm256_reduce_min_epi8): Ditto.
10550 (_mm256_reduce_min_epu8): Ditto.
10551 * config/i386/avx512vlbwintrin.h:
10552 (_mm_mask_reduce_add_epi16): Ditto.
10553 (_mm_mask_reduce_mul_epi16): Ditto.
10554 (_mm_mask_reduce_and_epi16): Ditto.
10555 (_mm_mask_reduce_or_epi16): Ditto.
10556 (_mm_mask_reduce_max_epi16): Ditto.
10557 (_mm_mask_reduce_max_epu16): Ditto.
10558 (_mm_mask_reduce_min_epi16): Ditto.
10559 (_mm_mask_reduce_min_epu16): Ditto.
10560 (_mm256_mask_reduce_add_epi16): Ditto.
10561 (_mm256_mask_reduce_mul_epi16): Ditto.
10562 (_mm256_mask_reduce_and_epi16): Ditto.
10563 (_mm256_mask_reduce_or_epi16): Ditto.
10564 (_mm256_mask_reduce_max_epi16): Ditto.
10565 (_mm256_mask_reduce_max_epu16): Ditto.
10566 (_mm256_mask_reduce_min_epi16): Ditto.
10567 (_mm256_mask_reduce_min_epu16): Ditto.
10568 (_mm_mask_reduce_add_epi8): Ditto.
10569 (_mm_mask_reduce_mul_epi8): Ditto.
10570 (_mm_mask_reduce_and_epi8): Ditto.
10571 (_mm_mask_reduce_or_epi8): Ditto.
10572 (_mm_mask_reduce_max_epi8): Ditto.
10573 (_mm_mask_reduce_max_epu8): Ditto.
10574 (_mm_mask_reduce_min_epi8): Ditto.
10575 (_mm_mask_reduce_min_epu8): Ditto.
10576 (_mm256_mask_reduce_add_epi8): Ditto.
10577 (_mm256_mask_reduce_mul_epi8): Ditto.
10578 (_mm256_mask_reduce_and_epi8): Ditto.
10579 (_mm256_mask_reduce_or_epi8): Ditto.
10580 (_mm256_mask_reduce_max_epi8): Ditto.
10581 (_mm256_mask_reduce_max_epu8): Ditto.
10582 (_mm256_mask_reduce_min_epi8): Ditto.
10583 (_mm256_mask_reduce_min_epu8): Ditto.
10584
10585 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
10586
10587 * common/config/i386/i386-common.cc
10588 (OPTION_MASK_ISA_VPCLMULQDQ_SET):
10589 Add OPTION_MASK_ISA_PCLMUL_SET and OPTION_MASK_ISA_AVX_SET.
10590 (OPTION_MASK_ISA_AVX_UNSET):
10591 Add OPTION_MASK_ISA_VPCLMULQDQ_UNSET.
10592 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
10593 * config/i386/i386.md (vpclmulqdqvl): New.
10594 * config/i386/sse.md (pclmulqdq): Add evex encoding.
10595 * config/i386/vpclmulqdqintrin.h: Remove redudant avx target
10596 push.
10597
10598 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
10599
10600 * config/i386/avx512vlbwintrin.h
10601 (_mm_mask_blend_epi16): Remove __OPTIMIZE__ wrapper.
10602 (_mm_mask_blend_epi8): Ditto.
10603 (_mm256_mask_blend_epi16): Ditto.
10604 (_mm256_mask_blend_epi8): Ditto.
10605 * config/i386/avx512vlintrin.h
10606 (_mm256_mask_blend_pd): Ditto.
10607 (_mm256_mask_blend_ps): Ditto.
10608 (_mm256_mask_blend_epi64): Ditto.
10609 (_mm256_mask_blend_epi32): Ditto.
10610 (_mm_mask_blend_pd): Ditto.
10611 (_mm_mask_blend_ps): Ditto.
10612 (_mm_mask_blend_epi64): Ditto.
10613 (_mm_mask_blend_epi32): Ditto.
10614 * config/i386/sse.md (VF_AVX512BWHFBF16): Removed.
10615 (VF_AVX512HFBFVL): Move it before the first usage.
10616 (<avx512>_blendm<mode>): Change iterator from VF_AVX512BWHFBF16
10617 to VF_AVX512HFBFVL.
10618
10619 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
10620
10621 * common/config/i386/i386-common.cc
10622 (OPTION_MASK_ISA_AVX512VBMI2_SET): Change OPTION_MASK_ISA_AVX512F_SET
10623 to OPTION_MASK_ISA_AVX512BW_SET.
10624 (OPTION_MASK_ISA_AVX512F_UNSET):
10625 Remove OPTION_MASK_ISA_AVX512VBMI2_UNSET.
10626 (OPTION_MASK_ISA_AVX512BW_UNSET):
10627 Add OPTION_MASK_ISA_AVX512VBMI2_UNSET.
10628 * config/i386/avx512vbmi2intrin.h: Do not push avx512bw.
10629 * config/i386/avx512vbmi2vlintrin.h: Ditto.
10630 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_AVX512BW.
10631 * config/i386/sse.md (VI12_AVX512VLBW): Removed.
10632 (VI12_VI48F_AVX512VLBW): Rename to VI12_VI48F_AVX512VL.
10633 (compress<mode>_mask): Change iterator from VI12_AVX512VLBW to
10634 VI12_AVX512VL.
10635 (compressstore<mode>_mask): Ditto.
10636 (expand<mode>_mask): Ditto.
10637 (expand<mode>_maskz): Ditto.
10638 (*expand<mode>_mask): Change iterator from VI12_VI48F_AVX512VLBW to
10639 VI12_VI48F_AVX512VL.
10640
10641 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
10642
10643 * common/config/i386/i386-common.cc
10644 (OPTION_MASK_ISA_AVX512BITALG_SET):
10645 Change OPTION_MASK_ISA_AVX512F_SET
10646 to OPTION_MASK_ISA_AVX512BW_SET.
10647 (OPTION_MASK_ISA_AVX512F_UNSET):
10648 Remove OPTION_MASK_ISA_AVX512BITALG_SET.
10649 (OPTION_MASK_ISA_AVX512BW_UNSET):
10650 Add OPTION_MASK_ISA_AVX512BITALG_SET.
10651 * config/i386/avx512bitalgintrin.h: Do not push avx512bw.
10652 * config/i386/i386-builtin.def:
10653 Remove redundant OPTION_MASK_ISA_AVX512BW.
10654 * config/i386/sse.md (VI1_AVX512VLBW): Removed.
10655 (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>):
10656 Change the iterator from VI1_AVX512VLBW to VI1_AVX512VL.
10657
10658 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
10659
10660 * config/i386/i386-expand.cc
10661 (ix86_check_builtin_isa_match): Correct wrong comments.
10662 Add a new macro SHARE_BUILTIN and refactor the current if
10663 clauses to macro.
10664
10665 2023-04-20 Mo, Zewei <zewei.mo@intel.com>
10666
10667 * config/i386/cpuid.h: Open a new section for Extended Features
10668 Leaf (%eax == 7, %ecx == 0) and Extended Features Sub-leaf (%eax == 7,
10669 %ecx == 1).
10670
10671 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
10672
10673 * config/i386/sse.md: Modify insn vperm{i,f}
10674 and vshuf{i,f}.
10675
10676 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
10677
10678 * config/xtensa/xtensa-opts.h: New header.
10679 * config/xtensa/xtensa.h (STRICT_ALIGNMENT): Redefine as
10680 xtensa_strict_align.
10681 * config/xtensa/xtensa.cc (xtensa_option_override): When
10682 -m[no-]strict-align is not specified in the command line set
10683 xtensa_strict_align to 0 if the hardware supports both unaligned
10684 loads and stores or to 1 otherwise.
10685 * config/xtensa/xtensa.opt (mstrict-align): New option.
10686 * doc/invoke.texi (Xtensa Options): Document -m[no-]strict-align.
10687
10688 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
10689
10690 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v4): New
10691 function.
10692
10693 2023-04-19 Andrew Pinski <apinski@marvell.com>
10694
10695 * config/i386/i386.md (*movsicc_noc_zext_1): New pattern.
10696
10697 2023-04-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
10698
10699 * config/riscv/riscv-modes.def (FLOAT_MODE): Add chunk 128 support.
10700 (VECTOR_BOOL_MODE): Ditto.
10701 (ADJUST_NUNITS): Ditto.
10702 (ADJUST_ALIGNMENT): Ditto.
10703 (ADJUST_BYTESIZE): Ditto.
10704 (ADJUST_PRECISION): Ditto.
10705 (RVV_MODES): Ditto.
10706 (VECTOR_MODE_WITH_PREFIX): Ditto.
10707 * config/riscv/riscv-v.cc (ENTRY): Ditto.
10708 (get_vlmul): Ditto.
10709 (get_ratio): Ditto.
10710 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
10711 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
10712 (vbool64_t): Ditto.
10713 (vbool32_t): Ditto.
10714 (vbool16_t): Ditto.
10715 (vbool8_t): Ditto.
10716 (vbool4_t): Ditto.
10717 (vbool2_t): Ditto.
10718 (vbool1_t): Ditto.
10719 (vint8mf8_t): Ditto.
10720 (vuint8mf8_t): Ditto.
10721 (vint8mf4_t): Ditto.
10722 (vuint8mf4_t): Ditto.
10723 (vint8mf2_t): Ditto.
10724 (vuint8mf2_t): Ditto.
10725 (vint8m1_t): Ditto.
10726 (vuint8m1_t): Ditto.
10727 (vint8m2_t): Ditto.
10728 (vuint8m2_t): Ditto.
10729 (vint8m4_t): Ditto.
10730 (vuint8m4_t): Ditto.
10731 (vint8m8_t): Ditto.
10732 (vuint8m8_t): Ditto.
10733 (vint16mf4_t): Ditto.
10734 (vuint16mf4_t): Ditto.
10735 (vint16mf2_t): Ditto.
10736 (vuint16mf2_t): Ditto.
10737 (vint16m1_t): Ditto.
10738 (vuint16m1_t): Ditto.
10739 (vint16m2_t): Ditto.
10740 (vuint16m2_t): Ditto.
10741 (vint16m4_t): Ditto.
10742 (vuint16m4_t): Ditto.
10743 (vint16m8_t): Ditto.
10744 (vuint16m8_t): Ditto.
10745 (vint32mf2_t): Ditto.
10746 (vuint32mf2_t): Ditto.
10747 (vint32m1_t): Ditto.
10748 (vuint32m1_t): Ditto.
10749 (vint32m2_t): Ditto.
10750 (vuint32m2_t): Ditto.
10751 (vint32m4_t): Ditto.
10752 (vuint32m4_t): Ditto.
10753 (vint32m8_t): Ditto.
10754 (vuint32m8_t): Ditto.
10755 (vint64m1_t): Ditto.
10756 (vuint64m1_t): Ditto.
10757 (vint64m2_t): Ditto.
10758 (vuint64m2_t): Ditto.
10759 (vint64m4_t): Ditto.
10760 (vuint64m4_t): Ditto.
10761 (vint64m8_t): Ditto.
10762 (vuint64m8_t): Ditto.
10763 (vfloat32mf2_t): Ditto.
10764 (vfloat32m1_t): Ditto.
10765 (vfloat32m2_t): Ditto.
10766 (vfloat32m4_t): Ditto.
10767 (vfloat32m8_t): Ditto.
10768 (vfloat64m1_t): Ditto.
10769 (vfloat64m2_t): Ditto.
10770 (vfloat64m4_t): Ditto.
10771 (vfloat64m8_t): Ditto.
10772 * config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
10773 * config/riscv/riscv.cc (riscv_legitimize_poly_move): Ditto.
10774 (riscv_convert_vector_bits): Ditto.
10775 * config/riscv/riscv.md:
10776 * config/riscv/vector-iterators.md:
10777 * config/riscv/vector.md
10778 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
10779 (@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
10780 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
10781 (@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
10782 (@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
10783 (@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
10784 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
10785 (@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
10786 (@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
10787
10788 2023-04-19 Pan Li <pan2.li@intel.com>
10789
10790 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
10791 Align IOR (A | (~A) -> -1) optimization MODE_CLASS condition to AND.
10792
10793 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
10794
10795 PR target/78904
10796 PR target/78952
10797 * config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64): New insn pattern.
10798 (*cmpqi_ext<mode>_1): Use nonimmediate_operand predicate
10799 for operand 0. Use any_extract code iterator.
10800 (*cmpqi_ext<mode>_1 peephole2): New peephole2 pattern.
10801 (*cmpqi_ext<mode>_2): Use any_extract code iterator.
10802 (*cmpqi_ext<mode>_3_mem_rex64): New insn pattern.
10803 (*cmpqi_ext<mode>_1): Use general_operand predicate
10804 for operand 1. Use any_extract code iterator.
10805 (*cmpqi_ext<mode>_3 peephole2): New peephole2 pattern.
10806 (*cmpqi_ext<mode>_4): Use any_extract code iterator.
10807
10808 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10809
10810 * config/aarch64/aarch64-simd.md (aarch64_saddw2<mode>): Delete.
10811 (aarch64_uaddw2<mode>): Delete.
10812 (aarch64_ssubw2<mode>): Delete.
10813 (aarch64_usubw2<mode>): Delete.
10814 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>): New define_expand.
10815
10816 2023-04-19 Richard Biener <rguenther@suse.de>
10817
10818 * tree-ssa-structalias.cc (do_ds_constraint): Use
10819 solve_add_graph_edge.
10820
10821 2023-04-19 Richard Biener <rguenther@suse.de>
10822
10823 * tree-ssa-structalias.cc (solve_add_graph_edge): New function,
10824 split out from ...
10825 (do_sd_constraint): ... here.
10826
10827 2023-04-19 Richard Biener <rguenther@suse.de>
10828
10829 * tree-cfg.cc (gimple_can_merge_blocks_p): Remove condition
10830 rejecting the merge when A contains only a non-local label.
10831
10832 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
10833
10834 * rtl.h (VIRTUAL_REGISTER_P): New predicate.
10835 (VIRTUAL_REGISTER_NUM_P): Ditto.
10836 (REGNO_PTR_FRAME_P): Use VIRTUAL_REGISTER_NUM_P predicate.
10837 * expr.cc (force_operand): Use VIRTUAL_REGISTER_P predicate.
10838 * function.cc (instantiate_decl_rtl): Ditto.
10839 * rtlanal.cc (rtx_addr_can_trap_p_1): Ditto.
10840 (nonzero_address_p): Ditto.
10841 (refers_to_regno_p): Use VIRTUAL_REGISTER_NUM_P predicate.
10842
10843 2023-04-19 Aldy Hernandez <aldyh@redhat.com>
10844
10845 * value-range.h (Value_Range::Value_Range): Avoid pointer sharing.
10846
10847 2023-04-19 Richard Biener <rguenther@suse.de>
10848
10849 * system.h (auto_mpz::operator->()): New.
10850 * realmpfr.h (auto_mpfr::operator->()): New.
10851 * builtins.cc (do_mpfr_lgamma_r): Use auto_mpfr.
10852 * real.cc (real_from_string): Likewise.
10853 (dconst_e_ptr): Likewise.
10854 (dconst_sqrt2_ptr): Likewise.
10855 * tree-ssa-loop-niter.cc (refine_value_range_using_guard):
10856 Use auto_mpz.
10857 (bound_difference_of_offsetted_base): Likewise.
10858 (number_of_iterations_ne): Likewise.
10859 (number_of_iterations_lt_to_ne): Likewise.
10860 * ubsan.cc: Include realmpfr.h.
10861 (ubsan_instrument_float_cast): Use auto_mpfr.
10862
10863 2023-04-19 Richard Biener <rguenther@suse.de>
10864
10865 * tree-ssa-structalias.cc (solve_graph): Remove self-copy
10866 edges, remove edges from escaped after special-casing them.
10867
10868 2023-04-19 Richard Biener <rguenther@suse.de>
10869
10870 * tree-ssa-structalias.cc (do_sd_constraint): Fixup escape
10871 special casing.
10872
10873 2023-04-19 Richard Biener <rguenther@suse.de>
10874
10875 * tree-ssa-structalias.cc (do_sd_constraint): Do not write
10876 to the LHS varinfo solution member.
10877
10878 2023-04-19 Richard Biener <rguenther@suse.de>
10879
10880 * tree-ssa-structalias.cc (topo_visit): Look at the real
10881 destination of edges.
10882
10883 2023-04-19 Richard Biener <rguenther@suse.de>
10884
10885 PR tree-optimization/44794
10886 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
10887 If an epilogue loop is required set its iteration upper bound.
10888
10889 2023-04-19 Xi Ruoyao <xry111@xry111.site>
10890
10891 PR target/109465
10892 * config/loongarch/loongarch-protos.h
10893 (loongarch_expand_block_move): Add a parameter as alignment RTX.
10894 * config/loongarch/loongarch.h:
10895 (LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER): Remove.
10896 (LARCH_MAX_MOVE_BYTES_STRAIGHT): Remove.
10897 (LARCH_MAX_MOVE_OPS_PER_LOOP_ITER): Define.
10898 (LARCH_MAX_MOVE_OPS_STRAIGHT): Define.
10899 (MOVE_RATIO): Use LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
10900 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
10901 * config/loongarch/loongarch.cc (loongarch_expand_block_move):
10902 Take the alignment from the parameter, but set it to
10903 UNITS_PER_WORD if !TARGET_STRICT_ALIGN. Limit the length of
10904 straight-line implementation with LARCH_MAX_MOVE_OPS_STRAIGHT
10905 instead of LARCH_MAX_MOVE_BYTES_STRAIGHT.
10906 (loongarch_block_move_straight): When there are left-over bytes,
10907 half the mode size instead of falling back to byte mode at once.
10908 (loongarch_block_move_loop): Limit the length of loop body with
10909 LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
10910 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
10911 * config/loongarch/loongarch.md (cpymemsi): Pass the alignment
10912 to loongarch_expand_block_move.
10913
10914 2023-04-19 Xi Ruoyao <xry111@xry111.site>
10915
10916 * config/loongarch/loongarch.cc
10917 (loongarch_setup_incoming_varargs): Don't save more GARs than
10918 cfun->va_list_gpr_size / UNITS_PER_WORD.
10919
10920 2023-04-19 Richard Biener <rguenther@suse.de>
10921
10922 * tree-ssa-loop-manip.cc (determine_exit_conditions): Fix
10923 no epilogue condition.
10924
10925 2023-04-19 Richard Biener <rguenther@suse.de>
10926
10927 * gimple.h (gimple_assign_load): Outline...
10928 * gimple.cc (gimple_assign_load): ... here. Avoid
10929 get_base_address and instead just strip the outermost
10930 handled component, treating a remaining handled component
10931 as load.
10932
10933 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10934
10935 * config/aarch64/aarch64-simd-builtins.def (neg): Delete builtins
10936 definition.
10937 * config/aarch64/arm_fp16.h (vnegh_f16): Reimplement using normal negation.
10938
10939 2023-04-19 Jakub Jelinek <jakub@redhat.com>
10940
10941 PR tree-optimization/109011
10942 * tree-vect-patterns.cc (vect_recog_popcount_pattern): Rename to ...
10943 (vect_recog_popcount_clz_ctz_ffs_pattern): ... this. Handle also
10944 CLZ, CTZ and FFS. Remove vargs variable, use
10945 gimple_build_call_internal rather than gimple_build_call_internal_vec.
10946 (vect_vect_recog_func_ptrs): Adjust popcount entry.
10947
10948 2023-04-19 Jakub Jelinek <jakub@redhat.com>
10949
10950 PR target/109040
10951 * dse.cc (replace_read): If read_reg is a SUBREG of a word mode
10952 REG, for WORD_REGISTER_OPERATIONS copy SUBREG_REG of it into
10953 a new REG rather than the SUBREG.
10954
10955 2023-04-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10956
10957 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
10958 New pattern.
10959
10960 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10961
10962 PR target/108840
10963 * config/aarch64/aarch64.cc (aarch64_rtx_costs): Merge ASHIFT and
10964 ROTATE, ROTATERT, LSHIFTRT, ASHIFTRT cases. Handle subregs in op1.
10965
10966 2023-04-19 Richard Biener <rguenther@suse.de>
10967
10968 PR rtl-optimization/109237
10969 * cse.cc (insn_live_p): Remove NEXT_INSN walk, instead check
10970 TREE_VISITED on INSN_VAR_LOCATION_DECL.
10971 (delete_trivially_dead_insns): Maintain TREE_VISITED on
10972 active debug bind INSN_VAR_LOCATION_DECL.
10973
10974 2023-04-19 Richard Biener <rguenther@suse.de>
10975
10976 PR rtl-optimization/109237
10977 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
10978
10979 2023-04-19 Christophe Lyon <christophe.lyon@arm.com>
10980
10981 * doc/install.texi (enable-decimal-float): Add AArch64.
10982
10983 2023-04-19 liuhongt <hongtao.liu@intel.com>
10984
10985 PR rtl-optimization/109351
10986 * ira.cc (setup_class_subset_and_memory_move_costs): Check
10987 hard_regno_mode_ok before setting lowest memory move cost for
10988 the mode with different reg classes.
10989
10990 2023-04-18 Jason Merrill <jason@redhat.com>
10991
10992 * doc/invoke.texi: Remove stray @gol.
10993
10994 2023-04-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10995
10996 * ifcvt.cc (cond_move_process_if_block): Consider the result of
10997 targetm.noce_conversion_profitable_p() when replacing the original
10998 sequence with the converted one.
10999
11000 2023-04-18 Mark Harmstone <mark@harmstone.com>
11001
11002 * common.opt (gcodeview): Add new option.
11003 * gcc.cc (driver_handle_option); Handle OPT_gcodeview.
11004 * opts.cc (command_handle_option): Similarly.
11005 * doc/invoke.texi: Add documentation for -gcodeview.
11006
11007 2023-04-18 Andrew Pinski <apinski@marvell.com>
11008
11009 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove declaration.
11010 (make_pass_phiopt): Make execute out of line.
11011 (tree_ssa_cs_elim): Move code into ...
11012 (pass_cselim::execute): here.
11013
11014 2023-04-18 Sam James <sam@gentoo.org>
11015
11016 * system.h: Drop unused INCLUDE_PTHREAD_H.
11017
11018 2023-04-18 Kevin Lee <kevinl@rivosinc.com>
11019
11020 * tree-vect-data-refs.cc (vect_grouped_store_supported): Add new
11021 condition.
11022
11023 2023-04-18 Sinan Lin <sinan.lin@linux.alibaba.com>
11024
11025 * config/riscv/bitmanip.md (rotr<mode>3 expander): Enable for ZBKB.
11026 (bswapdi2, bswapsi2): Similarly.
11027
11028 2023-04-18 Uros Bizjak <ubizjak@gmail.com>
11029
11030 PR target/94908
11031 * config/i386/i386-builtin.def (__builtin_ia32_insertps128):
11032 Use CODE_FOR_sse4_1_insertps_v4sf.
11033 * config/i386/i386-expand.cc (expand_vec_perm_insertps): New.
11034 (expand_vec_perm_1): Call expand_vec_per_insertps.
11035 * config/i386/i386.md ("unspec"): Declare UNSPEC_INSERTPS here.
11036 * config/i386/mmx.md (mmxscalarmode): New mode attribute.
11037 (@sse4_1_insertps_<mode>): New insn pattern.
11038 * config/i386/sse.md (@sse4_1_insertps_<mode>): Macroize insn
11039 pattern from sse4_1_insertps using VI4F_128 mode iterator.
11040
11041 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
11042
11043 * value-range.cc (gt_ggc_mx): New.
11044 (gt_pch_nx): New.
11045 * value-range.h (class vrange): Add GTY marker.
11046 (class frange): Same.
11047 (gt_ggc_mx): Remove.
11048 (gt_pch_nx): Remove.
11049
11050 2023-04-18 Victor L. Do Nascimento <victor.donascimento@arm.com>
11051
11052 * lra-constraints.cc (constraint_unique): New.
11053 (process_address_1): Apply constraint_unique test.
11054 * recog.cc (constrain_operands): Allow relaxed memory
11055 constaints.
11056
11057 2023-04-18 Kito Cheng <kito.cheng@sifive.com>
11058
11059 * doc/extend.texi (Target Builtins): Add RISC-V Vector
11060 Intrinsics.
11061 (RISC-V Vector Intrinsics): Document GCC implemented which
11062 version of RISC-V vector intrinsics and its reference.
11063
11064 2023-04-18 Richard Biener <rguenther@suse.de>
11065
11066 PR middle-end/108786
11067 * bitmap.h (bitmap_clear_first_set_bit): New.
11068 * bitmap.cc (bitmap_first_set_bit_worker): Rename from
11069 bitmap_first_set_bit and add optional clearing of the bit.
11070 (bitmap_first_set_bit): Wrap bitmap_first_set_bit_worker.
11071 (bitmap_clear_first_set_bit): Likewise.
11072 * df-core.cc (df_worklist_dataflow_doublequeue): Use
11073 bitmap_clear_first_set_bit.
11074 * graphite-scop-detection.cc (scop_detection::merge_sese):
11075 Likewise.
11076 * sanopt.cc (sanitize_asan_mark_unpoison): Likewise.
11077 (sanitize_asan_mark_poison): Likewise.
11078 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise.
11079 * tree-into-ssa.cc (rewrite_blocks): Likewise.
11080 * tree-ssa-dce.cc (simple_dce_from_worklist): Likewise.
11081 * tree-ssa-sccvn.cc (do_rpo_vn_1): Likewise.
11082
11083 2023-04-18 Richard Biener <rguenther@suse.de>
11084
11085 * tree-ssa-structalias.cc (dump_sa_stats): Split out from...
11086 (dump_sa_points_to_info): ... this function.
11087 (compute_points_to_sets): Guard large dumps with TDF_DETAILS,
11088 and call dump_sa_stats guarded with TDF_STATS.
11089 (ipa_pta_execute): Likewise.
11090 (compute_may_aliases): Guard dump_alias_info with
11091 TDF_DETAILS|TDF_ALIAS.
11092
11093 2023-04-18 Andrew Pinski <apinski@marvell.com>
11094
11095 * tree-ssa-phiopt.cc (gimple_simplify_phiopt): Dump
11096 the expression that is being tried when TDF_FOLDING
11097 is true.
11098 (phiopt_worker::match_simplify_replacement): Dump
11099 the sequence which was created by gimple_simplify_phiopt
11100 when TDF_FOLDING is true.
11101
11102 2023-04-18 Andrew Pinski <apinski@marvell.com>
11103
11104 * tree-ssa-phiopt.cc (match_simplify_replacement):
11105 Simplify code that does the movement slightly.
11106
11107 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11108
11109 * config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
11110 define_expand.
11111 (rev16<mode>2): Rename to...
11112 (aarch64_rev16<mode>2_alt1): ... This.
11113 (rev16<mode>2_alt): Rename to...
11114 (*aarch64_rev16<mode>2_alt2): ... This.
11115
11116 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
11117
11118 * emit-rtl.cc (init_emit_once): Initialize dconstm0.
11119 * gimple-range-op.cc (class cfn_signbit): Remove dconstm0
11120 declaration.
11121 * range-op-float.cc (zero_range): Use dconstm0.
11122 (zero_to_inf_range): Same.
11123 * real.h (dconstm0): New.
11124 * value-range.cc (frange::flush_denormals_to_zero): Use dconstm0.
11125 (frange::set_zero): Do not declare dconstm0.
11126
11127 2023-04-18 Richard Biener <rguenther@suse.de>
11128
11129 * system.h (class auto_mpz): New,
11130 * realmpfr.h (class auto_mpfr): Likewise.
11131 * fold-const-call.cc (do_mpfr_arg1): Use auto_mpfr.
11132 (do_mpfr_arg2): Likewise.
11133 * tree-ssa-loop-niter.cc (bound_difference): Use auto_mpz;
11134
11135 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11136
11137 * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_intrinsics): Take
11138 builtin flags from intrinsic data rather than hardcoded FLAG_AUTO_FP.
11139
11140 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
11141
11142 * value-range.cc (frange::operator==): Adjust for NAN.
11143 (range_tests_nan): Remove some NAN tests.
11144
11145 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
11146
11147 * inchash.cc (hash::add_real_value): New.
11148 * inchash.h (class hash): Add add_real_value.
11149 * value-range.cc (add_vrange): New.
11150 * value-range.h (inchash::add_vrange): New.
11151
11152 2023-04-18 Richard Biener <rguenther@suse.de>
11153
11154 PR tree-optimization/109539
11155 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
11156 Re-implement pointer relatedness for PHIs.
11157
11158 2023-04-18 Andrew Stubbs <ams@codesourcery.com>
11159
11160 * config/gcn/gcn-valu.md (SV_SFDF): New iterator.
11161 (SV_FP): New iterator.
11162 (scalar_mode, SCALAR_MODE): Add identity mappings for scalar modes.
11163 (recip<mode>2): Unify the two patterns using SV_FP.
11164 (div_scale<mode><exec_vcc>): New insn.
11165 (div_fmas<mode><exec>): New insn.
11166 (div_fixup<mode><exec>): New insn.
11167 (div<mode>3): Unify the two expanders and rewrite using hardfp.
11168 * config/gcn/gcn.cc (gcn_md_reorg): Support "vccwait" attribute.
11169 * config/gcn/gcn.md (unspec): Add UNSPEC_DIV_SCALE, UNSPEC_DIV_FMAS,
11170 and UNSPEC_DIV_FIXUP.
11171 (vccwait): New attribute.
11172
11173 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11174
11175 * config/aarch64/aarch64.cc (aarch64_validate_mcpu): Add hint to use -march
11176 if the argument matches that.
11177
11178 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11179
11180 * config/aarch64/atomics.md
11181 (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
11182 Use SD_HSDI for destination mode iterator.
11183
11184 2023-04-18 Jin Ma <jinma@linux.alibaba.com>
11185
11186 * common/config/riscv/riscv-common.cc (multi_letter_subset_rank): Swap the order
11187 of z-extensions and s-extensions.
11188 (riscv_subset_list::parse): Likewise.
11189
11190 2023-04-18 Jakub Jelinek <jakub@redhat.com>
11191
11192 PR tree-optimization/109240
11193 * match.pd (fneg/fadd): Rewrite such that it handles both plus as
11194 first vec_perm operand and minus as second using fneg/fadd and
11195 minus as first vec_perm operand and plus as second using fneg/fsub.
11196
11197 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
11198
11199 * data-streamer.cc (bp_pack_real_value): New.
11200 (bp_unpack_real_value): New.
11201 * data-streamer.h (bp_pack_real_value): New.
11202 (bp_unpack_real_value): New.
11203 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields): Use
11204 bp_unpack_real_value.
11205 * tree-streamer-out.cc (pack_ts_real_cst_value_fields): Use
11206 bp_pack_real_value.
11207
11208 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
11209
11210 * wide-int.h (WIDE_INT_MAX_HWIS): New.
11211 (class fixed_wide_int_storage): Use it.
11212 (trailing_wide_ints <N>::set_precision): Use it.
11213 (trailing_wide_ints <N>::extra_size): Use it.
11214
11215 2023-04-18 Xi Ruoyao <xry111@xry111.site>
11216
11217 * config/loongarch/loongarch-protos.h
11218 (loongarch_addu16i_imm12_operand_p): New function prototype.
11219 (loongarch_split_plus_constant): Likewise.
11220 * config/loongarch/loongarch.cc
11221 (loongarch_addu16i_imm12_operand_p): New function.
11222 (loongarch_split_plus_constant): Likewise.
11223 * config/loongarch/loongarch.h (ADDU16I_OPERAND): New macro.
11224 (DUAL_IMM12_OPERAND): Likewise.
11225 (DUAL_ADDU16I_OPERAND): Likewise.
11226 * config/loongarch/constraints.md (La, Lb, Lc, Ld, Le): New
11227 constraint.
11228 * config/loongarch/predicates.md (const_dual_imm12_operand): New
11229 predicate.
11230 (const_addu16i_operand): Likewise.
11231 (const_addu16i_imm12_di_operand): Likewise.
11232 (const_addu16i_imm12_si_operand): Likewise.
11233 (plus_di_operand): Likewise.
11234 (plus_si_operand): Likewise.
11235 (plus_si_extend_operand): Likewise.
11236 * config/loongarch/loongarch.md (add<mode>3): Convert to
11237 define_insn_and_split. Use plus_<mode>_operand predicate
11238 instead of arith_operand. Add alternatives for La, Lb, Lc, Ld,
11239 and Le constraints.
11240 (*addsi3_extended): Convert to define_insn_and_split. Use
11241 plus_si_extend_operand instead of arith_operand. Add
11242 alternatives for La and Le alternatives.
11243
11244 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
11245
11246 * value-range.h (Value_Range::Value_Range): New.
11247 (Value_Range::contains_p): New.
11248
11249 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
11250
11251 * value-range.h (class vrange): Make m_discriminator const.
11252 (class irange): Make m_max_ranges const. Adjust constructors
11253 accordingly.
11254 (class unsupported_range): Construct vrange appropriately.
11255 (class frange): Same.
11256
11257 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
11258
11259 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove the macro
11260 definition.
11261
11262 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
11263
11264 * doc/extend.texi: Add section for LoongArch Base Built-in functions.
11265
11266 2023-04-18 Fei Gao <gaofei@eswincomputing.com>
11267
11268 * config/riscv/riscv.cc (riscv_first_stack_step): Make codes more
11269 readable.
11270 (riscv_expand_epilogue): Likewise.
11271
11272 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
11273
11274 * config/riscv/riscv.cc (riscv_expand_prologue): Consider save-restore in
11275 stack allocation.
11276 (riscv_expand_epilogue): Consider save-restore in stack deallocation.
11277
11278 2023-04-17 Andrew Pinski <apinski@marvell.com>
11279
11280 * tree-ssa-phiopt.cc (gate_hoist_loads): Remove
11281 prototype.
11282
11283 2023-04-17 Aldy Hernandez <aldyh@redhat.com>
11284
11285 * gimple-ssa-warn-alloca.cc (pass_walloca::execute): Do not export
11286 global ranges.
11287
11288 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
11289
11290 * config/riscv/riscv.cc (riscv_first_stack_step): Add a new function
11291 parameter remaining_size.
11292 (riscv_compute_frame_info): Adapt new riscv_first_stack_step interface.
11293 (riscv_expand_prologue): Likewise.
11294 (riscv_expand_epilogue): Likewise.
11295
11296 2023-04-17 Feng Wang <wangfeng@eswincomputing.com>
11297
11298 * config/riscv/bitmanip.md (rotrsi3_sext): Support generating
11299 roriw for constant counts.
11300 * rtl.h (reverse_rotate_by_imm_p): Add function declartion
11301 * simplify-rtx.cc (reverse_rotate_by_imm_p): New function.
11302 (simplify_context::simplify_binary_operation_1): Use it.
11303 * expmed.cc (expand_shift_1): Likewise.
11304
11305 2023-04-17 Martin Jambor <mjambor@suse.cz>
11306
11307 PR ipa/107769
11308 PR ipa/109318
11309 * cgraph.h (symtab_node::find_reference): Add parameter use_type.
11310 * ipa-prop.h (ipa_pass_through_data): New flag refdesc_decremented.
11311 (ipa_zap_jf_refdesc): New function.
11312 (ipa_get_jf_pass_through_refdesc_decremented): Likewise.
11313 (ipa_set_jf_pass_through_refdesc_decremented): Likewise.
11314 * ipa-cp.cc (ipcp_discover_new_direct_edges): Provide a value for
11315 the new parameter of find_reference.
11316 (adjust_references_in_caller): Likewise. Make sure the constant jump
11317 function is not used to decrement a refdec counter again. Only
11318 decrement refdesc counters when the pass_through jump function allows
11319 it. Added a detailed dump when decrementing refdesc counters.
11320 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Dump new flag.
11321 (ipa_set_jf_simple_pass_through): Initialize the new flag.
11322 (ipa_set_jf_unary_pass_through): Likewise.
11323 (ipa_set_jf_arith_pass_through): Likewise.
11324 (remove_described_reference): Provide a value for the new parameter of
11325 find_reference.
11326 (update_jump_functions_after_inlining): Zap refdesc of new jfunc if
11327 the previous pass_through had a flag mandating that we do so.
11328 (propagate_controlled_uses): Likewise. Only decrement refdesc
11329 counters when the pass_through jump function allows it.
11330 (ipa_edge_args_sum_t::duplicate): Provide a value for the new
11331 parameter of find_reference.
11332 (ipa_write_jump_function): Assert the new flag does not have to be
11333 streamed.
11334 * symtab.cc (symtab_node::find_reference): Add parameter use_type, use
11335 it in searching.
11336
11337 2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
11338 Di Zhao <di.zhao@amperecomputing.com>
11339
11340 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
11341 Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
11342 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
11343 Check for the above tuning option when processing loads.
11344
11345 2023-04-17 Richard Biener <rguenther@suse.de>
11346
11347 PR tree-optimization/109524
11348 * tree-vrp.cc (remove_unreachable::m_list): Change to a
11349 vector of pairs of block indices.
11350 (remove_unreachable::maybe_register_block): Adjust.
11351 (remove_unreachable::remove_and_update_globals): Likewise.
11352 Deal with removed blocks.
11353
11354 2023-04-16 Jeff Law <jlaw@ventanamicro>
11355
11356 PR target/109508
11357 * config/riscv/riscv.cc (riscv_expand_conditional_move): For
11358 TARGET_SFB_ALU, force the true arm into a register.
11359
11360 2023-04-15 John David Anglin <danglin@gcc.gnu.org>
11361
11362 PR target/104989
11363 * config/pa/pa-protos.h (pa_function_arg_size): Update prototype.
11364 * config/pa/pa.cc (pa_function_arg): Return NULL_RTX if argument
11365 size is zero.
11366 (pa_arg_partial_bytes): Don't call pa_function_arg_size twice.
11367 (pa_function_arg_size): Change return type to int. Return zero
11368 for arguments larger than 1 GB. Update comments.
11369
11370 2023-04-15 Jakub Jelinek <jakub@redhat.com>
11371
11372 PR tree-optimization/109154
11373 * tree-if-conv.cc (predicate_scalar_phi): For complex PHIs, emit just
11374 args_len - 1 COND_EXPRs rather than args_len. Formatting fix.
11375
11376 2023-04-15 Jason Merrill <jason@redhat.com>
11377
11378 PR c++/109514
11379 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
11380 Overhaul lhs_ref.ref analysis.
11381
11382 2023-04-14 Richard Biener <rguenther@suse.de>
11383
11384 PR tree-optimization/109502
11385 * tree-vect-stmts.cc (vectorizable_assignment): Fix
11386 check for conversion between mask and non-mask types.
11387
11388 2023-04-14 Jeff Law <jlaw@ventanamicro.com>
11389 Jakub Jelinek <jakub@redhat.com>
11390
11391 PR target/108947
11392 PR target/109040
11393 * combine.cc (simplify_and_const_int_1): Compute nonzero_bits in
11394 word_mode rather than mode if WORD_REGISTER_OPERATIONS and mode is
11395 smaller than word_mode.
11396 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
11397 <case AND>: Likewise.
11398
11399 2023-04-14 Jakub Jelinek <jakub@redhat.com>
11400
11401 * loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
11402 of GEN_INT.
11403
11404 2023-04-13 Andrew MacLeod <amacleod@redhat.com>
11405
11406 PR tree-optimization/108139
11407 PR tree-optimization/109462
11408 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Remove
11409 equivalency check for PHI nodes.
11410 * gimple-range-fold.cc (fold_using_range::range_of_phi): Ensure def
11411 does not dominate single-arg equivalency edges.
11412
11413 2023-04-13 Richard Sandiford <richard.sandiford@arm.com>
11414
11415 PR target/108910
11416 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
11417 not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
11418
11419 2023-04-13 Richard Biener <rguenther@suse.de>
11420
11421 PR tree-optimization/109491
11422 * tree-ssa-sccvn.cc (expressions_equal_p): Restore the
11423 NULL operands test.
11424
11425 2023-04-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11426
11427 PR target/109479
11428 * config/riscv/riscv-vector-builtins-types.def (vint8mf8_t): Fix predicate.
11429 (vint16mf4_t): Ditto.
11430 (vint32mf2_t): Ditto.
11431 (vint64m1_t): Ditto.
11432 (vint64m2_t): Ditto.
11433 (vint64m4_t): Ditto.
11434 (vint64m8_t): Ditto.
11435 (vuint8mf8_t): Ditto.
11436 (vuint16mf4_t): Ditto.
11437 (vuint32mf2_t): Ditto.
11438 (vuint64m1_t): Ditto.
11439 (vuint64m2_t): Ditto.
11440 (vuint64m4_t): Ditto.
11441 (vuint64m8_t): Ditto.
11442 (vfloat32mf2_t): Ditto.
11443 (vbool64_t): Ditto.
11444 * config/riscv/riscv-vector-builtins.cc (register_builtin_type): Add comments.
11445 (register_vector_type): Ditto.
11446 (check_required_extensions): Fix condition.
11447 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ZVE64): Remove it.
11448 (RVV_REQUIRE_ELEN_64): New define.
11449 (RVV_REQUIRE_MIN_VLEN_64): Ditto.
11450 * config/riscv/riscv-vector-switch.def (TARGET_VECTOR_FP32): Remove it.
11451 (TARGET_VECTOR_FP64): Ditto.
11452 (ENTRY): Fix predicate.
11453 * config/riscv/vector-iterators.md: Fix predicate.
11454
11455 2023-04-12 Jakub Jelinek <jakub@redhat.com>
11456
11457 PR tree-optimization/109410
11458 * tree-ssa-reassoc.cc (build_and_add_sum): Split edge from entry
11459 block if first statement of the function is a call to returns_twice
11460 function.
11461
11462 2023-04-12 Jakub Jelinek <jakub@redhat.com>
11463
11464 PR target/109458
11465 * config/i386/i386.cc: Include rtl-error.h.
11466 (ix86_print_operand): For z modifier warning, use warning_for_asm
11467 if this_is_asm_operands. For Z modifier errors, use %c and code
11468 instead of hardcoded Z.
11469
11470 2023-04-12 Costas Argyris <costas.argyris@gmail.com>
11471
11472 * config/i386/x-mingw32-utf8: Remove extrataneous $@
11473
11474 2023-04-12 Andrew MacLeod <amacleod@redhat.com>
11475
11476 PR tree-optimization/109462
11477 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't
11478 check for equivalences if NAME is a phi node.
11479
11480 2023-04-12 Richard Biener <rguenther@suse.de>
11481
11482 PR tree-optimization/109473
11483 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
11484 Convert scalar result to the computation type before performing
11485 the reduction adjustment.
11486
11487 2023-04-12 Richard Biener <rguenther@suse.de>
11488
11489 PR tree-optimization/109469
11490 * tree-vect-slp.cc (vect_slp_function): Skip region starts with
11491 a returns-twice call.
11492
11493 2023-04-12 Richard Biener <rguenther@suse.de>
11494
11495 PR tree-optimization/109434
11496 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly
11497 handle possibly throwing calls when processing the LHS
11498 and may-defs are not OK.
11499
11500 2023-04-11 Lin Sinan <mynameisxiaou@gmail.com>
11501
11502 * config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
11503 predicate to avoid splitting arith constants.
11504
11505 2023-04-11 Yanzhang Wang <yanzhang.wang@intel.com>
11506 Pan Li <pan2.li@intel.com>
11507 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11508 Kito Cheng <kito.cheng@sifive.com>
11509
11510 PR target/109104
11511 * config/riscv/riscv-protos.h (emit_hard_vlmax_vsetvl): New.
11512 * config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): New.
11513 (emit_vlmax_vsetvl): Use emit_hard_vlmax_vsetvl.
11514 * config/riscv/riscv.cc (vector_zero_call_used_regs): New.
11515 (riscv_zero_call_used_regs): New.
11516 (TARGET_ZERO_CALL_USED_REGS): New.
11517
11518 2023-04-11 Martin Liska <mliska@suse.cz>
11519
11520 PR driver/108241
11521 * opts.cc (finish_options): Drop also
11522 x_flag_var_tracking_assignments.
11523
11524 2023-04-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
11525
11526 PR tree-optimization/108888
11527 * tree-if-conv.cc (predicate_statements): Fix gimple call check.
11528
11529 2023-04-11 Haochen Gui <guihaoc@gcc.gnu.org>
11530
11531 PR target/108812
11532 * config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
11533 (vsx_sign_extend_v16qi_<mode>): ... this.
11534 (vsx_sign_extend_hi_<mode>): Rename to...
11535 (vsx_sign_extend_v8hi_<mode>): ... this.
11536 (vsx_sign_extend_si_v2di): Rename to...
11537 (vsx_sign_extend_v4si_v2di): ... this.
11538 (vsignextend_qi_<mode>): Remove.
11539 (vsignextend_hi_<mode>): Remove.
11540 (vsignextend_si_v2di): Remove.
11541 (vsignextend_v2di_v1ti): Remove.
11542 (*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
11543 gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
11544 with gen_vsx_sign_extend_v16qi_v4si.
11545 * config/rs6000/rs6000.md (split for DI constant generation):
11546 Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
11547 (split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
11548 with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
11549 with gen_vsx_sign_extend_v16qi_si.
11550 * config/rs6000/rs6000-builtins.def (__builtin_altivec_vsignextsb2d):
11551 Set bif-pattern to vsx_sign_extend_v16qi_v2di.
11552 (__builtin_altivec_vsignextsb2w): Set bif-pattern to
11553 vsx_sign_extend_v16qi_v4si.
11554 (__builtin_altivec_visgnextsh2d): Set bif-pattern to
11555 vsx_sign_extend_v8hi_v2di.
11556 (__builtin_altivec_vsignextsh2w): Set bif-pattern to
11557 vsx_sign_extend_v8hi_v4si.
11558 (__builtin_altivec_vsignextsw2d): Set bif-pattern to
11559 vsx_sign_extend_si_v2di.
11560 (__builtin_altivec_vsignext): Set bif-pattern to
11561 vsx_sign_extend_v2di_v1ti.
11562 * config/rs6000/rs6000-builtin.cc (lxvrse_expand_builtin): Replace
11563 gen_vsx_sign_extend_qi_v2di with gen_vsx_sign_extend_v16qi_v2di,
11564 gen_vsx_sign_extend_hi_v2di with gen_vsx_sign_extend_v8hi_v2di and
11565 gen_vsx_sign_extend_si_v2di with gen_vsx_sign_extend_v4si_v2di.
11566
11567 2023-04-10 Michael Meissner <meissner@linux.ibm.com>
11568
11569 PR target/70243
11570 * config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
11571 (vsx_nfmsv4sf4): Do not generate vnmsubfp.
11572
11573 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
11574
11575 * config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
11576
11577 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
11578
11579 * common/config/i386/cpuinfo.h (get_available_features):
11580 Detect AMX-COMPLEX.
11581 * common/config/i386/i386-common.cc
11582 (OPTION_MASK_ISA2_AMX_COMPLEX_SET,
11583 OPTION_MASK_ISA2_AMX_COMPLEX_UNSET): New.
11584 (ix86_handle_option): Handle -mamx-complex.
11585 * common/config/i386/i386-cpuinfo.h (enum processor_features):
11586 Add FEATURE_AMX_COMPLEX.
11587 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
11588 amx-complex.
11589 * config.gcc: Add amxcomplexintrin.h.
11590 * config/i386/cpuid.h (bit_AMX_COMPLEX): New.
11591 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
11592 __AMX_COMPLEX__.
11593 * config/i386/i386-isa.def (AMX_COMPLEX): Add DEF_PTA(AMX_COMPLEX).
11594 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
11595 Handle amx-complex.
11596 * config/i386/i386.opt: Add option -mamx-complex.
11597 * config/i386/immintrin.h: Include amxcomplexintrin.h.
11598 * doc/extend.texi: Document amx-complex.
11599 * doc/invoke.texi: Document -mamx-complex.
11600 * doc/sourcebuild.texi: Document target amx-complex.
11601 * config/i386/amxcomplexintrin.h: New file.
11602
11603 2023-04-08 Jakub Jelinek <jakub@redhat.com>
11604
11605 PR tree-optimization/109392
11606 * tree-vect-generic.cc (tree_vec_extract): Handle failure
11607 of maybe_push_res_to_seq better.
11608
11609 2023-04-08 Jakub Jelinek <jakub@redhat.com>
11610
11611 * Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
11612 poly-int-types.h.
11613 (SYSTEM_H): Depend on $(HASHTAB_H).
11614 * config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused
11615 dependency on $(RTL_BASE_H), remove redundant dependency on
11616 insn-modes.h.
11617
11618 2023-04-06 Richard Earnshaw <rearnsha@arm.com>
11619
11620 PR target/107674
11621 * config/arm/arm.cc (arm_effective_regno): New function.
11622 (mve_vector_mem_operand): Use it.
11623
11624 2023-04-06 Andrew MacLeod <amacleod@redhat.com>
11625
11626 PR tree-optimization/109417
11627 * gimple-range-gori.cc (gori_compute::may_recompute_p): Check if
11628 dependency is in SSA_NAME_FREE_LIST.
11629
11630 2023-04-06 Andrew Pinski <apinski@marvell.com>
11631
11632 PR tree-optimization/109427
11633 * params.opt (-param=vect-induction-float=):
11634 Fix option attribute typo for IntegerRange.
11635
11636 2023-04-05 Jeff Law <jlaw@ventanamicro>
11637
11638 PR target/108892
11639 * combine.cc (combine_instructions): Force re-recognition when
11640 after restoring the body of an insn to its original form.
11641
11642 2023-04-05 Martin Jambor <mjambor@suse.cz>
11643
11644 PR ipa/108959
11645 * ipa-sra.cc (zap_useless_ipcp_results): New function.
11646 (process_isra_node_results): Call it.
11647
11648 2023-04-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
11649
11650 * config/riscv/vector.md: Fix incorrect operand order.
11651
11652 2023-04-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
11653
11654 * config/riscv/riscv-vsetvl.cc
11655 (pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
11656 demand fusion.
11657
11658 2023-04-05 Li Xu <xuli1@eswincomputing.com>
11659
11660 * config/riscv/riscv-vector-builtins.def: Fix typo.
11661 * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
11662 * config/riscv/vector-iterators.md: Ditto.
11663
11664 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
11665
11666 * doc/md.texi (Including Patterns): Fix page break.
11667
11668 2023-04-04 Jakub Jelinek <jakub@redhat.com>
11669
11670 PR tree-optimization/109386
11671 * range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
11672 foperator_le::op1_range, foperator_le::op2_range,
11673 foperator_gt::op1_range, foperator_gt::op2_range,
11674 foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
11675 BRS_FALSE case even if the other op is maybe_isnan, not just
11676 known_isnan.
11677 (foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
11678 foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
11679 foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
11680 foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
11681 Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
11682 not just known_isnan.
11683
11684 2023-04-04 Marek Polacek <polacek@redhat.com>
11685
11686 PR sanitizer/109107
11687 * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
11688 when associating.
11689 * match.pd: Use TYPE_OVERFLOW_SANITIZED.
11690
11691 2023-04-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
11692
11693 * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
11694 (mve_vcreateq_f<mode>): Swap operands.
11695
11696 2023-04-04 Andrew Stubbs <ams@codesourcery.com>
11697
11698 * config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
11699
11700 2023-04-04 Jakub Jelinek <jakub@redhat.com>
11701
11702 PR target/109384
11703 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
11704 Reword diagnostics about zfinx conflict with f, formatting fixes.
11705
11706 2023-04-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11707
11708 * config/sol2.h (LIB_SPEC): Don't link with -lpthread.
11709
11710 2023-04-04 Richard Biener <rguenther@suse.de>
11711
11712 PR tree-optimization/109304
11713 * tree-profile.cc (tree_profiling): Use symtab node
11714 availability to decide whether to skip adjusting calls.
11715 Do not adjust calls to internal functions.
11716
11717 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
11718
11719 PR target/108807
11720 * config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
11721 function for permutation control vector by considering big endianness.
11722
11723 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
11724
11725 PR target/108699
11726 * config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
11727 (rs6000_vprtyb<mode>2): ... this.
11728 * config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
11729 rs6000_vprtybv2di2.
11730 (VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
11731 (VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
11732 * config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
11733 popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
11734
11735 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
11736 Sandra Loosemore <sandra@codesourcery.com>
11737
11738 * doc/md.texi (Insn Splitting): Tweak wording for readability.
11739
11740 2023-04-03 Martin Jambor <mjambor@suse.cz>
11741
11742 PR ipa/109303
11743 * ipa-prop.cc (determine_known_aggregate_parts): Check that the
11744 offset + size will be representable in unsigned int.
11745
11746 2023-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11747
11748 * configure.ac (ZSTD_LIB): Move before zstd.h check.
11749 Unset gcc_cv_header_zstd_h without libzstd.
11750 * configure: Regenerate.
11751
11752 2023-04-03 Martin Liska <mliska@suse.cz>
11753
11754 * doc/invoke.texi: Document new param.
11755
11756 2023-04-03 Cupertino Miranda <cupertino.miranda@oracle.com>
11757
11758 * doc/sourcebuild.texi (const_volatile_readonly_section): Document
11759 new check_effective_target function.
11760
11761 2023-04-03 Li Xu <xuli1@eswincomputing.com>
11762
11763 * config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
11764 (vfloat32m8_t): Likewise
11765
11766 2023-04-03 liuhongt <hongtao.liu@intel.com>
11767
11768 * doc/md.texi: Document signbitm2.
11769
11770 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
11771 kito-cheng <kito.cheng@sifive.com>
11772
11773 * config/riscv/vector.md: Fix RA constraint.
11774
11775 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
11776
11777 * config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
11778 * config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
11779 * config/riscv/vector.md: Fix scalar move bug.
11780
11781 2023-04-01 Jakub Jelinek <jakub@redhat.com>
11782
11783 * range-op-float.cc (foperator_equal::fold_range): If at least
11784 one of the op ranges is not singleton and neither is NaN and all
11785 4 bounds are zero, return [1, 1].
11786 (foperator_not_equal::fold_range): In the same case return [0, 0].
11787
11788 2023-04-01 Jakub Jelinek <jakub@redhat.com>
11789
11790 * range-op-float.cc (foperator_equal::fold_range): Perform the
11791 non-singleton handling regardless of maybe_isnan (op1, op2).
11792 (foperator_not_equal::fold_range): Likewise.
11793 (foperator_lt::fold_range, foperator_le::fold_range,
11794 foperator_gt::fold_range, foperator_ge::fold_range): Perform the
11795 real_* comparison check which results in range_false (type)
11796 even if maybe_isnan (op1, op2). Simplify.
11797 (foperator_ltgt): New class.
11798 (fop_ltgt): New variable.
11799 (floating_op_table::floating_op_table): Handle LTGT_EXPR using
11800 fop_ltgt.
11801
11802 2023-04-01 Jakub Jelinek <jakub@redhat.com>
11803
11804 PR target/109254
11805 * builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
11806 returns VOIDmode, handle it like if the register isn't used for
11807 passing arguments at all.
11808 (apply_result_size): If targetm.calls.get_raw_result_mode returns
11809 VOIDmode, handle it like if the register isn't used for returning
11810 results at all.
11811 * target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
11812 means to return VOIDmode.
11813 * doc/tm.texi: Regenerated.
11814 * config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
11815 TARGET_SVE for P0_REGNUM.
11816 (aarch64_function_arg_regno_p): Also return true for p0-p3.
11817 (aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
11818
11819 2023-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
11820
11821 * lra-constraints.cc: (combine_reload_insn): New function.
11822
11823 2023-03-31 Jakub Jelinek <jakub@redhat.com>
11824
11825 PR tree-optimization/91645
11826 * range-op-float.cc (foperator_unordered_lt::fold_range,
11827 foperator_unordered_le::fold_range,
11828 foperator_unordered_gt::fold_range,
11829 foperator_unordered_ge::fold_range,
11830 foperator_unordered_equal::fold_range): Call the ordered
11831 fold_range on ranges with cleared NaNs.
11832 * value-query.cc (range_query::get_tree_range): Handle also
11833 COMPARISON_CLASS_P trees.
11834
11835 2023-03-31 Kito Cheng <kito.cheng@sifive.com>
11836 Andrew Pinski <pinskia@gmail.com>
11837
11838 PR target/109328
11839 * config/riscv/t-riscv: Add missing dependencies.
11840
11841 2023-03-31 liuhongt <hongtao.liu@intel.com>
11842
11843 * config/i386/i386.cc (inline_memory_move_cost): Return 100
11844 for MASK_REGS when MODE_SIZE > 8.
11845
11846 2023-03-31 liuhongt <hongtao.liu@intel.com>
11847
11848 PR target/85048
11849 * config/i386/i386-builtin.def (BDESC): Adjust icode name from
11850 ufloat/ufix to floatuns/fixuns.
11851 * config/i386/i386-expand.cc
11852 (ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
11853 * config/i386/sse.md
11854 (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
11855 Renamed to ..
11856 (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
11857 (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
11858 Renamed to ..
11859 (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
11860 .. this.
11861 (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
11862 Renamed to ..
11863 (fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
11864 (ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
11865 (floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
11866 (ufloatv2siv2df2<mask_name>): Renamed to ..
11867 (<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
11868 (ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
11869 Renamed to ..
11870 (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
11871 .. this.
11872 (ufix_notruncv2dfv2si2): Renamed to ..
11873 (fixuns_notruncv2dfv2si2):.. this.
11874 (ufix_notruncv2dfv2si2_mask): Renamed to ..
11875 (fixuns_notruncv2dfv2si2_mask): .. this.
11876 (*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
11877 (*fixuns_notruncv2dfv2si2_mask_1): .. this.
11878 (ufix_truncv2dfv2si2): Renamed to ..
11879 (*fixuns_truncv2dfv2si2): .. this.
11880 (ufix_truncv2dfv2si2_mask): Renamed to ..
11881 (fixuns_truncv2dfv2si2_mask): .. this.
11882 (*ufix_truncv2dfv2si2_mask_1): Renamed to ..
11883 (*fixuns_truncv2dfv2si2_mask_1): .. this.
11884 (ufix_truncv4dfv4si2<mask_name>): Renamed to ..
11885 (fixuns_truncv4dfv4si2<mask_name>): .. this.
11886 (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
11887 Renamed to ..
11888 (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
11889 .. this.
11890 (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
11891 (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
11892 .. this.
11893
11894 2023-03-30 Andrew MacLeod <amacleod@redhat.com>
11895
11896 PR tree-optimization/109154
11897 * gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
11898 * gimple-range-gori.h (may_recompute_p): Add depth param.
11899 * params.opt (ranger-recompute-depth): New param.
11900
11901 2023-03-30 Jason Merrill <jason@redhat.com>
11902
11903 PR c++/107897
11904 PR c++/108887
11905 * cgraph.h: Move reset() from cgraph_node to symtab_node.
11906 * cgraphunit.cc (symtab_node::reset): Adjust. Also call
11907 remove_from_same_comdat_group.
11908
11909 2023-03-30 Richard Biener <rguenther@suse.de>
11910
11911 PR tree-optimization/107561
11912 * gimple-ssa-warn-access.cc (get_size_range): Add flags
11913 argument and pass it on.
11914 (check_access): When querying for the size range pass
11915 SR_ALLOW_ZERO when the known destination size is zero.
11916
11917 2023-03-30 Richard Biener <rguenther@suse.de>
11918
11919 PR tree-optimization/109342
11920 * tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
11921 overload for edge. When that edge is a backedge use
11922 dominated_by_p directly.
11923
11924 2023-03-30 liuhongt <hongtao.liu@intel.com>
11925
11926 * config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
11927 vpblendd instead of vpblendw for V4SI under avx2.
11928
11929 2023-03-29 Hans-Peter Nilsson <hp@axis.com>
11930
11931 * config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
11932 for many quick operands, for register-sized modes.
11933
11934 2023-03-29 Jiawei <jiawei@iscas.ac.cn>
11935
11936 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
11937 New check.
11938
11939 2023-03-29 Martin Liska <mliska@suse.cz>
11940
11941 PR bootstrap/109310
11942 * configure.ac: Emit a warning for deprecated option
11943 --enable-link-mutex.
11944 * configure: Regenerate.
11945
11946 2023-03-29 Richard Biener <rguenther@suse.de>
11947
11948 PR tree-optimization/109331
11949 * tree-ssa-forwprop.cc (pass_forwprop::execute): When we
11950 discover a taken edge make sure to cleanup the CFG.
11951
11952 2023-03-29 Richard Biener <rguenther@suse.de>
11953
11954 PR tree-optimization/109327
11955 * tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
11956 already removed stmts when draining to_remove.
11957
11958 2023-03-29 Richard Biener <rguenther@suse.de>
11959
11960 PR ipa/106124
11961 * dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
11962 so we can re-create the DIE for the type if required.
11963
11964 2023-03-29 Jakub Jelinek <jakub@redhat.com>
11965 Richard Biener <rguenther@suse.de>
11966
11967 PR tree-optimization/109301
11968 * tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
11969 properties_provided from PROP_gimple_opt_math to 0.
11970 (pass_data_expand_powcabs): Change properties_provided from 0 to
11971 PROP_gimple_opt_math.
11972
11973 2023-03-29 Richard Biener <rguenther@suse.de>
11974
11975 PR tree-optimization/109154
11976 * tree-if-conv.cc (gen_phi_arg_condition): Handle single
11977 inverted condition specially by inverting at the caller.
11978 (gen_phi_arg_condition): Swap COND_EXPR arms if requested.
11979
11980 2023-03-28 David Malcolm <dmalcolm@redhat.com>
11981
11982 PR c/107002
11983 * diagnostic-show-locus.cc (column_range::column_range): Factor
11984 out assertion conditional into...
11985 (column_range::valid_p): ...this new function.
11986 (line_corrections::add_hint): Don't attempt to consolidate hints
11987 if it would lead to invalid column_range instances.
11988
11989 2023-03-28 Kito Cheng <kito.cheng@sifive.com>
11990
11991 PR target/109312
11992 * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
11993 (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
11994 minor refactor.
11995
11996 2023-03-28 Alexander Monakov <amonakov@ispras.ru>
11997
11998 PR rtl-optimization/109187
11999 * haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
12000 subtraction in three-way comparison.
12001
12002 2023-03-28 Andrew MacLeod <amacleod@redhat.com>
12003
12004 PR tree-optimization/109265
12005 PR tree-optimization/109274
12006 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
12007 not create a relation record is op1 and op2 are the same symbol.
12008 (gori_compute::compute_operand1_range): Pass op1 == op2 to the
12009 handler for this stmt, but create a new record only if this statement
12010 generates a relation based on the ranges.
12011 (gori_compute::compute_operand2_range): Ditto.
12012 * value-relation.h (value_relation::set_relation): Always create the
12013 record that is requested.
12014
12015 2023-03-28 Richard Biener <rguenther@suse.de>
12016
12017 PR tree-optimization/107087
12018 * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
12019 executable regions to avoid useless work and to better
12020 propagate degenerate PHIs.
12021
12022 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
12023
12024 * config/i386/x-mingw32-utf8: update comments.
12025
12026 2023-03-28 Richard Sandiford <richard.sandiford@arm.com>
12027
12028 PR target/109072
12029 * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
12030 * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
12031 variable.
12032 * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
12033 New function.
12034 (aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
12035 after inlining. Record which decls are loaded from. Fix handling
12036 of vops for loads and stores.
12037 * config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
12038 (aarch64_accesses_vector_load_decl_p): Likewise.
12039 (aarch64_vector_costs::m_stores_to_vector_load_decl): New member
12040 variable.
12041 (aarch64_vector_costs::add_stmt_cost): If the function has a vld1
12042 that loads from a decl, treat vector stores to those decls as
12043 zero cost.
12044 (aarch64_vector_costs::finish_cost): ...and in that case,
12045 if the vector code does nothing more than a store, give the
12046 prologue a zero cost as well.
12047
12048 2023-03-28 Richard Biener <rguenther@suse.de>
12049
12050 PR bootstrap/84402
12051 PR tree-optimization/108129
12052 * genmatch.cc (lower_for): For (match ...) delay
12053 substituting into the match operator if possible.
12054 (dt_operand::gen_gimple_expr): For user_id look at the
12055 first substitute for determining how to access operands.
12056 (dt_operand::gen_generic_expr): Likewise.
12057 (dt_node::gen_kids): Properly sort user_ids according
12058 to their substitutes.
12059 (dt_node::gen_kids_1): Code-generate user_id matching.
12060
12061 2023-03-28 Jakub Jelinek <jakub@redhat.com>
12062 Jonathan Wakely <jwakely@redhat.com>
12063
12064 * gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
12065 Use subcommand rather than sub-command in function comments.
12066
12067 2023-03-28 Jakub Jelinek <jakub@redhat.com>
12068
12069 PR tree-optimization/109154
12070 * value-range.h (frange::flush_denormals_to_zero): Make it public
12071 rather than private.
12072 * value-range.cc (frange::set): Don't call flush_denormals_to_zero
12073 here.
12074 * range-op-float.cc (range_operator_float::fold_range): Call
12075 flush_denormals_to_zero.
12076
12077 2023-03-28 Jakub Jelinek <jakub@redhat.com>
12078
12079 PR middle-end/106190
12080 * sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
12081 of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
12082
12083 2023-03-28 Jakub Jelinek <jakub@redhat.com>
12084
12085 * range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
12086 as 4th argument to set to avoid clear_nan and union_ calls.
12087
12088 2023-03-28 Jakub Jelinek <jakub@redhat.com>
12089
12090 PR target/109276
12091 * config/i386/i386.cc (assign_386_stack_local): For DImode
12092 with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
12093 align 32 rather than 0 to assign_stack_local.
12094
12095 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
12096
12097 PR target/109140
12098 * config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
12099 on operand #3 to get the final condition code. Use std::swap.
12100 * config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
12101 (fucmp<gcond:code>8<P:mode>_vis): Move around.
12102 (fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
12103 (vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
12104
12105 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
12106
12107 * doc/gm2.texi: Add missing Next, Previous and Top fields to most
12108 top-level sections.
12109
12110 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
12111
12112 * config.host: Pull in i386/x-mingw32-utf8 Makefile
12113 fragment and reference utf8rc-mingw32.o explicitly
12114 for mingw hosts.
12115 * config/i386/sym-mingw32.cc: prevent name mangling of
12116 stub symbol.
12117 * config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
12118 depend on manifest file explicitly.
12119
12120 2023-03-28 Richard Biener <rguenther@suse.de>
12121
12122 Revert:
12123 2023-03-27 Richard Biener <rguenther@suse.de>
12124
12125 PR rtl-optimization/109237
12126 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
12127
12128 2023-03-28 Richard Biener <rguenther@suse.de>
12129
12130 * common.opt (gdwarf): Remove Negative(gdwarf-).
12131
12132 2023-03-28 Richard Biener <rguenther@suse.de>
12133
12134 * common.opt (gdwarf): Add RejectNegative.
12135 (gdwarf-): Likewise.
12136 (ggdb): Likewise.
12137 (gvms): Likewise.
12138
12139 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
12140
12141 * config/cris/constraints.md ("T"): Correct to
12142 define_memory_constraint.
12143
12144 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
12145
12146 * config/cris/cris.md (BW2): New mode-iterator.
12147 (lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
12148 peephole2s.
12149
12150 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
12151
12152 * config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
12153 for possible eliminable compares.
12154
12155 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
12156
12157 * config/cris/constraints.md ("R"): Remove unused constraint.
12158
12159 2023-03-27 Jonathan Wakely <jwakely@redhat.com>
12160
12161 PR gcov-profile/109297
12162 * gcov-tool.cc (merge_usage): Fix "subcomand" typo.
12163 (merge_stream_usage): Likewise.
12164 (overlap_usage): Likewise.
12165
12166 2023-03-27 Christoph Müllner <christoph.muellner@vrull.eu>
12167
12168 PR target/109296
12169 * config/riscv/thead.md: Add missing mode specifiers.
12170
12171 2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
12172 Jiangning Liu <jiangning.liu@amperecomputing.com>
12173 Manolis Tsamis <manolis.tsamis@vrull.eu>
12174
12175 * config/aarch64/aarch64.cc: Update vector costs for ampere1.
12176
12177 2023-03-27 Richard Biener <rguenther@suse.de>
12178
12179 PR rtl-optimization/109237
12180 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
12181
12182 2023-03-27 Richard Biener <rguenther@suse.de>
12183
12184 PR lto/109263
12185 * lto-wrapper.cc (run_gcc): Parse alternate debug options
12186 as well, they always enable debug.
12187
12188 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
12189
12190 PR target/109167
12191 * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
12192 from ...
12193 (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
12194
12195 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
12196
12197 PR target/109082
12198 * config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
12199 than zero when calling vec_sld.
12200 (_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
12201 zero when calling vec_sld.
12202 (_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
12203 than zero when calling vec_sld.
12204
12205 2023-03-27 Sandra Loosemore <sandra@codesourcery.com>
12206
12207 * doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
12208 OMP_TASKLOOP, and OMP_LOOP with OMP_FOR. Document how collapsed
12209 loops are represented and which fields are vectors. Add
12210 documentation for OMP_FOR_PRE_BODY field. Document internal
12211 form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
12212 * tree.def (OMP_FOR): Make documentation consistent with the
12213 Texinfo manual, to fill some gaps and correct errors.
12214
12215 2023-03-26 Andreas Schwab <schwab@linux-m68k.org>
12216
12217 PR target/106282
12218 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
12219 * config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
12220 (handle_move_double): Call it before handle_movsi.
12221 * config/m68k/m68k-protos.h: Declare it.
12222
12223 2023-03-26 Jakub Jelinek <jakub@redhat.com>
12224
12225 PR tree-optimization/109230
12226 * match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
12227
12228 2023-03-26 Jakub Jelinek <jakub@redhat.com>
12229
12230 PR ipa/105685
12231 * predict.cc (compute_function_frequency): Don't call
12232 warn_function_cold if function already has cold attribute.
12233
12234 2023-03-26 Gerald Pfeifer <gerald@pfeifer.com>
12235
12236 * doc/install.texi: Remove anachronistic note
12237 related to languages built and separate source tarballs.
12238
12239 2023-03-25 David Malcolm <dmalcolm@redhat.com>
12240
12241 PR analyzer/109098
12242 * diagnostic-format-sarif.cc (read_until_eof): Delete.
12243 (maybe_read_file): Delete.
12244 (sarif_builder::maybe_make_artifact_content_object): Use
12245 get_source_file_content rather than maybe_read_file.
12246 Reject it if it's not valid UTF-8.
12247 * input.cc (file_cache_slot::get_full_file_content): New.
12248 (get_source_file_content): New.
12249 (selftest::check_cpp_valid_utf8_p): New.
12250 (selftest::test_cpp_valid_utf8_p): New.
12251 (selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
12252 * input.h (get_source_file_content): New prototype.
12253
12254 2023-03-24 David Malcolm <dmalcolm@redhat.com>
12255
12256 * doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
12257 debugging options.
12258 (Special Functions for Debugging the Analyzer): Convert to a
12259 table, and rewrite in places.
12260 (Other Debugging Techniques): Add notes on how to compare two
12261 different exploded graphs.
12262
12263 2023-03-24 David Malcolm <dmalcolm@redhat.com>
12264
12265 PR other/109163
12266 * json.cc: Update comments to indicate that we now preserve
12267 insertion order of keys within objects.
12268 (object::print): Traverse keys in insertion order.
12269 (object::set): Preserve insertion order of keys.
12270 (selftest::test_writing_objects): Add an additional key to verify
12271 that we preserve insertion order.
12272 * json.h (object::m_keys): New field.
12273
12274 2023-03-24 Andrew MacLeod <amacleod@redhat.com>
12275
12276 PR tree-optimization/109238
12277 * gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
12278 predecessors which this block dominates.
12279
12280 2023-03-24 Richard Biener <rguenther@suse.de>
12281
12282 PR tree-optimization/106912
12283 * tree-profile.cc (tree_profiling): Update stmts only when
12284 profiling or testing coverage. Make sure to update calls
12285 fntype, stripping 'const' there.
12286
12287 2023-03-24 Jakub Jelinek <jakub@redhat.com>
12288
12289 PR middle-end/109258
12290 * builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
12291 if target == const0_rtx.
12292
12293 2023-03-24 Alexandre Oliva <oliva@adacore.com>
12294
12295 * doc/sourcebuild.texi (weak_undefined, posix_memalign):
12296 Document options and effective targets.
12297
12298 2023-03-24 Costas Argyris <costas.argyris@gmail.com>
12299
12300 * config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
12301 optional.
12302
12303 2023-03-23 Pat Haugen <pthaugen@linux.ibm.com>
12304
12305 * config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
12306 non-earlyclobber alternative.
12307
12308 2023-03-23 Andrew Pinski <apinski@marvell.com>
12309
12310 PR c/84900
12311 * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
12312 as a lvalue.
12313
12314 2023-03-23 Richard Biener <rguenther@suse.de>
12315
12316 PR tree-optimization/107569
12317 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
12318 Do not push SSA names with zero uses as available leader.
12319 (process_bb): Likewise.
12320
12321 2023-03-23 Richard Biener <rguenther@suse.de>
12322
12323 PR tree-optimization/109262
12324 * tree-ssa-forwprop.cc (pass_forwprop::execute): When
12325 combining a piecewise complex load avoid touching loads
12326 that throw internally. Use fun, not cfun throughout.
12327
12328 2023-03-23 Jakub Jelinek <jakub@redhat.com>
12329
12330 * value-range.cc (irange::irange_union, irange::intersect): Fix
12331 comment spelling bugs.
12332 * gimple-range-trace.cc (range_tracer::do_header): Likewise.
12333 * gimple-range-trace.h: Likewise.
12334 * gimple-range-edge.cc: Likewise.
12335 (gimple_outgoing_range_stmt_p,
12336 gimple_outgoing_range::switch_edge_range,
12337 gimple_outgoing_range::edge_range_p): Likewise.
12338 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
12339 gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
12340 assume_query::assume_query, assume_query::calculate_phi): Likewise.
12341 * gimple-range-edge.h: Likewise.
12342 * value-range.h (Value_Range::set, Value_Range::lower_bound,
12343 Value_Range::upper_bound, frange::set_undefined): Likewise.
12344 * gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
12345 gori_compute): Likewise.
12346 * gimple-range-fold.h (fold_using_range): Likewise.
12347 * gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
12348 Likewise.
12349 * gimple-range-gori.cc (range_def_chain::in_chain_p,
12350 range_def_chain::dump, gori_map::calculate_gori,
12351 gori_compute::compute_operand_range_switch,
12352 gori_compute::logical_combine, gori_compute::refine_using_relation,
12353 gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
12354 Likewise.
12355 * gimple-range.h: Likewise.
12356 (enable_ranger): Likewise.
12357 * range-op.h (empty_range_varying): Likewise.
12358 * value-query.h (value_query): Likewise.
12359 * gimple-range-cache.cc (block_range_cache::set_bb_range,
12360 block_range_cache::dump, ssa_global_cache::clear_global_range,
12361 temporal_cache::temporal_value, temporal_cache::current_p,
12362 ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
12363 ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
12364 Likewise.
12365 * gimple-range-fold.cc (fur_edge::get_phi_operand,
12366 fur_stmt::get_operand, gimple_range_adjustment,
12367 fold_using_range::range_of_phi,
12368 fold_using_range::relation_fold_and_or): Likewise.
12369 * value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
12370 * value-query.cc (range_query::value_of_expr,
12371 range_query::value_on_edge, range_query::query_relation): Likewise.
12372 * tree-vrp.cc (remove_unreachable::remove_and_update_globals,
12373 intersect_range_with_nonzero_bits): Likewise.
12374 * gimple-range-infer.cc (gimple_infer_range::check_assume_func,
12375 exit_range): Likewise.
12376 * value-relation.h: Likewise.
12377 (equiv_oracle, relation_trio::relation_trio, value_relation,
12378 value_relation::value_relation, pe_min): Likewise.
12379 * range-op-float.cc (range_operator_float::rv_fold,
12380 frange_arithmetic, foperator_unordered_equal::op1_range,
12381 foperator_div::rv_fold): Likewise.
12382 * gimple-range-op.cc (cfn_clz::fold_range): Likewise.
12383 * value-relation.cc (equiv_oracle::query_relation,
12384 equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
12385 value_relation::apply_transitive, relation_chain_head::find_relation,
12386 dom_oracle::query_relation, dom_oracle::find_relation_block,
12387 dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
12388 * range-op.cc (range_operator::wi_fold_in_parts_equiv,
12389 create_possibly_reversed_range, adjust_op1_for_overflow,
12390 operator_mult::wi_fold, operator_exact_divide::op1_range,
12391 operator_cast::lhs_op1_relation, operator_cast::fold_pair,
12392 operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
12393 range_op_lshift_tests): Likewise.
12394
12395 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
12396
12397 * config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
12398 (move_callee_saved_registers): Detect the bug condition early.
12399
12400 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
12401
12402 * config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
12403 * config/gcn/gcn-valu.md (V_1REG_ALT): New.
12404 (V_2REG_ALT): New.
12405 (vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
12406 (vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
12407 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
12408 * config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
12409 * config/gcn/predicates.md (ascending_zero_int_parallel): New.
12410
12411 2023-03-23 Jakub Jelinek <jakub@redhat.com>
12412
12413 PR tree-optimization/109176
12414 * tree-vect-generic.cc (expand_vector_condition): If a has
12415 vector boolean type and is a comparison, also check if both
12416 the comparison and VEC_COND_EXPR could be successfully expanded
12417 individually.
12418
12419 2023-03-23 Pan Li <pan2.li@intel.com>
12420 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12421
12422 PR target/108654
12423 PR target/108185
12424 * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
12425 for vector mask modes.
12426 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
12427 * config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
12428
12429 2023-03-23 Songhe Zhu <zhusonghe@eswincomputing.com>
12430
12431 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
12432
12433 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12434
12435 PR target/109244
12436 * config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
12437 (emit_vlmax_op): Ditto.
12438 * config/riscv/riscv-v.cc (get_sew): New function.
12439 (emit_vlmax_vsetvl): Adapt function.
12440 (emit_pred_op): Ditto.
12441 (emit_vlmax_op): Ditto.
12442 (emit_nonvlmax_op): Ditto.
12443 (legitimize_move): Fix LRA ICE.
12444 (gen_no_side_effects_vsetvl_rtx): Adapt function.
12445 * config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
12446 (@mov<VB:mode><P:mode>_lra): Ditto.
12447 (*mov<V_FRACT:mode><P:mode>_lra): Ditto.
12448 (*mov<VB:mode><P:mode>_lra): Ditto.
12449
12450 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12451
12452 PR target/109228
12453 * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
12454 __riscv_vlenb support.
12455 (BASE): Ditto.
12456 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
12457 * config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
12458 * config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
12459 (SHAPE): Ditto.
12460 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
12461 * config/riscv/riscv-vector-builtins.cc: Ditto.
12462
12463 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12464 kito-cheng <kito.cheng@sifive.com>
12465
12466 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
12467 (pass_vsetvl::compute_local_backward_infos): Fix bugs.
12468 (pass_vsetvl::need_vsetvl): Fix bugs.
12469 (pass_vsetvl::backward_demand_fusion): Fix bugs.
12470 (pass_vsetvl::demand_fusion): Fix bugs.
12471 (eliminate_insn): Fix bugs.
12472 (insert_vsetvl): Ditto.
12473 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
12474 * config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
12475 * config/riscv/vector.md: Ditto.
12476
12477 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12478 kito-cheng <kito.cheng@sifive.com>
12479
12480 * config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
12481 * config/riscv/vector-iterators.md (nmsac): Ditto.
12482 (nmsub): Ditto.
12483 (msac): Ditto.
12484 (msub): Ditto.
12485 (nmadd): Ditto.
12486 (nmacc): Ditto.
12487 * config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
12488 (@pred_mul_plus<mode>): Ditto.
12489 (*pred_madd<mode>): Ditto.
12490 (*pred_macc<mode>): Ditto.
12491 (*pred_mul_plus<mode>): Ditto.
12492 (@pred_mul_plus<mode>_scalar): Ditto.
12493 (*pred_madd<mode>_scalar): Ditto.
12494 (*pred_macc<mode>_scalar): Ditto.
12495 (*pred_mul_plus<mode>_scalar): Ditto.
12496 (*pred_madd<mode>_extended_scalar): Ditto.
12497 (*pred_macc<mode>_extended_scalar): Ditto.
12498 (*pred_mul_plus<mode>_extended_scalar): Ditto.
12499 (@pred_minus_mul<mode>): Ditto.
12500 (*pred_<madd_nmsub><mode>): Ditto.
12501 (*pred_nmsub<mode>): Ditto.
12502 (*pred_<macc_nmsac><mode>): Ditto.
12503 (*pred_nmsac<mode>): Ditto.
12504 (*pred_mul_<optab><mode>): Ditto.
12505 (*pred_minus_mul<mode>): Ditto.
12506 (@pred_mul_<optab><mode>_scalar): Ditto.
12507 (@pred_minus_mul<mode>_scalar): Ditto.
12508 (*pred_<madd_nmsub><mode>_scalar): Ditto.
12509 (*pred_nmsub<mode>_scalar): Ditto.
12510 (*pred_<macc_nmsac><mode>_scalar): Ditto.
12511 (*pred_nmsac<mode>_scalar): Ditto.
12512 (*pred_mul_<optab><mode>_scalar): Ditto.
12513 (*pred_minus_mul<mode>_scalar): Ditto.
12514 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
12515 (*pred_nmsub<mode>_extended_scalar): Ditto.
12516 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
12517 (*pred_nmsac<mode>_extended_scalar): Ditto.
12518 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
12519 (*pred_minus_mul<mode>_extended_scalar): Ditto.
12520 (*pred_<madd_msub><mode>): Ditto.
12521 (*pred_<macc_msac><mode>): Ditto.
12522 (*pred_<madd_msub><mode>_scalar): Ditto.
12523 (*pred_<macc_msac><mode>_scalar): Ditto.
12524 (@pred_neg_mul_<optab><mode>): Ditto.
12525 (@pred_mul_neg_<optab><mode>): Ditto.
12526 (*pred_<nmadd_msub><mode>): Ditto.
12527 (*pred_<nmsub_nmadd><mode>): Ditto.
12528 (*pred_<nmacc_msac><mode>): Ditto.
12529 (*pred_<nmsac_nmacc><mode>): Ditto.
12530 (*pred_neg_mul_<optab><mode>): Ditto.
12531 (*pred_mul_neg_<optab><mode>): Ditto.
12532 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
12533 (@pred_mul_neg_<optab><mode>_scalar): Ditto.
12534 (*pred_<nmadd_msub><mode>_scalar): Ditto.
12535 (*pred_<nmsub_nmadd><mode>_scalar): Ditto.
12536 (*pred_<nmacc_msac><mode>_scalar): Ditto.
12537 (*pred_<nmsac_nmacc><mode>_scalar): Ditto.
12538 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
12539 (*pred_mul_neg_<optab><mode>_scalar): Ditto.
12540 (@pred_widen_neg_mul_<optab><mode>): Ditto.
12541 (@pred_widen_mul_neg_<optab><mode>): Ditto.
12542 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
12543 (@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
12544
12545 2023-03-23 liuhongt <hongtao.liu@intel.com>
12546
12547 * builtins.cc (builtin_memset_read_str): Replace
12548 targetm.gen_memset_scratch_rtx with gen_reg_rtx.
12549 (builtin_memset_gen_str): Ditto.
12550 * config/i386/i386-expand.cc
12551 (ix86_convert_const_wide_int_to_broadcast): Replace
12552 ix86_gen_scratch_sse_rtx with gen_reg_rtx.
12553 (ix86_expand_vector_move): Ditto.
12554 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
12555 Removed.
12556 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
12557 (TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
12558 * doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
12559 * doc/tm.texi.in: Ditto.
12560 * target.def: Ditto.
12561
12562 2023-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
12563
12564 * lra.cc (lra): Do not repeat inheritance and live range splitting
12565 when asm error is found.
12566
12567 2023-03-22 Andrew Jenner <andrew@codesourcery.com>
12568
12569 * config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
12570 (gcn_expand_dpp_distribute_even_insn)
12571 (gcn_expand_dpp_distribute_odd_insn): Declare.
12572 * config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
12573 (@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
12574 (cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
12575 (cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
12576 (fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
12577 (fms<mode>4_negop2): New patterns.
12578 * config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
12579 (gcn_expand_dpp_distribute_even_insn)
12580 (gcn_expand_dpp_distribute_odd_insn): New functions.
12581 * config/gcn/gcn.md: Add entries to unspec enum.
12582
12583 2023-03-22 Aldy Hernandez <aldyh@redhat.com>
12584
12585 PR tree-optimization/109008
12586 * value-range.cc (frange::set): Add nan_state argument.
12587 * value-range.h (class nan_state): New.
12588 (frange::get_nan_state): New.
12589
12590 2023-03-22 Martin Liska <mliska@suse.cz>
12591
12592 * configure: Regenerate.
12593
12594 2023-03-21 Joseph Myers <joseph@codesourcery.com>
12595
12596 * stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
12597 to variants.
12598
12599 2023-03-21 Andrew MacLeod <amacleod@redhat.com>
12600
12601 PR tree-optimization/109192
12602 * gimple-range-gori.cc (gori_compute::compute_operand_range):
12603 Terminate gori calculations if a relation is not relevant.
12604 * value-relation.h (value_relation::set_relation): Allow
12605 equality between op1 and op2 if they are the same.
12606
12607 2023-03-21 Richard Biener <rguenther@suse.de>
12608
12609 PR tree-optimization/109219
12610 * tree-vect-loop.cc (vectorizable_reduction): Check
12611 slp_node, not STMT_SLP_TYPE.
12612 * tree-vect-stmts.cc (vectorizable_condition): Likewise.
12613 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
12614 Remove assertion on STMT_SLP_TYPE.
12615
12616 2023-03-21 Jakub Jelinek <jakub@redhat.com>
12617
12618 PR tree-optimization/109215
12619 * tree.h (enum special_array_member): Adjust comments for int_0
12620 and trail_0.
12621 * tree.cc (component_ref_sam_type): Clear zero_elts if memtype
12622 has zero sized element type and the array has variable number of
12623 elements or constant one or more elements.
12624 (component_ref_size): Adjust comments, formatting fix.
12625
12626 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
12627
12628 * configure.ac: Add check for the Texinfo 6.8
12629 CONTENTS_OUTPUT_LOCATION customization variable and set it if
12630 supported.
12631 * configure: Regenerate.
12632 * Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable. Set by
12633 configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
12634 CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
12635 ($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
12636
12637 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
12638
12639 * doc/extend.texi: Associate use_hazard_barrier_return index
12640 entry with its attribute.
12641 * doc/invoke.texi: Associate -fcanon-prefix-map index entry with
12642 its attribute
12643
12644 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
12645
12646 * doc/implement-c.texi: Remove usage of @gol.
12647 * doc/invoke.texi: Ditto.
12648 * doc/sourcebuild.texi: Ditto.
12649 * doc/include/gcc-common.texi: Remove @gol. In new Makeinfo and
12650 texinfo.tex versions, the bug it was working around appears to
12651 be gone.
12652
12653 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
12654
12655 * doc/include/texinfo.tex: Update to 2023-01-17.19.
12656
12657 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
12658
12659 * doc/include/gcc-common.texi: Add @defbuiltin{,x} and
12660 @enddefbuiltin for defining built-in functions.
12661 * doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
12662 places where it should be used.
12663
12664 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
12665
12666 * doc/extend.texi (Formatted Output Function Checking): New
12667 subsection for grouping together printf et al.
12668 (Exception handling) Fix missing @ sign before copyright
12669 header, which lead to the copyright line leaking into
12670 '(gcc)Exception handling'.
12671 * doc/gcc.texi: Set document language to en_US.
12672 (@copying): Wrap front cover texts in quotations, move in manual
12673 description text.
12674
12675 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
12676
12677 * doc/gcc.texi: Add the Indices appendix, to make texinfo
12678 generate nice indices overview page.
12679
12680 2023-03-21 Richard Biener <rguenther@suse.de>
12681
12682 PR tree-optimization/109170
12683 * gimple-range-op.cc (cfn_pass_through_arg1): New.
12684 (gimple_range_op_handler::maybe_builtin_call): Handle
12685 __builtin_expect via cfn_pass_through_arg1.
12686
12687 2023-03-20 Michael Meissner <meissner@linux.ibm.com>
12688
12689 PR target/109067
12690 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
12691 (init_float128_ieee): Delete code to switch complex multiply and divide
12692 for long double.
12693 (complex_multiply_builtin_code): New helper function.
12694 (complex_divide_builtin_code): Likewise.
12695 (rs6000_mangle_decl_assembler_name): Add support for mangling the name
12696 of complex 128-bit multiply and divide built-in functions.
12697
12698 2023-03-20 Peter Bergner <bergner@linux.ibm.com>
12699
12700 PR target/109178
12701 * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
12702
12703 2023-03-19 Jonny Grant <jg@jguk.org>
12704
12705 * doc/extend.texi (Common Function Attributes) <nonnull>:
12706 Correct typo.
12707
12708 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
12709
12710 PR rtl-optimization/109179
12711 * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
12712 insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
12713
12714 2023-03-17 Jakub Jelinek <jakub@redhat.com>
12715
12716 PR target/105554
12717 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
12718 to false.
12719 * function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
12720 to allocate_struct_function instead of false.
12721 * tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
12722 nor DECL_RESULT here. Pass true as ABSTRACT_P to
12723 push_struct_function. Call targetm.target_option.relayout_function
12724 after it.
12725 (tree_function_versioning): Formatting fix.
12726
12727 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
12728
12729 * lra-constraints.cc: Include hooks.h.
12730 (combine_reload_insn): New function.
12731 (lra_constraints): Call it.
12732
12733 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12734 kito-cheng <kito.cheng@sifive.com>
12735
12736 * config/riscv/riscv-v.cc (legitimize_move): Allow undef value
12737 as legitimate value.
12738 * config/riscv/riscv-vector-builtins.cc
12739 (function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
12740 (function_expander::use_widen_ternop_insn): Ditto.
12741 * config/riscv/vector.md (@vundefined<mode>): New pattern.
12742 (pred_mul_<optab><mode>_undef_merge): Remove.
12743 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
12744 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
12745 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
12746 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
12747
12748 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
12749
12750 PR target/109092
12751 * config/riscv/riscv.md: Fix subreg bug.
12752
12753 2023-03-17 Jakub Jelinek <jakub@redhat.com>
12754
12755 PR middle-end/108685
12756 * omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
12757 use its loop_father rather than BODY_BB's loop_father.
12758 (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
12759 If broken_loop with ordered > collapse and at least one of those
12760 extra loops aren't guaranteed to have at least one iteration, change
12761 l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
12762 loop_father to l0_bb's loop_father rather than l1_bb's.
12763
12764 2023-03-17 Jakub Jelinek <jakub@redhat.com>
12765
12766 PR plugins/108634
12767 * gdbhooks.py (TreePrinter.to_string): Wrap
12768 gdb.parse_and_eval('tree_code_type') in a try block, parse
12769 and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
12770 raises exception. Update comments for the recent tree_code_type
12771 changes.
12772
12773 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
12774
12775 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
12776 issues. Add more line breaks to example so it doesn't overflow
12777 the margins.
12778
12779 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
12780
12781 * doc/extend.texi (Common Function Attributes) <access>: Fix bad
12782 line breaks in examples.
12783 <malloc>: Fix bad line breaks in running text, also copy-edit
12784 for consistency.
12785 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
12786 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
12787 @gol.
12788 (C++ Dialect Options) <-fcontracts>: Add line break in example.
12789 <-Wctad-maybe-unsupported>: Likewise.
12790 <-Winvalid-constexpr>: Likewise.
12791 (Warning Options) <-Wdangling-pointer>: Likewise.
12792 <-Winterference-size>: Likewise.
12793 <-Wvla-parameter>: Likewise.
12794 (Static Analyzer Options): Fix bad line breaks in running text,
12795 plus add some missing markup.
12796 (Optimize Options) <openacc-privatization>: Fix more bad line
12797 breaks in running text.
12798
12799 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
12800
12801 * config/i386/i386-expand.cc (expand_vec_perm_pblendv):
12802 Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
12803 (expand_vec_perm_2perm_pblendv): Ditto.
12804
12805 2023-03-16 Martin Liska <mliska@suse.cz>
12806
12807 PR middle-end/106133
12808 * gcc.cc (driver_handle_option): Use x_main_input_basename
12809 if x_dump_base_name is null.
12810 * opts.cc (common_handle_option): Likewise.
12811
12812 2023-03-16 Richard Biener <rguenther@suse.de>
12813
12814 PR tree-optimization/109123
12815 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
12816 Do not emit -Wuse-after-free late.
12817 (pass_waccess::check_call): Always check call pointer uses.
12818
12819 2023-03-16 Richard Biener <rguenther@suse.de>
12820
12821 PR tree-optimization/109141
12822 * tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
12823 * tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
12824 out from ...
12825 (renumber_gimple_stmt_uids): ... here and
12826 (renumber_gimple_stmt_uids_in_blocks): ... here.
12827 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
12828 Use renumber_gimple_stmt_uids_in_block to also assign UIDs
12829 to PHIs.
12830 (pass_waccess::check_pointer_uses): Process all PHIs.
12831
12832 2023-03-15 David Malcolm <dmalcolm@redhat.com>
12833
12834 PR analyzer/109097
12835 * diagnostic-format-sarif.cc (class sarif_invocation): New.
12836 (class sarif_ice_notification): New.
12837 (sarif_builder::m_invocation_obj): New field.
12838 (sarif_invocation::add_notification_for_ice): New.
12839 (sarif_invocation::prepare_to_flush): New.
12840 (sarif_ice_notification::sarif_ice_notification): New.
12841 (sarif_builder::sarif_builder): Add m_invocation_obj.
12842 (sarif_builder::end_diagnostic): Special-case DK_ICE and
12843 DK_ICE_NOBT.
12844 (sarif_builder::flush_to_file): Call prepare_to_flush on
12845 m_invocation_obj. Pass the latter to make_top_level_object.
12846 (sarif_builder::make_result_object): Move creation of "locations"
12847 array to...
12848 (sarif_builder::make_locations_arr): ...this new function.
12849 (sarif_builder::make_top_level_object): Add "invocation_obj" param
12850 and pass it to make_run_object.
12851 (sarif_builder::make_run_object): Add "invocation_obj" param and
12852 use it.
12853 (sarif_ice_handler): New callback.
12854 (diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
12855 * diagnostic.cc (diagnostic_initialize): Initialize new field
12856 "ice_handler_cb".
12857 (diagnostic_action_after_output): If it is set, make one attempt
12858 to call ice_handler_cb.
12859 * diagnostic.h (diagnostic_context::ice_handler_cb): New field.
12860
12861 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
12862
12863 * config/i386/i386-expand.cc (expand_vec_perm_blend):
12864 Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
12865 and fix V2HImode handling.
12866 (expand_vec_perm_1): Try to emit BLEND instruction
12867 before MOVSS/MOVSD.
12868 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
12869
12870 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
12871
12872 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
12873
12874 2023-03-15 Richard Biener <rguenther@suse.de>
12875
12876 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
12877 Do not diagnose clobbers.
12878
12879 2023-03-15 Richard Biener <rguenther@suse.de>
12880
12881 PR tree-optimization/109139
12882 * tree-ssa-live.cc (remove_unused_locals): Look at the
12883 base address for unused decls on the LHS of .DEFERRED_INIT.
12884
12885 2023-03-15 Xi Ruoyao <xry111@xry111.site>
12886
12887 PR other/109086
12888 * builtins.cc (inline_string_cmp): Force the character
12889 difference into "result" pseudo-register, instead of reassign
12890 the pseudo-register.
12891
12892 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
12893
12894 * config.gcc: Add thead.o to RISC-V extra_objs.
12895 * config/riscv/peephole.md: Add mempair peephole passes.
12896 * config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
12897 prototype.
12898 (th_mempair_operands_p): Likewise.
12899 (th_mempair_order_operands): Likewise.
12900 (th_mempair_prepare_save_restore_operands): Likewise.
12901 (th_mempair_save_restore_regs): Likewise.
12902 (th_mempair_output_move): Likewise.
12903 * config/riscv/riscv.cc (riscv_save_reg): Move code.
12904 (riscv_restore_reg): Move code.
12905 (riscv_for_each_saved_reg): Add code to emit mempair insns.
12906 * config/riscv/t-riscv: Add thead.cc.
12907 * config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
12908 New insn.
12909 (*th_mempair_store_<GPR:mode>2): Likewise.
12910 (*th_mempair_load_extendsidi2): Likewise.
12911 (*th_mempair_load_zero_extendsidi2): Likewise.
12912 * config/riscv/thead.cc: New file.
12913
12914 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
12915
12916 * config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
12917 New constraint "th_f_fmv".
12918 (TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
12919 "th_r_fmv".
12920 * config/riscv/riscv.cc (riscv_split_doubleword_move):
12921 Add split code for XTheadFmv.
12922 (riscv_secondary_memory_needed): XTheadFmv does not need
12923 secondary memory.
12924 * config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
12925 UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
12926 movdf_hardfloat_rv32.
12927 * config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
12928 (th_fmv_x_w): New INSN.
12929 (th_fmv_x_hw): New INSN.
12930
12931 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
12932
12933 * config/riscv/riscv.md (maddhisi4): New expand.
12934 (msubhisi4): New expand.
12935 * config/riscv/thead.md (*th_mula<mode>): New pattern.
12936 (*th_mulawsi): New pattern.
12937 (*th_mulawsi2): New pattern.
12938 (*th_maddhisi4): New pattern.
12939 (*th_sextw_maddhisi4): New pattern.
12940 (*th_muls<mode>): New pattern.
12941 (*th_mulswsi): New pattern.
12942 (*th_mulswsi2): New pattern.
12943 (*th_msubhisi4): New pattern.
12944 (*th_sextw_msubhisi4): New pattern.
12945
12946 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
12947
12948 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
12949 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
12950 Add prototype.
12951 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
12952 XTheadCondMov.
12953 (riscv_expand_conditional_move): New function.
12954 (riscv_expand_conditional_move_onesided): New function.
12955 * config/riscv/riscv.md: Add support for XTheadCondMov.
12956 * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
12957 support for XTheadCondMov.
12958 (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
12959
12960 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
12961
12962 * config/riscv/bitmanip.md (clzdi2): New expand.
12963 (clzsi2): New expand.
12964 (ctz<mode>2): New expand.
12965 (popcount<mode>2): New expand.
12966 (<bitmanip_optab>si2): Rename INSN.
12967 (*<bitmanip_optab>si2): Hide INSN name.
12968 (<bitmanip_optab>di2): Rename INSN.
12969 (*<bitmanip_optab>di2): Hide INSN name.
12970 (rotrsi3): Remove INSN.
12971 (rotr<mode>3): Add expand.
12972 (*rotrsi3): New INSN.
12973 (rotrdi3): Rename INSN.
12974 (*rotrdi3): Hide INSN name.
12975 (rotrsi3_sext): Rename INSN.
12976 (*rotrsi3_sext): Hide INSN name.
12977 (bswap<mode>2): Remove INSN.
12978 (bswapdi2): Add expand.
12979 (bswapsi2): Add expand.
12980 (*bswap<mode>2): Hide INSN name.
12981 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
12982 extraction.
12983 * config/riscv/riscv.md (extv<mode>): New expand.
12984 (extzv<mode>): New expand.
12985 * config/riscv/thead.md (*th_srri<mode>3): New INSN.
12986 (*th_ext<mode>): New INSN.
12987 (*th_extu<mode>): New INSN.
12988 (*th_clz<mode>2): New INSN.
12989 (*th_rev<mode>2): New INSN.
12990
12991 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
12992
12993 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
12994 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
12995
12996 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
12997
12998 * config/riscv/riscv.md: Include thead.md
12999 * config/riscv/thead.md: New file.
13000
13001 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
13002
13003 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
13004
13005 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
13006
13007 * common/config/riscv/riscv-common.cc: Add xthead* extensions.
13008 * config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
13009 (MASK_XTHEADBB): New.
13010 (MASK_XTHEADBS): New.
13011 (MASK_XTHEADCMO): New.
13012 (MASK_XTHEADCONDMOV): New.
13013 (MASK_XTHEADFMEMIDX): New.
13014 (MASK_XTHEADFMV): New.
13015 (MASK_XTHEADINT): New.
13016 (MASK_XTHEADMAC): New.
13017 (MASK_XTHEADMEMIDX): New.
13018 (MASK_XTHEADMEMPAIR): New.
13019 (MASK_XTHEADSYNC): New.
13020 (TARGET_XTHEADBA): New.
13021 (TARGET_XTHEADBB): New.
13022 (TARGET_XTHEADBS): New.
13023 (TARGET_XTHEADCMO): New.
13024 (TARGET_XTHEADCONDMOV): New.
13025 (TARGET_XTHEADFMEMIDX): New.
13026 (TARGET_XTHEADFMV): New.
13027 (TARGET_XTHEADINT): New.
13028 (TARGET_XTHEADMAC): New.
13029 (TARGET_XTHEADMEMIDX): New.
13030 (TARGET_XTHEADMEMPAIR): new.
13031 (TARGET_XTHEADSYNC): New.
13032 * config/riscv/riscv.opt: Add riscv_xthead_subext.
13033
13034 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
13035
13036 PR target/109117
13037 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
13038 __builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
13039 __builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
13040
13041 2023-03-14 Jakub Jelinek <jakub@redhat.com>
13042
13043 PR target/109109
13044 * config/i386/i386-expand.cc (split_double_concat): Fix splitting
13045 when lo is equal to dhi and hi is a MEM which uses dlo register.
13046
13047 2023-03-14 Martin Jambor <mjambor@suse.cz>
13048
13049 PR ipa/107925
13050 * ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
13051 global0 instead of zeroing when it does not have as many counts as
13052 it should.
13053
13054 2023-03-14 Martin Jambor <mjambor@suse.cz>
13055
13056 PR ipa/107925
13057 * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
13058 ipa count, remove assert, lenient_count_portion_handling, dump
13059 also orig_node_count.
13060
13061 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
13062
13063 * config/i386/i386-expand.cc (expand_vec_perm_movs):
13064 Handle V2SImode for TARGET_MMX_WITH_SSE.
13065 * config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
13066 using V2FI mode iterator to handle both V2SI and V2SF modes.
13067
13068 2023-03-14 Sam James <sam@gentoo.org>
13069
13070 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
13071 including <sstream> earlier.
13072 * system.h: Add INCLUDE_SSTREAM.
13073
13074 2023-03-14 Richard Biener <rguenther@suse.de>
13075
13076 * tree-ssa-live.cc (remove_unused_locals): Do not treat
13077 the .DEFERRED_INIT of a variable as use, instead remove
13078 that if it is the only use.
13079
13080 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
13081
13082 PR rtl-optimization/107762
13083 * expr.cc (emit_group_store): Revert latest change.
13084
13085 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
13086
13087 PR tree-optimization/109005
13088 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
13089 aggregate type check.
13090
13091 2023-03-14 Jakub Jelinek <jakub@redhat.com>
13092
13093 PR tree-optimization/109115
13094 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
13095 r.upper_bound () on r.undefined_p () range.
13096
13097 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
13098
13099 PR tree-optimization/106896
13100 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
13101 implementatoin with probability_in; avoid some asserts.
13102
13103 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
13104
13105 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
13106
13107 2023-03-13 Sean Bright <sean@seanbright.com>
13108
13109 * doc/invoke.texi (Warning Options): Remove errant 'See'
13110 before @xref.
13111
13112 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13113
13114 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
13115 REG_OK_FOR_BASE_P): Remove.
13116
13117 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13118
13119 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
13120 (=vd,vd,vr,vr): Ditto.
13121 * config/riscv/vector.md: Ditto.
13122
13123 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13124
13125 * config/riscv/riscv-vector-builtins.cc
13126 (function_expander::use_compare_insn): Add operand predicate check.
13127
13128 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13129
13130 * config/riscv/vector.md: Fine tune RA constraints.
13131
13132 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
13133
13134 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
13135 hsaco assemble/link.
13136
13137 2023-03-13 Richard Biener <rguenther@suse.de>
13138
13139 PR tree-optimization/109046
13140 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
13141 piecewise complex loads.
13142
13143 2023-03-12 Jakub Jelinek <jakub@redhat.com>
13144
13145 * config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
13146 (aarch64_bf16_ptr_type_node): Adjust comment.
13147 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
13148 bfloat16_type_node rather than aarch64_bf16_type_node.
13149 (aarch64_libgcc_floating_mode_supported_p,
13150 aarch64_scalar_mode_supported_p): Also support BFmode.
13151 (aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
13152 (aarch64_invalid_binary_op): Remove BFmode related rejections.
13153 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
13154 * config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
13155 (aarch64_int_or_fp_type): Use bfloat16_type_node rather than
13156 aarch64_bf16_type_node.
13157 (aarch64_init_simd_builtin_types): Likewise.
13158 (aarch64_init_bf16_types): Likewise. Don't create bfloat16_type_node,
13159 which is created in tree.cc already.
13160 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
13161
13162 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
13163
13164 PR middle-end/109031
13165 * tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
13166 ensure that the type of x is as wide or wider than the type of a.
13167
13168 2023-03-12 Tamar Christina <tamar.christina@arm.com>
13169
13170 PR target/108583
13171 * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
13172 (*bitmask_shift_plus<mode>): New.
13173 * config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
13174 (@aarch64_bitmask_udiv<mode>3): Remove.
13175 * config/aarch64/aarch64.cc
13176 (aarch64_vectorize_can_special_div_by_constant,
13177 TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
13178 (TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
13179 aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
13180
13181 2023-03-12 Tamar Christina <tamar.christina@arm.com>
13182
13183 PR target/108583
13184 * target.def (preferred_div_as_shifts_over_mult): New.
13185 * doc/tm.texi.in: Document it.
13186 * doc/tm.texi: Regenerate.
13187 * targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
13188 * targhooks.h (default_preferred_div_as_shifts_over_mult): New.
13189 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
13190
13191 2023-03-12 Tamar Christina <tamar.christina@arm.com>
13192 Richard Sandiford <richard.sandiford@arm.com>
13193
13194 PR target/108583
13195 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
13196 single use.
13197
13198 2023-03-12 Tamar Christina <tamar.christina@arm.com>
13199 Andrew MacLeod <amacleod@redhat.com>
13200
13201 PR target/108583
13202 * gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
13203 * gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
13204 Use it.
13205 (gimple_range_op_handler::maybe_non_standard): New.
13206 * range-op.cc (class operator_widen_plus_signed,
13207 operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
13208 operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
13209 operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
13210 operator_widen_mult_unsigned::wi_fold,
13211 ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
13212 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
13213 * range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
13214 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
13215
13216 2023-03-12 Tamar Christina <tamar.christina@arm.com>
13217
13218 PR target/108583
13219 * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
13220 * doc/tm.texi.in: Likewise.
13221 * explow.cc (round_push, align_dynamic_address): Revert previous patch.
13222 * expmed.cc (expand_divmod): Likewise.
13223 * expmed.h (expand_divmod): Likewise.
13224 * expr.cc (force_operand, expand_expr_divmod): Likewise.
13225 * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
13226 * target.def (can_special_div_by_const): Remove.
13227 * target.h: Remove tree-core.h include
13228 * targhooks.cc (default_can_special_div_by_const): Remove.
13229 * targhooks.h (default_can_special_div_by_const): Remove.
13230 * tree-vect-generic.cc (expand_vector_operation): Remove hook.
13231 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
13232 * tree-vect-stmts.cc (vectorizable_operation): Remove hook.
13233
13234 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
13235
13236 * doc/install.texi2html: Fix issue number typo in comment.
13237
13238 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
13239
13240 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
13241 bool.
13242
13243 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
13244
13245 * doc/invoke.texi (Optimize Options): Add markup to
13246 description of asan-kernel-mem-intrinsic-prefix, and clarify
13247 wording slightly.
13248
13249 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
13250
13251 * doc/extend.texi (Named Address Spaces): Drop a redundant link
13252 to AVR-LibC.
13253
13254 2023-03-11 Jeff Law <jlaw@ventanamicro>
13255
13256 PR web/88860
13257 * doc/extend.texi: Clarify Attribute Syntax a bit.
13258
13259 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
13260
13261 * doc/install.texi (Prerequisites): Suggest using newer versions
13262 of Texinfo.
13263 (Final install): Clean up and modernize discussion of how to
13264 build or obtain the GCC manuals.
13265 * doc/install.texi2html: Update comment to point to the PR instead
13266 of "makeinfo 4.7 brokenness" (it's not specific to that version).
13267
13268 2023-03-10 Jakub Jelinek <jakub@redhat.com>
13269
13270 PR target/107703
13271 * optabs.cc (expand_fix): For conversions from BFmode to integral,
13272 use shifts to convert it to SFmode first and then convert SFmode
13273 to integral.
13274
13275 2023-03-10 Andrew Pinski <apinski@marvell.com>
13276
13277 * config/aarch64/aarch64.md: Add a new define_split
13278 to help combine.
13279
13280 2023-03-10 Richard Biener <rguenther@suse.de>
13281
13282 * tree-ssa-structalias.cc (solve_graph): Immediately
13283 iterate self-cycles.
13284
13285 2023-03-10 Jakub Jelinek <jakub@redhat.com>
13286
13287 PR tree-optimization/109008
13288 * range-op-float.cc (float_widen_lhs_range): If not
13289 -frounding-math and not IBM double double format, extend lhs
13290 range just by 0.5ulp rather than 1ulp in each direction.
13291
13292 2023-03-10 Jakub Jelinek <jakub@redhat.com>
13293
13294 PR target/107998
13295 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
13296 $tmake_file.
13297 * config/i386/t-cygwin-w64: Remove.
13298
13299 2023-03-10 Jakub Jelinek <jakub@redhat.com>
13300
13301 PR plugins/108634
13302 * tree-core.h (tree_code_type, tree_code_length): For C++11 or
13303 C++14, don't declare as extern const arrays.
13304 (tree_code_type_tmpl, tree_code_length_tmpl): New types with
13305 static constexpr member arrays for C++11 or C++14.
13306 * tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
13307 tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
13308 (TREE_CODE_LENGTH): For C++11 or C++14 use
13309 tree_code_length_tmpl <0>::tree_code_length instead of
13310 tree_code_length.
13311 * tree.cc (tree_code_type, tree_code_length): Remove.
13312
13313 2023-03-10 Jakub Jelinek <jakub@redhat.com>
13314
13315 PR other/108464
13316 * common.opt (fcanon-prefix-map): New option.
13317 * opts.cc: Include file-prefix-map.h.
13318 (flag_canon_prefix_map): New variable.
13319 (common_handle_option): Handle OPT_fcanon_prefix_map.
13320 (gen_command_line_string): Ignore OPT_fcanon_prefix_map.
13321 * file-prefix-map.h (flag_canon_prefix_map): Declare.
13322 * file-prefix-map.cc (struct file_prefix_map): Add canonicalize
13323 member.
13324 (add_prefix_map): Initialize canonicalize member from
13325 flag_canon_prefix_map, and if true canonicalize it using lrealpath.
13326 (remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
13327 use lrealpath result only for map->canonicalize map entries.
13328 * lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
13329 * opts-global.cc (handle_common_deferred_options): Clear
13330 flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
13331 * doc/invoke.texi (-fcanon-prefix-map): Document.
13332 (-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
13333 see also for -fcanon-prefix-map.
13334 * doc/cppopts.texi (-fmacro-prefix-map): Likewise.
13335
13336 2023-03-10 Jakub Jelinek <jakub@redhat.com>
13337
13338 PR c/108079
13339 * cgraphunit.cc (check_global_declaration): Don't warn for unused
13340 variables which have OPT_Wunused_variable warning suppressed.
13341
13342 2023-03-10 Jakub Jelinek <jakub@redhat.com>
13343
13344 PR tree-optimization/109008
13345 * range-op-float.cc (float_widen_lhs_range): If lb is
13346 minimum representable finite number or ub is maximum
13347 representable finite number, instead of widening it to
13348 -inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
13349 Temporarily clear flag_finite_math_only when canonicalizing
13350 the widened range.
13351
13352 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13353
13354 * config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
13355 * config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
13356 (gimple_fold_builtin): Ditto.
13357 * config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
13358 (class vleff): Ditto.
13359 (BASE): Ditto.
13360 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
13361 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
13362 (vleff): Ditto.
13363 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
13364 (struct fault_load_def): Ditto.
13365 (SHAPE): Ditto.
13366 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
13367 * config/riscv/riscv-vector-builtins.cc
13368 (rvv_arg_type_info::get_tree_type): Add size_ptr.
13369 (gimple_folder::gimple_folder): New class.
13370 (gimple_folder::fold): Ditto.
13371 (gimple_fold_builtin): New function.
13372 (get_read_vl_instance): Ditto.
13373 (get_read_vl_decl): Ditto.
13374 * config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
13375 * config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
13376 (get_read_vl_instance): New function.
13377 (get_read_vl_decl): Ditto.
13378 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
13379 (read_vl_insn_p): Ditto.
13380 (available_occurrence_p): Ditto.
13381 (backward_propagate_worthwhile_p): Ditto.
13382 (gen_vsetvl_pat): Adapt for vleff support.
13383 (get_forward_read_vl_insn): New function.
13384 (get_backward_fault_first_load_insn): Ditto.
13385 (source_equal_p): Adapt for vleff support.
13386 (first_ratio_invalid_for_second_sew_p): Remove.
13387 (first_ratio_invalid_for_second_lmul_p): Ditto.
13388 (first_lmul_less_than_second_lmul_p): Ditto.
13389 (first_ratio_less_than_second_ratio_p): Ditto.
13390 (support_relaxed_compatible_p): New function.
13391 (vector_insn_info::operator>): Remove.
13392 (vector_insn_info::operator>=): Refine.
13393 (vector_insn_info::parse_insn): Adapt for vleff support.
13394 (vector_insn_info::compatible_p): Ditto.
13395 (vector_insn_info::update_fault_first_load_avl): New function.
13396 (pass_vsetvl::transfer_after): Adapt for vleff support.
13397 (pass_vsetvl::demand_fusion): Ditto.
13398 (pass_vsetvl::cleanup_insns): Ditto.
13399 * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
13400 redundant condtions.
13401 * config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
13402 * config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
13403 * config/riscv/riscv.md: Adapt for vleff support.
13404 * config/riscv/t-riscv: Ditto.
13405 * config/riscv/vector-iterators.md: New iterator.
13406 * config/riscv/vector.md (read_vlsi): New pattern.
13407 (read_vldi_zero_extend): Ditto.
13408 (@pred_fault_load<mode>): Ditto.
13409
13410 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13411
13412 * config/riscv/riscv-vector-builtins.cc
13413 (function_expander::use_ternop_insn): Use maybe_gen_insn instead.
13414 (function_expander::use_widen_ternop_insn): Ditto.
13415 * optabs.cc (maybe_gen_insn): Extend nops handling.
13416
13417 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13418
13419 * config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
13420 patterns according to RVV ISA.
13421 * config/riscv/vector-iterators.md: New iterators.
13422 * config/riscv/vector.md
13423 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
13424 (@pred_indexed_<order>load<mode>_same_eew): New pattern.
13425 (@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
13426 (@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
13427 (@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
13428 (@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
13429 (@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
13430 (@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
13431 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
13432 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
13433 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
13434 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
13435 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
13436 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
13437
13438 2023-03-10 Michael Collison <collison@rivosinc.com>
13439
13440 * tree-vect-loop-manip.cc (vect_do_peeling): Use
13441 result of constant_lower_bound instead of vf for the lower
13442 bound of the epilog loop trip count.
13443
13444 2023-03-09 Tamar Christina <tamar.christina@arm.com>
13445
13446 * passes.cc (emergency_dump_function): Finish graph generation.
13447
13448 2023-03-09 Tamar Christina <tamar.christina@arm.com>
13449
13450 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
13451 and bottom bit only.
13452
13453 2023-03-09 Andrew Pinski <apinski@marvell.com>
13454
13455 PR tree-optimization/108980
13456 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
13457 Reorgnize the call to warning for not strict flexible arrays
13458 to be before the check of warned.
13459
13460 2023-03-09 Jason Merrill <jason@redhat.com>
13461
13462 * doc/extend.texi: Comment out __is_deducible docs.
13463
13464 2023-03-09 Jason Merrill <jason@redhat.com>
13465
13466 PR c++/105841
13467 * doc/extend.texi (Type Traits):: Document __is_deducible.
13468
13469 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
13470
13471 PR driver/108865
13472 * config.host: add object for x86_64-*-mingw*.
13473 * config/i386/sym-mingw32.cc: dummy file to attach
13474 symbol.
13475 * config/i386/utf8-mingw32.rc: windres resource file.
13476 * config/i386/winnt-utf8.manifest: XML manifest to
13477 enable UTF-8.
13478 * config/i386/x-mingw32: reference to x-mingw32-utf8.
13479 * config/i386/x-mingw32-utf8: Makefile fragment to
13480 embed UTF-8 manifest.
13481
13482 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
13483
13484 * lra-constraints.cc (process_alt_operands): Use operand modes for
13485 clobbered regs instead of the biggest access mode.
13486
13487 2023-03-09 Richard Biener <rguenther@suse.de>
13488
13489 PR middle-end/108995
13490 * fold-const.cc (extract_muldiv_1): Avoid folding
13491 (CST * b) / CST2 when sanitizing overflow and we rely on
13492 overflow being undefined.
13493
13494 2023-03-09 Jakub Jelinek <jakub@redhat.com>
13495 Richard Biener <rguenther@suse.de>
13496
13497 PR tree-optimization/109008
13498 * range-op-float.cc (float_widen_lhs_range): New function.
13499 (foperator_plus::op1_range, foperator_minus::op1_range,
13500 foperator_minus::op2_range, foperator_mult::op1_range,
13501 foperator_div::op1_range, foperator_div::op2_range): Use it.
13502
13503 2023-03-07 Jonathan Grant <jg@jguk.org>
13504
13505 PR sanitizer/81649
13506 * doc/invoke.texi (Instrumentation Options): Clarify
13507 LeakSanitizer behavior.
13508
13509 2023-03-07 Benson Muite <benson_muite@emailplus.org>
13510
13511 * doc/install.texi (Prerequisites): Add link to gmplib.org.
13512
13513 2023-03-07 Pan Li <pan2.li@intel.com>
13514 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13515
13516 PR target/108185
13517 PR target/108654
13518 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
13519 modes.
13520 * config/riscv/riscv.cc (riscv_v_adjust_precision): New.
13521 * config/riscv/riscv.h (riscv_v_adjust_precision): New.
13522 * genmodes.cc (adj_precision): New.
13523 (ADJUST_PRECISION): New.
13524 (emit_mode_adjustments): Handle ADJUST_PRECISION.
13525
13526 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
13527
13528 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
13529
13530 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
13531
13532 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
13533 {s|u}{max|min} in QI, HI and DI modes.
13534 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
13535 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
13536 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
13537 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
13538 saved in SGPRs.
13539
13540 2023-03-06 Richard Biener <rguenther@suse.de>
13541
13542 PR tree-optimization/109025
13543 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
13544 the inner LC PHI use is the inner loop PHI latch definition
13545 before classifying an outer PHI as double reduction.
13546
13547 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
13548
13549 PR target/108429
13550 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
13551 generic.
13552 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
13553 (X86_TUNE_USE_SCATTER): Likewise.
13554
13555 2023-03-06 Xi Ruoyao <xry111@xry111.site>
13556
13557 PR target/109000
13558 * config/loongarch/loongarch.h (FP_RETURN): Use
13559 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
13560 (UNITS_PER_FP_ARG): Likewise.
13561
13562 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13563
13564 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
13565 (pass_vsetvl::backward_demand_fusion): Ditto.
13566
13567 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
13568 SiYu Wu <siyu@isrc.iscas.ac.cn>
13569
13570 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
13571 instructions.
13572 (riscv_sm3p1_<mode>): New.
13573 (riscv_sm4ed_<mode>): New.
13574 (riscv_sm4ks_<mode>): New.
13575 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
13576 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
13577 ZKSH's built-in functions.
13578
13579 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
13580 SiYu Wu <siyu@isrc.iscas.ac.cn>
13581
13582 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
13583 (riscv_sha256sig1_<mode>): New.
13584 (riscv_sha256sum0_<mode>): New.
13585 (riscv_sha256sum1_<mode>): New.
13586 (riscv_sha512sig0h): New.
13587 (riscv_sha512sig0l): New.
13588 (riscv_sha512sig1h): New.
13589 (riscv_sha512sig1l): New.
13590 (riscv_sha512sum0r): New.
13591 (riscv_sha512sum1r): New.
13592 (riscv_sha512sig0): New.
13593 (riscv_sha512sig1): New.
13594 (riscv_sha512sum0): New.
13595 (riscv_sha512sum1): New.
13596 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
13597 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
13598 built-in functions.
13599 (DIRECT_BUILTIN): Add new.
13600
13601 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
13602 SiYu Wu <siyu@isrc.iscas.ac.cn>
13603
13604 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
13605 (DsA): New.
13606 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
13607 (riscv_aes32dsmi): New.
13608 (riscv_aes64ds): New.
13609 (riscv_aes64dsm): New.
13610 (riscv_aes64im): New.
13611 (riscv_aes64ks1i): New.
13612 (riscv_aes64ks2): New.
13613 (riscv_aes32esi): New.
13614 (riscv_aes32esmi): New.
13615 (riscv_aes64es): New.
13616 (riscv_aes64esm): New.
13617 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
13618 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
13619 ZKNE's built-in functions.
13620
13621 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
13622 SiYu Wu <siyu@isrc.iscas.ac.cn>
13623
13624 * config/riscv/bitmanip.md: Add ZBKB's instructions.
13625 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
13626 * config/riscv/riscv.md: Add new type for crypto instructions.
13627 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
13628 description file.
13629 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
13630 extension's built-in function file.
13631
13632 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
13633 SiYu Wu <siyu@isrc.iscas.ac.cn>
13634
13635 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
13636 (RISCV_FTYPE_NAME3): New.
13637 (RISCV_ATYPE_QI): New.
13638 (RISCV_ATYPE_HI): New.
13639 (RISCV_FTYPE_ATYPES2): New.
13640 (RISCV_FTYPE_ATYPES3): New.
13641 * config/riscv/riscv-ftypes.def (2): New.
13642 (3): New.
13643
13644 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
13645
13646 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
13647 use exact_log2().
13648
13649 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13650 kito-cheng <kito.cheng@sifive.com>
13651
13652 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
13653 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
13654 (riscv_register_pragmas): Add builtin function check call.
13655 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
13656 (check_builtin_call): New function.
13657 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
13658 (class vreinterpret): Ditto.
13659 (class vlmul_ext): Ditto.
13660 (class vlmul_trunc): Ditto.
13661 (class vset): Ditto.
13662 (class vget): Ditto.
13663 (BASE): Ditto.
13664 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
13665 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
13666 (vluxei16): Ditto.
13667 (vluxei32): Ditto.
13668 (vluxei64): Ditto.
13669 (vloxei8): Ditto.
13670 (vloxei16): Ditto.
13671 (vloxei32): Ditto.
13672 (vloxei64): Ditto.
13673 (vsuxei8): Ditto.
13674 (vsuxei16): Ditto.
13675 (vsuxei32): Ditto.
13676 (vsuxei64): Ditto.
13677 (vsoxei8): Ditto.
13678 (vsoxei16): Ditto.
13679 (vsoxei32): Ditto.
13680 (vsoxei64): Ditto.
13681 (vundefined): Add new intrinsic.
13682 (vreinterpret): Ditto.
13683 (vlmul_ext): Ditto.
13684 (vlmul_trunc): Ditto.
13685 (vset): Ditto.
13686 (vget): Ditto.
13687 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
13688 (struct narrow_alu_def): Ditto.
13689 (struct reduc_alu_def): Ditto.
13690 (struct vundefined_def): Ditto.
13691 (struct misc_def): Ditto.
13692 (struct vset_def): Ditto.
13693 (struct vget_def): Ditto.
13694 (SHAPE): Ditto.
13695 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
13696 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
13697 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
13698 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
13699 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
13700 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
13701 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
13702 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
13703 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
13704 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
13705 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
13706 (DEF_RVV_LMUL1_OPS): Ditto.
13707 (DEF_RVV_LMUL2_OPS): Ditto.
13708 (DEF_RVV_LMUL4_OPS): Ditto.
13709 (vint16mf4_t): Ditto.
13710 (vint16mf2_t): Ditto.
13711 (vint16m1_t): Ditto.
13712 (vint16m2_t): Ditto.
13713 (vint16m4_t): Ditto.
13714 (vint16m8_t): Ditto.
13715 (vint32mf2_t): Ditto.
13716 (vint32m1_t): Ditto.
13717 (vint32m2_t): Ditto.
13718 (vint32m4_t): Ditto.
13719 (vint32m8_t): Ditto.
13720 (vint64m1_t): Ditto.
13721 (vint64m2_t): Ditto.
13722 (vint64m4_t): Ditto.
13723 (vint64m8_t): Ditto.
13724 (vuint16mf4_t): Ditto.
13725 (vuint16mf2_t): Ditto.
13726 (vuint16m1_t): Ditto.
13727 (vuint16m2_t): Ditto.
13728 (vuint16m4_t): Ditto.
13729 (vuint16m8_t): Ditto.
13730 (vuint32mf2_t): Ditto.
13731 (vuint32m1_t): Ditto.
13732 (vuint32m2_t): Ditto.
13733 (vuint32m4_t): Ditto.
13734 (vuint32m8_t): Ditto.
13735 (vuint64m1_t): Ditto.
13736 (vuint64m2_t): Ditto.
13737 (vuint64m4_t): Ditto.
13738 (vuint64m8_t): Ditto.
13739 (vint8mf4_t): Ditto.
13740 (vint8mf2_t): Ditto.
13741 (vint8m1_t): Ditto.
13742 (vint8m2_t): Ditto.
13743 (vint8m4_t): Ditto.
13744 (vint8m8_t): Ditto.
13745 (vuint8mf4_t): Ditto.
13746 (vuint8mf2_t): Ditto.
13747 (vuint8m1_t): Ditto.
13748 (vuint8m2_t): Ditto.
13749 (vuint8m4_t): Ditto.
13750 (vuint8m8_t): Ditto.
13751 (vint8mf8_t): Ditto.
13752 (vuint8mf8_t): Ditto.
13753 (vfloat32mf2_t): Ditto.
13754 (vfloat32m1_t): Ditto.
13755 (vfloat32m2_t): Ditto.
13756 (vfloat32m4_t): Ditto.
13757 (vfloat64m1_t): Ditto.
13758 (vfloat64m2_t): Ditto.
13759 (vfloat64m4_t): Ditto.
13760 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
13761 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
13762 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
13763 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
13764 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
13765 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
13766 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
13767 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
13768 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
13769 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
13770 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
13771 (DEF_RVV_LMUL1_OPS): Ditto.
13772 (DEF_RVV_LMUL2_OPS): Ditto.
13773 (DEF_RVV_LMUL4_OPS): Ditto.
13774 (DEF_RVV_TYPE_INDEX): Ditto.
13775 (required_extensions_p): Adapt for new intrinsic support/
13776 (get_required_extensions): New function.
13777 (check_required_extensions): Ditto.
13778 (unsigned_base_type_p): Remove.
13779 (rvv_arg_type_info::get_scalar_ptr_type): New function.
13780 (get_mode_for_bitsize): Remove.
13781 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
13782 (rvv_arg_type_info::get_base_vector_type): Ditto.
13783 (rvv_arg_type_info::get_function_type_index): Ditto.
13784 (DEF_RVV_BASE_TYPE): New def.
13785 (function_builder::apply_predication): New class.
13786 (function_expander::mask_mode): Ditto.
13787 (function_checker::function_checker): Ditto.
13788 (function_checker::report_non_ice): Ditto.
13789 (function_checker::report_out_of_range): Ditto.
13790 (function_checker::require_immediate): Ditto.
13791 (function_checker::require_immediate_range): Ditto.
13792 (function_checker::check): Ditto.
13793 (check_builtin_call): Ditto.
13794 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
13795 (DEF_RVV_BASE_TYPE): Ditto.
13796 (DEF_RVV_TYPE_INDEX): Ditto.
13797 (vbool64_t): Ditto.
13798 (vbool32_t): Ditto.
13799 (vbool16_t): Ditto.
13800 (vbool8_t): Ditto.
13801 (vbool4_t): Ditto.
13802 (vbool2_t): Ditto.
13803 (vbool1_t): Ditto.
13804 (vuint8mf8_t): Ditto.
13805 (vuint8mf4_t): Ditto.
13806 (vuint8mf2_t): Ditto.
13807 (vuint8m1_t): Ditto.
13808 (vuint8m2_t): Ditto.
13809 (vint8m4_t): Ditto.
13810 (vuint8m4_t): Ditto.
13811 (vint8m8_t): Ditto.
13812 (vuint8m8_t): Ditto.
13813 (vint16mf4_t): Ditto.
13814 (vuint16mf2_t): Ditto.
13815 (vuint16m1_t): Ditto.
13816 (vuint16m2_t): Ditto.
13817 (vuint16m4_t): Ditto.
13818 (vuint16m8_t): Ditto.
13819 (vint32mf2_t): Ditto.
13820 (vuint32m1_t): Ditto.
13821 (vuint32m2_t): Ditto.
13822 (vuint32m4_t): Ditto.
13823 (vuint32m8_t): Ditto.
13824 (vuint64m1_t): Ditto.
13825 (vuint64m2_t): Ditto.
13826 (vuint64m4_t): Ditto.
13827 (vuint64m8_t): Ditto.
13828 (vfloat32mf2_t): Ditto.
13829 (vfloat32m1_t): Ditto.
13830 (vfloat32m2_t): Ditto.
13831 (vfloat32m4_t): Ditto.
13832 (vfloat32m8_t): Ditto.
13833 (vfloat64m1_t): Ditto.
13834 (vfloat64m4_t): Ditto.
13835 (vector): Move it def.
13836 (scalar): Ditto.
13837 (mask): Ditto.
13838 (signed_vector): Ditto.
13839 (unsigned_vector): Ditto.
13840 (unsigned_scalar): Ditto.
13841 (vector_ptr): Ditto.
13842 (scalar_ptr): Ditto.
13843 (scalar_const_ptr): Ditto.
13844 (void): Ditto.
13845 (size): Ditto.
13846 (ptrdiff): Ditto.
13847 (unsigned_long): Ditto.
13848 (long): Ditto.
13849 (eew8_index): Ditto.
13850 (eew16_index): Ditto.
13851 (eew32_index): Ditto.
13852 (eew64_index): Ditto.
13853 (shift_vector): Ditto.
13854 (double_trunc_vector): Ditto.
13855 (quad_trunc_vector): Ditto.
13856 (oct_trunc_vector): Ditto.
13857 (double_trunc_scalar): Ditto.
13858 (double_trunc_signed_vector): Ditto.
13859 (double_trunc_unsigned_vector): Ditto.
13860 (double_trunc_unsigned_scalar): Ditto.
13861 (double_trunc_float_vector): Ditto.
13862 (float_vector): Ditto.
13863 (lmul1_vector): Ditto.
13864 (widen_lmul1_vector): Ditto.
13865 (eew8_interpret): Ditto.
13866 (eew16_interpret): Ditto.
13867 (eew32_interpret): Ditto.
13868 (eew64_interpret): Ditto.
13869 (vlmul_ext_x2): Ditto.
13870 (vlmul_ext_x4): Ditto.
13871 (vlmul_ext_x8): Ditto.
13872 (vlmul_ext_x16): Ditto.
13873 (vlmul_ext_x32): Ditto.
13874 (vlmul_ext_x64): Ditto.
13875 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
13876 (struct function_type_info): New function.
13877 (struct rvv_arg_type_info): Ditto.
13878 (class function_checker): New class.
13879 (rvv_arg_type_info::get_scalar_type): New function.
13880 (rvv_arg_type_info::get_vector_type): Ditto.
13881 (function_expander::ret_mode): New function.
13882 (function_checker::arg_mode): Ditto.
13883 (function_checker::ret_mode): Ditto.
13884 * config/riscv/t-riscv: Add generator.
13885 * config/riscv/vector-iterators.md: New iterators.
13886 * config/riscv/vector.md (vundefined<mode>): New pattern.
13887 (@vundefined<mode>): Ditto.
13888 (@vreinterpret<mode>): Ditto.
13889 (@vlmul_extx2<mode>): Ditto.
13890 (@vlmul_extx4<mode>): Ditto.
13891 (@vlmul_extx8<mode>): Ditto.
13892 (@vlmul_extx16<mode>): Ditto.
13893 (@vlmul_extx32<mode>): Ditto.
13894 (@vlmul_extx64<mode>): Ditto.
13895 (*vlmul_extx2<mode>): Ditto.
13896 (*vlmul_extx4<mode>): Ditto.
13897 (*vlmul_extx8<mode>): Ditto.
13898 (*vlmul_extx16<mode>): Ditto.
13899 (*vlmul_extx32<mode>): Ditto.
13900 (*vlmul_extx64<mode>): Ditto.
13901 * config/riscv/genrvv-type-indexer.cc: New file.
13902
13903 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13904
13905 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
13906 (slide1_sew64_helper): New function.
13907 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
13908 (get_unknown_min_value): Ditto.
13909 (force_vector_length_operand): Ditto.
13910 (gen_no_side_effects_vsetvl_rtx): Ditto.
13911 (get_vl_x2_rtx): Ditto.
13912 (slide1_sew64_helper): Ditto.
13913 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
13914 (class vrgather): Ditto.
13915 (class vrgatherei16): Ditto.
13916 (class vcompress): Ditto.
13917 (BASE): Ditto.
13918 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
13919 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
13920 (vslidedown): Ditto.
13921 (vslide1up): Ditto.
13922 (vslide1down): Ditto.
13923 (vfslide1up): Ditto.
13924 (vfslide1down): Ditto.
13925 (vrgather): Ditto.
13926 (vrgatherei16): Ditto.
13927 (vcompress): Ditto.
13928 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
13929 (vint8mf8_t): Ditto.
13930 (vint8mf4_t): Ditto.
13931 (vint8mf2_t): Ditto.
13932 (vint8m1_t): Ditto.
13933 (vint8m2_t): Ditto.
13934 (vint8m4_t): Ditto.
13935 (vint16mf4_t): Ditto.
13936 (vint16mf2_t): Ditto.
13937 (vint16m1_t): Ditto.
13938 (vint16m2_t): Ditto.
13939 (vint16m4_t): Ditto.
13940 (vint16m8_t): Ditto.
13941 (vint32mf2_t): Ditto.
13942 (vint32m1_t): Ditto.
13943 (vint32m2_t): Ditto.
13944 (vint32m4_t): Ditto.
13945 (vint32m8_t): Ditto.
13946 (vint64m1_t): Ditto.
13947 (vint64m2_t): Ditto.
13948 (vint64m4_t): Ditto.
13949 (vint64m8_t): Ditto.
13950 (vuint8mf8_t): Ditto.
13951 (vuint8mf4_t): Ditto.
13952 (vuint8mf2_t): Ditto.
13953 (vuint8m1_t): Ditto.
13954 (vuint8m2_t): Ditto.
13955 (vuint8m4_t): Ditto.
13956 (vuint16mf4_t): Ditto.
13957 (vuint16mf2_t): Ditto.
13958 (vuint16m1_t): Ditto.
13959 (vuint16m2_t): Ditto.
13960 (vuint16m4_t): Ditto.
13961 (vuint16m8_t): Ditto.
13962 (vuint32mf2_t): Ditto.
13963 (vuint32m1_t): Ditto.
13964 (vuint32m2_t): Ditto.
13965 (vuint32m4_t): Ditto.
13966 (vuint32m8_t): Ditto.
13967 (vuint64m1_t): Ditto.
13968 (vuint64m2_t): Ditto.
13969 (vuint64m4_t): Ditto.
13970 (vuint64m8_t): Ditto.
13971 (vfloat32mf2_t): Ditto.
13972 (vfloat32m1_t): Ditto.
13973 (vfloat32m2_t): Ditto.
13974 (vfloat32m4_t): Ditto.
13975 (vfloat32m8_t): Ditto.
13976 (vfloat64m1_t): Ditto.
13977 (vfloat64m2_t): Ditto.
13978 (vfloat64m4_t): Ditto.
13979 (vfloat64m8_t): Ditto.
13980 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
13981 * config/riscv/riscv.md: Adjust RVV instruction types.
13982 * config/riscv/vector-iterators.md (down): New iterator.
13983 (=vd,vr): New attribute.
13984 (UNSPEC_VSLIDE1UP): New unspec.
13985 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
13986 (*pred_slide<ud><mode>): Ditto.
13987 (*pred_slide<ud><mode>_extended): Ditto.
13988 (@pred_gather<mode>): Ditto.
13989 (@pred_gather<mode>_scalar): Ditto.
13990 (@pred_gatherei16<mode>): Ditto.
13991 (@pred_compress<mode>): Ditto.
13992
13993 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13994
13995 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
13996
13997 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
13998
13999 * config/riscv/constraints.md (Wb1): New constraint.
14000 * config/riscv/predicates.md
14001 (vector_least_significant_set_mask_operand): New predicate.
14002 (vector_broadcast_mask_operand): Ditto.
14003 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
14004 (gen_scalar_move_mask): New function.
14005 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
14006 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
14007 (class vmv_s): Ditto.
14008 (BASE): Ditto.
14009 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
14010 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
14011 (vmv_s): Ditto.
14012 (vfmv_f): Ditto.
14013 (vfmv_s): Ditto.
14014 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
14015 (SHAPE): Ditto.
14016 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
14017 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
14018 (function_expander::use_exact_insn): New function.
14019 (function_expander::use_contiguous_load_insn): New function.
14020 (function_expander::use_contiguous_store_insn): New function.
14021 (function_expander::use_ternop_insn): New function.
14022 (function_expander::use_widen_ternop_insn): New function.
14023 (function_expander::use_scalar_move_insn): New function.
14024 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
14025 * config/riscv/riscv-vector-builtins.h
14026 (function_expander::add_scalar_move_mask_operand): New class.
14027 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
14028 (scalar_move_insn_p): Ditto.
14029 (has_vsetvl_killed_avl_p): Ditto.
14030 (anticipatable_occurrence_p): Ditto.
14031 (insert_vsetvl): Ditto.
14032 (get_vl_vtype_info): Ditto.
14033 (calculate_sew): Ditto.
14034 (calculate_vlmul): Ditto.
14035 (incompatible_avl_p): Ditto.
14036 (different_sew_p): Ditto.
14037 (different_lmul_p): Ditto.
14038 (different_ratio_p): Ditto.
14039 (different_tail_policy_p): Ditto.
14040 (different_mask_policy_p): Ditto.
14041 (possible_zero_avl_p): Ditto.
14042 (first_ratio_invalid_for_second_sew_p): Ditto.
14043 (first_ratio_invalid_for_second_lmul_p): Ditto.
14044 (second_ratio_invalid_for_first_sew_p): Ditto.
14045 (second_ratio_invalid_for_first_lmul_p): Ditto.
14046 (second_sew_less_than_first_sew_p): Ditto.
14047 (first_sew_less_than_second_sew_p): Ditto.
14048 (compare_lmul): Ditto.
14049 (second_lmul_less_than_first_lmul_p): Ditto.
14050 (first_lmul_less_than_second_lmul_p): Ditto.
14051 (first_ratio_less_than_second_ratio_p): Ditto.
14052 (second_ratio_less_than_first_ratio_p): Ditto.
14053 (DEF_INCOMPATIBLE_COND): Ditto.
14054 (greatest_sew): Ditto.
14055 (first_sew): Ditto.
14056 (second_sew): Ditto.
14057 (first_vlmul): Ditto.
14058 (second_vlmul): Ditto.
14059 (first_ratio): Ditto.
14060 (second_ratio): Ditto.
14061 (vlmul_for_first_sew_second_ratio): Ditto.
14062 (ratio_for_second_sew_first_vlmul): Ditto.
14063 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
14064 (always_unavailable): Ditto.
14065 (avl_unavailable_p): Ditto.
14066 (sew_unavailable_p): Ditto.
14067 (lmul_unavailable_p): Ditto.
14068 (ge_sew_unavailable_p): Ditto.
14069 (ge_sew_lmul_unavailable_p): Ditto.
14070 (ge_sew_ratio_unavailable_p): Ditto.
14071 (DEF_UNAVAILABLE_COND): Ditto.
14072 (same_sew_lmul_demand_p): Ditto.
14073 (propagate_avl_across_demands_p): Ditto.
14074 (reg_available_p): Ditto.
14075 (avl_info::has_non_zero_avl): Ditto.
14076 (vl_vtype_info::has_non_zero_avl): Ditto.
14077 (vector_insn_info::operator>=): Refactor.
14078 (vector_insn_info::parse_insn): Adjust for scalar move.
14079 (vector_insn_info::demand_vl_vtype): Remove.
14080 (vector_insn_info::compatible_p): New function.
14081 (vector_insn_info::compatible_avl_p): Ditto.
14082 (vector_insn_info::compatible_vtype_p): Ditto.
14083 (vector_insn_info::available_p): Ditto.
14084 (vector_insn_info::merge): Ditto.
14085 (vector_insn_info::fuse_avl): Ditto.
14086 (vector_insn_info::fuse_sew_lmul): Ditto.
14087 (vector_insn_info::fuse_tail_policy): Ditto.
14088 (vector_insn_info::fuse_mask_policy): Ditto.
14089 (vector_insn_info::dump): Ditto.
14090 (vector_infos_manager::release): Ditto.
14091 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
14092 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
14093 (pass_vsetvl::hard_empty_block_p): Ditto.
14094 (pass_vsetvl::backward_demand_fusion): Ditto.
14095 (pass_vsetvl::forward_demand_fusion): Ditto.
14096 (pass_vsetvl::refine_vsetvls): Ditto.
14097 (pass_vsetvl::cleanup_vsetvls): Ditto.
14098 (pass_vsetvl::commit_vsetvls): Ditto.
14099 (pass_vsetvl::propagate_avl): Ditto.
14100 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
14101 (struct demands_pair): Ditto.
14102 (struct demands_cond): Ditto.
14103 (struct demands_fuse_rule): Ditto.
14104 * config/riscv/vector-iterators.md: New iterator.
14105 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
14106 (*pred_broadcast<mode>): Ditto.
14107 (*pred_broadcast<mode>_extended_scalar): Ditto.
14108 (@pred_extract_first<mode>): Ditto.
14109 (*pred_extract_first<mode>): Ditto.
14110 (@pred_extract_first_trunc<mode>): Ditto.
14111 * config/riscv/riscv-vsetvl.def: New file.
14112
14113 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
14114
14115 * config/riscv/bitmanip.md: allow 0 constant in max/min
14116 pattern.
14117
14118 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
14119
14120 * config/riscv/bitmanip.md: Fix wrong index in the check.
14121
14122 2023-03-04 Jakub Jelinek <jakub@redhat.com>
14123
14124 PR middle-end/109006
14125 * vec.cc (test_auto_alias): Adjust comment for removal of
14126 m_vecdata.
14127 * read-rtl-function.cc (function_reader::parse_block): Likewise.
14128 * gdbhooks.py: Likewise.
14129
14130 2023-03-04 Jakub Jelinek <jakub@redhat.com>
14131
14132 PR testsuite/108973
14133 * selftest-diagnostic.cc
14134 (test_diagnostic_context::test_diagnostic_context): Set
14135 caret_max_width to 80.
14136
14137 2023-03-03 Alexandre Oliva <oliva@adacore.com>
14138
14139 * gimple-ssa-warn-access.cc
14140 (pass_waccess::check_dangling_stores): Skip non-stores.
14141
14142 2023-03-03 Alexandre Oliva <oliva@adacore.com>
14143
14144 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
14145 after vmsr and vmrs, and lower the case of P0.
14146
14147 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
14148
14149 PR middle-end/109006
14150 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
14151
14152 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
14153
14154 PR middle-end/109006
14155 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
14156
14157 2023-03-03 Jakub Jelinek <jakub@redhat.com>
14158
14159 PR c/108986
14160 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
14161 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
14162 suppressed on stmt. For [static %E] warning, print access_nelts
14163 rather than access_size. Fix up comment wording.
14164
14165 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
14166
14167 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
14168 arch14 instead of z16.
14169
14170 2023-03-03 Anthony Green <green@moxielogic.com>
14171
14172 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
14173
14174 2023-03-03 Anthony Green <green@moxielogic.com>
14175
14176 * config/moxie/constraints.md (A, B, W): Change
14177 define_constraint to define_memory_constraint.
14178
14179 2023-03-03 Xi Ruoyao <xry111@xry111.site>
14180
14181 * toplev.cc (process_options): Fix the spelling of
14182 "-fstack-clash-protection".
14183
14184 2023-03-03 Richard Biener <rguenther@suse.de>
14185
14186 PR tree-optimization/109002
14187 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
14188 PHI-translate ANTIC_IN.
14189
14190 2023-03-03 Jakub Jelinek <jakub@redhat.com>
14191
14192 PR tree-optimization/108988
14193 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
14194 size_type_node before passing it as argument to fwrite. Formatting
14195 fixes.
14196
14197 2023-03-03 Richard Biener <rguenther@suse.de>
14198
14199 PR target/108738
14200 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
14201 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
14202 * config/i386/i386-features.h (scalar_chain::max_visits): New.
14203 (scalar_chain::build): Add bitmap parameter, return boolean.
14204 (scalar_chain::add_insn): Likewise.
14205 (scalar_chain::analyze_register_chain): Likewise.
14206 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
14207 Initialize max_visits.
14208 (scalar_chain::analyze_register_chain): When we exhaust
14209 max_visits, abort. Also abort when running into any
14210 disallowed insn.
14211 (scalar_chain::add_insn): Propagate abort.
14212 (scalar_chain::build): Likewise. When aborting amend
14213 the set of disallowed insn with the insns set.
14214 (convert_scalars_to_vector): Adjust. Do not convert aborted
14215 chains.
14216
14217 2023-03-03 Richard Biener <rguenther@suse.de>
14218
14219 PR debug/108772
14220 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
14221 generate a DIE for a function scope static.
14222
14223 2023-03-03 Alexandre Oliva <oliva@adacore.com>
14224
14225 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
14226
14227 2023-03-02 Jakub Jelinek <jakub@redhat.com>
14228
14229 PR target/108883
14230 * target.h (emit_support_tinfos_callback): New typedef.
14231 * targhooks.h (default_emit_support_tinfos): Declare.
14232 * targhooks.cc (default_emit_support_tinfos): New function.
14233 * target.def (emit_support_tinfos): New target hook.
14234 * doc/tm.texi.in (emit_support_tinfos): Document it.
14235 * doc/tm.texi: Regenerated.
14236 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
14237 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
14238
14239 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
14240
14241 * ira-costs.cc: Include print-rtl.h.
14242 (record_reg_classes, scan_one_insn): Add code to print debug info.
14243 (record_operand_costs): Find and use smaller cost for hard reg
14244 move.
14245
14246 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
14247 Paul-Antoine Arras <pa@codesourcery.com>
14248
14249 * builtins.cc (mathfn_built_in_explicit): New.
14250 * config/gcn/gcn.cc: Include case-cfn-macros.h.
14251 (mathfn_built_in_explicit): Add prototype.
14252 (gcn_vectorize_builtin_vectorized_function): New.
14253 (gcn_libc_has_function): New.
14254 (TARGET_LIBC_HAS_FUNCTION): Define.
14255 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
14256
14257 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
14258
14259 PR tree-optimization/108979
14260 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
14261 operations on invariants.
14262
14263 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
14264
14265 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
14266 * config/s390/s390.cc (s390_option_override_internal): Make
14267 partial vector usage the default from z13 on.
14268 * config/s390/vector.md (len_load_v16qi): Add.
14269 (len_store_v16qi): Add.
14270
14271 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
14272
14273 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
14274 of constant 0 offset.
14275
14276 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
14277
14278 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
14279 instead of long.
14280 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
14281
14282 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
14283
14284 * config.gcc: add -with-{no-}msa build option.
14285 * config/mips/mips.h: Likewise.
14286 * doc/install.texi: Likewise.
14287
14288 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
14289
14290 PR tree-optimization/108603
14291 * explow.cc (convert_memory_address_addr_space_1): Only wrap
14292 the result of a recursive call in a CONST if no instructions
14293 were emitted.
14294
14295 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
14296
14297 PR tree-optimization/108430
14298 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
14299 of inverted condition.
14300
14301 2023-03-02 Jakub Jelinek <jakub@redhat.com>
14302
14303 PR c++/108934
14304 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
14305 comparison copy the bytes from ptr to a temporary buffer and clearing
14306 padding bits in there.
14307
14308 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
14309
14310 PR middle-end/108545
14311 * gimplify.cc (struct tree_operand_hash_no_se): New.
14312 (omp_index_mapping_groups_1, omp_index_mapping_groups,
14313 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
14314 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
14315 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
14316 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
14317 of tree_operand_hash.
14318
14319 2023-03-01 LIU Hao <lh_mouse@126.com>
14320
14321 PR pch/14940
14322 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
14323 Remove the size limit `pch_VA_max_size`
14324
14325 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
14326
14327 PR middle-end/108546
14328 * omp-low.cc (lower_omp_target): Remove optional handling
14329 on the receiver side, i.e. inside target (data), for
14330 use_device_ptr.
14331
14332 2023-03-01 Jakub Jelinek <jakub@redhat.com>
14333
14334 PR debug/108967
14335 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
14336 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
14337
14338 2023-03-01 Richard Biener <rguenther@suse.de>
14339
14340 PR tree-optimization/108970
14341 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
14342 Check we can copy the BBs.
14343 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
14344 check.
14345 (vect_do_peeling): Streamline error handling.
14346
14347 2023-03-01 Richard Biener <rguenther@suse.de>
14348
14349 PR tree-optimization/108950
14350 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
14351 Check oprnd0 is defined in the loop.
14352 * tree-vect-loop.cc (vectorizable_reduction): Record all
14353 operands vector types, compute that of invariants and
14354 properly update their SLP nodes.
14355
14356 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
14357
14358 PR target/108240
14359 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
14360 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
14361
14362 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
14363
14364 PR middle-end/107411
14365 PR middle-end/107411
14366 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
14367 xasprintf.
14368 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
14369 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
14370
14371 2023-02-28 Jakub Jelinek <jakub@redhat.com>
14372
14373 PR sanitizer/108894
14374 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
14375 comparison rather than index > bound.
14376 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
14377 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
14378 * doc/invoke.texi (-fsanitize=bounds): Document that whether
14379 flexible array member-like arrays are instrumented or not depends
14380 on -fstrict-flex-arrays* options of strict_flex_array attributes.
14381 (-fsanitize=bounds-strict): Document that flexible array members
14382 are not instrumented.
14383
14384 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
14385
14386 PR target/108922
14387 Revert:
14388 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
14389 (fmod<mode>3): Ditto.
14390 (fpremxf4_i387): Ditto.
14391 (reminderxf3): Ditto.
14392 (reminder<mode>3): Ditto.
14393 (fprem1xf4_i387): Ditto.
14394
14395 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
14396
14397 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
14398 generating FFS with mismatched operand and result modes, by using
14399 an explicit SIGN_EXTEND/ZERO_EXTEND.
14400 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
14401 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
14402
14403 2023-02-27 Patrick Palka <ppalka@redhat.com>
14404
14405 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
14406 * lra-int.h (lra_change_class): Likewise.
14407 * recog.h (which_op_alt): Likewise.
14408 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
14409 instead of static.
14410
14411 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14412
14413 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
14414 New prototype.
14415 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
14416 New function.
14417 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
14418 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
14419
14420 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
14421
14422 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
14423 (xtensa_get_config_v3): New functions.
14424
14425 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14426
14427 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
14428
14429 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
14430
14431 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
14432 the macro to 0x1000000000.
14433
14434 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
14435
14436 PR modula2/108261
14437 * doc/gm2.texi (-fm2-pathname): New option documented.
14438 (-fm2-pathnameI): New option documented.
14439 (-fm2-prefix=): New option documented.
14440 (-fruntime-modules=): Update default module list.
14441
14442 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
14443
14444 PR target/108919
14445 * config/xtensa/xtensa-protos.h
14446 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
14447 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
14448 to xtensa_expand_call.
14449 (xtensa_expand_call): Emit the call and add a clobber expression
14450 for the static chain to it in case of windowed ABI.
14451 * config/xtensa/xtensa.md (call, call_value, sibcall)
14452 (sibcall_value): Call xtensa_expand_call and complete expansion
14453 right after that call.
14454
14455 2023-02-24 Richard Biener <rguenther@suse.de>
14456
14457 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
14458 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
14459 changing alignment of vec<T, A, vl_embed> and simplifying
14460 address.
14461 (vec<T, A, vl_embed>::address): Compute as this + 1.
14462 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
14463 vector instead of the offset of the m_vecdata member.
14464 (auto_vec<T, N>::m_data): Turn storage into
14465 uninitialized unsigned char.
14466 (auto_vec<T, N>::auto_vec): Allow allocation of one
14467 stack member. Initialize m_vec in a special way to
14468 avoid later stringop overflow diagnostics.
14469 * vec.cc (test_auto_alias): New.
14470 (vec_cc_tests): Call it.
14471
14472 2023-02-24 Richard Biener <rguenther@suse.de>
14473
14474 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
14475 take a const reference to the object, use address to
14476 access data.
14477 (vec<T, A, vl_embed>::contains): Use address to access data.
14478 (vec<T, A, vl_embed>::operator[]): Use address instead of
14479 m_vecdata to access data.
14480 (vec<T, A, vl_embed>::iterate): Likewise.
14481 (vec<T, A, vl_embed>::copy): Likewise.
14482 (vec<T, A, vl_embed>::quick_push): Likewise.
14483 (vec<T, A, vl_embed>::pop): Likewise.
14484 (vec<T, A, vl_embed>::quick_insert): Likewise.
14485 (vec<T, A, vl_embed>::ordered_remove): Likewise.
14486 (vec<T, A, vl_embed>::unordered_remove): Likewise.
14487 (vec<T, A, vl_embed>::block_remove): Likewise.
14488 (vec<T, A, vl_heap>::address): Likewise.
14489
14490 2023-02-24 Martin Liska <mliska@suse.cz>
14491
14492 PR sanitizer/108834
14493 * asan.cc (asan_add_global): Use proper TU name for normal
14494 global variables (and aux_base_name for the artificial one).
14495
14496 2023-02-24 Jakub Jelinek <jakub@redhat.com>
14497
14498 * config/i386/i386-builtin.def: Update description of BDESC
14499 and BDESC_FIRST in file comment to include mask2.
14500
14501 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14502
14503 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
14504
14505 2023-02-24 Jakub Jelinek <jakub@redhat.com>
14506
14507 PR middle-end/108854
14508 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
14509 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
14510 nodes and adjust their DECL_CONTEXT.
14511
14512 2023-02-24 Jakub Jelinek <jakub@redhat.com>
14513
14514 PR target/108881
14515 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
14516 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
14517 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
14518 __builtin_ia32_cvtne2ps2bf16_v8bf,
14519 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
14520 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
14521 __builtin_ia32_cvtneps2bf16_v8sf_mask,
14522 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
14523 __builtin_ia32_cvtneps2bf16_v4sf_mask,
14524 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
14525 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
14526 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
14527 __builtin_ia32_dpbf16ps_v4sf_mask,
14528 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
14529 OPTION_MASK_ISA_AVX512VL.
14530
14531 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
14532
14533 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
14534 Add non-compact 32-bit multilibs.
14535
14536 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
14537
14538 * config/mips/mips.md (*clo<mode>2): New pattern.
14539
14540 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
14541
14542 * config/mips/mips.h (machine_function): New variable
14543 use_hazard_barrier_return_p.
14544 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
14545 (mips_hb_return_internal): New insn pattern.
14546 * config/mips/mips.cc (mips_attribute_table): Add attribute
14547 use_hazard_barrier_return.
14548 (mips_use_hazard_barrier_return_p): New static function.
14549 (mips_function_attr_inlinable_p): Likewise.
14550 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
14551 Emit error for unsupported architecture choice.
14552 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
14553 Return false for use_hazard_barrier_return.
14554 (mips_expand_epilogue): Emit hazard barrier return.
14555 * doc/extend.texi: Document use_hazard_barrier_return.
14556
14557 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
14558
14559 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
14560 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
14561 for the gcc-internal headers.
14562
14563 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
14564
14565 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
14566 and $(POSTCOMPILE) instead of manual dependency listing.
14567 * config/xtensa/xtensa-dynconfig.c: Rename to ...
14568 * config/xtensa/xtensa-dynconfig.cc: ... this.
14569
14570 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
14571
14572 * doc/cfg.texi: Reorder index entries around @items.
14573 * doc/cpp.texi: Ditto.
14574 * doc/cppenv.texi: Ditto.
14575 * doc/cppopts.texi: Ditto.
14576 * doc/generic.texi: Ditto.
14577 * doc/install.texi: Ditto.
14578 * doc/extend.texi: Ditto.
14579 * doc/invoke.texi: Ditto.
14580 * doc/md.texi: Ditto.
14581 * doc/rtl.texi: Ditto.
14582 * doc/tm.texi.in: Ditto.
14583 * doc/trouble.texi: Ditto.
14584 * doc/tm.texi: Regenerate.
14585
14586 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14587
14588 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
14589 the occurrence of general-purpose register used only once and for
14590 transferring intermediate value.
14591
14592 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14593
14594 * config/xtensa/xtensa.cc (machine_function): Add new member
14595 'eliminated_callee_saved_bmp'.
14596 (xtensa_can_eliminate_callee_saved_reg_p): New function to
14597 determine whether the register can be eliminated or not.
14598 (xtensa_expand_prologue): Add invoking the above function and
14599 elimination the use of callee-saved register by using its stack
14600 slot through the stack pointer (or the frame pointer if needed)
14601 directly.
14602 (xtensa_expand_prologue): Modify to not emit register restoration
14603 insn from its stack slot if the register is already eliminated.
14604
14605 2023-02-23 Jakub Jelinek <jakub@redhat.com>
14606
14607 PR translation/108890
14608 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
14609 around fatal_error format strings.
14610
14611 2023-02-23 Richard Biener <rguenther@suse.de>
14612
14613 * tree-ssa-structalias.cc (handle_lhs_call): Do not
14614 re-create rhsc, only truncate it.
14615
14616 2023-02-23 Jakub Jelinek <jakub@redhat.com>
14617
14618 PR middle-end/106258
14619 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
14620 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
14621
14622 2023-02-23 Richard Biener <rguenther@suse.de>
14623
14624 * tree-if-conv.cc (tree_if_conversion): Properly manage
14625 memory of refs and the contained data references.
14626
14627 2023-02-23 Richard Biener <rguenther@suse.de>
14628
14629 PR tree-optimization/108888
14630 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
14631 calls to predicate.
14632 (predicate_statements): Only predicate calls with PLF_2.
14633
14634 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14635
14636 * config/xtensa/xtensa.md
14637 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
14638 Add missing "SI:" to PLUS RTXes.
14639
14640 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
14641
14642 PR target/108876
14643 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
14644 Emit (use (reg:SI A0_REG)) at the end in the sibling call
14645 (i.e. the same place as (return) in the normal call).
14646
14647 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
14648
14649 Revert:
14650 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
14651
14652 PR target/108876
14653 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
14654 for A0_REG.
14655 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
14656 (sibcall_value, sibcall_value_internal): Add 'use' expression
14657 for A0_REG.
14658
14659 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
14660
14661 * doc/cppdiropts.texi: Reorder @opindex commands to precede
14662 @items they relate to.
14663 * doc/cppopts.texi: Ditto.
14664 * doc/cppwarnopts.texi: Ditto.
14665 * doc/invoke.texi: Ditto.
14666 * doc/lto.texi: Ditto.
14667
14668 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
14669
14670 * internal-fn.cc (expand_MASK_CALL): New.
14671 * internal-fn.def (MASK_CALL): New.
14672 * internal-fn.h (expand_MASK_CALL): New prototype.
14673 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
14674 for mask arguments also.
14675 * tree-if-conv.cc: Include cgraph.h.
14676 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
14677 (predicate_statements): Convert functions to IFN_MASK_CALL.
14678 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
14679 IFN_MASK_CALL as a SIMD function call.
14680 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
14681 IFN_MASK_CALL as an inbranch SIMD function call.
14682 Generate the mask vector arguments.
14683
14684 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
14685
14686 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
14687 (class widen_reducop): Ditto.
14688 (class freducop): Ditto.
14689 (class widen_freducop): Ditto.
14690 (BASE): Ditto.
14691 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
14692 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
14693 (vredmaxu): Ditto.
14694 (vredmax): Ditto.
14695 (vredminu): Ditto.
14696 (vredmin): Ditto.
14697 (vredand): Ditto.
14698 (vredor): Ditto.
14699 (vredxor): Ditto.
14700 (vwredsum): Ditto.
14701 (vwredsumu): Ditto.
14702 (vfredusum): Ditto.
14703 (vfredosum): Ditto.
14704 (vfredmax): Ditto.
14705 (vfredmin): Ditto.
14706 (vfwredosum): Ditto.
14707 (vfwredusum): Ditto.
14708 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
14709 (SHAPE): Ditto.
14710 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
14711 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
14712 (DEF_RVV_WU_OPS): Ditto.
14713 (DEF_RVV_WF_OPS): Ditto.
14714 (vint8mf8_t): Ditto.
14715 (vint8mf4_t): Ditto.
14716 (vint8mf2_t): Ditto.
14717 (vint8m1_t): Ditto.
14718 (vint8m2_t): Ditto.
14719 (vint8m4_t): Ditto.
14720 (vint8m8_t): Ditto.
14721 (vint16mf4_t): Ditto.
14722 (vint16mf2_t): Ditto.
14723 (vint16m1_t): Ditto.
14724 (vint16m2_t): Ditto.
14725 (vint16m4_t): Ditto.
14726 (vint16m8_t): Ditto.
14727 (vint32mf2_t): Ditto.
14728 (vint32m1_t): Ditto.
14729 (vint32m2_t): Ditto.
14730 (vint32m4_t): Ditto.
14731 (vint32m8_t): Ditto.
14732 (vuint8mf8_t): Ditto.
14733 (vuint8mf4_t): Ditto.
14734 (vuint8mf2_t): Ditto.
14735 (vuint8m1_t): Ditto.
14736 (vuint8m2_t): Ditto.
14737 (vuint8m4_t): Ditto.
14738 (vuint8m8_t): Ditto.
14739 (vuint16mf4_t): Ditto.
14740 (vuint16mf2_t): Ditto.
14741 (vuint16m1_t): Ditto.
14742 (vuint16m2_t): Ditto.
14743 (vuint16m4_t): Ditto.
14744 (vuint16m8_t): Ditto.
14745 (vuint32mf2_t): Ditto.
14746 (vuint32m1_t): Ditto.
14747 (vuint32m2_t): Ditto.
14748 (vuint32m4_t): Ditto.
14749 (vuint32m8_t): Ditto.
14750 (vfloat32mf2_t): Ditto.
14751 (vfloat32m1_t): Ditto.
14752 (vfloat32m2_t): Ditto.
14753 (vfloat32m4_t): Ditto.
14754 (vfloat32m8_t): Ditto.
14755 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
14756 (DEF_RVV_WU_OPS): Ditto.
14757 (DEF_RVV_WF_OPS): Ditto.
14758 (required_extensions_p): Add reduction support.
14759 (rvv_arg_type_info::get_base_vector_type): Ditto.
14760 (rvv_arg_type_info::get_tree_type): Ditto.
14761 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
14762 * config/riscv/riscv.md: Ditto.
14763 * config/riscv/vector-iterators.md (minu): Ditto.
14764 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
14765 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
14766 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
14767 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
14768 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
14769 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
14770 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
14771
14772 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
14773
14774 * config/riscv/iterators.md: New iterator.
14775 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
14776 (enum ternop_type): New enum.
14777 (class vmacc): New class.
14778 (class imac): Ditto.
14779 (class vnmsac): Ditto.
14780 (enum widen_ternop_type): New enum.
14781 (class vmadd): Ditto.
14782 (class vnmsub): Ditto.
14783 (class iwmac): Ditto.
14784 (class vwmacc): Ditto.
14785 (class vwmaccu): Ditto.
14786 (class vwmaccsu): Ditto.
14787 (class vwmaccus): Ditto.
14788 (class reverse_binop): Ditto.
14789 (class vfmacc): Ditto.
14790 (class vfnmsac): Ditto.
14791 (class vfmadd): Ditto.
14792 (class vfnmsub): Ditto.
14793 (class vfnmacc): Ditto.
14794 (class vfmsac): Ditto.
14795 (class vfnmadd): Ditto.
14796 (class vfmsub): Ditto.
14797 (class vfwmacc): Ditto.
14798 (class vfwnmacc): Ditto.
14799 (class vfwmsac): Ditto.
14800 (class vfwnmsac): Ditto.
14801 (class float_misc): Ditto.
14802 (class fcmp): Ditto.
14803 (class vfclass): Ditto.
14804 (class vfcvt_x): Ditto.
14805 (class vfcvt_rtz_x): Ditto.
14806 (class vfcvt_f): Ditto.
14807 (class vfwcvt_x): Ditto.
14808 (class vfwcvt_rtz_x): Ditto.
14809 (class vfwcvt_f): Ditto.
14810 (class vfncvt_x): Ditto.
14811 (class vfncvt_rtz_x): Ditto.
14812 (class vfncvt_f): Ditto.
14813 (class vfncvt_rod_f): Ditto.
14814 (BASE): Ditto.
14815 * config/riscv/riscv-vector-builtins-bases.h:
14816 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
14817 (vsext): Ditto.
14818 (vfadd): Ditto.
14819 (vfsub): Ditto.
14820 (vfrsub): Ditto.
14821 (vfwadd): Ditto.
14822 (vfwsub): Ditto.
14823 (vfmul): Ditto.
14824 (vfdiv): Ditto.
14825 (vfrdiv): Ditto.
14826 (vfwmul): Ditto.
14827 (vfmacc): Ditto.
14828 (vfnmsac): Ditto.
14829 (vfmadd): Ditto.
14830 (vfnmsub): Ditto.
14831 (vfnmacc): Ditto.
14832 (vfmsac): Ditto.
14833 (vfnmadd): Ditto.
14834 (vfmsub): Ditto.
14835 (vfwmacc): Ditto.
14836 (vfwnmacc): Ditto.
14837 (vfwmsac): Ditto.
14838 (vfwnmsac): Ditto.
14839 (vfsqrt): Ditto.
14840 (vfrsqrt7): Ditto.
14841 (vfrec7): Ditto.
14842 (vfmin): Ditto.
14843 (vfmax): Ditto.
14844 (vfsgnj): Ditto.
14845 (vfsgnjn): Ditto.
14846 (vfsgnjx): Ditto.
14847 (vfneg): Ditto.
14848 (vfabs): Ditto.
14849 (vmfeq): Ditto.
14850 (vmfne): Ditto.
14851 (vmflt): Ditto.
14852 (vmfle): Ditto.
14853 (vmfgt): Ditto.
14854 (vmfge): Ditto.
14855 (vfclass): Ditto.
14856 (vfmerge): Ditto.
14857 (vfmv_v): Ditto.
14858 (vfcvt_x): Ditto.
14859 (vfcvt_xu): Ditto.
14860 (vfcvt_rtz_x): Ditto.
14861 (vfcvt_rtz_xu): Ditto.
14862 (vfcvt_f): Ditto.
14863 (vfwcvt_x): Ditto.
14864 (vfwcvt_xu): Ditto.
14865 (vfwcvt_rtz_x): Ditto.
14866 (vfwcvt_rtz_xu): Ditto.
14867 (vfwcvt_f): Ditto.
14868 (vfncvt_x): Ditto.
14869 (vfncvt_xu): Ditto.
14870 (vfncvt_rtz_x): Ditto.
14871 (vfncvt_rtz_xu): Ditto.
14872 (vfncvt_f): Ditto.
14873 (vfncvt_rod_f): Ditto.
14874 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
14875 (struct move_def): Ditto.
14876 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
14877 (DEF_RVV_CONVERT_I_OPS): Ditto.
14878 (DEF_RVV_CONVERT_U_OPS): Ditto.
14879 (DEF_RVV_WCONVERT_I_OPS): Ditto.
14880 (DEF_RVV_WCONVERT_U_OPS): Ditto.
14881 (DEF_RVV_WCONVERT_F_OPS): Ditto.
14882 (vfloat64m1_t): Ditto.
14883 (vfloat64m2_t): Ditto.
14884 (vfloat64m4_t): Ditto.
14885 (vfloat64m8_t): Ditto.
14886 (vint32mf2_t): Ditto.
14887 (vint32m1_t): Ditto.
14888 (vint32m2_t): Ditto.
14889 (vint32m4_t): Ditto.
14890 (vint32m8_t): Ditto.
14891 (vint64m1_t): Ditto.
14892 (vint64m2_t): Ditto.
14893 (vint64m4_t): Ditto.
14894 (vint64m8_t): Ditto.
14895 (vuint32mf2_t): Ditto.
14896 (vuint32m1_t): Ditto.
14897 (vuint32m2_t): Ditto.
14898 (vuint32m4_t): Ditto.
14899 (vuint32m8_t): Ditto.
14900 (vuint64m1_t): Ditto.
14901 (vuint64m2_t): Ditto.
14902 (vuint64m4_t): Ditto.
14903 (vuint64m8_t): Ditto.
14904 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
14905 (DEF_RVV_CONVERT_U_OPS): Ditto.
14906 (DEF_RVV_WCONVERT_I_OPS): Ditto.
14907 (DEF_RVV_WCONVERT_U_OPS): Ditto.
14908 (DEF_RVV_WCONVERT_F_OPS): Ditto.
14909 (DEF_RVV_F_OPS): Ditto.
14910 (DEF_RVV_WEXTF_OPS): Ditto.
14911 (required_extensions_p): Adjust for floating-point support.
14912 (check_required_extensions): Ditto.
14913 (unsigned_base_type_p): Ditto.
14914 (get_mode_for_bitsize): Ditto.
14915 (rvv_arg_type_info::get_base_vector_type): Ditto.
14916 (rvv_arg_type_info::get_tree_type): Ditto.
14917 * config/riscv/riscv-vector-builtins.def (v_f): New define.
14918 (f): New define.
14919 (f_v): New define.
14920 (xu_v): New define.
14921 (f_w): New define.
14922 (xu_w): New define.
14923 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
14924 (function_expander::arg_mode): New function.
14925 * config/riscv/vector-iterators.md (sof): New iterator.
14926 (vfrecp): Ditto.
14927 (copysign): Ditto.
14928 (n): Ditto.
14929 (msac): Ditto.
14930 (msub): Ditto.
14931 (fixuns_trunc): Ditto.
14932 (floatuns): Ditto.
14933 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
14934 (@pred_<optab><mode>): Ditto.
14935 (@pred_<optab><mode>_scalar): Ditto.
14936 (@pred_<optab><mode>_reverse_scalar): Ditto.
14937 (@pred_<copysign><mode>): Ditto.
14938 (@pred_<copysign><mode>_scalar): Ditto.
14939 (@pred_mul_<optab><mode>): Ditto.
14940 (pred_mul_<optab><mode>_undef_merge): Ditto.
14941 (*pred_<madd_nmsub><mode>): Ditto.
14942 (*pred_<macc_nmsac><mode>): Ditto.
14943 (*pred_mul_<optab><mode>): Ditto.
14944 (@pred_mul_<optab><mode>_scalar): Ditto.
14945 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
14946 (*pred_<madd_nmsub><mode>_scalar): Ditto.
14947 (*pred_<macc_nmsac><mode>_scalar): Ditto.
14948 (*pred_mul_<optab><mode>_scalar): Ditto.
14949 (@pred_neg_mul_<optab><mode>): Ditto.
14950 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
14951 (*pred_<nmadd_msub><mode>): Ditto.
14952 (*pred_<nmacc_msac><mode>): Ditto.
14953 (*pred_neg_mul_<optab><mode>): Ditto.
14954 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
14955 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
14956 (*pred_<nmadd_msub><mode>_scalar): Ditto.
14957 (*pred_<nmacc_msac><mode>_scalar): Ditto.
14958 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
14959 (@pred_<misc_op><mode>): Ditto.
14960 (@pred_class<mode>): Ditto.
14961 (@pred_dual_widen_<optab><mode>): Ditto.
14962 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
14963 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
14964 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
14965 (@pred_widen_mul_<optab><mode>): Ditto.
14966 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
14967 (@pred_widen_neg_mul_<optab><mode>): Ditto.
14968 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
14969 (@pred_cmp<mode>): Ditto.
14970 (*pred_cmp<mode>): Ditto.
14971 (*pred_cmp<mode>_narrow): Ditto.
14972 (@pred_cmp<mode>_scalar): Ditto.
14973 (*pred_cmp<mode>_scalar): Ditto.
14974 (*pred_cmp<mode>_scalar_narrow): Ditto.
14975 (@pred_eqne<mode>_scalar): Ditto.
14976 (*pred_eqne<mode>_scalar): Ditto.
14977 (*pred_eqne<mode>_scalar_narrow): Ditto.
14978 (@pred_merge<mode>_scalar): Ditto.
14979 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
14980 (@pred_<fix_cvt><mode>): Ditto.
14981 (@pred_<float_cvt><mode>): Ditto.
14982 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
14983 (@pred_widen_<fix_cvt><mode>): Ditto.
14984 (@pred_widen_<float_cvt><mode>): Ditto.
14985 (@pred_extend<mode>): Ditto.
14986 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
14987 (@pred_narrow_<fix_cvt><mode>): Ditto.
14988 (@pred_narrow_<float_cvt><mode>): Ditto.
14989 (@pred_trunc<mode>): Ditto.
14990 (@pred_rod_trunc<mode>): Ditto.
14991
14992 2023-02-22 Jakub Jelinek <jakub@redhat.com>
14993
14994 PR middle-end/106258
14995 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
14996 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
14997 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
14998 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
14999
15000 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
15001
15002 * common.opt (-Wcomplain-wrong-lang): New.
15003 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
15004 * opts-common.cc (prune_options): Handle it.
15005 * opts-global.cc (complain_wrong_lang): Use it.
15006
15007 2023-02-21 David Malcolm <dmalcolm@redhat.com>
15008
15009 PR analyzer/108830
15010 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
15011
15012 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
15013
15014 PR target/108876
15015 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
15016 for A0_REG.
15017 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
15018 (sibcall_value, sibcall_value_internal): Add 'use' expression
15019 for A0_REG.
15020
15021 2023-02-21 Richard Biener <rguenther@suse.de>
15022
15023 PR tree-optimization/108691
15024 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
15025 assert about calls_setjmp not becoming true when it was false.
15026
15027 2023-02-21 Richard Biener <rguenther@suse.de>
15028
15029 PR tree-optimization/108793
15030 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
15031 Use convert operands to niter_type when computing num.
15032
15033 2023-02-21 Richard Biener <rguenther@suse.de>
15034
15035 Revert:
15036 2023-02-13 Richard Biener <rguenther@suse.de>
15037
15038 PR tree-optimization/108691
15039 * tree-cfg.cc (notice_special_calls): When the CFG is built
15040 honor gimple_call_ctrl_altering_p.
15041 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
15042 temporarily if the call is not control-altering.
15043 * calls.cc (emit_call_1): Do not add REG_SETJMP if
15044 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
15045
15046 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15047
15048 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
15049 true if register A0 (return address register) when -Og is specified.
15050
15051 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
15052
15053 * config/i386/predicates.md
15054 (general_x64constmem_operand): New predicate.
15055 * config/i386/i386.md (*cmpqi_ext<mode>_1):
15056 Use nonimm_x64constmem_operand.
15057 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
15058 (*addqi_ext<mode>_1): Ditto.
15059 (*testqi_ext<mode>_1): Ditto.
15060 (*andqi_ext<mode>_1): Ditto.
15061 (*andqi_ext<mode>_1_cc): Ditto.
15062 (*<any_or:code>qi_ext<mode>_1): Ditto.
15063 (*xorqi_ext<mode>_1_cc): Ditto.
15064
15065 2023-02-20 Jakub Jelinek <jakub2redhat.com>
15066
15067 PR target/108862
15068 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
15069 gen_umadddi4_highpart{,_le}.
15070
15071 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
15072
15073 * config/riscv/riscv.md (prefetch): Use r instead of p for the
15074 address operand.
15075 (riscv_prefetchi_<mode>): Ditto.
15076
15077 2023-02-20 Richard Biener <rguenther@suse.de>
15078
15079 PR tree-optimization/108816
15080 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
15081 versioning condition split prerequesite, assert required
15082 invariant.
15083
15084 2023-02-20 Richard Biener <rguenther@suse.de>
15085
15086 PR tree-optimization/108825
15087 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
15088 loop-local verfication only verify there's no pending SSA
15089 update.
15090
15091 2023-02-20 Richard Biener <rguenther@suse.de>
15092
15093 PR tree-optimization/108819
15094 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
15095 we have an SSA name as iv_2 as expected.
15096
15097 2023-02-18 Jakub Jelinek <jakub@redhat.com>
15098
15099 PR tree-optimization/108819
15100 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
15101
15102 2023-02-18 Jakub Jelinek <jakub@redhat.com>
15103
15104 PR target/108832
15105 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
15106 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
15107 function.
15108 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
15109 with ix86_replace_reg_with_reg.
15110
15111 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
15112
15113 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
15114
15115 2023-02-18 Xi Ruoyao <xry111@xry111.site>
15116
15117 * config.gcc (triplet_abi): Set its value based on $with_abi,
15118 instead of $target.
15119 (la_canonical_triplet): Set it after $triplet_abi is set
15120 correctly.
15121 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
15122 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
15123 "f64" suffix).
15124
15125 2023-02-18 Andrew Pinski <apinski@marvell.com>
15126
15127 * match.pd: Remove #if GIMPLE around the
15128 "1 - a" pattern
15129
15130 2023-02-18 Andrew Pinski <apinski@marvell.com>
15131
15132 * value-query.h (get_range_query): Return the global ranges
15133 for a nullptr func.
15134
15135 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
15136
15137 * doc/invoke.texi (@item -Wall): Fix typo in
15138 -Wuse-after-free.
15139
15140 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
15141
15142 PR target/108831
15143 * config/i386/predicates.md
15144 (nonimm_x64constmem_operand): New predicate.
15145 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
15146 (*subqi_ext<mode>_0): Ditto.
15147 (*andqi_ext<mode>_0): Ditto.
15148 (*<any_or:code>qi_ext<mode>_0): Ditto.
15149
15150 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
15151
15152 PR target/108805
15153 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
15154 int_outermode instead of GET_MODE (tem) to prevent
15155 VOIDmode from entering simplify_gen_subreg.
15156
15157 2023-02-17 Richard Biener <rguenther@suse.de>
15158
15159 PR tree-optimization/108821
15160 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
15161 move volatile accesses.
15162
15163 2023-02-17 Richard Biener <rguenther@suse.de>
15164
15165 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
15166 called on virtual operands.
15167 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
15168 ssa_undefined_value_p calls.
15169 (vn_phi_insert): Likewise.
15170 (set_ssa_val_to): Likewise.
15171 (visit_phi): Avoid extra work with equivalences for
15172 virtual operand PHIs.
15173
15174 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15175
15176 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
15177 class.
15178 (class mask_nlogic): Ditto.
15179 (class mask_notlogic): Ditto.
15180 (class vmmv): Ditto.
15181 (class vmclr): Ditto.
15182 (class vmset): Ditto.
15183 (class vmnot): Ditto.
15184 (class vcpop): Ditto.
15185 (class vfirst): Ditto.
15186 (class mask_misc): Ditto.
15187 (class viota): Ditto.
15188 (class vid): Ditto.
15189 (BASE): Ditto.
15190 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15191 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
15192 (vmnand): Ditto.
15193 (vmandn): Ditto.
15194 (vmxor): Ditto.
15195 (vmor): Ditto.
15196 (vmnor): Ditto.
15197 (vmorn): Ditto.
15198 (vmxnor): Ditto.
15199 (vmmv): Ditto.
15200 (vmclr): Ditto.
15201 (vmset): Ditto.
15202 (vmnot): Ditto.
15203 (vcpop): Ditto.
15204 (vfirst): Ditto.
15205 (vmsbf): Ditto.
15206 (vmsif): Ditto.
15207 (vmsof): Ditto.
15208 (viota): Ditto.
15209 (vid): Ditto.
15210 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
15211 (struct mask_alu_def): Ditto.
15212 (SHAPE): Ditto.
15213 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
15214 * config/riscv/riscv-vector-builtins.cc: Ditto.
15215 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
15216 for dest it scalar RVV intrinsics.
15217 * config/riscv/vector-iterators.md (sof): New iterator.
15218 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
15219 (@pred_<optab>not<mode>): New pattern.
15220 (@pred_popcount<VB:mode><P:mode>): New pattern.
15221 (@pred_ffs<VB:mode><P:mode>): New pattern.
15222 (@pred_<misc_op><mode>): New pattern.
15223 (@pred_iota<mode>): New pattern.
15224 (@pred_series<mode>): New pattern.
15225
15226 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15227
15228 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
15229 (vsbc): Ditto.
15230 (vmerge): Ditto.
15231 (vmv_v): Ditto.
15232 * config/riscv/riscv-vector-builtins.cc: Ditto.
15233
15234 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15235 kito-cheng <kito.cheng@sifive.com>
15236
15237 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
15238 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
15239 (sew64_scalar_helper): New function.
15240 * config/riscv/vector.md: Normalization.
15241
15242 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15243
15244 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
15245 (vsm): Ditto.
15246 (vsse): Ditto.
15247 (vsoxei64): Ditto.
15248 (vsub): Ditto.
15249 (vand): Ditto.
15250 (vor): Ditto.
15251 (vxor): Ditto.
15252 (vsll): Ditto.
15253 (vsra): Ditto.
15254 (vsrl): Ditto.
15255 (vmin): Ditto.
15256 (vmax): Ditto.
15257 (vminu): Ditto.
15258 (vmaxu): Ditto.
15259 (vmul): Ditto.
15260 (vmulh): Ditto.
15261 (vmulhu): Ditto.
15262 (vmulhsu): Ditto.
15263 (vdiv): Ditto.
15264 (vrem): Ditto.
15265 (vdivu): Ditto.
15266 (vremu): Ditto.
15267 (vnot): Ditto.
15268 (vsext): Ditto.
15269 (vzext): Ditto.
15270 (vwadd): Ditto.
15271 (vwsub): Ditto.
15272 (vwmul): Ditto.
15273 (vwmulu): Ditto.
15274 (vwmulsu): Ditto.
15275 (vwaddu): Ditto.
15276 (vwsubu): Ditto.
15277 (vsbc): Ditto.
15278 (vmsbc): Ditto.
15279 (vnsra): Ditto.
15280 (vmerge): Ditto.
15281 (vmv_v): Ditto.
15282 (vmsne): Ditto.
15283 (vmslt): Ditto.
15284 (vmsgt): Ditto.
15285 (vmsle): Ditto.
15286 (vmsge): Ditto.
15287 (vmsltu): Ditto.
15288 (vmsgtu): Ditto.
15289 (vmsleu): Ditto.
15290 (vmsgeu): Ditto.
15291 (vnmsac): Ditto.
15292 (vmadd): Ditto.
15293 (vnmsub): Ditto.
15294 (vwmacc): Ditto.
15295 (vsadd): Ditto.
15296 (vssub): Ditto.
15297 (vssubu): Ditto.
15298 (vaadd): Ditto.
15299 (vasub): Ditto.
15300 (vasubu): Ditto.
15301 (vsmul): Ditto.
15302 (vssra): Ditto.
15303 (vssrl): Ditto.
15304 (vnclip): Ditto.
15305
15306 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15307
15308 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
15309 (@pred_<optab><mode>_scalar): Ditto.
15310 (*pred_<optab><mode>_scalar): Ditto.
15311 (*pred_<optab><mode>_extended_scalar): Ditto.
15312
15313 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15314
15315 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
15316 (init_builtins): Ditto.
15317 (mangle_builtin_type): Ditto.
15318 (verify_type_context): Ditto.
15319 (handle_pragma_vector): Ditto.
15320 (builtin_decl): Ditto.
15321 (expand_builtin): Ditto.
15322 (const_vec_all_same_in_range_p): Ditto.
15323 (legitimize_move): Ditto.
15324 (emit_vlmax_op): Ditto.
15325 (emit_nonvlmax_op): Ditto.
15326 (get_vlmul): Ditto.
15327 (get_ratio): Ditto.
15328 (get_ta): Ditto.
15329 (get_ma): Ditto.
15330 (get_avl_type): Ditto.
15331 (calculate_ratio): Ditto.
15332 (enum vlmul_type): Ditto.
15333 (simm5_p): Ditto.
15334 (neg_simm5_p): Ditto.
15335 (has_vi_variant_p): Ditto.
15336
15337 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15338
15339 * config/riscv/riscv-protos.h (simm32_p): Remove.
15340 * config/riscv/riscv-v.cc (simm32_p): Ditto.
15341 * config/riscv/vector.md: Use immediate_operand
15342 instead of riscv_vector::simm32_p.
15343
15344 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
15345
15346 * doc/invoke.texi (Optimize Options): Reword the explanation
15347 getting minimal, maximal and default values of a parameter.
15348
15349 2023-02-16 Patrick Palka <ppalka@redhat.com>
15350
15351 * addresses.h: Mechanically drop 'static' from 'static inline'
15352 functions via s/^static inline/inline/g.
15353 * asan.h: Likewise.
15354 * attribs.h: Likewise.
15355 * basic-block.h: Likewise.
15356 * bitmap.h: Likewise.
15357 * cfghooks.h: Likewise.
15358 * cfgloop.h: Likewise.
15359 * cgraph.h: Likewise.
15360 * cselib.h: Likewise.
15361 * data-streamer.h: Likewise.
15362 * debug.h: Likewise.
15363 * df.h: Likewise.
15364 * diagnostic.h: Likewise.
15365 * dominance.h: Likewise.
15366 * dumpfile.h: Likewise.
15367 * emit-rtl.h: Likewise.
15368 * except.h: Likewise.
15369 * expmed.h: Likewise.
15370 * expr.h: Likewise.
15371 * fixed-value.h: Likewise.
15372 * gengtype.h: Likewise.
15373 * gimple-expr.h: Likewise.
15374 * gimple-iterator.h: Likewise.
15375 * gimple-predict.h: Likewise.
15376 * gimple-range-fold.h: Likewise.
15377 * gimple-ssa.h: Likewise.
15378 * gimple.h: Likewise.
15379 * graphite.h: Likewise.
15380 * hard-reg-set.h: Likewise.
15381 * hash-map.h: Likewise.
15382 * hash-set.h: Likewise.
15383 * hash-table.h: Likewise.
15384 * hwint.h: Likewise.
15385 * input.h: Likewise.
15386 * insn-addr.h: Likewise.
15387 * internal-fn.h: Likewise.
15388 * ipa-fnsummary.h: Likewise.
15389 * ipa-icf-gimple.h: Likewise.
15390 * ipa-inline.h: Likewise.
15391 * ipa-modref.h: Likewise.
15392 * ipa-prop.h: Likewise.
15393 * ira-int.h: Likewise.
15394 * ira.h: Likewise.
15395 * lra-int.h: Likewise.
15396 * lra.h: Likewise.
15397 * lto-streamer.h: Likewise.
15398 * memmodel.h: Likewise.
15399 * omp-general.h: Likewise.
15400 * optabs-query.h: Likewise.
15401 * optabs.h: Likewise.
15402 * plugin.h: Likewise.
15403 * pretty-print.h: Likewise.
15404 * range.h: Likewise.
15405 * read-md.h: Likewise.
15406 * recog.h: Likewise.
15407 * regs.h: Likewise.
15408 * rtl-iter.h: Likewise.
15409 * rtl.h: Likewise.
15410 * sbitmap.h: Likewise.
15411 * sched-int.h: Likewise.
15412 * sel-sched-ir.h: Likewise.
15413 * sese.h: Likewise.
15414 * sparseset.h: Likewise.
15415 * ssa-iterators.h: Likewise.
15416 * system.h: Likewise.
15417 * target-globals.h: Likewise.
15418 * target.h: Likewise.
15419 * timevar.h: Likewise.
15420 * tree-chrec.h: Likewise.
15421 * tree-data-ref.h: Likewise.
15422 * tree-iterator.h: Likewise.
15423 * tree-outof-ssa.h: Likewise.
15424 * tree-phinodes.h: Likewise.
15425 * tree-scalar-evolution.h: Likewise.
15426 * tree-sra.h: Likewise.
15427 * tree-ssa-alias.h: Likewise.
15428 * tree-ssa-live.h: Likewise.
15429 * tree-ssa-loop-manip.h: Likewise.
15430 * tree-ssa-loop.h: Likewise.
15431 * tree-ssa-operands.h: Likewise.
15432 * tree-ssa-propagate.h: Likewise.
15433 * tree-ssa-sccvn.h: Likewise.
15434 * tree-ssa.h: Likewise.
15435 * tree-ssanames.h: Likewise.
15436 * tree-streamer.h: Likewise.
15437 * tree-switch-conversion.h: Likewise.
15438 * tree-vectorizer.h: Likewise.
15439 * tree.h: Likewise.
15440 * wide-int.h: Likewise.
15441
15442 2023-02-16 Jakub Jelinek <jakub@redhat.com>
15443
15444 PR tree-optimization/108657
15445 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
15446 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
15447 is a call to internal or builtin function.
15448
15449 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
15450
15451 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
15452 using-declaration to unhide functions.
15453
15454 2023-02-16 Jakub Jelinek <jakub@redhat.com>
15455
15456 PR tree-optimization/108783
15457 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
15458 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
15459 t to curr->op. Otherwise, punt if either newop1 or newop2 are
15460 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
15461
15462 2023-02-16 Richard Biener <rguenther@suse.de>
15463
15464 PR tree-optimization/108791
15465 * tree-ssa-forwprop.cc (optimize_vector_load): Build
15466 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
15467 type.
15468
15469 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
15470
15471 PR target/90458
15472 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
15473 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
15474 (ix86_expand_prologue): Likewise.
15475
15476 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15477
15478 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
15479
15480 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
15481
15482 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
15483 int248_register_operand predicate in zero_extract sub-RTX.
15484 (*cmpqi_ext<mode>_2): Ditto.
15485 (*cmpqi_ext<mode>_3): Ditto.
15486 (*cmpqi_ext<mode>_4): Ditto.
15487 (*extzvqi_mem_rex64): Ditto.
15488 (*extzvqi): Ditto.
15489 (*insvqi_1_mem_rex64): Ditto.
15490 (@insv<mode>_1): Ditto.
15491 (*insvqi_1): Ditto.
15492 (*insvqi_2): Ditto.
15493 (*insvqi_3): Ditto.
15494 (*extendqi<SWI24:mode>_ext_1): Ditto.
15495 (*addqi_ext<mode>_1): Ditto.
15496 (*addqi_ext<mode>_2): Ditto.
15497 (*subqi_ext<mode>_2): Ditto.
15498 (*testqi_ext<mode>_1): Ditto.
15499 (*testqi_ext<mode>_2): Ditto.
15500 (*andqi_ext<mode>_1): Ditto.
15501 (*andqi_ext<mode>_1_cc): Ditto.
15502 (*andqi_ext<mode>_2): Ditto.
15503 (*<any_or:code>qi_ext<mode>_1): Ditto.
15504 (*<any_or:code>qi_ext<mode>_2): Ditto.
15505 (*xorqi_ext<mode>_1_cc): Ditto.
15506 (*negqi_ext<mode>_2): Ditto.
15507 (*ashlqi_ext<mode>_2): Ditto.
15508 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
15509
15510 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
15511
15512 * config/i386/predicates.md (int248_register_operand):
15513 Rename from extr_register_operand.
15514 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
15515 (*extzx<mode>): Ditto.
15516 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
15517 (*ashl<mode>3_mask): Ditto.
15518 (*<any_shiftrt:insn><mode>3_mask): Ditto.
15519 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
15520 (*<any_rotate:insn><mode>3_mask): Ditto.
15521 (*<btsc><mode>_mask): Ditto.
15522 (*btr<mode>_mask): Ditto.
15523 (*jcc_bt<mode>_mask_1): Ditto.
15524
15525 2023-02-15 Richard Biener <rguenther@suse.de>
15526
15527 PR middle-end/26854
15528 * df-core.cc (df_worklist_propagate_forward): Put later
15529 blocks on worklist and only earlier blocks on pending.
15530 (df_worklist_propagate_backward): Likewise.
15531 (df_worklist_dataflow_doublequeue): Change the iteration
15532 to process new blocks in the same iteration if that
15533 maintains the iteration order.
15534
15535 2023-02-15 Marek Polacek <polacek@redhat.com>
15536
15537 PR middle-end/106080
15538 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
15539 instead.
15540
15541 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15542
15543 * config/riscv/predicates.md: Refine codes.
15544 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
15545 * config/riscv/riscv-v.cc: Refine codes.
15546 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
15547 enum.
15548 (class imac): New class.
15549 (enum widen_ternop_type): New enum.
15550 (class iwmac): New class.
15551 (BASE): New class.
15552 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15553 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
15554 (vnmsac): Ditto.
15555 (vmadd): Ditto.
15556 (vnmsub): Ditto.
15557 (vwmacc): Ditto.
15558 (vwmaccu): Ditto.
15559 (vwmaccsu): Ditto.
15560 (vwmaccus): Ditto.
15561 * config/riscv/riscv-vector-builtins.cc
15562 (function_builder::apply_predication): Adjust for multiply-add support.
15563 (function_expander::add_vundef_operand): Refine codes.
15564 (function_expander::use_ternop_insn): New function.
15565 (function_expander::use_widen_ternop_insn): Ditto.
15566 * config/riscv/riscv-vector-builtins.h: New function.
15567 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
15568 (pred_mul_<optab><mode>_undef_merge): Ditto.
15569 (*pred_<madd_nmsub><mode>): Ditto.
15570 (*pred_<macc_nmsac><mode>): Ditto.
15571 (*pred_mul_<optab><mode>): Ditto.
15572 (@pred_mul_<optab><mode>_scalar): Ditto.
15573 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
15574 (*pred_<madd_nmsub><mode>_scalar): Ditto.
15575 (*pred_<macc_nmsac><mode>_scalar): Ditto.
15576 (*pred_mul_<optab><mode>_scalar): Ditto.
15577 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
15578 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
15579 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
15580 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
15581 (@pred_widen_mul_plus<su><mode>): Ditto.
15582 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
15583 (@pred_widen_mul_plussu<mode>): Ditto.
15584 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
15585 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
15586
15587 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15588
15589 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
15590 (vector_all_trues_mask_operand): New predicate.
15591 (vector_undef_operand): New predicate.
15592 (ltge_operator): New predicate.
15593 (comparison_except_ltge_operator): New predicate.
15594 (comparison_except_eqge_operator): New predicate.
15595 (ge_operator): New predicate.
15596 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
15597 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
15598 (BASE): Ditto.
15599 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15600 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
15601 (vmsne): Ditto.
15602 (vmslt): Ditto.
15603 (vmsgt): Ditto.
15604 (vmsle): Ditto.
15605 (vmsge): Ditto.
15606 (vmsltu): Ditto.
15607 (vmsgtu): Ditto.
15608 (vmsleu): Ditto.
15609 (vmsgeu): Ditto.
15610 * config/riscv/riscv-vector-builtins-shapes.cc
15611 (struct return_mask_def): Adjust for compare support.
15612 * config/riscv/riscv-vector-builtins.cc
15613 (function_expander::use_compare_insn): New function.
15614 * config/riscv/riscv-vector-builtins.h
15615 (function_expander::add_integer_operand): Ditto.
15616 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
15617 * config/riscv/riscv.md: Add vector min/max attributes.
15618 * config/riscv/vector-iterators.md (xnor): New iterator.
15619 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
15620 (*pred_cmp<mode>): Ditto.
15621 (*pred_cmp<mode>_narrow): Ditto.
15622 (@pred_ltge<mode>): Ditto.
15623 (*pred_ltge<mode>): Ditto.
15624 (*pred_ltge<mode>_narrow): Ditto.
15625 (@pred_cmp<mode>_scalar): Ditto.
15626 (*pred_cmp<mode>_scalar): Ditto.
15627 (*pred_cmp<mode>_scalar_narrow): Ditto.
15628 (@pred_eqne<mode>_scalar): Ditto.
15629 (*pred_eqne<mode>_scalar): Ditto.
15630 (*pred_eqne<mode>_scalar_narrow): Ditto.
15631 (*pred_cmp<mode>_extended_scalar): Ditto.
15632 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
15633 (*pred_eqne<mode>_extended_scalar): Ditto.
15634 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
15635 (@pred_ge<mode>_scalar): Ditto.
15636 (@pred_<optab><mode>): Ditto.
15637 (@pred_n<optab><mode>): Ditto.
15638 (@pred_<optab>n<mode>): Ditto.
15639 (@pred_not<mode>): Ditto.
15640
15641 2023-02-15 Martin Jambor <mjambor@suse.cz>
15642
15643 PR ipa/108679
15644 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
15645 creation of non-scalar replacements even if IPA-CP knows their
15646 contents.
15647
15648 2023-02-15 Jakub Jelinek <jakub@redhat.com>
15649
15650 PR target/108787
15651 PR target/103109
15652 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
15653 expander, change operand 3 to be TImode, emit maddlddi4 and
15654 umadddi4_highpart{,_le} with its low half and finally add the high
15655 half to the result.
15656
15657 2023-02-15 Martin Liska <mliska@suse.cz>
15658
15659 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
15660
15661 2023-02-15 Richard Biener <rguenther@suse.de>
15662
15663 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
15664 for with_poison and alias worklist to it.
15665 (sanitize_asan_mark_poison): Likewise.
15666
15667 2023-02-15 Richard Biener <rguenther@suse.de>
15668
15669 PR target/108738
15670 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
15671 Combine bitmap test and set.
15672 (scalar_chain::add_insn): Likewise.
15673 (scalar_chain::analyze_register_chain): Remove redundant
15674 attempt to add to queue and instead strengthen assert.
15675 Sink common attempts to mark the def dual-mode.
15676 (scalar_chain::add_to_queue): Remove redundant insn bitmap
15677 check.
15678
15679 2023-02-15 Richard Biener <rguenther@suse.de>
15680
15681 PR target/108738
15682 * config/i386/i386-features.cc (convert_scalars_to_vector):
15683 Switch candidates bitmaps to tree view before building the chains.
15684
15685 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
15686
15687 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
15688 "failure trying to reload" call.
15689
15690 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
15691
15692 * gdbinit.in (phrs): New command.
15693 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
15694 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
15695
15696 2023-02-14 David Faust <david.faust@oracle.com>
15697
15698 PR target/108790
15699 * config/bpf/constraints.md (q): New memory constraint.
15700 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
15701 (zero_extendqidi2): Likewise.
15702 (zero_extendsidi2): Likewise.
15703 (*mov<MM:mode>): Likewise.
15704
15705 2023-02-14 Andrew Pinski <apinski@marvell.com>
15706
15707 PR tree-optimization/108355
15708 PR tree-optimization/96921
15709 * match.pd: Add pattern for "1 - bool_val".
15710
15711 2023-02-14 Richard Biener <rguenther@suse.de>
15712
15713 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
15714 basic block index hashing on the availability of ->cclhs.
15715 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
15716 rely on ->cclhs availability.
15717 (vn_phi_lookup): Set ->cclhs only when we are eventually
15718 going to CSE the PHI.
15719 (vn_phi_insert): Likewise.
15720
15721 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
15722
15723 * gimplify.cc (gimplify_save_expr): Add missing guard.
15724
15725 2023-02-14 Richard Biener <rguenther@suse.de>
15726
15727 PR tree-optimization/108782
15728 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
15729 Make sure we're not vectorizing an inner loop.
15730
15731 2023-02-14 Jakub Jelinek <jakub@redhat.com>
15732
15733 PR sanitizer/108777
15734 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
15735 * asan.h (asan_memfn_rtl): Declare.
15736 * asan.cc (asan_memfn_rtls): New variable.
15737 (asan_memfn_rtl): New function.
15738 * builtins.cc (expand_builtin): If
15739 param_asan_kernel_mem_intrinsic_prefix and function is
15740 kernel-{,hw}address sanitized, emit calls to
15741 __{,hw}asan_{memcpy,memmove,memset} rather than
15742 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
15743 instead of flag_sanitize & SANITIZE_ADDRESS to check if
15744 asan_intercepted_p functions shouldn't be expanded inline.
15745
15746 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
15747
15748 PR tree-optimization/96373
15749 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
15750 operations on the loop mask. Reject partial vectors if this isn't
15751 possible.
15752
15753 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
15754
15755 PR rtl-optimization/108681
15756 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
15757 code to handle bare uses and clobbers.
15758
15759 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
15760
15761 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
15762 caller_save_p flag when clearing defined_p flag.
15763 (setup_reg_equiv): Ditto.
15764 * lra-constraints.cc (lra_constraints): Ditto.
15765
15766 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
15767
15768 PR target/108516
15769 * config/i386/predicates.md (extr_register_operand):
15770 New special predicate.
15771 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
15772 as operand 1 predicate.
15773 (*exzv<mode>): Ditto.
15774 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
15775
15776 2023-02-13 Richard Biener <rguenther@suse.de>
15777
15778 PR tree-optimization/28614
15779 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
15780 walking all edges in most cases.
15781 (vn_nary_op_insert_pieces_predicated): Avoid repeated
15782 calls to can_track_predicate_on_edge unless checking is
15783 enabled.
15784 (process_bb): Instead call it once here for each edge
15785 we register possibly multiple predicates on.
15786
15787 2023-02-13 Richard Biener <rguenther@suse.de>
15788
15789 PR tree-optimization/108691
15790 * tree-cfg.cc (notice_special_calls): When the CFG is built
15791 honor gimple_call_ctrl_altering_p.
15792 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
15793 temporarily if the call is not control-altering.
15794 * calls.cc (emit_call_1): Do not add REG_SETJMP if
15795 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
15796
15797 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
15798
15799 PR target/108102
15800 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
15801 (struct s390_sched_state): Initialise to zero.
15802 (s390_sched_variable_issue): For better debuggability also emit
15803 the current side.
15804 (s390_sched_init): Unconditionally reset scheduler state.
15805
15806 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
15807
15808 * ifcvt.h (noce_if_info::cond_inverted): New field.
15809 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
15810 values when cond_inverted is true.
15811 (noce_find_if_block): Allow the condition to be inverted when
15812 handling conditional moves.
15813
15814 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
15815
15816 * config/s390/predicates.md (execute_operation): Use
15817 constrain_operands instead of extract_constrain_insn in order to
15818 determine wheter there exists a valid alternative.
15819
15820 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
15821
15822 * common/config/arc/arc-common.cc (arc_option_optimization_table):
15823 Remove millicode from list.
15824
15825 2023-02-13 Martin Liska <mliska@suse.cz>
15826
15827 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
15828
15829 2023-02-13 Richard Biener <rguenther@suse.de>
15830
15831 PR tree-optimization/106722
15832 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
15833 whether we marked a stmt.
15834 (mark_control_dependent_edges_necessary): When
15835 mark_last_stmt_necessary didn't mark any stmt make sure
15836 to mark its control dependent edges.
15837 (propagate_necessity): Likewise.
15838
15839 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
15840
15841 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
15842 (DWARF_FRAME_REGISTERS): New.
15843 (DWARF_REG_TO_UNWIND_COLUMN): New.
15844
15845 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
15846
15847 * doc/sourcebuild.texi: Remove (broken) direct reference to
15848 "The GNU configure and build system".
15849
15850 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
15851
15852 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
15853 gen_add3_insn to gen_rtx_SET.
15854 (riscv_adjust_libcall_cfi_epilogue): Likewise.
15855
15856 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15857
15858 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
15859 (class vnclip): Ditto.
15860 (BASE): Ditto.
15861 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15862 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
15863 (vasub): Ditto.
15864 (vaaddu): Ditto.
15865 (vasubu): Ditto.
15866 (vsmul): Ditto.
15867 (vssra): Ditto.
15868 (vssrl): Ditto.
15869 (vnclipu): Ditto.
15870 (vnclip): Ditto.
15871 * config/riscv/vector-iterators.md (su): Add instruction.
15872 (aadd): Ditto.
15873 (vaalu): Ditto.
15874 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
15875 (@pred_<sat_op><mode>_scalar): Ditto.
15876 (*pred_<sat_op><mode>_scalar): Ditto.
15877 (*pred_<sat_op><mode>_extended_scalar): Ditto.
15878 (@pred_narrow_clip<v_su><mode>): Ditto.
15879 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
15880
15881 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15882
15883 * config/riscv/constraints.md (Wbr): Remove unused constraint.
15884 * config/riscv/predicates.md: Fix move operand predicate.
15885 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
15886 (class vncvt_x): Ditto.
15887 (class vmerge): Ditto.
15888 (class vmv_v): Ditto.
15889 (BASE): Ditto.
15890 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15891 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
15892 (vsrl): Ditto.
15893 (vnsrl): Ditto.
15894 (vnsra): Ditto.
15895 (vncvt_x): Ditto.
15896 (vmerge): Ditto.
15897 (vmv_v): Ditto.
15898 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
15899 (struct move_def): Ditto.
15900 (SHAPE): Ditto.
15901 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
15902 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
15903 (DEF_RVV_WEXTU_OPS): Ditto
15904 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
15905 (v_v): Ditto.
15906 (v_x): Ditto.
15907 (x_w): Ditto.
15908 (x): Ditto.
15909 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
15910 * config/riscv/vector-iterators.md (nmsac):New iterator.
15911 (nmsub): New iterator.
15912 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
15913 (@pred_merge<mode>_scalar): New pattern.
15914 (*pred_merge<mode>_scalar): New pattern.
15915 (*pred_merge<mode>_extended_scalar): New pattern.
15916 (@pred_narrow_<optab><mode>): New pattern.
15917 (@pred_narrow_<optab><mode>_scalar): New pattern.
15918 (@pred_trunc<mode>): New pattern.
15919
15920 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15921
15922 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
15923 (class vmsbc): Ditto.
15924 (BASE): Define new class.
15925 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15926 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
15927 (vmsbc): Ditto.
15928 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
15929 New class.
15930 (SHAPE): Ditto.
15931 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
15932 * config/riscv/riscv-vector-builtins.cc
15933 (function_expander::use_exact_insn): Adjust for new support
15934 * config/riscv/riscv-vector-builtins.h
15935 (function_base::has_merge_operand_p): New function.
15936 * config/riscv/vector-iterators.md: New iterator.
15937 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
15938 (@pred_msbc<mode>): Ditto.
15939 (@pred_madc<mode>_scalar): Ditto.
15940 (@pred_msbc<mode>_scalar): Ditto.
15941 (*pred_madc<mode>_scalar): Ditto.
15942 (*pred_madc<mode>_extended_scalar): Ditto.
15943 (*pred_msbc<mode>_scalar): Ditto.
15944 (*pred_msbc<mode>_extended_scalar): Ditto.
15945 (@pred_madc<mode>_overflow): Ditto.
15946 (@pred_msbc<mode>_overflow): Ditto.
15947 (@pred_madc<mode>_overflow_scalar): Ditto.
15948 (@pred_msbc<mode>_overflow_scalar): Ditto.
15949 (*pred_madc<mode>_overflow_scalar): Ditto.
15950 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
15951 (*pred_msbc<mode>_overflow_scalar): Ditto.
15952 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
15953
15954 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15955
15956 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
15957 * config/riscv/riscv-v.cc (simm32_p): Ditto.
15958 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
15959 (class vsbc): Ditto.
15960 (BASE): Ditto.
15961 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
15962 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
15963 (vsbc): Ditto.
15964 * config/riscv/riscv-vector-builtins-shapes.cc
15965 (struct no_mask_policy_def): Ditto.
15966 (SHAPE): Ditto.
15967 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
15968 * config/riscv/riscv-vector-builtins.cc
15969 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
15970 (rvv_arg_type_info::get_tree_type): Ditto.
15971 (function_expander::use_exact_insn): Ditto.
15972 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
15973 (function_base::use_mask_predication_p): New function.
15974 * config/riscv/vector-iterators.md: New iterator.
15975 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
15976 (@pred_sbc<mode>): Ditto.
15977 (@pred_adc<mode>_scalar): Ditto.
15978 (@pred_sbc<mode>_scalar): Ditto.
15979 (*pred_adc<mode>_scalar): Ditto.
15980 (*pred_adc<mode>_extended_scalar): Ditto.
15981 (*pred_sbc<mode>_scalar): Ditto.
15982 (*pred_sbc<mode>_extended_scalar): Ditto.
15983
15984 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15985
15986 * config/riscv/vector.md: use "zero" reg.
15987
15988 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15989
15990 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
15991 class.
15992 (class vwmulsu): Ditto.
15993 (class vwcvt): Ditto.
15994 (BASE): Add integer widening support.
15995 * config/riscv/riscv-vector-builtins-bases.h: Ditto
15996 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
15997 (vwsub): New class.
15998 (vwmul): New class.
15999 (vwmulu): New class.
16000 (vwmulsu): New class.
16001 (vwaddu): New class.
16002 (vwsubu): New class.
16003 (vwcvt_x): New class.
16004 (vwcvtu_x): New class.
16005 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
16006 class.
16007 (struct widen_alu_def): New class.
16008 (SHAPE): New class.
16009 * config/riscv/riscv-vector-builtins-shapes.h: New class.
16010 * config/riscv/riscv-vector-builtins.cc
16011 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
16012 (rvv_arg_type_info::get_tree_type): Ditto.
16013 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
16014 (x_v): Ditto.
16015 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
16016 widening support.
16017 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
16018 * config/riscv/riscv.h (X0_REGNUM): New constant.
16019 * config/riscv/vector-iterators.md: New iterators.
16020 * config/riscv/vector.md
16021 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
16022 pattern.
16023 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
16024 Ditto.
16025 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
16026 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
16027 Ditto.
16028 (@pred_widen_mulsu<mode>): Ditto.
16029 (@pred_widen_mulsu<mode>_scalar): Ditto.
16030 (@pred_<optab><mode>): Ditto.
16031
16032 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16033 kito-cheng <kito.cheng@sifive.com>
16034
16035 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
16036 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
16037 (BASE): Ditto.
16038 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16039 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
16040 API support.
16041 (vmulhu): Ditto.
16042 (vmulhsu): Ditto.
16043 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
16044 New macro.
16045 (DEF_RVV_FULL_V_U_OPS): Ditto.
16046 (vint8mf8_t): Ditto.
16047 (vint8mf4_t): Ditto.
16048 (vint8mf2_t): Ditto.
16049 (vint8m1_t): Ditto.
16050 (vint8m2_t): Ditto.
16051 (vint8m4_t): Ditto.
16052 (vint8m8_t): Ditto.
16053 (vint16mf4_t): Ditto.
16054 (vint16mf2_t): Ditto.
16055 (vint16m1_t): Ditto.
16056 (vint16m2_t): Ditto.
16057 (vint16m4_t): Ditto.
16058 (vint16m8_t): Ditto.
16059 (vint32mf2_t): Ditto.
16060 (vint32m1_t): Ditto.
16061 (vint32m2_t): Ditto.
16062 (vint32m4_t): Ditto.
16063 (vint32m8_t): Ditto.
16064 (vint64m1_t): Ditto.
16065 (vint64m2_t): Ditto.
16066 (vint64m4_t): Ditto.
16067 (vint64m8_t): Ditto.
16068 (vuint8mf8_t): Ditto.
16069 (vuint8mf4_t): Ditto.
16070 (vuint8mf2_t): Ditto.
16071 (vuint8m1_t): Ditto.
16072 (vuint8m2_t): Ditto.
16073 (vuint8m4_t): Ditto.
16074 (vuint8m8_t): Ditto.
16075 (vuint16mf4_t): Ditto.
16076 (vuint16mf2_t): Ditto.
16077 (vuint16m1_t): Ditto.
16078 (vuint16m2_t): Ditto.
16079 (vuint16m4_t): Ditto.
16080 (vuint16m8_t): Ditto.
16081 (vuint32mf2_t): Ditto.
16082 (vuint32m1_t): Ditto.
16083 (vuint32m2_t): Ditto.
16084 (vuint32m4_t): Ditto.
16085 (vuint32m8_t): Ditto.
16086 (vuint64m1_t): Ditto.
16087 (vuint64m2_t): Ditto.
16088 (vuint64m4_t): Ditto.
16089 (vuint64m8_t): Ditto.
16090 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
16091 (DEF_RVV_FULL_V_U_OPS): Ditto.
16092 (check_required_extensions): Add vmulh support.
16093 (rvv_arg_type_info::get_tree_type): Ditto.
16094 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
16095 (enum rvv_base_type): Ditto.
16096 * config/riscv/riscv.opt: Add 'V' extension flag.
16097 * config/riscv/vector-iterators.md (su): New iterator.
16098 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
16099 (@pred_mulh<v_su><mode>_scalar): Ditto.
16100 (*pred_mulh<v_su><mode>_scalar): Ditto.
16101 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
16102
16103 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16104
16105 * config/riscv/iterators.md: Add sign_extend/zero_extend.
16106 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
16107 (BASE): Ditto.
16108 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
16109 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
16110 define.
16111 (vzext): Ditto.
16112 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
16113 for vsext/vzext support.
16114 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
16115 macro define.
16116 (DEF_RVV_QEXTI_OPS): Ditto.
16117 (DEF_RVV_OEXTI_OPS): Ditto.
16118 (DEF_RVV_WEXTU_OPS): Ditto.
16119 (DEF_RVV_QEXTU_OPS): Ditto.
16120 (DEF_RVV_OEXTU_OPS): Ditto.
16121 (vint16mf4_t): Ditto.
16122 (vint16mf2_t): Ditto.
16123 (vint16m1_t): Ditto.
16124 (vint16m2_t): Ditto.
16125 (vint16m4_t): Ditto.
16126 (vint16m8_t): Ditto.
16127 (vint32mf2_t): Ditto.
16128 (vint32m1_t): Ditto.
16129 (vint32m2_t): Ditto.
16130 (vint32m4_t): Ditto.
16131 (vint32m8_t): Ditto.
16132 (vint64m1_t): Ditto.
16133 (vint64m2_t): Ditto.
16134 (vint64m4_t): Ditto.
16135 (vint64m8_t): Ditto.
16136 (vuint16mf4_t): Ditto.
16137 (vuint16mf2_t): Ditto.
16138 (vuint16m1_t): Ditto.
16139 (vuint16m2_t): Ditto.
16140 (vuint16m4_t): Ditto.
16141 (vuint16m8_t): Ditto.
16142 (vuint32mf2_t): Ditto.
16143 (vuint32m1_t): Ditto.
16144 (vuint32m2_t): Ditto.
16145 (vuint32m4_t): Ditto.
16146 (vuint32m8_t): Ditto.
16147 (vuint64m1_t): Ditto.
16148 (vuint64m2_t): Ditto.
16149 (vuint64m4_t): Ditto.
16150 (vuint64m8_t): Ditto.
16151 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
16152 (DEF_RVV_QEXTI_OPS): Ditto.
16153 (DEF_RVV_OEXTI_OPS): Ditto.
16154 (DEF_RVV_WEXTU_OPS): Ditto.
16155 (DEF_RVV_QEXTU_OPS): Ditto.
16156 (DEF_RVV_OEXTU_OPS): Ditto.
16157 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
16158 support.
16159 (rvv_arg_type_info::get_tree_type): Ditto.
16160 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
16161 * config/riscv/vector-iterators.md (z): New attribute.
16162 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
16163 (@pred_<optab><mode>_vf4): Ditto.
16164 (@pred_<optab><mode>_vf8): Ditto.
16165
16166 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16167
16168 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
16169 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
16170 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
16171 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16172 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
16173 (vssub): Ditto.
16174 (vsaddu): Ditto.
16175 (vssubu): Ditto.
16176 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
16177 support.
16178 (sll.vv): Ditto.
16179 (%3,%v4): Ditto.
16180 (%3,%4): Ditto.
16181 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
16182 (@pred_<optab><mode>_scalar): New pattern.
16183 (*pred_<optab><mode>_scalar): New pattern.
16184 (*pred_<optab><mode>_extended_scalar): New pattern.
16185
16186 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16187
16188 * config/riscv/iterators.md: Add neg and not.
16189 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
16190 (BASE): Ditto.
16191 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16192 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
16193 into alu.
16194 (vsub): Ditto.
16195 (vand): Ditto.
16196 (vor): Ditto.
16197 (vxor): Ditto.
16198 (vsll): Ditto.
16199 (vsra): Ditto.
16200 (vsrl): Ditto.
16201 (vmin): Ditto.
16202 (vmax): Ditto.
16203 (vminu): Ditto.
16204 (vmaxu): Ditto.
16205 (vmul): Ditto.
16206 (vdiv): Ditto.
16207 (vrem): Ditto.
16208 (vdivu): Ditto.
16209 (vremu): Ditto.
16210 (vrsub): Ditto.
16211 (vneg): Ditto.
16212 (vnot): Ditto.
16213 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
16214 (struct alu_def): Ditto.
16215 (SHAPE): Ditto.
16216 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
16217 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
16218 * config/riscv/vector-iterators.md: New iterator.
16219 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
16220
16221 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16222
16223 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
16224
16225 2023-02-11 Jakub Jelinek <jakub@redhat.com>
16226
16227 PR ipa/108605
16228 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
16229 item->offset bit position is too large to be representable as
16230 unsigned int byte position.
16231
16232 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
16233
16234 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
16235
16236 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
16237
16238 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
16239 valid_combine only when ira_use_lra_p is true.
16240
16241 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
16242
16243 * params.opt (ira-simple-lra-insn-threshold): Add new param.
16244 * ira.cc (ira): Use the param to switch on simple LRA.
16245
16246 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
16247
16248 PR tree-optimization/108687
16249 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
16250 back to RFD_NONE mode for calculations.
16251 (ranger_cache::propagate_cache): Call the internal edge range API
16252 with RFD_READ_ONLY instead of changing the external routine.
16253
16254 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
16255
16256 PR tree-optimization/108520
16257 * gimple-range-infer.cc (check_assume_func): Invoke
16258 gimple_range_global directly instead using global_range_query.
16259 * value-query.cc (get_range_global): Add function context and
16260 avoid calling nonnull_arg_p if not cfun.
16261 (gimple_range_global): Add function context pointer.
16262 * value-query.h (imple_range_global): Add function context.
16263
16264 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16265
16266 * config/riscv/constraints.md (Wdm): Adjust constraint.
16267 (Wbr): New constraint.
16268 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
16269 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
16270 (emit_vlmax_op): New function.
16271 (emit_nonvlmax_op): Ditto.
16272 (simm32_p): Ditto.
16273 (neg_simm5_p): Ditto.
16274 (has_vi_variant_p): Ditto.
16275 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
16276 (emit_vlmax_op): New function.
16277 (emit_nonvlmax_op): Ditto.
16278 (expand_const_vector): Adjust function.
16279 (legitimize_move): Ditto.
16280 (simm32_p): New function.
16281 (simm5_p): Ditto.
16282 (neg_simm5_p): Ditto.
16283 (has_vi_variant_p): Ditto.
16284 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
16285 (BASE): Ditto.
16286 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
16287 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
16288 unsigned cases.
16289 (vmax): Ditto.
16290 (vminu): Remove signed cases.
16291 (vmaxu): Ditto.
16292 (vdiv): Remove unsigned cases.
16293 (vrem): Ditto.
16294 (vdivu): Remove signed cases.
16295 (vremu): Ditto.
16296 (vadd): Adjust.
16297 (vsub): Ditto.
16298 (vrsub): New class.
16299 (vand): Adjust.
16300 (vor): Ditto.
16301 (vxor): Ditto.
16302 (vmul): Ditto.
16303 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
16304 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
16305 * config/riscv/vector-iterators.md: New iterators.
16306 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
16307 support.
16308 (@pred_<optab><mode>_scalar): New pattern.
16309 (@pred_sub<mode>_reverse_scalar): Ditto.
16310 (*pred_<optab><mode>_scalar): Ditto.
16311 (*pred_<optab><mode>_extended_scalar): Ditto.
16312 (*pred_sub<mode>_reverse_scalar): Ditto.
16313 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
16314
16315 2023-02-10 Richard Biener <rguenther@suse.de>
16316
16317 PR tree-optimization/108724
16318 * tree-vect-stmts.cc (vectorizable_operation): Avoid
16319 using word_mode vectors when vector lowering will
16320 decompose them to elementwise operations.
16321
16322 2023-02-10 Jakub Jelinek <jakub@redhat.com>
16323
16324 Revert:
16325 2023-02-09 Martin Liska <mliska@suse.cz>
16326
16327 PR target/100758
16328 * doc/extend.texi: Document that the function
16329 does not work correctly for old VIA processors.
16330
16331 2023-02-10 Andrew Pinski <apinski@marvell.com>
16332 Andrew Macleod <amacleod@redhat.com>
16333
16334 PR tree-optimization/108684
16335 * tree-ssa-dce.cc (simple_dce_from_worklist):
16336 Check all ssa names and not just non-vdef ones
16337 before accepting the inline-asm.
16338 Call unlink_stmt_vdef on the statement before
16339 removing it.
16340
16341 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
16342
16343 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
16344 * ira.cc (validate_equiv_mem): Check memref address variance.
16345 (no_equiv): Clear caller_save_p flag.
16346 (update_equiv_regs): Define caller save equivalence for
16347 valid_combine.
16348 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
16349 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
16350 call_save_p. Use caller save equivalence depending on the arg.
16351 (split_reg): Adjust the call.
16352
16353 2023-02-09 Jakub Jelinek <jakub@redhat.com>
16354
16355 PR target/100758
16356 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
16357 (cpu_indicator_init): Call get_available_features for all CPUs with
16358 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
16359 fixes.
16360
16361 2023-02-09 Jakub Jelinek <jakub@redhat.com>
16362
16363 PR tree-optimization/108688
16364 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
16365 of BIT_INSERT_EXPR extracting exactly all inserted bits even
16366 when without mode precision. Formatting fixes.
16367
16368 2023-02-09 Andrew Pinski <apinski@marvell.com>
16369
16370 PR tree-optimization/108688
16371 * match.pd (bit_field_ref [bit_insert]): Avoid generating
16372 BIT_FIELD_REFs of non-mode-precision integral operands.
16373
16374 2023-02-09 Martin Liska <mliska@suse.cz>
16375
16376 PR target/100758
16377 * doc/extend.texi: Document that the function
16378 does not work correctly for old VIA processors.
16379
16380 2023-02-09 Andreas Schwab <schwab@suse.de>
16381
16382 * lto-wrapper.cc (merge_and_complain): Handle
16383 -funwind-tables and -fasynchronous-unwind-tables.
16384 (append_compiler_options): Likewise.
16385
16386 2023-02-09 Richard Biener <rguenther@suse.de>
16387
16388 PR tree-optimization/26854
16389 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
16390 view around insert_updated_phi_nodes_for.
16391 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
16392 in tree view.
16393 (walk_aliased_vdefs_1): Likewise.
16394
16395 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
16396
16397 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
16398
16399 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
16400
16401 PR target/108505
16402 * config.gcc (tm_mlib_file): Define new variable.
16403
16404 2023-02-08 Jakub Jelinek <jakub@redhat.com>
16405
16406 PR tree-optimization/108692
16407 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
16408 widened_code which is different from code, don't call
16409 vect_look_through_possible_promotion but instead just check op is
16410 SSA_NAME with integral type for which vect_is_simple_use is true
16411 and call set_op on this_unprom.
16412
16413 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
16414
16415 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
16416 declaration.
16417 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
16418 definition.
16419 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
16420 to 'aarch_ra_sign_key'.
16421 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
16422 declaration.
16423 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
16424 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
16425 * config/arm/arm.opt: Define.
16426
16427 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
16428
16429 PR tree-optimization/108316
16430 * tree-vect-stmts.cc (get_load_store_type): When using
16431 internal functions for gather/scatter, make sure that the type
16432 of the offset argument is consistent with the offset vector type.
16433
16434 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
16435
16436 Revert:
16437 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
16438
16439 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
16440 * ira.cc (validate_equiv_mem): Check memref address variance.
16441 (update_equiv_regs): Define caller save equivalence for
16442 valid_combine.
16443 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
16444 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
16445 call_save_p. Use caller save equivalence depending on the arg.
16446 (split_reg): Adjust the call.
16447
16448 2023-02-08 Jakub Jelinek <jakub@redhat.com>
16449
16450 * tree.def (SAD_EXPR): Remove outdated comment about missing
16451 WIDEN_MINUS_EXPR.
16452
16453 2023-02-07 Marek Polacek <polacek@redhat.com>
16454
16455 * doc/invoke.texi: Update -fchar8_t documentation.
16456
16457 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
16458
16459 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
16460 * ira.cc (validate_equiv_mem): Check memref address variance.
16461 (update_equiv_regs): Define caller save equivalence for
16462 valid_combine.
16463 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
16464 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
16465 call_save_p. Use caller save equivalence depending on the arg.
16466 (split_reg): Adjust the call.
16467
16468 2023-02-07 Richard Biener <rguenther@suse.de>
16469
16470 PR tree-optimization/26854
16471 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
16472 instead of immediate uses.
16473
16474 2023-02-07 Jakub Jelinek <jakub@redhat.com>
16475
16476 PR tree-optimization/106923
16477 * ipa-split.cc (execute_split_functions): Don't split returns_twice
16478 functions.
16479
16480 2023-02-07 Jakub Jelinek <jakub@redhat.com>
16481
16482 PR tree-optimization/106433
16483 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
16484 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
16485
16486 2023-02-07 Jan Hubicka <jh@suse.cz>
16487
16488 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
16489 for znver4.
16490
16491 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
16492
16493 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
16494 (process_asm): Create a constructor for GCN_STACK_SIZE.
16495 (main): Parse the -mstack-size option.
16496
16497 2023-02-06 Alex Coplan <alex.coplan@arm.com>
16498
16499 PR target/104921
16500 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
16501 Use correct constraint for operand 3.
16502
16503 2023-02-06 Martin Jambor <mjambor@suse.cz>
16504
16505 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
16506
16507 2023-02-06 Xi Ruoyao <xry111@xry111.site>
16508
16509 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
16510 New define_int_iterator.
16511 (bytepick_d_ashift_amount): Likewise.
16512 (bytepick_imm): New define_int_attr.
16513 (bytepick_w_lshiftrt_amount): Likewise.
16514 (bytepick_d_lshiftrt_amount): Likewise.
16515 (bytepick_w_<bytepick_imm>): New define_insn template.
16516 (bytepick_w_<bytepick_imm>_extend): Likewise.
16517 (bytepick_d_<bytepick_imm>): Likewise.
16518 (bytepick_w): Remove unused define_insn.
16519 (bytepick_d): Likewise.
16520 (UNSPEC_BYTEPICK_W): Remove unused unspec.
16521 (UNSPEC_BYTEPICK_D): Likewise.
16522 * config/loongarch/predicates.md (const_0_to_3_operand):
16523 Remove unused define_predicate.
16524 (const_0_to_7_operand): Likewise.
16525
16526 2023-02-06 Jakub Jelinek <jakub@redhat.com>
16527
16528 PR tree-optimization/108655
16529 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
16530 or -fsanitize=unreachable -fsanitize-trap=unreachable return
16531 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
16532
16533 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
16534
16535 * doc/install.texi (Specific): Remove PW32.
16536
16537 2023-02-03 Jakub Jelinek <jakub@redhat.com>
16538
16539 PR tree-optimization/108647
16540 * range-op.cc (operator_equal::op1_range,
16541 operator_not_equal::op1_range): Don't test op2 bound
16542 equality if op2.undefined_p (), instead set_varying.
16543 (operator_lt::op1_range, operator_le::op1_range,
16544 operator_gt::op1_range, operator_ge::op1_range): Return false if
16545 op2.undefined_p ().
16546 (operator_lt::op2_range, operator_le::op2_range,
16547 operator_gt::op2_range, operator_ge::op2_range): Return false if
16548 op1.undefined_p ().
16549
16550 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
16551
16552 PR tree-optimization/108639
16553 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
16554 widest_int.
16555 (irange::operator==): Same.
16556
16557 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
16558
16559 PR tree-optimization/108647
16560 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
16561 (foperator_lt::op2_range): Same.
16562 (foperator_le::op1_range): Same.
16563 (foperator_le::op2_range): Same.
16564 (foperator_gt::op1_range): Same.
16565 (foperator_gt::op2_range): Same.
16566 (foperator_ge::op1_range): Same.
16567 (foperator_ge::op2_range): Same.
16568 (foperator_unordered_lt::op1_range): Same.
16569 (foperator_unordered_lt::op2_range): Same.
16570 (foperator_unordered_le::op1_range): Same.
16571 (foperator_unordered_le::op2_range): Same.
16572 (foperator_unordered_gt::op1_range): Same.
16573 (foperator_unordered_gt::op2_range): Same.
16574 (foperator_unordered_ge::op1_range): Same.
16575 (foperator_unordered_ge::op2_range): Same.
16576
16577 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
16578
16579 PR tree-optimization/107570
16580 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
16581
16582 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
16583
16584 * doc/gm2.texi (Internals): Remove from menu.
16585 (Using): Comment out ifnohtml conditional.
16586 (Documentation): Use gcc url.
16587 (License): Node simplified.
16588 (Copying): New node. Include gpl_v3_without_node.
16589 (Contributing): Node simplified.
16590 (Internals): Commented out.
16591 (Libraries): Node simplified.
16592 (Indices): Ditto.
16593 (Contents): Ditto.
16594 (Functions): Ditto.
16595
16596 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
16597
16598 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
16599 attribute.
16600 (mve_vqshluq_m_n_s<mode>): Likewise.
16601 (mve_vshlq_m_<supf><mode>): Likewise.
16602 (mve_vsriq_m_n_<supf><mode>): Likewise.
16603 (mve_vsubq_m_<supf><mode>): Likewise.
16604
16605 2023-02-03 Martin Jambor <mjambor@suse.cz>
16606
16607 PR ipa/108384
16608 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
16609 when comparing to an IPA-CP value.
16610 (dump_list_of_param_indices): New function.
16611 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
16612 Dump removed candidates using dump_list_of_param_indices.
16613 * ipa-param-manipulation.cc
16614 (ipa_param_body_adjustments::modify_expression): Add assert checking
16615 sizes of a VIEW_CONVERT_EXPR will match.
16616 (ipa_param_body_adjustments::modify_assignment): Likewise.
16617
16618 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
16619
16620 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
16621 * config/riscv/riscv.cc: Ditto.
16622
16623 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16624
16625 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
16626 (sll.vv): Ditto.
16627 (%3,%4): Ditto.
16628 (%3,%v4): Ditto.
16629 * config/riscv/vector.md: Ditto.
16630
16631 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16632
16633 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
16634 * config/riscv/riscv-vector-builtins-bases.cc: New class.
16635 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
16636 (vsra): Ditto.
16637 (vsrl): Ditto.
16638 * config/riscv/riscv-vector-builtins.cc: Ditto.
16639 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
16640
16641 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
16642
16643 * toplev.cc (toplev::main): Only print the version information header
16644 from toplevel main().
16645
16646 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
16647
16648 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
16649 cond_{ashl|ashr|lshr}
16650
16651 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
16652
16653 PR rtl-optimization/108086
16654 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
16655 Adjust size-related commentary accordingly.
16656
16657 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
16658
16659 PR rtl-optimization/108508
16660 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
16661 the splay tree search gives the first clobber in the second group,
16662 make sure that the root of the first clobber group is updated
16663 correctly. Enter the new clobber group into the definition splay
16664 tree.
16665
16666 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
16667
16668 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
16669 Fix finding best match score.
16670
16671 2023-02-02 Jakub Jelinek <jakub@redhat.com>
16672
16673 PR debug/106746
16674 PR rtl-optimization/108463
16675 PR target/108484
16676 * cselib.cc (cselib_current_insn): Move declaration earlier.
16677 (cselib_hasher::equal): For debug only locs, temporarily override
16678 cselib_current_insn to their l->setting_insn for the
16679 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
16680 promote some debug locs.
16681 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
16682 when using cselib call cselib_lookup_from_insn on the address but
16683 don't substitute it.
16684
16685 2023-02-02 Richard Biener <rguenther@suse.de>
16686
16687 PR middle-end/108625
16688 * genmatch.cc (expr::gen_transform): Also disallow resimplification
16689 from pushing to lseq with force_leaf.
16690 (dt_simplify::gen_1): Likewise.
16691
16692 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
16693
16694 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
16695 (struct kernargs): Replace the common content with kernargs_abi.
16696 (struct heap): Delete.
16697 (main): Read GCN_STACK_SIZE envvar.
16698 Allocate space for the device stacks.
16699 Write the new kernargs fields.
16700 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
16701 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
16702 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
16703 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
16704 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
16705 Set up the stacks from the values in the kernargs, not private.
16706 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
16707 (gcn_hsa_declare_function_name): Turn off the private segment.
16708 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
16709 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
16710 * config/gcn/gcn.opt (mstack-size): Change the description.
16711
16712 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
16713
16714 PR target/108443
16715 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
16716 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
16717 addressing MVE predicate modes.
16718 (mve_bool_vec_to_const): Change to represent correct MVE predicate
16719 format.
16720 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
16721 modes.
16722 (arm_vector_mode_supported_p): Likewise.
16723 (arm_mode_to_pred_mode): Add V2QI.
16724 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
16725 qualifier.
16726 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
16727 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
16728 (v2qi_UP): New macro.
16729 (v4bi_UP): New macro.
16730 (v8bi_UP): New macro.
16731 (v16bi_UP): New macro.
16732 (arm_expand_builtin_args): Make it able to expand the new predicate
16733 modes.
16734 * config/arm/arm-modes.def (V2QI): New mode.
16735 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
16736 Pred4x4_t): Remove unused predicate builtin types.
16737 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
16738 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
16739 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
16740 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
16741 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
16742 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
16743 of MODE_VECTOR_BOOL.
16744 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
16745 (MVE_VPRED): Likewise.
16746 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
16747 (MVE_vctp): New mode attribute.
16748 (mode1): Remove.
16749 (VCTPQ): Remove.
16750 (VCTPQ_M): Remove.
16751 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
16752 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
16753 attributes.
16754 (mve_vpnothi): Rename this...
16755 (mve_vpnotv16bi): ... to this.
16756 (mve_vctp<mode1>q_mhi): Rename this...
16757 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
16758 (mve_vldrdq_gather_base_z_<supf>v2di,
16759 mve_vldrdq_gather_offset_z_<supf>v2di,
16760 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
16761 mve_vstrdq_scatter_base_p_<supf>v2di,
16762 mve_vstrdq_scatter_offset_p_<supf>v2di,
16763 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
16764 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
16765 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
16766 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
16767 mve_vldrdq_gather_base_wb_z_<supf>v2di,
16768 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
16769 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
16770 predicates.
16771 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
16772 these...
16773 (VCTP): ... with this.
16774 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
16775 (VCTP_M): ... with this.
16776 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
16777 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
16778
16779 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
16780
16781 PR target/107674
16782 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
16783 (arm_modes_tieable_p): Make MVE predicate modes tieable.
16784 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
16785 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
16786 simplify_subreg to simplify subregs where the outermode is not scalar.
16787
16788 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
16789
16790 PR target/107674
16791 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
16792 new qualifiers parameter and use unsigned short type for MVE predicate.
16793 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
16794 parameter.
16795 (arm_init_crypto_builtins): Likewise.
16796
16797 2023-02-02 Jakub Jelinek <jakub@redhat.com>
16798
16799 PR ipa/107300
16800 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
16801 * internal-fn.def (TRAP): Remove.
16802 * internal-fn.cc (expand_TRAP): Remove.
16803 * tree.cc (build_common_builtin_nodes): Define
16804 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
16805 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
16806 instead of BUILT_IN_TRAP.
16807 * gimple.cc (gimple_build_builtin_unreachable): Remove
16808 emitting internal function for BUILT_IN_TRAP.
16809 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
16810 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
16811 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
16812 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
16813 BUILT_IN_UNREACHABLE_TRAP.
16814 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
16815 * tree-cfg.cc (verify_gimple_call,
16816 pass_warn_function_return::execute): Likewise.
16817 * attribs.cc (decl_attributes): Don't report exclusions on
16818 BUILT_IN_UNREACHABLE_TRAP either.
16819
16820 2023-02-02 liuhongt <hongtao.liu@intel.com>
16821
16822 PR tree-optimization/108601
16823 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
16824 * tree-vect-loop.cc
16825 (vectorizable_nonlinear_induction): Remove
16826 vect_can_peel_nonlinear_iv_p.
16827 (vect_can_peel_nonlinear_iv_p): Don't peel
16828 nonlinear iv(mult or shift) for epilog when vf is not
16829 constant and moved the defination to ..
16830 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
16831 .. Here.
16832
16833 2023-02-02 Jakub Jelinek <jakub@redhat.com>
16834
16835 PR middle-end/108435
16836 * tree-nested.cc (convert_nonlocal_omp_clauses)
16837 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
16838 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
16839 before calling declare_vars.
16840 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
16841 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
16842 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
16843 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
16844
16845 2023-02-01 Tamar Christina <tamar.christina@arm.com>
16846
16847 * common/config/aarch64/aarch64-common.cc
16848 (struct aarch64_option_extension): Add native_detect and document struct
16849 a bit more.
16850 (all_extensions): Set new field native_detect.
16851 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
16852 unused struct.
16853
16854 2023-02-01 Martin Liska <mliska@suse.cz>
16855
16856 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
16857 value if set.
16858
16859 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
16860
16861 PR tree-optimization/108356
16862 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
16863 do a search of the DOM tree for a range.
16864
16865 2023-02-01 Martin Liska <mliska@suse.cz>
16866
16867 PR ipa/108509
16868 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
16869 ony non-null values.
16870 * ipa.cc (walk_polymorphic_call_targets): Likewise.
16871
16872 2023-02-01 Martin Liska <mliska@suse.cz>
16873
16874 PR driver/108572
16875 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
16876 -gz=zstd.
16877
16878 2023-02-01 Jakub Jelinek <jakub@redhat.com>
16879
16880 PR debug/108573
16881 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
16882 subregs in DEBUG_INSNs.
16883
16884 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
16885
16886 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
16887
16888 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
16889
16890 * config/s390/s390.cc (s390_restore_gpr_p): New function.
16891 (s390_preserve_gpr_arg_in_range_p): New function.
16892 (s390_preserve_gpr_arg_p): New function.
16893 (s390_preserve_fpr_arg_p): New function.
16894 (s390_register_info_stdarg_fpr): Rename to ...
16895 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
16896 (s390_register_info_stdarg_gpr): Rename to ...
16897 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
16898 (s390_register_info): Use the renamed functions above.
16899 (s390_optimize_register_info): Likewise.
16900 (save_fpr): Generate CFI for -mpreserve-args.
16901 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
16902 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
16903 (s390_optimize_prologue): Likewise.
16904 * config/s390/s390.opt: New option -mpreserve-args
16905
16906 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
16907
16908 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
16909 (restore_gprs): Likewise.
16910 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
16911 frame pointer if a frame-pointer is used.
16912 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
16913 * config/s390/s390.md (stack_tie): Add a register operand and
16914 rename to ...
16915 (@stack_tie<mode>): ... this.
16916
16917 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
16918
16919 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
16920 EMIT_CFI parameter.
16921 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
16922 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
16923
16924 2023-02-01 Richard Biener <rguenther@suse.de>
16925
16926 PR middle-end/108500
16927 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
16928 with tree traversal algorithm.
16929
16930 2023-02-01 Jason Merrill <jason@redhat.com>
16931
16932 * doc/invoke.texi: Document -Wno-changes-meaning.
16933
16934 2023-02-01 David Malcolm <dmalcolm@redhat.com>
16935
16936 * doc/invoke.texi (Static Analyzer Options): Add notes about
16937 limitations of -fanalyzer.
16938
16939 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
16940
16941 * config/riscv/constraints.md (vj): New.
16942 (vk): Ditto
16943 * config/riscv/iterators.md: Add more opcode.
16944 * config/riscv/predicates.md (vector_arith_operand): New.
16945 (vector_neg_arith_operand): New.
16946 (vector_shift_operand): New.
16947 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
16948 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
16949 (vsub): Ditto.
16950 (vand): Ditto.
16951 (vor): Ditto.
16952 (vxor): Ditto.
16953 (vsll): Ditto.
16954 (vsra): Ditto.
16955 (vsrl): Ditto.
16956 (vmin): Ditto.
16957 (vmax): Ditto.
16958 (vminu): Ditto.
16959 (vmaxu): Ditto.
16960 (vmul): Ditto.
16961 (vdiv): Ditto.
16962 (vrem): Ditto.
16963 (vdivu): Ditto.
16964 (vremu): Ditto.
16965 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
16966 (vsub): Ditto.
16967 (vand): Ditto.
16968 (vor): Ditto.
16969 (vxor): Ditto.
16970 (vsll): Ditto.
16971 (vsra): Ditto.
16972 (vsrl): Ditto.
16973 (vmin): Ditto.
16974 (vmax): Ditto.
16975 (vminu): Ditto.
16976 (vmaxu): Ditto.
16977 (vmul): Ditto.
16978 (vdiv): Ditto.
16979 (vrem): Ditto.
16980 (vdivu): Ditto.
16981 (vremu): Ditto.
16982 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
16983 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
16984 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
16985 (DEF_RVV_U_OPS): New.
16986 (rvv_arg_type_info::get_base_vector_type): Handle
16987 RVV_BASE_shift_vector.
16988 (rvv_arg_type_info::get_tree_type): Ditto.
16989 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
16990 RVV_BASE_shift_vector.
16991 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
16992 * config/riscv/vector-iterators.md: Handle more opcode.
16993 * config/riscv/vector.md (@pred_<optab><mode>): New.
16994
16995 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
16996
16997 PR target/108589
16998 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
16999 REG_P on SET_DEST.
17000
17001 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
17002
17003 PR tree-optimization/108608
17004 * tree-vect-loop.cc (vect_transform_reduction): Handle single
17005 def-use cycles that involve function calls rather than tree codes.
17006
17007 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
17008
17009 PR tree-optimization/108385
17010 * gimple-range-gori.cc (gori_compute::compute_operand_range):
17011 Allow VARYING computations to continue if there is a relation.
17012 * range-op.cc (pointer_plus_operator::op2_range): New.
17013
17014 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
17015
17016 PR tree-optimization/108359
17017 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
17018 (range_operator::fold_range): If op1 is equivalent to op2 then
17019 invoke new fold_in_parts_equiv to operate on sub-components.
17020 * range-op.h (wi_fold_in_parts_equiv): New prototype.
17021
17022 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
17023
17024 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
17025 not abort calculations if there is a valid relation available.
17026 (gori_compute::refine_using_relation): Pass correct relation trio.
17027 (gori_compute::compute_operand1_range): Create trio and use it.
17028 (gori_compute::compute_operand2_range): Ditto.
17029 * range-op.cc (operator_plus::op1_range): Use correct trio member.
17030 (operator_minus::op1_range): Use correct trio member.
17031 * value-relation.cc (value_relation::create_trio): New.
17032 * value-relation.h (value_relation::create_trio): New prototype.
17033
17034 2023-01-31 Jakub Jelinek <jakub@redhat.com>
17035
17036 PR target/108599
17037 * config/i386/i386-expand.cc
17038 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
17039 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
17040 equal to bitsize of mode.
17041
17042 2023-01-31 Jakub Jelinek <jakub@redhat.com>
17043
17044 PR rtl-optimization/108596
17045 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
17046 ends with asm goto and has a crossing fallthrough edge to the same bb
17047 that contains at least one of its labels by restoring EDGE_CROSSING
17048 flag even on possible edge from cur_bb to new_bb successor.
17049
17050 2023-01-31 Jakub Jelinek <jakub@redhat.com>
17051
17052 PR c++/105593
17053 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
17054 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
17055 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
17056 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
17057 uninitialized automatic variable __W.
17058
17059 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
17060
17061 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
17062
17063 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17064
17065 * config/riscv/riscv-protos.h (get_vector_mode): New function.
17066 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
17067 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
17068 (class loadstore): Adjust for indexed loads/stores support.
17069 (BASE): Ditto.
17070 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
17071 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
17072 (vluxei16): Ditto.
17073 (vluxei32): Ditto.
17074 (vluxei64): Ditto.
17075 (vloxei8): Ditto.
17076 (vloxei16): Ditto.
17077 (vloxei32): Ditto.
17078 (vloxei64): Ditto.
17079 (vsuxei8): Ditto.
17080 (vsuxei16): Ditto.
17081 (vsuxei32): Ditto.
17082 (vsuxei64): Ditto.
17083 (vsoxei8): Ditto.
17084 (vsoxei16): Ditto.
17085 (vsoxei32): Ditto.
17086 (vsoxei64): Ditto.
17087 * config/riscv/riscv-vector-builtins-shapes.cc
17088 (struct indexed_loadstore_def): New class.
17089 (SHAPE): Ditto.
17090 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
17091 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
17092 for indexed loads/stores support.
17093 (check_required_extensions): Ditto.
17094 (rvv_arg_type_info::get_base_vector_type): New function.
17095 (rvv_arg_type_info::get_tree_type): Ditto.
17096 (function_builder::add_unique_function): Adjust for indexed loads/stores
17097 support.
17098 (function_expander::use_exact_insn): New function.
17099 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
17100 indexed loads/stores support.
17101 (struct rvv_arg_type_info): Ditto.
17102 (function_expander::index_mode): New function.
17103 (function_base::apply_tail_policy_p): Ditto.
17104 (function_base::apply_mask_policy_p): Ditto.
17105 * config/riscv/vector-iterators.md (unspec): New unspec.
17106 * config/riscv/vector.md (unspec): Ditto.
17107 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
17108 pattern.
17109 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
17110 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
17111 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
17112 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
17113 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
17114 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
17115 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
17116 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
17117 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
17118 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
17119 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
17120 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
17121 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
17122
17123 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
17124
17125 * config.gcc: Recognize x86_64-*-gnu* targets and include
17126 i386/gnu64.h.
17127 * config/i386/gnu64.h: Define configuration for new target
17128 including ld.so location.
17129
17130 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
17131
17132 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
17133 ampere1a to include SM4.
17134
17135 2023-01-30 Andrew Pinski <apinski@marvell.com>
17136
17137 PR tree-optimization/108582
17138 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
17139 for middlebb to have no phi nodes.
17140
17141 2023-01-30 Richard Biener <rguenther@suse.de>
17142
17143 PR tree-optimization/108574
17144 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
17145 sameval and def, ignore the equivalence if there's the
17146 danger of oscillating between two values.
17147
17148 2023-01-30 Andreas Schwab <schwab@suse.de>
17149
17150 * common/config/riscv/riscv-common.cc
17151 (riscv_option_optimization_table)
17152 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
17153 -fasynchronous-unwind-tables and -funwind-tables.
17154 * config.gcc (riscv*-*-linux*): Define
17155 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
17156
17157 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
17158
17159 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
17160 value of includedir.
17161
17162 2023-01-30 Richard Biener <rguenther@suse.de>
17163
17164 PR ipa/108511
17165 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
17166 assert.
17167
17168 2023-01-30 liuhongt <hongtao.liu@intel.com>
17169
17170 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
17171 * doc/invoke.texi: Ditto.
17172
17173 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
17174
17175 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
17176 (stmt_may_terminate_function_p): If assuming return or EH
17177 volatile asm is safe.
17178 (find_always_executed_bbs): Fix handling of terminating BBS and
17179 infinite loops; add debug output.
17180 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
17181
17182 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
17183
17184 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
17185 off-by-one in checking the permissible shift-amount.
17186
17187 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
17188
17189 * doc/extend.texi (Named Address Spaces): Update link to the
17190 AVR-Libc manual.
17191
17192 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
17193
17194 * doc/standards.texi (Standards): Fix markup.
17195
17196 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
17197
17198 * doc/standards.texi (Standards): Update link to Objective-C book.
17199
17200 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
17201
17202 * doc/invoke.texi (Instrumentation Options): Update reference to
17203 AddressSanitizer.
17204
17205 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
17206
17207 * doc/standards.texi: Update Go1 link.
17208
17209 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17210
17211 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
17212 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
17213 Support vlse/vsse.
17214 (BASE): Ditto.
17215 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17216 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
17217 (vsse): New class.
17218 * config/riscv/riscv-vector-builtins.cc
17219 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
17220 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
17221 (@pred_strided_store<mode>): Ditto.
17222
17223 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17224
17225 * config/riscv/vector.md (tail_policy_op_idx): Remove.
17226 (mask_policy_op_idx): Remove.
17227 (avl_type_op_idx): Remove.
17228
17229 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
17230
17231 PR tree-optimization/96373
17232 * tree.h (sign_mask_for): Declare.
17233 * tree.cc (sign_mask_for): New function.
17234 (signed_or_unsigned_type_for): For vector types, try to use the
17235 related_int_vector_mode.
17236 * genmatch.cc (commutative_op): Handle conditional internal functions.
17237 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
17238
17239 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
17240
17241 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
17242 Use the likely minimum VF when bounding the denominators to
17243 the estimated number of iterations.
17244
17245 2023-01-27 Richard Biener <rguenther@suse.de>
17246
17247 PR target/55522
17248 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
17249 and -Ofast FP environment side-effects.
17250
17251 2023-01-27 Richard Biener <rguenther@suse.de>
17252
17253 PR target/55522
17254 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
17255 Don't add crtfastmath.o for -shared.
17256
17257 2023-01-27 Richard Biener <rguenther@suse.de>
17258
17259 PR target/55522
17260 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
17261 for -shared.
17262
17263 2023-01-27 Richard Biener <rguenther@suse.de>
17264
17265 PR target/55522
17266 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
17267 crtfastmath.o for -shared.
17268
17269 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
17270
17271 PR tree-optimization/108306
17272 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
17273 varying for shifts that are always out of void range.
17274 (operator_rshift::fold_range): Return [0, 0] not
17275 varying for shifts that are always out of void range.
17276
17277 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
17278
17279 PR tree-optimization/108447
17280 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
17281 Do not attempt to fold HONOR_NAN types.
17282
17283 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17284
17285 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
17286 Remove _m suffix for "vop_m" C++ overloaded API name.
17287
17288 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17289
17290 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
17291 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
17292 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
17293 (vsm): Ditto.
17294 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
17295 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
17296 (vbool64_t): Ditto.
17297 (vbool32_t): Ditto.
17298 (vbool16_t): Ditto.
17299 (vbool8_t): Ditto.
17300 (vbool4_t): Ditto.
17301 (vbool2_t): Ditto.
17302 (vbool1_t): Ditto.
17303 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
17304 (rvv_arg_type_info::get_tree_type): Ditto.
17305 (function_expander::use_contiguous_load_insn): Ditto.
17306 * config/riscv/vector.md (@pred_store<mode>): Ditto.
17307
17308 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17309
17310 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
17311 (vsetvl_discard_result_insn_p): New function.
17312 (reg_killed_by_bb_p): rename to find_reg_killed_by.
17313 (find_reg_killed_by): New name.
17314 (get_vl): allow it to be called by more functions.
17315 (has_vsetvl_killed_avl_p): Add condition.
17316 (get_avl): allow it to be called by more functions.
17317 (insn_should_be_added_p): New function.
17318 (get_all_nonphi_defs): Refine function.
17319 (get_all_sets): Ditto.
17320 (get_same_bb_set): New function.
17321 (any_insn_in_bb_p): Ditto.
17322 (any_set_in_bb_p): Ditto.
17323 (get_vl_vtype_info): Add VLMAX forward optimization.
17324 (source_equal_p): Fix issues.
17325 (extract_single_source): Refine.
17326 (avl_info::multiple_source_equal_p): New function.
17327 (avl_info::operator==): Adjust for final version.
17328 (vl_vtype_info::operator==): Ditto.
17329 (vl_vtype_info::same_avl_p): Ditto.
17330 (vector_insn_info::parse_insn): Ditto.
17331 (vector_insn_info::available_p): New function.
17332 (vector_insn_info::merge): Adjust for final version.
17333 (vector_insn_info::dump): Add hard_empty.
17334 (pass_vsetvl::hard_empty_block_p): New function.
17335 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
17336 (pass_vsetvl::forward_demand_fusion): Ditto.
17337 (pass_vsetvl::demand_fusion): Ditto.
17338 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
17339 (pass_vsetvl::compute_local_properties): Adjust for final version.
17340 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
17341 (pass_vsetvl::refine_vsetvls): Ditto.
17342 (pass_vsetvl::commit_vsetvls): Ditto.
17343 (pass_vsetvl::propagate_avl): New function.
17344 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
17345 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
17346
17347 2023-01-27 Jakub Jelinek <jakub@redhat.com>
17348
17349 PR other/108560
17350 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
17351 from size_t to int.
17352
17353 2023-01-27 Jakub Jelinek <jakub@redhat.com>
17354
17355 PR ipa/106061
17356 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
17357 redirection of calls to __builtin_trap in addition to redirection
17358 to __builtin_unreachable.
17359
17360 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17361
17362 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
17363
17364 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17365
17366 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
17367 (emit_vsetvl_insn): Ditto.
17368
17369 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17370
17371 * config/riscv/vector.md: Fix constraints.
17372
17373 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17374
17375 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
17376
17377 2023-01-27 Patrick Palka <ppalka@redhat.com>
17378 Jakub Jelinek <jakub@redhat.com>
17379
17380 * tree-core.h (tree_code_type, tree_code_length): For
17381 C++17 and later, add inline keyword, otherwise don't define
17382 the arrays, but declare extern arrays.
17383 * tree.cc (tree_code_type, tree_code_length): Define these
17384 arrays for C++14 and older.
17385
17386 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17387
17388 * config/riscv/riscv-vsetvl.h: Change it into public.
17389
17390 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17391
17392 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
17393 pass.
17394
17395 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17396
17397 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
17398
17399 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17400
17401 * config/riscv/vector.md: Fix incorrect attributes.
17402
17403 2023-01-27 Richard Biener <rguenther@suse.de>
17404
17405 PR target/55522
17406 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
17407 Don't add crtfastmath.o for -shared.
17408
17409 2023-01-27 Alexandre Oliva <oliva@gnu.org>
17410
17411 * doc/options.texi (option, RejectNegative): Mention that
17412 -g-started options are also implicitly negatable.
17413
17414 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
17415
17416 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
17417 Use get_typenode_from_name to get fixed-width integer type
17418 nodes.
17419 * config/riscv/riscv-vector-builtins.def: Update define with
17420 fixed-width integer type nodes.
17421
17422 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17423
17424 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
17425 (real_insn_and_same_bb_p): New function.
17426 (same_bb_and_after_or_equal_p): Remove it.
17427 (before_p): New function.
17428 (reg_killed_by_bb_p): Ditto.
17429 (has_vsetvl_killed_avl_p): Ditto.
17430 (get_vl): Move location so that we can call it.
17431 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
17432 (available_occurrence_p): Ditto.
17433 (dominate_probability_p): Remove it.
17434 (can_backward_propagate_p): Remove it.
17435 (get_all_nonphi_defs): New function.
17436 (get_all_predecessors): Ditto.
17437 (any_insn_in_bb_p): Ditto.
17438 (insert_vsetvl): Adjust AVL REG.
17439 (source_equal_p): New function.
17440 (extract_single_source): Ditto.
17441 (avl_info::single_source_equal_p): Ditto.
17442 (avl_info::operator==): Adjust for AVL=REG.
17443 (vl_vtype_info::same_avl_p): Ditto.
17444 (vector_insn_info::set_demand_info): Remove it.
17445 (vector_insn_info::compatible_p): Adjust for AVL=REG.
17446 (vector_insn_info::compatible_avl_p): New function.
17447 (vector_insn_info::merge): Adjust AVL=REG.
17448 (vector_insn_info::dump): Ditto.
17449 (pass_vsetvl::merge_successors): Remove it.
17450 (enum fusion_type): New enum.
17451 (pass_vsetvl::get_backward_fusion_type): New function.
17452 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
17453 (pass_vsetvl::forward_demand_fusion): Ditto.
17454 (pass_vsetvl::demand_fusion): Ditto.
17455 (pass_vsetvl::prune_expressions): Ditto.
17456 (pass_vsetvl::compute_local_properties): Ditto.
17457 (pass_vsetvl::cleanup_vsetvls): Ditto.
17458 (pass_vsetvl::commit_vsetvls): Ditto.
17459 (pass_vsetvl::init): Ditto.
17460 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
17461 (enum merge_type): New enum.
17462
17463 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17464
17465 * config/riscv/riscv-vsetvl.cc
17466 (vector_infos_manager::vector_infos_manager): Add probability.
17467 (vector_infos_manager::dump): Ditto.
17468 (pass_vsetvl::compute_probabilities): Ditto.
17469 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
17470
17471 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17472
17473 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
17474 (vector_insn_info::merge): Ditto.
17475 (vector_insn_info::dump): Ditto.
17476 (pass_vsetvl::merge_successors): Ditto.
17477 (pass_vsetvl::backward_demand_fusion): Ditto.
17478 (pass_vsetvl::forward_demand_fusion): Ditto.
17479 (pass_vsetvl::commit_vsetvls): Ditto.
17480 * config/riscv/riscv-vsetvl.h: Ditto.
17481
17482 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17483
17484 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
17485 rinsn.
17486
17487 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17488
17489 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
17490
17491 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17492
17493 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
17494 Add pre-check for redundant flow.
17495
17496 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17497
17498 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
17499 (vector_infos_manager::free_bitmap_vectors): Ditto.
17500 (pass_vsetvl::pre_vsetvl): Adjust codes.
17501 * config/riscv/riscv-vsetvl.h: New function declaration.
17502
17503 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17504
17505 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
17506 (vector_insn_info::set_demand_info): New function.
17507 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
17508 (pass_vsetvl::merge_successors): Ditto.
17509 (pass_vsetvl::compute_global_backward_infos): Ditto.
17510 (pass_vsetvl::backward_demand_fusion): Ditto.
17511 (pass_vsetvl::forward_demand_fusion): Ditto.
17512 (pass_vsetvl::demand_fusion): New function.
17513 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
17514 * config/riscv/riscv-vsetvl.h: New function declaration.
17515
17516 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17517
17518 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
17519
17520 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17521
17522 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
17523 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
17524
17525 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17526
17527 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
17528 (backward_propagate_worthwhile_p): Fix non-worthwhile.
17529
17530 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17531
17532 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
17533
17534 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17535
17536 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
17537 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
17538 (pass_vsetvl::commit_vsetvls): Ditto.
17539 * config/riscv/riscv-vsetvl.h: New function declaration.
17540
17541 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17542
17543 * config/riscv/vector.md:
17544
17545 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17546
17547 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
17548 pred_store for vse.
17549 * config/riscv/riscv-vector-builtins.cc
17550 (function_expander::add_mem_operand): Refine function.
17551 (function_expander::use_contiguous_load_insn): Adjust new
17552 implementation.
17553 (function_expander::use_contiguous_store_insn): Ditto.
17554 * config/riscv/riscv-vector-builtins.h: Refine function.
17555 * config/riscv/vector.md (@pred_store<mode>): New pattern.
17556
17557 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
17558
17559 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
17560
17561 2023-01-26 Marek Polacek <polacek@redhat.com>
17562
17563 PR middle-end/108543
17564 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
17565 if it was previously set.
17566
17567 2023-01-26 Jakub Jelinek <jakub@redhat.com>
17568
17569 PR tree-optimization/108540
17570 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
17571 are singletons, use range_true even if op1 != op2
17572 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
17573 even if intersection of the ranges is empty and one has
17574 zero low bound and another zero high bound, use range_true_and_false
17575 rather than range_false.
17576 (foperator_not_equal::fold_range): If both op1 and op2
17577 are singletons, use range_false even if op1 != op2
17578 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
17579 even if intersection of the ranges is empty and one has
17580 zero low bound and another zero high bound, use range_true_and_false
17581 rather than range_true.
17582
17583 2023-01-26 Jakub Jelinek <jakub@redhat.com>
17584
17585 * value-relation.cc (kind_string): Add const.
17586 (rr_negate_table, rr_swap_table, rr_intersect_table,
17587 rr_union_table, rr_transitive_table): Add static const, change
17588 element type from relation_kind to unsigned char.
17589 (relation_negate, relation_swap, relation_intersect, relation_union,
17590 relation_transitive): Cast rr_*_table element to relation_kind.
17591 (relation_to_code): Add static const.
17592 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
17593
17594 2023-01-26 Richard Biener <rguenther@suse.de>
17595
17596 PR tree-optimization/108547
17597 * gimple-predicate-analysis.cc (value_sat_pred_p):
17598 Use widest_int.
17599
17600 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
17601
17602 PR tree-optimization/108522
17603 * tree-object-size.cc (compute_object_offset): Make EXPR
17604 argument non-const. Call component_ref_field_offset.
17605
17606 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17607
17608 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
17609 FEATURE_STRING field.
17610
17611 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
17612
17613 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
17614
17615 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
17616
17617 PR modula2/102343
17618 PR modula2/108182
17619 * gcc.cc: Provide default specs for Modula-2 so that when the
17620 language is not built-in better diagnostics are emitted for
17621 attempts to use .mod or .m2i file extensions.
17622
17623 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
17624
17625 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
17626
17627 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
17628
17629 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
17630
17631 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
17632
17633 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
17634 Fix spacing.
17635
17636 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
17637
17638 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
17639
17640 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
17641
17642 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
17643
17644 2023-01-25 Richard Biener <rguenther@suse.de>
17645
17646 PR tree-optimization/108523
17647 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
17648 backedge value for the result when using predication to
17649 prove equivalence.
17650
17651 2023-01-25 Richard Biener <rguenther@suse.de>
17652
17653 * doc/lto.texi (Command line options): Reword and update reference
17654 to removed lto_read_all_file_options.
17655
17656 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
17657
17658 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
17659 tests.
17660
17661 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
17662
17663 * doc/contrib.texi: Add Jose E. Marchesi.
17664
17665 2023-01-25 Jakub Jelinek <jakub@redhat.com>
17666
17667 PR tree-optimization/108498
17668 * gimple-ssa-store-merging.cc (class store_operand_info):
17669 End coment with full stop rather than comma.
17670 (split_group): Likewise.
17671 (merged_store_group::apply_stores): Clear string_concatenation if
17672 start or end aren't on a byte boundary.
17673
17674 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
17675 Jakub Jelinek <jakub@redhat.com>
17676
17677 PR tree-optimization/108522
17678 * tree-object-size.cc (compute_object_offset): Use
17679 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
17680
17681 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17682
17683 * config/xtensa/xtensa.md:
17684 Fix exit from loops detecting references before overwriting in the
17685 split pattern.
17686
17687 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
17688
17689 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
17690 do elimination but only for hard register.
17691 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
17692 calls of get_hard_regno.
17693
17694 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
17695
17696 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
17697 of CPU version.
17698
17699 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
17700
17701 PR target/108177
17702 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
17703 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
17704 as input operand.
17705
17706 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
17707
17708 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
17709 and only include 'csky/t-csky-linux' when enable multilib.
17710 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
17711 define it when disable multilib.
17712
17713 2023-01-24 Richard Biener <rguenther@suse.de>
17714
17715 PR tree-optimization/108500
17716 * dominance.h (calculate_dominance_info): Add parameter
17717 to indicate fast-query compute, defaulted to true.
17718 * dominance.cc (calculate_dominance_info): Honor
17719 fast-query compute parameter.
17720 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
17721 not compute the dominator fast-query DFS numbers.
17722
17723 2023-01-24 Eric Biggers <ebiggers@google.com>
17724
17725 PR bootstrap/90543
17726 * optc-save-gen.awk: Fix copy-and-paste error.
17727
17728 2023-01-24 Jakub Jelinek <jakub@redhat.com>
17729
17730 PR c++/108474
17731 * cgraphbuild.cc: Include gimplify.h.
17732 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
17733 their corresponding DECL_VALUE_EXPR expressions after unsharing.
17734
17735 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
17736
17737 PR target/108505
17738 * config.gcc (tm_file): Move the variable out of loop.
17739
17740 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
17741 Yang Yujie <yangyujie@loongson.cn>
17742
17743 PR target/107731
17744 * config/loongarch/loongarch.cc (loongarch_classify_address):
17745 Add precessint for CONST_INT.
17746 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
17747 (loongarch_print_operand): Increase the processing of '%c'.
17748 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
17749 And port the public operand modifiers information to this document.
17750
17751 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
17752
17753 * doc/invoke.texi (-mbranch-protection): Update documentation.
17754
17755 2023-01-23 Richard Biener <rguenther@suse.de>
17756
17757 PR target/55522
17758 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
17759 for -shared.
17760 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
17761 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
17762 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
17763 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
17764
17765 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
17766
17767 * config/arm/aout.h (ra_auth_code): Add entry in enum.
17768 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
17769 to dwarf frame expression.
17770 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
17771 (arm_expand_prologue): Update frame related information and reg notes
17772 for pac/pacbit insn.
17773 (arm_regno_class): Check for pac pseudo reigster.
17774 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
17775 (arm_init_machine_status): Set pacspval_needed to zero.
17776 (arm_debugger_regno): Check for PAC register.
17777 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
17778 register.
17779 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
17780 (arm_unwind_emit): Update REG_CFA_REGISTER case._
17781 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
17782 (DWARF_PAC_REGNUM): Define.
17783 (IS_PAC_REGNUM): Likewise.
17784 (enum reg_class): Add PAC_REG entry.
17785 (machine_function): Add pacbti_needed state to structure.
17786 * config/arm/arm.md (RA_AUTH_CODE): Define.
17787
17788 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
17789
17790 * config.gcc ($tm_file): Update variable.
17791 * config/arm/arm-mlib.h: Create new header file.
17792 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
17793 multilib arch directory.
17794 (MULTILIB_REUSE): Add multilib reuse rules.
17795 (MULTILIB_MATCHES): Add multilib match rules.
17796
17797 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
17798
17799 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
17800 * config/arm/arm-tables.opt: Regenerate.
17801 * config/arm/arm-tune.md: Likewise.
17802 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
17803 * (-mfix-cmse-cve-2021-35465): Likewise.
17804
17805 2023-01-23 Richard Biener <rguenther@suse.de>
17806
17807 PR tree-optimization/108482
17808 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
17809 .LOOP_DIST_ALIAS calls.
17810
17811 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17812
17813 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
17814 * config/arm/arm-protos.h: Update.
17815 * config/arm/aarch-common-protos.h: Declare
17816 'aarch_bti_arch_check'.
17817 * config/arm/arm.cc (aarch_bti_enabled) Update.
17818 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
17819 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
17820 * config/arm/arm.md (bti_nop): New insn.
17821 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
17822 (aarch-bti-insert.o): New target.
17823 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
17824 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
17825 compatibility.
17826 (gate): Make use of 'aarch_bti_arch_check'.
17827 * config/arm/arm-passes.def: New file.
17828 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
17829
17830 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17831
17832 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
17833 'aarch-bti-insert.o'.
17834 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
17835 proto.
17836 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
17837 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
17838 (aarch64_output_mi_thunk)
17839 (aarch64_print_patchable_function_entry)
17840 (aarch64_file_end_indicate_exec_stack): Update renamed function
17841 calls to renamed functions.
17842 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
17843 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
17844 target.
17845 * config/aarch64/aarch64-bti-insert.cc: Delete.
17846 * config/arm/aarch-bti-insert.cc: New file including and
17847 generalizing code from aarch64-bti-insert.cc.
17848 * config/arm/aarch-common-protos.h: Update.
17849
17850 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17851
17852 * config/arm/arm.h (arm_arch8m_main): Declare it.
17853 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
17854 Declare it.
17855 * config/arm/arm.cc (arm_arch8m_main): Define it.
17856 (arm_option_reconfigure_globals): Set arm_arch8m_main.
17857 (arm_compute_frame_layout, arm_expand_prologue)
17858 (thumb2_expand_return, arm_expand_epilogue)
17859 (arm_conditional_register_usage): Update for pac codegen.
17860 (arm_current_function_pac_enabled_p): New function.
17861 (aarch_bti_enabled) New function.
17862 (use_return_insn): Return zero when pac is enabled.
17863 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
17864 Add new patterns.
17865 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
17866 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
17867
17868 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17869
17870 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
17871 mbranch-protection.
17872
17873 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17874 Tejas Belagod <tbelagod@arm.com>
17875
17876 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
17877 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
17878
17879 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17880 Tejas Belagod <tbelagod@arm.com>
17881 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
17882
17883 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
17884 new pseudo register class _UVRSC_PAC.
17885
17886 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17887 Tejas Belagod <tbelagod@arm.com>
17888
17889 * config/arm/arm-c.cc (arm_cpu_builtins): Define
17890 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
17891 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
17892
17893 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17894 Tejas Belagod <tbelagod@arm.com>
17895
17896 * doc/sourcebuild.texi: Document arm_pacbti_hw.
17897
17898 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17899 Tejas Belagod <tbelagod@arm.com>
17900 Richard Earnshaw <Richard.Earnshaw@arm.com>
17901
17902 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
17903 -mbranch-protection option and initialize appropriate data structures.
17904 * config/arm/arm.opt (-mbranch-protection): New option.
17905 * doc/invoke.texi (Arm Options): Document it.
17906
17907 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17908 Tejas Belagod <tbelagod@arm.com>
17909
17910 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
17911 * config/arm/arm-cpus.in (pacbti): New feature.
17912 * doc/invoke.texi (Arm Options): Document it.
17913
17914 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
17915 Tejas Belagod <tbelagod@arm.com>
17916
17917 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
17918 (all_architectures): Fix comment.
17919 (aarch64_parse_extension): Rename return type, enum value names.
17920 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
17921 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
17922 Also rename corresponding enum values.
17923 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
17924 out aarch64_function_type and move it to common code as
17925 aarch_function_type in aarch-common.h.
17926 * config/aarch64/aarch64-protos.h: Include common types header,
17927 move out types aarch64_parse_opt_result and aarch64_key_type to
17928 aarch-common.h
17929 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
17930 and functions out into aarch-common.h and aarch-common.cc. Fix up
17931 all the name changes resulting from the move.
17932 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
17933 and enum value.
17934 * config/aarch64/aarch64.opt: Include aarch-common.h to import
17935 type move. Fix up name changes from factoring out common code and
17936 data.
17937 * config/arm/aarch-common-protos.h: Export factored out routines to both
17938 backends.
17939 * config/arm/aarch-common.cc: Include newly factored out types.
17940 Move all mbranch-protection code and data structures from
17941 aarch64.cc.
17942 * config/arm/aarch-common.h: New header that declares types shared
17943 between aarch32 and aarch64 backends.
17944 * config/arm/arm-protos.h: Declare types and variables that are
17945 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
17946 aarch_ra_sign_scope and aarch_enable_bti.
17947 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
17948 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
17949 * config/arm/arm.cc: Add missing includes.
17950
17951 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
17952
17953 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
17954
17955 2023-01-23 Richard Biener <rguenther@suse.de>
17956
17957 PR tree-optimization/108449
17958 * cgraphunit.cc (check_global_declaration): Do not turn
17959 undefined statics into externs.
17960
17961 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
17962
17963 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
17964 and HI input modes.
17965 * config/pru/pru.md (clz): Fix generated code for QI and HI
17966 input modes.
17967
17968 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
17969
17970 * config/v850/v850.cc (v850_select_section): Put const volatile
17971 objects into read-only sections.
17972
17973 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
17974
17975 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
17976 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
17977 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
17978
17979 2023-01-20 Jakub Jelinek <jakub@redhat.com>
17980
17981 PR tree-optimization/108457
17982 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
17983 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
17984 argument instead of a temporary. Formatting fixes.
17985
17986 2023-01-19 Jakub Jelinek <jakub@redhat.com>
17987
17988 PR tree-optimization/108447
17989 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
17990 (relation_tests): Add self-tests for relation_{intersect,union}
17991 commutativity.
17992 * selftest.h (relation_tests): Declare.
17993 * function-tests.cc (test_ranges): Call it.
17994
17995 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
17996
17997 PR target/108436
17998 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
17999 invalid third argument to __builtin_ia32_prefetch.
18000
18001 2023-01-19 Jakub Jelinek <jakub@redhat.com>
18002
18003 PR middle-end/108459
18004 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
18005 than fold_unary for NEGATE_EXPR.
18006
18007 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
18008
18009 PR target/108411
18010 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
18011 comment. Move assert about alignment a bit later.
18012
18013 2023-01-19 Jakub Jelinek <jakub@redhat.com>
18014
18015 PR tree-optimization/108440
18016 * tree-ssa-forwprop.cc: Include gimple-range.h.
18017 (simplify_rotate): For the forms with T2 wider than T and shift counts of
18018 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
18019 to B. For the forms with T2 wider than T and shift counts of
18020 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
18021 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
18022 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
18023 pass specific ranger instead of get_global_range_query.
18024 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
18025 been created.
18026
18027 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18028
18029 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
18030 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
18031 the pattern.
18032 (aarch64_simd_vec_copy_lane<mode>): Likewise.
18033 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
18034
18035 2023-01-19 Alexandre Oliva <oliva@adacore.com>
18036
18037 PR debug/106746
18038 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
18039 within debug insns.
18040
18041 2023-01-18 Martin Jambor <mjambor@suse.cz>
18042
18043 PR ipa/107944
18044 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
18045 lcone_of chain also do not need the body.
18046
18047 2023-01-18 Richard Biener <rguenther@suse.de>
18048
18049 Revert:
18050 2022-12-16 Richard Biener <rguenther@suse.de>
18051
18052 PR middle-end/108086
18053 * tree-inline.cc (remap_ssa_name): Do not unshare the
18054 result from the decl_map.
18055
18056 2023-01-18 Murray Steele <murray.steele@arm.com>
18057
18058 PR target/108442
18059 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
18060 function.
18061 (__arm_vst1q_p_s8): Likewise.
18062 (__arm_vld1q_z_u8): Likewise.
18063 (__arm_vld1q_z_s8): Likewise.
18064 (__arm_vst1q_p_u16): Likewise.
18065 (__arm_vst1q_p_s16): Likewise.
18066 (__arm_vld1q_z_u16): Likewise.
18067 (__arm_vld1q_z_s16): Likewise.
18068 (__arm_vst1q_p_u32): Likewise.
18069 (__arm_vst1q_p_s32): Likewise.
18070 (__arm_vld1q_z_u32): Likewise.
18071 (__arm_vld1q_z_s32): Likewise.
18072 (__arm_vld1q_z_f16): Likewise.
18073 (__arm_vst1q_p_f16): Likewise.
18074 (__arm_vld1q_z_f32): Likewise.
18075 (__arm_vst1q_p_f32): Likewise.
18076
18077 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18078
18079 * config/xtensa/xtensa.md (xorsi3_internal):
18080 Rename from the original of "xorsi3".
18081 (xorsi3): New expansion pattern that emits addition rather than
18082 bitwise-XOR when the second source is a constant of -2147483648
18083 if TARGET_DENSITY.
18084
18085 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
18086 Andrew Pinski <apinski@marvell.com>
18087
18088 PR target/108396
18089 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
18090 vec_vsubcuqP with vec_vsubcuq.
18091
18092 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
18093
18094 PR target/108348
18095 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
18096 support for invalid uses of MMA opaque type in function arguments.
18097
18098 2023-01-18 liuhongt <hongtao.liu@intel.com>
18099
18100 PR target/55522
18101 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
18102 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
18103 -share or -mno-daz-ftz is specified.
18104 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
18105 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
18106
18107 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
18108
18109 * config/bpf/bpf.cc (bpf_option_override): Disable
18110 -fstack-protector.
18111
18112 2023-01-17 Jakub Jelinek <jakub@redhat.com>
18113
18114 PR tree-optimization/106523
18115 * tree-ssa-forwprop.cc (simplify_rotate): For the
18116 patterns with (-Y) & (B - 1) in one operand's shift
18117 count and Y in another, if T2 has wider precision than T,
18118 punt if Y could have a value in [B, B2 - 1] range.
18119
18120 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
18121
18122 PR target/105980
18123 * config/i386/i386.cc (x86_output_mi_thunk): Disable
18124 -mforce-indirect-call for PIC in 32-bit mode.
18125
18126 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
18127
18128 PR ipa/106077
18129 * ipa-modref.cc (modref_access_analysis::analyze): Use
18130 find_always_executed_bbs.
18131 * ipa-sra.cc (process_scan_results): Likewise.
18132 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
18133 (find_always_executed_bbs): New function.
18134 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
18135 (find_always_executed_bbs): Declare.
18136
18137 2023-01-16 Jan Hubicka <jh@suse.cz>
18138
18139 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
18140 by TARGET_USE_SCATTER.
18141 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
18142 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
18143 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
18144 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
18145 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
18146 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
18147
18148 2023-01-16 Richard Biener <rguenther@suse.de>
18149
18150 PR target/55522
18151 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
18152
18153 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
18154
18155 PR target/96795
18156 PR target/107515
18157 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
18158 (__ARM_mve_coerce3): Likewise.
18159
18160 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
18161
18162 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
18163
18164 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
18165
18166 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
18167 (number_of_iterations_bitcount): Add call to the above.
18168 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
18169 c[lt]z idiom recognition.
18170
18171 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
18172
18173 * doc/sourcebuild.texi: Add missing target attributes.
18174
18175 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
18176
18177 PR tree-optimization/94793
18178 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
18179 for c[lt]z optabs.
18180 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
18181 (number_of_iterations_cltz_complement): New.
18182 (number_of_iterations_bitcount): Add call to the above.
18183
18184 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
18185
18186 * doc/extend.texi (Common Function Attributes): Fix grammar.
18187
18188 2023-01-16 Jakub Jelinek <jakub@redhat.com>
18189
18190 PR other/108413
18191 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
18192 * config/riscv/riscv-vsetvl.cc: Likewise.
18193
18194 2023-01-16 Jakub Jelinek <jakub@redhat.com>
18195
18196 PR c++/105593
18197 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
18198 disable -Winit-self using pragma GCC diagnostic ignored.
18199 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
18200 Likewise.
18201 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
18202 _mm256_undefined_si256): Likewise.
18203 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
18204 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
18205 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
18206 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
18207
18208 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
18209
18210 PR target/108272
18211 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
18212 support for invalid uses in inline asm, factor out the checking and
18213 erroring to lambda function check_and_error_invalid_use.
18214
18215 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
18216
18217 PR tree-optimization/107608
18218 * range-op-float.cc (range_operator_float::fold_range): Avoid
18219 folding into INF when flag_trapping_math.
18220 * value-range.h (frange::known_isinf): Return false for possible NANs.
18221
18222 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
18223
18224 * config.gcc (csky-*-*): Support --with-float=softfp.
18225
18226 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18227
18228 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
18229 Rename to xtensa_adjust_reg_alloc_order.
18230 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
18231 Ditto. And also remove code to reorder register numbers for
18232 leaf functions, rename the tables, and adjust the allocation
18233 order for the call0 ABI to use register A0 more.
18234 (xtensa_leaf_regs): Remove.
18235 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
18236 (order_regs_for_local_alloc): Rename as the above.
18237 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
18238
18239 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18240
18241 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
18242 Change to define_insn_and_split to fold ldr+dup to ld1rq.
18243 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
18244
18245 2023-01-14 Alexandre Oliva <oliva@adacore.com>
18246
18247 * hash-table.h (is_deleted): Precheck !is_empty.
18248 (mark_deleted): Postcheck !is_empty.
18249 (copy constructor): Test is_empty before is_deleted.
18250
18251 2023-01-14 Alexandre Oliva <oliva@adacore.com>
18252
18253 PR target/40457
18254 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
18255 moves.
18256
18257 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
18258
18259 PR rtl-optimization/108274
18260 * function.cc (thread_prologue_and_epilogue_insns): Also update the
18261 DF information for calls in a few more cases.
18262
18263 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
18264
18265 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
18266 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
18267 define.
18268 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
18269 (MAX_SYNC_LIBFUNC_SIZE): Define.
18270 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
18271 enabled.
18272 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
18273 libcall when sync libcalls are disabled.
18274 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
18275 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
18276 are disabled on 32-bit target.
18277 * config/pa/pa.opt (matomic-libcalls): New option.
18278 * doc/invoke.texi (HPPA Options): Update.
18279
18280 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
18281
18282 PR rtl-optimization/108117
18283 PR rtl-optimization/108132
18284 * sched-deps.cc (deps_analyze_insn): Do not schedule across
18285 calls before reload.
18286
18287 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
18288
18289 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
18290 options for -mlibarch.
18291 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
18292 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
18293
18294 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
18295
18296 * attribs.cc (strict_flex_array_level_of): Move this function to ...
18297 * attribs.h (strict_flex_array_level_of): Remove the declaration.
18298 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
18299 replace the referece to strict_flex_array_level_of with
18300 DECL_NOT_FLEXARRAY.
18301 * tree.cc (component_ref_size): Likewise.
18302
18303 2023-01-13 Richard Biener <rguenther@suse.de>
18304
18305 PR target/55522
18306 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
18307 crtfastmath.o for -shared.
18308 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
18309
18310 2023-01-13 Richard Biener <rguenther@suse.de>
18311
18312 PR target/55522
18313 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
18314 crtfastmath.o for -shared.
18315 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
18316 Likewise.
18317 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
18318 Likewise.
18319
18320 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
18321
18322 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
18323 function.
18324 (TARGET_DWARF_FRAME_REG_MODE): Define.
18325
18326 2023-01-13 Richard Biener <rguenther@suse.de>
18327
18328 PR target/107209
18329 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
18330 update EH info on the fly.
18331
18332 2023-01-13 Richard Biener <rguenther@suse.de>
18333
18334 PR tree-optimization/108387
18335 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
18336 value before inserting expression into the tables.
18337
18338 2023-01-12 Andrew Pinski <apinski@marvell.com>
18339 Roger Sayle <roger@nextmovesoftware.com>
18340
18341 PR tree-optimization/92342
18342 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
18343 Use tcc_comparison and :c for the multiply.
18344 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
18345
18346 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
18347 Richard Sandiford <richard.sandiford@arm.com>
18348
18349 PR target/105549
18350 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
18351 Check DECL_PACKED for bitfield.
18352 (aarch64_layout_arg): Warn when parameter passing ABI changes.
18353 (aarch64_function_arg_boundary): Do not warn here.
18354 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
18355 changes.
18356
18357 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
18358 Richard Sandiford <richard.sandiford@arm.com>
18359
18360 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
18361 comment.
18362 (aarch64_layout_arg): Factorize warning conditions.
18363 (aarch64_function_arg_boundary): Fix typo.
18364 * function.cc (currently_expanding_function_start): New variable.
18365 (expand_function_start): Handle
18366 currently_expanding_function_start.
18367 * function.h (currently_expanding_function_start): Declare.
18368
18369 2023-01-12 Richard Biener <rguenther@suse.de>
18370
18371 PR tree-optimization/99412
18372 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
18373 (swap_ops_for_binary_stmt): Remove reduction handling.
18374 (rewrite_expr_tree_parallel): Adjust.
18375 (reassociate_bb): Likewise.
18376 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
18377
18378 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18379
18380 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
18381 Rearrange the emitting codes.
18382
18383 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18384
18385 * config/xtensa/xtensa.md (*btrue):
18386 Correct value of the attribute "length" that depends on
18387 TARGET_DENSITY and operands, and add '?' character to the register
18388 constraint of the compared operand.
18389
18390 2023-01-12 Alexandre Oliva <oliva@adacore.com>
18391
18392 * hash-table.h (expand): Check elements and deleted counts.
18393 (verify): Likewise.
18394
18395 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
18396
18397 PR tree-optimization/71343
18398 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
18399 the value number of the expression X << C the same as the value
18400 number for the multiplication X * (1<<C).
18401
18402 2023-01-11 David Faust <david.faust@oracle.com>
18403
18404 PR target/108293
18405 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
18406 floating point modes.
18407
18408 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
18409
18410 PR tree-optimization/108199
18411 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
18412 for bit-field references.
18413
18414 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
18415
18416 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
18417 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
18418 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
18419 OPTION_MASK_P10_FUSION.
18420
18421 2023-01-11 Richard Biener <rguenther@suse.de>
18422
18423 PR tree-optimization/107767
18424 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
18425 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
18426 * tree-switch-conversion.cc (switch_conversion::collect):
18427 Count unique non-default targets accounting for later
18428 merging opportunities.
18429
18430 2023-01-11 Martin Liska <mliska@suse.cz>
18431
18432 PR middle-end/107976
18433 * params.opt: Limit JT params.
18434 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
18435
18436 2023-01-11 Richard Biener <rguenther@suse.de>
18437
18438 PR tree-optimization/108352
18439 * tree-ssa-threadbackward.cc
18440 (back_threader_profitability::profitable_path_p): Adjust
18441 heuristic that allows non-multi-way branch threads creating
18442 irreducible loops.
18443 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
18444 (--param fsm-scale-path-stmts): Adjust.
18445 * params.opt (--param=fsm-scale-path-blocks=): Remove.
18446 (-param=fsm-scale-path-stmts=): Adjust description.
18447
18448 2023-01-11 Richard Biener <rguenther@suse.de>
18449
18450 PR tree-optimization/108353
18451 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
18452 Remove.
18453 (add_ssa_edge): Simplify.
18454 (add_control_edge): Likewise.
18455 (ssa_prop_init): Likewise.
18456 (ssa_prop_fini): Likewise.
18457 (ssa_propagation_engine::ssa_propagate): Likewise.
18458
18459 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
18460
18461 * config/s390/s390.md (*not<mode>): New pattern.
18462
18463 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18464
18465 * config/xtensa/xtensa.cc (xtensa_insn_cost):
18466 Let insn cost for size be obtained by applying COSTS_N_INSNS()
18467 to instruction length and then dividing by 3.
18468
18469 2023-01-10 Richard Biener <rguenther@suse.de>
18470
18471 PR tree-optimization/106293
18472 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
18473 process degenerate PHI defs.
18474
18475 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
18476
18477 PR rtl-optimization/106421
18478 * cprop.cc (bypass_block): Check that DEST is local to this
18479 function (non-NULL) before calling find_edge.
18480
18481 2023-01-10 Martin Jambor <mjambor@suse.cz>
18482
18483 PR ipa/108110
18484 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
18485 sort_replacements, lookup_first_base_replacement and
18486 m_sorted_replacements_p.
18487 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
18488 (ipa_param_body_adjustments::register_replacement): Set
18489 m_sorted_replacements_p to false.
18490 (compare_param_body_replacement): New function.
18491 (ipa_param_body_adjustments::sort_replacements): Likewise.
18492 (ipa_param_body_adjustments::common_initialization): Call
18493 sort_replacements.
18494 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
18495 m_sorted_replacements_p.
18496 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
18497 std::lower_bound.
18498 (ipa_param_body_adjustments::lookup_first_base_replacement): New
18499 function.
18500 (ipa_param_body_adjustments::modify_call_stmt): Use
18501 lookup_first_base_replacement.
18502 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
18503 adjustments->sort_replacements.
18504
18505 2023-01-10 Richard Biener <rguenther@suse.de>
18506
18507 PR tree-optimization/108314
18508 * tree-vect-stmts.cc (vectorizable_condition): Do not
18509 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
18510
18511 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
18512
18513 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
18514
18515 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
18516
18517 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
18518
18519 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
18520
18521 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
18522 defines for soft float abi.
18523
18524 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
18525
18526 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
18527 (smart_bclri): Likewise.
18528 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
18529 (fast_bclri): Likewise.
18530 (fast_cmpnesi_i): Likewise.
18531 (*fast_cmpltsi_i): Likewise.
18532 (*fast_cmpgeusi_i): Likewise.
18533
18534 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
18535
18536 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
18537 flag_fp_int_builtin_inexact || !flag_trapping_math.
18538 (<frm_pattern><mode>2): Likewise.
18539
18540 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
18541
18542 * config/s390/s390.cc (s390_register_info): Check call_used_regs
18543 instead of hard-coding the register numbers for call saved
18544 registers.
18545 (s390_optimize_register_info): Likewise.
18546
18547 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
18548
18549 * doc/gm2.texi (Overview): Fix @node markers.
18550 (Using): Likewise. Remove subsections that were moved to Overview
18551 from the menu and move others around.
18552
18553 2023-01-09 Richard Biener <rguenther@suse.de>
18554
18555 PR middle-end/108209
18556 * genmatch.cc (commutative_op): Fix return value for
18557 user-id with non-commutative first replacement.
18558
18559 2023-01-09 Jakub Jelinek <jakub@redhat.com>
18560
18561 PR target/107453
18562 * calls.cc (expand_call): For calls with
18563 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
18564 Formatting fix.
18565
18566 2023-01-09 Richard Biener <rguenther@suse.de>
18567
18568 PR middle-end/69482
18569 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
18570 qualified accesses also force objects to memory.
18571
18572 2023-01-09 Martin Liska <mliska@suse.cz>
18573
18574 PR lto/108330
18575 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
18576 NULL (deleleted value) to a hash_set.
18577
18578 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18579
18580 * config/xtensa/xtensa.md (*splice_bits):
18581 New insn_and_split pattern.
18582
18583 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
18584
18585 * config/xtensa/xtensa.cc
18586 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
18587 New helper functions.
18588 (xtensa_set_return_address, xtensa_output_mi_thunk):
18589 Change to use the helper function.
18590 (xtensa_emit_adjust_stack_ptr): Ditto.
18591 And also change to try reusing the content of scratch register
18592 A9 if the register is not modified in the function body.
18593
18594 2023-01-07 LIU Hao <lh_mouse@126.com>
18595
18596 PR middle-end/108300
18597 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
18598 before <windows.h>.
18599 * diagnostic-color.cc: Likewise.
18600 * plugin.cc: Likewise.
18601 * prefix.cc: Likewise.
18602
18603 2023-01-06 Joseph Myers <joseph@codesourcery.com>
18604
18605 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
18606 for handling real integer types.
18607
18608 2023-01-06 Tamar Christina <tamar.christina@arm.com>
18609
18610 Revert:
18611 2022-12-12 Tamar Christina <tamar.christina@arm.com>
18612
18613 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
18614 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
18615 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
18616 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
18617 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
18618 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
18619 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
18620 (aarch64_simd_dupv2hf): New.
18621 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
18622 Add E_V2HFmode.
18623 * config/aarch64/iterators.md (VHSDF_P): New.
18624 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
18625 Vel, q, vp): Add V2HF.
18626 * config/arm/types.md (neon_fp_reduc_add_h): New.
18627
18628 2023-01-06 Martin Liska <mliska@suse.cz>
18629
18630 PR middle-end/107966
18631 * doc/options.texi: Fix Var documentation in internal manual.
18632
18633 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
18634
18635 Revert:
18636 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
18637
18638 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
18639 RTL expansion to allow condition (mask) to be shared/reused,
18640 by avoiding overwriting pseudos and adding REG_EQUAL notes.
18641
18642 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
18643
18644 * common.opt: Add -static-libgm2.
18645 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
18646 * doc/gm2.texi: Document static-libgm2.
18647 * gcc.cc (driver_handle_option): Allow static-libgm2.
18648
18649 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
18650
18651 * common/config/i386/i386-common.cc (processor_alias_table):
18652 Use CPU_ZNVER4 for znver4.
18653 * config/i386/i386.md: Add znver4.md.
18654 * config/i386/znver4.md: New.
18655
18656 2023-01-04 Jakub Jelinek <jakub@redhat.com>
18657
18658 PR tree-optimization/108253
18659 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
18660 types.
18661
18662 2023-01-04 Jakub Jelinek <jakub@redhat.com>
18663
18664 PR middle-end/108237
18665 * generic-match-head.cc: Include tree-pass.h.
18666 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
18667 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
18668 resp. PROP_gimple_lvec property set.
18669
18670 2023-01-04 Jakub Jelinek <jakub@redhat.com>
18671
18672 PR sanitizer/108256
18673 * convert.cc (do_narrow): Punt for MULT_EXPR if original
18674 type doesn't wrap around and -fsanitize=signed-integer-overflow
18675 is on.
18676 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
18677
18678 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
18679
18680 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
18681 * common/config/i386/i386-common.cc: Add Emeraldrapids.
18682
18683 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
18684
18685 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
18686 for meteorlake.
18687
18688 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
18689
18690 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
18691 default constructor to initialize it.
18692 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
18693 for last and iterate to handle recursive calls. Delete leftover
18694 candidates at the end.
18695 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
18696 on local clones.
18697 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
18698 gc_candidate bit when a clone is used.
18699
18700 2023-01-03 Florian Weimer <fweimer@redhat.com>
18701
18702 Revert:
18703 2023-01-02 Florian Weimer <fweimer@redhat.com>
18704
18705 * dwarf2cfi.cc (init_return_column_size): Remove.
18706 (init_one_dwarf_reg_size): Adjust.
18707 (generate_dwarf_reg_sizes): New function. Extracted
18708 from expand_builtin_init_dwarf_reg_sizes.
18709 (expand_builtin_init_dwarf_reg_sizes): Call
18710 generate_dwarf_reg_sizes.
18711 * target.def (init_dwarf_reg_sizes_extra): Adjust
18712 hook signature.
18713 * config/msp430/msp430.cc
18714 (msp430_init_dwarf_reg_sizes_extra): Adjust.
18715 * config/rs6000/rs6000.cc
18716 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
18717 * doc/tm.texi: Update.
18718
18719 2023-01-03 Florian Weimer <fweimer@redhat.com>
18720
18721 Revert:
18722 2023-01-02 Florian Weimer <fweimer@redhat.com>
18723
18724 * debug.h (dwarf_reg_sizes_constant): Declare.
18725 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
18726
18727 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
18728
18729 PR tree-optimization/105043
18730 * doc/extend.texi (Object Size Checking): Split out into two
18731 subsections and mention _FORTIFY_SOURCE.
18732
18733 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
18734
18735 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
18736 RTL expansion to allow condition (mask) to be shared/reused,
18737 by avoiding overwriting pseudos and adding REG_EQUAL notes.
18738
18739 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
18740
18741 PR target/108229
18742 * config/i386/i386-features.cc
18743 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
18744 the gain/cost of converting a MEM operand.
18745
18746 2023-01-03 Jakub Jelinek <jakub@redhat.com>
18747
18748 PR middle-end/108264
18749 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
18750 from source which doesn't have scalar integral mode first convert
18751 it to outer_mode.
18752
18753 2023-01-03 Jakub Jelinek <jakub@redhat.com>
18754
18755 PR rtl-optimization/108263
18756 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
18757 asm goto to EXIT.
18758
18759 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
18760
18761 PR target/87832
18762 * config/i386/lujiazui.md (lujiazui_div): New automaton.
18763 (lua_div): New unit.
18764 (lua_idiv_qi): Correct unit in the reservation.
18765 (lua_idiv_qi_load): Ditto.
18766 (lua_idiv_hi): Ditto.
18767 (lua_idiv_hi_load): Ditto.
18768 (lua_idiv_si): Ditto.
18769 (lua_idiv_si_load): Ditto.
18770 (lua_idiv_di): Ditto.
18771 (lua_idiv_di_load): Ditto.
18772 (lua_fdiv_SF): Ditto.
18773 (lua_fdiv_SF_load): Ditto.
18774 (lua_fdiv_DF): Ditto.
18775 (lua_fdiv_DF_load): Ditto.
18776 (lua_fdiv_XF): Ditto.
18777 (lua_fdiv_XF_load): Ditto.
18778 (lua_ssediv_SF): Ditto.
18779 (lua_ssediv_load_SF): Ditto.
18780 (lua_ssediv_V4SF): Ditto.
18781 (lua_ssediv_load_V4SF): Ditto.
18782 (lua_ssediv_V8SF): Ditto.
18783 (lua_ssediv_load_V8SF): Ditto.
18784 (lua_ssediv_SD): Ditto.
18785 (lua_ssediv_load_SD): Ditto.
18786 (lua_ssediv_V2DF): Ditto.
18787 (lua_ssediv_load_V2DF): Ditto.
18788 (lua_ssediv_V4DF): Ditto.
18789 (lua_ssediv_load_V4DF): Ditto.
18790
18791 2023-01-02 Florian Weimer <fweimer@redhat.com>
18792
18793 * debug.h (dwarf_reg_sizes_constant): Declare.
18794 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
18795
18796 2023-01-02 Florian Weimer <fweimer@redhat.com>
18797
18798 * dwarf2cfi.cc (init_return_column_size): Remove.
18799 (init_one_dwarf_reg_size): Adjust.
18800 (generate_dwarf_reg_sizes): New function. Extracted
18801 from expand_builtin_init_dwarf_reg_sizes.
18802 (expand_builtin_init_dwarf_reg_sizes): Call
18803 generate_dwarf_reg_sizes.
18804 * target.def (init_dwarf_reg_sizes_extra): Adjust
18805 hook signature.
18806 * config/msp430/msp430.cc
18807 (msp430_init_dwarf_reg_sizes_extra): Adjust.
18808 * config/rs6000/rs6000.cc
18809 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
18810 * doc/tm.texi: Update.
18811
18812 2023-01-02 Jakub Jelinek <jakub@redhat.com>
18813
18814 * gcc.cc (process_command): Update copyright notice dates.
18815 * gcov-dump.cc (print_version): Ditto.
18816 * gcov.cc (print_version): Ditto.
18817 * gcov-tool.cc (print_version): Ditto.
18818 * gengtype.cc (create_file): Ditto.
18819 * doc/cpp.texi: Bump @copying's copyright year.
18820 * doc/cppinternals.texi: Ditto.
18821 * doc/gcc.texi: Ditto.
18822 * doc/gccint.texi: Ditto.
18823 * doc/gcov.texi: Ditto.
18824 * doc/install.texi: Ditto.
18825 * doc/invoke.texi: Ditto.
18826
18827 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
18828 Uroš Bizjak <ubizjak@gmail.com>
18829
18830 * config/i386/i386.md (extendditi2): New define_insn.
18831 (define_split): Use DWIH mode iterator to treat new extendditi2
18832 identically to existing extendsidi2_1.
18833 (define_peephole2): Likewise.
18834 (define_peephole2): Likewise.
18835 (define_Split): Likewise.
18836
18837 \f
18838 Copyright (C) 2023 Free Software Foundation, Inc.
18839
18840 Copying and distribution of this file, with or without modification,
18841 are permitted in any medium without royalty provided the copyright
18842 notice and this notice are preserved.