aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/TargetTransformInfo.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-10-21 23:00:20 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-10-21 23:00:20 +0000
commitd6511b49ace8e3d55ad43beb2cb142022a8032cc (patch)
treeec95b0252ce02c2c5f0445bdbdb53d0081bd9f4c /llvm/lib/Analysis/TargetTransformInfo.cpp
parent44e5b4e533a92ff44ae57cf0129398b162e82bf6 (diff)
downloadllvm-d6511b49ace8e3d55ad43beb2cb142022a8032cc.zip
llvm-d6511b49ace8e3d55ad43beb2cb142022a8032cc.tar.gz
llvm-d6511b49ace8e3d55ad43beb2cb142022a8032cc.tar.bz2
Add minnum / maxnum intrinsics
These are named following the IEEE-754 names for these functions, rather than the libm fmin / fmax to avoid possible ambiguities. Some languages may implement something resembling fmin / fmax which return NaN if either operand is to propagate errors. These implement the IEEE-754 semantics of returning the other operand if either is a NaN representing missing data. llvm-svn: 220341
Diffstat (limited to 'llvm/lib/Analysis/TargetTransformInfo.cpp')
-rw-r--r--llvm/lib/Analysis/TargetTransformInfo.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/TargetTransformInfo.cpp b/llvm/lib/Analysis/TargetTransformInfo.cpp
index e09babf..c1ffb9d 100644
--- a/llvm/lib/Analysis/TargetTransformInfo.cpp
+++ b/llvm/lib/Analysis/TargetTransformInfo.cpp
@@ -475,6 +475,8 @@ struct NoTTI final : ImmutablePass, TargetTransformInfo {
// These will all likely lower to a single selection DAG node.
if (Name == "copysign" || Name == "copysignf" || Name == "copysignl" ||
Name == "fabs" || Name == "fabsf" || Name == "fabsl" || Name == "sin" ||
+ Name == "fmin" || Name == "fminf" || Name == "fminl" ||
+ Name == "fmax" || Name == "fmaxf" || Name == "fmaxl" ||
Name == "sinf" || Name == "sinl" || Name == "cos" || Name == "cosf" ||
Name == "cosl" || Name == "sqrt" || Name == "sqrtf" || Name == "sqrtl")
return false;