[PATCH] D151660: [InstCombine] (icmp eq A, -1) & (icmp eq B, -1) --> (icmp eq (A&B), -1)

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 30 01:44:33 PDT 2023


fhahn added inline comments.


================
Comment at: llvm/test/Transforms/InstCombine/pr62311.ll:75
+  ret i1 %0
+}
----------------
hnrklssn wrote:
> goldstein.w.n wrote:
> > This single test isn't really sufficient.
> > 
> > Can you add a few more simple tests covering the following cases:
> > 
> > 1) (x == -1 && y == -1)
> > 2) (x != -1) || (y != -1)
> > 3) (x == -1) || (y == -1) -- failure case
> > 4) (x == -1) && (y != -1) -- failure case
> > 
> > maybe a few more failure cases using other constants / mismatched constants.
> > Something in the style of `icmp-add.ll` should be fine.
> >  
> > Can you also split the patch with the tests so we can more easily see the diff generated by this patch.
> > 
> > I.e
> > 
> > Patch1: Test Cases
> > Patch2: Implementation
> > 
> > Then match patch2 the parent of patch1.
> For the success cases, could you also add a second run line to show that this transformation is enough to do the vectorisation asked for in https://github.com/llvm/llvm-project/issues/62311?
> Something like:
> ```
> ; RUN: opt < %s -passes=instcombine -S | FileCheck %s
> ; RUN: opt < %s -passes=instcombine,simplify-cfg,<some-vectoriser-pass> -S | FileCheck --check-prefix INTEGRATED %s
> ```
To check the end-to-end result it would probably be better to add a test in `PhaseOrdering` that just runs `-passes='default<O2>'` (or something) rather than having the InstCombine tests depend on other passes


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D151660



More information about the llvm-commits mailing list