inbelic wrote:

Regarding the comments about differentiating between `OpSDot/DotProduct` and 
`OpSDotKHR/DotProductKHR`:

I agree that these are different ops/capabilities in the SPIR-V spec.

However from a quick attempt to implement this, I found that since the 
Capabilities share the same bit value of (`6016, 6017,...`), we do not have a 
way to differentiate between these capabilities when checking requirements and 
adding available capabilities. This is because `SPIRV::Capability::DotProduct 
== SPIRV::Capability::DotProductKHR = 6019`.

I think implementing a way to differentiate capabilities that have the same 
value is out of scope for this pr. So I would propose that we file a follow-up 
issue to deal with that and either:
- Merge as-is
- Remove the extension based changes from this pr, so only use `OpSDot` and the 
`DotProduct` capability when we have a version that fits
- Remove the version based changes from this pr, so only use `OpSDotKHR` and 
the `DotProductKHR` capability when the extension is provided
- Remove both optimized versions and only lower to the expansion

WDYT?

https://github.com/llvm/llvm-project/pull/113623
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to