[llvm-bugs] [Bug 27982] New: [x86, SSE] no optimization for move mask instructions

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jun 2 09:28:00 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27982

            Bug ID: 27982
           Summary: [x86, SSE] no optimization for move mask instructions
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: spatel+llvm at rotateright.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Similar to bug 27924, I noticed this problem in a checker program that I used
for http://reviews.llvm.org/D20774 :

$  cat movmsk.ll 
declare i32 @llvm.x86.sse2.pmovmskb.128(<16 x i8>)

define i1 @movmsk() {
  %movmsk = tail call i32 @llvm.x86.sse2.pmovmskb.128(<16 x i8>
zeroinitializer)
  %cmp = icmp eq i32 %movmsk, 65535
  ret i1 %cmp
}

$ ./llc -o  - movmsk.ll
...
    pxor    %xmm0, %xmm0
    pmovmskb    %xmm0, %eax
    cmpl    $65535, %eax            ## imm = 0xFFFF
    sete    %al
    retq


There doesn't seem to be any analysis for an X86ISD::MOVMSK node in the DAG.

-- 
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/20160602/1a538ad8/attachment.html>


More information about the llvm-bugs mailing list