+/**
+ * Allows or disallows the creation of a Psi for the given Cond selector.
+ * @return 1 if allowed, 0 otherwise
+ */
+static int ia32_is_psi_allowed(ir_node *sel, ir_node *false_res, ir_node *true_res) {
+ ir_node *cmp, *cmp_a;
+ ir_mode *mode;
+
+ if (get_irn_mode(sel) != mode_b)
+ return 0;
+
+ cmp = get_Proj_pred(sel);
+ cmp_a = get_Cmp_left(cmp);
+ mode = get_irn_mode(cmp_a);
+
+ /* we don't want long long an floating point Psi */
+ return ! mode_is_float(mode) && get_mode_size_bits(mode) <= 32;
+}
+