Page MenuHomePhabricator

[InstCombine] Make `FoldOpIntoSelect` handle non-constants and use condition to deduce constants.
Needs ReviewPublic

Authored by goldstein.w.n on Fri, Mar 17, 7:05 PM.

Details

Summary
  1. Make FoldOpIntoSelect handle non-constants by returning nullptr instead of aborting.
  2. Make the fold use the information present in the condition for deducing constants i.e: ` %c = icmp eq i8 %x, 10 %s = select i1 %c, i8 3, i8 2 %r = mul i8 %x, %s `

    If we fold the mul into the select, on the true side we insert 10 for %x in the mul.

Diff Detail