• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: mlir-opt %s -split-input-file -verify-diagnostics | FileCheck %s
2
3//===----------------------------------------------------------------------===//
4// Test mixed normal and variadic operands
5//===----------------------------------------------------------------------===//
6
7func @correct_variadic_operand(%arg0: tensor<f32>, %arg1: f32) {
8  // CHECK: mixed_normal_variadic_operand
9  "test.mixed_normal_variadic_operand"(%arg0, %arg0, %arg0, %arg0, %arg0) : (tensor<f32>, tensor<f32>, tensor<f32>, tensor<f32>, tensor<f32>) -> ()
10  return
11}
12
13// -----
14
15func @error_in_first_variadic_operand(%arg0: tensor<f32>, %arg1: f32) {
16  // expected-error @+1 {{operand #1 must be tensor of any type}}
17  "test.mixed_normal_variadic_operand"(%arg0, %arg1, %arg0, %arg0, %arg0) : (tensor<f32>, f32, tensor<f32>, tensor<f32>, tensor<f32>) -> ()
18  return
19}
20
21// -----
22
23func @error_in_normal_operand(%arg0: tensor<f32>, %arg1: f32) {
24  // expected-error @+1 {{operand #2 must be tensor of any type}}
25  "test.mixed_normal_variadic_operand"(%arg0, %arg0, %arg1, %arg0, %arg0) : (tensor<f32>, tensor<f32>, f32, tensor<f32>, tensor<f32>) -> ()
26  return
27}
28
29// -----
30
31func @error_in_second_variadic_operand(%arg0: tensor<f32>, %arg1: f32) {
32  // expected-error @+1 {{operand #3 must be tensor of any type}}
33  "test.mixed_normal_variadic_operand"(%arg0, %arg0, %arg0, %arg1, %arg0) : (tensor<f32>, tensor<f32>, tensor<f32>, f32, tensor<f32>) -> ()
34  return
35}
36
37// -----
38
39func @testfunc(%arg0: i32) {
40  return
41}
42func @invalid_call_operandtype() {
43  %0 = constant 0.0 : f32
44  // expected-error @+1 {{operand type mismatch: expected operand type 'i32', but provided 'f32' for operand number 0}}
45  call @testfunc(%0) : (f32) -> ()
46  return
47}
48