[LLVMbugs] [Bug 11819] New: [AVX] incorrect code for shuffles

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jan 20 17:09:16 PST 2012


http://llvm.org/bugs/show_bug.cgi?id=11819

             Bug #: 11819
           Summary: [AVX] incorrect code for shuffles
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: matt at pharr.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


Created attachment 7919
  --> http://llvm.org/bugs/attachment.cgi?id=7919
test case

See the attached test case which does a permutation of an 8-wide i32 vector;
until the checkin below, it generated the following output:

% llc -mattr=+avx t.ll -o t.o -filetype=obj && g++ -m64 t.cpp t.o  && ./a.out
result[0] = 3 (expected 3)
result[1] = 4 (expected 4)
result[2] = 5 (expected 5)
result[3] = 6 (expected 6)
result[4] = 7 (expected 7)
result[5] = 8 (expected 8)
result[6] = 1 (expected 1)
result[7] = 2 (expected 2)

With top-of-tree, it generates incorrect values:

result[0] = 3 (expected 3)
result[1] = 4 (expected 4)
result[2] = 1 (expected 5) *** ERROR ***
result[3] = 2 (expected 6) *** ERROR ***
result[4] = 3 (expected 7) *** ERROR ***
result[5] = 4 (expected 8) *** ERROR ***
result[6] = 1 (expected 1)
result[7] = 2 (expected 2)

Bisecting tells me that r148537 is the commit that broke this:

Author: Craig Topper <craig.topper at gmail.com>
Date:   Fri Jan 20 09:29:03 2012 +0000

    Improve 256-bit shuffle splitting to allow 2 sources in each 128-bit lane.
As long as only a single lane of the source is used in the lane in the
destination. This makes the splitting match much closer to what happens with
256-bit shuffles when AVX is disabled and only 128-bit XMM is allowed.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148537
91177308-0d34-0410-b5e6-96231b3b80d8

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list