https://llvm.org/docs/LangRef.html#volatile-memory-accesses:
> Volatile operations are permitted to trap. The compiler may not assume that execution will continue after a volatile operation.