Lines Matching defs:inst
34 const Instruction* inst,
36 const spv::Op opcode = inst->opcode();
40 const uint32_t num_words = static_cast<uint32_t>(inst->words().size());
46 return _.diag(SPV_ERROR_INVALID_DATA, inst)
48 << spvOpcodeString(inst->opcode()) << ", zero found";
51 return _.diag(SPV_ERROR_INVALID_DATA, inst)
57 *member_type = _.GetTypeId(inst->word(composite_id_index));
59 return _.diag(SPV_ERROR_INVALID_DATA, inst)
64 const uint32_t component_index = inst->word(word_index);
72 return _.diag(SPV_ERROR_INVALID_DATA, inst)
82 return _.diag(SPV_ERROR_INVALID_DATA, inst)
101 return _.diag(SPV_ERROR_INVALID_DATA, inst)
115 return _.diag(SPV_ERROR_INVALID_DATA, inst)
131 return _.diag(SPV_ERROR_INVALID_DATA, inst)
141 const Instruction* inst) {
142 const uint32_t result_type = inst->type_id();
145 return _.diag(SPV_ERROR_INVALID_DATA, inst)
149 const uint32_t vector_type = _.GetOperandTypeId(inst, 2);
152 return _.diag(SPV_ERROR_INVALID_DATA, inst)
157 return _.diag(SPV_ERROR_INVALID_DATA, inst)
161 const auto index = _.FindDef(inst->GetOperandAs<uint32_t>(3));
163 return _.diag(SPV_ERROR_INVALID_DATA, inst)
168 _.ContainsLimitedUseIntOrFloatType(inst->type_id())) {
169 return _.diag(SPV_ERROR_INVALID_DATA, inst)
176 const Instruction* inst) {
177 const uint32_t result_type = inst->type_id();
180 return _.diag(SPV_ERROR_INVALID_DATA, inst)
184 const uint32_t vector_type = _.GetOperandTypeId(inst, 2);
186 return _.diag(SPV_ERROR_INVALID_DATA, inst)
190 const uint32_t component_type = _.GetOperandTypeId(inst, 3);
192 return _.diag(SPV_ERROR_INVALID_DATA, inst)
197 const uint32_t index_type = _.GetOperandTypeId(inst, 4);
199 return _.diag(SPV_ERROR_INVALID_DATA, inst)
204 _.ContainsLimitedUseIntOrFloatType(inst->type_id())) {
205 return _.diag(SPV_ERROR_INVALID_DATA, inst)
212 const Instruction* inst) {
213 const uint32_t num_operands = static_cast<uint32_t>(inst->operands().size());
214 const uint32_t result_type = inst->type_id();
223 return _.diag(SPV_ERROR_INVALID_DATA, inst)
229 const uint32_t operand_type = _.GetOperandTypeId(inst, operand_index);
235 return _.diag(SPV_ERROR_INVALID_DATA, inst)
245 return _.diag(SPV_ERROR_INVALID_DATA, inst)
263 return _.diag(SPV_ERROR_INVALID_DATA, inst)
270 const uint32_t operand_type = _.GetOperandTypeId(inst, operand_index);
272 return _.diag(SPV_ERROR_INVALID_DATA, inst)
297 return _.diag(SPV_ERROR_INVALID_DATA, inst)
305 const uint32_t operand_type = _.GetOperandTypeId(inst, operand_index);
307 return _.diag(SPV_ERROR_INVALID_DATA, inst)
321 return _.diag(SPV_ERROR_INVALID_DATA, inst)
328 const uint32_t operand_type = _.GetOperandTypeId(inst, operand_index);
331 return _.diag(SPV_ERROR_INVALID_DATA, inst)
346 return _.diag(SPV_ERROR_INVALID_DATA, inst)
350 const uint32_t operand_type_id = _.GetOperandTypeId(inst, 2);
353 return _.diag(SPV_ERROR_INVALID_DATA, inst)
365 return _.diag(SPV_ERROR_INVALID_DATA, inst)
369 const uint32_t operand_type_id = _.GetOperandTypeId(inst, 2);
372 return _.diag(SPV_ERROR_INVALID_DATA, inst)
379 return _.diag(SPV_ERROR_INVALID_DATA, inst)
385 _.ContainsLimitedUseIntOrFloatType(inst->type_id())) {
386 return _.diag(SPV_ERROR_INVALID_DATA, inst)
393 const Instruction* inst) {
395 if (spv_result_t error = GetExtractInsertValueType(_, inst, &member_type)) {
399 const uint32_t result_type = inst->type_id();
401 return _.diag(SPV_ERROR_INVALID_DATA, inst)
409 _.ContainsLimitedUseIntOrFloatType(inst->type_id())) {
410 return _.diag(SPV_ERROR_INVALID_DATA, inst)
418 const Instruction* inst) {
419 const uint32_t object_type = _.GetOperandTypeId(inst, 2);
420 const uint32_t composite_type = _.GetOperandTypeId(inst, 3);
421 const uint32_t result_type = inst->type_id();
423 return _.diag(SPV_ERROR_INVALID_DATA, inst)
425 << spvOpcodeString(inst->opcode()) << " yielding Result Id "
430 if (spv_result_t error = GetExtractInsertValueType(_, inst, &member_type)) {
435 return _.diag(SPV_ERROR_INVALID_DATA, inst)
444 _.ContainsLimitedUseIntOrFloatType(inst->type_id())) {
445 return _.diag(SPV_ERROR_INVALID_DATA, inst)
452 spv_result_t ValidateCopyObject(ValidationState_t& _, const Instruction* inst) {
453 const uint32_t result_type = inst->type_id();
454 const uint32_t operand_type = _.GetOperandTypeId(inst, 2);
456 return _.diag(SPV_ERROR_INVALID_DATA, inst)
460 return _.diag(SPV_ERROR_INVALID_DATA, inst)
466 spv_result_t ValidateTranspose(ValidationState_t& _, const Instruction* inst) {
471 const uint32_t result_type = inst->type_id();
474 return _.diag(SPV_ERROR_INVALID_DATA, inst)
478 const uint32_t matrix_type = _.GetOperandTypeId(inst, 2);
485 return _.diag(SPV_ERROR_INVALID_DATA, inst)
490 return _.diag(SPV_ERROR_INVALID_DATA, inst)
497 return _.diag(SPV_ERROR_INVALID_DATA, inst)
503 _.ContainsLimitedUseIntOrFloatType(inst->type_id())) {
504 return _.diag(SPV_ERROR_INVALID_DATA, inst)
511 const Instruction* inst) {
512 auto resultType = _.FindDef(inst->type_id());
514 return _.diag(SPV_ERROR_INVALID_ID, inst)
523 auto componentCount = inst->operands().size() - 4;
526 return _.diag(SPV_ERROR_INVALID_ID, inst)
534 auto vector1Object = _.FindDef(inst->GetOperandAs<uint32_t>(2));
536 auto vector2Object = _.FindDef(inst->GetOperandAs<uint32_t>(3));
539 return _.diag(SPV_ERROR_INVALID_ID, inst)
543 return _.diag(SPV_ERROR_INVALID_ID, inst)
549 return _.diag(SPV_ERROR_INVALID_ID, inst)
553 return _.diag(SPV_ERROR_INVALID_ID, inst)
562 for (size_t i = firstLiteralIndex; i < inst->operands().size(); ++i) {
563 auto literal = inst->GetOperandAs<uint32_t>(i);
565 return _.diag(SPV_ERROR_INVALID_ID, inst)
572 _.ContainsLimitedUseIntOrFloatType(inst->type_id())) {
573 return _.diag(SPV_ERROR_INVALID_DATA, inst)
581 const Instruction* inst) {
582 const auto result_type = _.FindDef(inst->type_id());
583 const auto source = _.FindDef(inst->GetOperandAs<uint32_t>(2u));
586 return _.diag(SPV_ERROR_INVALID_ID, inst)
591 return _.diag(SPV_ERROR_INVALID_ID, inst)
596 _.ContainsLimitedUseIntOrFloatType(inst->type_id())) {
597 return _.diag(SPV_ERROR_INVALID_DATA, inst)
607 spv_result_t CompositesPass(ValidationState_t& _, const Instruction* inst) {
608 switch (inst->opcode()) {
610 return ValidateVectorExtractDynamic(_, inst);
612 return ValidateVectorInsertDyanmic(_, inst);
614 return ValidateVectorShuffle(_, inst);
616 return ValidateCompositeConstruct(_, inst);
618 return ValidateCompositeExtract(_, inst);
620 return ValidateCompositeInsert(_, inst);
622 return ValidateCopyObject(_, inst);
624 return ValidateTranspose(_, inst);
626 return ValidateCopyLogical(_, inst);