[02/11,v2] arc: Remove define_insn_and_split *bbit_di

Message ID c09e5fa0-02cb-0d0d-07ed-f291f30b064a@linux.ibm.com
State New
Headers show
Series
  • Untitled series #38506
Related show

Commit Message

Richard Biener via Gcc-patches June 2, 2021, 7:43 a.m.
Hi Claudiu,

on 2021/6/2 下午3:12, Claudiu Zissulescu wrote:
> Hi Kewen,

> 

> Maybe it is best just to remove the pattern entirely, I couldn't exercise it myself. I was secretly hopping someone could do it.

> Please can you submit a patch which removes it if it is not too much trouble?

> 


The patch v2 has been attached which removes define_insn_and_split "*bbit_di" as you suggested.

Does it look good to you?

BR,
Kewen
-----
gcc/ChangeLog:

	* config/arc/arc.md (*bbit_di): Remove.

Comments

Richard Biener via Gcc-patches June 2, 2021, 8:33 a.m. | #1
Looks good :) You can go ahead and commit it.

Thank you for your contribution,
Claudiu
________________________________
From: Kewen.Lin <linkw@linux.ibm.com>

Sent: Wednesday, June 2, 2021 10:43 AM
To: Claudiu Zissulescu <claziss@synopsys.com>
Cc: gnu@amylaar.uk <gnu@amylaar.uk>; andrew.burgess@embecosm.com <andrew.burgess@embecosm.com>; gcc-patches@gcc.gnu.org <gcc-patches@gcc.gnu.org>
Subject: [PATCH 02/11 v2] arc: Remove define_insn_and_split *bbit_di

Hi Claudiu,

on 2021/6/2 下午3:12, Claudiu Zissulescu wrote:
> Hi Kewen,

>

> Maybe it is best just to remove the pattern entirely, I couldn't exercise it myself. I was secretly hopping someone could do it.

> Please can you submit a patch which removes it if it is not too much trouble?

>


The patch v2 has been attached which removes define_insn_and_split "*bbit_di" as you suggested.

Does it look good to you?

BR,
Kewen
-----
gcc/ChangeLog:

        * config/arc/arc.md (*bbit_di): Remove.

Patch

diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
index b6f2d8e28be..a67bb581003 100644
--- a/gcc/config/arc/arc.md
+++ b/gcc/config/arc/arc.md
@@ -5016,34 +5016,6 @@  (define_insn "*bbit"
 	(if_then_else (match_test "get_attr_length (insn) == 6")
 		      (const_string "true") (const_string "false")))])
 
-; ??? When testing a bit from a DImode register, combine creates a
-; zero_extract in DImode.  This goes via an AND with a DImode constant,
-; so can only be observed on 64 bit hosts.
-(define_insn_and_split "*bbit_di"
-  [(set (pc)
-	(if_then_else
-	  (match_operator 3 "equality_comparison_operator"
-	    [(zero_extract:DI (match_operand:SI 1 "register_operand" "Rcqq,c")
-			      (const_int 1)
-			      (match_operand 2 "immediate_operand" "L,L"))
-	     (const_int 0)])
-	  (label_ref (match_operand 0 "" ""))
-	  (pc)))
-   (clobber (reg:CC_ZN CC_REG))]
-  "!CROSSING_JUMP_P (insn)"
-  "#"
-  ""
-  [(parallel
-     [(set (pc) (if_then_else (match_dup 3) (label_ref (match_dup 0)) (pc)))
-      (clobber (reg:CC_ZN CC_REG))])]
-{
-  rtx xtr;
-
-  xtr = gen_rtx_ZERO_EXTRACT (SImode, operands[1], const1_rtx, operands[2]);
-  operands[3] = gen_rtx_fmt_ee (GET_CODE (operands[3]), GET_MODE (operands[3]),
-				xtr, const0_rtx);
-})
-
 ;; -------------------------------------------------------------------
 ;; Hardware loop
 ;; -------------------------------------------------------------------