Introduce _LIBCPP_ASSERTIONS_DISABLE_ASSUME which makes _LIBCPP_ASSERT
not call __builtin_assume when _LIBCPP_ENABLE_ASSERTIONS == 0.
Calling __builtin_assume was introduced in D122397.
__builtin_assume is generally supposed to improve optimizations, but can
cause regressions when LLVM has trouble handling the calls to
llvm.assume() (see comments in D122397).
I think the disable things flags are normally 'define it to disable this part', so the flag should be _LIBCPP_ASSERTIONS_DISABLE_ASSUME. That would allow you to remove this whole block and just have !defined(_LIBCPP_ASSERTIONS_DISABLE_ASSUME) in line 51.