[X86] Promote 16-bit cmovs to 32-bits
authorCraig Topper <craig.topper@intel.com>
Tue, 20 Feb 2018 17:41:00 +0000 (17:41 +0000)
committerCraig Topper <craig.topper@intel.com>
Tue, 20 Feb 2018 17:41:00 +0000 (17:41 +0000)
commit010ae8dcbbd8861f4e9f6883218b2e51c3163b9c
tree1a6402191cc334268b8f65661bff3f080b20e71f
parent563c901bac5ea12b8364c2c38c2264c4c1d027ec
[X86] Promote 16-bit cmovs to 32-bits

This allows us to avoid an opsize prefix. And forcing some move immediates to i32 avoids a length changing prefix on those instructions.

This mostly replaces the existing combine we had for zext/sext+cmov of constants. I left in a case for sign extending a 32 bit cmov of constants to 64 bits.

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

llvm-svn: 325601
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/avx512-insert-extract.ll
llvm/test/CodeGen/X86/avx512-mask-op.ll
llvm/test/CodeGen/X86/avx512-schedule.ll
llvm/test/CodeGen/X86/bool-simplify.ll
llvm/test/CodeGen/X86/select.ll
llvm/test/CodeGen/X86/setcc-lowering.ll