RISC-V: Refactor vxrm_mode attr for type attr equal

This patch would like to refactor the vxrm_mode attr for duplicated
eq_attr condition. The common condition of attr is extraced to one
place instead of many places.

Signed-off-by: Pan Li <pan2.li@intel.com>

gcc/ChangeLog:

	* config/riscv/vector.md: Refactor the common condition.
This commit is contained in:
Pan Li 2023-06-30 19:12:22 +08:00
parent 4f8e31e01b
commit 1cde8e5d45

View file

@ -445,22 +445,29 @@
;; Defines rounding mode of an fixed-point operation.
(define_attr "vxrm_mode" "rnu,rne,rdn,rod,none"
(cond [(and (eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
(match_test "INTVAL(operands[9]) == riscv_vector::VXRM_RNU"))
(const_string "rnu")
(cond
[
(eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
(cond
[
(match_test "INTVAL (operands[9]) == riscv_vector::VXRM_RNU")
(const_string "rnu")
(and (eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
(match_test "INTVAL(operands[9]) == riscv_vector::VXRM_RNE"))
(const_string "rne")
(match_test "INTVAL (operands[9]) == riscv_vector::VXRM_RNE")
(const_string "rne")
(and (eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
(match_test "INTVAL(operands[9]) == riscv_vector::VXRM_RDN"))
(const_string "rdn")
(match_test "INTVAL (operands[9]) == riscv_vector::VXRM_RDN")
(const_string "rdn")
(and (eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
(match_test "INTVAL(operands[9]) == riscv_vector::VXRM_ROD"))
(const_string "rod")]
(const_string "none")))
(match_test "INTVAL (operands[9]) == riscv_vector::VXRM_ROD")
(const_string "rod")
]
(const_string "none")
)
]
(const_string "none")
)
)
;; Defines rounding mode of an floating-point operation.
(define_attr "frm_mode" "rne,rtz,rdn,rup,rmm,dyn,none"