1// RUN: mlir-opt %s -split-input-file -verify-diagnostics
2
3func.func @ins_1_index_outs_none_results_1_index(%arg0 : index) -> index {
4  %0 = test.destination_style_op ins(%arg0 : index) -> index
5  func.return %0 : index
6}
7
8// -----
9
10func.func @ins_1_index_outs_1_tensor_results_1_index(%arg0 : index, %arg1 : tensor<2x2xf32>) -> index {
11  // expected-error @+1 {{op expected the number of tensor results (0) to be equal to the number of output tensors (1)}}
12  %0 = test.destination_style_op ins(%arg0 : index) outs(%arg1 : tensor<2x2xf32>) -> index
13  func.return %0 : index
14}
15
16// -----
17
18func.func @ins_1_tensor_outs_none_results_1_index(%arg0 :tensor<2x2xf32>) -> index {
19  %0 = test.destination_style_op ins(%arg0 : tensor<2x2xf32>) -> index
20  func.return %0 : index
21}
22
23// -----
24
25func.func @ins_1_tensor_outs_1_tensor_results_1_index(%arg0 :tensor<2x2xf32>, %arg1 : tensor<2x2xf32>) -> index {
26  // expected-error @+1 {{op expected the number of tensor results (0) to be equal to the number of output tensors (1)}}
27  %0 = test.destination_style_op ins(%arg0 : tensor<2x2xf32>) outs(%arg1 : tensor<2x2xf32>) -> index
28  func.return %0 : index
29}
30
31// -----
32
33func.func @ins_1_index_outs_none_results_1_tensor(%arg0 : index) -> tensor<2x2xf32> {
34  // expected-error @+1 {{op expected the number of tensor results (1) to be equal to the number of output tensors (0)}}
35  %0 = test.destination_style_op ins(%arg0 : index) -> tensor<2x2xf32>
36  func.return %0 : tensor<2x2xf32>
37}
38
39// -----
40
41func.func @ins_1_index_outs_1_tensor_results_1_tensor(%arg0 : index, %arg1 : tensor<2x2xf32>) -> tensor<2x2xf32> {
42  %0 = test.destination_style_op ins(%arg0 : index) outs(%arg1 : tensor<2x2xf32>) -> tensor<2x2xf32>
43  func.return %0 : tensor<2x2xf32>
44}
45
46// -----
47
48func.func @ins_1_tensor_outs_none_results_1_tensor(%arg0 :tensor<2x2xf32>) -> tensor<2x2xf32> {
49  // expected-error @+1 {{op expected the number of tensor results (1) to be equal to the number of output tensors (0)}}
50  %0 = test.destination_style_op ins(%arg0 : tensor<2x2xf32>) -> tensor<2x2xf32>
51  func.return %0 : tensor<2x2xf32>
52}
53
54// -----
55
56func.func @ins_1_tensor_outs_1_tensor_results_1_tensor(%arg0 :tensor<2x2xf32>, %arg1 : tensor<2x2xf32>) -> tensor<2x2xf32> {
57  %0 = test.destination_style_op ins(%arg0 : tensor<2x2xf32>) outs(%arg1 : tensor<2x2xf32>) -> tensor<2x2xf32>
58  func.return %0 : tensor<2x2xf32>
59}
60