new moved from intrinsic to standard library, dropped arithmetic constant folder as it is only invoked for scalars and LLVM can handle this situation