blob: dcaeeae6f0e568900c4ea7c716fc256ca04159f9 [file] [log] [blame]
// RUN: iree-dialects-opt -verify-diagnostics -split-input-file -lower-iree-pydm-to-rtl -link-iree-pydm-rtl='rtl-file=%resources_dir/PyDMRTL/PyDMRTLBase.mlir' %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: module @multi_with_private
// A multiple module import with additional private symbols included.
// Verifies that externs are replaced with definitions and are made private.
// The MLIR verifier will ensure that any dependent symbols are included.
// NOTE: The order here is not important but should be deterministic.
// CHECK-NOT: iree_pydm.func private @pydmrtl$dynamic_binary_promote{{.*}}{
// CHECK: iree_pydm.func private @pydmrtl$object_as_bool{{.*}}{
module @multi_with_private {
iree_pydm.func @object_as_bool(%arg0 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
%0 = as_bool %arg0 : !iree_pydm.object -> !iree_pydm.bool
return %0 : !iree_pydm.bool
}
// TODO: Re-enable.
// iree_pydm.func @dynamic_binary_promote(%arg0 : !iree_pydm.object, %arg1 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) {
// %left, %right = dynamic_binary_promote %arg0, %arg1 : !iree_pydm.object, !iree_pydm.object
// %result = make_tuple %left, %right : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.tuple
// return %result : !iree_pydm.tuple
// }
}
// -----
module @symbol_not_found {
iree_pydm.func @DOES_NOT_EXIST(%arg0: !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
%exc_result, %result = call @pydmrtl$DOES_NOT_EXIST(%arg0) : (!iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool)
raise_on_failure %exc_result : !iree_pydm.exception_result
return %result : !iree_pydm.bool
}
// expected-error@+1 {{could not resolve extern "pydmrtl$DOES_NOT_EXIST"}}
iree_pydm.func private @pydmrtl$DOES_NOT_EXIST(%arg0: !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool)
}