Included the requested changes in the patches (to follow). I removed the alignment count check now altogether.
> I'm not sure why you test for unlimited_cost_model here as I said > elsewhere I'm not sure > what not cost modeling means for static decisions. The purpose of > unlimited_cost_model > is to always vectorize when possible and omit the runtime > profitability check. So for peeling > I'd just always use the cost model. Thus please drop this check. Without that, I get one additional FAIL gcc.dg/vect/slp-25.c for x86. It is caused by choosing no peeling (inside costs 0) over peeling for known alignment with unlimited cost model (inside costs 0 as well). Costs 0 for no peeling are caused by count == 0 or rather ncopies = vf / nunits == 4 / 8 == 0 in record_stmt_costs (). Shouldn't always hold ncopies > 0? Even 0.5 would have worked here to make no peeling more expensive than 0. Test suite on s390x is clean. Regards Robin