diff --git a/flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp b/flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp --- a/flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp +++ b/flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp @@ -444,9 +444,7 @@ // RTNAME(Sum)(const Descriptor &x, const char *source, int line, // int dim, const Descriptor *mask) // - // Disable SUM inlining by default, because it fatally fails on some - // FIR yet. - if (enableExperimental && funcName.startswith("_FortranASum")) { + if (funcName.startswith("_FortranASum")) { mlir::Operation::operand_range args = call.getArgs(); // args[1] and args[2] are source filename and line number, ignored. const mlir::Value &dim = args[3]; diff --git a/flang/test/Transforms/experimental.fir b/flang/test/Transforms/experimental.fir new file mode 100644 --- /dev/null +++ b/flang/test/Transforms/experimental.fir @@ -0,0 +1,13 @@ +// RUN: fir-opt --split-input-file --simplify-intrinsics='enable-experimental=true' %s | FileCheck %s + +// check that a simple function compiled with experimental enabled +module attributes {fir.defaultkind = "a1c4d8i4l4r4", fir.kindmap = "", llvm.target_triple = "native"} { + func.func @experimental_1(%arg0: !fir.ref {fir.bindc_name = "a"}) -> i32 { + %c10 = arith.constant 10 : i32 + return %c10 : i32 + } +} + +// CHECK-LABEL: func.func @experimental_1( +// CHECK: return %{{.*}} : i32 +// CHECK: } diff --git a/flang/test/Transforms/simplifyintrinsics.fir b/flang/test/Transforms/simplifyintrinsics.fir --- a/flang/test/Transforms/simplifyintrinsics.fir +++ b/flang/test/Transforms/simplifyintrinsics.fir @@ -1,4 +1,4 @@ -// RUN: fir-opt --split-input-file --simplify-intrinsics='enable-experimental=true' %s | FileCheck %s +// RUN: fir-opt --split-input-file --simplify-intrinsics %s | FileCheck %s // Call to SUM with 1D I32 array is replaced. module attributes {fir.defaultkind = "a1c4d8i4l4r4", fir.kindmap = "", llvm.target_triple = "native"} {