This can be treated exactly the same as OpAccessChain.
Bug: b/
128690261
Bug: b/
127950082
Test: dEQP-VK.spirv_assembly.instruction.compute.opinboundsaccesschain.*
Change-Id: I65312ad48e461ec83e6999c6a899820e91e2a68b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27368
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
case spv::OpLoad:
case spv::OpAccessChain:
+ case spv::OpInBoundsAccessChain:
case spv::OpCompositeConstruct:
case spv::OpCompositeInsert:
case spv::OpCompositeExtract:
object.kind = Object::Kind::Value;
object.definition = insn;
- if (insn.opcode() == spv::OpAccessChain)
+ if (insn.opcode() == spv::OpAccessChain || insn.opcode() == spv::OpInBoundsAccessChain)
{
// interior ptr has two parts:
// - logical base ptr, common across all lanes and known at compile time
break;
case spv::OpAccessChain:
+ case spv::OpInBoundsAccessChain:
EmitAccessChain(insn, routine);
break;