summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86ISelLowering.h
diff options
context:
space:
mode:
authorNadav Rotem <nrotem@apple.com>2012-08-19 13:06:16 +0000
committerNadav Rotem <nrotem@apple.com>2012-08-19 13:06:16 +0000
commit178250ad877bb213e88b89027c6828318f389f5f (patch)
treeaa67c7306624c15bcf80073840c924ec6174a911 /llvm/lib/Target/X86/X86ISelLowering.h
parentfd4fe7061c329f5735ff79e732cf85857f592164 (diff)
downloadbcm5719-llvm-178250ad877bb213e88b89027c6828318f389f5f.tar.gz
bcm5719-llvm-178250ad877bb213e88b89027c6828318f389f5f.zip
When unsafe math is used, we can use commutative FMAX and FMIN. In some cases
this allows for better code generation. Added a new DAGCombine transformation to convert FMAX and FMIN to FMANC and FMINC, which are commutative. For example: movaps %xmm0, %xmm1 movsd LC(%rip), %xmm0 minsd %xmm1, %xmm0 becomes: minsd LC(%rip), %xmm0 llvm-svn: 162187
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.h')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.h b/llvm/lib/Target/X86/X86ISelLowering.h
index 896d067fda7..74f5167037e 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.h
+++ b/llvm/lib/Target/X86/X86ISelLowering.h
@@ -195,6 +195,9 @@ namespace llvm {
///
FMAX, FMIN,
+ /// FMAXC, FMINC - Commutative FMIN and FMAX.
+ FMAXC, FMINC,
+
/// FRSQRT, FRCP - Floating point reciprocal-sqrt and reciprocal
/// approximation. Note that these typically require refinement
/// in order to obtain suitable precision.
OpenPOWER on IntegriCloud