multiple tflite delegate support?
Hi @tensorbuffer ,

Could please provide any use case/notebook  for this specific requirement so that the team can carry out additional analysis. 

Thank You Hi, the use case is that we have a tf2 model, after convert to tflite, there's a quantize op at the begining and dequant op at the end. These two nodes can't be run on DSP if use API call, and they are not easily put on XNNPACK, while benchmark_model doesn't have this problem, it can auto assign XNNPACK delegate for those CPU operation. Hi @pkgoogle, 

Please take a look at this feature request.

Thank You Hi @tensorbuffer, If I'm understanding your request correctly, you wish to be able to have like a tower of delegates where if the situation is such if the top layer is unable to be served by that delegate it goes down to the next delegate and so on? You want this specifically with the c api? Can you provide an example code sample or API call or executable with expected arguments where you expect this to happen? Yes I want the C API to be able to handle that. Basically it should have the same behavior as benchmark_model, since we use that to benchmark latency during model development, afterwards in production we use C API to run the model. Currently benchmark_model can do hexagon and XNNPack delegates (xnnpack for those that hexagon not supported), but this is not the case for C API call, which results in latency increase in production.
I don't have example code, you can extend the current API as you wish. Hi @sirakiin, can you please take a look? Thanks.
### Issue type

Feature Request

### Have you reproduced the bug with TensorFlow Nightly?

No

### Source

source

### TensorFlow version

tf2.13

### Custom code

No

### OS platform and distribution

_No response_

### Mobile device

_No response_

### Python version

_No response_

### Bazel version

_No response_

### GCC/compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

Currently if you use C API, you can invoke various delegates like: TfLiteHexagonDelegateCreate() for Hexagon, TfLiteGpuDelegateV2Create() for GPU, TfLiteXNNPackDelegateOptionsDefault() for CPU.
Note you can only use one at a time. For example, if you have model that has an OP not supported by Hexagon, that OP will be run on CPU, without using XNNPack.
However this is not the case with benchmark_model, where it applies XNNPack delegate as default, e.g. you can get both hexagon and xnnpack in one run.

### Standalone code to reproduce the issue

```shell
I would like to see the C API incorporates benchmark_model code, or provide similar API (like create all delegates and pass down to a new API TfLiteDelegateCreate(<delegate>)
```


### Relevant log output

_No response_