OSDN Git Service

[X86][SSE] Add v16i8/v32i8 multiplication support
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 27 Apr 2015 07:55:46 +0000 (07:55 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 27 Apr 2015 07:55:46 +0000 (07:55 +0000)
commit6df35e7844c84d5cf67c6bda6df221629f6aab63
tree03942c23651f2b9bff291a47c1218639b023996a
parent94bd029c3d64a548924812089c97b2fb6aebbc49
[X86][SSE] Add v16i8/v32i8 multiplication support

Patch to allow int8 vectors to be multiplied on the SSE unit instead of being scalarized.

The patch sign extends the i8 lanes to i16, uses the SSE2 pmullw multiplication instruction, then packs the lower byte from each result.

Differential Revision: http://reviews.llvm.org/D9115

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235837 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx2-arith.ll
test/CodeGen/X86/pmul.ll