Implement GL_EXT_demote_to_helper_invocation
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 16d90b8..7b1393c 100644
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -3111,6 +3111,12 @@
         builder.clearAccessChain();
         break;
 
+    case glslang::EOpDemote:
+        builder.createNoResultOp(spv::OpDemoteToHelperInvocationEXT);
+        builder.addExtension(spv::E_SPV_EXT_demote_to_helper_invocation);
+        builder.addCapability(spv::CapabilityDemoteToHelperInvocationEXT);
+        break;
+
     default:
         assert(0);
         break;
@@ -7610,6 +7616,13 @@
         builder.createNoResultOp(spv::OpEndInvocationInterlockEXT);
         return 0;
 
+    case glslang::EOpIsHelperInvocation:
+    {
+        std::vector<spv::Id> args; // Dummy arguments
+        spv::Id id = builder.createOp(spv::OpIsHelperInvocationEXT, typeId, args);
+        return id;
+    }
+
     default:
         logger->missingFunctionality("unknown operation with no arguments");
         return 0;