llvm expects bit endianness to be identical to byte endianness: https://github.com/llvm/llvm-project/blob/18334a1c1afe1b8a83c2a6108413bc48d80107df/llvm/lib/Analysis/ConstantFolding.cpp#L218 this will cause problems with big-endian and SV declaring integer predicates to be little-endian (lsb0)
it may be easier for us to just switch predicate endian-ness on big-endian mode rather than add support to llvm for different bit/byte endianness which would require going through a lot of llvm's code.