aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPan Li <pan2.li@intel.com>2024-04-22 20:44:38 +0800
committerPan Li <pan2.li@intel.com>2024-04-22 20:44:38 +0800
commitb78c88438cf3672987736edc013ffc0b20e879f7 (patch)
treeb65c5a485f98afe7a9306dcf232f52411955353f
parent6b5248d15c6d10325c6cbb92a0e0a9eb04e3f122 (diff)
downloadgcc-b78c88438cf3672987736edc013ffc0b20e879f7.zip
gcc-b78c88438cf3672987736edc013ffc0b20e879f7.tar.gz
gcc-b78c88438cf3672987736edc013ffc0b20e879f7.tar.bz2
Revert "RISC-V: Robostify the W43, W86, W87 constraint enabled attribute"
This reverts commit d3544cea63d0a642b6357a7be55986f5562beaa0.
-rw-r--r--gcc/config/riscv/riscv.md19
1 files changed, 2 insertions, 17 deletions
diff --git a/gcc/config/riscv/riscv.md b/gcc/config/riscv/riscv.md
index f092839..3628e22 100644
--- a/gcc/config/riscv/riscv.md
+++ b/gcc/config/riscv/riscv.md
@@ -552,28 +552,13 @@
(match_test "riscv_get_v_regno_alignment (GET_MODE (operands[0])) != 2"))
(const_string "no")
- (and (eq_attr "group_overlap" "W42")
+ (and (eq_attr "group_overlap" "W42,W43")
(match_test "riscv_get_v_regno_alignment (GET_MODE (operands[0])) != 4"))
(const_string "no")
- (and (eq_attr "group_overlap" "W84")
+ (and (eq_attr "group_overlap" "W84,W86,W87")
(match_test "riscv_get_v_regno_alignment (GET_MODE (operands[0])) != 8"))
(const_string "no")
-
- ;; According to RVV ISA:
- ;; The destination EEW is greater than the source EEW, the source EMUL is at least 1,
- ;; and the overlap is in the highest-numbered part of the destination register group
- ;; (e.g., when LMUL=8, vzext.vf4 v0, v6 is legal, but a source of v0, v2, or v4 is not).
- ;; So the source operand should have LMUL >= 1.
- (and (eq_attr "group_overlap" "W43")
- (match_test "riscv_get_v_regno_alignment (GET_MODE (operands[0])) != 4
- && riscv_get_v_regno_alignment (GET_MODE (operands[3])) >= 1"))
- (const_string "no")
-
- (and (eq_attr "group_overlap" "W86,W87")
- (match_test "riscv_get_v_regno_alignment (GET_MODE (operands[0])) != 8
- && riscv_get_v_regno_alignment (GET_MODE (operands[3])) >= 1"))
- (const_string "no")
]
(const_string "yes")))