[PATCH] D59363: [SelectionDAG] Add icmp UNDEF handling to SelectionDAG::FoldSetCC

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 14 06:55:04 PDT 2019


RKSimon created this revision.
RKSimon added reviewers: spatel, craig.topper, kparzysz, efriedma, t.p.northover, dcederman, jonpa, tlively, majnemer.
Herald added subscribers: jdoerfert, arphaman, jrtc27, fedor.sergeev, aheejin, jgravelle-google, sbc100, javed.absar, jyknight, dschuff, qcolombet.
Herald added a project: LLVM.

First half of PR40800, this patch adds DAG undef handling to icmp instructions to match the behaviour in SimplifyICmpInst, this permits constant folding of vector comparisons where some elements had been reduced to UNDEF (by SimplifyDemandedVectorElts etc.).

This involves a lot of tweaking to reduced tests as bugpoint loves to reduce icmp arguments to undef........

I've gone through these tests best I can, and AFAICT I haven't changed their purposes in any critical way - many are fragile and difficult to reduce from scratch as they are often 5+ years old.... I'd appreciate it if the respective target specialists could check my changes. I'd like to pre-commit some of these changes where its just a case of 'unreducing' lost arguments etc.


Repository:
  rL LLVM

https://reviews.llvm.org/D59363

Files:
  lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  test/CodeGen/AArch64/urem-seteq-vec-nonsplat.ll
  test/CodeGen/ARM/ifcvt-branch-weight-bug.ll
  test/CodeGen/ARM/struct-byval-frame-index.ll
  test/CodeGen/Hexagon/autohvx/isel-setcc-pair.ll
  test/CodeGen/Hexagon/expand-condsets-dead-pred.ll
  test/CodeGen/Hexagon/packetize-impdef-1.ll
  test/CodeGen/Hexagon/redundant-branching2.ll
  test/CodeGen/Hexagon/swp-change-deps.ll
  test/CodeGen/Hexagon/swp-epilog-phi2.ll
  test/CodeGen/Hexagon/swp-epilog-phi9.ll
  test/CodeGen/Hexagon/swp-prolog-phi.ll
  test/CodeGen/Hexagon/swp-rename.ll
  test/CodeGen/Hexagon/tail-dup-subreg-map.ll
  test/CodeGen/SPARC/missinglabel.ll
  test/CodeGen/SystemZ/buildvector-00.ll
  test/CodeGen/SystemZ/dag-combine-03.ll
  test/CodeGen/WebAssembly/cfg-stackify.ll
  test/CodeGen/X86/2006-11-17-IllegalMove.ll
  test/CodeGen/X86/hoist-spill.ll
  test/CodeGen/X86/select.ll
  test/CodeGen/X86/tail-dup-merge-loop-headers.ll
  test/CodeGen/X86/tail-dup-repeat.ll
  test/CodeGen/X86/undef-ops.ll
  test/CodeGen/X86/urem-seteq-vec-nonsplat.ll
  test/CodeGen/X86/vec_int_to_fp-widen.ll
  test/CodeGen/X86/vec_int_to_fp.ll
  test/CodeGen/X86/vector-shift-ashr-sub128-widen.ll
  test/CodeGen/X86/vector-shift-lshr-sub128-widen.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59363.190615.patch
Type: text/x-patch
Size: 49252 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190314/db909c67/attachment.bin>


More information about the llvm-commits mailing list