]> granicus.if.org Git - llvm/commit
[X86] Teach shuffle lowering to use 256-bit SHUF128 when possible.
authorCraig Topper <craig.topper@intel.com>
Sat, 4 Nov 2017 06:44:47 +0000 (06:44 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 4 Nov 2017 06:44:47 +0000 (06:44 +0000)
commit19bc3f9a843b7072d63c2545d771b08d8d821d8d
tree4721e5b00599ee161ea9dba3cf36f6714edb9a49
parent5473af6661103fb6509c89880a08b2f24a3f760a
[X86] Teach shuffle lowering to use 256-bit SHUF128 when possible.

This allows masked operations to be used and allows the register allocator to use YMM16-31 if necessary.

As a follow up I'll look into teaching EVEX->VEX how to turn this back into PERM2X128 if any of the additional features don't work out.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317403 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx-schedule.ll
test/CodeGen/X86/avx2-schedule.ll
test/CodeGen/X86/avx512-shuffle-schedule.ll
test/CodeGen/X86/avx512-shuffles/shuffle-vec.ll
test/CodeGen/X86/vector-shuffle-256-v16.ll
test/CodeGen/X86/vector-shuffle-256-v32.ll
test/CodeGen/X86/vector-shuffle-256-v4.ll
test/CodeGen/X86/vector-shuffle-256-v8.ll