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.