• isharipo's avatar
    cmd/asm: add most SSE4 missing instructions · 50f1f639
    isharipo authored
    Instructions added:
      INSERTPS immb, r/m, xmm
      MPSADBW immb, r/m, xmm
      BLENDPD immb, r/m, xmm
      BLENDPS immb, r/m, xmm
      DPPD immb, r/m, xmm
      DPPS immb, r/m, xmm
      MOVNTDQA r/m, xmm
      PACKUSDW r/m, xmm
      PBLENDW immb, r/m, xmm
      PCMPEQQ r/m, xmm
      PCMPGTQ r/m, xmm
      PCMPISTRI immb, r/m, xmm
      PCMPISTRM immb, r/m, xmm
      PMAXSB r/m, xmm
      PMAXSD r/m, xmm
      PMAXUD r/m, xmm
      PMAXUW r/m, xmm
      PMINSB r/m, xmm
      PMINSD r/m, xmm
      PMINUD r/m, xmm
      PMINUW r/m, xmm
      PTEST r/m, xmm
      PCMPESTRM immb, r/m, xmm
    
    Note: only 'optab' table is extended.
    
    `EXTRACTPS immb, xmm, r/m` is not included in this
    change due to new ytab set 'yextractps'. This should simplify
    code review.
    
    4-operand instructions are a subject of upcoming changes that
    make 4-th (and so on) operands explicit.
    Related TODO note in asm6.go:
    "dont't hide 4op, some version have xmm version".
    
    Part of the mission to add missing amd64 SSE4 instructions to Go asm.
    
    Change-Id: I71716df14a8a5332e866dd0f0d52d43d7714872f
    Reviewed-on: https://go-review.googlesource.com/57470
    Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarIlya Tocar <ilya.tocar@intel.com>
    50f1f639
asm6.go 129 KB