Lunderberg opened a new pull request #8528:
URL: https://github.com/apache/tvm/pull/8528


   In C-style codegen, pointer types can be freely cast between scalar and 
vectorized types (e.g. `float16x4* <-> float16*`).  In SPIR-V, these are 
separate types, and no such casting is allowed.  This was previously handled by 
having a special-case for `Ramp(base, stride=1, lanes)` in the codegen.  That 
method didn't cover all possible cases, including Broadcast nodes used as 
indices.
   
   PointerValueTypeRewrite previously re-wrote the AllocateNode and parameter 
pointer types, but didn't update the Load/Store node.  This change tracks which 
variables can be updated to a vectorized type, and then updates all references 
to those.  This includes removing the `RampNode`, as the vectorization is then 
included as part of the variable type.
   
   The existing behavior of the StorageRewrite pass, which uses much of the 
same code, is maintained, to avoid breaking codegen that relies on it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to