+2002-03-09 Geoffrey Keating <geoffk@redhat.com>
+
+ * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
+ (ne0+5): Use new clobber to generate proper shift pattern.
+ Patch by Michael Matz <matz@kde.org>.
+
2002-03-09 Andreas Schwab <schwab@suse.de>
* gcc.c (validate_all_switches): Also handle `%W{...}'.
(const_int 31))
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
(const_int 0)))
- (clobber (match_scratch:SI 3 "=&r,&r"))]
+ (clobber (match_scratch:SI 3 "=&r,&r"))
+ (clobber (match_scratch:SI 4 "=X,&r"))]
"! TARGET_POWERPC64"
"@
{ai|addic} %3,%1,-1\;{aze.|addze.} %3,%2
(const_int 31))
(match_operand:SI 2 "gpc_reg_operand" ""))
(const_int 0)))
- (clobber (match_scratch:SI 3 ""))]
+ (clobber (match_scratch:SI 3 ""))
+ (clobber (match_scratch:SI 4 ""))]
"! TARGET_POWERPC64 && reload_completed"
- [(set (match_dup 3)
- (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1)))
- (const_int 31))
- (match_dup 2)))
+ [(parallel [(set (match_dup 3)
+ (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1)))
+ (const_int 31))
+ (match_dup 2)))
+ (clobber (match_dup 4))])
(set (match_dup 0)
(compare:CC (match_dup 3)
(const_int 0)))]