[lno] PATCH rs6000.md fix
Dorit Naishlos
DORIT@il.ibm.com
Thu Apr 1 12:43:00 GMT 2004
I committed it to lno.
thanks,
dorit
Mostafa
Hagog/Haifa/IBM@IB To: gcc-patches@gcc.gnu.org
MIL cc: dje@watson.ibm.com, geoffk@desire.geoffk.org
Sent by: Subject: [lno] PATCH rs6000.md fix
gcc-patches-owner@
gcc.gnu.org
30/03/2004 17:53
The following patch fixes an inconsistency in doloop related patterns of
rs6000.md.
Dorit Naishlos has pointed out to me that the gap benchmark fails on the
lno branch when
gcse-after-reload is specified. It turned that this is due to the same
problem that appeared
in s390 port (http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01803.html).
Bootstraps on powerpc-apple-darwin7.2.0, no new regressions. Ok to commit
to lno?
IMO this should go also to mainline.
2004-03-28 Mostafa Hagog <mustafa@il.ibm.com>
* config/rs6000/rs6000.md ("*ctrsi_internal1", "*ctrsi_internal2",
"*ctrdi_internal1", "*ctrdi_internal2", "*ctrsi_internal3",
"*ctrsi_internal4", "*ctrdi_internal3", "*ctrdi_internal4",
"*ctrsi_internal5", "*ctrsi_internal6", "*ctrdi_internal5",
"*ctrdi_internal6"): Replace register_operand with
nonimmediate_operand
Index: rs6000.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.md,v
retrieving revision 1.190.2.35.2.3
diff -c -p -r1.190.2.35.2.3 rs6000.md
*** rs6000.md 21 Mar 2004 03:21:23 -0000 1.190.2.35.2.3
--- rs6000.md 28 Mar 2004 09:20:59 -0000
***************
*** 13900,13906 ****
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13900,13906 ----
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 13924,13930 ****
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13924,13930 ----
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 13948,13954 ****
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13948,13954 ----
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 13972,13978 ****
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13972,13978 ----
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 13998,14004 ****
(const_int 0))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13998,14004 ----
(const_int 0))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14022,14028 ****
(const_int 0))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14022,14028 ----
(const_int 0))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14046,14052 ****
(const_int 0))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14046,14052 ----
(const_int 0))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14070,14076 ****
(const_int 0))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14070,14076 ----
(const_int 0))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14096,14102 ****
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14096,14102 ----
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14120,14126 ****
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14120,14126 ----
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14144,14150 ****
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14144,14150 ----
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
! (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14168,14174 ****
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14168,14174 ----
(const_int 1))
(pc)
(label_ref (match_operand 0 "" ""))))
! (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
(plus:DI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
More information about the Gcc-patches
mailing list