This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: (R5900) Implementing Vector Support
- From: Richard Henderson <rth at redhat dot com>
- To: Woon yung Liu <ysai187 at yahoo dot com>, Gcc Mailing List <gcc at gcc dot gnu dot org>
- Date: Mon, 16 May 2016 13:20:36 -0700
- Subject: Re: (R5900) Implementing Vector Support
- Authentication-results: sourceware.org; auth=none
- References: <23a57920-3e9e-05f9-e428-a7e5e89d4de9 at redhat dot com> <133091800 dot 362759 dot 1462978450117 dot JavaMail dot yahoo at mail dot yahoo dot com> <93d40024-8baf-f571-765e-3f3ae59961df at redhat dot com> <687383190 dot 1940916 dot 1463221310394 dot JavaMail dot yahoo at mail dot yahoo dot com> <358193743 dot 2254803 dot 1463309036412 dot JavaMail dot yahoo at mail dot yahoo dot com>
On 05/15/2016 03:43 AM, Woon yung Liu wrote:
testv.c:70:2: note: ==> examining statement: _5 = (int) _4;
You need to implement the vec_unpack* patterns.
But how can I tell what operations are required by autovectorization, that are currently not supported?
Well, the dumps you're looking at are the start. But it also requires that you
look through tree-vect-stmts.c.
My port is still missing the instructions for initializing vectors, and
inserting/setting and extracting values from vectors. They aren't
implemented yet because I haven't figured out how to implement them; the
documentation describes them as simple operations, but yet the
implementations within mips.c do a lot more things!
Efficient vector initialization requires that we detect some common cases. We
do that before the fully general mips_expand_vi_general.
r~