OSDN Git Service

[X86][AVX512] Enable v16i8/v32i8 vector shifts to use an extend+shift+truncate pattern.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 9 Jan 2017 17:20:03 +0000 (17:20 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 9 Jan 2017 17:20:03 +0000 (17:20 +0000)
commit9c61a35f9ebe2ca10afa3f25cdb93c9206dbd267
tree4612e736a7fdb06b0e1c304d2fbde266570d711d
parent3f06747367f6a403f84450c1ca049b6882fcf004
[X86][AVX512] Enable v16i8/v32i8 vector shifts to use an extend+shift+truncate pattern.

Use the existing AVX2 v8i16 vector shift lowering for v16i8 (extending to v16i32) on AVX512 targets and v32i8 (extending to v32i16) on AVX512BW targets.

Cost model updates to follow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291451 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-shift-ashr-128.ll
test/CodeGen/X86/vector-shift-ashr-256.ll
test/CodeGen/X86/vector-shift-lshr-128.ll
test/CodeGen/X86/vector-shift-lshr-256.ll
test/CodeGen/X86/vector-shift-shl-128.ll
test/CodeGen/X86/vector-shift-shl-256.ll