davemgreen wrote: I've changed this to work hopefully similar to how DAG works, where the return types are checked to makes sure they match and if so the target, through lowerCall checks the tailcall is valid for the arguments. https://github.com/llvm/llvm-project/pull/74929