OpGroupBroadcast added to SPIRV dialect
Details
Diff Detail
Event Timeline
mlir/include/mlir/Dialect/SPIRV/SPIRVGroupOps.td | ||
---|---|---|
89 | You can use AllTypesMatch<["value", "result"]> to enforce that the source and result have the same type and then you can remove it from the assembly format to avoid having redundant types. | |
mlir/lib/Dialect/SPIRV/SPIRVOps.cpp | ||
2020–2024 | nit: Don't use '{' for single line 'if' | |
mlir/test/Dialect/SPIRV/group-ops.mlir | ||
19–23 | Would be good to have an extra positive test with vector of localid |
We also need tests for roundtripping the serialization to SPIR-V binary. Please see this section : https://mlir.llvm.org/docs/Dialects/SPIR-V/#add-a-new-op
"Tests for the op’s custom assembly form and verification should be added to the proper file in test/Dialect/SPIRV/.
The generated op will automatically gain the logic for (de)serialization. However, tests still need to be coupled with the change to make sure no surprises. Serialization tests live in test/Dialect/SPIRV/Serialization."
mlir/lib/Dialect/SPIRV/SPIRVOps.cpp | ||
---|---|---|
2013 | As Thomas suggested, if you add the AllTypesMatch this would not be needed. |
Thank You for the review. Regarding Serialization tests, is there anything more needed than what I already added to mlir/test/Dialect/SPIRV/Serialization/group-ops.mlir?
mlir/include/mlir/Dialect/SPIRV/SPIRVGroupOps.td | ||
---|---|---|
50 | Nit: Refactor this to be within 80 chars. |
mlir/test/Dialect/SPIRV/Serialization/group-ops.mlir | ||
---|---|---|
10 | Could you also add one for vector<..xi32> for localID. Nit: Prefer the CHECK-* to be formatted like this to make it easier to read CHECK-LABEL: func @group_broadcast CHECK: spv.GroupBroadcast ... i.e. |
I added remaining changes requested. Regarding the CHECK-* format I believe it is consistent with other tests.
Since I do not have rw access to llvm repo, may I ask someone to push this change to trunk?
Nit: Refactor this to be within 80 chars.