blob: 7df043349ea08a9186afef6adc761e1e1a8be8e0 [file] [log] [blame]
// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --enable-var-scope --dump-input-filter=all %s
// CHECK-LABEL: @elide_boxing_noop
iree_pydm.func @elide_boxing_noop(%arg0 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) {
%0 = box %arg0 : !iree_pydm.object -> !iree_pydm.object
// CHECK: return %arg0
return %0 : !iree_pydm.object
}
// -----
// CHECK-LABEL: @preserves_boxing
iree_pydm.func @preserves_boxing(%arg0 : !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.object) {
// CHECK: %[[BOXED:.*]] = box %arg0
%0 = box %arg0 : !iree_pydm.integer -> !iree_pydm.object
// CHECK: return %[[BOXED]]
return %0 : !iree_pydm.object
}
// -----
// CHECK-LABEL: @elide_unboxing_from_boxed_noop
iree_pydm.func @elide_unboxing_from_boxed_noop(%arg0 : !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.integer) {
// CHECK-NOT: raise_on_failure
%0 = box %arg0 : !iree_pydm.integer -> !iree_pydm.object
%exc_result, %1 = unbox %0 : !iree_pydm.object -> !iree_pydm.integer
raise_on_failure %exc_result : !iree_pydm.exception_result
// CHECK: return %arg0
return %1 : !iree_pydm.integer
}
// -----
// CHECK-LABEL: @preserve_unboxing
iree_pydm.func @preserve_unboxing(%arg0 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.integer) {
%0 = box %arg0 : !iree_pydm.object -> !iree_pydm.object
// CHECK: %[[STATUS:.*]], %[[UNBOXED:.*]] = unbox
%exc_result, %1 = unbox %0 : !iree_pydm.object -> !iree_pydm.integer
raise_on_failure %exc_result : !iree_pydm.exception_result
// CHECK: return %[[UNBOXED]]
return %1 : !iree_pydm.integer
}