diff --git a/mlir/include/mlir/Dialect/Math/Transforms/Passes.h b/mlir/include/mlir/Dialect/Math/Transforms/Passes.h index 74ba91322ea85..f0f17c6adcb08 100644 --- a/mlir/include/mlir/Dialect/Math/Transforms/Passes.h +++ b/mlir/include/mlir/Dialect/Math/Transforms/Passes.h @@ -31,7 +31,6 @@ void populateExpandAsinhPattern(RewritePatternSet &patterns); void populateExpandAcoshPattern(RewritePatternSet &patterns); void populateExpandAtanhPattern(RewritePatternSet &patterns); void populateExpandFmaFPattern(RewritePatternSet &patterns); -void populateExpandFloorFPattern(RewritePatternSet &patterns); void populateExpandCeilFPattern(RewritePatternSet &patterns); void populateExpandExp2FPattern(RewritePatternSet &patterns); void populateExpandPowFPattern(RewritePatternSet &patterns); diff --git a/mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp b/mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp index 8bcbdb4c9a664..3dadf9474cf4f 100644 --- a/mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp +++ b/mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp @@ -215,31 +215,6 @@ static LogicalResult convertFmaFOp(math::FmaOp op, PatternRewriter &rewriter) { return success(); } -// Converts a floorf() function to the following: -// floorf(float x) -> -// y = (float)(int) x -// if (x < 0) then incr = -1 else incr = 0 -// y = y + incr <= replace this op with the floorf op. -static LogicalResult convertFloorOp(math::FloorOp op, - PatternRewriter &rewriter) { - ImplicitLocOpBuilder b(op->getLoc(), rewriter); - Value operand = op.getOperand(); - Type opType = operand.getType(); - Value fpFixedConvert = createTruncatedFPValue(operand, b); - - // Creating constants for later use. - Value zero = createFloatConst(op->getLoc(), opType, 0.00, rewriter); - Value negOne = createFloatConst(op->getLoc(), opType, -1.00, rewriter); - - Value negCheck = - b.create(arith::CmpFPredicate::OLT, operand, zero); - Value incrValue = - b.create(op->getLoc(), negCheck, negOne, zero); - Value ret = b.create(opType, fpFixedConvert, incrValue); - rewriter.replaceOp(op, ret); - return success(); -} - // Converts a ceilf() function to the following: // ceilf(float x) -> // y = (float)(int) x @@ -696,10 +671,6 @@ void mlir::populateExpandRoundFPattern(RewritePatternSet &patterns) { patterns.add(convertRoundOp); } -void mlir::populateExpandFloorFPattern(RewritePatternSet &patterns) { - patterns.add(convertFloorOp); -} - void mlir::populateExpandRoundEvenPattern(RewritePatternSet &patterns) { patterns.add(convertRoundEvenOp); } diff --git a/mlir/test/Dialect/Math/expand-math.mlir b/mlir/test/Dialect/Math/expand-math.mlir index 89413b9570332..6055ed0504c84 100644 --- a/mlir/test/Dialect/Math/expand-math.mlir +++ b/mlir/test/Dialect/Math/expand-math.mlir @@ -133,24 +133,6 @@ func.func @fmaf_func(%a: f64, %b: f64, %c: f64) -> f64 { // ----- -// CHECK-LABEL: func @floorf_func -// CHECK-SAME: ([[ARG0:%.+]]: f64) -> f64 -func.func @floorf_func(%a: f64) -> f64 { - // CHECK-DAG: [[CST:%.+]] = arith.constant 0.000 - // CHECK-DAG: [[CST_0:%.+]] = arith.constant -1.000 - // CHECK-NEXT: [[CVTI:%.+]] = arith.fptosi [[ARG0]] - // CHECK-NEXT: [[CVTF:%.+]] = arith.sitofp [[CVTI]] - // CHECK-NEXT: [[COPYSIGN:%.+]] = math.copysign [[CVTF]], [[ARG0]] - // CHECK-NEXT: [[COMP:%.+]] = arith.cmpf olt, [[ARG0]], [[CST]] - // CHECK-NEXT: [[INCR:%.+]] = arith.select [[COMP]], [[CST_0]], [[CST]] - // CHECK-NEXT: [[ADDF:%.+]] = arith.addf [[COPYSIGN]], [[INCR]] - // CHECK-NEXT: return [[ADDF]] - %ret = math.floor %a : f64 - return %ret : f64 -} - -// ----- - // CHECK-LABEL: func @ceilf_func // CHECK-SAME: ([[ARG0:%.+]]: f64) -> f64 func.func @ceilf_func(%a: f64) -> f64 { diff --git a/mlir/test/lib/Dialect/Math/TestExpandMath.cpp b/mlir/test/lib/Dialect/Math/TestExpandMath.cpp index 69af2a08b97bd..0de6d6c55a4a5 100644 --- a/mlir/test/lib/Dialect/Math/TestExpandMath.cpp +++ b/mlir/test/lib/Dialect/Math/TestExpandMath.cpp @@ -46,7 +46,6 @@ void TestExpandMathPass::runOnOperation() { populateExpandAcoshPattern(patterns); populateExpandAtanhPattern(patterns); populateExpandFmaFPattern(patterns); - populateExpandFloorFPattern(patterns); populateExpandCeilFPattern(patterns); populateExpandPowFPattern(patterns); populateExpandFPowIPattern(patterns);