On Fri, Sep 23, 2011 at 4:47 PM, Jakub Jelinek <ja...@redhat.com> wrote:
>> >> I can surely do that (or e.g.
>> >> (define_mode_attr i128 [(V4DI "%~128") (V4DF "f128") ...])
>> >> and
>> >> "vextract<i128>\t{$0x1, %1, %0|%0, %1, 0x1}"
>> >> )
>> >> if you prefer it that way, but that is a functional alternative
>> >> to the patch I've just posted.  What I don't know how to express
>
>> Oh, and you can use <sseinsnmode> to set mode attribute statically.
>
> This patch implements that, bootstrapped/regtested on x86_64-linux
> and i686-linux, tested on SandyBridge additionally, eyeballed some
> -mavx2 assembly files.  Ok for trunk?
>
> 2011-09-23  Jakub Jelinek  <ja...@redhat.com>
>
>        * config/i386/i386.c (ix86_print_operand): Handle %~.
>        (ix86_print_operand_punct_valid_p): Return true also for '~'.
>        * config/i386/sse.md (i128): New mode_attr.
>        (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
>        avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
>        *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
>        vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
>        patterns, use "<sseinsnmode>" for "mode" attribute.
>        (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
>        vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
>        %~128 in the patterns, use "OI" for "mode" attribute.

OK.

Thanks,
Uros.

Reply via email to