https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50883
--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Earnshaw from comment #9) > Part of the problem here is that the gimple expansion does not see the > argument unpacking or understand how the parameters are passed; so this is > only exposed after lowering to RTL and we are then reliant on the less > powerful RTL optimations to get good code. Right, i was thinking about how we expose so of it like having a late pass which does the splitting if it is possible. This is part of the reason why I created the meta bug to record all of these issues in one place to make it easier to start working on a pass like that (maybe for gcc 13 but I have so much stuff on my plate right now).