vrend: Fix atomicCompSwap types

Previously, virgl generated invalid GLSL for atomicCompSwap leading
to compile errors.

Signed-off-by: John Bates <jbates@chromium.org>
Reviewed-by: Lepton Wu <lepton@chromium.org>
diff --git a/src/vrend_shader.c b/src/vrend_shader.c
index 13d858e..3bbe0a9 100644
--- a/src/vrend_shader.c
+++ b/src/vrend_shader.c
@@ -3527,6 +3527,9 @@
 	 stypeprefix = FLOAT_BITS_TO_UINT;
       }
 
+      if (is_cas)
+         snprintf(cas_str, sizeof(cas_str), ", %s(%s(%s))", get_string(type), get_string(stypeprefix), srcs[3]);
+
       emit_buff(&ctx->glsl_strbufs, "%s = %s(atomic%s(%s[int(floatBitsToInt(%s)) >> 2], %s(%s(%s).x)%s));\n",
                 dst, get_string(dtypeprefix), opname, srcs[0], srcs[1],
                 get_string(type), get_string(stypeprefix), srcs[2], cas_str);