public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/22372] New: Vectorizer produces mis-match types
@ 2005-07-08 15:54 pinskia at gcc dot gnu dot org
  2005-07-28 17:22 ` [Bug tree-optimization/22372] " pinskia at gcc dot gnu dot org
  2005-08-15 21:06 ` pinskia at gcc dot gnu dot org
  0 siblings, 2 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-07-08 15:54 UTC (permalink / raw)
  To: gcc-bugs

Testcase:
void f(int *);

int main ()
{
  int i;
  char ia[16];
  char ic[16] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
  char ib[16] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
  for (i = 0; i < 16; i++)
      ia[i] = ib[i] + ic[i];
  f(ia);
  return 0;
}

See PR 22368 for the patch which catches this.

-- 
           Summary: Vectorizer produces mis-match types
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
OtherBugsDependingO 22368
             nThis:


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
  2005-07-08 15:54 [Bug tree-optimization/22372] New: Vectorizer produces mis-match types pinskia at gcc dot gnu dot org
@ 2005-07-28 17:22 ` pinskia at gcc dot gnu dot org
  2005-08-15 21:06 ` pinskia at gcc dot gnu dot org
  1 sibling, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-07-28 17:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-07-28 17:21 -------
Patch posted here: <http://gcc.gnu.org/ml/gcc-patches/2005-07/msg01877.html>.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|                            |http://gcc.gnu.org/ml/gcc-
                   |                            |patches/2005-
                   |                            |07/msg01877.html
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |patch
   Last reconfirmed|0000-00-00 00:00:00         |2005-07-28 17:21:06
               date|                            |


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
  2005-07-08 15:54 [Bug tree-optimization/22372] New: Vectorizer produces mis-match types pinskia at gcc dot gnu dot org
  2005-07-28 17:22 ` [Bug tree-optimization/22372] " pinskia at gcc dot gnu dot org
@ 2005-08-15 21:06 ` pinskia at gcc dot gnu dot org
  1 sibling, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-15 21:06 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-15 20:18 -------
Note only the first patch (modify.diff.txt) in PR 22368 is needed to reproduce this.

-- 


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
       [not found] <bug-22372-6528@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2006-12-20 12:22 ` irar at il dot ibm dot com
@ 2009-05-03 15:56 ` rguenth at gcc dot gnu dot org
  6 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-05-03 15:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from rguenth at gcc dot gnu dot org  2009-05-03 15:56 -------


*** This bug has been marked as a duplicate of 30210 ***


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
       [not found] <bug-22372-6528@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2006-12-14 11:53 ` irar at il dot ibm dot com
@ 2006-12-20 12:22 ` irar at il dot ibm dot com
  2009-05-03 15:56 ` rguenth at gcc dot gnu dot org
  6 siblings, 0 replies; 10+ messages in thread
From: irar at il dot ibm dot com @ 2006-12-20 12:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from irar at il dot ibm dot com  2006-12-20 12:22 -------
As explained by Paolo in PR 30210, it is not an Altivec problem after all. 

Ira


-- 


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
       [not found] <bug-22372-6528@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2006-12-14  7:05 ` pinskia at gcc dot gnu dot org
@ 2006-12-14 11:53 ` irar at il dot ibm dot com
  2006-12-20 12:22 ` irar at il dot ibm dot com
  2009-05-03 15:56 ` rguenth at gcc dot gnu dot org
  6 siblings, 0 replies; 10+ messages in thread
From: irar at il dot ibm dot com @ 2006-12-14 11:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from irar at il dot ibm dot com  2006-12-14 11:53 -------
So, it is an altivec bug and not vectorizer's. I opened a new PR 30210 instead.
I think, this PR can be closed.

Ira


-- 


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
       [not found] <bug-22372-6528@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2006-11-27 11:19 ` irar at il dot ibm dot com
