+2025-12-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/reduce3.adb: New test.
+
+2025-12-07 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/122343
+ * gcc.target/i386/20040112-1.c: Add -fomit-frame-pointer and use
+ check-function-bodies to check for loop.
+ * gcc.target/i386/avx-ne-convert-1.c: Compile with
+ -fno-fuse-ops-with-volatile-access.
+ * gcc.target/i386/avx10_2-bf16-1.c: Likewise.
+ * gcc.target/i386/avx10_2-convert-1.c: Likewise.
+ * gcc.target/i386/avx10_2-satcvt-1.c: Likewise.
+ * gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c: Likewise.
+ * gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1a.c: Likewise.
+ * gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1b.c: Likewise.
+ * gcc.target/i386/avx512bitalg-vpshufbitqmb.c: Likewise.
+ * gcc.target/i386/avx512bw-vpcmpb-1.c: Likewise.
+ * gcc.target/i386/avx512bw-vpcmpub-1.c: Likewise.
+ * gcc.target/i386/avx512bw-vpcmpuw-1.c: Likewise.
+ * gcc.target/i386/avx512bw-vpcmpw-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vcvtps2qq-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vcvtps2uqq-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vcvtqq2pd-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vcvtqq2ps-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vcvttps2qq-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vcvttps2uqq-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vcvtuqq2pd-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vcvtuqq2ps-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vextractf32x8-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vextractf64x2-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vextracti64x2-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vfpclasspd-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vfpclassps-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vfpclasssd-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vfpclassss-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vpmullq-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vpmullq-3.c: Likewise.
+ * gcc.target/i386/avx512f-pr100267-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcmppd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcmpps-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtps2pd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtsd2si-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtsd2si64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtsd2usi-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtsd2usi64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtsi2ss-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtss2si-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtss2si64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtss2usi-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtss2usi64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvttsd2si-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvttsd2si64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvttsd2usi-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvttsd2usi64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvttss2si-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvttss2si64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvttss2usi-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvttss2usi64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vextractf32x4-1.c: Likewise.
+ * gcc.target/i386/avx512f-vextractf64x4-1.c: Likewise.
+ * gcc.target/i386/avx512f-vextracti64x4-1.c: Likewise.
+ * gcc.target/i386/avx512f-vmovapd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vmovaps-1.c: Likewise.
+ * gcc.target/i386/avx512f-vmovdqa64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpandnq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpbroadcastd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpbroadcastq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpeqq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpequq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpged-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpgeq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpgeud-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpgeuq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpled-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpleq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpleud-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpleuq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpltd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpltq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpltud-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpltuq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpneqd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpneqq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpnequd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpnequq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpud-1.c: Likewise.
+ * gcc.target/i386/avx512f-vpcmpuq-1.c: Likewise.
+ * gcc.target/i386/avx512f-vrndscalepd-1.c: Likewise.
+ * gcc.target/i386/avx512f-vrndscaleps-1.c: Likewise.
+ * gcc.target/i386/avx512fp16-complex-fma.c: Likewise.
+ * gcc.target/i386/avx512fp16-vaddph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtph2dq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtph2pd-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtph2psx-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtph2qq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtph2udq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtph2uw-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtph2w-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtps2ph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvttph2dq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvttph2qq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvttph2udq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvttph2uw-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvttph2w-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vfcmaddcph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vfcmulcph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vfmaddcph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vfmulcph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vfpclassph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vfpclasssh-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vmulph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vrcpph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vrsqrtph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16-vsqrtph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vaddph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vfmulcph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vfpclassph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vmulph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vrcpph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c: Likewise.
+ * gcc.target/i386/avx512fp16vl-vsqrtph-1a.c: Likewise.
+ * gcc.target/i386/avx512vl-pr100267-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vcmppd-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vcmpps-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vcvtpd2ps-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vcvtpd2udq-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vcvttpd2udq-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vcvttps2udq-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vextractf32x4-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vmovapd-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vmovaps-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vmovdqa64-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vpcmpd-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vpcmpeqq-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vpcmpequq-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vpcmpq-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vpcmpud-1.c: Likewise.
+ * gcc.target/i386/avx512vl-vpcmpuq-1.c: Likewise.
+ * gcc.target/i386/pr122343-1a.c: New test.
+ * gcc.target/i386/pr122343-1b.c: Likewise.
+ * gcc.target/i386/pr122343-2a.c: Likewise.
+ * gcc.target/i386/pr122343-2b.c: Likewise.
+ * gcc.target/i386/pr122343-3.c: Likewise.
+ * gcc.target/i386/pr122343-4a.c: Likewise.
+ * gcc.target/i386/pr122343-4b.c: Likewise.
+ * gcc.target/i386/pr122343-5a.c: Likewise.
+ * gcc.target/i386/pr122343-5b.c: Likewise.
+ * gcc.target/i386/pr122343-6a.c: Likewise.
+ * gcc.target/i386/pr122343-6b.c: Likewise.
+ * gcc.target/i386/pr122343-7.c: Likewise.
+
2025-12-06 Alexandre Oliva <oliva@adacore.com>
PR rtl-optimization/122947