GCC seperates the __riscv_float_abi_* macros and the
__riscv_abi_rve macro. If the chosen abi is ilp32e, `gcc -march=rv32i
-mabi=ilp32i -E -dM` shows that both __riscv_float_abi_soft and
__riscv_abi_rve are set.
This patch corrects the compiler logic around these defines.
At the moment, this patch will not change clang's behaviour, because we do not
accept the ilp32e abi yet.