diff --git a/libs/vkd3d-shader/hlsl_sm4.c b/libs/vkd3d-shader/hlsl_sm4.c
index 3ce6fc5e60d6ff5a8adb7dc344bbce2e93588670..b6d5e92cb70687d4832b29848cab231041ee4296 100644
--- a/libs/vkd3d-shader/hlsl_sm4.c
+++ b/libs/vkd3d-shader/hlsl_sm4.c
@@ -1664,6 +1664,10 @@ static void write_sm4_expr(struct hlsl_ctx *ctx,
             }
             break;
 
+        case HLSL_OP1_REINTERPRET:
+            write_sm4_unary_op(buffer, VKD3D_SM4_OP_MOV, &expr->node, arg1, 0);
+            break;
+
         case HLSL_OP1_ROUND:
             assert(type_is_float(dst_type));
             write_sm4_unary_op(buffer, VKD3D_SM4_OP_ROUND_NE, &expr->node, arg1, 0);
diff --git a/tests/asuint.shader_test b/tests/asuint.shader_test
index 77385515c0fb084fd3d76ddc3a8c2cffe1fee2a6..a08beaf38e5c9c33216429c3545c63a6d817ba11 100644
--- a/tests/asuint.shader_test
+++ b/tests/asuint.shader_test
@@ -16,7 +16,7 @@ float4 main(uniform float f, uniform int i, uniform uint u, uniform half h) : sv
 
 [test]
 uniform 0 uint4 123 0xc0000000 456 0x7fd69345
-todo draw quad
+draw quad
 probe (320,240) rgba (123.0, 3221225472.0, 456.0, 2144768896.0)
 
 
@@ -31,7 +31,7 @@ float4 main(uniform float2x2 m, uniform float4 v) : sv_target
 uniform 0 uint4 11 12 0 0
 uniform 4 uint4 13 14 0 0
 uniform 8 uint4 20 21 22 23
-todo draw quad
+draw quad
 probe (320,240) rgba (13.0, 21.0, 0.0, 0.0)