Skip to content

Commit ab0ab61

Browse files
author
Maximilian Bartel
committed
fix: fix tosa to linalg bug to allow offset to be signed
1 parent 9a62f7a commit ab0ab61

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,9 +1522,9 @@ class GenericResizeConverter : public OpRewritePattern<tosa::ResizeOp> {
15221522
xScaleD =
15231523
rewriter.create<arith::UIToFPOp>(loc, rewriter.getF32Type(), xScaleD);
15241524
yOffset =
1525-
rewriter.create<arith::UIToFPOp>(loc, rewriter.getF32Type(), yOffset);
1525+
rewriter.create<arith::SIToFPOp>(loc, rewriter.getF32Type(), yOffset);
15261526
xOffset =
1527-
rewriter.create<arith::UIToFPOp>(loc, rewriter.getF32Type(), xOffset);
1527+
rewriter.create<arith::SIToFPOp>(loc, rewriter.getF32Type(), xOffset);
15281528

15291529
y = rewriter.create<arith::MulFOp>(loc, y, yScaleD);
15301530
x = rewriter.create<arith::MulFOp>(loc, x, xScaleD);

mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-resize.mlir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,8 @@ func.func @resize_nearest_fp(%input: tensor<1x50x48x1xf32>) -> () {
319319
// CHECK: %[[SCALE_Y_D:.*]] = arith.uitofp %[[ISCALE_Y_D]]
320320
// CHECK: %[[SCALE_X_N:.*]] = arith.uitofp %[[ISCALE_X_N]]
321321
// CHECK: %[[SCALE_X_D:.*]] = arith.uitofp %[[ISCALE_X_D]]
322-
// CHECK: %[[OFFSET_Y:.*]] = arith.uitofp %[[IOFFSET_Y]]
323-
// CHECK: %[[OFFSET_X:.*]] = arith.uitofp %[[IOFFSET_X]]
322+
// CHECK: %[[OFFSET_Y:.*]] = arith.sitofp %[[IOFFSET_Y]]
323+
// CHECK: %[[OFFSET_X:.*]] = arith.sitofp %[[IOFFSET_X]]
324324

325325
// CHECK: %[[VAL_29:.*]] = arith.mulf %[[Y0]], %[[SCALE_Y_D]]
326326
// CHECK: %[[VAL_30:.*]] = arith.mulf %[[X0]], %[[SCALE_X_D]]
@@ -397,8 +397,8 @@ func.func @resize_bilinear_fp(%input: tensor<1x23x23x1xf32>) -> () {
397397
// CHECK: %[[SCALE_Y_D:.*]] = arith.uitofp %[[ISCALE_Y_D]]
398398
// CHECK: %[[SCALE_X_N:.*]] = arith.uitofp %[[ISCALE_X_N]]
399399
// CHECK: %[[SCALE_X_D:.*]] = arith.uitofp %[[ISCALE_X_D]]
400-
// CHECK: %[[OFFSET_Y:.*]] = arith.uitofp %[[IOFFSET_Y]]
401-
// CHECK: %[[OFFSET_X:.*]] = arith.uitofp %[[IOFFSET_X]]
400+
// CHECK: %[[OFFSET_Y:.*]] = arith.sitofp %[[IOFFSET_Y]]
401+
// CHECK: %[[OFFSET_X:.*]] = arith.sitofp %[[IOFFSET_X]]
402402

403403
// CHECK: %[[VAL_29:.*]] = arith.mulf %[[Y0]], %[[SCALE_Y_D]]
404404
// CHECK: %[[VAL_30:.*]] = arith.mulf %[[X0]], %[[SCALE_X_D]]

0 commit comments

Comments
 (0)