[X86] Add ISD node for masked version of CVTPS2PH.
authorCraig Topper <craig.topper@intel.com>
Sat, 12 Jan 2019 08:05:12 +0000 (08:05 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 12 Jan 2019 08:05:12 +0000 (08:05 +0000)
commit33b2cf50e32d96faa17cbd3ecbe16b6f9480dd5b
tree9a53051ca05f1ebcc58ca06baa1949c1b97c5236
parent61aa940074da0ec60a105f1ab45b45bc9815633d
[X86] Add ISD node for masked version of CVTPS2PH.

The 128-bit input produces 64-bits of output and fills the upper 64-bits with 0. The mask only applies to the lower elements. But we can't represent this with a vselect like we normally do.

This also avoids the need to have a special X86ISD::SELECT when avx512bw isn't enabled since vselect v8i16 isn't legal there.

Fixes another instruction for PR34877.

llvm-svn: 350994
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86ISelLowering.h
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
llvm/lib/Target/X86/X86IntrinsicsInfo.h
llvm/test/CodeGen/X86/avx512-intrinsics.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics.ll