llvmpipe: fix illegal instruction bug on loongarch LA464
This MR adds util_get_cpu_caps to get lsx and lasx vector features from current os. LSX and LASX are fully supported on LLVM18 and are not supported on LLVM16, LLVM17 upstream has the problem. So we use its on llvm18.
When use LA464(3A5000 pc), LLVM18 and kernel(which not supports lsx/lasx), it will get a illegal instruction error. LA464 will return LA464 and LA664 will return a generic when calling getHostCPUName(). Return LA464 name will add all feature(+f,+d,+lsx,+lasx,lvz) by default and generate vector instruction, generic will add null. Hence we use util_get_cpu_caps to judge if kernel supports lsx/lasx or not.
Depends on: !30197 (merged)
Signed-off-by: zhaojiale zhaojiale@loongson.cn