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]

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


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")])


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