+2022-07-26 Peter Bergner <bergner@linux.ibm.com>
+
+ PR c/106016
+ * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
+
+2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
+
+ * config/loongarch/loongarch-opts.cc: Modify the output message string
+ of the warning.
+
+2022-07-26 Martin Liska <mliska@suse.cz>
+
+ * doc/tm.texi.in: Fix placement of defmac.
+ * doc/tm.texi: Copy.
+
+2022-07-26 Martin Liska <mliska@suse.cz>
+
+ * doc/tm.texi.in: Fix cross @defmac and @hook.
+ * doc/tm.texi: Copy.
+
+2022-07-26 Aldy Hernandez <aldyh@redhat.com>
+
+ PR tree-optimization/106444
+ * value-range-pretty-print.cc (vrange_printer::visit): Handle
+ legacy ranges.
+ (vrange_printer::print_irange_bound): Work on wide_int's.
+ * value-range-pretty-print.h (print_irange_bound): Same.
+ * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
+
+2022-07-26 Richard Biener <rguenther@suse.de>
+
+ * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
+ points to a constant continue checking ptr2.
+
+2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
+
+ * config/aarch64/aarch64-builtins.cc
+ (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
+ (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
+ (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
+ (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
+ (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
+ (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
+ (MODE_q_p128): Define macro to map to corresponding mode name.
+ (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
+ (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
+ (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
+ corresponding qualifier name.
+ (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
+ (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
+ functions for the above mappings
+ (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
+ (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
+ (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
+ (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
+ for all vreinterpret intrinsics
+ (enum aarch64_builtins): Add vreinterpret function codes
+ (aarch64_init_simd_intrinsics): New
+ (handle_arm_neon_h): Improved comment.
+ (aarch64_general_fold_builtin): Fold vreinterpret calls
+ * config/aarch64/arm_neon.h
+ (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
+ (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
+ (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
+ (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
+ (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
+ (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
+ (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
+ (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
+ (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
+ (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
+ (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
+ (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
+ (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
+ (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
+ (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
+ (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
+ (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
+ (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
+ (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
+ (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
+ (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
+ (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
+ (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
+ (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
+ (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
+ (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
+ (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
+ (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
+ (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
+ (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
+ (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
+ (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
+ (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
+ (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
+ (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
+ (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
+ (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
+ (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
+ (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
+ (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
+ (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
+ (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
+ (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
+ (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
+ (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
+ (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
+ (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
+ (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
+ (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
+ (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
+ (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
+ (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
+ (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
+ (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
+ (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
+ (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
+ (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
+ (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
+ (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
+ (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
+ (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
+ (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
+ (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
+ (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
+ (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
+ (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
+ (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
+ (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
+ (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
+ (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
+ (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
+ (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
+ (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
+ (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
+ (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
+ (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
+ (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
+ (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
+ (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
+ (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
+ (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
+ (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
+ (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
+ (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
+ (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
+ (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
+ (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
+ (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
+ (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
+ (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
+ (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
+ (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
+ (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
+ (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
+ (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
+ (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
+ (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
+ (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
+ (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
+ (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
+ (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
+ (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
+ (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
+ (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
+ (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
+ (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
+ (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
+ (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
+ (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
+ (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
+ (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
+ (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
+ (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
+ (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
+ (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
+ (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
+ (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
+ (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
+ (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
+ (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
+ (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
+ (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
+ (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
+ (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
+ (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
+ (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
+ (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
+ (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
+ (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
+ (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
+ (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
+ (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
+ (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
+ (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
+ (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
+ (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
+ (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
+ (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
+ (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
+ (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
+ (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
+ (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
+ (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
+ (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
+ (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
+ (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
+ (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
+ (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
+ (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
+ (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
+ (vreinterpretq_p128_bf16): Delete
+
+2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
+
+ * config/aarch64/aarch64-builtins.cc
+ (aarch64_simd_builtin_std_type): Rename to...
+ (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
+ (aarch64_lookup_simd_builtin_type): Rename to...
+ (aarch64_simd_builtin_type): ...this. Add const/pointer
+ support, and extract table lookup to...
+ (aarch64_lookup_simd_type_in_table): ...this function.
+ (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
+ (aarch64_init_fcmla_laneq_builtins): Ditto.
+ (aarch64_init_simd_builtin_functions): Ditto.
+
+2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
+
+ * config/aarch64/aarch64-builtins.cc
+ (aarch64_general_gimple_fold_builtin): Add combine.
+
+2022-07-26 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/106189
+ * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
+ Divide using offset_ints.
+
+2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
+
+ * common/config/loongarch/loongarch-common.cc:
+ Enable '-fsection-anchors' when O1 and more advanced optimization.
+ * config/loongarch/genopts/loongarch.opt.in: Add new option
+ '-mexplicit-relocs', and enable by default.
+ * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
+ Delete function declaration.
+ (loongarch_split_move_insn): Delete function declaration.
+ (loongarch_split_symbol_type): Add function declaration.
+ * config/loongarch/loongarch.cc (enum loongarch_address_type):
+ Add new address type 'ADDRESS_LO_SUM'.
+ (loongarch_classify_symbolic_expression): New function definitions.
+ Classify the base of symbolic expression X, given that X appears in
+ context CONTEXT.
+ (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
+ (loongarch_split_symbol_type): New function definitions.
+ Determines whether the symbol load should be split into two instructions.
+ (loongarch_valid_lo_sum_p): New function definitions.
+ Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
+ symbol has type SYMBOL_TYPE.
+ (loongarch_classify_address): Add handling of 'LO_SUM'.
+ (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
+ (loongarch_signed_immediate_p): Sort code.
+ (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
+ (loongarch_const_insns): Add handling of 'HIGH'.
+ (loongarch_split_move_insn_p): Add the static attribute to the function.
+ (loongarch_emit_set): New function definitions.
+ (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
+ (loongarch_legitimize_tls_address): Add symbol handling when defining the
+ TARGET_EXPLICIT_RELOCS macro.
+ (loongarch_split_symbol): New function definitions. Split symbol.
+ (loongarch_legitimize_address): Add codes see if the address can split into a high part
+ and a LO_SUM.
+ (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
+ high and low.
+ (loongarch_split_move_insn): Delete function definitions.
+ (loongarch_output_move): Add support for HIGH and LO_SUM.
+ (loongarch_print_operand_reloc): New function definitions.
+ Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
+ (loongarch_memmodel_needs_release_fence): Sort code.
+ (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
+ and LOW output.
+ (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
+ (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
+ (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
+ * config/loongarch/loongarch.md (movti): Delete the template.
+ (*movti): Delete the template.
+ (movtf): Delete the template.
+ (*movtf): Delete the template.
+ (*low<mode>): New template of normal symbol low address.
+ (@tls_low<mode>): New template of tls symbol low address.
+ (@ld_from_got<mode>): New template load address from got table.
+ (@ori_l_lo12<mode>): New template.
+ * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
+ * config/loongarch/predicates.md: Add support for symbol_type HIGH.
+
+2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
+
+ * config/loongarch/constraints.md (a): Delete the constraint.
+ (b): A constant call not local address.
+ (h): Delete the constraint.
+ (t): Delete the constraint.
+ * config/loongarch/loongarch-opts.cc (loongarch_config_target):
+ Remove cModel type support other than normal.
+ * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
+ Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
+ (loongarch_split_symbol): Delete useless function declarations.
+ (loongarch_split_symbol_type): Delete useless function declarations.
+ * config/loongarch/loongarch.cc (enum loongarch_address_type):
+ Delete unnecessary comment information.
+ (loongarch_symbol_binds_local_p): Modified the judgment order of label
+ and symbol.
+ (loongarch_classify_symbol): Return symbol type. If symbol is a label,
+ or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
+ return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
+ (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
+ 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
+ (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
+ and 'SYMBOL_PCREL'.
+ (loongarch_address_insns): Sort code.
+ (loongarch_12bit_offset_address_p): Sort code.
+ (loongarch_14bit_shifted_offset_address_p): Sort code.
+ (loongarch_call_tls_get_addr): Sort code.
+ (loongarch_legitimize_tls_address): Sort code.
+ (loongarch_output_move): Remove schema support for cmodel other than normal.
+ (loongarch_memmodel_needs_release_fence): Sort code.
+ (loongarch_print_operand): Sort code.
+ * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
+ Rename to LARCH_12BIT_OFFSET_P.
+ (LARCH_12BIT_OFFSET_P): New macro.
+ * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
+ support for cmodel other than normal.
+ * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
+ (is_const_call_plt_symbol): Delete this predicate.
+ (is_const_call_global_noplt_symbol): Delete this predicate.
+ (is_const_call_no_local_symbol): New predicate, determines whether it is a local
+ symbol or label.
+
+2022-07-26 Kewen Lin <linkw@linux.ibm.com>
+
+ PR target/106091
+ * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
+ REG_EH_REGION when replacing one store insn having it.
+ (replace_swapped_aligned_load): Likewise.
+
2022-07-25 Aldy Hernandez <aldyh@redhat.com>
* Makefile.in (OBJS): Add range-op-float.o.