[LLVMbugs] [Bug 10853] New: [AVX, perf?] suboptimal code generated to set 'all bits on' in ymm register

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat Sep 3 09:06:25 PDT 2011


http://llvm.org/bugs/show_bug.cgi?id=10853

           Summary: [AVX,perf?] suboptimal code generated to set 'all bits
                    on' in ymm register
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: matt at pharr.org
                CC: llvmbugs at cs.uiuc.edu


Given:

define <8 x i32> @foo() {
   ret <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1,  i32
-1>
}

The AVX backend generates the code:

_foo:                                   ## @foo
    vpcmpeqd    %xmm0, %xmm0, %xmm0
    vinsertf128    $1, %xmm0, %ymm0, %ymm0
    ret

Unless I'm missing something, I think this could be more efficiently done with
something like:

    vcmpeqd %ymm0, %ymm0, %ymm0

(There may be an AVX subtlety that I'm not aware of that prevents this;
apologies if so!)

-- 
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