This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] rs6000: Allow mode GPR in cceq_{ior,rev}_compare


Also make it a parmeterized name: @cceq_{ior,rev}_compare_<mode>.

Committing to trunk.


Segher


2019-11-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (cceq_ior_compare): Rename to...
	(@cceq_ior_compare_<mode> for GPR): ... this.  Allow GPR instead of
	just SI.
	(cceq_rev_compare): Rename to...
	(@cceq_rev_compare_<mode> for GPR): ... this.  Allow GPR instead of
	just SI.
	(define_split for <bd>tf_<mode>): Add SImode first argument to
	gen_cceq_ior_compare.

---
 gcc/config/rs6000/rs6000.md | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 040fc88..8dc0a29 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -12420,15 +12420,15 @@ (define_insn "*creturn"
 ; which are generated by the branch logic.
 ; Prefer destructive operations where BT = BB (for crXX BT,BA,BB)
 
-(define_insn "cceq_ior_compare"
+(define_insn "@cceq_ior_compare_<mode>"
   [(set (match_operand:CCEQ 0 "cc_reg_operand" "=y,?y")
-        (compare:CCEQ (match_operator:SI 1 "boolean_operator"
-	                [(match_operator:SI 2
+        (compare:CCEQ (match_operator:GPR 1 "boolean_operator"
+	                [(match_operator:GPR 2
 				      "branch_positive_comparison_operator"
 				      [(match_operand 3
 						      "cc_reg_operand" "y,y")
 				       (const_int 0)])
-	                 (match_operator:SI 4
+	                 (match_operator:GPR 4
 				      "branch_positive_comparison_operator"
 				      [(match_operand 5
 						      "cc_reg_operand" "0,y")
@@ -12460,9 +12460,9 @@ (define_insn "cceq_ior_compare_complement"
   [(set_attr "type" "cr_logical")
    (set_attr "cr_logical_3op" "no,yes")])
 
-(define_insn "*cceq_rev_compare"
+(define_insn "@cceq_rev_compare_<mode>"
   [(set (match_operand:CCEQ 0 "cc_reg_operand" "=y,?y")
-	(compare:CCEQ (match_operator:SI 1
+	(compare:CCEQ (match_operator:GPR 1
 				      "branch_positive_comparison_operator"
 				      [(match_operand 2
 						      "cc_reg_operand" "0,y")
@@ -12897,7 +12897,7 @@ (define_split
 
   rtx andexpr = gen_rtx_AND (SImode, ctrcmpcc, cccmp);
   if (ispos)
-     emit_insn (gen_cceq_ior_compare (operands[9], andexpr, ctrcmpcc,
+     emit_insn (gen_cceq_ior_compare (SImode, operands[9], andexpr, ctrcmpcc,
 				      operands[8], cccmp, ccin));
   else
      emit_insn (gen_cceq_ior_compare_complement (operands[9], andexpr, ctrcmpcc,
-- 
1.8.3.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]