diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index 69d39cb..3afccde 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -2456,6 +2456,10 @@
 			auto &lhs = state->getPointer(insn.word(4));
 			auto &rhs = state->getPointer(insn.word(5));
 			state->createPointer(insn.resultId(), SIMD::Pointer::IfThenElse(cond.Int(0), lhs, rhs));
+
+			SPIRV_SHADER_DBG("{0}: {1}", insn.word(3), cond);
+			SPIRV_SHADER_DBG("{0}: {1}", insn.word(4), lhs);
+			SPIRV_SHADER_DBG("{0}: {1}", insn.word(5), rhs);
 		}
 		break;
 	default:
@@ -2468,15 +2472,15 @@
 				auto sel = cond.Int(condIsScalar ? 0 : i);
 				dst.move(i, (sel & lhs.Int(i)) | (~sel & rhs.Int(i)));  // TODO: IfThenElse()
 			}
+
+			SPIRV_SHADER_DBG("{0}: {1}", insn.word(2), dst);
+			SPIRV_SHADER_DBG("{0}: {1}", insn.word(3), cond);
+			SPIRV_SHADER_DBG("{0}: {1}", insn.word(4), lhs);
+			SPIRV_SHADER_DBG("{0}: {1}", insn.word(5), rhs);
 		}
 		break;
 	}
 
-	SPIRV_SHADER_DBG("{0}: {1}", insn.word(2), result);
-	SPIRV_SHADER_DBG("{0}: {1}", insn.word(3), cond);
-	SPIRV_SHADER_DBG("{0}: {1}", insn.word(4), lhs);
-	SPIRV_SHADER_DBG("{0}: {1}", insn.word(5), rhs);
-
 	return EmitResult::Continue;
 }
 
diff --git a/src/Pipeline/SpirvShaderMemory.cpp b/src/Pipeline/SpirvShaderMemory.cpp
index f27cbd4..0317704 100644
--- a/src/Pipeline/SpirvShaderMemory.cpp
+++ b/src/Pipeline/SpirvShaderMemory.cpp
@@ -64,6 +64,8 @@
 			auto p = GetElementPointer(ptr, el.offset, interleavedByLane);
 			state->createPointer(resultId, p.Load<SIMD::Pointer>(robustness, state->activeLaneMask(), atomic, memoryOrder, sizeof(void *)));
 		});
+
+		SPIRV_SHADER_DBG("Load(atomic: {0}, order: {1}, ptr: {2}, mask: {3})", atomic, int(memoryOrder), ptr, state->activeLaneMask());
 	}
 	else
 	{
@@ -72,9 +74,9 @@
 			auto p = GetElementPointer(ptr, el.offset, interleavedByLane);
 			dst.move(el.index, p.Load<SIMD::Float>(robustness, state->activeLaneMask(), atomic, memoryOrder));
 		});
-	}
 
-	SPIRV_SHADER_DBG("Load(atomic: {0}, order: {1}, ptr: {2}, val: {3}, mask: {4})", atomic, int(memoryOrder), ptr, dst, state->activeLaneMask());
+		SPIRV_SHADER_DBG("Load(atomic: {0}, order: {1}, ptr: {2}, val: {3}, mask: {4})", atomic, int(memoryOrder), ptr, dst, state->activeLaneMask());
+	}
 
 	return EmitResult::Continue;
 }
