Skip to content

Commit 0d09fc6

Browse files
committed
merge into a single op
1 parent d34b02d commit 0d09fc6

File tree

2 files changed

+48
-64
lines changed

2 files changed

+48
-64
lines changed

mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -112,41 +112,25 @@ def AMDGPU_ExtPackedFp8Op :
112112
}];
113113
}
114114

115-
def AMDGPU_ScaledExtPacked8Op
116-
: AMDGPU_Op<"scaled_ext_packed8", [Pure]>,
115+
def AMDGPU_ScaledExtPacked816Op
116+
: AMDGPU_Op<"scaled_ext_packed816", [Pure]>,
117117
Arguments<(
118-
ins VectorOfLengthAndType<[8], [F4E2M1FN,F8E4M3FN,F8E5M2]>:$source,
118+
ins AnyTypeOf<[VectorOfLengthAndType<[8], [F4E2M1FN,F8E4M3FN,F8E5M2]>,
119+
VectorOfLengthAndType<[16], [F6E2M3FN, F6E3M2FN]>]>:$source,
119120
F32:$scale,
120121
ConfinedAttr<I32Attr, [IntNonNegative, IntMaxValue<7>]>:$index)>,
121122
Results<(
122123
outs AnyTypeOf<[FixedVectorOfLengthAndType<[8], [F32]>,
123124
FixedVectorOfLengthAndType<[8], [F16]>,
124-
FixedVectorOfLengthAndType<[8], [BF16]>]>:$res)> {
125-
let summary = "Extend a vector of packed floating point values";
126-
127-
let description = [{
128-
Extend and scale eight packed floats in to eight floats and return them.
129-
}];
130-
131-
let assemblyFormat = [{
132-
attr-dict $source `,` $scale `[` $index `]` `:` type($source) `to` type($res)
133-
}];
134-
}
135-
136-
def AMDGPU_ScaledExtPacked16Op
137-
: AMDGPU_Op<"scaled_ext_packed16", [Pure]>,
138-
Arguments<(
139-
ins VectorOfLengthAndType<[16], [F6E2M3FN, F6E3M2FN]>:$source,
140-
F32:$scale,
141-
ConfinedAttr<I32Attr, [IntNonNegative, IntMaxValue<7>]>:$index)>,
142-
Results<(
143-
outs AnyTypeOf<[FixedVectorOfLengthAndType<[16], [F32]>,
125+
FixedVectorOfLengthAndType<[8], [BF16]>,
126+
FixedVectorOfLengthAndType<[16], [F32]>,
144127
FixedVectorOfLengthAndType<[16], [F16]>,
145128
FixedVectorOfLengthAndType<[16], [BF16]>]>:$res)> {
129+
146130
let summary = "Extend a vector of packed floating point values";
147131

148132
let description = [{
149-
Extend and scale 16 packed floats to 16 floats and return them.
133+
Extend and scale 8/16 packed floats in to 8/16 floats and return them.
150134
}];
151135

152136
let assemblyFormat = [{

mlir/test/Dialect/AMDGPU/ops.mlir

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -221,58 +221,58 @@ func.func @scaled_ext_scalar_f4e2m1_bf16(%v: vector<2xf4E2M1FN>, %scale: f32) ->
221221
func.return %ret : vector<2xbf16>
222222
}
223223

224-
// CHECK-LABEL: func.func @scaled_ext_packed8_fp4
225-
func.func @scaled_ext_packed8_fp4(%v: vector<8xf4E2M1FN>, %scale: f32) -> (vector<8xf16>, vector<8xbf16>, vector<8xf32>) {
226-
// CHECK: amdgpu.scaled_ext_packed8
227-
%ret0 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf4E2M1FN> to vector<8xf16>
228-
// CHECK: amdgpu.scaled_ext_packed8
229-
%ret1 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf4E2M1FN> to vector<8xbf16>
230-
// CHECK: amdgpu.scaled_ext_packed8
231-
%ret2 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf4E2M1FN> to vector<8xf32>
224+
// CHECK-LABEL: func.func @scaled_ext_packed816_fp4
225+
func.func @scaled_ext_packed816_fp4(%v: vector<8xf4E2M1FN>, %scale: f32) -> (vector<8xf16>, vector<8xbf16>, vector<8xf32>) {
226+
// CHECK: amdgpu.scaled_ext_packed816
227+
%ret0 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf4E2M1FN> to vector<8xf16>
228+
// CHECK: amdgpu.scaled_ext_packed816
229+
%ret1 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf4E2M1FN> to vector<8xbf16>
230+
// CHECK: amdgpu.scaled_ext_packed816
231+
%ret2 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf4E2M1FN> to vector<8xf32>
232232
func.return %ret0, %ret1, %ret2 : vector<8xf16>, vector<8xbf16>, vector<8xf32>
233233
}
234234

235-
// CHECK-LABEL: func.func @scaled_ext_packed8_fp8
236-
func.func @scaled_ext_packed8_fp8(%v: vector<8xf8E4M3FN>, %scale: f32) -> (vector<8xf16>, vector<8xbf16>, vector<8xf32>) {
237-
// CHECK: amdgpu.scaled_ext_packed8
238-
%ret0 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf8E4M3FN> to vector<8xf16>
239-
// CHECK: amdgpu.scaled_ext_packed8
240-
%ret1 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf8E4M3FN> to vector<8xbf16>
241-
// CHECK: amdgpu.scaled_ext_packed8
242-
%ret2 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf8E4M3FN> to vector<8xf32>
235+
// CHECK-LABEL: func.func @scaled_ext_packed816_fp8
236+
func.func @scaled_ext_packed816_fp8(%v: vector<8xf8E4M3FN>, %scale: f32) -> (vector<8xf16>, vector<8xbf16>, vector<8xf32>) {
237+
// CHECK: amdgpu.scaled_ext_packed816
238+
%ret0 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf8E4M3FN> to vector<8xf16>
239+
// CHECK: amdgpu.scaled_ext_packed816
240+
%ret1 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf8E4M3FN> to vector<8xbf16>
241+
// CHECK: amdgpu.scaled_ext_packed816
242+
%ret2 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf8E4M3FN> to vector<8xf32>
243243
func.return %ret0, %ret1, %ret2 : vector<8xf16>, vector<8xbf16>, vector<8xf32>
244244
}
245245

246-
// CHECK-LABEL: func.func @scaled_ext_packed8_bf8
247-
func.func @scaled_ext_packed8_bf8(%v: vector<8xf8E5M2>, %scale: f32) -> (vector<8xf16>, vector<8xbf16>, vector<8xf32>) {
248-
// CHECK: amdgpu.scaled_ext_packed8
249-
%ret0 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf8E5M2> to vector<8xf16>
250-
// CHECK: amdgpu.scaled_ext_packed8
251-
%ret1 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf8E5M2> to vector<8xbf16>
252-
// CHECK: amdgpu.scaled_ext_packed8
253-
%ret2 = amdgpu.scaled_ext_packed8 %v, %scale[0] : vector<8xf8E5M2> to vector<8xf32>
246+
// CHECK-LABEL: func.func @scaled_ext_packed816_bf8
247+
func.func @scaled_ext_packed816_bf8(%v: vector<8xf8E5M2>, %scale: f32) -> (vector<8xf16>, vector<8xbf16>, vector<8xf32>) {
248+
// CHECK: amdgpu.scaled_ext_packed816
249+
%ret0 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf8E5M2> to vector<8xf16>
250+
// CHECK: amdgpu.scaled_ext_packed816
251+
%ret1 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf8E5M2> to vector<8xbf16>
252+
// CHECK: amdgpu.scaled_ext_packed816
253+
%ret2 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<8xf8E5M2> to vector<8xf32>
254254
func.return %ret0, %ret1, %ret2 : vector<8xf16>, vector<8xbf16>, vector<8xf32>
255255
}
256256

257-
// CHECK-LABEL: func.func @scaled_ext_packed16_fp6
258-
func.func @scaled_ext_packed16_fp6(%v: vector<16xf6E2M3FN>, %scale: f32) -> (vector<16xf16>, vector<16xbf16>, vector<16xf32>) {
259-
// CHECK: amdgpu.scaled_ext_packed16
260-
%ret0 = amdgpu.scaled_ext_packed16 %v, %scale[0] : vector<16xf6E2M3FN> to vector<16xf16>
261-
// CHECK: amdgpu.scaled_ext_packed16
262-
%ret1 = amdgpu.scaled_ext_packed16 %v, %scale[0] : vector<16xf6E2M3FN> to vector<16xbf16>
263-
// CHECK: amdgpu.scaled_ext_packed16
264-
%ret2 = amdgpu.scaled_ext_packed16 %v, %scale[0] : vector<16xf6E2M3FN> to vector<16xf32>
257+
// CHECK-LABEL: func.func @scaled_ext_packed816_fp6
258+
func.func @scaled_ext_packed816_fp6(%v: vector<16xf6E2M3FN>, %scale: f32) -> (vector<16xf16>, vector<16xbf16>, vector<16xf32>) {
259+
// CHECK: amdgpu.scaled_ext_packed816
260+
%ret0 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<16xf6E2M3FN> to vector<16xf16>
261+
// CHECK: amdgpu.scaled_ext_packed816
262+
%ret1 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<16xf6E2M3FN> to vector<16xbf16>
263+
// CHECK: amdgpu.scaled_ext_packed816
264+
%ret2 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<16xf6E2M3FN> to vector<16xf32>
265265
func.return %ret0, %ret1, %ret2 : vector<16xf16>, vector<16xbf16>, vector<16xf32>
266266
}
267267

268-
// CHECK-LABEL: func.func @scaled_ext_packed16_bf16
269-
func.func @scaled_ext_packed16_bf16(%v: vector<16xf6E3M2FN>, %scale: f32) -> (vector<16xf16>, vector<16xbf16>, vector<16xf32>) {
270-
// CHECK: amdgpu.scaled_ext_packed16
271-
%ret0 = amdgpu.scaled_ext_packed16 %v, %scale[0] : vector<16xf6E3M2FN> to vector<16xf16>
272-
// CHECK: amdgpu.scaled_ext_packed16
273-
%ret1 = amdgpu.scaled_ext_packed16 %v, %scale[0] : vector<16xf6E3M2FN> to vector<16xbf16>
274-
// CHECK: amdgpu.scaled_ext_packed16
275-
%ret2 = amdgpu.scaled_ext_packed16 %v, %scale[0] : vector<16xf6E3M2FN> to vector<16xf32>
268+
// CHECK-LABEL: func.func @scaled_ext_packed816_bf16
269+
func.func @scaled_ext_packed816_bf16(%v: vector<16xf6E3M2FN>, %scale: f32) -> (vector<16xf16>, vector<16xbf16>, vector<16xf32>) {
270+
// CHECK: amdgpu.scaled_ext_packed816
271+
%ret0 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<16xf6E3M2FN> to vector<16xf16>
272+
// CHECK: amdgpu.scaled_ext_packed816
273+
%ret1 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<16xf6E3M2FN> to vector<16xbf16>
274+
// CHECK: amdgpu.scaled_ext_packed816
275+
%ret2 = amdgpu.scaled_ext_packed816 %v, %scale[0] : vector<16xf6E3M2FN> to vector<16xf32>
276276
func.return %ret0, %ret1, %ret2 : vector<16xf16>, vector<16xbf16>, vector<16xf32>
277277
}
278278

0 commit comments

Comments
 (0)