Instcombine already does this, but this can appear during legalization.
test/CodeGen/Hexagon/expand-vselect-kill.ll completely changes when fixed, and I'm not sure what exactly it was looking for in the first place
Paths
| Differential D48376
DAG: Fold out selects with an undef operand AbandonedPublic Authored by arsenm on Jun 20 2018, 9:10 AM.
Details
Summary Instcombine already does this, but this can appear during legalization. test/CodeGen/Hexagon/expand-vselect-kill.ll completely changes when fixed, and I'm not sure what exactly it was looking for in the first place
Diff Detail Event TimelineComment Actions The testcase was looking for two conditional assignments, both based on the same predicate register, but with one condition "if-true" and the other "if-false". The original bug was that the "kill" flag on the condition register wasn't cleared on the first assignment and so it was killed before the second conditional assignment (causing a verifier error). I just replaced this testcase with a .mir version, so it's no longer there. This revision is now accepted and ready to land.Jun 20 2018, 12:27 PM arsenm mentioned this in D54646: DAG combiner: fold (select, C, X, undef) -> X.Nov 16 2018, 12:59 PM
Revision Contents
Diff 152102 lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/AArch64/half.ll
test/CodeGen/AMDGPU/select-undef.ll
test/CodeGen/ARM/sub-cmp-peephole.ll
test/CodeGen/Hexagon/autohvx/isel-extractelt-illegal-type.ll
test/CodeGen/Hexagon/expand-vselect-kill.ll
test/CodeGen/Hexagon/swp-const-tc1.ll
test/CodeGen/X86/2012-08-07-CmpISelBug.ll
test/CodeGen/X86/hoist-spill.ll
test/CodeGen/X86/pr31045.ll
test/CodeGen/X86/pr32610.ll
|