From 126038020c2bd47efaa942ccc364ca5353ffccde Mon Sep 17 00:00:00 2001 From: Arseniy Obolenskiy Date: Thu, 30 Apr 2026 22:51:58 +0200 Subject: [PATCH 06/26] Fix OpCompositeConstructContinuedINTEL operands (#587) * Fix OpCompositeConstructContinuedINTEL operands Remove IdResultType and IdResult from OpCompositeConstructContinuedINTEL This instruction is a continuation that supplies additional constituents to a preceding OpCompositeConstruct and does not produce its own result * Update headers --- include/spirv/unified1/spirv.core.grammar.json | 2 -- include/spirv/unified1/spirv.h | 2 +- include/spirv/unified1/spirv.hpp | 2 +- include/spirv/unified1/spirv.hpp11 | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json index c7e3cc3..2ca9fe4 100644 --- a/include/spirv/unified1/spirv.core.grammar.json +++ b/include/spirv/unified1/spirv.core.grammar.json @@ -11223,8 +11223,6 @@ "class" : "Composite", "opcode" : 6096, "operands" : [ - { "kind" : "IdResultType" }, - { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "Constituents" } ], "capabilities" : [ "LongCompositesINTEL" ], diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h index ea4fb66..169cb06 100644 --- a/include/spirv/unified1/spirv.h +++ b/include/spirv/unified1/spirv.h @@ -3489,7 +3489,7 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp index 3a61c4d..c159586 100644 --- a/include/spirv/unified1/spirv.hpp +++ b/include/spirv/unified1/spirv.hpp @@ -3485,7 +3485,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; - case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; + case OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11 index a3c8b1c..189dbbc 100644 --- a/include/spirv/unified1/spirv.hpp11 +++ b/include/spirv/unified1/spirv.hpp11 @@ -3485,7 +3485,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; - case Op::OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; + case Op::OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; -- 2.54.0