@@ -61,12 +61,21 @@ static LogicalResult lowerToLLVMDialect(ModuleOp module) {
6161}
6262
6363TEST (MLIRExecutionEngine, SKIP_WITHOUT_JIT(AddInteger)) {
64+ #ifdef __s390__
65+ std::string moduleStr = R"mlir(
66+ func.func @foo(%arg0 : i32 {llvm.signext}) -> (i32 {llvm.signext}) attributes { llvm.emit_c_interface } {
67+ %res = arith.addi %arg0, %arg0 : i32
68+ return %res : i32
69+ }
70+ )mlir" ;
71+ #else
6472 std::string moduleStr = R"mlir(
6573 func.func @foo(%arg0 : i32) -> i32 attributes { llvm.emit_c_interface } {
6674 %res = arith.addi %arg0, %arg0 : i32
6775 return %res : i32
6876 }
6977 )mlir" ;
78+ #endif
7079 DialectRegistry registry;
7180 registerAllDialects (registry);
7281 registerBuiltinDialectTranslation (registry);
@@ -259,6 +268,16 @@ TEST(NativeMemRefJit, MAYBE_JITCallback) {
259268 for (float &elt : *a)
260269 elt = count++;
261270
271+ #ifdef __s390__
272+ std::string moduleStr = R"mlir(
273+ func.func private @callback(%arg0: memref<?x?xf32>, %coefficient: i32 {llvm.signext}) attributes { llvm.emit_c_interface }
274+ func.func @caller_for_callback(%arg0: memref<?x?xf32>, %coefficient: i32 {llvm.signext}) attributes { llvm.emit_c_interface } {
275+ %unranked = memref.cast %arg0: memref<?x?xf32> to memref<*xf32>
276+ call @callback(%arg0, %coefficient) : (memref<?x?xf32>, i32) -> ()
277+ return
278+ }
279+ )mlir" ;
280+ #else
262281 std::string moduleStr = R"mlir(
263282 func.func private @callback(%arg0: memref<?x?xf32>, %coefficient: i32) attributes { llvm.emit_c_interface }
264283 func.func @caller_for_callback(%arg0: memref<?x?xf32>, %coefficient: i32) attributes { llvm.emit_c_interface } {
@@ -267,6 +286,8 @@ TEST(NativeMemRefJit, MAYBE_JITCallback) {
267286 return
268287 }
269288 )mlir" ;
289+ #endif
290+
270291 DialectRegistry registry;
271292 registerAllDialects (registry);
272293 registerBuiltinDialectTranslation (registry);
0 commit comments