| func.func @dynamic_update_slice_2x2() { | |
| %target = util.unfoldable_constant dense<2> : tensor<3x3xi32> | |
| %update = util.unfoldable_constant dense<1> : tensor<2x2xi32> | |
| %c0 = util.unfoldable_constant dense<0> : tensor<i32> | |
| %result = "stablehlo.dynamic_update_slice"(%target, %update, %c0, %c0) | |
| : (tensor<3x3xi32>, tensor<2x2xi32>, tensor<i32>, tensor<i32>) -> tensor<3x3xi32> | |
| check.expect_eq_const(%result, dense<[ | |
| [1, 1, 2], | |
| [1, 1, 2], | |
| [2, 2, 2]]> : tensor<3x3xi32>) : tensor<3x3xi32> | |
| return | |
| } | |
| func.func @dynamic_update_slice_1x3() { | |
| %target = util.unfoldable_constant dense<2> : tensor<3x3xi32> | |
| %update = util.unfoldable_constant dense<1> : tensor<1x3xi32> | |
| %c0 = util.unfoldable_constant dense<0> : tensor<i32> | |
| %c1 = util.unfoldable_constant dense<1> : tensor<i32> | |
| %result = "stablehlo.dynamic_update_slice"(%target, %update, %c1, %c0) | |
| : (tensor<3x3xi32>, tensor<1x3xi32>, tensor<i32>, tensor<i32>) -> tensor<3x3xi32> | |
| check.expect_eq_const(%result, dense<[ | |
| [2, 2, 2], | |
| [1, 1, 1], | |
| [2, 2, 2]]> : tensor<3x3xi32>) : tensor<3x3xi32> | |
| return | |
| } | |
| func.func @into_constant() { | |
| %update = util.unfoldable_constant dense<2> : tensor<1xi32> | |
| %target = stablehlo.constant dense<1> : tensor<4xi32> | |
| %index = stablehlo.constant dense<0> : tensor<i32> | |
| %result = "stablehlo.dynamic_update_slice"(%target, %update, %index) : (tensor<4xi32>, tensor<1xi32>, tensor<i32>) -> tensor<4xi32> | |
| check.expect_eq_const(%result, dense<[2, 1, 1, 1]> : tensor<4xi32>) : tensor<4xi32> | |
| return | |
| } |