This is a simple folding that does these:
select x_inv, true, (select y, x, false) => select x_inv, true, y
https://alive2.llvm.org/ce/z/-STJ2d
select (select y, x, false), true, x_inv => select y, true, x_inv
Differential D101807
[InstCombine] Fold more select of selects using isImpliedCondition aqjune on May 3 2021, 6:17 PM. Authored by
Details This is a simple folding that does these: select x_inv, true, (select y, x, false) => select x_inv, true, y https://alive2.llvm.org/ce/z/-STJ2d select (select y, x, false), true, x_inv => select y, true, x_inv
Diff Detail
Event TimelineComment Actions LGTM - seems like there must be more combinations of these implied condition patterns, so we may want to split it into another function and try to make the matching more systematic/complete.
|
Shouldn't we also handle select (select a, b, false), true, c -> select a, true, c here? It seems odd to handle 3 out of 4 patterns.