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