Skip to content

Conversation

ianayl
Copy link
Contributor

@ianayl ianayl commented Sep 19, 2025

This PR introduces a MathToXeVM pass, which implements support for the afn fastmath flag for SPIRV/XeVM targets - It takes supported Math Ops with the afn flag, and converts them to function calls to OpenCL native_ intrinsics.

These intrinsic functions are supported by the SPIRV backend, and are automatically converted to OpExtInst calls to native_ ops from the OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM.

Note:

  • This pass also supports converting arith.divf to native equivalents. There is an option provided in the pass to turn this behavior off.
  • This pass preserves fastmath flags, but these flags are currently ignored by the SPIRV backend. Thus, in order to generate SPIRV that truly preserves fastmath flags, support needs to be added to the SPIRV backend.

Copy link

github-actions bot commented Sep 19, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

@mshahneo
Copy link
Contributor

@silee2 , @Jianhui-Li , @charithaintc

@ianayl
Copy link
Contributor Author

ianayl commented Sep 22, 2025

Another thing I'm realizing: I'm guessing I should probably make these calls such that I am preserving existing attributes, especially the existing fastmath flags to begin with? Opting to preserve fastmath flags in order to preserve more detail: Compilers that ingest SPIRV can use the fastmath flags for further optimization.

@ianayl ianayl marked this pull request as ready for review September 25, 2025 22:30
@llvmbot llvmbot added the mlir label Sep 25, 2025
@llvmbot
Copy link
Member

llvmbot commented Sep 25, 2025

@llvm/pr-subscribers-mlir

Author: Ian Li (ianayl)

Changes

This PR introduces a MathToXeVM pass, which implements support for the afn fastmath flag for SPIRV/XeVM targets - It takes supported Math Ops with the afn flag, and converts them to function calls to OpenCL native_ intrinsics.

These intrinsic functions are supported by the SPIRV backend, and are automatically converted to OpExtInst calls to native_ ops from the OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM.

Note:

  • This pass also supports converting arith.divf to native equivalents. There is an option provided in the pass to turn this behavior off.
  • This pass preserves fastmath flags, but these flags are currently ignored by the SPIRV backend. Thus, in order to generate SPIRV that truly preserves fastmath flags, support needs to be added to the SPIRV backend.

Patch is 29.90 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/159878.diff

8 Files Affected:

  • (added) mlir/include/mlir/Conversion/MathToXeVM/MathToXeVM.h (+27)
  • (modified) mlir/include/mlir/Conversion/Passes.h (+1)
  • (modified) mlir/include/mlir/Conversion/Passes.td (+26)
  • (modified) mlir/lib/Conversion/CMakeLists.txt (+1)
  • (added) mlir/lib/Conversion/MathToXeVM/CMakeLists.txt (+24)
  • (added) mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp (+188)
  • (added) mlir/test/Conversion/MathToXeVM/math-to-xevm.mlir (+158)
  • (added) mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir (+118)
diff --git a/mlir/include/mlir/Conversion/MathToXeVM/MathToXeVM.h b/mlir/include/mlir/Conversion/MathToXeVM/MathToXeVM.h
new file mode 100644
index 0000000000000..91d3c92fd6296
--- /dev/null
+++ b/mlir/include/mlir/Conversion/MathToXeVM/MathToXeVM.h
@@ -0,0 +1,27 @@
+//===- MathToXeVM.h - Utils for converting Math to XeVM -------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+#ifndef MLIR_CONVERSION_MATHTOXEVM_MATHTOXEVM_H_
+#define MLIR_CONVERSION_MATHTOXEVM_MATHTOXEVM_H_
+
+#include "mlir/Conversion/LLVMCommon/TypeConverter.h"
+#include "mlir/Dialect/LLVMIR/XeVMDialect.h"
+#include "mlir/IR/PatternMatch.h"
+#include <memory>
+
+namespace mlir {
+class Pass;
+
+#define GEN_PASS_DECL_CONVERTMATHTOXEVM
+#include "mlir/Conversion/Passes.h.inc"
+
+/// Populate the given list with patterns that convert from Math to XeVM calls.
+void populateMathToXeVMConversionPatterns(RewritePatternSet &patterns,
+                                          bool convertArith);
+} // namespace mlir
+
+#endif // MLIR_CONVERSION_MATHTOXEVM_MATHTOXEVM_H_
diff --git a/mlir/include/mlir/Conversion/Passes.h b/mlir/include/mlir/Conversion/Passes.h
index da061b269daf7..40d866ec7bf10 100644
--- a/mlir/include/mlir/Conversion/Passes.h
+++ b/mlir/include/mlir/Conversion/Passes.h
@@ -49,6 +49,7 @@
 #include "mlir/Conversion/MathToLibm/MathToLibm.h"
 #include "mlir/Conversion/MathToROCDL/MathToROCDL.h"
 #include "mlir/Conversion/MathToSPIRV/MathToSPIRVPass.h"
+#include "mlir/Conversion/MathToXeVM/MathToXeVM.h"
 #include "mlir/Conversion/MemRefToEmitC/MemRefToEmitCPass.h"
 #include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h"
 #include "mlir/Conversion/MemRefToSPIRV/MemRefToSPIRVPass.h"
diff --git a/mlir/include/mlir/Conversion/Passes.td b/mlir/include/mlir/Conversion/Passes.td
index 1a37d057776e2..5817babf68ddb 100644
--- a/mlir/include/mlir/Conversion/Passes.td
+++ b/mlir/include/mlir/Conversion/Passes.td
@@ -796,6 +796,32 @@ def ConvertMathToSPIRVPass : Pass<"convert-math-to-spirv"> {
   let dependentDialects = ["spirv::SPIRVDialect"];
 }
 
+//===----------------------------------------------------------------------===//
+// MathToXeVM
+//===----------------------------------------------------------------------===//
+
+def ConvertMathToXeVM : Pass<"convert-math-to-xevm", "ModuleOp"> {
+  let summary =
+      "Convert (fast) math operations to native XeVM/SPIRV equivalents";
+  let description = [{
+    This pass converts supported math ops marked with the `afn` fastmath flag
+    to function calls for OpenCL `native_` math intrinsics: These intrinsics
+    are typically mapped directly to native device instructions, often resulting
+    in better performance. However, the precision/error of these intrinsics
+    are implementation-defined, and thus math ops are only converted when they
+    have the `afn` fastmath flag enabled.
+  }];
+  let options = [Option<
+      "convertArith", "convert-arith", "bool", /*default=*/"true",
+      "Convert supported Arith ops (e.g. arith.divf) as well.">];
+  let dependentDialects = [
+    "arith::ArithDialect",
+    "func::FuncDialect",
+    "xevm::XeVMDialect",
+    "vector::VectorDialect",
+  ];
+}
+
 //===----------------------------------------------------------------------===//
 // MathToEmitC
 //===----------------------------------------------------------------------===//
diff --git a/mlir/lib/Conversion/CMakeLists.txt b/mlir/lib/Conversion/CMakeLists.txt
index 71986f83c4870..bebf1b8fff3f9 100644
--- a/mlir/lib/Conversion/CMakeLists.txt
+++ b/mlir/lib/Conversion/CMakeLists.txt
@@ -40,6 +40,7 @@ add_subdirectory(MathToLibm)
 add_subdirectory(MathToLLVM)
 add_subdirectory(MathToROCDL)
 add_subdirectory(MathToSPIRV)
+add_subdirectory(MathToXeVM)
 add_subdirectory(MemRefToEmitC)
 add_subdirectory(MemRefToLLVM)
 add_subdirectory(MemRefToSPIRV)
