public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <bonzini@gnu.org>
To: David Edelsohn <dje@watson.ibm.com>
Cc: gcc@gcc.gnu.org
Subject: Re: generic vectors: how should they work?
Date: Wed, 01 Sep 2004 15:13:00 -0000	[thread overview]
Message-ID: <4135E82C.60102@gnu.org> (raw)
In-Reply-To: <200409011449.i81EnMO30082@makai.watson.ibm.com>

[Taking Christine Lorenz off the recipient list]

> 	gcc.dg/compat/vector-2 is failing on PowerPC because the port
> cannot handle v16sf mode.

It is not V16SFmode, it is BLKmode.  The fact that the name of the type 
resembles that of GCC modes is confusing you.  The rs6000 backend does 
not even have a V16SFmode, since vector modes are defined per-target.

> 1) How should synthetic SIMD modes be passed?

I'll interpret this as "how should generic vectors, wider than the 
widest hardware-supported vector type, be passed?"

My answer is "by reference.  When, and if, they will be supported by 
hardware, there will be an appropriate -mabi= switch that may change 
this rule."

> 2) When should synthetic SIMD modes be converted to generic vectors with a
> count?

My answer is "always, if they are BLKmode".  Maybe you want to emit a 
warning or an hard error if there is some ABI for the target whereby 
that generic vector would be passed in a different way.

> 	I believe that it is a fundamental interface design flaw for the
> backend to have to deal with arbitrary synthetic vector modes in the
> argument passing target hooks.

The backend only sees BLKmode.  I have stated this several times, 
together with these other facts:

1) the backend used to see vector modes when the AltiVec instructions 
are disabled, it does not anymore.  A vector modes is only used if there 
are registers of that mode available.

2) even if vector instructions are available, again vector modes are not 
used if there are registers of that mode available.  Even if V16SFmode 
were defined for rs6000, it would make no difference, the backend would 
see BLKmode.

Paolo

  reply	other threads:[~2004-09-01 15:13 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-01  0:35 Janis Johnson
2004-09-01  2:11 ` David Edelsohn
2004-09-01  7:11   ` Paolo Bonzini
2004-09-01 14:49     ` David Edelsohn
2004-09-01 15:13       ` Paolo Bonzini [this message]
2004-09-01 15:35         ` Giovanni Bajo
2004-09-01 16:00           ` Paolo Bonzini
2004-09-01 19:52         ` Richard Henderson
2004-09-01 22:08         ` David Edelsohn
2004-09-02 13:04           ` Paolo Bonzini
2004-09-02 14:06             ` David Edelsohn
2004-09-02 14:27               ` Paolo Bonzini
2004-09-02 18:33             ` Janis Johnson
2004-09-01 23:47       ` Janis Johnson
2004-09-02 17:46         ` Janis Johnson
2004-09-01 20:12 ` James E Wilson
2004-09-01 20:40   ` David Edelsohn
2004-09-01 21:22     ` James E Wilson
2004-09-02  1:07   ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4135E82C.60102@gnu.org \
    --to=bonzini@gnu.org \
    --cc=dje@watson.ibm.com \
    --cc=gcc@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).