LLVM's undef value can have surprising behaviour and even inhibit useful optimisations! https://www.playingwithpointers.com/problem-with-undef.html