// The following ops are sampled from mobile_bert
// https://github.com/iree-org/iree/blob/main/integrations/tensorflow/e2e/mobile_bert_squad_test.py

func.func @dot_general_4x384x32x384() -> tensor<4x384x384xf32> {
    %lhs = util.unfoldable_constant dense<1.0> : tensor<4x384x32xf32>
    %rhs = util.unfoldable_constant dense<1.0> : tensor<4x32x384xf32>
    %0 = "mhlo.dot_general"(%lhs, %rhs) {
        dot_dimension_numbers = #mhlo.dot<
            lhs_batching_dimensions = [0],
            lhs_contracting_dimensions = [2],
            rhs_batching_dimensions = [0],
            rhs_contracting_dimensions = [1],
        >,
        precision_config = [#mhlo<precision DEFAULT>, #mhlo<precision DEFAULT>]
    } : (tensor<4x384x32xf32>, tensor<4x32x384xf32>) -> tensor<4x384x384xf32>
    return %0 : tensor<4x384x384xf32>
}

func.func @dot_general_4x384x384x32() -> tensor<4x384x32xf32> {
    %lhs = util.unfoldable_constant dense<1.0> : tensor<4x384x384xf32>
    %rhs = util.unfoldable_constant dense<1.0> : tensor<4x384x32xf32>
    %0 = "mhlo.dot_general"(%lhs, %rhs) {
        dot_dimension_numbers = #mhlo.dot<
            lhs_batching_dimensions = [0],
            lhs_contracting_dimensions = [2],
            rhs_batching_dimensions = [0],
            rhs_contracting_dimensions = [1],
        >,
        precision_config = [#mhlo<precision DEFAULT>, #mhlo<precision DEFAULT>]
    } : (tensor<4x384x384xf32>, tensor<4x384x32xf32>) -> tensor<4x384x32xf32>
    return %0 : tensor<4x384x32xf32>
}
