RISC-V: Replace simm32_p with immediate_operand (Pmode)
authorJu-Zhe Zhong <juzhe.zhong@rivai.ai>
Tue, 14 Feb 2023 15:04:49 +0000 (23:04 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Fri, 17 Feb 2023 02:46:11 +0000 (10:46 +0800)
commitb9da8f063a6c65228172528d5cbf9eff511350da
tree7f15ce1033cf6faa108f05bb683e03648b895651
parent061b13ed014ba0b6891800a5c7f852bf58e4d856
RISC-V: Replace simm32_p with immediate_operand (Pmode)

simm32_p is used to check constant int value within 32-bit.
It's used in handling SEW = 64 in rv32 system since such constant int
value with 32-bit allow us use vx instruction.

The current implementation of simm32_p is quite ugly and now I figure
out immedate_operand (op, pmode) can help us to check whether the op
is a constant value within 32-bit.

I already have a bunch testcases to test SEW = 64 in rv32 system and
all regression tests are passed with this patch.

gcc/ChangeLog:

* config/riscv/riscv-protos.h (simm32_p): Remove.
* config/riscv/riscv-v.cc (simm32_p): Ditto.
* config/riscv/vector.md: Use immediate_operand
instead of riscv_vector::simm32_p.
gcc/config/riscv/riscv-protos.h
gcc/config/riscv/riscv-v.cc
gcc/config/riscv/vector.md