aboutsummaryrefslogtreecommitdiff
path: root/source/val/validate_extensions.cpp
diff options
context:
space:
mode:
authorToomas Remmelg <toomas.remmelg@codeplay.com>2019-05-22 13:09:50 +0100
committeralan-baker <33432579+alan-baker@users.noreply.github.com>2019-05-22 08:09:50 -0400
commit13f61bf859446ca5b0e9cf6260ba24ca7e30ed09 (patch)
tree667df584aea7442fd52f0d61a734a2c009f7016d /source/val/validate_extensions.cpp
parentd9c00e1d2de10043f1d4968c4bced1863d1893c1 (diff)
downloadSPIRV-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.cpp17
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) {