This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Does vectorizer support extension?
- From: Dorit Nuzman <DORIT at il dot ibm dot com>
- To: "H. J. Lu" <hjl at lucon dot org>
- Cc: gcc at gcc dot gnu dot org
- Date: Sun, 22 Apr 2007 23:14:20 +0300
- Subject: Re: Does vectorizer support extension?
"H. J. Lu" <hjl@lucon.org> wrote on 20/04/2007 18:02:09:
> Hi Dorit,
>
> SSE4 has vector zero/sign-extensions like:
>
> (define_insn "sse4_1_zero_extendv2siv2di2"
> [(set (match_operand:V2DI 0 "register_operand" "=x")
> (zero_extend:V2DI
> (vec_select:V2SI
> (match_operand:V4SI 1 "nonimmediate_operand" "xm")
> (parallel [(const_int 0)
> (const_int 1)]))))]
> "TARGET_SSE4_1"
> "pmovzxdq\t{%1, %0|%0, %1}"
> [(set_attr "type" "ssemov")
> (set_attr "mode" "TI")])
>
> Does vectorizer support them?
>
(sorry, I was away from email during Friday-Saturday) -
so this looks like a vec_unpacku_hi_v4si (or _lo?), i.e. what is now
modeled as follows in sse.md:
(define_expand "vec_unpacku_hi_v4si"
[(match_operand:V2DI 0 "register_operand" "")
(match_operand:V4SI 1 "register_operand" "")]
"TARGET_SSE2"
{
ix86_expand_sse_unpack (operands, true, true);
DONE;
})
grep for vec_pack/vec_unpack in genopinit.c (or better yet - in sse.md...)
dorit
> Thanks.
>
>
> H.J.