http://llvm.org/bugs/show_bug.cgi?id=12590
Bug #: 12590
Summary: Unnecessary FP multiply by zero generated
Product: clang
Version: 3.0
Platform: PC
OS/Version: All
Status: NEW
Severity: normal
Priority: P
Component: -New Bugs
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Classification: Unclassified
Created attachment 8408
--> http://llvm.org/bugs/attachment.cgi?id=8408
Example program
Clang will emit multiply instructions when one of the operands is known to be
zero at compile time. When run on the attached example, clang 3.0 (with -O3)
emits the following:
_dot:
pushq %rbp
movq %rsp,%rbp
pxor %xmm3,%xmm3
mulss %xmm3,%xmm2
mulss %xmm1,%xmm3
addss %xmm3,%xmm0
addss %xmm2,%xmm0
popq %rbp
ret
For comparison, gcc (with -O3) just produces an empty function, leaving the
input value in %xmm0 to be returned:
_dot:
pushq %rbp
movq %rsp,%rbp
leave
ret
Interestingly, clang does catch and eliminate the multiply by 1...
--
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