diff --git a/src/shader_recompiler/backend/glasm/emit_glasm.cpp b/src/shader_recompiler/backend/glasm/emit_glasm.cpp
index ab6790ce89..e5c96eb7fc 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm.cpp
@@ -54,6 +54,7 @@ public:
         }
         switch (value.type) {
         case Type::Register:
+        case Type::Void:
             break;
         case Type::U32:
             ctx.Add("MOV.U {}.x,{};", reg, value.imm_u32);
diff --git a/src/shader_recompiler/backend/glasm/reg_alloc.cpp b/src/shader_recompiler/backend/glasm/reg_alloc.cpp
index f556f3aee2..0e38f467f7 100644
--- a/src/shader_recompiler/backend/glasm/reg_alloc.cpp
+++ b/src/shader_recompiler/backend/glasm/reg_alloc.cpp
@@ -57,6 +57,9 @@ void RegAlloc::FreeReg(Register reg) {
 Value RegAlloc::MakeImm(const IR::Value& value) {
     Value ret;
     switch (value.Type()) {
+    case IR::Type::Void:
+        ret.type = Type::Void;
+        break;
     case IR::Type::U1:
         ret.type = Type::U32;
         ret.imm_u32 = value.U1() ? 0xffffffff : 0;
diff --git a/src/shader_recompiler/backend/glasm/reg_alloc.h b/src/shader_recompiler/backend/glasm/reg_alloc.h
index 5742436cfb..ede6edd1f3 100644
--- a/src/shader_recompiler/backend/glasm/reg_alloc.h
+++ b/src/shader_recompiler/backend/glasm/reg_alloc.h
@@ -23,6 +23,7 @@ namespace Shader::Backend::GLASM {
 class EmitContext;
 
 enum class Type : u32 {
+    Void,
     Register,
     U32,
     S32,
@@ -65,6 +66,8 @@ struct Value {
             return false;
         }
         switch (type) {
+        case Type::Void:
+            return true;
         case Type::Register:
             return id == rhs.id;
         case Type::U32:
@@ -218,6 +221,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarU32> {
     template <typename FormatContext>
     auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) {
         switch (value.type) {
+        case Shader::Backend::GLASM::Type::Void:
+            break;
         case Shader::Backend::GLASM::Type::Register:
             return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
         case Shader::Backend::GLASM::Type::U32:
@@ -242,6 +247,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarS32> {
     template <typename FormatContext>
     auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) {
         switch (value.type) {
+        case Shader::Backend::GLASM::Type::Void:
+            break;
         case Shader::Backend::GLASM::Type::Register:
             return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
         case Shader::Backend::GLASM::Type::U32:
@@ -266,6 +273,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF32> {
     template <typename FormatContext>
     auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) {
         switch (value.type) {
+        case Shader::Backend::GLASM::Type::Void:
+            break;
         case Shader::Backend::GLASM::Type::Register:
             return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
         case Shader::Backend::GLASM::Type::U32:
@@ -290,6 +299,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF64> {
     template <typename FormatContext>
     auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) {
         switch (value.type) {
+        case Shader::Backend::GLASM::Type::Void:
+            break;
         case Shader::Backend::GLASM::Type::Register:
             return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
         case Shader::Backend::GLASM::Type::U32: