| func.func @reverse_dim0() { |
| %input = util.unfoldable_constant dense<[[1.0, 2.0, 3.0], |
| [4.0, 5.0, 6.0]]> : tensor<2x3xf32> |
| |
| %init = tensor.empty() : tensor<2x3xf32> |
| %0 = iree_linalg_ext.reverse |
| dimensions(dense<0> : tensor<1xi64>) |
| ins(%input : tensor<2x3xf32>) |
| outs(%init : tensor<2x3xf32>) : tensor<2x3xf32> |
| |
| check.expect_almost_eq_const( |
| %0, |
| dense<[[4.0, 5.0, 6.0], [1.0, 2.0, 3.0]]> : tensor<2x3xf32> |
| ) : tensor<2x3xf32> |
| |
| return |
| } |
| |
| func.func @reverse_dim1() { |
| %input = util.unfoldable_constant dense<[[1, 2, 3], |
| [4, 5, 6]]> : tensor<2x3xi32> |
| |
| %init = tensor.empty() : tensor<2x3xi32> |
| %0 = iree_linalg_ext.reverse |
| dimensions(dense<1> : tensor<1xi64>) |
| ins(%input : tensor<2x3xi32>) |
| outs(%init : tensor<2x3xi32>) : tensor<2x3xi32> |
| |
| check.expect_eq_const( |
| %0, |
| dense<[[3, 2, 1], [6, 5, 4]]> : tensor<2x3xi32> |
| ) : tensor<2x3xi32> |
| |
| return |
| } |
| |
| func.func @reverse_multi_dims() { |
| %input = util.unfoldable_constant dense<[[1, 2, 3], |
| [4, 5, 6]]> : tensor<2x3xi32> |
| |
| %init = tensor.empty() : tensor<2x3xi32> |
| %0 = iree_linalg_ext.reverse |
| dimensions(dense<[0, 1]> : tensor<2xi64>) |
| ins(%input : tensor<2x3xi32>) |
| outs(%init : tensor<2x3xi32>) : tensor<2x3xi32> |
| |
| check.expect_eq_const( |
| %0, |
| dense<[[6, 5, 4], [3, 2, 1]]> : tensor<2x3xi32> |
| ) : tensor<2x3xi32> |
| |
| return |
| } |