blob: 7e2b849a355125e0389da611c4a06bdfae2edc6a [file] [log] [blame]
// RUN: iree-dialects-opt -split-input-file -convert-iree-pydm-to-iree %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: func @neg_integer(
// CHECK-SAME: %[[VAL_0:.*]]: i32) -> (i32, i32) {
// CHECK: %[[VAL_1:.*]] = arith.constant 0 : i32
// CHECK: %[[VAL_2:.*]] = arith.subi %[[VAL_1]], %[[VAL_0]] : i32
// CHECK: %[[VAL_3:.*]] = arith.constant 0 : i32
// CHECK: return %[[VAL_3]], %[[VAL_2]] : i32, i32
// CHECK: }
iree_pydm.func @neg_integer(%arg0 : !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) {
%0 = neg %arg0 : !iree_pydm.integer<32> -> !iree_pydm.integer<32>
return %0 : !iree_pydm.integer<32>
}
// -----
// CHECK-LABEL: func @integer_add(
// CHECK-SAME: %[[VAL_0:.*]]: i32,
// CHECK-SAME: %[[VAL_1:.*]]: i32) -> (i32, i32) {
// CHECK: %[[VAL_2:.*]] = arith.addi %[[VAL_0]], %[[VAL_1]] : i32
// CHECK: %[[VAL_3:.*]] = arith.constant 0 : i32
// CHECK: return %[[VAL_3]], %[[VAL_2]] : i32, i32
// CHECK: }
iree_pydm.func @integer_add(%arg0 : !iree_pydm.integer<32>, %arg1 : !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) {
%0 = apply_binary "add", %arg0, %arg1 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
return %0 : !iree_pydm.integer<32>
}
// -----
// CHECK-LABEL: @integer_and
// CHECK: arith.andi
iree_pydm.func @integer_and(%arg0 : !iree_pydm.integer<32>, %arg1 : !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) {
%0 = apply_binary "and", %arg0, %arg1 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
return %0 : !iree_pydm.integer<32>
}
// -----
// CHECK-LABEL: @integer_mul
// CHECK: arith.muli
iree_pydm.func @integer_mul(%arg0 : !iree_pydm.integer<32>, %arg1 : !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) {
%0 = apply_binary "mul", %arg0, %arg1 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
return %0 : !iree_pydm.integer<32>
}
// -----
// CHECK-LABEL: @integer_lshift
// CHECK: arith.shli
iree_pydm.func @integer_lshift(%arg0 : !iree_pydm.integer<32>, %arg1 : !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) {
%0 = apply_binary "lshift", %arg0, %arg1 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
return %0 : !iree_pydm.integer<32>
}
// -----
// CHECK-LABEL: @integer_or
// CHECK: arith.ori
iree_pydm.func @integer_or(%arg0 : !iree_pydm.integer<32>, %arg1 : !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) {
%0 = apply_binary "or", %arg0, %arg1 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
return %0 : !iree_pydm.integer<32>
}
// -----
// CHECK-LABEL: @integer_rshift_signed
// CHECK: arith.shrsi
iree_pydm.func @integer_rshift_signed(%arg0 : !iree_pydm.integer<32>, %arg1 : !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) {
%0 = apply_binary "rshift", %arg0, %arg1 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
return %0 : !iree_pydm.integer<32>
}
// -----
// CHECK-LABEL: @integer_rshift_usigned
// CHECK: arith.shrui
iree_pydm.func @integer_rshift_usigned(%arg0 : !iree_pydm.integer<unsigned 32>, %arg1 : !iree_pydm.integer<unsigned 32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<unsigned 32>) {
%0 = apply_binary "rshift", %arg0, %arg1 : !iree_pydm.integer<unsigned 32>, !iree_pydm.integer<unsigned 32> -> !iree_pydm.integer<unsigned 32>
return %0 : !iree_pydm.integer<unsigned 32>
}
// -----
// CHECK-LABEL: func @real_add(
// CHECK-SAME: %[[VAL_0:.*]]: f32,
// CHECK-SAME: %[[VAL_1:.*]]: f32) -> (i32, f32) {
// CHECK: %[[VAL_2:.*]] = arith.addf %[[VAL_0]], %[[VAL_1]] : f32
// CHECK: %[[VAL_3:.*]] = arith.constant 0 : i32
// CHECK: return %[[VAL_3]], %[[VAL_2]] : i32, f32
// CHECK: }
iree_pydm.func @real_add(%arg0 : !iree_pydm.real<f32>, %arg1 : !iree_pydm.real<f32>) -> (!iree_pydm.exception_result, !iree_pydm.real<f32>) {
%0 = apply_binary "add", %arg0, %arg1 : !iree_pydm.real<f32>, !iree_pydm.real<f32> -> !iree_pydm.real<f32>
return %0 : !iree_pydm.real<f32>
}
// -----
// CHECK-LABEL: @real_mul
// CHECK: arith.mulf
iree_pydm.func @real_mul(%arg0 : !iree_pydm.real<f32>, %arg1 : !iree_pydm.real<f32>) -> (!iree_pydm.exception_result, !iree_pydm.real<f32>) {
%0 = apply_binary "mul", %arg0, %arg1 : !iree_pydm.real<f32>, !iree_pydm.real<f32> -> !iree_pydm.real<f32>
return %0 : !iree_pydm.real<f32>
}
// -----
// CHECK-LABEL: @real_sub
// CHECK: arith.subf
iree_pydm.func @real_sub(%arg0 : !iree_pydm.real<f32>, %arg1 : !iree_pydm.real<f32>) -> (!iree_pydm.exception_result, !iree_pydm.real<f32>) {
%0 = apply_binary "sub", %arg0, %arg1 : !iree_pydm.real<f32>, !iree_pydm.real<f32> -> !iree_pydm.real<f32>
return %0 : !iree_pydm.real<f32>
}