[AVX512] Use VMOVAPSZ128rr/VMOVAPS256rr for VR128X/VR256X physreg moves when VLX...
authorCraig Topper <craig.topper@gmail.com>
Mon, 18 Jul 2016 06:14:34 +0000 (06:14 +0000)
committerCraig Topper <craig.topper@gmail.com>
Mon, 18 Jul 2016 06:14:34 +0000 (06:14 +0000)
commit5c913e84df88d563bbabb41cdebb8088c1a942c6
treef0493cdddddd6d9b5198e34d44e7ec05dc4f9acf
parent53f3d1b4d01d340ea3620419b904c585e3c20823
[AVX512] Use VMOVAPSZ128rr/VMOVAPS256rr for VR128X/VR256X physreg moves when VLX is supported.

Ideally we would use VEX encoded moves instead of EVEX if the high 16 registers aren't referenced, but this a good first step.

llvm-svn: 275763
14 files changed:
llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/test/CodeGen/X86/avx2-intrinsics-x86.ll
llvm/test/CodeGen/X86/avx512-calling-conv.ll
llvm/test/CodeGen/X86/avx512-fma.ll
llvm/test/CodeGen/X86/avx512-gather-scatter-intrin.ll
llvm/test/CodeGen/X86/avx512bwvl-intrinsics.ll
llvm/test/CodeGen/X86/avx512dqvl-intrinsics.ll
llvm/test/CodeGen/X86/avx512ifmavl-intrinsics.ll
llvm/test/CodeGen/X86/avx512vbmivl-intrinsics.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics.ll
llvm/test/CodeGen/X86/fma_patterns.ll
llvm/test/CodeGen/X86/masked_gather_scatter.ll
llvm/test/CodeGen/X86/masked_memop.ll