This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Vector shifting patch
- From: Artem Shinkarov <artyom dot shinkaroff at gmail dot com>
- To: Nathan Froyd <froydnj at codesourcery dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Richard Guenther <richard dot guenther at gmail dot com>, "Joseph S. Myers" <joseph at codesourcery dot com>
- Date: Mon, 25 Oct 2010 15:54:36 +0100
- Subject: Re: Vector shifting patch
- References: <AANLkTimPWUfC6QCzPwvjGNVKDk5mZYllxNpuX2iwF6aC@mail.gmail.com> <AANLkTimj-zZQTyTRW3nrCpEX5dA2rCFo-wbQs5yWwRn0@mail.gmail.com> <AANLkTinJ0_zBu9g_qAv5G0dXAH2GYaarMHnp2YzjmyCe@mail.gmail.com> <AANLkTil_5aYZQqs8JUuWc7FJJtiN9ZAFCvEZXEpddE2E@mail.gmail.com> <AANLkTilRWnsbx94JC-Hpzh-6AJnLEBgCCHufsWgMofY6@mail.gmail.com> <AANLkTimZKcE3WiJdrbhoVwvytAKIPAkUrfS8dAeLqgEL@mail.gmail.com> <AANLkTi=0OS6S+40mdxZW2H7bOdxgh6VQRODLCcvYYQee@mail.gmail.com> <20101025144714.GZ2806@nightcrawler>
Ok, I can do that.
On Mon, Oct 25, 2010 at 3:47 PM, Nathan Froyd <froydnj@codesourcery.com> wrote:
> On Mon, Oct 25, 2010 at 03:42:47PM +0100, Artem Shinkarov wrote:
>> I'm continuing to submit my vector patches. Now it is vector shifting
>> patch.
>>
>> Index: gcc/tree.c
>> ===================================================================
>> --- gcc/tree.c ? ? ? ?(revision 165913)
>> +++ gcc/tree.c ? ? ? ?(working copy)
>> @@ -1366,6 +1366,27 @@ build_vector_from_ctor (tree type, VEC(c
>> ? ?return build_vector (type, nreverse (list));
>> ?}
>>
>> +/* Build a vector of type VECTYPE where all the elements are SCs. ?*/
>> +tree
>> +build_vector_from_val (const tree sc, const tree vectype)
>> +{
>> + ?tree t = NULL_TREE;
>> + ?int i, nunits = TYPE_VECTOR_SUBPARTS (vectype);
>> +
>> + ?if (sc == error_mark_node)
>> + ? ?return sc;
>> +
>> + ?gcc_assert (TREE_TYPE (sc) == TREE_TYPE (vectype));
>> +
>> + ?for (i = 0; i < nunits; ++i)
>> + ? ?t = tree_cons (NULL_TREE, sc, t);
>> +
>> + ?if (CONSTANT_CLASS_P (sc))
>> + ? ?return build_vector (vectype, t);
>> + ?else
>> + ? ?return build_constructor_from_list (vectype, t);
>> +}
>> +
>
> Would you mind rewriting this to use build_vector_from_ctor/build_constructor?
> build_constructor_from_list is nearly eradicated from the tree and it'd
> be nice to keep it that way.
>
> -Nathan
>