Add variations on existing optimizations that deal with bitcasts in operands. Fixes regressions from X86's post-legalization store merge change.
Details
Details
Diff Detail
Diff Detail
- Build Status
Buildable 8779 Build 8779: arc lint + arc unit
Event Timeline
Comment Actions
It turns out generating the failing case for this nontrivial as it looks like we canot irectly build a insertsubvector /extract subvector node.
The peephole of note is along the lines of:
insertsubvector (insertsubvector undef (extractsubvector (bitcast x) 0) 0) (extract subvector (bitcast x) (subvectorsize)) subvectorsize
becoming :
(bitcast x)
Rather than push on this here, I'm going to flip the dependence with D34559 which will now have a small degradation that this patch will fix.
lib/CodeGen/SelectionDAG/DAGCombiner.cpp | ||
---|---|---|
15873 | N0.getOpcode() |
"If we N0"?