This is the mail archive of the gcc-bugs@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]

[Bug regression/48262] Subversion id 171341 breaks various vectorization files on powerpc


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48262

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-03-24 00:07:49 UTC ---
(In reply to comment #2)
> gcc.c-torture/compile/900116-1.c fails at -O3 -maltivec but with a different
> ICE but revision which caused it is the same.

The problem here is the wrong mode is being used to create the output reg.
Here is the patch for the other issue:
Index: altivec.md
===================================================================
--- altivec.md    (revision 171367)
+++ altivec.md    (working copy)
@@ -2422,7 +2422,7 @@ (define_insn "altivec_stvrxl"

 (define_expand "vec_extract_evenv4si"
  [(set (match_operand:V4SI 0 "register_operand" "")
-        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "")
+        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "")
                       (match_operand:V4SI 2 "register_operand" "")]
               UNSPEC_EXTEVEN_V4SI))]
   "TARGET_ALTIVEC"
@@ -2455,7 +2455,7 @@ (define_expand "vec_extract_evenv4si"

 (define_expand "vec_extract_evenv4sf"
  [(set (match_operand:V4SF 0 "register_operand" "")
-        (unspec:V8HI [(match_operand:V4SF 1 "register_operand" "")
+        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "")
                       (match_operand:V4SF 2 "register_operand" "")]
                       UNSPEC_EXTEVEN_V4SF))]
   "TARGET_ALTIVEC"
@@ -2487,7 +2487,7 @@ (define_expand "vec_extract_evenv4sf"
 }")

 (define_expand "vec_extract_evenv8hi"
- [(set (match_operand:V4SI 0 "register_operand" "")
+ [(set (match_operand:V8HI 0 "register_operand" "")
         (unspec:V8HI [(match_operand:V8HI 1 "register_operand" "")
                       (match_operand:V8HI 2 "register_operand" "")]
                       UNSPEC_EXTEVEN_V8HI))]
@@ -2520,9 +2520,9 @@ (define_expand "vec_extract_evenv8hi"
 }")

 (define_expand "vec_extract_evenv16qi"
- [(set (match_operand:V4SI 0 "register_operand" "")
-        (unspec:V8HI [(match_operand:V16QI 1 "register_operand" "")
-                      (match_operand:V16QI 2 "register_operand" "")]
+ [(set (match_operand:V16QI 0 "register_operand" "")
+        (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "")
+                       (match_operand:V16QI 2 "register_operand" "")]
                       UNSPEC_EXTEVEN_V16QI))]
   "TARGET_ALTIVEC"
   "
@@ -2554,7 +2554,7 @@ (define_expand "vec_extract_evenv16qi"

 (define_expand "vec_extract_oddv4si"
  [(set (match_operand:V4SI 0 "register_operand" "")
-        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "")
+        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "")
                       (match_operand:V4SI 2 "register_operand" "")]
                       UNSPEC_EXTODD_V4SI))]
   "TARGET_ALTIVEC"
@@ -2587,7 +2587,7 @@ (define_expand "vec_extract_oddv4si"

 (define_expand "vec_extract_oddv4sf"
  [(set (match_operand:V4SF 0 "register_operand" "")
-        (unspec:V8HI [(match_operand:V4SF 1 "register_operand" "")
+        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "")
                       (match_operand:V4SF 2 "register_operand" "")]
                       UNSPEC_EXTODD_V4SF))]
   "TARGET_ALTIVEC"

--- CUT ---
I have not looked to see if this fixes all the issues reported by the testsuite
and I have not bootstrapped/tested it.  I also don't have access to a PPC
machine any more.


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