//
// Copyright (C) 2025 Intel Corporation.
// SPDX-License-Identifier: Apache-2.0
//

#loc = loc(unknown)
module @dumpsubgraph {
  net.NetworkInfo entryPoint : @main inputsInfo : {
    DataInfo "Parameter_214" : tensor<1x768xf32> loc(#loc)
  } outputsInfo : {
    DataInfo "inner_h2" : tensor<1x768xf32> loc(#loc)
  } profilingOutputsInfo : {
  } loc(#loc)
  func.func @main(%arg0: tensor<1x768xf32> loc(unknown)) -> tensor<1x768xf32> {
    %cst = const.Declare tensor<3xsi64> = dense<[1, 1, 768]> : tensor<3xsi64> loc(#loc12)
    %0 = IE.Reshape(%arg0, %cst) : tensor<1x768xf32>, tensor<3xsi64> -> tensor<1x1x768xf32> loc(#loc13)
    %cst_0 = const.Declare tensor<1x1x768xf32> = dense<0.000000e+00> : tensor<1x1x768xf32> loc(#loc14)
    %cst_1 = const.Declare tensor<1xsi64> = dense<1> : tensor<1xsi64> loc(#loc15)
    %cst_2 = const.Declare tensor<1x2304x768xf32> = dense<0.000000e+00> : tensor<1x2304x768xf32> loc(#loc16)
    %cst_3 = const.Declare tensor<1x2304x768xf32> = dense<0.000000e+00> : tensor<1x2304x768xf32> loc(#loc17)
    %cst_4 = const.Declare tensor<1x3072xf32> = dense<0.000000e+00> : tensor<1x3072xf32> loc(#loc18)
    %middle_hidden_state, %output_hidden_state = IE.GRUSequence(%0, %cst_0, %cst_2, %cst_3, %cst_4) {clip = 0.000000e+00 : f64, direction = #IE.rnn_seq_direction<FORWARD>, hidden_size = 768 : i64, seq_length = 1 : i64, should_linear_before_reset} : tensor<1x1x768xf32>, tensor<1x1x768xf32>, tensor<1x2304x768xf32>, tensor<1x2304x768xf32>, tensor<1x3072xf32> -> tensor<1x1x1x768xf32>, tensor<1x1x768xf32> loc(#loc19)
    %cst_5 = const.Declare tensor<2xsi64> = dense<[1, 768]> : tensor<2xsi64> loc(#loc20)
    %1 = IE.Reshape(%middle_hidden_state, %cst_5) : tensor<1x1x1x768xf32>, tensor<2xsi64> -> tensor<1x768xf32> loc(#loc21)
    return %1 : tensor<1x768xf32> loc(#loc22)
  } loc(#loc)
} loc(#loc)
#loc1 = loc("Constant_1414")
#loc2 = loc("/Gru2/Unsqueeze")
#loc3 = loc("Transpose_147")
#loc4 = loc("Broadcast_143")
#loc5 = loc("onnx::GRU_206")
#loc6 = loc("onnx::GRU_207")
#loc7 = loc("Concat_153")
#loc8 = loc("GRUSequence_154")
#loc9 = loc("Constant_1418")
#loc10 = loc("inner_h2")
#loc11 = loc("output")
#loc12 = loc(fused<{name = "Constant_1414", type = "Constant"}>[#loc1])
#loc13 = loc(fused<{name = "/Gru2/Unsqueeze", type = "Reshape"}>[#loc2])
#loc14 = loc(fused<{name = "Transpose_147", type = "Constant"}>[#loc3])
#loc15 = loc(fused<{name = "Broadcast_143", type = "Constant"}>[#loc4])
#loc16 = loc(fused<{name = "onnx::GRU_206", type = "Constant"}>[#loc5])
#loc17 = loc(fused<{name = "onnx::GRU_207", type = "Constant"}>[#loc6])
#loc18 = loc(fused<{name = "Concat_153", type = "Constant"}>[#loc7])
#loc19 = loc(fused<{name = "GRUSequence_154", type = "GRUSequence"}>[#loc8])
#loc20 = loc(fused<{name = "Constant_1418", type = "Constant"}>[#loc9])
#loc21 = loc(fused<{name = "inner_h2", type = "Reshape"}>[#loc10])
#loc22 = loc(fused<{name = "output", type = "Output"}>[#loc11])
