[X86] Change vXi8 MULHU lowering to unpack high and low half of lanes instead of...
authorCraig Topper <craig.topper@intel.com>
Fri, 30 Nov 2018 18:43:18 +0000 (18:43 +0000)
committerCraig Topper <craig.topper@intel.com>
Fri, 30 Nov 2018 18:43:18 +0000 (18:43 +0000)
commit4d80f199e8bafad1772e4c0e5176dc1a663a3657
tree882aea4200ed1cbfdc4125275f90f33d8cd835d0
parent8191307d0987ad1c18ae1cf391a43c4b54c2e41e
[X86] Change vXi8 MULHU lowering to unpack high and low half of lanes instead of extracting and concating low and high half registers.

This reduces the number of shuffle operations that need to be done. The splitting strategy requires the shuffle unit for the extraction and the extension. With the unpack strategy the unpacks accomplish a splitting and extending in one operation.

llvm-svn: 348019
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/prefer-avx256-wide-mul.ll
llvm/test/CodeGen/X86/vector-idiv-udiv-256.ll
llvm/test/CodeGen/X86/vector-idiv-udiv-512.ll