[PATCH] D101191: [InstCombine] Fully disable select to and/or i1 folding

Nikita Popov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 3 14:05:55 PDT 2021


nikic added a comment.

Went through all the tests again, looks like there's three patterns that could still be handled. I think the last one of them should be handled, and for the other two it's fine to just open an issue.



================
Comment at: llvm/test/Transforms/InstCombine/and2.ll:51
-; CHECK-NEXT:    [[TMP2:%.*]] = and i1 [[TMP1]], [[B:%.*]]
-; CHECK-NEXT:    ret i1 [[TMP2]]
 ;
----------------
aqjune wrote:
> This one too
Looks like we still miss this one (https://alive2.llvm.org/ce/z/E_F768).


================
Comment at: llvm/test/Transforms/InstCombine/logical-select-inseltpoison.ll:450
+; CHECK-NEXT:    [[AND3:%.*]] = select i1 [[OR]], i1 [[ADD]], i1 false
+; CHECK-NEXT:    ret i1 [[AND3]]
 ;
----------------
Looks like this could be salvaged: https://alive2.llvm.org/ce/z/YQUQew

Doesn't seem important though.


================
Comment at: llvm/test/Transforms/InstCombine/or.ll:1102
+; CHECK-NEXT:    [[AND:%.*]] = select i1 [[Y]], i1 [[X]], i1 false
+; CHECK-NEXT:    [[OR:%.*]] = select i1 [[X_INV]], i1 true, i1 [[AND]]
 ; CHECK-NEXT:    ret i1 [[OR]]
----------------
Can be salvaged: https://alive2.llvm.org/ce/z/-STJ2d

I thought this was already covered by one of the folds though...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D101191/new/

https://reviews.llvm.org/D101191



More information about the cfe-commits mailing list