[PATCH] D86383: [GlobalISel] Fold xor(cmp(pred, _, _), 1) -> cmp(inverse(pred), _, _)

Jay Foad via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 27 03:25:02 PDT 2020


foad added a comment.

One of the globalisel code quality regressions vs selectiondag that I'm tracking comes from code like this:

  %40:_(s1) = G_ICMP intpred(uge), %35:_(s32), %37:_
  %41:_(s1) = G_ICMP intpred(uge), %36:_(s32), %38:_
  %42:_(s1) = G_OR %40:_, %41:_
  %43:_(s1) = G_CONSTANT i1 true
  %44:sreg_64_xexec(s1) = G_XOR %42:_, %43:_
  %46:sreg_64_xexec(s64) = SI_IF %44:sreg_64_xexec(s1), %bb.3, implicit-def $exec, implicit-def $scc, implicit $exec

So... is there any chance of extending this patch to be able to invert a whole tree of comparisons combined with ANDs and ORs?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86383



More information about the llvm-commits mailing list