From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 60914 invoked by alias); 29 Sep 2015 09:33:18 -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 58906 invoked by uid 55); 29 Sep 2015 09:33:14 -0000 From: "ienkovich at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/65105] [i386] XMM registers are not used for 64bit computations on 32bit target Date: Tue, 29 Sep 2015 09:33: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-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ienkovich at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-09/txt/msg02256.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65105 --- Comment #3 from Ilya Enkovich --- Author: ienkovich Date: Tue Sep 29 09:32:40 2015 New Revision: 228231 URL: https://gcc.gnu.org/viewcvs?rev=228231&root=gcc&view=rev Log: gcc/ PR target/65105 * config/i386/i386.c: Include dbgcnt.h. (has_non_address_hard_reg): New. (convertible_comparison_p): New. (scalar_to_vector_candidate_p): New. (remove_non_convertible_regs): New. (scalar_chain): New. (scalar_chain::scalar_chain): New. (scalar_chain::~scalar_chain): New. (scalar_chain::add_to_queue): New. (scalar_chain::mark_dual_mode_def): New. (scalar_chain::analyze_register_chain): New. (scalar_chain::add_insn): New. (scalar_chain::build): New. (scalar_chain::compute_convert_gain): New. (scalar_chain::replace_with_subreg): New. (scalar_chain::replace_with_subreg_in_insn): New. (scalar_chain::emit_conversion_insns): New. (scalar_chain::make_vector_copies): New. (scalar_chain::convert_reg): New. (scalar_chain::convert_op): New. (scalar_chain::convert_insn): New. (scalar_chain::convert): New. (convert_scalars_to_vector): New. (pass_data_stv): New. (pass_stv): New. (make_pass_stv): New. (ix86_option_override): Created and register stv pass. (flag_opts): Add -mstv. (ix86_option_override_internal): Likewise. * config/i386/i386.md (SWIM1248x): New. (*movdi_internal): Add xmm to mem alternative for TARGET_STV. (and3): Use SWIM1248x iterator instead of SWIM. (*anddi3_doubleword): New. (*zext_doubleword): New. (*zextsi_doubleword): New. (3): Use SWIM1248x iterator instead of SWIM. (*di3_doubleword): New. * config/i386/i386.opt (mstv): New. * dbgcnt.def (stv_conversion): New. gcc/testsuite/ PR target/65105 * gcc.target/i386/pr65105-1.c: New. * gcc.target/i386/pr65105-2.c: New. * gcc.target/i386/pr65105-3.c: New. * gcc.target/i386/pr65105-4.C: New. * gcc.dg/lower-subreg-1.c: Add -mno-stv options for ia32. Added: trunk/gcc/testsuite/gcc.target/i386/pr65105-1.c trunk/gcc/testsuite/gcc.target/i386/pr65105-2.c trunk/gcc/testsuite/gcc.target/i386/pr65105-3.c trunk/gcc/testsuite/gcc.target/i386/pr65105-4.C Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/i386.opt trunk/gcc/dbgcnt.def trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/lower-subreg-1.c