Handle OpenCL.DebugInfo.100 DebugOperation

Bug: b/148401179
Change-Id: I24879b32d65bed5a4380a444bbcaa5794cfd6d85
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/47929
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Jaebaek Seo <jaebaek@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Pipeline/SpirvShaderDebugger.cpp b/src/Pipeline/SpirvShaderDebugger.cpp
index c5a663d..68c9722 100644
--- a/src/Pipeline/SpirvShaderDebugger.cpp
+++ b/src/Pipeline/SpirvShaderDebugger.cpp
@@ -1394,6 +1394,15 @@
 				}
 			});
 			break;
+		case OpenCLDebugInfo100DebugOperation:
+			defineOrEmit(insn, pass, [&](debug::Operation *operation) {
+				operation->opcode = insn.word(5);
+				for(uint32_t i = 6; i < insn.wordCount(); i++)
+				{
+					operation->operands.push_back(insn.word(i));
+				}
+			});
+			break;
 
 		case OpenCLDebugInfo100DebugTypePointer:
 		case OpenCLDebugInfo100DebugTypeQualifier:
@@ -1406,7 +1415,6 @@
 		case OpenCLDebugInfo100DebugFunctionDeclaration:
 		case OpenCLDebugInfo100DebugLexicalBlockDiscriminator:
 		case OpenCLDebugInfo100DebugInlinedVariable:
-		case OpenCLDebugInfo100DebugOperation:
 		case OpenCLDebugInfo100DebugMacroDef:
 		case OpenCLDebugInfo100DebugMacroUndef:
 		case OpenCLDebugInfo100DebugImportedEntity: