[X86] Change legacy SSE scalar fp to integer intrinsics to use specific ISD opcodes...
authorCraig Topper <craig.topper@intel.com>
Wed, 15 Aug 2018 01:23:00 +0000 (01:23 +0000)
committerCraig Topper <craig.topper@intel.com>
Wed, 15 Aug 2018 01:23:00 +0000 (01:23 +0000)
commit633fe98e27107d629a7674025b8a67ef107c1bfe
treebea8dd2473a49c05be9af865d82f881ebc86da94
parent139b35192a5e6111188943fd1b35954c67e85a43
[X86] Change legacy SSE scalar fp to integer intrinsics to use specific ISD opcodes instead of keeping as intrinsics. Unify SSE and AVX512 isel patterns.

AVX512 added new versions of these intrinsics that take a rounding mode. If the rounding mode is 4 the new intrinsics are equivalent to the old intrinsics.

The AVX512 intrinsics were being lowered to ISD opcodes, but the legacy SSE intrinsics were left as intrinsics. This resulted in the AVX512 instructions needing separate patterns for the ISD opcodes and the legacy SSE intrinsics.

Now we convert SSE intrinsics and AVX512 intrinsics with rounding mode 4 to the same ISD opcode so we can share the isel patterns.

llvm-svn: 339749
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/X86InstrSSE.td
llvm/lib/Target/X86/X86IntrinsicsInfo.h