HomePhabricator

[DAGCombiner] add one-use restriction to vector transform with cheap extract

Description

[DAGCombiner] add one-use restriction to vector transform with cheap extract

We might be able to do better on the example in the test,
but in general, we should not scalarize a splatted vector
binop if there are other uses of the binop. Otherwise, we
can end up with code as we had - a scalar op that is
redundant with a vector op.

Details

Committed
spatelSep 25 2019, 8:08 AM
Parents
rL372885: [PatternMatch] Make m_Br more flexible, add matchers for BB values.
Branches
Unknown
Tags
Unknown

Event Timeline

dim added a subscriber: dim.Oct 8 2019, 12:28 AM

@spatel, you mentioned this should be in 9.0.1, with "A noticeable perf regression for x86 vector code made it into the 9.0 release". Does it have a lot of influence on compile-time performance, or run-time performance? (I'd like to pull this one into FreeBSD's clang 9.0.)

spatel added a comment.Oct 8 2019, 4:36 AM

@spatel, you mentioned this should be in 9.0.1, with "A noticeable perf regression for x86 vector code made it into the 9.0 release". Does it have a lot of influence on compile-time performance, or run-time performance? (I'd like to pull this one into FreeBSD's clang 9.0.)

This change should have no measurable compile-time impact; it was flagged as a run-time perf regression for a math benchmark.

For reference, the bug tracking inclusion on the branch is PR43522:
https://bugs.llvm.org/show_bug.cgi?id=43522