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