[RISCV] Correct the EvenSrc/OddSrc computation in isInterleaveShuffle.
StartIndexes[0] Tells exactly which source element is in element 0, the even source. Nothing needs to be swapped. Since we're dealing with power of 2 vector lengths, StartIndexes[0] is almost always even so the condition here was never true. The exception is when we're interleaving two 1 element vectors. In that case StartIndexes[0] could be 1. We recently hit a failure from this on a pulldown. I don't have the reduced reproducer yet and my naive attempts at making an interleave of 1 element vectors produces a slideup instead so don't go through this path. Reviewed By: luke Differential Revision: https://reviews.llvm.org/D147268
Loading
Please sign in to comment