[X86] Merge the FR128 and VR128 regclass since they have identical spill and alignmen...
authorCraig Topper <craig.topper@intel.com>
Mon, 16 Jul 2018 06:56:09 +0000 (06:56 +0000)
committerCraig Topper <craig.topper@intel.com>
Mon, 16 Jul 2018 06:56:09 +0000 (06:56 +0000)
commit07a1787501fc7141c8788421c265ae95008f7c13
treef6487af0805348b319bf1985c5e7ea1b3821433c
parent92e26613c6af2c9ebc959de7d02c18be10cd941b
[X86] Merge the FR128 and VR128 regclass since they have identical spill and alignment characteristics.

This unfortunately requires a bunch of bitcasts to be added added to SUBREG_TO_REG, COPY_TO_REGCLASS, and instructions in output patterns. Otherwise tablegen seems to default to picking f128 and then we fail when something tries to get the register class for f128 which isn't always valid.

The test changes are because we were previously mixing fr128 and vr128 due to contrainRegClass finding FR128 first and passes like live range shrinking weren't handling that well.

llvm-svn: 337147
26 files changed:
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrCompiler.td
llvm/lib/Target/X86/X86InstrFMA.td
llvm/lib/Target/X86/X86InstrSSE.td
llvm/lib/Target/X86/X86InstrVecCompiler.td
llvm/lib/Target/X86/X86RegisterInfo.td
llvm/test/CodeGen/X86/avx-intrinsics-fast-isel.ll
llvm/test/CodeGen/X86/avx512-intrinsics-upgrade.ll
llvm/test/CodeGen/X86/avx512-intrinsics.ll
llvm/test/CodeGen/X86/avx512dq-intrinsics-upgrade.ll
llvm/test/CodeGen/X86/avx512dq-intrinsics.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics.ll
llvm/test/CodeGen/X86/buildvec-insertvec.ll
llvm/test/CodeGen/X86/domain-reassignment.mir
llvm/test/CodeGen/X86/haddsub-2.ll
llvm/test/CodeGen/X86/half.ll
llvm/test/CodeGen/X86/merge-consecutive-loads-128.ll
llvm/test/CodeGen/X86/pr29112.ll
llvm/test/CodeGen/X86/sse-intrinsics-fast-isel.ll
llvm/test/CodeGen/X86/sse1.ll
llvm/test/CodeGen/X86/sse3-avx-addsub-2.ll
llvm/test/CodeGen/X86/var-permute-128.ll
llvm/test/CodeGen/X86/vec_int_to_fp.ll
llvm/test/CodeGen/X86/vector-shuffle-variable-128.ll
llvm/test/CodeGen/X86/vector-sqrt.ll