HomePhabricator

[SelectionDAG] swap select_cc operands to enable folding

Description

[SelectionDAG] swap select_cc operands to enable folding

The DAGCombiner tries to SimplifySelectCC as follows:

select_cc(x, y, 16, 0, cc) -> shl(zext(set_cc(x, y, cc)), 4)

It can't cope with the situation of reordered operands:

select_cc(x, y, 0, 16, cc)

In that case we just need to swap the operands and invert the Condition Code:

select_cc(x, y, 16, 0, ~cc)

Differential Revision: https://reviews.llvm.org/D53236

Details

Committed
alelab01Nov 9 2018, 3:09 AM
Differential Revision
D53236: [SelectionDAG] swap select_cc operands to enable folding
Parents
rL346483: [CallSiteSplitting] Only record conditions up to the IDom(call site).
Branches
Unknown
Tags
Unknown