<div dir="ltr">Hi Jonas,<div><br></div><div>Sorry for missing your message - I was away on vacation. The patch has been reverted, so you should be unblocked now (see <span style="font-size:12.800000190734863px">PR33193).</span> I will take another look at it today. Regarding the "N *" multiplication, yes, there's not scalarization overhead there. This is for the update instructions of scalarized induction variables, which don't require inserts/extracts (collectLoopScalars). But yeah, we need to consider casts here as well.</div><div><br></div><div>-- Matt</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 30, 2017 at 2:30 AM, Jonas Paulsson via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">ping!<br>
<br>
This issue is still stopping a normal run of benchmark suite on SystemZ...<br>
<br>
/Jonas<div><div class="h5"><br>
<br>
<br>
On 2017-05-26 13:04, Jonas Paulsson wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Matthew,<br>
<br>
your commit "[LV] Update type in cost model for scalarization" triggered an assert in the SystemZ backend. It checks that if the source type is a vector type, the result should also be a vector type.<br>
<br>
SystemZTTIImpl::getCastInstrCo<wbr>st() was called with a query of 'zext <2 x i32> to i64', which doesn't make sense, I think...<br>
<br>
To fix this, I reused what you did in getArithmeticInstrCost() in LoopVectorize.cpp with the call to getCastInstrCost(). Does this look right to you?<br>
<br>
About multiplying with "N *": I see no scalarization overhead included here. Is this intended, or is there an improvement planned on this more generally?<br>
<br>
Also, I have not checked if this is missing in more places, but this is the only case I have run into.<br>
<br>
/Jonas<br>
<br>
PS The assert that triggered is one that I added based on general intuition, and how these methods are called currently. Not sure if I should exclude bitcast from this? That might be still correct, but I don't think it is used that way at least currently...<br>
<br>
<br>
</blockquote>
<br></div></div>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>