llvm-project/llvm/lib
Thomas Lively 16c349d892 [Intrinsic] Add llvm.minimum and llvm.maximum instrinsic functions
Summary:
These new intrinsics have the semantics of the `minimum` and `maximum`
operations specified by the latest draft of IEEE 754-2018. Unlike
llvm.minnum and llvm.maxnum, these new intrinsics propagate NaNs and
always treat -0.0 as less than 0.0. `minimum` and `maximum` lower
directly to the existing `fminnan` and `fmaxnan` ISel DAG nodes. It is
safe to reuse these DAG nodes because before this patch were only
emitted in situations where there were known to be no NaN arguments or
where NaN propagation was correct and there were known to be no zero
arguments. I know of only four backends that lower fminnan and
fmaxnan: WebAssembly, ARM, AArch64, and SystemZ, and each of these
lowers fminnan and fmaxnan to instructions that are compatible with
the IEEE 754-2018 semantics.

Reviewers: aheejin, dschuff, sunfish, javed.absar

Subscribers: kristof.beyls, dexonsmith, kristina, llvm-commits

Differential Revision: https://reviews.llvm.org/D52764

llvm-svn: 344437
2018-10-13 07:21:44 +00:00
..
Analysis [ThinLTO] Don't import GV which contains blockaddress 2018-10-12 07:24:02 +00:00
AsmParser Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
BinaryFormat Revert r343317 2018-09-28 17:01:50 +00:00
Bitcode Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
CodeGen [Intrinsic] Add llvm.minimum and llvm.maximum instrinsic functions 2018-10-13 07:21:44 +00:00
DebugInfo [DwarfVerifier] Fixed -Wimplicit-fallthrough warning 2018-10-10 20:10:37 +00:00
Demangle Update microsoftDemangle() to work more like itaniumDemangle(). 2018-09-15 18:24:20 +00:00
ExecutionEngine [ORC] Promote and rename private symbols inside the CompileOnDemand layer, 2018-10-09 20:44:32 +00:00
FuzzMutate [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
Fuzzer
IR Generalize an IR verifier check to work with non-zero program address spaces 2018-10-11 12:49:50 +00:00
IRReader
LTO Add a flag to remap manglings when reading profile data information. 2018-10-10 23:13:47 +00:00
LineEditor
Linker llvm-link: Improve diagnostic for module-level metadata mismatch 2018-10-09 01:17:27 +00:00
MC Revert BTF commit series. 2018-10-12 19:41:05 +00:00
Object llvm-ar: Darwin archive format fixes. 2018-10-10 21:07:02 +00:00
ObjectYAML [WebAssembly] Add V128 value type to binary format 2018-09-20 22:04:44 +00:00
OptRemarks Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
Option [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Passes [PassManager/Sanitizer] Port of AddresSanitizer pass from legacy to new PassManager 2018-10-11 18:31:51 +00:00
ProfileData Support for remapping profile data when symbols change, for sample-based 2018-10-10 21:31:01 +00:00
Support [Support] exit with custom return code for SIGPIPE 2018-10-12 17:22:07 +00:00
TableGen [TableGen] fix assert in !cast when used out of definition in a multiclass 2018-10-10 10:52:57 +00:00
Target [WebAssembly][NFC] Unify ARGUMENT classes 2018-10-13 07:09:10 +00:00
Testing Fix error with SmallString implicit conversion. 2018-09-06 22:47:32 +00:00
ToolDrivers [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Transforms move GetOrCreateFunctionComdat to Instrumentation.cpp/Instrumentation.h 2018-10-12 23:21:48 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay Use the container form llvm::sort(C, ...) 2018-09-30 22:31:29 +00:00
CMakeLists.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
LLVMBuild.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00