http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59163

--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed Dec  4 11:11:24 2013
New Revision: 205661

URL: http://gcc.gnu.org/viewcvs?rev=205661&root=gcc&view=rev
Log:
    PR target/59163
    * config/i386/i386.c (ix86_legitimate_combined_insn): If for
    !TARGET_AVX there is misaligned MEM operand with vector mode
    and get_attr_ssememalign is 0, return false.
    (ix86_expand_special_args_builtin): Add get_pointer_alignment
    computed alignment and for non-temporal loads/stores also
    at least GET_MODE_ALIGNMENT as MEM_ALIGN.
    * config/i386/sse.md
    (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
    <sse>_storeu<ssemodesuffix><avxsizesuffix>,
    <sse2_avx_avx512f>_loaddqu<mode><mask_name>,
    <sse2_avx_avx512f>_storedqu<mode>, <sse3>_lddqu<avxsizesuffix>,
    sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
    sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
    *vec_interleave_highv2df, *vec_interleave_lowv2df,
    *vec_extractv2df_1_sse, sse2_movsd, sse4_1_<code>v8qiv8hi2,
    sse4_1_<code>v4qiv4si2, sse4_1_<code>v4hiv4si2,
    sse4_1_<code>v2qiv2di2, sse4_1_<code>v2hiv2di2,
    sse4_1_<code>v2siv2di2, sse4_2_pcmpestr, *sse4_2_pcmpestr_unaligned,
    sse4_2_pcmpestri, sse4_2_pcmpestrm, sse4_2_pcmpestr_cconly,
    sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned, sse4_2_pcmpistri,
    sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add ssememalign attribute.
    * config/i386/i386.md (ssememalign): New define_attr.

    * g++.dg/torture/pr59163.C: New test.

Added:
    trunk/gcc/testsuite/g++.dg/torture/pr59163.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/i386/i386.md
    trunk/gcc/config/i386/sse.md
    trunk/gcc/testsuite/ChangeLog

Reply via email to