https://github.com/nikic approved this pull request. LGTM Some of these could use CreateUnaryIntrinsic or CreateBinaryIntrinsic to avoid specifying the overload type, but this is an improvement in any case... https://github.com/llvm/llvm-project/pull/112706