diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-12-09 15:44:03 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-12-09 15:44:03 +0000 |
| commit | 16bbfbec66f72cbc2e7dbca867862194466238a1 (patch) | |
| tree | 18c1262a09775abafab0de5be817b3403b503f06 /llvm/lib/Target/X86/X86ISelLowering.cpp | |
| parent | 2dc5dec41d78ed864b8bebc1b52efba5f13cef4e (diff) | |
| download | bcm5719-llvm-16bbfbec66f72cbc2e7dbca867862194466238a1.tar.gz bcm5719-llvm-16bbfbec66f72cbc2e7dbca867862194466238a1.zip | |
X86: Add patterns for the various rounding ops for SSE4.1 and AVX.
llvm-svn: 146257
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index dc1aa42b952..cdc1f21743d 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -914,6 +914,17 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM) } if (Subtarget->hasSSE41orAVX()) { + setOperationAction(ISD::FFLOOR, MVT::f32, Legal); + setOperationAction(ISD::FCEIL, MVT::f32, Legal); + setOperationAction(ISD::FTRUNC, MVT::f32, Legal); + setOperationAction(ISD::FRINT, MVT::f32, Legal); + setOperationAction(ISD::FNEARBYINT, MVT::f32, Legal); + setOperationAction(ISD::FFLOOR, MVT::f64, Legal); + setOperationAction(ISD::FCEIL, MVT::f64, Legal); + setOperationAction(ISD::FTRUNC, MVT::f64, Legal); + setOperationAction(ISD::FRINT, MVT::f64, Legal); + setOperationAction(ISD::FNEARBYINT, MVT::f64, Legal); + // FIXME: Do we need to handle scalar-to-vector here? setOperationAction(ISD::MUL, MVT::v4i32, Legal); |

