i386.c (expand_set_or_movmem_via_loop): Add issetmem argument.
authorMichael Zolotukhin <michael.v.zolotukhin@gmail.com>
Mon, 21 Oct 2013 08:30:50 +0000 (08:30 +0000)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Mon, 21 Oct 2013 08:30:50 +0000 (08:30 +0000)
commitd606b917e1c986eee196ced3db2d3ab318b50430
treedacfe76c913ab13074ca3984af44b15a151b5172
parent057f1817ef6732539d41ed39bb79acaacbc15bec
i386.c (expand_set_or_movmem_via_loop): Add issetmem argument.

        * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem
        argument.  Update function comment.
        (expand_set_or_movmem_via_rep): New function combining
        expand_movmem_via_rep_mov and expand_setmem_via_rep_stos.
        (expand_movmem_via_rep_mov): Remove.
        expand_setmem_via_rep_stos): Remove.
        (expand_movmem_epilogue): Update calls correspondingly.
        (expand_setmem_epilogue_via_loop): Likewise.
        (emit_memset): New.
        (expand_setmem_epilogue): Add VEC_VALUE argument, refactor.
        (expand_set_or_movmem_prologue): New function combining
        expand_movmem_prologue and expand_setmem_prologue.
        (expand_movmem_prologue): Remove.
        (expand_setmem_prologue): Remove.
        (expand_set_or_movmem_constant_prologue): New function combining
        expand_constant_movmem_prologue and expand_constant_setmem_prologue.
        (expand_constant_movmem_prologue): Remove.
        (expand_constant_setmem_prologue): Remove.
        (promote_duplicated_reg): Allow vector-const0 value.
        (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem
        and ix86_expand_setmem.
        (ix86_expand_movmem): Call ix86_expand_set_or_movmem.
        (ix86_expand_setmem): Call ix86_expand_set_or_movmem.

testsuite/
        * gcc.target/i386/memset-vector_loop-1.c: New test.
        * gcc.target/i386/memset-vector_loop-2.c: New test.

From-SVN: r203886
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/memset-vector_loop-2.c [new file with mode: 0644]