@ 2006-12-14  7:05 ` pinskia at gcc dot gnu dot org
  2006-12-14 11:53 ` irar at il dot ibm dot com
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-12-14  7:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from pinskia at gcc dot gnu dot org  2006-12-14 07:05 -------
(In reply to comment #5)
> one of the vectorizer testcases (vect-reduc-dot-u8b.c) still fails with
> modify.diff.txt on MODIFY_EXPR where the right hand side is a call to a
> builtin  function (rs6000_builtin_mul_widen_even). 
> For Altivec, the return value of the
> builtin function is always signed (while the left hand side of the assignment
> is unsigned). Is the check in modify.diff.txt too strict or is the problem 
> with the return type of the Altivec builtin (shouldn't it be signed/unsigned 
> as relevant, instead of always signed? Specifically - shouldn't builtin
> vmuloub return an unsigned type)?

Yes that should return an unsigned type, if it does not then we have a bug.  It
is defined by the altivec PIM as returning vector unsigned short.

The patch is not too strict as far as I know. 


-- 


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
       [not found] <bug-22372-6528@http.gcc.gnu.org/bugzilla/>
  2006-10-18  9:10 ` patchapp at dberlin dot org
  2006-11-27  8:10 ` irar at gcc dot gnu dot org
@ 2006-11-27 11:19 ` irar at il dot ibm dot com
  2006-12-14  7:05 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: irar at il dot ibm dot com @ 2006-11-27 11:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from irar at il dot ibm dot com  2006-11-27 11:19 -------
The patch I committed (comment #4) fixes almost all the type mismatch
occurrences in the vectorizer, but there's one occurrence that still remains -
one of the vectorizer testcases (vect-reduc-dot-u8b.c) still fails with
modify.diff.txt on MODIFY_EXPR where the right hand side is a call to a builtin
function (rs6000_builtin_mul_widen_even). For Altivec, the return value of the
builtin function is always signed (while the left hand side of the assignment
is unsigned). Is the check in modify.diff.txt too strict or is the problem with
the return type of the Altivec builtin (shouldn't it be signed/unsigned as
relevant, instead of always signed? Specifically - shouldn't builtin vmuloub
return an unsigned type)?

Ira 


-- 

irar at il dot ibm dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |irar at il dot ibm dot com


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
       [not found] <bug-22372-6528@http.gcc.gnu.org/bugzilla/>
  2006-10-18  9:10 ` patchapp at dberlin dot org
@ 2006-11-27  8:10 ` irar at gcc dot gnu dot org
  2006-11-27 11:19 ` irar at il dot ibm dot com
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: irar at gcc dot gnu dot org @ 2006-11-27  8:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from irar at gcc dot gnu dot org  2006-11-27 08:10 -------
Subject: Bug 22372

Author: irar
Date: Mon Nov 27 08:10:23 2006
New Revision: 119247

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119247
Log:
        PR tree-optimization/22372
        * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
        the type of the base address.
        (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
        it in the data-ref pointer creation.
        (vect_init_vector): Add an argument, type of the init vector. Use it in
        the stmt creation.
        (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
        (get_initial_def_for_reduction): Likewise.
        (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
        void_type_node.
        (vectorizable_assignment, vect_permute_store_chain): Likewise.
        (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
        correct type in stmt creation.
        (vect_setup_realignment): Use the correct type in stmt creation.
        (vect_permute_load_chain): Change type of MODIFY_EXPR to
        void_type_node.
        (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
        of MODIFY_EXPR to void_type_node.
        (vectorizable_condition): Change type of MODIFY_EXPR to
        void_type_node.
        (vect_update_ivs_after_vectorizer): Use the correct type in stmt
        creation.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-vect-transform.c


-- 


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/22372] Vectorizer produces mis-match types
       [not found] <bug-22372-6528@http.gcc.gnu.org/bugzilla/>
@ 2006-10-18  9:10 ` patchapp at dberlin dot org
  2006-11-27  8:10 ` irar at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: patchapp at dberlin dot org @ 2006-10-18  9:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from patchapp at dberlin dot org  2006-10-18 09:10 -------
Subject: Bug number PR22372

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-10/msg00892.html


-- 


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


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-05-03 15:56 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-07-08 15:54 [Bug tree-optimization/22372] New: Vectorizer produces mis-match types pinskia at gcc dot gnu dot org
2005-07-28 17:22 ` [Bug tree-optimization/22372] " pinskia at gcc dot gnu dot org
2005-08-15 21:06 ` pinskia at gcc dot gnu dot org
     [not found] <bug-22372-6528@http.gcc.gnu.org/bugzilla/>
2006-10-18  9:10 ` patchapp at dberlin dot org
2006-11-27  8:10 ` irar at gcc dot gnu dot org
2006-11-27 11:19 ` irar at il dot ibm dot com
2006-12-14  7:05 ` pinskia at gcc dot gnu dot org
2006-12-14 11:53 ` irar at il dot ibm dot com
2006-12-20 12:22 ` irar at il dot ibm dot com
2009-05-03 15:56 ` rguenth at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).