TF Lite produces wrong graph when tensor broadcasting exists 
Hi @YaoJiayi 

I was able to reproduce the issue.  Seems like broadcasting to shape [2,1] does gives the intended result.

Please find the gist [here](https://colab.research.google.com/gist/pjpratik/1be8972c67d458ffa1d6eaa8943618b8/61150.ipynb).

@pkgoogle Can you check this issue?

Thanks. I was able to reproduce with tf-nightly as well.

Hi @miaout17, this is similar to https://github.com/tensorflow/tensorflow/issues/60929, can you please take a look? Thanks!
### 1. System information

- OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 20.04
- TensorFlow installation (pip package or built from source): pip
- TensorFlow library (version, if pip package or github SHA, if built from source): 2.14.0-dev20230701

### 2. Code
This is the minimized code to reproduce the issue:
```python
import tensorflow as tf
import numpy as np
input_shape = [2, 2]
x1 = tf.constant([[0., 0.], [0., 0.]], shape=input_shape)

class Model(tf.keras.Model):

  def __init__(self):
    super(Model, self).__init__()
    self.w1 = tf.Variable([[0.], [1.]])
    self.m1 = tf.Variable([[1.], [1.]])
  @tf.function(input_signature=[tf.TensorSpec(x1.shape, x1.dtype)])
  def call(self, x1):
    x2 = tf.constant([1.], shape=[1])
    x3 = x1 + x2 #broadcast
    return tf.matmul(x3, self.w1) + self.m1

m = Model()
expected_value = m(x1)
print(expected_value.numpy())

converter = tf.lite.TFLiteConverter.from_keras_model(m)
tflite_model = converter.convert()

def _evaluateTFLiteModel(tflite_model, input_data):
    interpreter = tf.lite.Interpreter(model_content=tflite_model)
    interpreter.allocate_tensors()
    input_details = interpreter.get_input_details()
    output_details = interpreter.get_output_details()

    for i in range(len(input_data)):
        interpreter.set_tensor(input_details[i]['index'], input_data[i])
    interpreter.invoke()
    output_data = [interpreter.get_tensor(output_details[i]['index'])
                   for i in range(len(output_details))]
    return output_data


actual_value = _evaluateTFLiteModel(tflite_model,[x1])
print(actual_value[0])
tf.lite.experimental.Analyzer.analyze(model_content=tflite_model)
```
### 3. Failure after conversion
Output:
```
Keras mode output:  [[2.] [2.]]
Lite mode output:  [[1.] [1.]]
```
Lite IR:
```
Subgraph#0 main(T#0) -> [T#3]
  Op#0 FULLY_CONNECTED(T#0, T#2, T#1) -> [T#3]

Tensors of Subgraph#0
  T#0(serving_default_args_0:0) shape:[2, 2], type:FLOAT32
  T#1(Const) shape:[1], type:FLOAT32 RO 4 bytes, buffer: 2, data:[1]
  T#2(MatMul) shape:[1, 2], type:FLOAT32 RO 8 bytes, buffer: 3, data:[0, 1]
  T#3(StatefulPartitionedCall:0) shape:[2, 1], type:FLOAT32

```
Model produces wrong results:
- Using ```tf.lite.experimental.Analyzer.analyze```, we can see the bias (```T#1```) equals to [1]. However, the correct bias should be [2].

