http://llvm.org/bugs/show_bug.cgi?id=2809
Summary: Avoid execution domain bypass
Product: new-bugs
Version: unspecified
Platform: PC
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: new bugs
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]
CC: [email protected]
On x86 a logical operation on 128-bit vectors can be lowered to three different
instrucitons: andps, andpd, pand (in the case of logical and). According to the
intel optimization guide, andps and andpd execute in the 'floating-point
domain' and pand executes in the 'integer domain'. Data bypass between domains
cost an additional clock cycle. So the use of a pand instruction in the middle
of floating-point calculations costs two extra clock cycles.
I've seen LLVM generate both andps and pand. But since LLVM's IR only allows
and operations between integer vectors this behavior seems rather uncontrolled.
So for best performance instruction selection should ensure that no unnecessary
execution domain bypasses are made.
--
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