blob: b7d6c384a810fe4ae7d22557b7c06d651e49db05 [file] [log] [blame]
// RUN: iree-run-mlir -iree-hal-target-backends=vmla %s | IreeFileCheck %s
// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @broadcast_2D_3D
func @broadcast_2D_3D() -> tensor<3x2x4xi32> {
%input = iree.unfoldable_constant dense<[[1, 2, 3, 4],
[5, 6, 7, 8]]> : tensor<2x4xi32>
%0 = "xla_hlo.broadcast"(%input) {broadcast_sizes = dense<[3]> : tensor<1xi64>} : (tensor<2x4xi32>) -> tensor<3x2x4xi32>
return %0 : tensor<3x2x4xi32>
}
// CHECK: 3x2x4xi32=[
// CHECK-SAME: [1 2 3 4]
// CHECK-SAME: [5 6 7 8]
// CHECK-SAME: ][
// CHECK-SAME: [1 2 3 4]
// CHECK-SAME: [5 6 7 8]
// CHECK-SAME: ][
// CHECK-SAME: [1 2 3 4]
// CHECK-SAME: [5 6 7 8]
// CHECK-SAME: ]
// -----
// CHECK-LABEL: EXEC @broadcast_in_dim_2D_3D
func @broadcast_in_dim_2D_3D() -> tensor<3x2x4xi32> {
%input = iree.unfoldable_constant dense<[[1, 2, 3, 4],
[5, 6, 7, 8]]> : tensor<2x4xi32>
%0 = "xla_hlo.broadcast_in_dim"(%input) {broadcast_dimensions = dense<[1, 2]> : tensor<2xi64>} : (tensor<2x4xi32>) -> tensor<3x2x4xi32>
return %0 : tensor<3x2x4xi32>
}
// CHECK: 3x2x4xi32=[
// CHECK-SAME: [1 2 3 4]
// CHECK-SAME: [5 6 7 8]
// CHECK-SAME: ][
// CHECK-SAME: [1 2 3 4]
// CHECK-SAME: [5 6 7 8]
// CHECK-SAME: ][
// CHECK-SAME: [1 2 3 4]
// CHECK-SAME: [5 6 7 8]
// CHECK-SAME: ]
// -----
// CHECK-LABEL: EXEC @broadcast_3D_scalar
func @broadcast_3D_scalar() -> tensor<3x2x4xi32> {
%input = iree.unfoldable_constant dense<42> : tensor<i32>
%0 = "xla_hlo.broadcast"(%input) {broadcast_sizes = dense<[3, 2, 4]> : tensor<3xi64>} : (tensor<i32>) -> tensor<3x2x4xi32>
return %0 : tensor<3x2x4xi32>
}
// CHECK: 3x2x4xi32=[
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: ][
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: ][
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: ]
// -----
// CHECK-LABEL: EXEC @broadcast_in_dim_3D_scalar
func @broadcast_in_dim_3D_scalar() -> tensor<3x2x4xi32> {
%input = iree.unfoldable_constant dense<42> : tensor<i32>
%0 = "xla_hlo.broadcast_in_dim"(%input) : (tensor<i32>) -> tensor<3x2x4xi32>
return %0 : tensor<3x2x4xi32>
}
// CHECK: 3x2x4xi32=[
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: ][
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: ][
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: [42 42 42 42]
// CHECK-SAME: ]