[PATCH, i386]: Committed: Fix gcc.target/i386/sse-13.c failure

Uros Bizjak ubizjak@gmail.com
Fri May 25 22:04:00 GMT 2007


Hello!

We should not calculate "memory" attribute for 1st alternative of  
*vec_extractv2di_1_sse2. This  alternative is marked as "sseishft" type, 
and "memory" calculation for this type expects operands[2]. The solution 
is to force "memory" attribute to "none" for this alternative.

(BTW: This error was found due to sse-13.c test, which was recently 
changed to cover and test all sse/mmx intrinsics.  Way to go. :) )

Patch was bootstrapped on x86_64 and regression tested with -m32 that 
triggers this heisenbug. Patch was commited to SVN.

2007-05-25  Uros Bizjak  <ubizjak@gmail.com>

        * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
        "memory" attribute for "sseishft" type insn without operands[2].

Uros.

Index: sse.md
===================================================================
--- sse.md      (revision 125067)
+++ sse.md      (working copy)
@@ -4493,6 +4493,7 @@
    psrldq\t{$8, %0|%0, 8}
    movq\t{%H1, %0|%0, %H1}"
   [(set_attr "type" "ssemov,sseishft,ssemov")
+   (set_attr "memory" "*,none,*")
    (set_attr "mode" "V2SF,TI,TI")])



More information about the Gcc-patches mailing list