Currently ApplyReloctions() deals with different archs' relocation types
together (in a single switch() {..}). I think it is incorrect because
different relocation types of different archs may have same enum values.
For example:
R_LARCH_32 and R_X86_64_64 are both 1;
R_LARCH_64 and R_X86_64_PC32 are both 2.
This patch handles each arch in seperate switch() to solve the enum
values conflict issue.
And a new test is added for LoongArch64.
Should this be || not &&?