[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)
commit4f683c264a6da927ab5486a30937b9301fd5385c
tree2d7a1187515738cce9cf377faded1e14bb655c97
parent8b8e202a33cbb3f1c64d306436be7c9af624b253
[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

llvm-svn: 235837
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/avx2-arith.ll
llvm/test/CodeGen/X86/pmul.ll