[X86] Don't extend v16i8 non-uniform shifts to v16i32 if we have BWI. Use v16i16...
authorCraig Topper <craig.topper@intel.com>
Tue, 19 Dec 2017 06:59:10 +0000 (06:59 +0000)
committerCraig Topper <craig.topper@intel.com>
Tue, 19 Dec 2017 06:59:10 +0000 (06:59 +0000)
commit13142b10d5363336209db6ad466ff13dc67b4d20
treedb0a50cd4ffa3ca3da4cf75e9c232d0191cb60e5
parent6e3091c265c276a876fd1061aaa05d56e358caec
[X86] Don't extend v16i8 non-uniform shifts to v16i32 if we have BWI. Use v16i16 instead.

BWI supports shifting by word amounts. Even if VLX isn't support we can still widen to v32i16 and extract the lower half. For SKX its preferrable to not use 512-bit vector if we can.

llvm-svn: 321059
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/vector-rotate-128.ll
llvm/test/CodeGen/X86/vector-shift-ashr-128.ll
llvm/test/CodeGen/X86/vector-shift-lshr-128.ll
llvm/test/CodeGen/X86/vector-shift-shl-128.ll