[LLVMbugs] [Bug 2809] New: Avoid execution domain bypass

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Sep 19 08:29:27 PDT 2008


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: unassignedbugs at nondot.org
        ReportedBy: nicolas at capens.net
                CC: llvmbugs at cs.uiuc.edu


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.



More information about the llvm-bugs mailing list