diff options
| author | Nadav Rotem <nrotem@apple.com> | 2012-08-19 13:06:16 +0000 |
|---|---|---|
| committer | Nadav Rotem <nrotem@apple.com> | 2012-08-19 13:06:16 +0000 |
| commit | 178250ad877bb213e88b89027c6828318f389f5f (patch) | |
| tree | aa67c7306624c15bcf80073840c924ec6174a911 /llvm/lib/Target/X86/X86ISelLowering.h | |
| parent | fd4fe7061c329f5735ff79e732cf85857f592164 (diff) | |
| download | bcm5719-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.h | 3 |
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. |

