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

            Bug ID: 20087
           Summary: llc handles shuffles incorrectly, linux, trunk,
                    regression from version 3.4
           Product: tools
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: llc
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    Classification: Unclassified

Created attachment 12683
  --> http://llvm.org/bugs/attachment.cgi?id=12683&action=edit
Reproducer

In this test we have complex data structure. We assign "7" to one field of this
structure then shuffle it and try to read "7" but the result is "0". In
LLVM_3_4 everything is ok.

To reproduce:

bin-trunk/bin/llc e.ll -mattr=+avx
clang test.cpp e.s -m32
./a.out 
0.000000

bin-3.4/bin/llc e.ll -mattr=+avx
clang test.cpp e.s -m32
./a.out 
7.000000

test.cpp:
#include <stdio.h>
extern "C" {
    extern void f_fu(float *result);
}
int main(int argc, char *argv[]) {
    float returned_result;
    f_fu(&returned_result);
    printf("%f\n", returned_result);
    return 0;
}

e.ll is attached

llc from trunk and 3_4 generates very similar asm files except some number of
commands.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to