This covers SDot, SUDot, and UDot. The *AccSat version will be
added in a follow-up revision.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/include/mlir/Dialect/SPIRV/IR/SPIRVArithmeticOps.td | ||
---|---|---|
580 | FYI, this got reordered when I ran the script to generate new instructions. I can undo this if it makes this revision confusing. |
Awesome! Thanks for working this through!
mlir/include/mlir/Dialect/SPIRV/IR/SPIRVArithmeticOps.td | ||
---|---|---|
580 | SG, thanks for the explanation! | |
mlir/include/mlir/Dialect/SPIRV/IR/SPIRVIntegerDotProductOps.td | ||
47 | Missing optional packed_vector_format? | |
57 | Missing optional packed_vector_format? | |
mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp | ||
57 ↗ | (On Diff #479793) | While we are here can we add everything that gotten promoted to v1.6 so we won't need to come to this place again? List here https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#_changes_from_version_1_5 Some of the extensions might not be defined yet in SPIRVBase.td; feel free to add them. (Also might be good to extract changes to this place to a separate prior patch.) |
mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp | ||
4807 | .. for both operands. (Calling them as vector operands is a bit confusing here given operands can be of integer type too..) | |
4822 | Missing validation rules for "When Vector 1 and Vector 2 are scalar integer types, Packed Vector Format must be specified to select how the integers are to be interpreted as vectors."? | |
mlir/test/Dialect/SPIRV/IR/target-env.mlir | ||
128 | These tests are not implied capabilities? They are suitable extensions and capabilities. Can we also add tests for
|
mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp | ||
---|---|---|
57 ↗ | (On Diff #479793) | Done |
mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp | ||
49 | FYI, I only sorted these lexicographically and added one more name | |
4807 | There can be 2 or 3 operands, so 'both operands' is not precise. |
mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp | ||
---|---|---|
4807 | ah okay. fine to keep as-is to be consistent with the spec then. | |
mlir/test/Dialect/SPIRV/IR/integer-dot-product-ops.mlir | ||
14 | I think we can improve the assembly to print something like spirv.SDot <PackedVectorFormat4x8Bit> %a %b to make this nicer by let assemblyFormat = "$format $vector1 , $vector2 : type(operands) -> type(results) or something. Fine to me to land this revision; but please feel free to play with it a bit. |
mlir/test/Dialect/SPIRV/IR/integer-dot-product-ops.mlir | ||
---|---|---|
14 | Ack. I'll commit this as-is so that we don't keep the size of this patch under control. |
FYI, this got reordered when I ran the script to generate new instructions. I can undo this if it makes this revision confusing.