Hi! I've noticed two new spots which use GET_MODE_SIZE (<MODE>mode) instead of the more efficient <MODE_SIZE>.
Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2014-12-08 Jakub Jelinek <ja...@redhat.com> * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode). --- gcc/config/i386/sse.md.jj 2014-12-03 11:52:41.000000000 +0100 +++ gcc/config/i386/sse.md 2014-12-08 13:00:39.167141532 +0100 @@ -811,7 +811,7 @@ (define_insn "*mov<mode>_internal" /* There is no evex-encoded vmov* for sizes smaller than 64-bytes in avx512f, so we need to use workarounds, to access sse registers 16-31, which are evex-only. In avx512vl we don't need workarounds. */ - if (TARGET_AVX512F && GET_MODE_SIZE (<MODE>mode) < 64 && !TARGET_AVX512VL + if (TARGET_AVX512F && <MODE_SIZE> < 64 && !TARGET_AVX512VL && ((REG_P (operands[0]) && EXT_REX_SSE_REGNO_P (REGNO (operands[0]))) || (REG_P (operands[1]) && EXT_REX_SSE_REGNO_P (REGNO (operands[1]))))) { @@ -18208,7 +18196,7 @@ (define_insn "*avx512f_gatherdi<mode>_2" { if (<MODE>mode != <VEC_GATHER_SRCDI>mode) { - if (GET_MODE_SIZE (<MODE>mode) != 64) + if (<MODE_SIZE> != 64) return "v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %x0%{%1%}|%t0%{%1%}, %g5}"; else return "v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %t0%{%1%}|%t0%{%1%}, %g5}"; Jakub