llvm-project/llvm/lib
Craig Topper b590e0fd81 [TargetLowering][ARM][X86] Change softenSetCCOperands handling of ONE to avoid spurious exceptions for QNANs with strict FP quiet compares
ONE is currently softened to OGT | OLT. But the libcalls for OGT and OLT libcalls will trigger an exception for QNAN. At least for X86 with libgcc. UEQ on the other hand uses UO | OEQ. The UO and OEQ libcalls will not trigger an exception for QNAN.

This patch changes ONE to use the inverse of the UEQ lowering. So we now produce O & UNE. Technically the existing behavior was correct for a signalling ONE, but since I don't know how to generate one of those from clang that seemed like something we can deal with later as we would need to fix other predicates as well. Also removing spurious exceptions seemed better than missing an exception.

There are also problems with quiet OGT/OLT/OLE/OGE, but those are harder to fix.

Differential Revision: https://reviews.llvm.org/D72477
2020-01-10 11:00:17 -08:00
..
Analysis [SVEV] Recognise hardware-loop intrinsic loop.decrement.reg 2020-01-10 09:35:00 +00:00
AsmParser Revert "Allow output constraints on "asm goto"" 2020-01-07 13:44:08 -08:00
BinaryFormat [AIX] Emit TOC entries for ASM printing 2019-11-27 17:20:55 -05:00
Bitcode [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
Bitstream [Bitstream] Delete skipAbbreviatedField which duplicates readAbbreviatedField 2019-12-25 18:55:02 -08:00
CodeGen [TargetLowering][ARM][X86] Change softenSetCCOperands handling of ONE to avoid spurious exceptions for QNANs with strict FP quiet compares 2020-01-10 11:00:17 -08:00
DWARFLinker [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00
DebugInfo [DebugInfo][NFC] Remove unused variable/fix variable naming 2020-01-10 15:00:56 +00:00
Demangle Revert "Add some missing includes to MicrosoftDemangle.cpp (PR44217)" 2019-12-04 11:10:07 -08:00
ExecutionEngine [NFC][ORC] Fix typos and whitespaces in comments 2020-01-03 21:54:03 +01:00
Frontend [OpenMP] Use the OpenMPIRBuilder for `omp parallel` 2019-12-30 13:57:13 -06:00
FuzzMutate [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Fuzzer
IR [AArch64] Add function attribute "patchable-function-entry" to add NOPs at function entry 2020-01-10 09:55:51 -08:00
IRReader [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
LTO [ThinLTO] Pass CodeGenOpts like UnrollLoops/VectorizeLoop/VectorizeSLP 2020-01-09 21:13:11 -08:00
LineEditor [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Linker [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
MC [ms] [X86] Use "P" modifier on all branch-target operands in inline X86 assembly. 2020-01-09 14:55:03 -05:00
MCA [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Object [llvm-readobj] - Remove an excessive helper for printing dynamic tags. 2019-12-24 11:55:45 +03:00
ObjectYAML [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Option [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Passes [ThinLTO] Pass CodeGenOpts like UnrollLoops/VectorizeLoop/VectorizeSLP 2020-01-09 21:13:11 -08:00
ProfileData [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
Remarks [Remarks] Allow empty temporary remark files 2019-11-22 15:58:12 -08:00
Support [Support] ThreadPoolExecutor fixes for Windows/MinGW 2020-01-10 12:44:01 +00:00
TableGen [TableGen] Add bang-operators !getop and !setop. 2019-12-11 12:05:22 +00:00
Target [X86] Support function attribute "patchable-function-entry" 2020-01-10 09:57:28 -08:00
Testing
TextAPI [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
ToolDrivers [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Transforms Add support for __declspec(guard(nocf)) 2020-01-10 16:04:12 +00:00
WindowsManifest Revert "Temporarily revert "build: avoid hardcoding the libxml2 library name"" 2019-12-03 09:27:14 -08:00
XRay [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
CMakeLists.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00
LLVMBuild.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00