This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Mon, Jun 21, 2010 at 11:01 AM, Uros Bizjak <ubizjak@gmail.com> wrote: > On Mon, Jun 21, 2010 at 7:17 PM, H.J. Lu <hongjiu.lu@intel.com> wrote: >> When --with-cpu=atom is used to configure gcc, -mtune=atom is used by >> default. I got >> >> FAIL: gcc.target/i386/amd64-abi-3.c scan-assembler subq[\\t ]*\\$88,[\\t ]*%rsp >> >> This is due to -mtune=atom generates: >> >> ? ? ? ?leaq ? ?-88(%rsp), %rsp >> >> instead of >> >> ? ? ? ?subq ? ?$88, %rsp >> >> also >> >> /export/build/gnu/gcc-atom/build-x86_64-linux/gcc/xgcc >> -B/export/build/gnu/gcc-atom/build-x86_64-linux/gcc/ >> /export/gnu/import/git/gcc/gcc/testsuite/gcc.target/i386/sse2-vec-2.c >> -O2 >> -msse2 -mtune=atom >> In file included from >> /export/gnu/import/git/gcc/gcc/testsuite/gcc.target/i386/sse2-vec-2.c:5:0: >> /export/gnu/import/git/gcc/gcc/testsuite/gcc.target/i386/sse2-check.h: >> In >> function ‘do_test’: >> /export/gnu/import/git/gcc/gcc/testsuite/gcc.target/i386/sse2-check.h:12:1: >> internal compiler error: Segmentation fault >> Please submit a full bug report, >> with preprocessed source if appropriate. >> See <http://gcc.gnu.org/bugs.html> for instructions. >> >> The problem is >> >> ;; if palignr or psrldq >> (define_insn_reservation ?"atom_sseishft_2" 1 >> ?(and (eq_attr "cpu" "atom") >> ? ? ? (and (eq_attr "type" "sseishft") >> ? ? ? ? ? ?(and (eq_attr "atom_unit" "sishuf") >> ? ? ? ? ? ? ? ? (match_operand 2 "immediate_operand")))) >> ?"atom-simple-0") >> >> ;; if reg/mem op >> (define_insn_reservation ?"atom_sseishft_3" 2 >> ?(and (eq_attr "cpu" "atom") >> ? ? ? (and (eq_attr "type" "sseishft") >> ? ? ? ? ? ?(not (match_operand 2 "immediate_operand")))) >> ?"atom-complex, atom-all-eu") >> >> in atom.md. Some sseishft patterns, which generate psrldq, don't >> have the 3rd operand as shift count. >> >> This patch fixes amd64-abi-3.c by adding -mtune=k8 to generate subq >> instead of leaq. For sse2-vec-2.c, I added a new type for psrldq. >> There is no need to check for psrldq when it is the only alternative. >> OK for trunk if no regressions and 4.4/4.5 after a few days? >> > No need for new define_insn_reservation, please merge this > functionality into existing atom_sseishft_2. > > Also, please rename new psrldq type to sseishft1, this is more > consistent with existing naming scheme.. > > Uros. > Here is the updated patch. OK for trunk and 4.5? Thanks. -- H.J. --- gcc/ 2010-06-21 H.J. Lu <hongjiu.lu@intel.com> PR target/44615 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1. * config/i386/i386.md (type): Add sseishft1 * config/i386/ppro_insn (ppro_insn): Also check sseishft1. (ppro_insn_load): Likewise. (ppro_insn_store): Likewise. (ppro_insn_both): Likewise. * config/i386/sse.md (avx_lshrv1ti3): Replace sseishft with sseishft1 for type. (sse2_lshrv1ti3): Likewise. (*vec_extractv2di_1_rex64_avx): Likewise. (*vec_extractv2di_1_avx): Likewise. (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for type. Remove atom_unit. (*vec_extractv2di_1_sse2): Likewise. gcc/testsuite/ 2010-06-21 H.J. Lu <hongjiu.lu@intel.com> PR target/44615 * gcc.target/i386/sse2-vec-2a.c: New.
Attachment:
gcc-pr44615-2.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |