https://gcc.gnu.org/g:59d647197afc4c0a500cbef0eb78542f87210534
commit r16-9077-g59d647197afc4c0a500cbef0eb78542f87210534 Author: GCC Administrator <[email protected]> Date: Tue Jun 9 08:57:48 2026 +0000 Daily bump. Diff: --- gcc/ChangeLog | 616 ++++++++++++++++++++++++++++++++++++++++++++++++ gcc/DATESTAMP | 2 +- gcc/ada/ChangeLog | 56 +++++ gcc/cp/ChangeLog | 44 ++++ gcc/fortran/ChangeLog | 21 ++ gcc/testsuite/ChangeLog | 64 +++++ libstdc++-v3/ChangeLog | 90 +++++++ 7 files changed, 892 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7fce418f9598..e81d9f5884a7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,619 @@ +2026-06-09 Xi Ruoyao <[email protected]> + + Backported from master: + 2026-06-08 Xi Ruoyao <[email protected]> + + * config/mips/sync.md (sync_old_<optab><mode>): Fix + uninitialized operand use. + (sync_new_<optab><mode>): Fix uninitialized operand use, use the + same expression for the set source of operand 0 and 1. + +2026-06-09 Kewen Lin <[email protected]> + + Backported from master: + 2026-05-28 Kewen Lin <[email protected]> + Xin Liu <[email protected]> + + * config/i386/c86-4g-m7.md (c86_4g_m7_fpu): Remove automaton. + (c86_4g_m7_fpu02): New automaton. + (c86_4g_m7_fpu13): Ditto. + (c86-4g-m7-fpu0): Move to c86_4g_m7_fpu02 automaton. + (c86-4g-m7-fpu1): Move to c86_4g_m7_fpu13 automaton. + (c86-4g-m7-fpu2): Move to c86_4g_m7_fpu02 automaton. + (c86-4g-m7-fpu3): Move to c86_4g_m7_fpu13 automaton. + (c86-4g-m7-fdiv): Remove cpu unit. + (c86-4g-m7-fdiv1): New cpu unit. + (c86-4g-m7-fdiv3): Ditto. + (c86-4g-m7-fpu_0_3): New reservation. + (c86-4g-m7-fpu_1_3x2): Ditto. + (c86-4g-m7-fpu_1_3x3): Ditto. + (c86-4g-m7-fpu_1_3x6): Ditto. + (c86-4g-m7-fpux2): Ditto. + (c86-4g-m7-fpux4): Ditto. + (c86-4g-m7-fpux6): Ditto. + (c86-4g-m7-fpux8): Ditto. + (c86-4g-m7-fpux16): Ditto. + (c86-4g-m7-fp1fdiv1x4): Ditto. + (c86-4g-m7-fp3fdiv3x4): Ditto. + (c86-4g-m7-fdiv13): Ditto. + (c86-4g-m7-fp13div13): Ditto. + (c86-4g-m7-fp13div13x4): Ditto. + (c86-4g-m7-fp1div1_fp3div3_x4x8): Ditto. + (c86-4g-m7-fp1div1_fp3div3_x4x9): Ditto. + (c86-4g-m7-fp1div1_fp3div3_x4x11): Ditto. + (c86-4g-m7-fp1div1_fp3div3_x4x15): Ditto. + (c86-4g-m7-fp1div1_fp3div3_x4x18): Ditto. + (c86_4g_m7_idiv): New reservation. + (c86_4g_m7_idiv_QI): Adjust reservation latency and unit occupancy. + (c86_4g_m7_idiv_load): New reservation. + (c86_4g_m7_idiv_QI_load): Adjust reservation latency and unit + occupancy. + (c86_4g_m7_idiv_DI): Remove reservation. + (c86_4g_m7_idiv_SI): Ditto. + (c86_4g_m7_idiv_HI): Ditto. + (c86_4g_m7_idiv_DI_load): Ditto. + (c86_4g_m7_idiv_SI_load): Ditto. + (c86_4g_m7_idiv_HI_load): Ditto. + (c86_4g_m7_sse_insertimm): Adjust reservation units and unit + occupancy. + (c86_4g_m7_sse_insert): Ditto. + (c86_4g_m7_fp_sqrt): Adjust reservation. + (c86_4g_m7_fp_div): Ditto. + (c86_4g_m7_fp_div_load): Ditto. + (c86_4g_m7_fp_idiv_load): Ditto. + (c86_4g_m7_sse_pinsr_reg): Adjust reservation units and unit + occupancy. + (c86_4g_m7_sse_pinsr_reg_load): Ditto. + (c86_4g_m7_avx_vpinsr_reg): Ditto. + (c86_4g_m7_avx_vpinsr_reg_load): Ditto. + (c86_4g_m7_avx512_perm_xmm): Delete the prefix condition. + (c86_4g_m7_avx512_perm_xmm_opload): Ditto. + (c86_4g_m7_avx512_permi2_ymm): Adjust reservation units and unit + occupancy. + (c86_4g_m7_avx512_permi2_zmm): Ditto. + (c86_4g_m7_avx512_permi2_ymm_load): Ditto. + (c86_4g_m7_avx512_permi2_zmm_load): Ditto. + (c86_4g_m7_avx512_perm_zmm_imm): Ditto. + (c86_4g_m7_avx512_perm_zmm_imm_load): Ditto. + (c86_4g_m7_avx512_perm_zmm_noimm): Ditto. + (c86_4g_m7_sse_perm_zmm_noimm_load): Ditto. + (c86_4g_m7_avx_perm_ymm): Remove. + (c86_4g_m7_avx_perm_ymem): Ditto. + (c86_4g_m7_avx512_shuf_zmm): Adjust reservation units and unit + occupancy. + (c86_4g_m7_avx512_shuf_zmem): Ditto. + (c86_4g_m7_avx512_cmpestr): Ditto. + (c86_4g_m7_avx512_cmpestr_load): Ditto. + (c86_4g_m7_avx512_vdbpsadbw_zmm): Ditto. + (c86_4g_m7_avx512_vdbpsadbw_zmem): Ditto. + (c86_4g_m7_avx_ssecomi_comi): Ditto. + (c86_4g_m7_avx_ssecomi_comi_load): Ditto. + (c86_4g_m7_avx512_expand): Ditto. + (c86_4g_m7_avx512_expand_load): Ditto. + (c86_4g_m7_avx512_expand_z): Ditto. + (c86_4g_m7_avx512_expand_z_load): Ditto. + (c86_4g_m7_sse_movnt_xy): Rename to c86_4g_m7_sse_movnt. + (c86_4g_m7_avx512_sseadd_xy): Adjust reservation units. + (c86_4g_m7_avx512_sseadd_xy_load): Ditto. + (c86_4g_m7_sse_sseiadd_hplus): Adjust reservation units and unit + occupancy. + (c86_4g_m7_sse_sseiadd_hplus_load): Ditto. + (c86_4g_m7_avx512_ssemul): Adjust reservation units. + (c86_4g_m7_avx512_ssemul_load): Ditto. + (c86_4g_m7_avx512_ssediv): Remove. + (c86_4g_m7_avx512_ssediv_mem): Remove. + (c86_4g_m7_avx512_ssediv_x): New. + (c86_4g_m7_avx512_ssediv_xmem): New. + (c86_4g_m7_avx512_ssediv_y): New. + (c86_4g_m7_avx512_ssediv_ymem): New. + (c86_4g_m7_avx512_ssediv_z): Adjust reservation units. + (c86_4g_m7_avx512_ssediv_zmem): Ditto. + (c86_4g_m7_avx512_ssecmp_z): Add reservation units and unit + occupancy. + (c86_4g_m7_avx512_ssecmp_z_load): Ditto. + (c86_4g_m7_avx512_ssecmp_vp_z): New reservation. + (c86_4g_m7_avx512_ssecmp_vp_z_load): Ditto. + (c86_4g_m7_avx512_ssecmp_test_z): Remove reservation. + (c86_4g_m7_avx512_ssecmp_test_z_load): Ditto. + (c86_4g_m7_avx512_muladd): Broaden matching condition. + (c86_4g_m7_avx512_muladd_load): Ditto. + (c86_4g_m7_fma_muladd): Remove reservation. + (c86_4g_m7_fma_muladd_load): Ditto. + (c86_4g_m7_avx512_sse_conflict_x): Add reservation units and unit + occupancy. + (c86_4g_m7_avx512_sse_conflict_x_load): Ditto. + (c86_4g_m7_avx512_sse_conflict_y): Ditto. + (c86_4g_m7_avx512_sse_conflict_y_load): Ditto. + (c86_4g_m7_avx512_sse_conflict_z): Ditto. + (c86_4g_m7_avx512_sse_conflict_z_load): Ditto. + (c86_4g_m7_avx512_sse_class_z): Add reservation units and unit + occupancy. + (c86_4g_m7_avx512_sse_class_z_load): Ditto. + (c86_4g_m7_avx512_sse_sqrt): Remove. + (c86_4g_m7_avx512_sse_sqrt_load): Remove. + (c86_4g_m7_avx512_sse_sqrt_sf_x): New. + (c86_4g_m7_avx512_sse_sqrt_sf_xload): New. + (c86_4g_m7_avx512_sse_sqrt_sf_y): New. + (c86_4g_m7_avx512_sse_sqrt_sf_yload): New. + (c86_4g_m7_avx512_sse_sqrt_sf_z): New. + (c86_4g_m7_avx512_sse_sqrt_sf_zload): New. + (c86_4g_m7_avx512_sse_sqrt_df_x): New. + (c86_4g_m7_avx512_sse_sqrt_df_xload): New. + (c86_4g_m7_avx512_sse_sqrt_df_y): New. + (c86_4g_m7_avx512_sse_sqrt_df_yload): New. + (c86_4g_m7_avx512_sse_sqrt_df_z): New. + (c86_4g_m7_avx512_sse_sqrt_df_zload): New. + (c86_4g_m7_avx512_msklog_vector): Add reservation units and unit + occupancy. + (c86_4g_m7_avx512_mskmov_z_k): Ditto. + (c86_4g_m7_avx512_mskmov_k_reg): Ditto. + * config/i386/c86-4g.md (c86_4g_fp): Remove automaton. + (c86_4g_fp024): New automaton. + (c86_4g_fp1): Ditto. + (c86-4g-fp0): Move to c86_4g_fp024 automaton. + (c86-4g-fp1): Move to c86_4g_fp1 automaton. + (c86-4g-fp2): Move to c86_4g_fp024 automaton. + (c86-4g-fp3): Ditto. + (c86-4g-fp1fdivx4): New reservation. + (c86_4g_fp_sqrt): Adjust reservation. + (c86_4g_sse_sqrt_sf): Ditto. + (c86_4g_sse_sqrt_sf_mem): Ditto. + (c86_4g_sse_sqrt_df): Ditto. + (c86_4g_sse_sqrt_df_mem): Ditto. + (c86_4g_fp_op_div): Ditto. + (c86_4g_fp_op_div_load): Ditto. + (c86_4g_fp_op_idiv_load): Adjust reservation latency. + (c86_4g_ssediv_ss_ps): Adjust reservation. + (c86_4g_ssediv_ss_ps_load): Ditto. + (c86_4g_ssediv_sd_pd): Ditto. + (c86_4g_ssediv_sd_pd_load): Ditto. + (c86_4g_ssediv_avx256_ps): Ditto. + (c86_4g_ssediv_avx256_ps_load): Ditto. + (c86_4g_ssediv_avx256_pd): Ditto. + (c86_4g_ssediv_avx256_pd_load): Ditto. + +2026-06-09 Kewen Lin <[email protected]> + + Backported from master: + 2026-05-01 Kewen Lin <[email protected]> + + * config/i386/c86-4g-m7.md (c86_4g_m7_idiv): New automaton. + (c86_4g_m7_fdiv): Ditto. + (c86-4g-m7-idiv): New unit. + (c86-4g-m7-fdiv): Ditto. + (c86_4g_m7_idiv_DI): Adjust unit in the reservation. + (c86_4g_m7_idiv_SI): Ditto. + (c86_4g_m7_idiv_HI): Ditto. + (c86_4g_m7_idiv_QI): Ditto. + (c86_4g_m7_idiv_DI_load): Ditto. + (c86_4g_m7_idiv_SI_load): Ditto. + (c86_4g_m7_idiv_HI_load): Ditto. + (c86_4g_m7_idiv_QI_load): Ditto. + (c86_4g_m7_fp_div): Ditto. + (c86_4g_m7_fp_div_load): Ditto. + (c86_4g_m7_fp_idiv_load): Ditto. + (c86_4g_m7_avx512_ssediv): Ditto. + (c86_4g_m7_avx512_ssediv_mem): Ditto. + (c86_4g_m7_avx512_ssediv_z): Ditto. + (c86_4g_m7_avx512_ssediv_zmem): Ditto. + (c86_4g_m7_avx512_sse_sqrt): Ditto. + (c86_4g_m7_avx512_sse_sqrt_load): Ditto. + (c86_4g_m7_fp_sqrt): Ditto. Rename from ... + (c86_4g_m7fp_sqrt): ... here. + * config/i386/c86-4g.md (c86_4g_idiv): New automaton. + (c86_4g_fdiv): Ditto. + (c86-4g-idiv): New unit. + (c86-4g-fdiv): Ditto. + (c86_4g_idiv_DI): Ditto. + (c86_4g_idiv_SI): Ditto. + (c86_4g_idiv_HI): Ditto. + (c86_4g_idiv_QI): Ditto. + (c86_4g_idiv_mem_DI): Ditto. + (c86_4g_idiv_mem_SI): Ditto. + (c86_4g_idiv_mem_HI): Ditto. + (c86_4g_idiv_mem_QI): Ditto. + (c86_4g_fp_sqrt): Ditto. + (c86_4g_sse_sqrt_sf): Ditto. + (c86_4g_sse_sqrt_sf_mem): Ditto. + (c86_4g_sse_sqrt_df): Ditto. + (c86_4g_sse_sqrt_df_mem): Ditto. + (c86_4g_fp_op_div): Ditto. + (c86_4g_fp_op_div_load): Ditto. + (c86_4g_fp_op_idiv_load): Ditto. + (c86_4g_ssediv_ss_ps): Ditto. + (c86_4g_ssediv_ss_ps_load): Ditto. + (c86_4g_ssediv_ss_pd): Ditto. + (c86_4g_ssediv_ss_pd_load): Ditto. + (c86_4g_ssediv_avx256_ps): Ditto. + (c86_4g_ssediv_avx256_ps_load): Ditto. + (c86_4g_ssediv_avx256_pd): Ditto. + (c86_4g_ssediv_avx256_pd_load): Ditto. + +2026-06-09 Xin Liu <[email protected]> + + Backported from master: + 2026-04-29 Xin Liu <[email protected]> + Zhaoling Bao <[email protected]> + + * common/config/i386/cpuinfo.h (get_hygon_cpu): Detect the specific + type of HYGON CPU and return HYGON CPU name. + (cpu_indicator_init): Handle HYGON CPU. + * common/config/i386/i386-common.cc (processor_names): Add HYGON + C86-4G processors c86-4g-m{4,6,7}. + (processor_alias_table): Add hygon, hygonfam18h and c86-4g-m{4,6,7} + entries. + (ARRAY_SIZE): Update as new entries added. + * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add + VENDOR_HYGON. + (enum processor_types): Add HYGONFAM18H. + (enum processor_subtypes): Add HYGONFAM18H_C86_4G_M{4,6,7}. + * config.gcc: Add support for c86_4g_m{4,6,7}. + * config/i386/cpuid.h (signature_HYGON_ebx): Add signature for HYGON. + (signature_HYGON_ecx): Ditto. + (signature_HYGON_edx): Ditto. + * config/i386/driver-i386.cc (host_detect_local_cpu): Support HYGON + c86-4g-m4{4,6,7} processors. + * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto. + * config/i386/i386-options.cc (m_C86_4G_M4): New definition. + (m_C86_4G_M6): Ditto. + (m_C86_4G_M7): Ditto. + (m_C86_4G): Ditto. + (processor_cost_table): Add cost entries for c86-4g-m4{4,6,7}. + * config/i386/i386.cc (ix86_reassociation_width): Add handlings for + PROCESSOR_C86_4G_M{4,6,7}. + * config/i386/i386.h (enum processor_type): Define + PROCESSOR_C86_4G_M{4,6,7}. + (PTA_C86_4G_M4): New define. + (PTA_C86_4G_M6): Ditto. + (PTA_C86_4G_M7): Ditto. + * config/i386/x86-tune-costs.h (c86_4g_m4_memcpy): New stringop_algs. + (c86_4g_m4_cost): New processor_costs. + (c86_4g_m6_cost): Ditto. + (c86_4g_m7_cost): Ditto. + * config/i386/x86-tune-sched.cc (ix86_issue_rate): Handle + PROCESSOR_C86_4G_M{4,6,7}. + (ix86_adjust_cost): Ditto. + * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Handle m_C86_4G. + (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto. + (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto. + (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto. + (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto. + (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto. + (X86_TUNE_USE_LEAVE): Ditto. + (X86_TUNE_PUSH_MEMORY): Ditto. + (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto. + (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto. + (X86_TUNE_USE_SAHF): Ditto. + (X86_TUNE_USE_BT): Ditto. + (X86_TUNE_AVOID_MFENCE): Ditto. + (X86_TUNE_USE_FFREEP): Ditto. + (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto. + (X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL): Ditto. + (X86_TUNE_SSE_TYPELESS_STORES): Ditto. + (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto. + (X86_TUNE_USE_GATHER_2PARTS): Ditto. + (X86_TUNE_USE_GATHER_4PARTS): Ditto. + (X86_TUNE_USE_GATHER_8PARTS): Ditto. + (X86_TUNE_AVOID_128FMA_CHAINS): Ditto. + (X86_TUNE_AVOID_256FMA_CHAINS): Ditto. + (X86_TUNE_USE_RCR): Ditto. + (X86_TUNE_AVX256_MOVE_BY_PIECES): Handle m_C86_4G_M{4,6}. + (X86_TUNE_USE_SCATTER_2PARTS): Handle m_C86_4G_M7. + (X86_TUNE_USE_SCATTER_4PARTS): Ditto. + (X86_TUNE_USE_SCATTER_8PARTS): Ditto. + (X86_TUNE_SSE_REDUCTION_PREFER_PSHUF): Ditto. + (X86_TUNE_AVX512_SPLIT_REGS): Ditto. + (X86_TUNE_AVX512_MOVE_BY_PIECES): Ditto. + (X86_TUNE_AVX512_MASKED_EPILOGUES): Ditto. + * doc/extend.texi: Document about hygonfam18h and c86-4g-m{4,6,7}. + * doc/invoke.texi: Document about c86-4g-m{4,6,7}. + * config/i386/c86-4g-m7.md: New file for c86-4g-m7 scheduling model + information. + * config/i386/c86-4g.md: New file for c86-4g-m{4,6} scheduling model + information. + * config/i386/i386.md (cpu attr): Add c86_4g_m{4,6,7}. + (c86-4g.md): New include. + (c86-4g-m7.md): Ditto. + (*cmpi<unord>xf_i387): Set attr c86_decode. + (*cmpi<unord><MODEF:mode>): Ditto. + (swap<mode>): Ditto. + (*swap<mode>): Ditto. + (extendhisi2): Ditto. + (floathi<mode>2): Ditto. + (float<SWI48x:mode>xf2): Ditto. + (*float<SWI48:mode><MODEF:mode>2): Ditto. + (*floatdi<MODEF:mode>2_i387): Ditto. + (*anddi_1_bt): Ditto. + (*iordi_1_bts): Ditto. + (*xordi_1_btc): Ditto. + (*<btsc><mode>): Ditto. + (*btr<mode>): Ditto. + (*btsq_imm): Ditto. + (*btrq_imm): Ditto. + (*btcq_imm): Ditto. + (*tzcnt<mode>_1): Ditto. + (*tzcnt<mode>_1_falsedep): Ditto. + (*bsf<mode>_1): Ditto. + (*ctz<mode>2_falsedep): Ditto. + (*ctzsi2_zext): Ditto. + (*ctzsi2_zext_falsedep): Ditto. + (bsr_rex64): Ditto. + (bsr_rex64_1): Ditto. + (bsr_rex64_1_zext): Ditto. + (bsr): Ditto. + (bsr_1): Ditto. + (bsr_zext_1): Ditto. + (*bswaphi2_movbe): Ditto. + (*bswaphi2): Ditto. + (bswaphisi2_lowpart): Ditto. + (fpremxf4_i387): Ditto. + (fprem1xf4_i387): Ditto. + (<sincos>xf2): Ditto. + (sincosxf3): Ditto. + (fptanxf4_i387): Ditto. + (atan2xf3): Ditto. + (fyl2xxf3_i387): Ditto. + (fyl2xp1xf3_i387): Ditto. + (fxtractxf3_i387): Ditto. + (*f2xm1xf2_i387): Ditto. + (fscalexf4_i387): Ditto. + (rintxf2): Ditto. + (*movxi_internal_avx512f): Set attr c86_attr. + (*movoi_internal_avx): Ditto. + (*movti_internal): Ditto. + (*movdi_internal): Ditto. + (*movsi_internal): Ditto. + (*movhi_internal): Ditto. + (*movtf_internal): Ditto. + (*movdf_internal): Ditto. + (*movsf_internal): Ditto. + (*zero_extendsidi2): Ditto. + (sqrtxf2): Ditto. + (<smaxmin:code><mode>3): Ditto. + (*ieee_s<ieee_maxmin><mode>3): Ditto. + * config/i386/mmx.md (*mmx_maskmovq): Set attr c86_decode. + (*mmx_maskmovq): Ditto. + (sse_movntq): Set attr c86_attr. + (*mmx_blendps): Ditto. + (mmx_blendvps): Ditto. + (*mmx_pmaddwd): Ditto. + (mmx_pblendvb_v8qi): Ditto. + (mmx_pblendvb_<mode>): Ditto. + (sse4_1_<code>v4qiv4hi2): Ditto. + (sse4_1_<code>v2hiv2si2): Ditto. + (sse4_1_<code>v2qiv2si2): Ditto. + (sse4_1_<code>v2qiv2hi2): Ditto. + (*mmx_pinsrd): Ditto. + (*mmx_pinsrw): Ditto. + (*mmx_pinsrb): Ditto. + (*mmx_pextrw): Ditto. + (*mmx_pextrw<mode>): Ditto. + (*mmx_pextrw_zext): Ditto. + (*mmx_pextrb): Ditto. + (*mmx_pextrb_zext): Ditto. + (*mmx_pblendw64): Ditto. + (*mmx_pblendw32): Ditto. + (*vec_extractv2si_1): Ditto. + (*vec_extractv2si_1_zext): Ditto. + (*pinsrw): Ditto. + (*pinsrb): Ditto. + (*pextrw): Ditto. + (*pextrw<mode>): Ditto. + (*pextrw_zext): Ditto. + (*pextrb): Ditto. + (*pextrb_zext): Ditto. + (*mmx_psadbw): Ditto. + * config/i386/sse.md (ktest<mode>): Set attr c86_decode. + (*kortest<mode>): Ditto. + (sse_cvtsi2ss<rex64namesuffix><round_name>): Ditto. + (sse2_cvtsi2sd): Ditto. + (sse2_maskmovdqu): Ditto. + (*<sse>_dp<ssemodesuffix><avxsizesuffix>): Ditto. + (*<sse4_1_avx2>_mpsadbw): Ditto. + (pclmulqdq): Ditto. + (<mask_codefor>conflict<mode><mask_name>): Ditto. + (<avx512>_blendm<mode>): Set attr c86_attr. + (sse2_movnti<mode>): Ditto. + (<sse>_movnt<mode>): Ditto. + (<sse2>_movnt<mode>): Ditto. + (<sse>_rcp<mode>2): Ditto. + (sse_vmrcpv4sf2): Ditto. + (<mask_codefor>rcp14<mode><mask_name>): Ditto. + (srcp14<mode>): Ditto. + (srcp14<mode>_mask): Ditto. + (<sse>_sqrt<mode>2<mask_name><round_name>): Ditto. + (<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): Ditto. + (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): Ditto. + (<mask_codefor>rsqrt14<mode><mask_name>): Ditto. + (rsqrt14<mode>): Ditto. + (rsqrt14_<mode>_mask"): Ditto. + (*<code><mode>3<mask_name><round_saeonly_name>): Ditto. + (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>): Ditto. + (*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>): + Ditto. + (<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name> + <round_saeonly_scalar_name>): Ditto. + (*ieee_<ieee_maxmin><mode>3): Ditto. + (avx_h<insn>v4df3): Ditto. + (*sse3_haddv2df3): Ditto. + (sse3_hsubv2df3): Ditto. + (*sse3_haddv2df3_low): Ditto. + (*sse3_hsubv2df3_low): Ditto. + (avx_h<insn>v8sf3): Ditto. + (sse3_h<insn>v4sf3): Ditto. + (*<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): Ditto. + (reduces<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto. + (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Ditto. + (<sse>_andnot<mode>3<mask_name>): Ditto. + (*<code><mode>3<mask_name>): Ditto. + (*andnot<mode>3): Ditto. + (<code><mode>3): Ditto. + (*<code>tf3): Ditto. + (vec_set<mode>_0): Ditto. + (@vec_set<mode>_0): Ditto. + (*sse4_1_extractps): Ditto. + (vec_extract<mode>): Ditto. + (<mask_codefor><avx512>_align<mode><mask_name>): Ditto. + (avx512bw_pmaddwd512<mode><mask_name>): Ditto. + (*avx2_pmaddw): Ditto. + (*sse2_pmaddwd): Ditto. + (*avx2_<code><mode>3): Ditto. + (*avx512f_<code><mode>3<mask_name>): Ditto. + (*avx512bw_<code><mode>3<mask_name>): Ditto. + (*sse4_1_<code><mode>3<mask_name>): Ditto. + (*<code>v8hi3): Ditto. + (*<code>v16qi3): Ditto. + (*andnot<mode>3_mask): Ditto. + (*<code><mode>3): Ditto. + (<code>v1ti3): Ditto. + (<sse2p4_1>_pinsr<ssemodesuffix>): Ditto. + (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Ditto. + (<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf> + _1<mask_name>): Ditto. + (vec_set_lo_<mode><mask_name>): Ditto. + (vec_set_hi_<mode><mask_name>): Ditto. + (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>): Ditto. + (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto. + (*avx512f_shuf_<shuffletype>64x2_1<mask_name>_1): Ditto. + (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ditto. + (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto. + (*avx512f_shuf_<shuffletype>32x4_1<mask_name>_1): Ditto. + (*vec_extract<mode>): Ditto. + (*vec_extract<PEXTR_MODE12:mode>_zext): Ditto. + (*vec_extractv16qi_zext): Ditto. + (*vec_extractv4si): Ditto. + (*vec_extractv4si_zext): Ditto. + (*vec_extractv2di_1): Ditto. + (*vec_concatv2si_sse4_1): Ditto. + (vec_concatv2di): Ditto. + (*<sse2_avx2>_uavg<mode>3<mask_name>): Ditto. + (*<sse2_avx2>_psadbw): Ditto. + (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Ditto. + (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): Ditto. + (<sse2_avx2>_pmovmskb): Ditto. + (*<sse2_avx2>_pmovmskb_zext): Ditto. + (*sse2_maskmovdqu): Ditto. + (avx2_ph<plusminus_mnemonic>wv16hi3): Ditto. + (ssse3_ph<plusminus_mnemonic>wv8hi3): Ditto. + (ssse3_ph<plusminus_mnemonic>dv4si3): Ditto. + (avx2_ph<plusminus_mnemonic>dv8si3): Ditto. + (avx2_pmaddubsw256): Ditto. + (avx512bw_pmaddubsw512<mode><mask_name>): Ditto. + (ssse3_pmaddubsw128): Ditto. + (<ssse3_avx2>_psign<mode>3): Ditto. + (ssse3_psign<mode>3): Ditto. + (*abs<mode>2): Ditto. + (abs<mode>2_mask): Ditto. + (abs<mode>2_mask): Ditto. + (sse4a_movnt<mode>): Ditto. + (sse4a_vmmovnt<mode>): Ditto. + (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto. + (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto. + (sse4_1_blendv<ssemodesuffix>): Ditto. + (<vi8_sse4_1_avx2_avx512>_movntdqa): Ditto. + (<sse4_1_avx2>_pblendvb): Ditto. + (sse4_1_pblend<ssemodesuffix>): Ditto. + (*avx2_pblend<ssemodesuffix>): Ditto. + (avx2_pblendd<mode>): Ditto. + (avx2_<code>v16qiv16hi2<mask_name>): Ditto. + (avx512bw_<code>v32qiv32hi2<mask_name>): Ditto. + (sse4_1_<code>v8qiv8hi2<mask_name>): Ditto. + (*sse4_1_<code>v8qiv8hi2<mask_name>_1): Ditto. + (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto. + (avx2_<code>v8qiv8si2<mask_name>): Ditto. + (*avx2_<code>v8qiv8si2<mask_name>_1): Ditto. + (sse4_1_<code>v4qiv4si2<mask_name>): Ditto. + (*sse4_1_<code>v4qiv4si2<mask_name>_1): Ditto. + (avx512f_<code>v16hiv16si2<mask_name>): Ditto. + (avx2_<code>v8hiv8si2<mask_name>): Ditto. + (sse4_1_<code>v4hiv4si2<mask_name>): Ditto. + (*sse4_1_<code>v4hiv4si2<mask_name>_1): Ditto. + (avx512f_<code>v8qiv8di2<mask_name>): Ditto. + (*avx512f_<code>v8qiv8di2<mask_name>_1): Ditto. + (avx2_<code>v4qiv4di2<mask_name>): Ditto. + (*avx2_<code>v4qiv4di2<mask_name>_1): Ditto. + (sse4_1_<code>v2qiv2di2<mask_name>): Ditto. + (*sse4_1_<code>v2qiv2di2<mask_name>_1): Ditto. + (avx512f_<code>v8hiv8di2<mask_name>): Ditto. + (avx2_<code>v4hiv4di2<mask_name>): Ditto. + (*avx2_<code>v4hiv4di2<mask_name>_1): Ditto. + (sse4_1_<code>v2hiv2di2<mask_name>): Ditto. + (*sse4_1_<code>v2hiv2di2<mask_name>_1): Ditto. + (avx512f_<code>v8siv8di2<mask_name>): Ditto. + (avx2_<code>v4siv4di2<mask_name>): Ditto. + (sse4_1_<code>v2siv2di2<mask_name>): Ditto. + (*sse4_1_<code>v2siv2di2<mask_name>_1): Ditto. + (sse4_1_round<ssescalarmodesuffix>): Ditto. + (*sse4_1_round<ssescalarmodesuffix>"): Ditto. + (sse4_2_pcmpestri): Ditto. + (sse4_2_pcmpestrm): Ditto. + (sse4_2_pcmpestr_cconly): Ditto. + (sse4_2_pcmpistri): Ditto. + (sse4_2_pcmpistrm): Ditto. + (sse4_2_pcmpistr_cconly): Ditto. + (xop_phadd<u>bw): Ditto. + (xop_phadd<u>bd): Ditto. + (xop_phadd<u>bq): Ditto. + (xop_phadd<u>wd): Ditto. + (xop_phadd<u>wq): Ditto. + (xop_phadd<u>dq): Ditto. + (xop_phsubbw): Ditto. + (xop_phsubwd): Ditto. + (xop_phsubdq): Ditto. + (aesenc): Ditto. + (aesenclast): Ditto. + (aesdec): Ditto. + (aesdeclast): Ditto. + (aesimc): Ditto. + (aeskeygenassist): Ditto. + (<avx2_avx512>_permvar<mode><mask_name>): Ditto. + (avx2_perm<mode>_1<mask_name>): Ditto. + (<avx512>_permvar<mode><mask_name>): Ditto. + (avx512f_perm<mode>_1<mask_name>): Ditto. + (<mask_codefor>avx512f_broadcast<mode><mask_name>): Ditto. + (avx_vbroadcastf128_<mode>): Ditto. + (<mask_codefor>avx512vl_broadcast<mode><mask_name>_1): Ditto. + (<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Ditto. + (*<avx512>_vpermi2var<mode>3_mask): Ditto. + (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto. + (<avx512>_vpermt2var<mode>3_mask): Ditto. + (*avx_vperm2f128<mode>_nozero): Ditto. + (vec_set_lo_<mode><mask_name>): Ditto. + (vec_set_hi_<mode><mask_name>): Ditto. + (vec_set_lo_<mode>): Ditto. + (vec_set_hi_<mode>): Ditto. + (vec_set_lo_v32qi): Ditto. + (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Ditto. + (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Ditto. + (avx_vec_concat<mode>): Ditto. + (<avx512>_compress<mode>_mask): Ditto. + (compress<mode>_mask): Ditto. + (<avx512>_compressstore<mode>_mask): Ditto. + (compressstore<mode>_mask): Ditto. + (expand<mode>_mask): Ditto. + (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Ditto. + (clz<mode>2<mask_name>): Ditto. + (vpmadd52<vpmadd52type>v8di): Ditto. + (vpmadd52<vpmadd52type><mode>): Ditto. + (vpmadd52<vpmadd52type><mode>_maskz_1): Ditto. + (vpmadd52<vpmadd52type><mode>_mask): Ditto. + (vaesdec_<mode>): Ditto. + (vaesdeclast_<mode>): Ditto. + (vaesenc_<mode>): Ditto. + (vaesenclast_<mode>): Ditto. + +2026-06-06 Jakub Jelinek <[email protected]> + + Backported from master: + 2026-06-06 Jakub Jelinek <[email protected]> + + PR target/125611 + * config/i386/sse.md (<ssse3_avx2>_pmulhrsw<mode>3, smulhrs<mode>3): + Use vector_operand instead of nonimmediate_operand. + 2026-06-03 Richard Sandiford <[email protected]> PR rtl-optimization/125375 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index cf4a41146e2d..eed21ff12b80 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20260604 +20260609 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 3238167626dc..7fbd6096375a 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,59 @@ +2026-06-06 Eric Botcazou <[email protected]> + + * sem_ch3.adb (Analyze_Private_Extension_Declaration): Revert latest + change. + (Find_Type_Of_Subtype_Indic): Return Any_Type if Find_Type fails to + resolve the type. + * sem_ch12.adb (Analyze_Formal_Derived_Type): Restore more specific + error recovery path. + +2026-06-06 Ronan Desplanques <[email protected]> + + * exp_ch6.adb (Needs_BIP_Collection): Fix condition. + +2026-06-06 Mathias Aparicio <[email protected]> + + * libgnat/a-textio.adb + (Get_Upper_Half_Char, Get_Upper_Half_Char_Immed): Replace + Constraint_Error with Data_Error + +2026-06-06 Viljar Indus <[email protected]> + + * sem_warn.adb (Warn_On_Suspicious_Index): Only check elements + that are coming from source. + +2026-06-06 Eric Botcazou <[email protected]> + + * sem_ch3.adb (Analyze_Private_Extension_Declaration): Be prepared + for Find_Type_Of_Subtype_Indic returning no type. + * sem_ch4.adb (Process_Generic_Instantiation): Give an error if the + generic instantation is referenced in a generic formal part. + * sem_ch12.adb (Analyze_Formal_Derived_Type): Return early in every + case of serious errors. + +2026-06-04 Artur Pietrek <[email protected]> + + * exp_ch7.adb (Make_Address_For_Finalize): check + Has_Controlled_Component predicate before emitting the shift to be + consistant with what Is_Constr_Array_Subt_With_Bounds says. + +2026-06-04 Eric Botcazou <[email protected]> + + * exp_ch4.adb (Expand_Allocator_Expression): In the case of access + discriminants, pass Zero_On_Dynamic_Level to compute the static + accessibility level of the expression. + * sem_res.adb (Check_Aliased_Parameter): Pass Zero_On_Dynamic_Level + to compute the static accessibility level of actual parameters. + +2026-06-04 Piotr Trojanek <[email protected]> + + * sem_ch9.adb (Analyze_Requeue): Fix unbalanced parens. + +2026-06-04 Eric Botcazou <[email protected]> + + * sem_util.ads (In_Reverse_Storage_Order_Object): Adjust. + * sem_util.adb (In_Reverse_Storage_Order_Object): Rewrite. + 2026-06-02 Eric Botcazou <[email protected]> * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Validate diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 72507cc26e89..39ca5ff7ea8c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,47 @@ +2026-06-05 Patrick Palka <[email protected]> + + Backported from master: + 2026-06-05 Patrick Palka <[email protected]> + + PR c++/125334 + * module.cc (depset::hash::add_dependent_adl_entities): + Disable when inside a header unit. + +2026-06-05 Patrick Palka <[email protected]> + + Backported from master: + 2026-06-05 Patrick Palka <[email protected]> + + * module.cc (dep_adl_info::args): Initializer to nullptr + instead of immediately allocating. + (depset::hash::add_dependent_adl_entities): Exit early + for non-type-dependent calls and operator expressions. + Only allocate dep_adl_info::args if we're not exiting early. + Correct all-type-dependent args test. + * name-lookup.cc (name_lookup::preserve_state): Replace + propagation of tentative flag with assert that it's not + set. + +2026-06-04 Patrick Palka <[email protected]> + + Backported from master: + 2026-06-03 Patrick Palka <[email protected]> + + PR c++/125378 + * tree.cc (build_min_non_dep_op_overload): Handle comparison + operator expressions rewritten from a <=> that contain an + integer promotion. + +2026-06-04 Patrick Palka <[email protected]> + + Backported from master: + 2026-06-03 Patrick Palka <[email protected]> + + PR c++/125490 + * parser.cc (cp_parser_constraint_expression): Pass + no_toplevel_fold_p=false instead of =true to + cp_parser_binary_expression. + 2026-06-01 Jakub Jelinek <[email protected]> Backported from master: diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 86701b414730..b612894de54e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,24 @@ +2026-06-09 Paul Thomas <[email protected]> + + Backported from master: + 2026-06-09 Paul Thomas <[email protected]> + + PR fortran/125669 + * decl.cc (gfc_get_pdt_instance): If the bound expressions for + and array component, of the length expression for a character + component, gave simplified to a constant, do not set attributes + pdt_array and pdt_string respectively. + +2026-06-08 Harald Anlauf <[email protected]> + + Backported from master: + 2026-06-06 Harald Anlauf <[email protected]> + + PR fortran/125606 + * trans-intrinsic.cc (gfc_conv_intrinsic_loc): When the argument + of LOC() is not scalar or known to be simply contiguous, simply + take the address of the argument array's first element. + 2026-06-01 Harald Anlauf <[email protected]> Backported from master: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 91a26c04d88c..36912c5a5ffb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,67 @@ +2026-06-09 Paul Thomas <[email protected]> + + Backported from master: + 2026-06-09 Paul Thomas <[email protected]> + + PR fortran/125669 + * gfortran.dg/pdt_92.f03: New test. + +2026-06-09 Xin Liu <[email protected]> + + Backported from master: + 2026-04-29 Xin Liu <[email protected]> + Zhaoling Bao <[email protected]> + + * gcc.target/i386/builtin_target.c: Add handling for HYGON CPUs by + validating the vendor and invoking HYGON-specific CPU detection. + * gcc.target/i386/funcspec-56.inc: Test function target attribute on + {arch,tune}=c86-4g-m{4,6,7}. + * g++.target/i386/mv33.C: New test. + +2026-06-08 Harald Anlauf <[email protected]> + + Backported from master: + 2026-06-06 Harald Anlauf <[email protected]> + + PR fortran/125606 + * gfortran.dg/loc_3.f90: New test. + +2026-06-08 Torbjörn SVENSSON <[email protected]> + + Backported from master: + 2026-06-08 Torbjörn SVENSSON <[email protected]> + + * g++.dg/modules/test-p1689.py: Make arrays have predictable + order. + +2026-06-06 Jakub Jelinek <[email protected]> + + Backported from master: + 2026-06-06 Jakub Jelinek <[email protected]> + + PR target/125611 + * gcc.target/i386/ssse3-pr125611.c: New test. + +2026-06-04 Patrick Palka <[email protected]> + + Backported from master: + 2026-06-03 Patrick Palka <[email protected]> + + PR c++/125378 + * g++.dg/lookup/operator-8b.C: New test. + * g++.dg/lookup/operator-8c.C: New test. + * g++.dg/lookup/operator-9a.C: New test. + * g++.dg/lookup/operator-9b.C: New test. + +2026-06-04 Patrick Palka <[email protected]> + + Backported from master: + 2026-06-03 Patrick Palka <[email protected]> + + PR c++/125490 + * g++.dg/cpp2a/concepts-pr125490.C: New test. + * g++.dg/cpp2a/concepts-pr125490a.C: New test. + 2026-06-03 Richard Sandiford <[email protected]> * gcc.dg/pr125375.c: New test. diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 10d64113f3e9..ff1d3ecc74d1 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,93 @@ +2026-06-04 Patrick Palka <[email protected]> + + Backported from master: + 2026-05-29 Patrick Palka <[email protected]> + + * include/std/flat_set (_Flat_set_impl::swap): Swap _M_cont + first. + +2026-06-04 Patrick Palka <[email protected]> + + Backported from master: + 2026-05-28 Patrick Palka <[email protected]> + + * include/std/flat_map (flat_map): Bring in operator= from + _Flat_map_base. + (flat_multimap): Likewise. + * include/std/flat_set (flat_set): Bring in operator= from + _Flat_set_base. + (flat_multiset): Likewise. + * testsuite/23_containers/flat_map/1.cc (test11): Simplify by + using = {...}. + (test12): New test. + * testsuite/23_containers/flat_multimap/1.cc (test10): Simplify + by using = {...}. + (test11): New test. + * testsuite/23_containers/flat_multiset/1.cc (test10): Simplify + by using = {...}. + (test11): New test. + * testsuite/23_containers/flat_set/1.cc (test10): Simplify by + using = {...}. + (test11): New test. + +2026-06-04 Patrick Palka <[email protected]> + + Backported from master: + 2026-05-28 Patrick Palka <[email protected]> + + * include/bits/version.def (flat_map): Bump to 202511. + (flat_set): Likewise. + * include/bits/version.h: Regenerate. + * include/std/flat_map (_Flat_map_impl): Remove + is_nothrow_swappable_v assertions. + (_Flat_map_impl::_Flat_map_impl): Explicitly default copy ctor. + Define move ctor with corrected exception handling as per + P3567R2. + (_Flat_map_impl::operator=): Likewise. + (_Flat_map_impl::insert_range): Define new __sorted_t overload + as per P3567R2. + (_Flat_map_impl::swap): Make conditionally noexcept as per + P3567R2. + * include/std/flat_set (_Flat_set_impl): Remove + is_nothrow_swappable_v assertion. + (_Flat_set_impl::_Flat_set_impl): Explicitly default copy ctor. + Define move ctor with correct invariant preserving behavior as + per P3567R2. + (_Flat_set_impl::operator=): Likewise. + (_Flat_set_impl::_M_insert_range): Factored out from + insert_range. Add bool parameter __is_sorted defaulted to + false. + (_Flat_set_impl::insert_range): Define new __sorted_t overload + as per P3567R2. + (_Flat_set_impl::swap): Make conditionally noexcept as per + P3567R2. Correct to use ranges::swap instead of ADL swap. + * testsuite/23_containers/flat_map/1.cc (test11, test12): + New tests. + * testsuite/23_containers/flat_multimap/1.cc (test10, test11): + New tests. + * testsuite/23_containers/flat_multiset/1.cc (test10, test11): + New tests. + * testsuite/23_containers/flat_set/1.cc (test10, test11): + New tests. + +2026-06-04 Patrick Palka <[email protected]> + + Backported from master: + 2026-05-28 Patrick Palka <[email protected]> + + * include/std/flat_map (_Flat_map_impl::_M_insert): New bool + parameter __is_sorted defaulted to false. Reimplement using + views::zip and ranges::inplace_merge. + (_Flat_map_impl::insert): In the __sorted_t overload, pass + __is_sorted=true to _M_insert. + +2026-06-04 Jonathan Wakely <[email protected]> + + Backported from master: + 2026-06-04 Jonathan Wakely <[email protected]> + + * include/debug/safe_iterator.h: Remove trailing whitespace. + 2026-05-27 Jonathan Wakely <[email protected]> Backported from master:
