blob: d5100686e04ed283f72b26b8ae6549d953b3fbf4 [file] [log] [blame]
// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// RUN: iree-run-mlir --target_backends=interpreter-bytecode %s --input_values="3x4xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s
// RUN: iree-run-mlir --target_backends=vulkan-spirv %s --input_values="3x4xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s
// CHECK-LABEL: EXEC @slice_whole_buffer
func @slice_whole_buffer(%arg : tensor<3x4xf32>) -> tensor<3x4xf32> {
%result = "xla_hlo.slice"(%arg) {start_indices = dense<[0, 0]> : tensor<2xi64>, limit_indices = dense<[3, 4]> : tensor<2xi64>, strides = dense<1> : tensor<2xi64>} : (tensor<3x4xf32>) -> tensor<3x4xf32>
return %result : tensor<3x4xf32>
}
// CHECK: 3x4xf32=[1 2 3 4][5 6 7 8][9 10 11 12]
// CHECK-LABEL: EXEC @slice_whole_stride
func @slice_whole_stride(%arg : tensor<3x4xf32>) -> tensor<1x4xf32> {
%result = "xla_hlo.slice"(%arg) {start_indices = dense<[1, 0]> : tensor<2xi64>, limit_indices = dense<[2, 4]> : tensor<2xi64>, strides = dense<1> : tensor<2xi64>} : (tensor<3x4xf32>) -> tensor<1x4xf32>
return %result : tensor<1x4xf32>
}
// CHECK: 1x4xf32=[5 6 7 8]
// CHECK-LABEL: EXEC @slice_stride_part
func @slice_stride_part(%arg : tensor<3x4xf32>) -> tensor<1x2xf32> {
%result = "xla_hlo.slice"(%arg) {start_indices = dense<[1, 1]> : tensor<2xi64>, limit_indices = dense<[2, 3]> : tensor<2xi64>, strides = dense<1> : tensor<2xi64>} : (tensor<3x4xf32>) -> tensor<1x2xf32>
return %result : tensor<1x2xf32>
}
// CHECK: 1x2xf32=[6 7]
// CHECK-LABEL: EXEC @slice_multi_stride
func @slice_multi_stride(%arg : tensor<3x4xf32>) -> tensor<2x4xf32> {
%result = "xla_hlo.slice"(%arg) {start_indices = dense<[1, 0]> : tensor<2xi64>, limit_indices = dense<[3, 4]> : tensor<2xi64>, strides = dense<1> : tensor<2xi64>} : (tensor<3x4xf32>) -> tensor<2x4xf32>
return %result : tensor<2x4xf32>
}
// CHECK: 2x4xf32=[5 6 7 8][9 10 11 12]