Call to getCastInstrCost(): types
Jonas Paulsson via llvm-commits
llvm-commits at lists.llvm.org
Mon May 29 23:30:20 PDT 2017
ping!
This issue is still stopping a normal run of benchmark suite on SystemZ...
/Jonas
On 2017-05-26 13:04, Jonas Paulsson wrote:
> Hi Matthew,
>
> 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.
>
> SystemZTTIImpl::getCastInstrCost() was called with a query of 'zext <2
> x i32> to i64', which doesn't make sense, I think...
>
> To fix this, I reused what you did in getArithmeticInstrCost() in
> LoopVectorize.cpp with the call to getCastInstrCost(). Does this look
> right to you?
>
> About multiplying with "N *": I see no scalarization overhead included
> here. Is this intended, or is there an improvement planned on this
> more generally?
>
> Also, I have not checked if this is missing in more places, but this
> is the only case I have run into.
>
> /Jonas
>
> 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...
>
>
More information about the llvm-commits
mailing list