https://llvm.org/bugs/show_bug.cgi?id=25531
Bug ID: 25531 Summary: AVX2: wrong code generated by combining cross-lane permute with in-lane shuffle Product: libraries Version: trunk Hardware: PC OS: All Status: NEW Severity: normal Priority: P Component: Backend: X86 Assignee: unassignedb...@nondot.org Reporter: til...@gmail.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified #include <x86intrin.h> __m256i foo(__m256i v) { v = _mm256_permute4x64_epi64(v, _MM_SHUFFLE(0, 1, 0, 0)); v = _mm256_shuffle_epi8(v, _mm256_setzero_si256()); return v; } This code is being lowered into a single vpshufb, which doesn't work because vpshufb can't index across 128-bit lanes. Could be fixed by partially reverting r230753 or by adding proper 256-bit support to shuffle chain combining. -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs