]> granicus.if.org Git - llvm/commit
[X86] Don't select anyext GR32->GR64 to SUBREG_TO_REG. Use INSERT_SUBREG instead.
authorCraig Topper <craig.topper@intel.com>
Mon, 25 Sep 2017 21:14:59 +0000 (21:14 +0000)
committerCraig Topper <craig.topper@intel.com>
Mon, 25 Sep 2017 21:14:59 +0000 (21:14 +0000)
commit4bbcb4ce02014f39edfc416892a8a0c07258dc67
treecbbedc829743d66a7fab3ea557f1c447f4a751c4
parent4161f0e5767d06a83824b23db8f5ed39d6e72b7a
[X86] Don't select anyext GR32->GR64 to SUBREG_TO_REG. Use INSERT_SUBREG instead.

As far as I know SUBREG_TO_REG is stating that the upper bits are 0. But if we are just converting the GR32 with no checks, then we have no reason to say the upper bits are 0.

I don't really know how to test this today since I can't find anything that looks that closely at SUBREG_TO_REG. The test changes here seems to be some perturbance of register allocation.

Differential Revision: https://reviews.llvm.org/D38001

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314152 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrCompiler.td
test/CodeGen/X86/vector-shuffle-variable-128.ll
test/CodeGen/X86/vector-shuffle-variable-256.ll