+ if (arch_register_req_is(req, should_be_same)) {
+ const unsigned same = req->other_same;
+
+ if (is_po2(other) && is_po2(same)) {
+ int idx_other = ntz(other);
+ int idx_same = ntz(same);
+
+ /*
+ * We can safely ignore a should_be_same x should_be_different y
+ * IFF both inputs are equal!
+ */
+ if (get_irn_n(irn, idx_other) == get_irn_n(irn, idx_same)) {
+ return;
+ }
+ }
+ }