[Mlir-commits] [mlir] [mlir][LLVM] Refactor how range() annotations are handled for ROCDL intrinsics (PR #107658)
Krzysztof Drewniak
llvmlistbot at llvm.org
Wed Sep 11 10:14:04 PDT 2024
================
@@ -1034,6 +1034,40 @@ def LLVM_TBAATagArrayAttr
let constBuilderCall = ?;
}
+//===----------------------------------------------------------------------===//
+// ConstantRangeAttr
+//===----------------------------------------------------------------------===//
+def LLVM_ConstantRangeAttr : LLVM_Attr<"ConstantRange", "constant_range"> {
+ let parameters = (ins
+ "::llvm::APInt":$lower,
+ "::llvm::APInt":$upper
+ );
+ let summary = "A range of two integers, corresponding to LLVM's ConstantRange";
+ let description = [{
+ A pair of two integers, mapping to the ConstantRange structure in LLVM IR,
+ which is allowed to wrap or be empty.
+
+ The range represented is [Lower, Upper), and is either signed or unsigned
+ depending on context.
+
+ `lower` and `upper` must have the same width.
+
+ Syntax:
+ ```
+ `<` `i`(width($lower)) $lower `,` $upper `>`
+ }];
+
+ let builders = [
+ AttrBuilder<(ins "uint32_t":$bitWidth, "int64_t":$lower, "int64_t":$upper), [{
+ return $_get($_ctxt, ::llvm::APInt(bitWidth, lower), ::llvm::APInt(bitWidth, upper));
+ }]>
+ ];
+
+ let hasCustomAssemblyFormat = 1;
+ let genVerifyDecl = 1;
+}
----------------
krzysz00 wrote:
Sadly, we don't currently have the roundtrip tests set up for ROCDL at all ... should I add them in this PR? Or should I pick some intrinsic as a target for these annotations?
https://github.com/llvm/llvm-project/pull/107658
More information about the Mlir-commits
mailing list