aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineTraceMetrics.cpp
diff options
context:
space:
mode:
authorKonstantina Mitropoulou <Konstantina.Mitropoulou@amd.com>2023-08-08 21:33:23 -0700
committerKonstantina Mitropoulou <Konstantina.Mitropoulou@amd.com>2023-08-24 10:48:56 -0700
commit5ec13535235d07eafd64058551bc495f87c283b1 (patch)
tree02d097a777b050fce0aebb02545c288c4b71361c /llvm/lib/CodeGen/MachineTraceMetrics.cpp
parentb49bb7bdec067a1d48a4502399961667d2525444 (diff)
downloadllvm-5ec13535235d07eafd64058551bc495f87c283b1.zip
llvm-5ec13535235d07eafd64058551bc495f87c283b1.tar.gz
llvm-5ec13535235d07eafd64058551bc495f87c283b1.tar.bz2
[DAGCombiner] Change foldAndOrOfSETCC() to optimize and/or patterns with floating points.
CMP(A,C)||CMP(B,C) => CMP(MIN/MAX(A,B), C) CMP(A,C)&&CMP(B,C) => CMP(MIN/MAX(A,B), C) If the operands are proven to be non NaN, then the optimization can be applied for all predicates. We can apply the optimization for the following predicates for FMINNUM/FMAXNUM (for quiet and signaling NaNs) and for FMINNUM_IEEE/FMAXNUM_IEEE if we can prove that the operands are not signaling NaNs. - ordered lt/le and || - ordered gt/ge and || - unordered lt/le and && - unordered gt/ge and && Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D155267
Diffstat (limited to 'llvm/lib/CodeGen/MachineTraceMetrics.cpp')
0 files changed, 0 insertions, 0 deletions