//===- FPEnv.h ---- FP Environment ------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // /// @file /// This file contains the declarations of entities that describe floating /// point environment and related functions. // //===----------------------------------------------------------------------===// #ifndef LLVM_IR_FLOATINGPOINT_H #define LLVM_IR_FLOATINGPOINT_H #include "llvm/ADT/FloatingPointMode.h" #include "llvm/ADT/Optional.h" namespace llvm { class StringRef; namespace fp { /// Exception behavior used for floating point operations. /// /// Each of these values correspond to some metadata argument value of a /// constrained floating point intrinsic. See the LLVM Language Reference Manual /// for details. enum ExceptionBehavior : uint8_t { ebIgnore, ///< This corresponds to "fpexcept.ignore". ebMayTrap, ///< This corresponds to "fpexcept.maytrap". ebStrict ///< This corresponds to "fpexcept.strict". }; } /// Returns a valid RoundingMode enumerator when given a string /// that is valid as input in constrained intrinsic rounding mode /// metadata. Optional StrToRoundingMode(StringRef); /// For any RoundingMode enumerator, returns a string valid as input in /// constrained intrinsic rounding mode metadata. Optional RoundingModeToStr(RoundingMode); /// Returns a valid ExceptionBehavior enumerator when given a string /// valid as input in constrained intrinsic exception behavior metadata. Optional StrToExceptionBehavior(StringRef); /// For any ExceptionBehavior enumerator, returns a string valid as /// input in constrained intrinsic exception behavior metadata. Optional ExceptionBehaviorToStr(fp::ExceptionBehavior); } #endif