diff mbox series

[v2,2/9] RISC-V: Reorder insn cost match order to match corresponding expander match order

Message ID 20240827003710.1513605-3-patrick@rivosinc.com
State New
Headers show
Series RISC-V: Improve const vector costing and expansion | expand

Commit Message

Patrick O'Neill Aug. 27, 2024, 12:36 a.m. UTC
The corresponding expander (riscv-v.cc:expand_const_vector) matches
const_vec_duplicate_p before const_vec_series_p. Reorder to match this
behavior when calculating costs.

gcc/ChangeLog:

	* config/riscv/riscv.cc (riscv_const_insns): Relocate.

Signed-off-by: Patrick O'Neill <patrick@rivosinc.com>
---
Ack'd here: https://inbox.sourceware.org/gcc-patches/3a97eb17-32fe-4cf4-874e-5c4a707b2c27@gmail.com/
---
 gcc/config/riscv/riscv.cc | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

--
2.34.1

Comments

Jeff Law Aug. 27, 2024, 2:56 p.m. UTC | #1
On 8/26/24 6:36 PM, Patrick O'Neill wrote:
> The corresponding expander (riscv-v.cc:expand_const_vector) matches
> const_vec_duplicate_p before const_vec_series_p. Reorder to match this
> behavior when calculating costs.
> 
> gcc/ChangeLog:
> 
> 	* config/riscv/riscv.cc (riscv_const_insns): Relocate.
Already ACK'd.

jeff
Patrick O'Neill Aug. 27, 2024, 5:06 p.m. UTC | #2
On 8/27/24 07:56, Jeff Law wrote:
>
>
> On 8/26/24 6:36 PM, Patrick O'Neill wrote:
>> The corresponding expander (riscv-v.cc:expand_const_vector) matches
>> const_vec_duplicate_p before const_vec_series_p. Reorder to match this
>> behavior when calculating costs.
>>
>> gcc/ChangeLog:
>>
>>     * config/riscv/riscv.cc (riscv_const_insns): Relocate.
> Already ACK'd.
>
> jeff
>
Committed.
diff mbox series

Patch

diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
index 8538d405f50..640394e0cb8 100644
--- a/gcc/config/riscv/riscv.cc
+++ b/gcc/config/riscv/riscv.cc
@@ -2142,15 +2142,6 @@  riscv_const_insns (rtx x, bool allow_new_pseudos)
 	  ...etc.  */
 	if (riscv_v_ext_mode_p (GET_MODE (x)))
 	  {
-	    /* const series vector.  */
-	    rtx base, step;
-	    if (const_vec_series_p (x, &base, &step))
-	      {
-		/* This is not accurate, we will need to adapt the COST
-		 * accurately according to BASE && STEP.  */
-		return 1;
-	      }
-
 	    rtx elt;
 	    if (const_vec_duplicate_p (x, &elt))
 	      {
@@ -2186,6 +2177,15 @@  riscv_const_insns (rtx x, bool allow_new_pseudos)
 		      return 1 + 4; /*vmv.v.x + memory access.  */
 		  }
 	      }
+
+	    /* const series vector.  */
+	    rtx base, step;
+	    if (const_vec_series_p (x, &base, &step))
+	      {
+		/* This cost is not accurate, we will need to adapt the COST
+		   accurately according to BASE && STEP.  */
+		return 1;
+	      }
 	  }

 	/* TODO: We may support more const vector in the future.  */