__set_neon_cumulative_sat() modifies the contents on the QC flag, and
some intrinsics do so too: this patch adds the explicit dependency on
the asm statement, to avoid code reordering or removal.

When writing QC, the asm statement now has a fake input dependency,
which is the output of the intrinsic being tested. Modifying the
__set_neon_cumulative_sat macro is necessary, to be able to accept all
the possible input types.

Update the generic code in ref_v_binary_sat_op.c and ref_v_unary_sat_op.c
accordingly, as well as all the tests involving QC.
diff --git a/ref_vqdmull_n.c b/ref_vqdmull_n.c
index 92b1e48..7a482b2 100644
--- a/ref_vqdmull_n.c
+++ b/ref_vqdmull_n.c
@@ -42,7 +42,7 @@
 
   /* vector_res = vqdmull_n(vector,val), then store the result.  */
 #define TEST_VQDMULL_N2(INSN, T1, T2, W, W2, N, L)		\
-  Set_Neon_Cumulative_Sat(0);					\
+  Set_Neon_Cumulative_Sat(0, VECT_VAR(vector_res, T1, W2, N));	\
   VECT_VAR(vector_res, T1, W2, N) =				\
     INSN##_n_##T2##W(VECT_VAR(vector, T1, W, N),		\
 		     L);					\