https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114883
--- Comment #5 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- (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 == IFN_COND_ADD || code == IFN_COND_SUB > || code == IFN_COND_MUL || code == IFN_COND_AND > - || code == IFN_COND_IOR || code == IFN_COND_XOR); > + || code == IFN_COND_IOR || code == IFN_COND_XOR > + || code == IFN_COND_MIN); > gcc_assert (op.num_ops == 4 > && (op.ops[reduc_index] > == op.ops[internal_fn_else_index ((internal_fn) > code)])); > > Could fix the ICE. Generate code as: 74 vect__38.89_332 = {_289, _295, _301, _307, _313, _319, _325, _331}; 475 vect__39.90_333 = vect__36.85_228 * vect__38.88_283; 476 vect__39.90_334 = vect__36.85_229 * vect__38.89_332; 477 vect_tinv_80.91_335 = .FMA (vect__33.78_194, vect__32.75_211, vect__39.90_333); 478 vect_tinv_80.91_336 = .FMA (vect__33.79_107, vect__32.75_207, vect__39.90_334); 479 mask__217.92_338 = 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 = 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 = .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 = .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 = .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 = .COND_MIN (mask__217.92_339, vect_dtt_84.93_343, vect_M.94_344, vect_dtt_84.93_343); 485 ivtmp.102_164 = ivtmp.102_119 + 128; 486 ivtmp.105_196 = ivtmp.105_193 + 128; 487 ivtmp.109_136 = ivtmp.109_177 + 128; 488 if (_118 == ivtmp.102_164) 489 goto <bb 13>; [36.35%] 490 else 491 goto <bb 12>; [63.65%] 492 493 <bb 13> [local count: 54066899]: 494 _347 = .REDUC_MIN (vect_M.94_345);