Closed Quuxplusone closed 7 years ago
Bugzilla Link | PR31301 |
Status | RESOLVED FIXED |
Importance | P normal |
Reported by | Eli Friedman (efriedma@quicinc.com) |
Reported on | 2016-12-06 20:53:39 -0800 |
Last modified on | 2016-12-15 16:42:06 -0800 |
Version | trunk |
Hardware | PC Windows NT |
CC | llvm-bugs@lists.llvm.org, llvm-dev@redking.me.uk, mkuper@google.com, spatel+llvm@rotateright.com, zvirack@gmail.com |
Fixed by commit(s) | |
Attachments | |
Blocks | |
Blocked by | |
See also |
Zvi - is this due to rL285063?
I rolled back rL285063 and ran the top example with: llc -march=arm -mattr=+neon and got the same generated code as reported here.
The problem goes away if I disable combineShuffleOfScalars... or at least it improves to some extent. (There's a few smaller problems on ARM for the original testcase, but we do at least generate a shuffle.)
It looks like the combine was originally added in r234004 (https://reviews.llvm.org/D8516); I think this case is getting picked up by accident because each input scalar_to_vector is used "once".
Partially fixed by https://reviews.llvm.org/rL289874 ; we no longer generate element-by-element insertion, but we still replace a shuffle with another, less efficient shuffle.
Remaining fix under review in https://reviews.llvm.org/D27793 .