http://llvm.org/bugs/show_bug.cgi?id=8542
Summary: Clang miscompiles valid code with -O2 on x86 and
x86-64
Product: clang
Version: 2.8
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: LLVM Codegen
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Created an attachment (id=5726)
--> (http://llvm.org/bugs/attachment.cgi?id=5726)
Testcase
Attached is a simple test case which clang 2.8 miscompiles on x86 and x86-64
with -O2 or higher (I have not traced down the specific optimization flag which
causes the problem). With GCC or ICC (any optimization level) or Clang 2.8 with
-O0 or -O1, the output is
61000000
with Clang and -O2/-O3, it is:
F9000000
I've tried to minimize the test case as much as possible; it was extracted from
real code.
Interestingly, changing
W &= rotate_right(0x00FFFFFF, 0);
to just
W &= 0x00FFFFFFF;
on line 36
the miscompilation goes away (actually removing this rotation is is not
possible in the original source, which runs this in a loop with varying byte
offsets).
--
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs