Add LoongArch64 linux target specifics to Target.cpp which is similar to
RISCV-64 in D136547.
For LoongArch, a complex floating-point number, or a structure
containing just one complex floating-point number, is passed as though
it were a structure containing two floating-point reals.
I believe the lifetime of the underlying array for {eleTy, eleTy} is not extended by range, so the use of range below is referencing a dangling reference. See TypeRange related changes in https://reviews.llvm.org/rGff794116f9815979f9a3a1195aff9be49334da7a#change-eNCIp5atpdz4 - they were done to avoid failures that were only reproducible in Windows ARM buildbot. If you do not want to deal with flaky memory issues, I would suggest using mlir::TypeRange{eleTy, eleTy} directly as the call argument.