[PATCH, vectorizer]: Take3: Vectorize FP conversions
Uros Bizjak
ubizjak@gmail.com
Sun Apr 22 20:00:00 GMT 2007
H. J. Lu wrote:
> On Sun, Apr 22, 2007 at 05:56:35PM +0200, Uros Bizjak wrote:
>
>> Dorit Nuzman wrote:
>>
>>
>>> I'm sorry for not raising the following question before (didn't occur to me
>>> until now): Do we really need to duplicate the vec_unpack optab for floats,
>>> rather than reusing the vec_unpacks for both ints and floats, just like
>>> optabs smul,smin,smax? (either way is fine with me, just a question of
>>> general optab policy in gcc)
>>>
>>>
>> Hm, I never noticed that TYPE_UNSIGNED also operates correctly on float
>> types.
>>
>> Due to this, this revision includes your suggestion to name FP patterns
>> vec_unpacks_*.
>>
>>
>
> Can you also add integer vector extensions available in SSE4.1? That is
> SSE4.1 can do things like
>
> [(set (match_operand:V2DI 0 "register_operand" "=x")
> (zero_extend:V2DI
> (vec_select:V2HI
> (match_operand:V8HI 1 "nonimmediate_operand" "xm")
> (parallel [(const_int 0)
> (const_int 1)]))))]
>
Currently infrastructure only supports extensions, where one vector with
N elements of size S is extended into two vectors with N elements of
size 2*S, and truncations where two vectors with N elements of size S
are truncated to one vector with N elements of size S/2. It looks to me
that above pattern is not yet supported.
Uros.
More information about the Gcc-patches
mailing list