diff options
author | Toomas Remmelg <toomas.remmelg@codeplay.com> | 2019-05-22 13:09:50 +0100 |
---|---|---|
committer | alan-baker <33432579+alan-baker@users.noreply.github.com> | 2019-05-22 08:09:50 -0400 |
commit | 13f61bf859446ca5b0e9cf6260ba24ca7e30ed09 (patch) | |
tree | 667df584aea7442fd52f0d61a734a2c009f7016d /source/val/validate_extensions.cpp | |
parent | d9c00e1d2de10043f1d4968c4bced1863d1893c1 (diff) | |
download | SPIRV-Tools-13f61bf859446ca5b0e9cf6260ba24ca7e30ed09.tar.gz |
Update vloadn and vstoren validation to match the OpenCL Extended Instruction Set Specification (#2599)
Diffstat (limited to 'source/val/validate_extensions.cpp')
-rw-r--r-- | source/val/validate_extensions.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/source/val/validate_extensions.cpp b/source/val/validate_extensions.cpp index f264c8e7..ec769db8 100644 --- a/source/val/validate_extensions.cpp +++ b/source/val/validate_extensions.cpp @@ -1547,11 +1547,14 @@ spv_result_t ValidateExtInst(ValidationState_t& _, const Instruction* inst) { } if (p_storage_class != SpvStorageClassUniformConstant && - p_storage_class != SpvStorageClassGeneric) { + p_storage_class != SpvStorageClassGeneric && + p_storage_class != SpvStorageClassCrossWorkgroup && + p_storage_class != SpvStorageClassWorkgroup && + p_storage_class != SpvStorageClassFunction) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << ext_inst_name() << ": " - << "expected operand P storage class to be UniformConstant or " - "Generic"; + << "expected operand P storage class to be UniformConstant, " + "Generic, CrossWorkgroup, Workgroup or Function"; } if (_.GetComponentType(result_type) != p_data_type) { @@ -1618,10 +1621,14 @@ spv_result_t ValidateExtInst(ValidationState_t& _, const Instruction* inst) { << "expected operand P to be a pointer"; } - if (p_storage_class != SpvStorageClassGeneric) { + if (p_storage_class != SpvStorageClassGeneric && + p_storage_class != SpvStorageClassCrossWorkgroup && + p_storage_class != SpvStorageClassWorkgroup && + p_storage_class != SpvStorageClassFunction) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << ext_inst_name() << ": " - << "expected operand P storage class to be Generic"; + << "expected operand P storage class to be Generic, " + "CrossWorkgroup, Workgroup or Function"; } if (_.GetComponentType(data_type) != p_data_type) { |