From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id B92EB3858C62; Mon, 29 Apr 2024 08:52:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B92EB3858C62 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1714380756; bh=iDsEQst2oolTmy3dKopwCUhvTBCIVS69ZT3GoTZ00bo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=WqLYz58unN7e8ALJN69AgfKr69hjynsUyQoAKurEYR7/5gwvQRQtFzgafI4NrfEcb uyfZP0fJOAP5w+ct7qxNOYR4jGN3tWCGHg8Utf/vNYxEcclrnSrrgdSQ9R4pbOGEgs h5FFXP9POg7eQeuIY0LWH1FlGmFqiNzAa4I7SfDA= From: "liuhongt at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/114883] [14/15 Regression] 521.wrf_r ICE with -O2 -march=sapphirerapids -fvect-cost-model=cheap Date: Mon, 29 Apr 2024 08:52:35 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: liuhongt at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D114883 --- Comment #5 from Hongtao Liu --- (In reply to Hongtao Liu from comment #4) > diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc > index a6cf0a5546c..ae6abe00f3e 100644 > --- a/gcc/tree-vect-loop.cc > +++ b/gcc/tree-vect-loop.cc > @@ -8505,7 +8505,8 @@ vect_transform_reduction (loop_vec_info loop_vinfo, > { > gcc_assert (code =3D=3D IFN_COND_ADD || code =3D=3D IFN_COND_SUB > || code =3D=3D IFN_COND_MUL || code =3D=3D IFN_COND_AND > - || code =3D=3D IFN_COND_IOR || code =3D=3D IFN_COND_XOR= ); > + || code =3D=3D IFN_COND_IOR || code =3D=3D IFN_COND_XOR > + || code =3D=3D IFN_COND_MIN); > gcc_assert (op.num_ops =3D=3D 4 > && (op.ops[reduc_index] > =3D=3D op.ops[internal_fn_else_index ((internal_fn) > code)])); >=20 > Could fix the ICE. Generate code as: 74 vect__38.89_332 =3D {_289, _295, _301, _307, _313, _319, _325, _331}; 475 vect__39.90_333 =3D vect__36.85_228 * vect__38.88_283; 476 vect__39.90_334 =3D vect__36.85_229 * vect__38.89_332; 477 vect_tinv_80.91_335 =3D .FMA (vect__33.78_194, vect__32.75_211, vect__39.90_333); 478 vect_tinv_80.91_336 =3D .FMA (vect__33.79_107, vect__32.75_207, vect__39.90_334); 479 mask__217.92_338 =3D vect_tinv_80.91_335 > { 9.999999974752427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.999999974752\ 427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.9999999747524270787835121154\ 78515625e-7 }; 480 mask__217.92_339 =3D vect_tinv_80.91_336 > { 9.999999974752427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.999999974752\ 427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.999999974752427078783512115478515625e-7, 9.9999999747524270787835121154\ 78515625e-7 }; 481 vect_dtt_84.93_342 =3D .COND_RDIV (mask__217.92_338, { 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0 }, vect_tinv_80.91_335, { 0.= 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }); 482 vect_dtt_84.93_343 =3D .COND_RDIV (mask__217.92_339, { 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0 }, vect_tinv_80.91_336, { 0.= 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }); 483 vect_M.94_344 =3D .COND_MIN (mask__217.92_338, vect_dtmin_119.64_128, vect_dtt_84.93_342, vect_dtt_84.93_342); 484 vect_M.94_345 =3D .COND_MIN (mask__217.92_339, vect_dtt_84.93_343, vect_M.94_344, vect_dtt_84.93_343); 485 ivtmp.102_164 =3D ivtmp.102_119 + 128; 486 ivtmp.105_196 =3D ivtmp.105_193 + 128; 487 ivtmp.109_136 =3D ivtmp.109_177 + 128; 488 if (_118 =3D=3D ivtmp.102_164) 489 goto ; [36.35%] 490 else 491 goto ; [63.65%] 492 493 [local count: 54066899]: 494 _347 =3D .REDUC_MIN (vect_M.94_345);=