[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325601 91177308-0d34-0410-b5e6-96231b3b80d8
7 files changed