LLVM does an amazing job of optimizing this. There are many opportunities to make it better, too, by preventing spilling where not required or only spilling/filling things when needed.
Still a few missing instructions/variants and other issues, but a big and valid LLVM module is being generated.
All empty, all ready to go!