MLIR  18.0.0git
Classes | Enumerations | Functions | Variables
mlir::arm_sme Namespace Reference

Classes

class  ArmSMETypeConverter
 

Enumerations

enum class  ArmStreaming { Default = 0 , Locally = 1 }
 

Functions

std::unique_ptr< PasscreateEnableArmStreamingPass (const ArmStreaming mode=ArmStreaming::Default, const bool enableZA=false)
 Pass to enable Armv9 Streaming SVE mode. More...
 
std::unique_ptr< PasscreateTileAllocationPass ()
 Pass that replaces 'arm_sme.get_tile_id' ops with actual tiles. More...
 
void populateVectorTransferLoweringPatterns (LLVMTypeConverter &converter, RewritePatternSet &patterns)
 
unsigned getSMETileSliceMinNumElts (Type type)
 Return minimum number of elements for the given element type in a vector of SVL bits. More...
 
bool isValidSMETileElementType (Type type)
 Returns true if type is a valid element type for an SME tile or false otherwise. More...
 
bool isValidSMETileVectorType (VectorType vType)
 Returns true if vType is a valid vector type for an SME tile or false otherwise. More...
 
Value castTileIDToI32 (Value tile, Location loc, RewriterBase &rewriter)
 Extends or truncates tile, which should be an arm_sme::GetTileID or arm_sme::CastVectorToTile op returning an 8/16/32/64/128-bit scalar integer, to an i32 that can be passed as the tile parameter to the SME intrinsics. More...
 

Variables

constexpr unsigned MinStreamingVectorLengthInBits = 128
 

Enumeration Type Documentation

◆ ArmStreaming

Enumerator
Default 
Locally 

Definition at line 27 of file Passes.h.

Function Documentation

◆ castTileIDToI32()

Value mlir::arm_sme::castTileIDToI32 ( Value  tile,
Location  loc,
RewriterBase rewriter 
)

Extends or truncates tile, which should be an arm_sme::GetTileID or arm_sme::CastVectorToTile op returning an 8/16/32/64/128-bit scalar integer, to an i32 that can be passed as the tile parameter to the SME intrinsics.

Or returns tile if already i32.

Definition at line 47 of file Utils.cpp.

References mlir::OpBuilder::create(), mlir::Builder::getI32Type(), and mlir::tile().

◆ createEnableArmStreamingPass()

std::unique_ptr< Pass > mlir::arm_sme::createEnableArmStreamingPass ( const ArmStreaming  mode = ArmStreaming::Default,
const bool  enableZA = false 
)

Pass to enable Armv9 Streaming SVE mode.

Definition at line 90 of file EnableArmStreaming.cpp.

◆ createTileAllocationPass()

std::unique_ptr< Pass > mlir::arm_sme::createTileAllocationPass ( )

Pass that replaces 'arm_sme.get_tile_id' ops with actual tiles.

Definition at line 196 of file TileAllocation.cpp.

◆ getSMETileSliceMinNumElts()

unsigned mlir::arm_sme::getSMETileSliceMinNumElts ( Type  type)

Return minimum number of elements for the given element type in a vector of SVL bits.

Definition at line 21 of file Utils.cpp.

References mlir::Type::getIntOrFloatBitWidth(), isValidSMETileElementType(), and MinStreamingVectorLengthInBits.

Referenced by getLoopOverTileSlices(), and isValidSMETileVectorType().

◆ isValidSMETileElementType()

bool mlir::arm_sme::isValidSMETileElementType ( Type  type)

Returns true if type is a valid element type for an SME tile or false otherwise.

Definition at line 26 of file Utils.cpp.

References mlir::Type::isBF16(), mlir::Type::isF128(), mlir::Type::isF16(), mlir::Type::isF32(), mlir::Type::isF64(), and mlir::Type::isInteger().

Referenced by getSMETileSliceMinNumElts(), and isValidSMETileVectorType().

◆ isValidSMETileVectorType()

bool mlir::arm_sme::isValidSMETileVectorType ( VectorType  vType)

Returns true if vType is a valid vector type for an SME tile or false otherwise.

Definition at line 32 of file Utils.cpp.

References getSMETileSliceMinNumElts(), and isValidSMETileElementType().

◆ populateVectorTransferLoweringPatterns()

void mlir::arm_sme::populateVectorTransferLoweringPatterns ( LLVMTypeConverter converter,
RewritePatternSet patterns 
)

Variable Documentation

◆ MinStreamingVectorLengthInBits

constexpr unsigned mlir::arm_sme::MinStreamingVectorLengthInBits = 128
constexpr

Definition at line 23 of file Utils.h.

Referenced by getSMETileSliceMinNumElts().