diff options
author | Craig Topper <craig.topper@intel.com> | 2020-02-06 10:42:11 -0800 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2020-02-06 10:43:06 -0800 |
commit | 4175d7e22e1c70c0d2c8ff4a70235e8ec3461e5e (patch) | |
tree | cff7578f67962297ae0fec76d93da8215f425089 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | 8d19af685c9b1ba50df0ed739dbfffd0aa7686ee (diff) | |
download | llvm-4175d7e22e1c70c0d2c8ff4a70235e8ec3461e5e.zip llvm-4175d7e22e1c70c0d2c8ff4a70235e8ec3461e5e.tar.gz llvm-4175d7e22e1c70c0d2c8ff4a70235e8ec3461e5e.tar.bz2 |
[X86] Custom isel floating point X86ISD::CMP on pre-CMOV targets. Eliminate ConvertCmpIfNecessary
If we don't have cmov, X87 compares write to FPSW and we need to
move the bits to EFLAGS to use as JCC/SETCC/CMOV conditions.
Previously this was done by calling ConvertCmpIfNecessary in
multiple places which would emit the extra code for the FNSTSW,
a shift, a truncate, and a SAHF instructions. Isel would then
select trunc+X86ISD::CMP to a FUCOM instruction that produces FPSW.
This patch centralizes all of the handling into a single custom
isel handler. This allows us to remove ConvertCmpIfNecessary and
a couple target specific ISD opcodes.
Differential Revision: https://reviews.llvm.org/D73863
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions