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

Reply via email to