diff --git a/mlir/lib/Conversion/MathToXeVM/CMakeLists.txt b/mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
new file mode 100644
index 0000000000000..711c6876bb168
--- /dev/null
+++ b/mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
@@ -0,0 +1,24 @@
+# TODO check if everything here is needed
+add_mlir_conversion_library(MLIRMathToXeVM
+  MathToXeVM.cpp
+
+  ADDITIONAL_HEADER_DIRS
+  ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToXeVM
+
+  DEPENDS
+  MLIRConversionPassIncGen
+
+  LINK_COMPONENTS
+  Core
+
+  LINK_LIBS PUBLIC
+  MLIRDialectUtils
+  MLIRFuncDialect
+  MLIRGPUToGPURuntimeTransforms
+  MLIRMathDialect
+  MLIRLLVMCommonConversion
+  MLIRPass
+  MLIRTransformUtils
+  MLIRVectorDialect
+  MLIRVectorUtils
+  )
diff --git a/mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp b/mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
new file mode 100644
index 0000000000000..46833735a79dd
--- /dev/null
+++ b/mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
@@ -0,0 +1,188 @@
+//===-- MathToXeVM.cpp - conversion from Math to XeVM ---------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/Conversion/MathToXeVM/MathToXeVM.h"
+#include "mlir/Conversion/ArithCommon/AttrToLLVMConverter.h"
+#include "mlir/Conversion/GPUCommon/GPUCommonPass.h"
+#include "mlir/Conversion/LLVMCommon/LoweringOptions.h"
+#include "mlir/Conversion/LLVMCommon/TypeConverter.h"
+#include "mlir/Dialect/Func/IR/FuncOps.h"
+#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
+#include "mlir/Dialect/Math/IR/Math.h"
+#include "mlir/Dialect/Vector/IR/VectorOps.h"
+#include "mlir/IR/BuiltinDialect.h"
+#include "mlir/IR/PatternMatch.h"
+#include "mlir/Pass/Pass.h"
+#include "mlir/Transforms/DialectConversion.h"
+
+#include "../GPUCommon/GPUOpsLowering.h"
+#include "../GPUCommon/OpToFuncCallLowering.h"
+
+namespace mlir {
+#define GEN_PASS_DEF_CONVERTMATHTOXEVM
+#include "mlir/Conversion/Passes.h.inc"
+} // namespace mlir
+
+using namespace mlir;
+
+#define DEBUG_TYPE "math-to-xevm"
+
+// GPUCommon/OpToFunctionCallLowering is not used here, as it doesn't handle
+// native functions/intrinsics that take vector operands.
+
+/// Convert math ops marked with `fast` (`afn`) to native OpenCL intrinsics.
+template <typename Op>
+struct ConvertNativeFuncPattern final : public OpConversionPattern<Op> {
+
+  ConvertNativeFuncPattern(MLIRContext *context, StringRef nativeFunc,
+                           PatternBenefit benefit = 1)
+      : OpConversionPattern<Op>(context, benefit), nativeFunc(nativeFunc) {}
+
+  LogicalResult
+  matchAndRewrite(Op op, typename Op::Adaptor adaptor,
+                  ConversionPatternRewriter &rewriter) const override {
+    if (!isSPIRVCompatibleFloatOrVec(op.getType()))
+      return failure();
+
+    arith::FastMathFlags fastFlags = op.getFastmath();
+    if (!((uint32_t)fastFlags & (uint32_t)arith::FastMathFlags::afn))
+      return failure();
+
+    SmallVector<Type, 1> operandTypes;
+    for (auto operand : adaptor.getOperands()) {
+      // This pass only supports operations on vectors that are already in SPIRV
+      // supported vector sizes: Distributing unsupported vector sizes to SPIRV
+      // supported vetor sizes are done in other blocking optimization passes.
+      if (!isSPIRVCompatibleFloatOrVec(operand.getType()))
+        return failure();
+      operandTypes.push_back(operand.getType());
+    }
+    LLVM::LLVMFuncOp funcOp = appendOrGetFuncOp(op, operandTypes);
+    auto callOp = rewriter.replaceOpWithNewOp<LLVM::CallOp>(
+        op, funcOp, adaptor.getOperands());
+    arith::AttrConvertFastMathToLLVM<Op, LLVM::CallOp> fastAttrConverter(op);
+    mlir::NamedAttribute fastAttr = fastAttrConverter.getAttrs()[0];
+    callOp->setAttr(fastAttr.getName(), fastAttr.getValue());
+    return success();
+  }
+
+  inline bool isSPIRVCompatibleFloatOrVec(Type type) const {
+    if (type.isFloat()) {
+      return true;
+    } else if (auto vecType = dyn_cast<VectorType>(type)) {
+      if (!vecType.getElementType().isFloat())
+        return false;
+      // SPIRV distinguishes between vectors and matrices: OpenCL native math
+      // intrsinics are not compatible with matrices.
+      ArrayRef<int64_t> shape = vecType.getShape();
+      if (shape.size() != 1)
+        return false;
+      // SPIRV only allows vectors of size 2, 3, 4, 8, 16.
+      if (shape[0] == 2 || shape[0] == 3 || shape[0] == 4 || shape[0] == 8 ||
+          shape[0] == 16)
+        return true;
+    }
+    return false;
+  }
+
+  LLVM::LLVMFuncOp
+  appendOrGetFuncOp(Op &op, const SmallVector<Type, 1> &operandTypes) const {
+    // This function assumes op types have already been validated using
+    // isSPIRVCompatibleFloatOrVec.
+    using LLVM::LLVMFuncOp;
+
+    std::string mangledNativeFunc =
+        "_Z" + std::to_string(nativeFunc.size()) + nativeFunc.str();
+
+    auto appendFloatToMangledFunc = [&mangledNativeFunc](Type type) {
+      if (type.isF32())
+        mangledNativeFunc += "f";
+      else if (type.isF16())
+        mangledNativeFunc += "Dh";
+      else if (type.isF64())
+        mangledNativeFunc += "d";
+    };
+
+    for (auto type : operandTypes) {
+      if (auto vecType = dyn_cast<VectorType>(type)) {
+        mangledNativeFunc += "Dv" + std::to_string(vecType.getShape()[0]) + "_";
+        appendFloatToMangledFunc(vecType.getElementType());
+      } else
+        appendFloatToMangledFunc(type);
+    }
+
+    auto funcAttr = StringAttr::get(op->getContext(), mangledNativeFunc);
+    auto funcOp =
+        SymbolTable::lookupNearestSymbolFrom<LLVMFuncOp>(op, funcAttr);
+    if (funcOp)
+      return funcOp;
+
+    auto parentFunc = op->template getParentOfType<FunctionOpInterface>();
+    assert(parentFunc && "expected there to be a parent function");
+    OpBuilder b(parentFunc);
+
+    // Create a valid global location removing any metadata attached to the
+    // location, as debug info metadata inside of a function cannot be used
+    // outside of that function.
+    auto funcType = LLVM::LLVMFunctionType::get(op.getType(), operandTypes);
+    auto globalloc =
+        op->getLoc()->template findInstanceOfOrUnknown<FileLineColLoc>();
+    return LLVMFuncOp::create(b, globalloc, mangledNativeFunc, funcType);
+  }
+
+  const StringRef nativeFunc;
+};
+
+void mlir::populateMathToXeVMConversionPatterns(RewritePatternSet &patterns,
+                                                bool convertArith) {
+  patterns.add<ConvertNativeFuncPattern<math::ExpOp>>(patterns.getContext(),
+                                                      "__spirv_ocl_native_exp");
+  patterns.add<ConvertNativeFuncPattern<math::CosOp>>(patterns.getContext(),
+                                                      "__spirv_ocl_native_cos");
+  patterns.add<ConvertNativeFuncPattern<math::Exp2Op>>(
+      patterns.getContext(), "__spirv_ocl_native_exp2");
+  patterns.add<ConvertNativeFuncPattern<math::LogOp>>(patterns.getContext(),
+                                                      "__spirv_ocl_native_log");
+  patterns.add<ConvertNativeFuncPattern<math::Log2Op>>(
+      patterns.getContext(), "__spirv_ocl_native_log2");
+  patterns.add<ConvertNativeFuncPattern<math::Log10Op>>(
+      patterns.getContext(), "__spirv_ocl_native_log10");
+  patterns.add<ConvertNativeFuncPattern<math::PowFOp>>(
+      patterns.getContext(), "__spirv_ocl_native_powr");
+  patterns.add<ConvertNativeFuncPattern<math::RsqrtOp>>(
+      patterns.getContext(), "__spirv_ocl_native_rsqrt");
+  patterns.add<ConvertNativeFuncPattern<math::SinOp>>(patterns.getContext(),
+                                                      "__spirv_ocl_native_sin");
+  patterns.add<ConvertNativeFuncPattern<math::SqrtOp>>(
+      patterns.getContext(), "__spirv_ocl_native_sqrt");
+  patterns.add<ConvertNativeFuncPattern<math::TanOp>>(patterns.getContext(),
+                                                      "__spirv_ocl_native_tan");
+  if (convertArith)
+    patterns.add<ConvertNativeFuncPattern<arith::DivFOp>>(
+        patterns.getContext(), "__spirv_ocl_native_divide");
+}
+
+namespace {
+struct ConvertMathToXeVMPass
+    : public impl::ConvertMathToXeVMBase<ConvertMathToXeVMPass> {
+  using Base::Base;
+  void runOnOperation() override;
+};
+} // namespace
+
+void ConvertMathToXeVMPass::runOnOperation() {
+  auto m = getOperation();
+
+  RewritePatternSet patterns(&getContext());
+  populateMathToXeVMConversionPatterns(patterns, convertArith);
+  ConversionTarget target(getContext());
+  target.addLegalDialect<BuiltinDialect, func::FuncDialect,
+                         vector::VectorDialect, LLVM::LLVMDialect>();
+  if (failed(applyPartialConversion(m, target, std::move(patterns))))
+    signalPassFailure();
+}
diff --git a/mlir/test/Conversion/MathToXeVM/math-to-xevm.mlir b/mlir/test/Conversion/MathToXeVM/math-to-xevm.mlir
new file mode 100644
index 0000000000000..ba5de228da411
--- /dev/null
+++ b/mlir/test/Conversion/MathToXeVM/math-to-xevm.mlir
@@ -0,0 +1,158 @@
+// RUN: mlir-opt %s -convert-math-to-xevm \
+// RUN:   | FileCheck %s -check-prefixes='CHECK,CHECK-ARITH' 
+// RUN: mlir-opt %s -convert-math-to-xevm='convert-arith=false' \
+// RUN:   | FileCheck %s -check-prefixes='CHECK,CHECK-NO-ARITH'
+
+module @test_module {
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expDh(f16) -> f16
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expf(f32) -> f32
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expd(f64) -> f64
+  //
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expDv2_d(vector<2xf64>) -> vector<2xf64>
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expDv3_d(vector<3xf64>) -> vector<3xf64>
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expDv4_d(vector<4xf64>) -> vector<4xf64>
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expDv8_d(vector<8xf64>) -> vector<8xf64>
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expDv16_d(vector<16xf64>) -> vector<16xf64>
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expDv16_f(vector<16xf32>) -> vector<16xf32>
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_expDv4_Dh(vector<4xf16>) -> vector<4xf16>
+  //
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_cosDh(f16) -> f16
+  // CHECK: llvm.func @_Z23__spirv_ocl_native_exp2f(f32) -> f32
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_logDh(f16) -> f16
+  // CHECK: llvm.func @_Z23__spirv_ocl_native_log2f(f32) -> f32
+  // CHECK: llvm.func @_Z24__spirv_ocl_native_log10d(f64) -> f64
+  // CHECK: llvm.func @_Z23__spirv_ocl_native_powrDhDh(f16, f16) -> f16
+  // CHECK: llvm.func @_Z24__spirv_ocl_native_rsqrtd(f64) -> f64
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_sinDh(f16) -> f16
+  // CHECK: llvm.func @_Z23__spirv_ocl_native_sqrtf(f32) -> f32
+  // CHECK: llvm.func @_Z22__spirv_ocl_native_tand(f64) -> f64
+  // CHECK-ARITH: llvm.func @_Z25__spirv_ocl_native_divideff(f32, f32) -> f32
+
+  // CHECK-LABEL: func @math_ops
+  func.func @math_ops() {
+
+    %c1_f16 = arith.constant 1. : f16
+    %c1_f32 = arith.constant 1. : f32
+    %c1_f64 = arith.constant 1. : f64
+
+    // CHECK: math.exp
+    %exp_normal_f16 = math.exp %c1_f16 : f16
+    // CHECK: math.exp
+    %exp_normal_f32 = math.exp %c1_f32 : f32
+    // CHECK: math.exp
+    %exp_normal_f64 = math.exp %c1_f64 : f64
+
+    // Check float operations are converted properly:
+
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDh(%{{.*}}) {fastmathFlags = #llvm.fastmath<fast>} : (f16) -> f16
+    %exp_fast_f16 = math.exp %c1_f16 fastmath<fast> : f16
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expf(%{{.*}}) {fastmathFlags = #llvm.fastmath<fast>} : (f32) -> f32
+    %exp_fast_f32 = math.exp %c1_f32 fastmath<fast> : f32
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expd(%{{.*}}) {fastmathFlags = #llvm.fastmath<fast>} : (f64) -> f64
+    %exp_fast_f64 = math.exp %c1_f64 fastmath<fast> : f64
+    
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDh(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (f16) -> f16
+    %exp_afn_f16 = math.exp %c1_f16 fastmath<afn> : f16
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expf(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (f32) -> f32
+    %exp_afn_f32 = math.exp %c1_f32 fastmath<afn> : f32
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expd(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (f64) -> f64
+    %exp_afn_f64 = math.exp %c1_f64 fastmath<afn> : f64
+
+    // CHECK: math.exp
+    %exp_none_f16 = math.exp %c1_f16 fastmath<none> : f16
+    // CHECK: math.exp
+    %exp_none_f32 = math.exp %c1_f32 fastmath<none> : f32
+    // CHECK: math.exp
+    %exp_none_f64 = math.exp %c1_f64 fastmath<none> : f64
+
+    // Check vector operations:
+
+    %v2_c1_f64 = arith.constant dense<1.> : vector<2xf64>
+    %v3_c1_f64 = arith.constant dense<1.> : vector<3xf64>
+    %v4_c1_f64 = arith.constant dense<1.> : vector<4xf64>
+    %v8_c1_f64 = arith.constant dense<1.> : vector<8xf64>
+    %v16_c1_f64 = arith.constant dense<1.> : vector<16xf64>
+
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDv2_d(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (vector<2xf64>) -> vector<2xf64>
+    %exp_v2_f64 = math.exp %v2_c1_f64 fastmath<afn> : vector<2xf64>
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDv3_d(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (vector<3xf64>) -> vector<3xf64>
+    %exp_v3_f64 = math.exp %v3_c1_f64 fastmath<afn> : vector<3xf64>
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDv4_d(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (vector<4xf64>) -> vector<4xf64>
+    %exp_v4_f64 = math.exp %v4_c1_f64 fastmath<afn> : vector<4xf64>
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDv8_d(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (vector<8xf64>) -> vector<8xf64>
+    %exp_v8_f64 = math.exp %v8_c1_f64 fastmath<afn> : vector<8xf64>
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDv16_d(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (vector<16xf64>) -> vector<16xf64>
+    %exp_v16_f64 = math.exp %v16_c1_f64 fastmath<afn> : vector<16xf64>
+
+    %v16_c1_f32 = arith.constant dense<1.> : vector<16xf32>
+    %v4_c1_f16 = arith.constant dense<1.> : vector<4xf16>
+
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDv16_f(%{{.*}}) {fastmathFlags = #llvm.fastmath<fast>} : (vector<16xf32>) -> vector<16xf32>
+    %exp_v16_f32 = math.exp %v16_c1_f32 fastmath<fast> : vector<16xf32>
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDv4_Dh(%{{.*}}) {fastmathFlags = #llvm.fastmath<fast>} : (vector<4xf16>) -> vector<4xf16>
+    %exp_v4_f16 = math.exp %v4_c1_f16 fastmath<fast> : vector<4xf16>
+
+    // Check unsupported vector sizes are not converted:
+
+    %v5_c1_f64 = arith.constant dense<1.> : vector<5xf64>
+    %v32_c1_f64 = arith.constant dense<1.> : vector<32xf64>
+
+    // CHECK: math.exp
+    %exp_v5_f64 = math.exp %v5_c1_f64 fastmath<afn> : vector<5xf64>
+    // CHECK: math.exp
+    %exp_v32_f64 = math.exp %v32_c1_f64 fastmath<afn> : vector<32xf64>
+
+    // Check fastmath flags propagate properly:
+
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expDh(%{{.*}}) {fastmathFlags = #llvm.fastmath<fast>} : (f16) -> f16
+    %exp_fastmath_all_f16 = math.exp %c1_f16 fastmath<reassoc,nnan,ninf,nsz,arcp,contract,afn> : f16
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expf(%{{.*}}) {fastmathFlags = #llvm.fastmath<nnan, ninf, nsz, arcp, contract, afn>} : (f32) -> f32
+    %exp_fastmath_most_f32 = math.exp %c1_f32 fastmath<nnan,ninf,nsz,arcp,contract,afn> : f32
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_expf(%{{.*}}) {fastmathFlags = #llvm.fastmath<nnan, afn, reassoc>} : (f32) -> f32
+    %exp_afn_reassoc_nnan_f32 = math.exp %c1_f32 fastmath<afn,reassoc,nnan> : f32
+
+    // Check all other math operations:
+
+    // native_divide(gentype x, gentype y)
+    // TODO: convert arith.divf to arith/native_divide if option is enabled
+
+    // CHECK: llvm.call @_Z22__spirv_ocl_native_cosDh(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (f16) -> f16
+    %cos_afn_f16 = math.cos %c1_f16 fastmath<afn> : f16
+
+    // CHECK: llvm.call @_Z23__spirv_ocl_native_exp2f(%{{.*}}) {fastmathFlags = #llvm.fastmath<afn>} : (f32) -> f32
+    %exp2_afn_f32 = math.exp2 %c1_f32 fastmath<afn> : f32
+
+    // CHECK: l...
[truncated]

@mshahneo
Copy link
Contributor

@akroviakov

Copy link
Contributor

@akroviakov akroviakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with a few comments

@mshahneo mshahneo changed the title [MLIR][SPIRV][XeVM] Add support for fastmath afn option using native OpenCL intrinsics [MLIR][SPIRV][XeVM] Add MathToXeVM (math-to-xevm) pass Oct 1, 2025
@mshahneo mshahneo requested a review from jpienaar October 1, 2025 19:57
@ianayl
Copy link
Contributor Author

ianayl commented Oct 2, 2025

CI failure seems to be an infrastructure issue, I don't seem to have permissions to retrigger the CI. If needed I'll make a dummy commit to restart the CI.

  | # Removing /scratch/powerllvm/cpap8006/llvm-project/libcxx-ci
  | 🚨 Error: Failed to remove "/scratch/powerllvm/cpap8006/llvm-project/libcxx-ci" (unlinkat /scratch/powerllvm/cpap8006/llvm-project/libcxx-ci/.ci/all_requirements.txt: permission denied)
  | # Waiting 10 seconds
  | # Removing /scratch/powerllvm/cpap8006/llvm-project/libcxx-ci
  | 🚨 Error: Failed to remove "/scratch/powerllvm/cpap8006/llvm-project/libcxx-ci" (unlinkat /scratch/powerllvm/cpap8006/llvm-project/libcxx-ci/.ci/all_requirements.txt: permission denied)
  | # Waiting 10 seconds
  | # Removing /scratch/powerllvm/cpap8006/llvm-project/libcxx-ci
  | 🚨 Error: Failed to remove "/scratch/powerllvm/cpap8006/llvm-project/libcxx-ci" (unlinkat /scratch/powerllvm/cpap8006/llvm-project/libcxx-ci/.ci/all_requirements.txt: permission denied)
  | # Waiting 10 seconds
  | # Removing /scratch/powerllvm/cpap8006/llvm-project/libcxx-ci
  | 🚨 Error: Failed to remove "/scratch/powerllvm/cpap8006/llvm-project/libcxx-ci" (unlinkat /scratch/powerllvm/cpap8006/llvm-project/libcxx-ci/.ci/all_requirements.txt: permission denied)
  | # Waiting 10 seconds
  | 🚨 Error: exit status 128

@mshahneo mshahneo merged commit fabd1c4 into llvm:main Oct 10, 2025
10 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-rhel-8-cmake-build-only running on rocm-docker-rhel-8 while building mlir at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/204/builds/24710

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[5466/8112] Building CXX object tools/mlir/lib/Conversion/SCFToGPU/CMakeFiles/obj.MLIRSCFToGPU.dir/SCFToGPUPass.cpp.o
[5467/8112] Creating library symlink lib/libMLIRArithToAMDGPU.so
[5468/8112] Creating library symlink lib/libMLIRReconcileUnrealizedCasts.so
[5469/8112] Creating library symlink lib/libMLIRIndexToLLVM.so
[5470/8112] Creating library symlink lib/libMLIRTosaToSCF.so
[5471/8112] Creating library symlink lib/libMLIRTosaToArith.so
[5472/8112] Creating library symlink lib/libMLIRTosaToTensor.so
[5473/8112] Linking CXX shared library lib/libMLIRMathToLLVM.so.22.0git
[5474/8112] Creating library symlink lib/libMLIRMathToLLVM.so
[5475/8112] Linking CXX shared library lib/libMLIRMathToXeVM.so.22.0git
FAILED: lib/libMLIRMathToXeVM.so.22.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-array-bounds -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMathToXeVM.so.22.0git -o lib/libMLIRMathToXeVM.so.22.0git tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib:"  lib/libMLIRMathDialect.so.22.0git  lib/libMLIRLLVMCommonConversion.so.22.0git  lib/libMLIRVectorDialect.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libMLIRTransforms.so.22.0git  lib/libMLIRTransformUtils.so.22.0git  lib/libMLIRSubsetOpInterface.so.22.0git  lib/libMLIRRewrite.so.22.0git  lib/libMLIRRewritePDL.so.22.0git  lib/libMLIRPDLToPDLInterp.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRPDLInterpDialect.so.22.0git  lib/libMLIRPDLDialect.so.22.0git  lib/libMLIRIndexingMapOpInterface.so.22.0git  lib/libMLIRMaskableOpInterface.so.22.0git  lib/libMLIRMaskingOpInterface.so.22.0git  lib/libMLIRTensorDialect.so.22.0git  lib/libMLIRAffineDialect.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRParallelCombiningOpInterface.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRVectorInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMSupport.so.22.0git  -lpthread  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib && :
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `mlir::impl::ConvertMathToXeVMBase<(anonymous namespace)::ConvertMathToXeVMPass>::getDependentDialects(mlir::DialectRegistry&) const':
MathToXeVM.cpp:(.text._ZNK4mlir4impl21ConvertMathToXeVMBaseIN12_GLOBAL__N_121ConvertMathToXeVMPassEE20getDependentDialectsERNS_15DialectRegistryE+0x66): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `std::_Function_handler<mlir::Dialect* (mlir::MLIRContext*), mlir::DialectRegistry::insert<mlir::xevm::XeVMDialect>()::{lambda(mlir::MLIRContext*)#1}>::_M_invoke(std::_Any_data const&, mlir::MLIRContext*&&)':
MathToXeVM.cpp:(.text._ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_[_ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_]+0xa): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > llvm::function_ref<std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > ()>::callback_fn<mlir::MLIRContext::getOrLoadDialect<mlir::xevm::XeVMDialect>()::{lambda()#1}>(long)':
MathToXeVM.cpp:(.text._ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l[_ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l]+0x1f): undefined reference to `mlir::xevm::XeVMDialect::XeVMDialect(mlir::MLIRContext*)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::arith::DivFOp>::matchAndRewrite(mlir::arith::DivFOp, mlir::arith::DivFOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::math::TanOp>::matchAndRewrite(mlir::math::TanOp, mlir::math::TanOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::math::SqrtOp>::matchAndRewrite(mlir::math::SqrtOp, mlir::math::SqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::math::SinOp>::matchAndRewrite(mlir::math::SinOp, mlir::math::SinOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::math::RsqrtOp>::matchAndRewrite(mlir::math::RsqrtOp, mlir::math::RsqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): more undefined references to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)' follow
collect2: error: ld returned 1 exit status
[5476/8112] Linking CXX shared library lib/libMLIRMPIToLLVM.so.22.0git
[5477/8112] Linking CXX shared library lib/libMLIRPtrToLLVM.so.22.0git
[5478/8112] Linking CXX shared library lib/libMLIRShapeToStandard.so.22.0git
[5479/8112] Linking CXX shared library lib/libMLIRMemRefToLLVM.so.22.0git
[5480/8112] Linking CXX shared library lib/libMLIRSCFToOpenMP.so.22.0git
[5481/8112] Linking CXX shared library lib/libMLIRUBToLLVM.so.22.0git
[5482/8112] Linking CXX shared library lib/libMLIRNVVMToLLVM.so.22.0git
[5483/8112] Linking CXX shared library lib/libMLIRVectorToArmSME.so.22.0git
[5484/8112] Linking CXX shared library lib/libMLIRXeVMToLLVM.so.22.0git
[5485/8112] Building CXX object tools/mlir/lib/CMakeFiles/obj.MLIRRegisterAllExtensions.dir/RegisterAllExtensions.cpp.o
[5486/8112] Building CXX object tools/mlir/lib/Conversion/SCFToGPU/CMakeFiles/obj.MLIRSCFToGPU.dir/SCFToGPU.cpp.o
[5487/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/DecomposeGenericByUnfoldingPermutation.cpp.o
[5488/8112] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5489/8112] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUOpsLowering.cpp.o
[5490/8112] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5491/8112] Building CXX object tools/mlir/lib/CAPI/Dialect/CMakeFiles/obj.MLIRCAPILinalg.dir/LinalgPasses.cpp.o
[5492/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
In file included from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/llvm/include/llvm/Support/TypeName.h:14,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/Support/TypeID.h:24,
Step 7 (build cmake config) failure: build cmake config (failure)
...
[5466/8112] Building CXX object tools/mlir/lib/Conversion/SCFToGPU/CMakeFiles/obj.MLIRSCFToGPU.dir/SCFToGPUPass.cpp.o
[5467/8112] Creating library symlink lib/libMLIRArithToAMDGPU.so
[5468/8112] Creating library symlink lib/libMLIRReconcileUnrealizedCasts.so
[5469/8112] Creating library symlink lib/libMLIRIndexToLLVM.so
[5470/8112] Creating library symlink lib/libMLIRTosaToSCF.so
[5471/8112] Creating library symlink lib/libMLIRTosaToArith.so
[5472/8112] Creating library symlink lib/libMLIRTosaToTensor.so
[5473/8112] Linking CXX shared library lib/libMLIRMathToLLVM.so.22.0git
[5474/8112] Creating library symlink lib/libMLIRMathToLLVM.so
[5475/8112] Linking CXX shared library lib/libMLIRMathToXeVM.so.22.0git
FAILED: lib/libMLIRMathToXeVM.so.22.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-array-bounds -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMathToXeVM.so.22.0git -o lib/libMLIRMathToXeVM.so.22.0git tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib:"  lib/libMLIRMathDialect.so.22.0git  lib/libMLIRLLVMCommonConversion.so.22.0git  lib/libMLIRVectorDialect.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libMLIRTransforms.so.22.0git  lib/libMLIRTransformUtils.so.22.0git  lib/libMLIRSubsetOpInterface.so.22.0git  lib/libMLIRRewrite.so.22.0git  lib/libMLIRRewritePDL.so.22.0git  lib/libMLIRPDLToPDLInterp.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRPDLInterpDialect.so.22.0git  lib/libMLIRPDLDialect.so.22.0git  lib/libMLIRIndexingMapOpInterface.so.22.0git  lib/libMLIRMaskableOpInterface.so.22.0git  lib/libMLIRMaskingOpInterface.so.22.0git  lib/libMLIRTensorDialect.so.22.0git  lib/libMLIRAffineDialect.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRParallelCombiningOpInterface.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRVectorInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMSupport.so.22.0git  -lpthread  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib && :
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `mlir::impl::ConvertMathToXeVMBase<(anonymous namespace)::ConvertMathToXeVMPass>::getDependentDialects(mlir::DialectRegistry&) const':
MathToXeVM.cpp:(.text._ZNK4mlir4impl21ConvertMathToXeVMBaseIN12_GLOBAL__N_121ConvertMathToXeVMPassEE20getDependentDialectsERNS_15DialectRegistryE+0x66): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `std::_Function_handler<mlir::Dialect* (mlir::MLIRContext*), mlir::DialectRegistry::insert<mlir::xevm::XeVMDialect>()::{lambda(mlir::MLIRContext*)#1}>::_M_invoke(std::_Any_data const&, mlir::MLIRContext*&&)':
MathToXeVM.cpp:(.text._ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_[_ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_]+0xa): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > llvm::function_ref<std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > ()>::callback_fn<mlir::MLIRContext::getOrLoadDialect<mlir::xevm::XeVMDialect>()::{lambda()#1}>(long)':
MathToXeVM.cpp:(.text._ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l[_ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l]+0x1f): undefined reference to `mlir::xevm::XeVMDialect::XeVMDialect(mlir::MLIRContext*)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::arith::DivFOp>::matchAndRewrite(mlir::arith::DivFOp, mlir::arith::DivFOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::math::TanOp>::matchAndRewrite(mlir::math::TanOp, mlir::math::TanOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::math::SqrtOp>::matchAndRewrite(mlir::math::SqrtOp, mlir::math::SqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::math::SinOp>::matchAndRewrite(mlir::math::SinOp, mlir::math::SinOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: In function `ConvertNativeFuncPattern<mlir::math::RsqrtOp>::matchAndRewrite(mlir::math::RsqrtOp, mlir::math::RsqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x406): more undefined references to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)' follow
collect2: error: ld returned 1 exit status
[5476/8112] Linking CXX shared library lib/libMLIRMPIToLLVM.so.22.0git
[5477/8112] Linking CXX shared library lib/libMLIRPtrToLLVM.so.22.0git
[5478/8112] Linking CXX shared library lib/libMLIRShapeToStandard.so.22.0git
[5479/8112] Linking CXX shared library lib/libMLIRMemRefToLLVM.so.22.0git
[5480/8112] Linking CXX shared library lib/libMLIRSCFToOpenMP.so.22.0git
[5481/8112] Linking CXX shared library lib/libMLIRUBToLLVM.so.22.0git
[5482/8112] Linking CXX shared library lib/libMLIRNVVMToLLVM.so.22.0git
[5483/8112] Linking CXX shared library lib/libMLIRVectorToArmSME.so.22.0git
[5484/8112] Linking CXX shared library lib/libMLIRXeVMToLLVM.so.22.0git
[5485/8112] Building CXX object tools/mlir/lib/CMakeFiles/obj.MLIRRegisterAllExtensions.dir/RegisterAllExtensions.cpp.o
[5486/8112] Building CXX object tools/mlir/lib/Conversion/SCFToGPU/CMakeFiles/obj.MLIRSCFToGPU.dir/SCFToGPU.cpp.o
[5487/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/DecomposeGenericByUnfoldingPermutation.cpp.o
[5488/8112] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5489/8112] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUOpsLowering.cpp.o
[5490/8112] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5491/8112] Building CXX object tools/mlir/lib/CAPI/Dialect/CMakeFiles/obj.MLIRCAPILinalg.dir/LinalgPasses.cpp.o
[5492/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
In file included from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/llvm/include/llvm/Support/TypeName.h:14,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/Support/TypeID.h:24,

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-ubuntu-22-cmake-build-only running on rocm-docker-ubu-22 while building mlir at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/203/builds/25898

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[5482/8112] Creating library symlink lib/libMLIRSCFToOpenMP.so
[5483/8112] Creating library symlink lib/libMLIRControlFlowToLLVM.so
[5484/8112] Linking CXX shared library lib/libMLIRConvertToLLVMPass.so.22.0git
[5485/8112] Creating library symlink lib/libMLIRConvertToLLVMPass.so
[5486/8112] Linking CXX shared library lib/libMLIRAMDGPUToROCDL.so.22.0git
[5487/8112] Linking CXX shared library lib/libMLIRMPIToLLVM.so.22.0git
[5488/8112] Creating library symlink lib/libMLIRAMDGPUToROCDL.so
[5489/8112] Creating library symlink lib/libMLIRAMDGPUTransforms.so
[5490/8112] Creating library symlink lib/libMLIRMPIToLLVM.so
[5491/8112] Linking CXX shared library lib/libMLIRMathToXeVM.so.22.0git
FAILED: lib/libMLIRMathToXeVM.so.22.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMathToXeVM.so.22.0git -o lib/libMLIRMathToXeVM.so.22.0git tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib:"  lib/libMLIRMathDialect.so.22.0git  lib/libMLIRLLVMCommonConversion.so.22.0git  lib/libMLIRVectorDialect.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libMLIRTransforms.so.22.0git  lib/libMLIRTransformUtils.so.22.0git  lib/libMLIRSubsetOpInterface.so.22.0git  lib/libMLIRRewrite.so.22.0git  lib/libMLIRRewritePDL.so.22.0git  lib/libMLIRPDLToPDLInterp.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRPDLInterpDialect.so.22.0git  lib/libMLIRPDLDialect.so.22.0git  lib/libMLIRIndexingMapOpInterface.so.22.0git  lib/libMLIRMaskableOpInterface.so.22.0git  lib/libMLIRMaskingOpInterface.so.22.0git  lib/libMLIRTensorDialect.so.22.0git  lib/libMLIRAffineDialect.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRParallelCombiningOpInterface.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRVectorInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib && :
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::impl::ConvertMathToXeVMBase<(anonymous namespace)::ConvertMathToXeVMPass>::getDependentDialects(mlir::DialectRegistry&) const':
MathToXeVM.cpp:(.text._ZNK4mlir4impl21ConvertMathToXeVMBaseIN12_GLOBAL__N_121ConvertMathToXeVMPassEE20getDependentDialectsERNS_15DialectRegistryE+0xa3): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::_Function_handler<mlir::Dialect* (mlir::MLIRContext*), mlir::DialectRegistry::insert<mlir::xevm::XeVMDialect>()::{lambda(mlir::MLIRContext*)#1}>::_M_invoke(std::_Any_data const&, mlir::MLIRContext*&&)':
MathToXeVM.cpp:(.text._ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_[_ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_]+0x13): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > llvm::function_ref<std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > ()>::callback_fn<mlir::MLIRContext::getOrLoadDialect<mlir::xevm::XeVMDialect>()::{lambda()#1}>(long)':
MathToXeVM.cpp:(.text._ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l[_ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l]+0x23): undefined reference to `mlir::xevm::XeVMDialect::XeVMDialect(mlir::MLIRContext*)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::arith::DivFOp>::matchAndRewrite(mlir::arith::DivFOp, mlir::arith::DivFOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::TanOp>::matchAndRewrite(mlir::math::TanOp, mlir::math::TanOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::SqrtOp>::matchAndRewrite(mlir::math::SqrtOp, mlir::math::SqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::SinOp>::matchAndRewrite(mlir::math::SinOp, mlir::math::SinOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::RsqrtOp>::matchAndRewrite(mlir::math::RsqrtOp, mlir::math::RsqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): more undefined references to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)' follow
collect2: error: ld returned 1 exit status
[5492/8112] Linking CXX shared library lib/libMLIRPtrToLLVM.so.22.0git
[5493/8112] Linking CXX shared library lib/libMLIRMemRefToLLVM.so.22.0git
[5494/8112] Linking CXX shared library lib/libMLIRNVVMToLLVM.so.22.0git
[5495/8112] Linking CXX shared library lib/libMLIRVectorToArmSME.so.22.0git
[5496/8112] Linking CXX shared library lib/libMLIRUBToLLVM.so.22.0git
[5497/8112] Linking CXX shared library lib/libMLIRXeVMToLLVM.so.22.0git
[5498/8112] Linking CXX shared library lib/libMLIRArmNeonTransforms.so.22.0git
[5499/8112] Linking CXX shared library lib/libMLIRAMXDialect.so.22.0git
[5500/8112] Building CXX object tools/mlir/lib/Conversion/SCFToGPU/CMakeFiles/obj.MLIRSCFToGPU.dir/SCFToGPU.cpp.o
[5501/8112] Building CXX object tools/mlir/lib/CMakeFiles/obj.MLIRRegisterAllExtensions.dir/RegisterAllExtensions.cpp.o
[5502/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
[5503/8112] Building CXX object tools/mlir/lib/Dialect/SCF/TransformOps/CMakeFiles/obj.MLIRSCFTransformOps.dir/SCFTransformOps.cpp.o
[5504/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
[5505/8112] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
[5506/8112] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5507/8112] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUOpsLowering.cpp.o
[5508/8112] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestLinalgElementwiseFusion.cpp.o
[5509/8112] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5510/8112] Building CXX object tools/mlir/lib/Conversion/GPUToNVVM/CMakeFiles/obj.MLIRGPUToNVVMTransforms.dir/WmmaOpsToNvvm.cpp.o
Step 7 (build cmake config) failure: build cmake config (failure)
...
[5482/8112] Creating library symlink lib/libMLIRSCFToOpenMP.so
[5483/8112] Creating library symlink lib/libMLIRControlFlowToLLVM.so
[5484/8112] Linking CXX shared library lib/libMLIRConvertToLLVMPass.so.22.0git
[5485/8112] Creating library symlink lib/libMLIRConvertToLLVMPass.so
[5486/8112] Linking CXX shared library lib/libMLIRAMDGPUToROCDL.so.22.0git
[5487/8112] Linking CXX shared library lib/libMLIRMPIToLLVM.so.22.0git
[5488/8112] Creating library symlink lib/libMLIRAMDGPUToROCDL.so
[5489/8112] Creating library symlink lib/libMLIRAMDGPUTransforms.so
[5490/8112] Creating library symlink lib/libMLIRMPIToLLVM.so
[5491/8112] Linking CXX shared library lib/libMLIRMathToXeVM.so.22.0git
FAILED: lib/libMLIRMathToXeVM.so.22.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMathToXeVM.so.22.0git -o lib/libMLIRMathToXeVM.so.22.0git tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib:"  lib/libMLIRMathDialect.so.22.0git  lib/libMLIRLLVMCommonConversion.so.22.0git  lib/libMLIRVectorDialect.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libMLIRTransforms.so.22.0git  lib/libMLIRTransformUtils.so.22.0git  lib/libMLIRSubsetOpInterface.so.22.0git  lib/libMLIRRewrite.so.22.0git  lib/libMLIRRewritePDL.so.22.0git  lib/libMLIRPDLToPDLInterp.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRPDLInterpDialect.so.22.0git  lib/libMLIRPDLDialect.so.22.0git  lib/libMLIRIndexingMapOpInterface.so.22.0git  lib/libMLIRMaskableOpInterface.so.22.0git  lib/libMLIRMaskingOpInterface.so.22.0git  lib/libMLIRTensorDialect.so.22.0git  lib/libMLIRAffineDialect.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRParallelCombiningOpInterface.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRVectorInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib && :
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::impl::ConvertMathToXeVMBase<(anonymous namespace)::ConvertMathToXeVMPass>::getDependentDialects(mlir::DialectRegistry&) const':
MathToXeVM.cpp:(.text._ZNK4mlir4impl21ConvertMathToXeVMBaseIN12_GLOBAL__N_121ConvertMathToXeVMPassEE20getDependentDialectsERNS_15DialectRegistryE+0xa3): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::_Function_handler<mlir::Dialect* (mlir::MLIRContext*), mlir::DialectRegistry::insert<mlir::xevm::XeVMDialect>()::{lambda(mlir::MLIRContext*)#1}>::_M_invoke(std::_Any_data const&, mlir::MLIRContext*&&)':
MathToXeVM.cpp:(.text._ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_[_ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_]+0x13): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > llvm::function_ref<std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > ()>::callback_fn<mlir::MLIRContext::getOrLoadDialect<mlir::xevm::XeVMDialect>()::{lambda()#1}>(long)':
MathToXeVM.cpp:(.text._ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l[_ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l]+0x23): undefined reference to `mlir::xevm::XeVMDialect::XeVMDialect(mlir::MLIRContext*)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::arith::DivFOp>::matchAndRewrite(mlir::arith::DivFOp, mlir::arith::DivFOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::TanOp>::matchAndRewrite(mlir::math::TanOp, mlir::math::TanOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::SqrtOp>::matchAndRewrite(mlir::math::SqrtOp, mlir::math::SqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::SinOp>::matchAndRewrite(mlir::math::SinOp, mlir::math::SinOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::RsqrtOp>::matchAndRewrite(mlir::math::RsqrtOp, mlir::math::RsqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x606): more undefined references to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)' follow
collect2: error: ld returned 1 exit status
[5492/8112] Linking CXX shared library lib/libMLIRPtrToLLVM.so.22.0git
[5493/8112] Linking CXX shared library lib/libMLIRMemRefToLLVM.so.22.0git
[5494/8112] Linking CXX shared library lib/libMLIRNVVMToLLVM.so.22.0git
[5495/8112] Linking CXX shared library lib/libMLIRVectorToArmSME.so.22.0git
[5496/8112] Linking CXX shared library lib/libMLIRUBToLLVM.so.22.0git
[5497/8112] Linking CXX shared library lib/libMLIRXeVMToLLVM.so.22.0git
[5498/8112] Linking CXX shared library lib/libMLIRArmNeonTransforms.so.22.0git
[5499/8112] Linking CXX shared library lib/libMLIRAMXDialect.so.22.0git
[5500/8112] Building CXX object tools/mlir/lib/Conversion/SCFToGPU/CMakeFiles/obj.MLIRSCFToGPU.dir/SCFToGPU.cpp.o
[5501/8112] Building CXX object tools/mlir/lib/CMakeFiles/obj.MLIRRegisterAllExtensions.dir/RegisterAllExtensions.cpp.o
[5502/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
[5503/8112] Building CXX object tools/mlir/lib/Dialect/SCF/TransformOps/CMakeFiles/obj.MLIRSCFTransformOps.dir/SCFTransformOps.cpp.o
[5504/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
[5505/8112] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
[5506/8112] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5507/8112] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUOpsLowering.cpp.o
[5508/8112] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestLinalgElementwiseFusion.cpp.o
[5509/8112] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5510/8112] Building CXX object tools/mlir/lib/Conversion/GPUToNVVM/CMakeFiles/obj.MLIRGPUToNVVMTransforms.dir/WmmaOpsToNvvm.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-rhel-9-cmake-build-only running on rocm-docker-rhel-9 while building mlir at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/205/builds/24687

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[5592/8112] Linking CXX shared library lib/libMLIRConvertToLLVMPass.so.22.0git
[5593/8112] Linking CXX shared library lib/libMLIRMemRefToLLVM.so.22.0git
[5594/8112] Creating library symlink lib/libMLIRConvertToLLVMPass.so
[5595/8112] Creating library symlink lib/libMLIRMemRefToLLVM.so
[5596/8112] Linking CXX shared library lib/libMLIRUBToLLVM.so.22.0git
[5597/8112] Linking CXX shared library lib/libMLIRMPIToLLVM.so.22.0git
[5598/8112] Creating library symlink lib/libMLIRXeGPUDialect.so
[5599/8112] Creating library symlink lib/libMLIRUBToLLVM.so
[5600/8112] Linking CXX shared library lib/libMLIRMathToLLVM.so.22.0git
[5601/8112] Linking CXX shared library lib/libMLIRMathToXeVM.so.22.0git
FAILED: lib/libMLIRMathToXeVM.so.22.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMathToXeVM.so.22.0git -o lib/libMLIRMathToXeVM.so.22.0git tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib:"  lib/libMLIRMathDialect.so.22.0git  lib/libMLIRLLVMCommonConversion.so.22.0git  lib/libMLIRVectorDialect.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libMLIRTransforms.so.22.0git  lib/libMLIRTransformUtils.so.22.0git  lib/libMLIRSubsetOpInterface.so.22.0git  lib/libMLIRRewrite.so.22.0git  lib/libMLIRRewritePDL.so.22.0git  lib/libMLIRPDLToPDLInterp.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRPDLInterpDialect.so.22.0git  lib/libMLIRPDLDialect.so.22.0git  lib/libMLIRIndexingMapOpInterface.so.22.0git  lib/libMLIRMaskableOpInterface.so.22.0git  lib/libMLIRMaskingOpInterface.so.22.0git  lib/libMLIRTensorDialect.so.22.0git  lib/libMLIRAffineDialect.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRParallelCombiningOpInterface.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRVectorInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib && :
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::impl::ConvertMathToXeVMBase<(anonymous namespace)::ConvertMathToXeVMPass>::getDependentDialects(mlir::DialectRegistry&) const':
MathToXeVM.cpp:(.text._ZNK4mlir4impl21ConvertMathToXeVMBaseIN12_GLOBAL__N_121ConvertMathToXeVMPassEE20getDependentDialectsERNS_15DialectRegistryE+0x76): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::_Function_handler<mlir::Dialect* (mlir::MLIRContext*), mlir::DialectRegistry::insert<mlir::xevm::XeVMDialect>()::{lambda(mlir::MLIRContext*)#1}>::_M_invoke(std::_Any_data const&, mlir::MLIRContext*&&)':
MathToXeVM.cpp:(.text._ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_[_ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_]+0xa): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > llvm::function_ref<std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > ()>::callback_fn<mlir::MLIRContext::getOrLoadDialect<mlir::xevm::XeVMDialect>()::{lambda()#1}>(long)':
MathToXeVM.cpp:(.text._ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l[_ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l]+0x1f): undefined reference to `mlir::xevm::XeVMDialect::XeVMDialect(mlir::MLIRContext*)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::arith::DivFOp>::matchAndRewrite(mlir::arith::DivFOp, mlir::arith::DivFOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::TanOp>::matchAndRewrite(mlir::math::TanOp, mlir::math::TanOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::SqrtOp>::matchAndRewrite(mlir::math::SqrtOp, mlir::math::SqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::SinOp>::matchAndRewrite(mlir::math::SinOp, mlir::math::SinOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::RsqrtOp>::matchAndRewrite(mlir::math::RsqrtOp, mlir::math::RsqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): more undefined references to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)' follow
collect2: error: ld returned 1 exit status
[5602/8112] Creating library symlink lib/libMLIRMPIToLLVM.so
[5603/8112] Creating library symlink lib/libMLIRMathToLLVM.so
[5604/8112] Linking CXX shared library lib/libMLIRPtrToLLVM.so.22.0git
[5605/8112] Linking CXX shared library lib/libMLIRVectorToArmSME.so.22.0git
[5606/8112] Linking CXX shared library lib/libMLIRAMXDialect.so.22.0git
[5607/8112] Linking CXX shared library lib/libMLIRArmNeonTransforms.so.22.0git
[5608/8112] Linking CXX shared library lib/libMLIRAMDGPUTransforms.so.22.0git
[5609/8112] Linking CXX shared library lib/libMLIRArithTransforms.so.22.0git
[5610/8112] Linking CXX shared library lib/libMLIRXeVMToLLVM.so.22.0git
[5611/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/DecomposeGenericByUnfoldingPermutation.cpp.o
[5612/8112] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUOpsLowering.cpp.o
[5613/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Tiling.cpp.o
[5614/8112] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestPadFusion.cpp.o
[5615/8112] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
[5616/8112] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5617/8112] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5618/8112] Building CXX object tools/mlir/lib/Conversion/GPUToNVVM/CMakeFiles/obj.MLIRGPUToNVVMTransforms.dir/WmmaOpsToNvvm.cpp.o
[5619/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
[5620/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
Step 7 (build cmake config) failure: build cmake config (failure)
...
[5592/8112] Linking CXX shared library lib/libMLIRConvertToLLVMPass.so.22.0git
[5593/8112] Linking CXX shared library lib/libMLIRMemRefToLLVM.so.22.0git
[5594/8112] Creating library symlink lib/libMLIRConvertToLLVMPass.so
[5595/8112] Creating library symlink lib/libMLIRMemRefToLLVM.so
[5596/8112] Linking CXX shared library lib/libMLIRUBToLLVM.so.22.0git
[5597/8112] Linking CXX shared library lib/libMLIRMPIToLLVM.so.22.0git
[5598/8112] Creating library symlink lib/libMLIRXeGPUDialect.so
[5599/8112] Creating library symlink lib/libMLIRUBToLLVM.so
[5600/8112] Linking CXX shared library lib/libMLIRMathToLLVM.so.22.0git
[5601/8112] Linking CXX shared library lib/libMLIRMathToXeVM.so.22.0git
FAILED: lib/libMLIRMathToXeVM.so.22.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMathToXeVM.so.22.0git -o lib/libMLIRMathToXeVM.so.22.0git tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib:"  lib/libMLIRMathDialect.so.22.0git  lib/libMLIRLLVMCommonConversion.so.22.0git  lib/libMLIRVectorDialect.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libMLIRTransforms.so.22.0git  lib/libMLIRTransformUtils.so.22.0git  lib/libMLIRSubsetOpInterface.so.22.0git  lib/libMLIRRewrite.so.22.0git  lib/libMLIRRewritePDL.so.22.0git  lib/libMLIRPDLToPDLInterp.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRPDLInterpDialect.so.22.0git  lib/libMLIRPDLDialect.so.22.0git  lib/libMLIRIndexingMapOpInterface.so.22.0git  lib/libMLIRMaskableOpInterface.so.22.0git  lib/libMLIRMaskingOpInterface.so.22.0git  lib/libMLIRTensorDialect.so.22.0git  lib/libMLIRAffineDialect.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRParallelCombiningOpInterface.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRVectorInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib && :
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::impl::ConvertMathToXeVMBase<(anonymous namespace)::ConvertMathToXeVMPass>::getDependentDialects(mlir::DialectRegistry&) const':
MathToXeVM.cpp:(.text._ZNK4mlir4impl21ConvertMathToXeVMBaseIN12_GLOBAL__N_121ConvertMathToXeVMPassEE20getDependentDialectsERNS_15DialectRegistryE+0x76): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::_Function_handler<mlir::Dialect* (mlir::MLIRContext*), mlir::DialectRegistry::insert<mlir::xevm::XeVMDialect>()::{lambda(mlir::MLIRContext*)#1}>::_M_invoke(std::_Any_data const&, mlir::MLIRContext*&&)':
MathToXeVM.cpp:(.text._ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_[_ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_]+0xa): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > llvm::function_ref<std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > ()>::callback_fn<mlir::MLIRContext::getOrLoadDialect<mlir::xevm::XeVMDialect>()::{lambda()#1}>(long)':
MathToXeVM.cpp:(.text._ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l[_ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l]+0x1f): undefined reference to `mlir::xevm::XeVMDialect::XeVMDialect(mlir::MLIRContext*)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::arith::DivFOp>::matchAndRewrite(mlir::arith::DivFOp, mlir::arith::DivFOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir5arith6DivFOpEE15matchAndRewriteES2_NS1_13DivFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::TanOp>::matchAndRewrite(mlir::math::TanOp, mlir::math::TanOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5TanOpEE15matchAndRewriteES2_NS1_12TanOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::SqrtOp>::matchAndRewrite(mlir::math::SqrtOp, mlir::math::SqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6SqrtOpEE15matchAndRewriteES2_NS1_13SqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::SinOp>::matchAndRewrite(mlir::math::SinOp, mlir::math::SinOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math5SinOpEE15matchAndRewriteES2_NS1_12SinOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `ConvertNativeFuncPattern<mlir::math::RsqrtOp>::matchAndRewrite(mlir::math::RsqrtOp, mlir::math::RsqrtOpAdaptor, mlir::ConversionPatternRewriter&) const':
MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math7RsqrtOpEE15matchAndRewriteES2_NS1_14RsqrtOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:MathToXeVM.cpp:(.text._ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE[_ZNK24ConvertNativeFuncPatternIN4mlir4math6PowFOpEE15matchAndRewriteES2_NS1_13PowFOpAdaptorERNS0_25ConversionPatternRewriterE]+0x5b1): more undefined references to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)' follow
collect2: error: ld returned 1 exit status
[5602/8112] Creating library symlink lib/libMLIRMPIToLLVM.so
[5603/8112] Creating library symlink lib/libMLIRMathToLLVM.so
[5604/8112] Linking CXX shared library lib/libMLIRPtrToLLVM.so.22.0git
[5605/8112] Linking CXX shared library lib/libMLIRVectorToArmSME.so.22.0git
[5606/8112] Linking CXX shared library lib/libMLIRAMXDialect.so.22.0git
[5607/8112] Linking CXX shared library lib/libMLIRArmNeonTransforms.so.22.0git
[5608/8112] Linking CXX shared library lib/libMLIRAMDGPUTransforms.so.22.0git
[5609/8112] Linking CXX shared library lib/libMLIRArithTransforms.so.22.0git
[5610/8112] Linking CXX shared library lib/libMLIRXeVMToLLVM.so.22.0git
[5611/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/DecomposeGenericByUnfoldingPermutation.cpp.o
[5612/8112] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUOpsLowering.cpp.o
[5613/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Tiling.cpp.o
[5614/8112] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestPadFusion.cpp.o
[5615/8112] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
[5616/8112] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5617/8112] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5618/8112] Building CXX object tools/mlir/lib/Conversion/GPUToNVVM/CMakeFiles/obj.MLIRGPUToNVVMTransforms.dir/WmmaOpsToNvvm.cpp.o
[5619/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
[5620/8112] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder mlir-rocm-mi200 running on mi200-buildbot while building mlir at step 7 "test-build-check-mlir-build-only-check-mlir".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/177/builds/22411

Here is the relevant piece of the build log for the reference
Step 7 (test-build-check-mlir-build-only-check-mlir) failure: test (failure)
******************** TEST 'MLIR :: Conversion/MathToXeVM/native-spirv-builtins.mlir' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-opt /vol/worker/mi200-buildbot/mlir-rocm-mi200/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary="format=isa"              -debug-only=serialize-to-isa 2> /vol/worker/mi200-buildbot/mlir-rocm-mi200/build/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp
# executed command: /vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-opt /vol/worker/mi200-buildbot/mlir-rocm-mi200/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary=format=isa -debug-only=serialize-to-isa
# .---redirected output from '/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp'
# | /vol/worker/mi200-buildbot/mlir-rocm-mi200/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: error: Cannot run `TargetRegistry::lookupTarget()` for SPIRV without having the target built.
# |   gpu.module @kernel [#xevm.target] {
# |   ^
# | /vol/worker/mi200-buildbot/mlir-rocm-mi200/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: note: see current operation: 
# | "gpu.module"() <{sym_name = "kernel", targets = [#xevm.target]}> ({
# |   "llvm.func"() <{CConv = #llvm.cconv<spir_kernelcc>, function_type = !llvm.func<void ()>, intel_reqd_sub_group_size = 16 : i32, linkage = #llvm.linkage<external>, sym_name = "native_fcns", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
# |     %0 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f16}> : () -> f16
# |     %1 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f32}> : () -> f32
# |     %2 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f64}> : () -> f64
# |     %3 = "llvm.mlir.constant"() <{value = dense<0.000000e+00> : vector<2xf64>}> : 
# | ...
# `---data was truncated--------
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1

--

********************


@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder mlir-nvidia running on mlir-nvidia while building mlir at step 6 "build-check-mlir-build-only".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/138/builds/20278

Here is the relevant piece of the build log for the reference
Step 6 (build-check-mlir-build-only) failure: build (failure)
...
214.295 [837/16/4622] Creating library symlink lib/libMLIRControlFlowToLLVM.so
214.302 [836/16/4623] Creating library symlink lib/libMLIRMathToFuncs.so
214.347 [835/16/4624] Linking CXX shared library lib/libMLIRConvertToLLVMPass.so.22.0git
214.380 [834/16/4625] Creating library symlink lib/libMLIRConvertToLLVMPass.so
214.398 [833/16/4626] Linking CXX shared library lib/libMLIRIndexToLLVM.so.22.0git
214.406 [832/16/4627] Creating library symlink lib/libMLIRIndexToLLVM.so
214.428 [831/16/4628] Linking CXX shared library lib/libMLIRMathToLLVM.so.22.0git
214.448 [830/16/4629] Creating library symlink lib/libMLIRMathToLLVM.so
214.455 [829/16/4630] Creating library symlink lib/libMLIRMemRefToEmitC.so
214.509 [828/16/4631] Linking CXX shared library lib/libMLIRMathToXeVM.so.22.0git
FAILED: lib/libMLIRMathToXeVM.so.22.0git 
: && /usr/bin/clang++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -Werror=global-constructors -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=lld -Wl,--color-diagnostics   -Wl,--gc-sections -shared -Wl,-soname,libMLIRMathToXeVM.so.22.0git -o lib/libMLIRMathToXeVM.so.22.0git tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/lib:"  lib/libMLIRMathDialect.so.22.0git  lib/libMLIRLLVMCommonConversion.so.22.0git  lib/libMLIRVectorDialect.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libMLIRTransforms.so.22.0git  lib/libMLIRTransformUtils.so.22.0git  lib/libMLIRSubsetOpInterface.so.22.0git  lib/libMLIRRewrite.so.22.0git  lib/libMLIRRewritePDL.so.22.0git  lib/libMLIRPDLToPDLInterp.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRPDLInterpDialect.so.22.0git  lib/libMLIRPDLDialect.so.22.0git  lib/libMLIRIndexingMapOpInterface.so.22.0git  lib/libMLIRMaskableOpInterface.so.22.0git  lib/libMLIRMaskingOpInterface.so.22.0git  lib/libMLIRTensorDialect.so.22.0git  lib/libMLIRAffineDialect.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRParallelCombiningOpInterface.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRVectorInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/lib && :
ld.lld: error: undefined symbol: mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id
>>> referenced by MathToXeVM.cpp
>>>               tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:(mlir::impl::ConvertMathToXeVMBase<(anonymous namespace)::ConvertMathToXeVMPass>::getDependentDialects(mlir::DialectRegistry&) const)
>>> referenced by MathToXeVM.cpp
>>>               tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:(std::_Function_handler<mlir::Dialect* (mlir::MLIRContext*), void mlir::DialectRegistry::insert<mlir::xevm::XeVMDialect>()::'lambda'(mlir::MLIRContext*)>::_M_invoke(std::_Any_data const&, mlir::MLIRContext*&&))

ld.lld: error: undefined symbol: mlir::xevm::XeVMDialect::XeVMDialect(mlir::MLIRContext*)
>>> referenced by MathToXeVM.cpp
>>>               tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:(std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > llvm::function_ref<std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > ()>::callback_fn<mlir::xevm::XeVMDialect* mlir::MLIRContext::getOrLoadDialect<mlir::xevm::XeVMDialect>()::'lambda'()>(long))

ld.lld: error: undefined symbol: mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)
>>> referenced by MathToXeVM.cpp
>>>               tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:(mlir::arith::AttrConvertFastMathToLLVM<mlir::math::ExpOp, mlir::LLVM::CallOp>::AttrConvertFastMathToLLVM(mlir::math::ExpOp))
>>> referenced by MathToXeVM.cpp
>>>               tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:(mlir::arith::AttrConvertFastMathToLLVM<mlir::math::CosOp, mlir::LLVM::CallOp>::AttrConvertFastMathToLLVM(mlir::math::CosOp))
>>> referenced by MathToXeVM.cpp
>>>               tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:(mlir::arith::AttrConvertFastMathToLLVM<mlir::math::Exp2Op, mlir::LLVM::CallOp>::AttrConvertFastMathToLLVM(mlir::math::Exp2Op))
>>> referenced 9 more times
clang: error: linker command failed with exit code 1 (use -v to see invocation)
214.553 [828/15/4632] Linking CXX shared library lib/libMLIRMemRefToLLVM.so.22.0git
214.587 [828/14/4633] Linking CXX shared library lib/libMLIRMPIToLLVM.so.22.0git
215.877 [828/13/4634] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Tiling.cpp.o
218.465 [828/12/4635] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
219.354 [828/11/4636] Building CXX object tools/mlir/test/lib/Dialect/ArmSME/CMakeFiles/MLIRArmSMETestPasses.dir/TestLowerToArmSME.cpp.o
220.716 [828/10/4637] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestLinalgDecomposeOps.cpp.o
220.808 [828/9/4638] Building CXX object tools/mlir/test/lib/Dialect/LLVM/CMakeFiles/MLIRLLVMTestPasses.dir/TestLowerToLLVM.cpp.o
221.054 [828/8/4639] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
222.709 [828/7/4640] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestLinalgDropUnitDims.cpp.o
225.127 [828/6/4641] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestDataLayoutPropagation.cpp.o
226.260 [828/5/4642] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
226.313 [828/4/4643] Building CXX object tools/mlir/lib/CAPI/Dialect/CMakeFiles/obj.MLIRCAPILinalg.dir/LinalgPasses.cpp.o
231.952 [828/3/4644] Building CXX object tools/mlir/lib/Dialect/SparseTensor/Transforms/CMakeFiles/obj.MLIRSparseTensorTransforms.dir/SparseTensorPasses.cpp.o
233.042 [828/2/4645] Building CXX object tools/mlir/lib/Dialect/SparseTensor/Pipelines/CMakeFiles/obj.MLIRSparseTensorPipelines.dir/SparseTensorPipelines.cpp.o
234.650 [828/1/4646] Building CXX object tools/mlir/lib/Dialect/Vector/TransformOps/CMakeFiles/obj.MLIRVectorTransformOps.dir/VectorTransformOps.cpp.o
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder mlir-nvidia-gcc7 running on mlir-nvidia while building mlir at step 7 "test-build-check-mlir-build-only-check-mlir".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/116/builds/19569

Here is the relevant piece of the build log for the reference
Step 7 (test-build-check-mlir-build-only-check-mlir) failure: test (failure)
******************** TEST 'MLIR :: Conversion/MathToXeVM/native-spirv-builtins.mlir' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/vol/worker/mlir-nvidia/mlir-nvidia-gcc7/llvm.obj/bin/mlir-opt /vol/worker/mlir-nvidia/mlir-nvidia-gcc7/llvm.src/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary="format=isa"              -debug-only=serialize-to-isa 2> /vol/worker/mlir-nvidia/mlir-nvidia-gcc7/llvm.obj/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp
# executed command: /vol/worker/mlir-nvidia/mlir-nvidia-gcc7/llvm.obj/bin/mlir-opt /vol/worker/mlir-nvidia/mlir-nvidia-gcc7/llvm.src/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary=format=isa -debug-only=serialize-to-isa
# .---redirected output from '/vol/worker/mlir-nvidia/mlir-nvidia-gcc7/llvm.obj/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp'
# | /vol/worker/mlir-nvidia/mlir-nvidia-gcc7/llvm.src/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: error: Cannot run `TargetRegistry::lookupTarget()` for SPIRV without having the target built.
# |   gpu.module @kernel [#xevm.target] {
# |   ^
# | /vol/worker/mlir-nvidia/mlir-nvidia-gcc7/llvm.src/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: note: see current operation: 
# | "gpu.module"() <{sym_name = "kernel", targets = [#xevm.target]}> ({
# |   "llvm.func"() <{CConv = #llvm.cconv<spir_kernelcc>, function_type = !llvm.func<void ()>, intel_reqd_sub_group_size = 16 : i32, linkage = #llvm.linkage<external>, sym_name = "native_fcns", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
# |     %0 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f16}> : () -> f16
# |     %1 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f32}> : () -> f32
# |     %2 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f64}> : () -> f64
# |     %3 = "llvm.mlir.constant"() <{value = dense<0.000000e+00> : vector<2xf64>}> : () -> vector
# | ...
# `---data was truncated--------
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1

--

********************


@ianayl
Copy link
Contributor Author

ianayl commented Oct 10, 2025

Looking into the build issues: I am currently unable to recreate this build error, it didn't seem to occur in the precommit either

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder ppc64le-mlir-rhel-clang running on ppc64le-mlir-rhel-test while building mlir at step 6 "test-build-check-mlir-build-only-check-mlir".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/129/builds/31239

Here is the relevant piece of the build log for the reference
Step 6 (test-build-check-mlir-build-only-check-mlir) failure: test (failure)
******************** TEST 'MLIR :: Conversion/MathToXeVM/native-spirv-builtins.mlir' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/buildbots/llvm-external-buildbots/workers/ppc64le-mlir-rhel-test/ppc64le-mlir-rhel-clang-build/build/bin/mlir-opt /home/buildbots/llvm-external-buildbots/workers/ppc64le-mlir-rhel-test/ppc64le-mlir-rhel-clang-build/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary="format=isa"              -debug-only=serialize-to-isa 2> /home/buildbots/llvm-external-buildbots/workers/ppc64le-mlir-rhel-test/ppc64le-mlir-rhel-clang-build/build/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp
# executed command: /home/buildbots/llvm-external-buildbots/workers/ppc64le-mlir-rhel-test/ppc64le-mlir-rhel-clang-build/build/bin/mlir-opt /home/buildbots/llvm-external-buildbots/workers/ppc64le-mlir-rhel-test/ppc64le-mlir-rhel-clang-build/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary=format=isa -debug-only=serialize-to-isa
# .---redirected output from '/home/buildbots/llvm-external-buildbots/workers/ppc64le-mlir-rhel-test/ppc64le-mlir-rhel-clang-build/build/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp'
# | /home/buildbots/llvm-external-buildbots/workers/ppc64le-mlir-rhel-test/ppc64le-mlir-rhel-clang-build/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: error: Cannot run `TargetRegistry::lookupTarget()` for SPIRV without having the target built.
# |   gpu.module @kernel [#xevm.target] {
# |   ^
# | /home/buildbots/llvm-external-buildbots/workers/ppc64le-mlir-rhel-test/ppc64le-mlir-rhel-clang-build/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: note: see current operation: 
# | "gpu.module"() <{sym_name = "kernel", targets = [#xevm.target]}> ({
# |   "llvm.func"() <{CConv = #llvm.cconv<spir_kernelcc>, function_type = !llvm.func<void ()>, intel_reqd_sub_group_size = 16 : i32, linkage = #llvm.linkage<external>, sym_name = "native_fcns", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
# |     %0 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f16}> : () -> f16
# |     %1 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f32}> : () -> f32
# |     %2 = "llvm.mlir.constant"() <{value =
# | ...
# `---data was truncated--------
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1

--

********************


@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder openmp-offload-sles-build-only running on rocm-worker-hw-04-sles while building mlir at step 11 "Add check check-mlir".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/140/builds/32234

Here is the relevant piece of the build log for the reference
Step 11 (Add check check-mlir) failure: test (failure)
******************** TEST 'MLIR :: Conversion/MathToXeVM/native-spirv-builtins.mlir' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/mlir-opt /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary="format=isa"              -debug-only=serialize-to-isa 2> /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp
# executed command: /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/mlir-opt /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary=format=isa -debug-only=serialize-to-isa
# .---redirected output from '/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp'
# | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: error: Cannot run `TargetRegistry::lookupTarget()` for SPIRV without having the target built.
# |   gpu.module @kernel [#xevm.target] {
# |   ^
# | /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: note: see current operation: 
# | "gpu.module"() <{sym_name = "kernel", targets = [#xevm.target]}> ({
# |   "llvm.func"() <{CConv = #llvm.cconv<spir_kernelcc>, function_type = !llvm.func<void ()>, intel_reqd_sub_group_size = 16 : i32, linkage = #llvm.linkage<external>, sym_name = "native_fcns", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
# |     %0 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f16}> : () -> f16
# |     %1 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f32}> : () -> f32
# |     %2 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f64}> : () -> f64
# |     %3 = "llvm.mlir.constant"() <{value = dense<0.000000e+00> : vect
# | ...
# `---data was truncated--------
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1

--

********************


@ianayl
Copy link
Contributor Author

ianayl commented Oct 10, 2025

Looking into the build issues: I am currently unable to recreate this build error, it didn't seem to occur in the precommit either

Able to recreate the issue, looking into fix now

@ianayl
Copy link
Contributor Author

ianayl commented Oct 10, 2025

Fixed version reintroduced at #162934

llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Oct 10, 2025
@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder flang-arm64-windows-msvc running on linaro-armv8-windows-msvc-01 while building mlir at step 6 "test-build-unified-tree-check-mlir".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/207/builds/8303

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-mlir) failure: test (failure)
******************** TEST 'MLIR :: Conversion/MathToXeVM/native-spirv-builtins.mlir' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\users\tcwg\llvm-worker\flang-arm64-windows-msvc\build\bin\mlir-opt.exe C:\Users\tcwg\llvm-worker\flang-arm64-windows-msvc\llvm-project\mlir\test\Conversion\MathToXeVM\native-spirv-builtins.mlir -gpu-module-to-binary="format=isa"              -debug-only=serialize-to-isa 2> C:\Users\tcwg\llvm-worker\flang-arm64-windows-msvc\build\tools\mlir\test\Conversion\MathToXeVM\Output\native-spirv-builtins.mlir.tmp
# executed command: 'c:\users\tcwg\llvm-worker\flang-arm64-windows-msvc\build\bin\mlir-opt.exe' 'C:\Users\tcwg\llvm-worker\flang-arm64-windows-msvc\llvm-project\mlir\test\Conversion\MathToXeVM\native-spirv-builtins.mlir' -gpu-module-to-binary=format=isa -debug-only=serialize-to-isa
# .---redirected output from 'C:\Users\tcwg\llvm-worker\flang-arm64-windows-msvc\build\tools\mlir\test\Conversion\MathToXeVM\Output\native-spirv-builtins.mlir.tmp'
# | C:\Users\tcwg\llvm-worker\flang-arm64-windows-msvc\llvm-project\mlir\test\Conversion\MathToXeVM\native-spirv-builtins.mlir:14:3: error: Cannot run `TargetRegistry::lookupTarget()` for SPIRV without having the target built.
# |   gpu.module @kernel [#xevm.target] {
# |   ^
# | C:\Users\tcwg\llvm-worker\flang-arm64-windows-msvc\llvm-project\mlir\test\Conversion\MathToXeVM\native-spirv-builtins.mlir:14:3: note: see current operation: 
# | "gpu.module"() <{sym_name = "kernel", targets = [#xevm.target]}> ({
# |   "llvm.func"() <{CConv = #llvm.cconv<spir_kernelcc>, function_type = !llvm.func<void ()>, intel_reqd_sub_group_size = 16 : i32, linkage = #llvm.linkage<external>, sym_name = "native_fcns", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
# |     %0 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f16}> : () -> f16
# |     %1 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f32}> : () -> f32
# |     %2 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f64}> : () -> f64
# |     %3 = "llvm.mlir.constant"() <{value = dense<0.000000e
# | ...
# `---data was truncated--------
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1

--

********************


@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 10, 2025

LLVM Buildbot has detected a new failure on builder mlir-s390x-linux running on systemz-1 while building mlir at step 6 "test-build-unified-tree-check-mlir".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/117/builds/14134

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-mlir) failure: test (failure)
******************** TEST 'MLIR :: Conversion/MathToXeVM/native-spirv-builtins.mlir' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/uweigand/sandbox/buildbot/mlir-s390x-linux/build/bin/mlir-opt /home/uweigand/sandbox/buildbot/mlir-s390x-linux/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary="format=isa"              -debug-only=serialize-to-isa 2> /home/uweigand/sandbox/buildbot/mlir-s390x-linux/build/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp
# executed command: /home/uweigand/sandbox/buildbot/mlir-s390x-linux/build/bin/mlir-opt /home/uweigand/sandbox/buildbot/mlir-s390x-linux/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir -gpu-module-to-binary=format=isa -debug-only=serialize-to-isa
# .---redirected output from '/home/uweigand/sandbox/buildbot/mlir-s390x-linux/build/tools/mlir/test/Conversion/MathToXeVM/Output/native-spirv-builtins.mlir.tmp'
# | /home/uweigand/sandbox/buildbot/mlir-s390x-linux/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: error: Cannot run `TargetRegistry::lookupTarget()` for SPIRV without having the target built.
# |   gpu.module @kernel [#xevm.target] {
# |   ^
# | /home/uweigand/sandbox/buildbot/mlir-s390x-linux/llvm-project/mlir/test/Conversion/MathToXeVM/native-spirv-builtins.mlir:14:3: note: see current operation: 
# | "gpu.module"() <{sym_name = "kernel", targets = [#xevm.target]}> ({
# |   "llvm.func"() <{CConv = #llvm.cconv<spir_kernelcc>, function_type = !llvm.func<void ()>, intel_reqd_sub_group_size = 16 : i32, linkage = #llvm.linkage<external>, sym_name = "native_fcns", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
# |     %0 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f16}> : () -> f16
# |     %1 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f32}> : () -> f32
# |     %2 = "llvm.mlir.constant"() <{value = 0.000000e+00 : f64}> : () -> f64
# |     %3 = "llvm.mlir.constant"() <{value = dense<0.000000e+00> : vector
# | ...
# `---data was truncated--------
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1

--

********************


@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 11, 2025

LLVM Buildbot has detected a new failure on builder flang-aarch64-sharedlibs running on linaro-flang-aarch64-sharedlibs while building mlir at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/80/builds/16628

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
467.529 [2796/20/5097] Linking CXX shared library lib/libMLIRMemRefToEmitC.so.22.0git
467.534 [2796/19/5098] Linking CXX shared library lib/libMLIRControlFlowToLLVM.so.22.0git
467.546 [2796/18/5099] Linking CXX shared library lib/libMLIRIndexToLLVM.so.22.0git
467.557 [2796/17/5100] Linking CXX shared library lib/libMLIRPtrToLLVM.so.22.0git
467.574 [2796/16/5101] Linking CXX shared library lib/libMLIRMathToLLVM.so.22.0git
467.582 [2796/15/5102] Linking CXX shared library lib/libMLIRUBToLLVM.so.22.0git
467.593 [2796/14/5103] Linking CXX shared library lib/libMLIRShapeToStandard.so.22.0git
467.607 [2796/13/5104] Linking CXX shared library lib/libMLIRMemRefToLLVM.so.22.0git
467.611 [2796/12/5105] Linking CXX shared library lib/libMLIRMPIToLLVM.so.22.0git
467.629 [2791/16/5106] Linking CXX shared library lib/libMLIRMathToXeVM.so.22.0git
FAILED: lib/libMLIRMathToXeVM.so.22.0git 
: && /usr/local/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -Werror=global-constructors -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMathToXeVM.so.22.0git -o lib/libMLIRMathToXeVM.so.22.0git tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/lib:"  lib/libMLIRMathDialect.so.22.0git  lib/libMLIRLLVMCommonConversion.so.22.0git  lib/libMLIRVectorDialect.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libMLIRTransforms.so.22.0git  lib/libMLIRTransformUtils.so.22.0git  lib/libMLIRSubsetOpInterface.so.22.0git  lib/libMLIRRewrite.so.22.0git  lib/libMLIRRewritePDL.so.22.0git  lib/libMLIRPDLToPDLInterp.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRPDLInterpDialect.so.22.0git  lib/libMLIRPDLDialect.so.22.0git  lib/libMLIRIndexingMapOpInterface.so.22.0git  lib/libMLIRMaskableOpInterface.so.22.0git  lib/libMLIRMaskingOpInterface.so.22.0git  lib/libMLIRTensorDialect.so.22.0git  lib/libMLIRAffineDialect.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRParallelCombiningOpInterface.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRVectorInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/lib && :
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::impl::ConvertMathToXeVMBase<(anonymous namespace)::ConvertMathToXeVMPass>::getDependentDialects(mlir::DialectRegistry&) const':
MathToXeVM.cpp:(.text._ZNK4mlir4impl21ConvertMathToXeVMBaseIN12_GLOBAL__N_121ConvertMathToXeVMPassEE20getDependentDialectsERNS_15DialectRegistryE+0x78): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: MathToXeVM.cpp:(.text._ZNK4mlir4impl21ConvertMathToXeVMBaseIN12_GLOBAL__N_121ConvertMathToXeVMPassEE20getDependentDialectsERNS_15DialectRegistryE+0x88): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::_Function_handler<mlir::Dialect* (mlir::MLIRContext*), mlir::DialectRegistry::insert<mlir::xevm::XeVMDialect>()::{lambda(mlir::MLIRContext*)#1}>::_M_invoke(std::_Any_data const&, mlir::MLIRContext*&&)':
MathToXeVM.cpp:(.text._ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_[_ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_]+0x10): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: MathToXeVM.cpp:(.text._ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_[_ZNSt17_Function_handlerIFPN4mlir7DialectEPNS0_11MLIRContextEEZNS0_15DialectRegistry6insertINS0_4xevm11XeVMDialectEEEvvEUlS4_E_E9_M_invokeERKSt9_Any_dataOS4_]+0x30): undefined reference to `mlir::detail::TypeIDResolver<mlir::xevm::XeVMDialect, void>::id'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > llvm::function_ref<std::unique_ptr<mlir::Dialect, std::default_delete<mlir::Dialect> > ()>::callback_fn<mlir::MLIRContext::getOrLoadDialect<mlir::xevm::XeVMDialect>()::{lambda()#1}>(long)':
MathToXeVM.cpp:(.text._ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l[_ZN4llvm12function_refIFSt10unique_ptrIN4mlir7DialectESt14default_deleteIS3_EEvEE11callback_fnIZNS2_11MLIRContext16getOrLoadDialectINS2_4xevm11XeVMDialectEEEPT_vEUlvE_EES6_l]+0x28): undefined reference to `mlir::xevm::XeVMDialect::XeVMDialect(mlir::MLIRContext*)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::arith::AttrConvertFastMathToLLVM<mlir::math::ExpOp, mlir::LLVM::CallOp>::AttrConvertFastMathToLLVM(mlir::math::ExpOp)':
MathToXeVM.cpp:(.text._ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math5ExpOpENS_4LLVM6CallOpEEC2ES3_[_ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math5ExpOpENS_4LLVM6CallOpEEC2ES3_]+0xcc): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::arith::AttrConvertFastMathToLLVM<mlir::math::CosOp, mlir::LLVM::CallOp>::AttrConvertFastMathToLLVM(mlir::math::CosOp)':
MathToXeVM.cpp:(.text._ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math5CosOpENS_4LLVM6CallOpEEC2ES3_[_ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math5CosOpENS_4LLVM6CallOpEEC2ES3_]+0xcc): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::arith::AttrConvertFastMathToLLVM<mlir::math::Exp2Op, mlir::LLVM::CallOp>::AttrConvertFastMathToLLVM(mlir::math::Exp2Op)':
MathToXeVM.cpp:(.text._ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math6Exp2OpENS_4LLVM6CallOpEEC2ES3_[_ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math6Exp2OpENS_4LLVM6CallOpEEC2ES3_]+0xcc): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::arith::AttrConvertFastMathToLLVM<mlir::math::LogOp, mlir::LLVM::CallOp>::AttrConvertFastMathToLLVM(mlir::math::LogOp)':
MathToXeVM.cpp:(.text._ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math5LogOpENS_4LLVM6CallOpEEC2ES3_[_ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math5LogOpENS_4LLVM6CallOpEEC2ES3_]+0xcc): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o: in function `mlir::arith::AttrConvertFastMathToLLVM<mlir::math::Log2Op, mlir::LLVM::CallOp>::AttrConvertFastMathToLLVM(mlir::math::Log2Op)':
MathToXeVM.cpp:(.text._ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math6Log2OpENS_4LLVM6CallOpEEC2ES3_[_ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math6Log2OpENS_4LLVM6CallOpEEC2ES3_]+0xcc): undefined reference to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)'
/usr/bin/ld: tools/mlir/lib/Conversion/MathToXeVM/CMakeFiles/obj.MLIRMathToXeVM.dir/MathToXeVM.cpp.o:MathToXeVM.cpp:(.text._ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math7Log10OpENS_4LLVM6CallOpEEC2ES3_[_ZN4mlir5arith25AttrConvertFastMathToLLVMINS_4math7Log10OpENS_4LLVM6CallOpEEC2ES3_]+0xcc): more undefined references to `mlir::arith::convertArithFastMathAttrToLLVM(mlir::arith::FastMathFlagsAttr)' follow
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
467.629 [2791/15/5107] Linking CXX shared library lib/libMLIROpenACCToSCF.so.22.0git
467.629 [2791/14/5108] Linking CXX shared library lib/libMLIRSCFToOpenMP.so.22.0git
467.629 [2791/13/5109] Linking CXX shared library lib/libMLIRAMXDialect.so.22.0git
467.638 [2791/12/5110] Creating library symlink lib/libMLIRControlFlowToLLVM.so
467.640 [2791/11/5111] Creating library symlink lib/libMLIRConvertToLLVMPass.so
467.643 [2791/10/5112] Creating library symlink lib/libMLIRIndexToLLVM.so
467.645 [2791/9/5113] Creating library symlink lib/libMLIRMathToLLVM.so
467.646 [2791/8/5114] Creating library symlink lib/libMLIRMemRefToEmitC.so
467.652 [2791/7/5115] Linking CXX shared library lib/libMLIRNVVMToLLVM.so.22.0git
467.658 [2791/6/5116] Linking CXX shared library lib/libMLIRXeVMToLLVM.so.22.0git
467.665 [2791/5/5117] Linking CXX shared library lib/libMLIRArmNeonTransforms.so.22.0git
467.700 [2791/4/5118] Linking CXX shared library lib/libMLIRTosaToLinalg.so.22.0git
467.725 [2791/3/5119] Linking CXX shared library lib/libMLIRAMDGPUTransforms.so.22.0git
467.735 [2791/2/5120] Linking CXX shared library lib/libMLIRVectorToArmSME.so.22.0git
467.920 [2791/1/5121] Linking CXX shared library lib/libMLIRArmSVETransforms.so.22.0git
ninja: build stopped: subcommand failed.

@klausler
Copy link
Contributor

Is there a plan to get the failing build bots working again, or should this PR be reverted?

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 11, 2025

LLVM Buildbot has detected a new failure on builder sanitizer-x86_64-linux-fast running on sanitizer-buildbot3 while building mlir at step 2 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/169/builds/15862

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using lld-link: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/lld-link
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using ld64.lld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/ld64.lld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using wasm-ld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/wasm-ld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using ld.lld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/ld.lld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using lld-link: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/lld-link
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using ld64.lld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/ld64.lld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using wasm-ld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/wasm-ld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/main.py:74: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 92589 tests, 64 workers --
Testing:  0.. 10.. 20
FAIL: Clang :: SemaOpenACC/loop-construct-reduction-clause.cpp (21877 of 92589)
******************** TEST 'Clang :: SemaOpenACC/loop-construct-reduction-clause.cpp' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/clang -cc1 -internal-isystem /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/lib/clang/22/include -nostdsysteminc /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp -fopenacc -verify # RUN: at line 1
+ /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/clang -cc1 -internal-isystem /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/lib/clang/22/include -nostdsysteminc /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp -fopenacc -verify
libc++abi: Pure virtual function called!
/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/tools/clang/test/SemaOpenACC/Output/loop-construct-reduction-clause.cpp.script: line 1: 2107506 Aborted                 /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/clang -cc1 -internal-isystem /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/lib/clang/22/include -nostdsysteminc /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp -fopenacc -verify

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
Slowest Tests:
--------------------------------------------------------------------------
359.19s: LLVM :: CodeGen/AMDGPU/sched-group-barrier-pipeline-solver.mir
243.04s: Clang :: Driver/fsanitize.c
196.12s: LLVM :: CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
177.16s: Clang :: Preprocessor/riscv-target-features.c
171.57s: LLVM :: CodeGen/AMDGPU/memintrinsic-unroll.ll
156.26s: Clang :: Driver/arm-cortex-cpus-2.c
151.47s: Clang :: Driver/arm-cortex-cpus-1.c
150.55s: Clang :: CodeGen/X86/avx-builtins.c
145.47s: Clang :: OpenMP/target_update_codegen.cpp
143.98s: Clang :: Preprocessor/aarch64-target-features.c
140.92s: Clang :: Preprocessor/arm-target-features.c
139.72s: Clang :: OpenMP/target_defaultmap_codegen_01.cpp
136.20s: Clang :: CodeGen/X86/sse2-builtins.c
121.24s: Clang :: CodeGen/X86/avx2-builtins.c
119.81s: Clang :: Analysis/a_flaky_crash.cpp
118.53s: Clang :: CodeGen/X86/mmx-builtins.c
117.81s: Clang :: Preprocessor/predefined-arch-macros.c
117.52s: Clang :: CodeGen/X86/avx512vlbw-reduceIntrin.c
116.36s: Clang :: CodeGen/X86/rot-intrinsics.c
111.20s: Clang :: CodeGen/AArch64/sve-intrinsics/acle_sve_reinterpret.c

Tests Times:
Step 11 (stage2/asan_ubsan check) failure: stage2/asan_ubsan check (failure)
...
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using lld-link: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/lld-link
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using ld64.lld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/ld64.lld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using wasm-ld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/wasm-ld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using ld.lld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/ld.lld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using lld-link: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/lld-link
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using ld64.lld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/ld64.lld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/llvm/config.py:530: note: using wasm-ld: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/wasm-ld
llvm-lit: /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/lit/lit/main.py:74: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 92589 tests, 64 workers --
Testing:  0.. 10.. 20
FAIL: Clang :: SemaOpenACC/loop-construct-reduction-clause.cpp (21877 of 92589)
******************** TEST 'Clang :: SemaOpenACC/loop-construct-reduction-clause.cpp' FAILED ********************
Exit Code: 134

Command Output (stderr):
--
/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/clang -cc1 -internal-isystem /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/lib/clang/22/include -nostdsysteminc /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp -fopenacc -verify # RUN: at line 1
+ /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/clang -cc1 -internal-isystem /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/lib/clang/22/include -nostdsysteminc /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp -fopenacc -verify
libc++abi: Pure virtual function called!
/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/tools/clang/test/SemaOpenACC/Output/loop-construct-reduction-clause.cpp.script: line 1: 2107506 Aborted                 /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/clang -cc1 -internal-isystem /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/lib/clang/22/include -nostdsysteminc /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp -fopenacc -verify

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
Slowest Tests:
--------------------------------------------------------------------------
359.19s: LLVM :: CodeGen/AMDGPU/sched-group-barrier-pipeline-solver.mir
243.04s: Clang :: Driver/fsanitize.c
196.12s: LLVM :: CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
177.16s: Clang :: Preprocessor/riscv-target-features.c
171.57s: LLVM :: CodeGen/AMDGPU/memintrinsic-unroll.ll
156.26s: Clang :: Driver/arm-cortex-cpus-2.c
151.47s: Clang :: Driver/arm-cortex-cpus-1.c
150.55s: Clang :: CodeGen/X86/avx-builtins.c
145.47s: Clang :: OpenMP/target_update_codegen.cpp
143.98s: Clang :: Preprocessor/aarch64-target-features.c
140.92s: Clang :: Preprocessor/arm-target-features.c
139.72s: Clang :: OpenMP/target_defaultmap_codegen_01.cpp
136.20s: Clang :: CodeGen/X86/sse2-builtins.c
121.24s: Clang :: CodeGen/X86/avx2-builtins.c
119.81s: Clang :: Analysis/a_flaky_crash.cpp
118.53s: Clang :: CodeGen/X86/mmx-builtins.c
117.81s: Clang :: Preprocessor/predefined-arch-macros.c
117.52s: Clang :: CodeGen/X86/avx512vlbw-reduceIntrin.c
116.36s: Clang :: CodeGen/X86/rot-intrinsics.c
111.20s: Clang :: CodeGen/AArch64/sve-intrinsics/acle_sve_reinterpret.c

Tests Times:

DharuniRAcharya pushed a commit to DharuniRAcharya/llvm-project that referenced this pull request Oct 13, 2025
This PR introduces a `MathToXeVM` pass, which implements support for the
`afn` fastmath flag for SPIRV/XeVM targets - It takes supported `Math`
Ops with the `afn` flag, and converts them to function calls to OpenCL
`native_` intrinsics.

These intrinsic functions are supported by the SPIRV backend, and are
automatically converted to `OpExtInst` calls to `native_` ops from the
OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM.

Note:
- This pass also supports converting `arith.divf` to native equivalents.
There is an option provided in the pass to turn this behavior off.
- This pass preserves fastmath flags, but these flags are currently
ignored by the SPIRV backend. Thus, in order to generate SPIRV that
truly preserves fastmath flags, support needs to be added to the SPIRV
backend.
DharuniRAcharya pushed a commit to DharuniRAcharya/llvm-project that referenced this pull request Oct 13, 2025
@ianayl
Copy link
Contributor Author

ianayl commented Oct 14, 2025

Is there a plan to get the failing build bots working again, or should this PR be reverted?

PR has already been reverted at #162923, new PR is now at #162934, sorry for the messy postcommit situation!

mshahneo pushed a commit that referenced this pull request Oct 14, 2025
This PR is a fix for #159878,
which failed in postcommit testing due to linker errors that were not
caught in precommit.

Original PR:

---

This PR introduces a `MathToXeVM` pass, which implements support for the
`afn` fastmath flag for SPIRV/XeVM targets - It takes supported `Math`
Ops with the `afn` flag, and converts them to function calls to OpenCL
`native_` intrinsics.

These intrinsic functions are supported by the SPIRV backend, and are
automatically converted to `OpExtInst` calls to `native_` ops from the
OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM.

Note:
- This pass also supports converting `arith.divf` to native equivalents.
There is an option provided in the pass to turn this behavior off.
- This pass preserves fastmath flags, but these flags are currently
ignored by the SPIRV backend. Thus, in order to generate SPIRV that
truly preserves fastmath flags, support needs to be added to the SPIRV
backend.
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Oct 14, 2025
…ass (#162934)

This PR is a fix for llvm/llvm-project#159878,
which failed in postcommit testing due to linker errors that were not
caught in precommit.

Original PR:

---

This PR introduces a `MathToXeVM` pass, which implements support for the
`afn` fastmath flag for SPIRV/XeVM targets - It takes supported `Math`
Ops with the `afn` flag, and converts them to function calls to OpenCL
`native_` intrinsics.

These intrinsic functions are supported by the SPIRV backend, and are
automatically converted to `OpExtInst` calls to `native_` ops from the
OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM.

Note:
- This pass also supports converting `arith.divf` to native equivalents.
There is an option provided in the pass to turn this behavior off.
- This pass preserves fastmath flags, but these flags are currently
ignored by the SPIRV backend. Thus, in order to generate SPIRV that
truly preserves fastmath flags, support needs to be added to the SPIRV
backend.
akadutta pushed a commit to akadutta/llvm-project that referenced this pull request Oct 14, 2025
This PR introduces a `MathToXeVM` pass, which implements support for the
`afn` fastmath flag for SPIRV/XeVM targets - It takes supported `Math`
Ops with the `afn` flag, and converts them to function calls to OpenCL
`native_` intrinsics.

These intrinsic functions are supported by the SPIRV backend, and are
automatically converted to `OpExtInst` calls to `native_` ops from the
OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM.

Note:
- This pass also supports converting `arith.divf` to native equivalents.
There is an option provided in the pass to turn this behavior off.
- This pass preserves fastmath flags, but these flags are currently
ignored by the SPIRV backend. Thus, in order to generate SPIRV that
truly preserves fastmath flags, support needs to be added to the SPIRV
backend.
akadutta pushed a commit to akadutta/llvm-project that referenced this pull request Oct 14, 2025
akadutta pushed a commit to akadutta/llvm-project that referenced this pull request Oct 14, 2025
…62934)

This PR is a fix for llvm#159878,
which failed in postcommit testing due to linker errors that were not
caught in precommit.

Original PR:

---

This PR introduces a `MathToXeVM` pass, which implements support for the
`afn` fastmath flag for SPIRV/XeVM targets - It takes supported `Math`
Ops with the `afn` flag, and converts them to function calls to OpenCL
`native_` intrinsics.

These intrinsic functions are supported by the SPIRV backend, and are
automatically converted to `OpExtInst` calls to `native_` ops from the
OpenCL SPIRV ext. inst. set when outputting to SPIRV/XeVM.

Note:
- This pass also supports converting `arith.divf` to native equivalents.
There is an option provided in the pass to turn this behavior off.
- This pass preserves fastmath flags, but these flags are currently
ignored by the SPIRV backend. Thus, in order to generate SPIRV that
truly preserves fastmath flags, support needs to be added to the SPIRV
backend.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.