]> granicus.if.org Git - llvm/commit
[AVX-512] Replace V_SET0 in AVX-512 patterns with AVX512_128_SET0. Enhance AVX512_128...
authorCraig Topper <craig.topper@gmail.com>
Sat, 14 Jan 2017 07:29:24 +0000 (07:29 +0000)
committerCraig Topper <craig.topper@gmail.com>
Sat, 14 Jan 2017 07:29:24 +0000 (07:29 +0000)
commit49a15c1e8e517efa7bdb33bab849b49a3dac290e
tree10640c64869832ff00d6f2958a1361fe1e40afaf
parent99dc11c1660e1e95dab95419166f305024e7289f
[AVX-512] Replace V_SET0 in AVX-512 patterns with AVX512_128_SET0. Enhance AVX512_128_SET0 expansion to make this possible.

We'll now expand AVX512_128_SET0 to an EVEX VXORD if VLX available. Or if its not, but register allocation has selected a non-extended register we will use VEX VXORPS. And if its an extended register without VLX we'll use a 512-bit XOR. Do the same for AVX512_FsFLD0SS/SD.

This makes it possible for the register allocator to have all 32 registers available to work with.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292004 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/vector-shuffle-256-v4.ll