[llvm-bugs] [Bug 17822] min/max vector instructions not selected for shorts (16-bit integers)

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Feb 28 10:08:00 PST 2016


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

Simon Pilgrim <llvm-dev at redking.me.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |llvm-dev at redking.me.uk
         Resolution|---                         |FIXED

--- Comment #4 from Simon Pilgrim <llvm-dev at redking.me.uk> ---
Resolving this - general SMIN/SMAX/UMIN/UMAX support has been available on X86
since D9746/D10947. The TargetTransformInfo still doesn't model these but it
doesn't appear to be an issue.

__Z3maxPtS_:                            ## @_Z3maxPtS_
    .cfi_startproc
## BB#0:                                ## %entry
    xorl    %eax, %eax
    .p2align    4, 0x90
LBB0_1:                                 ## %vector.body
                                        ## =>This Inner Loop Header: Depth=1
    vmovdqu    (%rdi,%rax,2), %xmm0
    vmovdqu    16(%rsi,%rax,2), %xmm1
    vpmaxuw    16(%rdi,%rax,2), %xmm1, %xmm1
    vpmaxuw    (%rsi,%rax,2), %xmm0, %xmm0
    vmovdqu    %xmm1, 16(%rdi,%rax,2)
    vmovdqu    %xmm0, (%rdi,%rax,2)
    vmovdqu    48(%rdi,%rax,2), %xmm0
    vmovdqu    32(%rdi,%rax,2), %xmm1
    vpmaxuw    32(%rsi,%rax,2), %xmm1, %xmm1
    vpmaxuw    48(%rsi,%rax,2), %xmm0, %xmm0
    vmovdqu    %xmm0, 48(%rdi,%rax,2)
    vmovdqu    %xmm1, 32(%rdi,%rax,2)
    vmovdqu    80(%rdi,%rax,2), %xmm0
    vmovdqu    64(%rdi,%rax,2), %xmm1
    vpmaxuw    64(%rsi,%rax,2), %xmm1, %xmm1
    vpmaxuw    80(%rsi,%rax,2), %xmm0, %xmm0
    vmovdqu    %xmm0, 80(%rdi,%rax,2)
    vmovdqu    %xmm1, 64(%rdi,%rax,2)
    vmovdqu    112(%rdi,%rax,2), %xmm0
    vmovdqu    96(%rdi,%rax,2), %xmm1
    vpmaxuw    96(%rsi,%rax,2), %xmm1, %xmm1
    vpmaxuw    112(%rsi,%rax,2), %xmm0, %xmm0
    vmovdqu    %xmm0, 112(%rdi,%rax,2)
    vmovdqu    %xmm1, 96(%rdi,%rax,2)
    addq    $64, %rax
    cmpq    $1024, %rax             ## imm = 0x400
    jne    LBB0_1
## BB#2:                                ## %for.cond.cleanup
    retq

-- 
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/20160228/2260210b/attachment.html>


More information about the llvm-bugs mailing list