[Mlir-commits] [mlir] [mlir][amdgpu] Introduce `assume_subgroup_uniform` op (PR #152740)
Jakub Kuderski
llvmlistbot at llvm.org
Fri Aug 8 09:12:28 PDT 2025
================
@@ -635,6 +636,37 @@ def AMDGPU_DPPOp : AMDGPU_Op<"dpp",
let hasVerifier = 1;
}
+def AMDGPU_AssumeSubgroupUniformOp : AMDGPU_Op<"assume_subgroup_uniform",
+ [NoMemoryEffect, AllTypesMatch<["result", "src"]>,
+ DeclareOpInterfaceMethods<InferIntRangeInterface, ["inferResultRanges"]>,
+ DeclareOpInterfaceMethods<ConditionallySpeculatable, ["getSpeculatability"]>] #
+ ElementwiseMappable.traits>,
+ Arguments<(ins AnyType:$src,
+ DefaultValuedAttr<UnitAttr, "false">:$all_lanes)> {
+ let summary = "Assumes value is unform across the lanes in subgroup";
+ let description = [{
+ This op is a compiler hint to help backend put values into scalar registers.
+
+ If `src` value is uniform across all the active subgroup lanes it is
+ returned unchanged, otherwise result is poison.
+
+ If `all_lanes` is set, the value is assumed to be uniform across all the
+ subgroup lanes, this can allow to speculate it out of control flow, which
+ may change the current active lanes, i.e:
+ ```
----------------
kuhar wrote:
```suggestion
```mlir
```
https://github.com/llvm/llvm-project/pull/152740
More information about the Mlir-commits
mailing list