Skip to content

Commit a5bef9f

Browse files
YuriPlyakhinjsji
authored andcommitted
1 parent 118199b commit a5bef9f

File tree

5 files changed

+294
-0
lines changed

5 files changed

+294
-0
lines changed

llvm-spirv/include/LLVMSPIRVExtensions.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,4 @@ EXT(SPV_INTEL_task_sequence)
7575
EXT(SPV_INTEL_maximum_registers)
7676
EXT(SPV_INTEL_bindless_images)
7777
EXT(SPV_INTEL_2d_block_io)
78+
EXT(SPV_INTEL_subgroup_matrix_multiply_accumulate)

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVInstruction.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4428,5 +4428,23 @@ _SPIRV_OP(Subgroup2DBlockLoadTranspose, false, 11)
44284428
_SPIRV_OP(Subgroup2DBlockLoadTransform, false, 11)
44294429
#undef _SPIRV_OP
44304430

4431+
class SPIRVSubgroupMatrixMultiplyAccumulateINTELInst
4432+
: public SPIRVInstTemplateBase {
4433+
public:
4434+
std::optional<ExtensionID> getRequiredExtension() const override {
4435+
return ExtensionID::SPV_INTEL_subgroup_matrix_multiply_accumulate;
4436+
}
4437+
SPIRVCapVec getRequiredCapability() const override {
4438+
return getVec(CapabilitySubgroupMatrixMultiplyAccumulateINTEL);
4439+
}
4440+
};
4441+
4442+
#define _SPIRV_OP(x, ...) \
4443+
typedef SPIRVInstTemplate<SPIRVSubgroupMatrixMultiplyAccumulateINTELInst, \
4444+
Op##x##INTEL, __VA_ARGS__> \
4445+
SPIRV##x##INTEL;
4446+
_SPIRV_OP(SubgroupMatrixMultiplyAccumulate, true, 7, true, 4)
4447+
#undef _SPIRV_OP
4448+
44314449
} // namespace SPIRV
44324450
#endif // SPIRV_LIBSPIRV_SPIRVINSTRUCTION_H

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVNameMapEnum.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,8 @@ template <> inline void SPIRVMap<Capability, std::string>::init() {
659659
add(CapabilitySubgroup2DBlockIOINTEL, "Subgroup2DBlockIOINTEL");
660660
add(CapabilitySubgroup2DBlockTransformINTEL, "Subgroup2DBlockTransformINTEL");
661661
add(CapabilitySubgroup2DBlockTransposeINTEL, "Subgroup2DBlockTransposeINTEL");
662+
add(CapabilitySubgroupMatrixMultiplyAccumulateINTEL,
663+
"SubgroupMatrixMultiplyAccumulateINTEL");
662664
// From spirv_internal.hpp
663665
add(internal::CapabilityFastCompositeINTEL, "FastCompositeINTEL");
664666
add(internal::CapabilityOptNoneINTEL, "OptNoneINTEL");

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVOpCodeEnum.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,7 @@ _SPIRV_OP(Subgroup2DBlockLoadTransformINTEL, 6232)
578578
_SPIRV_OP(Subgroup2DBlockLoadTransposeINTEL, 6233)
579579
_SPIRV_OP(Subgroup2DBlockPrefetchINTEL, 6234)
580580
_SPIRV_OP(Subgroup2DBlockStoreINTEL, 6235)
581+
_SPIRV_OP(SubgroupMatrixMultiplyAccumulateINTEL, 6237)
581582
_SPIRV_OP(GroupIMulKHR, 6401)
582583
_SPIRV_OP(GroupFMulKHR, 6402)
583584
_SPIRV_OP(GroupBitwiseAndKHR, 6403)

0 commit comments

Comments
 (0)