[LLVMbugs] [Bug 10747] New: miscompiled extractelement instruction
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Aug 25 15:00:26 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=10747
Summary: miscompiled extractelement instruction
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Common Code Generator Code
AssignedTo: unassignedbugs at nondot.org
ReportedBy: vargaz at gmail.com
CC: llvmbugs at cs.uiuc.edu
Testcase:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
define i32 @main() {
BB0:
%0 = alloca <2 x i64>, align 16
%1 = getelementptr <2 x i64>* %0, i32 0, i32 1
store i64 6, i64* %1
%2 = getelementptr inbounds <2 x i64>* %0, i32 0, i32 0
store i64 1, i64* %2
%3 = ptrtoint <2 x i64>* %0 to i64
%4 = inttoptr i64 %3 to <2 x i64>*
%5 = load <2 x i64>* %4, align 1
store i64 4, i64* %1
store i64 3, i64* %2
%6 = extractelement <2 x i64> %5, i32 1
%7 = trunc i64 %6 to i32
ret i32 %7
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Compile using:
llvm-as -o temp.bc bug.ll && llc -march=x86-64 -o temp.s temp.bc && gcc temp.s
&& ./a.out
This should exit with exit code 6, but it exits with code 4.
This is with LLVM HEAD on x86-64.
This seems to be caused by revision 131183, i.e.:
Author: Nadav Rotem <nadav.rotem at intel.com>
Date: Wed May 11 14:40:50 2011 +0000
Fixes a bug in the DAGCombiner. LoadSDNodes have two values (data, chain).
If there is a store after the load node, then there is a chain, which means
that there is another user. Thus, asking hasOneUser would fail. Instead we
ask hasNUsesOfValue on the 'data' value.
--
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