LLVM 22.0.0git
NVVMIntrinsicUtils.h File Reference

This file contains the definitions of the enumerations and flags associated with NVVM Intrinsics, along with some helper functions. More...

#include <stdint.h>
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsNVPTX.h"
#include "llvm/Support/raw_ostream.h"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::nvvm

Enumerations

enum class  llvm::nvvm::TMAReductionOp : uint8_t {
  llvm::nvvm::ADD = 0 , llvm::nvvm::MIN = 1 , llvm::nvvm::MAX = 2 , llvm::nvvm::INC = 3 ,
  llvm::nvvm::DEC = 4 , llvm::nvvm::AND = 5 , llvm::nvvm::OR = 6 , llvm::nvvm::XOR = 7
}
enum class  llvm::nvvm::CTAGroupKind : uint8_t { llvm::nvvm::CG_NONE = 0 , llvm::nvvm::CG_1 = 1 , llvm::nvvm::CG_2 = 2 }
enum class  llvm::nvvm::Tcgen05MMAKind : uint8_t { llvm::nvvm::F16 = 0 , llvm::nvvm::TF32 = 1 , llvm::nvvm::F8F6F4 = 2 , llvm::nvvm::I8 = 3 }
enum class  llvm::nvvm::Tcgen05CollectorUsageOp : uint8_t { llvm::nvvm::DISCARD = 0 , llvm::nvvm::LASTUSE = 1 , llvm::nvvm::FILL = 2 , llvm::nvvm::USE = 3 }
enum class  llvm::nvvm::TensormapElemType : uint8_t {
  llvm::nvvm::U8 = 0 , llvm::nvvm::U16 = 1 , llvm::nvvm::U32 = 2 , llvm::nvvm::S32 = 3 ,
  llvm::nvvm::U64 = 4 , llvm::nvvm::S64 = 5 , llvm::nvvm::F16 = 6 , llvm::nvvm::F32 = 7 ,
  llvm::nvvm::F32_FTZ = 8 , llvm::nvvm::F64 = 9 , llvm::nvvm::BF16 = 10 , llvm::nvvm::TF32 = 11 ,
  llvm::nvvm::TF32_FTZ = 12 , llvm::nvvm::B4x16 = 13 , llvm::nvvm::B4x16_p64 = 14 , llvm::nvvm::B6x16_p32 = 15
}
enum class  llvm::nvvm::TensormapInterleaveLayout : uint8_t { llvm::nvvm::NO_INTERLEAVE = 0 , llvm::nvvm::INTERLEAVE_16B = 1 , llvm::nvvm::INTERLEAVE_32B = 2 }
enum class  llvm::nvvm::TensormapSwizzleMode : uint8_t {
  llvm::nvvm::NO_SWIZZLE = 0 , llvm::nvvm::SWIZZLE_32B = 1 , llvm::nvvm::SWIZZLE_64B = 2 , llvm::nvvm::SWIZZLE_128B = 3 ,
  llvm::nvvm::SWIZZLE_96B = 4
}
enum class  llvm::nvvm::TensormapSwizzleAtomicity : uint8_t { llvm::nvvm::SWIZZLE_ATOMICITY_16B = 0 , llvm::nvvm::SWIZZLE_ATOMICITY_32B = 1 , llvm::nvvm::SWIZZLE_ATOMICITY_32B_FLIP_8B = 2 , llvm::nvvm::SWIZZLE_ATOMICITY_64B = 3 }
enum class  llvm::nvvm::TensormapFillMode : uint8_t { llvm::nvvm::ZERO_FILL = 0 , llvm::nvvm::OOB_NAN_FILL = 1 }

Functions

void llvm::nvvm::printTcgen05MMAKind (raw_ostream &OS, const Constant *ImmArgVal)
void llvm::nvvm::printTcgen05CollectorUsageOp (raw_ostream &OS, const Constant *ImmArgVal)
void llvm::nvvm::printTensormapElemType (raw_ostream &OS, const Constant *ImmArgVal)
void llvm::nvvm::printTensormapInterleaveLayout (raw_ostream &OS, const Constant *ImmArgVal)
void llvm::nvvm::printTensormapSwizzleMode (raw_ostream &OS, const Constant *ImmArgVal)
void llvm::nvvm::printTensormapSwizzleAtomicity (raw_ostream &OS, const Constant *ImmArgVal)
void llvm::nvvm::printTensormapFillMode (raw_ostream &OS, const Constant *ImmArgVal)
bool llvm::nvvm::FPToIntegerIntrinsicShouldFTZ (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::FPToIntegerIntrinsicResultIsSigned (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::FPToIntegerIntrinsicNaNZero (Intrinsic::ID IntrinsicID)
APFloat::roundingMode llvm::nvvm::GetFPToIntegerRoundingMode (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::FMinFMaxShouldFTZ (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::FMinFMaxPropagatesNaNs (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::FMinFMaxIsXorSignAbs (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::UnaryMathIntrinsicShouldFTZ (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::RCPShouldFTZ (Intrinsic::ID IntrinsicID)
APFloat::roundingMode llvm::nvvm::GetRCPRoundingMode (Intrinsic::ID IntrinsicID)
DenormalMode llvm::nvvm::GetNVVMDenormMode (bool ShouldFTZ)
bool llvm::nvvm::FAddShouldFTZ (Intrinsic::ID IntrinsicID)
APFloat::roundingMode llvm::nvvm::GetFAddRoundingMode (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::FMulShouldFTZ (Intrinsic::ID IntrinsicID)
APFloat::roundingMode llvm::nvvm::GetFMulRoundingMode (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::FDivShouldFTZ (Intrinsic::ID IntrinsicID)
APFloat::roundingMode llvm::nvvm::GetFDivRoundingMode (Intrinsic::ID IntrinsicID)
bool llvm::nvvm::FMAShouldFTZ (Intrinsic::ID IntrinsicID)
APFloat::roundingMode llvm::nvvm::GetFMARoundingMode (Intrinsic::ID IntrinsicID)

Detailed Description

This file contains the definitions of the enumerations and flags associated with NVVM Intrinsics, along with some helper functions.

Definition in file NVVMIntrinsicUtils.h.