[LLVMbugs] [Bug 21713] New: inefficient lowering of vectorized code with intrinsics

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Dec 2 11:34:44 PST 2014


            Bug ID: 21713
           Summary: inefficient lowering of vectorized code with
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: rdivacky at freebsd.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

(A bug report from jmg at freebsd.org)

Here is a case where the same functional code gets compiled differently.
These functions were written to emulate _mm_insert_epi64 on i386 machines
which does not have it... I noticed when disassembling them that emul2
version does not use the pinsrd instruction, but does some weird things
with movps instead...  Though the code for emul2 and emul3 are
functionally the same, emul3 seems to be more effecient...

Also, similar behavior is observed between emul84 and emul85... though
both functions will result in the same set of arguments to
_mm_insert_epi32, one uses the intrinsic (emul84) and emul85 does not.

Compiled w/:
clang -c -o foow.o foow.c -msse4 -O3

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20141202/46dca82b/attachment.html>

More information about the llvm-bugs mailing list