[Mlir-commits] [mlir] [mlir][AMDGPU] Add scaled floating point conversion ops fp8 (PR #141554)
Umang Yadav
llvmlistbot at llvm.org
Tue Jun 10 06:00:08 PDT 2025
================
@@ -139,6 +171,36 @@ def AMDGPU_PackedTrunc2xFp8Op :
let hasVerifier = 1;
}
+def AMDGPU_PackedScaledTruncOp
+ : AMDGPU_Op<"packed_scaled_trunc", [Pure]>,
+ Arguments<(ins VectorOfLengthAndType<[2], [F32, F16, BF16]>:$source,
+ F32:$scale,
+ ConfinedAttr<I32Attr, [IntNonNegative, IntMaxValue<7>]>:$index,
+ Optional<AnyTypeOf<
+ [FixedVectorOfLengthAndType<[4], [F8E5M2, F8E4M3FN]>,
+ FixedVectorOfLengthAndType<[8], [F4E2M1FN]>]>>:$existing)>,
+ Results<(
+ outs AnyTypeOf<[FixedVectorOfLengthAndType<[4], [F8E5M2, F8E4M3FN]>,
+ FixedVectorOfLengthAndType<[8], [F4E2M1FN]>]>:$res)> {
+ let summary = "Round two floats into a packed vector of floats";
+ let description = [{
+ Scale and round the inputs `sourceA` and `sourceB` (which is undefined if not
+ specified) into the low or high word (bottom two or top two) elements
----------------
umangyadav wrote:
Is there a selector for selecting low or high word ?
What's the role of `index` attribute here ? Can you explain ?
https://github.com/llvm/llvm-project/pull/141554
More information about the Mlir-commits
mailing list