From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12421 invoked by alias); 29 Apr 2013 11:11:32 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 12382 invoked by uid 48); 29 Apr 2013 11:11:29 -0000 From: "ubizjak at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/54349] _mm_cvtsi128_si64 unnecessary stores value at stack Date: Mon, 29 Apr 2013 11:11:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ubizjak at gmail dot com X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: ubizjak at gmail dot com X-Bugzilla-Target-Milestone: 4.9.0 X-Bugzilla-Changed-Fields: Target Milestone Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 X-SW-Source: 2013-04/txt/msg02324.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54349 Uros Bizjak changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |4.9.0 --- Comment #8 from Uros Bizjak 2013-04-29 11:11:28 UTC --- Author: uros Date: Mon Apr 29 11:00:10 2013 New Revision: 198401 URL: http://gcc.gnu.org/viewcvs?rev=198401&root=gcc&view=rev Log: PR target/54349 * config/i386/i386.h (enum ix86_tune_indices) : New, split from X86_TUNE_INTER_UNIT_MOVES. : Remove. (TARGET_INTER_UNIT_MOVES_TO_VEC): New define. (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto. (TARGET_INTER_UNIT_MOVES): Remove. * config/i386/i386.c (initial_ix86_tune_features): Update. Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only. (ix86_expand_convert_uns_didf_sse): Use TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES. (ix86_expand_vector_init_one_nonzero): Ditto. (ix86_expand_vector_init_interleave): Ditto. (inline_secondary_memory_needed): Return true for moves from SSE class registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets. * config/i386/constraints.md (Yi, Ym): Depend on TARGET_INTER_UNIT_MOVES_TO_VEC. (Yj, Yn): New constraints. * config/i386/i386.md (*movdi_internal): Change constraints of operand 1 from Yi to Yj and from Ym to Yn. (*movsi_internal): Ditto. (*movdf_internal): Ditto. (*movsf_internal): Ditto. (*float2_1): Use TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES. (*float2_1 splitters): Ditto. (floatdi2_i387_with_xmm): Ditto. (floatdi2_i387_with_xmm splitters): Ditto. * config/i386/sse.md (movdi_to_sse): Ditto. (sse2_stored): Change constraint of operand 1 from Yi to Yj. Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of TARGET_INTER_UNIT_MOVES. (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj. (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of TARGET_INTER_UNIT_MOVES. * config/i386/mmx.md (*mov_internal): Change constraint of operand 1 from Yi to Yj and from Ym to Yn. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/constraints.md trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.h trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/mmx.md trunk/gcc/config/i386/sse.md