LLVM transformation

Hi all,

I want to split a function into multiple functions in the IR file. Specifically, If there is a function that has many switch cases, I want add a new function for each switch case. I wonder if there is any transformation pass in llvm will do that? Do I have to write a new customized llvm transformation pass for this case? Appreciate your help. Thank.