Skip to content

Commit

Permalink
Replace SPV_INTEL_long_composites ext with the SPV_INTEL_long_composites
Browse files Browse the repository at this point in the history
This continues KhronosGroup#2258
All the backports with the rename has reached the backend drivers, so
now it's safe to remove the old naming.
  • Loading branch information
vmaksimo committed Jan 24, 2025
1 parent cec12d6 commit 1af316c
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 23 deletions.
3 changes: 1 addition & 2 deletions include/LLVMSPIRVExtensions.inc
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,7 @@ EXT(SPV_INTEL_variable_length_array)
EXT(SPV_INTEL_fp_fast_math_mode)
EXT(SPV_INTEL_fpga_cluster_attributes)
EXT(SPV_INTEL_loop_fuse)
EXT(SPV_INTEL_long_constant_composite) // TODO: rename to
// SPV_INTEL_long_composites later
EXT(SPV_INTEL_long_composites)
EXT(SPV_EXT_optnone)
EXT(SPV_INTEL_optnone)
EXT(SPV_INTEL_fpga_dsp_control)
Expand Down
10 changes: 4 additions & 6 deletions lib/SPIRV/SPIRVWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -492,20 +492,18 @@ SPIRVType *LLVMToSPIRVBase::transType(Type *T) {
const size_t NumElements = ST->getNumElements();
size_t SPIRVStructNumElements = NumElements;
// In case number of elements is greater than maximum WordCount and
// SPV_INTEL_long_constant_composite is not enabled, the error will be
// SPV_INTEL_long_composites is not enabled, the error will be
// emitted by validate functionality of SPIRVTypeStruct class.
if (NumElements > MaxNumElements &&
BM->isAllowedToUseExtension(
ExtensionID::SPV_INTEL_long_constant_composite)) {
BM->isAllowedToUseExtension(ExtensionID::SPV_INTEL_long_composites)) {
SPIRVStructNumElements = MaxNumElements;
}

auto *Struct = BM->openStructType(SPIRVStructNumElements, Name.str());
mapType(T, Struct);

if (NumElements > MaxNumElements &&
BM->isAllowedToUseExtension(
ExtensionID::SPV_INTEL_long_constant_composite)) {
BM->isAllowedToUseExtension(ExtensionID::SPV_INTEL_long_composites)) {
uint64_t NumOfContinuedInstructions = NumElements / MaxNumElements - 1;
for (uint64_t J = 0; J < NumOfContinuedInstructions; J++) {
auto *Continued = BM->addTypeStructContinuedINTEL(MaxNumElements);
Expand Down Expand Up @@ -2053,7 +2051,7 @@ LLVMToSPIRVBase::transValueWithoutDecoration(Value *V, SPIRVBasicBlock *BB,
BVarInit = I->second;
} else if (Init && !isa<UndefValue>(Init)) {
if (!BM->isAllowedToUseExtension(
ExtensionID::SPV_INTEL_long_constant_composite)) {
ExtensionID::SPV_INTEL_long_composites)) {
if (auto *ArrTy = dyn_cast_or_null<ArrayType>(Init->getType())) {
// First 3 words of OpConstantComposite encode: 1) word count &
// opcode, 2) Result Type and 3) Result Id. Max length of SPIRV
Expand Down
2 changes: 1 addition & 1 deletion lib/SPIRV/libSPIRV/SPIRVEntry.h
Original file line number Diff line number Diff line change
Expand Up @@ -968,7 +968,7 @@ class SPIRVContinuedInstINTELBase : public SPIRVEntryNoId<OC> {
}

std::optional<ExtensionID> getRequiredExtension() const override {
return ExtensionID::SPV_INTEL_long_constant_composite;
return ExtensionID::SPV_INTEL_long_composites;
}

SPIRVWord getNumElements() const { return Elements.size(); }
Expand Down
8 changes: 4 additions & 4 deletions lib/SPIRV/libSPIRV/SPIRVModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1291,10 +1291,10 @@ SPIRVValue *SPIRVModuleImpl::addCompositeConstant(
const int NumElements = Elements.size();

// In case number of elements is greater than maximum WordCount and
// SPV_INTEL_long_constant_composite is not enabled, the error will be emitted
// SPV_INTEL_long_composites is not enabled, the error will be emitted
// by validate functionality of SPIRVCompositeConstant class.
if (NumElements <= MaxNumElements ||
!isAllowedToUseExtension(ExtensionID::SPV_INTEL_long_constant_composite))
!isAllowedToUseExtension(ExtensionID::SPV_INTEL_long_composites))
return addConstant(new SPIRVConstantComposite(this, Ty, getId(), Elements));

auto Start = Elements.begin();
Expand Down Expand Up @@ -1326,10 +1326,10 @@ SPIRVValue *SPIRVModuleImpl::addSpecConstantComposite(
const int NumElements = Elements.size();

// In case number of elements is greater than maximum WordCount and
// SPV_INTEL_long_constant_composite is not enabled, the error will be emitted
// SPV_INTEL_long_composites is not enabled, the error will be emitted
// by validate functionality of SPIRVSpecConstantComposite class.
if (NumElements <= MaxNumElements ||
!isAllowedToUseExtension(ExtensionID::SPV_INTEL_long_constant_composite))
!isAllowedToUseExtension(ExtensionID::SPV_INTEL_long_composites))
return addConstant(
new SPIRVSpecConstantComposite(this, Ty, getId(), Elements));

Expand Down
4 changes: 2 additions & 2 deletions test/SpecConstants/long-spec-const-composite.ll
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
; RUN: llvm-as %s -o %t.bc
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite %t.bc -o %t.spv
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_composites %t.bc -o %t.spv
; RUN: llvm-spirv %t.spv --to-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
Expand All @@ -12,7 +12,7 @@ target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:
target triple = "spir64-unknown-unknown"

; CHECK-SPIRV: Capability LongCompositesINTEL
; CHECK-SPIRV: Extension "SPV_INTEL_long_constant_composite"
; CHECK-SPIRV: Extension "SPV_INTEL_long_composites"
; CHECK-SPIRV-DAG: Decorate [[First:[0-9]+]] SpecId 0
; CHECK-SPIRV-DAG: Decorate [[Last:[0-9]+]] SpecId 65548
; CHECK-SPIRV: TypeInt [[TInt:[0-9]+]] 8
Expand Down
6 changes: 3 additions & 3 deletions test/long-constant-array.ll
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
; RUN: llvm-as %s -o %t.bc
; RUN: not llvm-spirv %t.bc -o %t.spv 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR

; Check that everything is fine if SPV_INTEL_long_constant_composite is enabled
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite %t.bc -o %t.spv
; Check that everything is fine if SPV_INTEL_long_composites is enabled
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_composites %t.bc -o %t.spv
; RUN: llvm-spirv %t.spv --to-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
; TODO: run validator once it supports the extension
; RUNx: spirv-val %t.spv

; CHECK-SPIRV: Capability LongCompositesINTEL
; CHECK-SPIRV: Extension "SPV_INTEL_long_constant_composite"
; CHECK-SPIRV: Extension "SPV_INTEL_long_composites"
; CHECK-SPIRV: TypeInt [[TInt:[0-9]+]] 8
; CHECK-SPIRV: Constant {{[0-9]+}} [[ArrSize:[0-9]+]] 78000
; CHECK-SPIRV: TypeArray [[TArr:[0-9]+]] [[TInt]] [[ArrSize]]
Expand Down
10 changes: 5 additions & 5 deletions test/long-type-struct.ll
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
; RUN: llvm-as %s -o %t.bc
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite %t.bc -o %t.spv
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_composites %t.bc -o %t.spv
; RUN: llvm-spirv %t.spv --to-text -o - | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite -spirv-text %t.rev.bc -o %t2.spt
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_composites -spirv-text %t.rev.bc -o %t2.spt
; RUN: FileCheck --input-file=%t2.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
; TODO: run validator once it supports the extension
; RUNx: spirv-val %t.spv

; RUN: not llvm-spirv %t.bc -o %t.spv 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR

; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite,+SPV_KHR_untyped_pointers %t.bc -o %t.spv
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_composites,+SPV_KHR_untyped_pointers %t.bc -o %t.spv
; RUN: llvm-spirv %t.spv --to-text -o - | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite,+SPV_KHR_untyped_pointers -spirv-text %t.rev.bc -o %t2.spt
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_composites,+SPV_KHR_untyped_pointers -spirv-text %t.rev.bc -o %t2.spt
; RUN: FileCheck --input-file=%t2.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
; TODO: run validator once it supports the extension
Expand All @@ -22,7 +22,7 @@
; RUN: not llvm-spirv %t.bc -o %t.spv 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR

; CHECK-SPIRV: Capability LongCompositesINTEL
; CHECK-SPIRV: Extension "SPV_INTEL_long_constant_composite"
; CHECK-SPIRV: Extension "SPV_INTEL_long_composites"
; CHECK-SPIRV: TypeInt [[TInt:[0-9]+]] 8
; CHECK-SPIRV-TYPED-PTR: TypePointer [[TIntPtr:[0-9]+]] 8 [[TInt]]
; CHECK-SPIRV-UNTYPED-PTR: TypeUntypedPointerKHR [[TIntPtr:[0-9]+]] 8
Expand Down

0 comments on commit 1af316c

Please sign in to comment.