Skip to content

Commit cc90c60

Browse files
NikitaRudenkoIntelvladimirlaz
authored andcommitted
Minor changes and cleanups (#553)
* Refined condition for CapabilityVector16 * Removed redundant assert from SPIRVVectorShuffle This assert is redundant because the allowed size of Components is checked by Type. Moreover it can interfere with capabilities allowing non-standart sizes. * Added required capabilities for ExecutionModeSubgroupSize * Added missing float control capabilities to SPIRVIsValidEnum.h
1 parent 0676db2 commit cc90c60

File tree

6 files changed

+9
-2
lines changed

6 files changed

+9
-2
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ template <> inline void SPIRVMap<SPIRVExecutionModeKind, SPIRVCapVec>::init() {
237237
ADD_VEC_INIT(ExecutionModeOutputTriangleStrip, {CapabilityGeometry});
238238
ADD_VEC_INIT(ExecutionModeVecTypeHint, {CapabilityKernel});
239239
ADD_VEC_INIT(ExecutionModeContractionOff, {CapabilityKernel});
240+
ADD_VEC_INIT(ExecutionModeSubgroupSize, {CapabilitySubgroupDispatch});
240241
ADD_VEC_INIT(ExecutionModeDenormPreserve, {CapabilityDenormPreserve});
241242
ADD_VEC_INIT(ExecutionModeDenormFlushToZero, {CapabilityDenormFlushToZero});
242243
ADD_VEC_INIT(ExecutionModeSignedZeroInfNanPreserve,

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2275,7 +2275,6 @@ class SPIRVVectorShuffle : public SPIRVInstruction {
22752275
return;
22762276
assert(getValueType(Vector1) == getValueType(Vector2));
22772277
assert(Components.size() == Type->getVectorComponentCount());
2278-
assert(Components.size() > 1);
22792278
}
22802279
SPIRVId Vector1;
22812280
SPIRVId Vector2;

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,11 @@ inline bool isValid(spv::Capability V) {
581581
case CapabilityGroupNonUniformShuffleRelative:
582582
case CapabilityGroupNonUniformClustered:
583583
case CapabilityGroupNonUniformQuad:
584+
case CapabilityDenormPreserve:
585+
case CapabilityDenormFlushToZero:
586+
case CapabilitySignedZeroInfNanPreserve:
587+
case CapabilityRoundingModeRTE:
588+
case CapabilityRoundingModeRTZ:
584589
case CapabilityFPGAMemoryAttributesINTEL:
585590
case CapabilityArbitraryPrecisionIntegersINTEL:
586591
case CapabilityFPGALoopControlsINTEL:

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,7 @@ template <> inline void SPIRVMap<Capability, std::string>::init() {
495495
add(CapabilityStorageImageWriteWithoutFormat,
496496
"StorageImageWriteWithoutFormat");
497497
add(CapabilityMultiViewport, "MultiViewport");
498+
add(CapabilitySubgroupDispatch, "CapabilitySubgroupDispatch");
498499
add(CapabilityDenormPreserve, "DenormPreserve");
499500
add(CapabilityDenormFlushToZero, "DenormFlushToZero");
500501
add(CapabilitySignedZeroInfNanPreserve, "SignedZeroInfNanPreserve");

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ class SPIRVTypeVector : public SPIRVType {
305305
SPIRVCapVec V(getComponentType()->getRequiredCapability());
306306
// Even though the capability name is "Vector16", it describes
307307
// usage of 8-component or 16-component vectors.
308-
if (CompCount >= 8)
308+
if (CompCount == 8 || CompCount == 16)
309309
V.push_back(CapabilityVector16);
310310
return V;
311311
}

llvm-spirv/test/transcoding/ReqdSubgroupSize.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
; RUN: llvm-spirv %t.spv -to-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV
88
; RUN: llvm-spirv %t.spv -r -o - | llvm-dis -o - | FileCheck %s --check-prefix=CHECK-LLVM
99

10+
; CHECK-SPIRV: Capability CapabilitySubgroupDispatch
1011
; CHECK-SPIRV: EntryPoint 6 [[kernel:[0-9]+]] "foo"
1112
; CHECK-SPIRV: ExecutionMode [[kernel]] 35 8
1213

0 commit comments

Comments
 (0)