@llvm.annotation is supposed to be ignored by code generation and
optimization:
https://llvm.org/docs/LangRef.html#llvm-annotation-intrinsic
However BasicAA considers that it may write to memory, so loads cannot
be moved across annotations.
BasicAA already ignores llvm.assume for this purpose. This change adds
llvm.annotation, llvm.var.annotation and llvm.ptr.annotation.
Fixes PR49638.
Use switch (intrinsicCode) instead ifs?