From: Pan Li <pan2...@intel.com>

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...@intel.com>

gcc/ChangeLog:

        * config/riscv/vector.md: Refactor the common condition.
---
 gcc/config/riscv/vector.md | 39 ++++++++++++++++++++++----------------
 1 file changed, 23 insertions(+), 16 deletions(-)

diff --git a/gcc/config/riscv/vector.md b/gcc/config/riscv/vector.md
index 406f96439ec..ebb7648b4df 100644
--- a/gcc/config/riscv/vector.md
+++ b/gcc/config/riscv/vector.md
@@ -445,22 +445,29 @@ (define_attr "avl_type" ""
 ;; 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")
-
-        (and (eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
-             (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")
-
-        (and (eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
-             (match_test "INTVAL(operands[9]) == riscv_vector::VXRM_ROD"))
-        (const_string "rod")]
-        (const_string "none")))
+  (cond
+    [
+      (eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
+      (cond
+       [
+         (match_test "INTVAL (operands[9]) == riscv_vector::VXRM_RNU")
+         (const_string "rnu")
+
+         (match_test "INTVAL (operands[9]) == riscv_vector::VXRM_RNE")
+         (const_string "rne")
+
+         (match_test "INTVAL (operands[9]) == riscv_vector::VXRM_RDN")
+         (const_string "rdn")
+
+         (match_test "INTVAL (operands[9]) == riscv_vector::VXRM_ROD")
+         (const_string "rod")
+       ]
+       (const_string "none")
+      )
+    ]
+    (const_string "none")
+  )
+)
 
 ;; -----------------------------------------------------------------
 ;; ---- Miscellaneous Operations
-- 
2.34.1

Reply via email to