diff --git a/tensorflow/compiler/mlir/lite/tests/const-fold.mlir b/tensorflow/compiler/mlir/lite/tests/const-fold.mlir index 4b8993e2b26..a8463d51c7e 100644 --- a/tensorflow/compiler/mlir/lite/tests/const-fold.mlir +++ b/tensorflow/compiler/mlir/lite/tests/const-fold.mlir @@ -8,13 +8,13 @@ func @add_float() -> (tensor, tensor<4xf32>, tensor<4xf32>, tensor<4xf32>, %2 = constant dense< 3.5> : tensor<4xf32> %3 = constant dense<-0.5> : tensor<4xf32> - // CHECK: %cst = constant dense<3.500000e+00> : tensor<4xf32> - // CHECK: %cst_0 = constant dense<-5.000000e-01> : tensor<4xf32> - // CHECK: %cst_1 = constant dense<6.000000e+00> : tensor - // CHECK: %cst_2 = constant dense<4.000000e+00> : tensor<4xf32> - // CHECK: %cst_3 = constant dense<5.000000e+00> : tensor<4xf32> - // CHECK: %cst_4 = constant dense<3.000000e+00> : tensor<4xf32> - // CHECK: %0 = tfl.add %cst, %cst_0 {fused_activation_function = "SIGN_BIT"} : tensor<4xf32> + // CHECK: %[[CST:.*]] = constant dense<3.500000e+00> : tensor<4xf32> + // CHECK: %[[CST_0:.*]] = constant dense<-5.000000e-01> : tensor<4xf32> + // CHECK: %[[CST_1:.*]] = constant dense<6.000000e+00> : tensor + // CHECK: %[[CST_2:.*]] = constant dense<4.000000e+00> : tensor<4xf32> + // CHECK: %[[CST_3:.*]] = constant dense<5.000000e+00> : tensor<4xf32> + // CHECK: %[[CST_4:.*]] = constant dense<3.000000e+00> : tensor<4xf32> + // CHECK: %0 = tfl.add %[[CST]], %[[CST_0]] {fused_activation_function = "SIGN_BIT"} : tensor<4xf32> %5 = "tfl.add"(%0, %1) {fused_activation_function = "NONE"} : (tensor< f32>, tensor< f32>) -> tensor< f32> %6 = "tfl.add"(%0, %3) {fused_activation_function = "NONE"} : (tensor< f32>, tensor<4xf32>) -> tensor<4xf32> @@ -33,10 +33,10 @@ func @add_int() -> (tensor, tensor<4xi32>, tensor<4xi32>, tensor<4xi32>) { %2 = constant dense< 4> : tensor<4xi32> %3 = constant dense<-2> : tensor<4xi32> - // CHECK: %cst = constant dense<9> : tensor - // CHECK: %cst_0 = constant dense<6> : tensor<4xi32> - // CHECK: %cst_1 = constant dense<5> : tensor<4xi32> - // CHECK: %cst_2 = constant dense<2> : tensor<4xi32> + // CHECK: %[[CST:.*]] = constant dense<9> : tensor + // CHECK: %[[CST_0:.*]] = constant dense<6> : tensor<4xi32> + // CHECK: %[[CST_1:.*]] = constant dense<5> : tensor<4xi32> + // CHECK: %[[CST_2:.*]] = constant dense<2> : tensor<4xi32> %5 = "tfl.add"(%0, %1) {fused_activation_function = "NONE"} : (tensor< i32>, tensor< i32>) -> tensor< i32> %6 = "tfl.add"(%0, %3) {fused_activation_function = "NONE"} : (tensor< i32>, tensor<4xi32>) -> tensor<4xi32> @@ -54,10 +54,10 @@ func @sub_float() -> (tensor, tensor<4xf32>, tensor<4xf32>, tensor<4xf32>) %2 = constant dense< 3.5> : tensor<4xf32> %3 = constant dense<-0.5> : tensor<4xf32> - // CHECK: %cst = constant dense<3.000000e+00> : tensor - // CHECK: %cst_0 = constant dense<5.000000e+00> : tensor<4xf32> - // CHECK: %cst_1 = constant dense<2.000000e+00> : tensor<4xf32> - // CHECK: %cst_2 = constant dense<4.000000e+00> : tensor<4xf32> + // CHECK: %[[CST:.*]] = constant dense<3.000000e+00> : tensor + // CHECK: %[[CST_0:.*]] = constant dense<5.000000e+00> : tensor<4xf32> + // CHECK: %[[CST_1:.*]] = constant dense<2.000000e+00> : tensor<4xf32> + // CHECK: %[[CST_2:.*]] = constant dense<4.000000e+00> : tensor<4xf32> %5 = "tfl.sub"(%0, %1) {fused_activation_function = "NONE"} : (tensor< f32>, tensor< f32>) -> tensor< f32> %6 = "tfl.sub"(%0, %3) {fused_activation_function = "NONE"} : (tensor< f32>, tensor<4xf32>) -> tensor<4xf32> @@ -75,10 +75,10 @@ func @sub_int() -> (tensor, tensor<4xi32>, tensor<4xi32>, tensor<4xi32>) { %2 = constant dense< 4> : tensor<4xi32> %3 = constant dense<-2> : tensor<4xi32> - // CHECK: %cst = constant dense<7> : tensor - // CHECK: %cst_0 = constant dense<10> : tensor<4xi32> - // CHECK: %cst_1 = constant dense<3> : tensor<4xi32> - // CHECK: %cst_2 = constant dense<6> : tensor<4xi32> + // CHECK: %[[CST:.*]] = constant dense<7> : tensor + // CHECK: %[[CST_0:.*]] = constant dense<10> : tensor<4xi32> + // CHECK: %[[CST_1:.*]] = constant dense<3> : tensor<4xi32> + // CHECK: %[[CST_2:.*]] = constant dense<6> : tensor<4xi32> %5 = "tfl.sub"(%0, %1) {fused_activation_function = "NONE"} : (tensor< i32>, tensor< i32>) -> tensor< i32> %6 = "tfl.sub"(%0, %3) {fused_activation_function = "NONE"} : (tensor< i32>, tensor<4xi32>) -> tensor<4xi32> @@ -96,10 +96,10 @@ func @mul_float() -> (tensor, tensor<4xf32>, tensor<4xf32>, tensor<4xf32>) %2 = constant dense< 3.5> : tensor<4xf32> %3 = constant dense<-0.5> : tensor<4xf32> - // CHECK: %cst = constant dense<6.750000e+00> : tensor - // CHECK: %cst_0 = constant dense<-2.250000e+00> : tensor<4xf32> - // CHECK: %cst_1 = constant dense<5.250000e+00> : tensor<4xf32> - // CHECK: %cst_2 = constant dense<-1.750000e+00> : tensor<4xf32> + // CHECK: %[[CST:.*]] = constant dense<6.750000e+00> : tensor + // CHECK: %[[CST_0:.*]] = constant dense<-2.250000e+00> : tensor<4xf32> + // CHECK: %[[CST_1:.*]] = constant dense<5.250000e+00> : tensor<4xf32> + // CHECK: %[[CST_2:.*]] = constant dense<-1.750000e+00> : tensor<4xf32> %5 = "tfl.mul"(%0, %1) {fused_activation_function = "NONE"} : (tensor< f32>, tensor< f32>) -> tensor< f32> %6 = "tfl.mul"(%0, %3) {fused_activation_function = "NONE"} : (tensor< f32>, tensor<4xf32>) -> tensor<4xf32> @@ -170,8 +170,8 @@ func @add_dense_splat_int() -> tensor<4xi32> { return %2 : tensor<4xi32> -// CHECK: %cst = constant dense<[-5, 4, 47, 105]> : tensor<4xi32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<[-5, 4, 47, 105]> : tensor<4xi32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @add_splat_dense_int @@ -183,8 +183,8 @@ func @add_splat_dense_int() -> tensor<4xi32> { return %2 : tensor<4xi32> -// CHECK: %cst = constant dense<[-5, 4, 47, 105]> : tensor<4xi32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<[-5, 4, 47, 105]> : tensor<4xi32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @add_dense_dense_int_same_shape @@ -196,8 +196,8 @@ func @add_dense_dense_int_same_shape() -> tensor<4xi32> { return %2 : tensor<4xi32> -// CHECK: %cst = constant dense<[5, 22, -2, 98]> : tensor<4xi32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<[5, 22, -2, 98]> : tensor<4xi32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @add_dense_dense_int_trailing_dim @@ -212,10 +212,10 @@ func @add_dense_dense_int_trailing_dim() -> (tensor<2x2xi32>, tensor<2x2x2xi32>, return %0, %1, %2 : tensor<2x2xi32>, tensor<2x2x2xi32>, tensor<2x2x2xi32> -// CHECK: %cst = constant dense<{{\[\[}}11, 22], [13, 24]]> : tensor<2x2xi32> -// CHECK: %cst_0 = constant dense<{{\[\[\[}}2, 3], [5, 6]], {{\[\[}}4, 5], [7, 8]]]> : tensor<2x2x2xi32> -// CHECK: %cst_1 = constant dense<{{\[\[\[}}11, 21], [12, 22]], {{\[\[}}13, 23], [14, 24]]]> : tensor<2x2x2xi32> -// CHECK: return %cst, %cst_0, %cst_1 +// CHECK: %[[CST:.*]] = constant dense<{{\[\[}}11, 22], [13, 24]]> : tensor<2x2xi32> +// CHECK: %[[CST_0:.*]] = constant dense<{{\[\[\[}}2, 3], [5, 6]], {{\[\[}}4, 5], [7, 8]]]> : tensor<2x2x2xi32> +// CHECK: %[[CST_1:.*]] = constant dense<{{\[\[\[}}11, 21], [12, 22]], {{\[\[}}13, 23], [14, 24]]]> : tensor<2x2x2xi32> +// CHECK: return %[[CST]], %[[CST_0]], %[[CST_1]] } // CHECK-LABEL: @add_dense_dense_int_mixing_1_n @@ -226,8 +226,8 @@ func @add_dense_dense_int_mixing_1_n() -> tensor<2x2xi32> { %0 = "tfl.add"(%cst_0, %cst_1) {fused_activation_function = "NONE"} : (tensor<1x2xi32>, tensor<2x1xi32>) -> tensor<2x2xi32> return %0 : tensor<2x2xi32> -// CHECK: %cst = constant dense<{{\[\[}}4, 5], [5, 6]]> : tensor<2x2xi32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<{{\[\[}}4, 5], [5, 6]]> : tensor<2x2xi32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @add_dense_splat_float @@ -239,8 +239,8 @@ func @add_dense_splat_float() -> tensor<4xf32> { return %2 : tensor<4xf32> -// CHECK: %cst = constant dense<[-6.500000e+00, 2.000000e+00, 4.550000e+01, 1.075000e+01]> : tensor<4xf32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<[-6.500000e+00, 2.000000e+00, 4.550000e+01, 1.075000e+01]> : tensor<4xf32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @add_splat_dense_float @@ -252,8 +252,8 @@ func @add_splat_dense_float() -> tensor<4xf32> { return %2 : tensor<4xf32> -// CHECK: %cst = constant dense<[-6.500000e+00, 2.000000e+00, 4.550000e+01, 1.075000e+01]> : tensor<4xf32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<[-6.500000e+00, 2.000000e+00, 4.550000e+01, 1.075000e+01]> : tensor<4xf32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @add_dense_dense_float_same_shape @@ -265,8 +265,8 @@ func @add_dense_dense_float_same_shape() -> (tensor<4xf32>) { return %2 : tensor<4xf32> -// CHECK: %cst = constant dense<[-8.89999961, 1.000000e+00, 3.800000e+01, 9.800000e+01]> : tensor<4xf32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<[-8.89999961, 1.000000e+00, 3.800000e+01, 9.800000e+01]> : tensor<4xf32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @add_dense_dense_float_trailing_dim @@ -281,10 +281,10 @@ func @add_dense_dense_float_trailing_dim() -> (tensor<2x2xf32>, tensor<2x2x2xf32 return %0, %1, %2 : tensor<2x2xf32>, tensor<2x2x2xf32>, tensor<2x2x2xf32> -// CHECK: %cst = constant dense<{{\[\[}}-4.500000e+00, -2.500000e+00], [8.500000e+00, -8.500000e+00]]> : tensor<2x2xf32> -// CHECK: %cst_0 = constant dense<{{\[\[\[}}-4.500000e+00, 2.500000e+00], [9.500000e+00, -2.500000e+00]], {{\[\[}}-2.500000e+00, 4.500000e+00], [1.150000e+01, -5.000000e-01]]]> : tensor<2x2x2xf32> -// CHECK: %cst_1 = constant dense<{{\[\[\[}}2.000000e+00, -3.000000e+00], [3.000000e+00, -2.000000e+00]], {{\[\[}}4.000000e+00, -1.000000e+00], [5.000000e+00, 0.000000e+00]]]> : tensor<2x2x2xf32> -// CHECK: return %cst, %cst_0, %cst_1 +// CHECK: %[[CST:.*]] = constant dense<{{\[\[}}-4.500000e+00, -2.500000e+00], [8.500000e+00, -8.500000e+00]]> : tensor<2x2xf32> +// CHECK: %[[CST_0:.*]] = constant dense<{{\[\[\[}}-4.500000e+00, 2.500000e+00], [9.500000e+00, -2.500000e+00]], {{\[\[}}-2.500000e+00, 4.500000e+00], [1.150000e+01, -5.000000e-01]]]> : tensor<2x2x2xf32> +// CHECK: %[[CST_1:.*]] = constant dense<{{\[\[\[}}2.000000e+00, -3.000000e+00], [3.000000e+00, -2.000000e+00]], {{\[\[}}4.000000e+00, -1.000000e+00], [5.000000e+00, 0.000000e+00]]]> : tensor<2x2x2xf32> +// CHECK: return %[[CST]], %[[CST_0]], %[[CST_1]] } // CHECK-LABEL: @add_dense_dense_float_mixfng_1_n @@ -296,24 +296,24 @@ func @add_dense_dense_float_mixfng_1_n() -> tensor<2x2xf32> { return %0 : tensor<2x2xf32> -// CHECK: %cst = constant dense<{{\[\[}}-1.500000e+00, -5.500000e+00], [5.500000e+00, 1.500000e+00]]> : tensor<2x2xf32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<{{\[\[}}-1.500000e+00, -5.500000e+00], [5.500000e+00, 1.500000e+00]]> : tensor<2x2xf32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @rank func @rank() -> tensor<1xi32> { %cst = constant dense<[[1], [2]]> : tensor<2x1xi32> - // CHECK: [[cst:%.*]] = constant dense<2> : tensor<1xi32> - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = constant dense<2> : tensor<1xi32> + // CHECK: return %[[CST]] %0 = "tfl.rank"(%cst) : (tensor<2x1xi32>) -> tensor<1xi32> return %0 : tensor<1xi32> } // CHECK-LABEL: @rank_input_known_rank func @rank_input_known_rank(%arg0 : tensor<2x1xi32>) -> tensor<1xi32> { - // CHECK: [[cst:%.*]] = constant dense<2> : tensor<1xi32> - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = constant dense<2> : tensor<1xi32> + // CHECK: return %[[CST]] %0 = "tfl.rank"(%arg0) : (tensor<2x1xi32>) -> tensor<1xi32> return %0 : tensor<1xi32> } @@ -323,8 +323,8 @@ func @reshape() -> tensor<4xi32> { %input = constant dense<[[1, 2], [3, 4]]> : tensor<2x2xi32> %shape = constant dense<[4]> : tensor<1xi32> - // CHECK: [[cst:%.*]] = constant dense<[1, 2, 3, 4]> : tensor<4xi32> - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = constant dense<[1, 2, 3, 4]> : tensor<4xi32> + // CHECK: return %[[CST]] %0 = "tfl.reshape"(%input, %shape) : (tensor<2x2xi32>, tensor<1xi32>) -> tensor<4xi32> return %0 : tensor<4xi32> } @@ -334,8 +334,8 @@ func @reshape_dynamic_output() -> tensor { %input = constant dense<[[1, 2], [3, 4]]> : tensor<2x2xi32> %shape = constant dense<[4]> : tensor<1xi32> - // CHECK: [[cst:%.*]] = "tfl.pseudo_const"() {value = dense<[1, 2, 3, 4]> : tensor<4xi32>} : () -> tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = "tfl.pseudo_const"() {value = dense<[1, 2, 3, 4]> : tensor<4xi32>} : () -> tensor + // CHECK: return %[[CST]] %0 = "tfl.reshape"(%input, %shape) : (tensor<2x2xi32>, tensor<1xi32>) -> tensor return %0 : tensor } @@ -343,8 +343,8 @@ func @reshape_dynamic_output() -> tensor { // CHECK-LABEL: @pseudo_const func @pseudo_const() -> tensor { - // CHECK: [[cst:%.*]] = constant dense<1> : tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = constant dense<1> : tensor + // CHECK: return %[[CST]] %0 = "tfl.pseudo_const"() {value = dense<1> : tensor} : () -> tensor return %0 : tensor } @@ -356,8 +356,8 @@ func @range_int() -> tensor { %cst_1 = constant dense<4> : tensor %cst_2 = constant dense<1> : tensor - // CHECK: [[cst:%.*]] = "tfl.pseudo_const"() {value = dense<[0, 1, 2, 3]> : tensor<4xi32>} : () -> tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = "tfl.pseudo_const"() {value = dense<[0, 1, 2, 3]> : tensor<4xi32>} : () -> tensor + // CHECK: return %[[CST]] %0 = "tfl.range"(%cst, %cst_1, %cst_2) : (tensor, tensor, tensor) -> tensor return %0 : tensor } @@ -368,8 +368,8 @@ func @range_float() -> tensor { %cst_1 = constant dense<4.0> : tensor %cst_2 = constant dense<1.0> : tensor - // CHECK: [[cst:%.*]] = "tfl.pseudo_const"() {value = dense<[0.000000e+00, 1.000000e+00, 2.000000e+00, 3.000000e+00]> : tensor<4xf32>} : () -> tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = "tfl.pseudo_const"() {value = dense<[0.000000e+00, 1.000000e+00, 2.000000e+00, 3.000000e+00]> : tensor<4xf32>} : () -> tensor + // CHECK: return %[[CST]] %0 = "tfl.range"(%cst, %cst_1, %cst_2) : (tensor, tensor, tensor) -> tensor return %0 : tensor } @@ -381,8 +381,8 @@ func @range_float_neg_delta() -> tensor { %cst_1 = constant dense<-4.0> : tensor %cst_2 = constant dense<-1.0> : tensor - // CHECK: [[cst:%.*]] = "tfl.pseudo_const"() {value = dense<[0.000000e+00, -1.000000e+00, -2.000000e+00, -3.000000e+00]> : tensor<4xf32>} : () -> tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = "tfl.pseudo_const"() {value = dense<[0.000000e+00, -1.000000e+00, -2.000000e+00, -3.000000e+00]> : tensor<4xf32>} : () -> tensor + // CHECK: return %[[CST]] %0 = "tfl.range"(%cst, %cst_1, %cst_2) : (tensor, tensor, tensor) -> tensor return %0 : tensor } @@ -393,8 +393,8 @@ func @range_float_nonzero_base() -> tensor { %cst_1 = constant dense<7.0> : tensor %cst_2 = constant dense<1.5> : tensor - // CHECK: [[cst:%.*]] = "tfl.pseudo_const"() {value = dense<[2.000000e+00, 3.500000e+00, 5.000000e+00, 6.500000e+00]> : tensor<4xf32>} : () -> tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = "tfl.pseudo_const"() {value = dense<[2.000000e+00, 3.500000e+00, 5.000000e+00, 6.500000e+00]> : tensor<4xf32>} : () -> tensor + // CHECK: return %[[CST]] %0 = "tfl.range"(%cst, %cst_1, %cst_2) : (tensor, tensor, tensor) -> tensor return %0 : tensor } @@ -414,8 +414,8 @@ func @transpose_1d() -> tensor<3xi32> { %cst = constant dense<[1, 2, 3]> : tensor<3xi32> %cst_perm = constant dense<0> : tensor<1xi32> - // CHECK: [[cst:%.*]] = constant dense<{{\[}}1, 2, 3]> : tensor<3xi32> - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = constant dense<{{\[}}1, 2, 3]> : tensor<3xi32> + // CHECK: return %[[CST]] %0 = "tfl.transpose"(%cst, %cst_perm) : (tensor<3xi32>, tensor<1xi32>) -> tensor<3xi32> return %0 : tensor<3xi32> } @@ -425,8 +425,8 @@ func @transpose_dynamic() -> tensor { %cst = constant dense<[1, 2, 3]> : tensor<3xi32> %cst_perm = constant dense<0> : tensor<1xi32> - // CHECK: [[cst:%.*]] = "tfl.pseudo_const"() {value = dense<{{\[}}1, 2, 3]> : tensor<3xi32>} : () -> tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = "tfl.pseudo_const"() {value = dense<{{\[}}1, 2, 3]> : tensor<3xi32>} : () -> tensor + // CHECK: return %[[CST]] %0 = "tfl.transpose"(%cst, %cst_perm) : (tensor<3xi32>, tensor<1xi32>) -> tensor return %0 : tensor } @@ -436,8 +436,8 @@ func @transpose_2d() -> tensor<2x2xi32> { %cst = constant dense<[[0, 1], [2, 3]]> : tensor<2x2xi32> %cst_perm = constant dense<[1, 0]> : tensor<2xi32> - // CHECK: [[cst:%.*]] = constant dense<{{\[\[}}0, 2], {{\[}}1, 3]]> : tensor<2x2xi32> - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = constant dense<{{\[\[}}0, 2], {{\[}}1, 3]]> : tensor<2x2xi32> + // CHECK: return %[[CST]] %0 = "tfl.transpose"(%cst, %cst_perm) : (tensor<2x2xi32>, tensor<2xi32>) -> tensor<2x2xi32> return %0 : tensor<2x2xi32> } @@ -447,8 +447,8 @@ func @transpose_2d_identity() -> tensor<2x2xi32> { %cst = constant dense<[[0, 1], [2, 3]]> : tensor<2x2xi32> %cst_perm = constant dense<[0, 1]> : tensor<2xi32> - // CHECK: [[cst:%.*]] = constant dense<{{\[\[}}0, 1], {{\[}}2, 3]]> : tensor<2x2xi32> - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = constant dense<{{\[\[}}0, 1], {{\[}}2, 3]]> : tensor<2x2xi32> + // CHECK: return %[[CST]] %0 = "tfl.transpose"(%cst, %cst_perm) : (tensor<2x2xi32>, tensor<2xi32>) -> tensor<2x2xi32> return %0 : tensor<2x2xi32> } @@ -460,8 +460,8 @@ func @transpose_3d() -> tensor<4x2x3xi32> { %cst = constant dense<[[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]> : tensor<2x3x4xi32> %cst_perm = constant dense<[2, 0, 1]> : tensor<3xi32> - // CHECK: [[cst:%.*]] = constant dense<{{\[\[\[}}0, 4, 8], {{\[}}12, 16, 20]], {{\[\[}}1, 5, 9], {{\[}}13, 17, 21]], {{\[\[}}2, 6, 10], {{\[}}14, 18, 22]], {{\[\[}}3, 7, 11], {{\[}}15, 19, 23]]]> : tensor<4x2x3xi32> - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = constant dense<{{\[\[\[}}0, 4, 8], {{\[}}12, 16, 20]], {{\[\[}}1, 5, 9], {{\[}}13, 17, 21]], {{\[\[}}2, 6, 10], {{\[}}14, 18, 22]], {{\[\[}}3, 7, 11], {{\[}}15, 19, 23]]]> : tensor<4x2x3xi32> + // CHECK: return %[[CST]] %0 = "tfl.transpose"(%cst, %cst_perm) : (tensor<2x3x4xi32>, tensor<3xi32>) -> tensor<4x2x3xi32> return %0 : tensor<4x2x3xi32> } @@ -473,8 +473,8 @@ func @ConstantFoldBinaryOpDynamicOutput() -> tensor { %87 = "tfl.sub"(%cst_0, %cst) {fused_activation_function = "NONE"} : (tensor, tensor) -> tensor return %87 : tensor - // CHECK: [[cst:%.*]] = "tfl.pseudo_const"() {value = dense<[-5, 0]> : tensor<2xi32>} : () -> tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = "tfl.pseudo_const"() {value = dense<[-5, 0]> : tensor<2xi32>} : () -> tensor + // CHECK: return %[[CST]] } // CHECK-LABEL: @add_dense_dense_int_same_shape_dynamic @@ -486,8 +486,8 @@ func @add_dense_dense_int_same_shape_dynamic() -> tensor { return %2 : tensor - // CHECK: [[cst:%.*]] = "tfl.pseudo_const"() {value = dense<[5, 22, -2, 98]> : tensor<4xi32>} : () -> tensor - // CHECK: return [[cst]] + // CHECK: %[[CST:.*]] = "tfl.pseudo_const"() {value = dense<[5, 22, -2, 98]> : tensor<4xi32>} : () -> tensor + // CHECK: return %[[CST]] } // CHECK-LABEL: @concat_2_tensors_1_empty @@ -497,8 +497,8 @@ func @concat_2_tensors_1_empty() -> tensor<2xi32> { %3 = "tfl.concatenation"(%1, %2) {axis = 0 : i32, fused_activation_function = "NONE"} : (tensor<2xi32>, tensor<0xi32>) -> tensor<2xi32> return %3 : tensor<2xi32> - // CHECK: [[cst:%.*]] = constant dense<1> : tensor<2xi32> - // CHECK: return [[cst]] : tensor<2xi32> + // CHECK: %[[CST:.*]] = constant dense<1> : tensor<2xi32> + // CHECK: return %[[CST]] : tensor<2xi32> } // CHECK-LABEL: @concat_3_tensors_1_empty @@ -509,7 +509,7 @@ func @concat_3_tensors_1_empty() -> tensor { %3 = "tfl.concatenation"(%0, %1, %2) {axis = 0 : i32, fused_activation_function = "NONE"} : (tensor<2xi32>, tensor<2xi32>, tensor<0xi32>) -> tensor return %3 : tensor - // CHECK: %0 = "tfl.concatenation"(%cst, %cst) {axis = 0 : i32, fused_activation_function = "NONE"} + // CHECK: %0 = "tfl.concatenation"(%[[CST]], %[[CST]]) {axis = 0 : i32, fused_activation_function = "NONE"} // CHECK: return %0 : tensor } @@ -520,10 +520,10 @@ func @concatConstantTensorsFirstDim() -> tensor<2x2x3xi32> { %0 = "tfl.concatenation"(%cst_0, %cst_1) {axis = 0 : i32, fused_activation_function = "NONE"} : (tensor<1x2x3xi32>, tensor<1x2x3xi32>) -> tensor<2x2x3xi32> return %0 : tensor<2x2x3xi32> - // CHECK: [[cst:%.*]] = constant dense<[{{\[}}{{\[}}0, 0, 0], {{\[}}0, 0, 0]], {{\[}}{{\[}}1, 1, 1], {{\[}}1, 1, 1]]]> : tensor<2x2x3xi32> + // CHECK: %[[CST:.*]] = constant dense<[{{\[}}{{\[}}0, 0, 0], {{\[}}0, 0, 0]], {{\[}}{{\[}}1, 1, 1], {{\[}}1, 1, 1]]]> : tensor<2x2x3xi32> // CHECK-NOT: constant-dense // CHECK-NOT: "tfl.concatenation" - // CHECK: return [[cst]] + // CHECK: return %[[CST]] } // CHECK-LABEL: @concatConstantTensorsMiddleDim @@ -533,10 +533,10 @@ func @concatConstantTensorsMiddleDim() -> tensor<1x4x3xi32> { %0 = "tfl.concatenation"(%cst_0, %cst_1) {axis = 1 : i32, fused_activation_function = "NONE"} : (tensor<1x2x3xi32>, tensor<1x2x3xi32>) -> tensor<1x4x3xi32> return %0 : tensor<1x4x3xi32> - // CHECK: [[cst:%.*]] = constant dense<[{{\[}}{{\[}}0, 0, 0], {{\[}}0, 0, 0], {{\[}}1, 1, 1], {{\[}}1, 1, 1]]]> : tensor<1x4x3xi32> + // CHECK: %[[CST:.*]] = constant dense<[{{\[}}{{\[}}0, 0, 0], {{\[}}0, 0, 0], {{\[}}1, 1, 1], {{\[}}1, 1, 1]]]> : tensor<1x4x3xi32> // CHECK-NOT: constant-dense // CHECK-NOT: "tfl.concatenation" - // CHECK: return [[cst]] + // CHECK: return %[[CST]] } // CHECK-LABEL: @concatConstantTensorsLastDim @@ -546,10 +546,10 @@ func @concatConstantTensorsLastDim() -> tensor<1x2x6xi32> { %0 = "tfl.concatenation"(%cst_0, %cst_1) {axis = 2 : i32, fused_activation_function = "NONE"} : (tensor<1x2x3xi32>, tensor<1x2x3xi32>) -> tensor<1x2x6xi32> return %0 : tensor<1x2x6xi32> - // CHECK: [[cst:%.*]] = constant dense<[{{\[}}{{\[}}0, 0, 0, 1, 1, 1], {{\[}}0, 0, 0, 1, 1, 1]]]> : tensor<1x2x6xi32> + // CHECK: %[[CST:.*]] = constant dense<[{{\[}}{{\[}}0, 0, 0, 1, 1, 1], {{\[}}0, 0, 0, 1, 1, 1]]]> : tensor<1x2x6xi32> // CHECK-NOT: constant-dense // CHECK-NOT: "tfl.concatenation" - // CHECK: return [[cst]] + // CHECK: return %[[CST]] } // CHECK-LABEL: @div_dense_dense_float_mixfng_1_n @@ -561,8 +561,8 @@ func @div_dense_dense_float_mixfng_1_n() -> tensor<2x2xf32> { return %0 : tensor<2x2xf32> -// CHECK: %cst = constant dense<{{\[\[}}-5.000000e-01, 0.833333313], [3.750000e-01, -6.250000e-01]]> : tensor<2x2xf32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<{{\[\[}}-5.000000e-01, 0.833333313], [3.750000e-01, -6.250000e-01]]> : tensor<2x2xf32> +// CHECK: return %[[CST]] } // CHECK-LABEL: @div_dense_different_rank @@ -574,6 +574,6 @@ func @div_dense_different_rank() -> tensor<1x2x2xf32> { return %0 : tensor<1x2x2xf32> -// CHECK: %cst = constant dense<[{{\[}}{{\[}}5.000000e-01, 0.333333343], [1.000000e+00, 0.666666686]]]> : tensor<1x2x2xf32> -// CHECK: return %cst +// CHECK: %[[CST:.*]] = constant dense<[{{\[}}{{\[}}5.000000e-01, 0.333333343], [1.000000e+00, 0.666666686]]]> : tensor<1x2x2xf32> +// CHECK: return %[[CST]] }