Skip to content

Dialect/Math/canonicalize.mlir is failing on macOS #15

@AlexDenisov

Description

@AlexDenisov

Not sure if this is macOS specific, but the test fails due to floating point representation.
The test case around @sin_fold

func.func @sin_fold() -> f32 {
  %c = arith.constant 1.0 : f32
  %r = math.sin %c : f32
  return %r : f32
}

expects 0.84{{[0-9]+}} but canonicalizer produces 8.414710e-01.

The following diff fixes the test for me, but I'm not sure if it breaks something on other platforms:

diff --git a/mlir/test/Dialect/Math/canonicalize.mlir b/mlir/test/Dialect/Math/canonicalize.mlir
index d7c4bb712992..1b9eac808f0b 100644
--- a/mlir/test/Dialect/Math/canonicalize.mlir
+++ b/mlir/test/Dialect/Math/canonicalize.mlir
@@ -449,7 +449,7 @@ func.func @trunc_fold_vec() -> (vector<4xf32>) {
 }

 // CHECK-LABEL: @sin_fold
-// CHECK-NEXT: %[[cst:.+]] = arith.constant 0.84{{[0-9]+}} : f32
+// CHECK-NEXT: %[[cst:.+]] = arith.constant 8.4{{[0-9]+}}e-01 : f32
 // CHECK-NEXT:   return %[[cst]]
 func.func @sin_fold() -> f32 {
   %c = arith.constant 1.0 : f32
@@ -458,7 +458,7 @@ func.func @sin_fold() -> f32 {
 }

 // CHECK-LABEL: @sin_fold_vec
-// CHECK-NEXT: %[[cst:.+]] = arith.constant dense<[0.000000e+00, 0.84{{[0-9]+}}, 0.000000e+00, 0.84{{[0-9]+}}]> : vector<4xf32>
+// CHECK-NEXT: %[[cst:.+]] = arith.constant dense<[0.000000e+00, 8.4{{[0-9]+}}e-01, 0.000000e+00, 8.4{{[0-9]+}}e-01]> : vector<4xf32>
 // CHECK-NEXT:   return %[[cst]]
 func.func @sin_fold_vec() -> (vector<4xf32>) {
   %v1 = arith.constant dense<[0.0, 1.0, 0.0, 1.0]> : vector<4xf32>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions