MI_ALU_STORE, MI_ALU_ACCU);
 }
 
+/**
+ * Returns (src != 0) ? 1 : 0.
+ */
+static inline struct gen_mi_value
+gen_mi_nz(struct gen_mi_builder *b, struct gen_mi_value src)
+{
+   return gen_mi_math_binop(b, MI_ALU_ADD, src, gen_mi_imm(0),
+                            MI_ALU_STOREINV, MI_ALU_ZF);
+}
+
+/**
+ * Returns (src == 0) ? 1 : 0.
+ */
+static inline struct gen_mi_value
+gen_mi_z(struct gen_mi_builder *b, struct gen_mi_value src)
+{
+   return gen_mi_math_binop(b, MI_ALU_ADD, src, gen_mi_imm(0),
+                            MI_ALU_STORE, MI_ALU_ZF);
+}
+
 static inline struct gen_mi_value
 gen_mi_ior(struct gen_mi_builder *b,
            struct gen_mi_value src0, struct gen_mi_value src1)