-
Notifications
You must be signed in to change notification settings - Fork 10.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[mlir][ArmSME] Add tile load op and extend tile store tile size support
This extends the existing 'arm_sme.tile_store' op to support all tile sizes and adds a new op 'arm_sme.tile_load', as well as lowerings from vector -> custom ops and custom ops -> intrinsics. Currently there's no lowering for i128. Depends on D154867 Reviewed By: awarzynski, dcaballe Differential Revision: https://reviews.llvm.org/D155306
- Loading branch information
Showing
12 changed files
with
1,069 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
//===- Utils.h - General ArmSME transformation utilities --------*- 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 | ||
// | ||
//===----------------------------------------------------------------------===// | ||
// | ||
// This header file defines prototypes for various utilities for the ArmSME | ||
// dialect. These are not passes by themselves but are used either by passes, | ||
// optimization sequences, or in turn by other transformation utilities. | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
#ifndef MLIR_DIALECT_ARMSME_UTILS_UTILS_H_ | ||
#define MLIR_DIALECT_ARMSME_UTILS_UTILS_H_ | ||
|
||
#include "mlir/Dialect/ArmSME/IR/ArmSME.h" | ||
|
||
namespace mlir { | ||
namespace arm_sme { | ||
|
||
/// Return minimum number of elements for the given element `type` in | ||
/// a vector of SVL bits. | ||
unsigned getSMETileSliceMinNumElts(Type type); | ||
|
||
/// Returns true if `type` is a valid element type for an SME tile or false | ||
/// otherwise. | ||
bool isValidSMETileElementType(Type type); | ||
|
||
/// Returns true if `vType` is a valid vector type for an SME tile or false | ||
/// otherwise. | ||
bool isValidSMETileVectorType(VectorType vType); | ||
|
||
} // namespace arm_sme | ||
} // namespace mlir | ||
|
||
#endif // MLIR_DIALECT_ARMSME_UTILS_UTILS_H_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
add_subdirectory(IR) | ||
add_subdirectory(Transforms) | ||
add_subdirectory(Utils) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.