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]

Re: [PATCH] add split condition to *fix_trunchi_1


Uros Bizjak <uros@kss-loka.si> writes:

> Richard Henderson wrote:
>
>>>To be safe, should  "&& 1" be present in split condition?
>>>    
>>>
>>
>>Yes.
>>
>>  
>>
> This patch was commited to mainline (bootstrapped on i686-pc-linux-gnu,
> regtested c,c++:

You should have tested it on x86-64.

../../gcc/config/i386/i386.md:1869: `movddup+19' matches `movddup+18'
../../gcc/config/i386/i386.md:1857: previous definition of `movddup+18'
../../gcc/config/i386/i386.md:2135: `movddup+24' matches `movddup+23'
../../gcc/config/i386/i386.md:2123: previous definition of `movddup+23'

I'm reverting this part of the patch.

Andreas.

2004-11-18  Andreas Schwab  <schwab@suse.de>

	* config/i386/i386.md (define_peephole2): Revert last change.

--- gcc/config/i386/i386.md.~1.563.~	2004-11-18 10:33:28.000000000 +0100
+++ gcc/config/i386/i386.md	2004-11-18 15:07:17.780508052 +0100
@@ -1866,11 +1866,12 @@
 
 ;; We need to define this as both peepholer and splitter for case
 ;; peephole2 pass is not run.
+;; "&& 1" is needed to keep it from matching the previous pattern.
 (define_peephole2
   [(set (match_operand:DI 0 "push_operand" "")
         (match_operand:DI 1 "immediate_operand" ""))]
   "TARGET_64BIT && !symbolic_operand (operands[1], DImode)
-   && !x86_64_immediate_operand (operands[1], DImode)"
+   && !x86_64_immediate_operand (operands[1], DImode) && 1"
   [(set (match_dup 0) (match_dup 1))
    (set (match_dup 2) (match_dup 3))]
   "split_di (operands + 1, 1, operands + 2, operands + 3);
@@ -2132,11 +2133,12 @@
 
 ;; We need to define this as both peepholer and splitter for case
 ;; peephole2 pass is not run.
+;; "&& 1" is needed to keep it from matching the previous pattern.
 (define_peephole2
   [(set (match_operand:DI 0 "memory_operand" "")
         (match_operand:DI 1 "immediate_operand" ""))]
   "TARGET_64BIT && !symbolic_operand (operands[1], DImode)
-   && !x86_64_immediate_operand (operands[1], DImode)"
+   && !x86_64_immediate_operand (operands[1], DImode) && 1"
   [(set (match_dup 2) (match_dup 3))
    (set (match_dup 4) (match_dup 5))]
   "split_di (operands, 2, operands + 2, operands + 4);")

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


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