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
next prev parent 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).