[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