OSDN Git Service

[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)
commiteb72488593a5de3faa55c0e8518aa2e45ce43cf8
tree02abe375f21e7c6eacdccdf71a645faa3257fd09
parentf464242872b09dd14d661a15112defed8157462f
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@339749 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrFragmentsSIMD.td
lib/Target/X86/X86InstrSSE.td
lib/Target/X86/X86IntrinsicsInfo.h