This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug regression/48262] Subversion id 171341 breaks various vectorization files on powerpc
- From: "pinskia at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Mar 2011 00:07:51 -0000
- Subject: [Bug regression/48262] Subversion id 171341 breaks various vectorization files on powerpc
- Auto-submitted: auto-generated
- References: <bug-48262-4@http.gcc.gnu.org/bugzilla/>
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.