[PATCH 7/9] rs6000: Clean up ctz, ffs, popcount, parity

Segher Boessenkool segher@kernel.crashing.org
Sat Sep 20 18:47:00 GMT 2014


2014-09-20  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
	popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
	Tidy.


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

diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 5f5edaa..b03c6c1 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -1796,12 +1796,12 @@ (define_expand "ctz<mode>2"
 			      (match_dup 4)))
 	      (clobber (reg:GPR CA_REGNO))])]
   ""
-  {
-     operands[2] = gen_reg_rtx (<MODE>mode);
-     operands[3] = gen_reg_rtx (<MODE>mode);
-     operands[4] = gen_reg_rtx (<MODE>mode);
-     operands[5] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode) - 1);
-  })
+{
+  operands[2] = gen_reg_rtx (<MODE>mode);
+  operands[3] = gen_reg_rtx (<MODE>mode);
+  operands[4] = gen_reg_rtx (<MODE>mode);
+  operands[5] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode) - 1);
+})
 
 (define_expand "ffs<mode>2"
   [(set (match_dup 2)
@@ -1816,55 +1816,55 @@ (define_expand "ffs<mode>2"
 			      (match_dup 4)))
 	      (clobber (reg:GPR CA_REGNO))])]
   ""
-  {
-     operands[2] = gen_reg_rtx (<MODE>mode);
-     operands[3] = gen_reg_rtx (<MODE>mode);
-     operands[4] = gen_reg_rtx (<MODE>mode);
-     operands[5] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode));
-  })
+{
+  operands[2] = gen_reg_rtx (<MODE>mode);
+  operands[3] = gen_reg_rtx (<MODE>mode);
+  operands[4] = gen_reg_rtx (<MODE>mode);
+  operands[5] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode));
+})
+
+
+(define_expand "popcount<mode>2"
+  [(set (match_operand:GPR 0 "gpc_reg_operand" "")
+	(popcount:GPR (match_operand:GPR 1 "gpc_reg_operand" "")))]
+  "TARGET_POPCNTB || TARGET_POPCNTD"
+{
+  rs6000_emit_popcount (operands[0], operands[1]);
+  DONE;
+})
 
 (define_insn "popcntb<mode>2"
   [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
-        (unspec:GPR [(match_operand:GPR 1 "gpc_reg_operand" "r")]
-                     UNSPEC_POPCNTB))]
+	(unspec:GPR [(match_operand:GPR 1 "gpc_reg_operand" "r")]
+		    UNSPEC_POPCNTB))]
   "TARGET_POPCNTB"
   "popcntb %0,%1"
-  [(set_attr "length" "4")
-   (set_attr "type" "popcnt")])
+  [(set_attr "type" "popcnt")])
 
 (define_insn "popcntd<mode>2"
   [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
 	(popcount:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")))]
   "TARGET_POPCNTD"
   "popcnt<wd> %0,%1"
-  [(set_attr "length" "4")
-   (set_attr "type" "popcnt")])
+  [(set_attr "type" "popcnt")])
 
-(define_expand "popcount<mode>2"
+
+(define_expand "parity<mode>2"
   [(set (match_operand:GPR 0 "gpc_reg_operand" "")
-	(popcount:GPR (match_operand:GPR 1 "gpc_reg_operand" "")))]
-  "TARGET_POPCNTB || TARGET_POPCNTD"
-  {
-    rs6000_emit_popcount (operands[0], operands[1]);
-    DONE;
-  })
+	(parity:GPR (match_operand:GPR 1 "gpc_reg_operand" "")))]
+  "TARGET_POPCNTB"
+{
+  rs6000_emit_parity (operands[0], operands[1]);
+  DONE;
+})
 
 (define_insn "parity<mode>2_cmpb"
   [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
 	(unspec:GPR [(match_operand:GPR 1 "gpc_reg_operand" "r")] UNSPEC_PARITY))]
   "TARGET_CMPB && TARGET_POPCNTB"
   "prty<wd> %0,%1"
-  [(set_attr "length" "4")
-   (set_attr "type" "popcnt")])
+  [(set_attr "type" "popcnt")])
 
-(define_expand "parity<mode>2"
-  [(set (match_operand:GPR 0 "gpc_reg_operand" "")
-	(parity:GPR (match_operand:GPR 1 "gpc_reg_operand" "")))]
-  "TARGET_POPCNTB"
-  {
-    rs6000_emit_parity (operands[0], operands[1]);
-    DONE;
-  })
 
 ;; Since the hardware zeros the upper part of the register, save generating the
 ;; AND immediate if we are converting to unsigned
-- 
1.8.1.4



More information about the Gcc-patches mailing list