From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18669 invoked by alias); 3 Jul 2011 11:27:23 -0000 Received: (qmail 18659 invoked by uid 22791); 3 Jul 2011 11:27:22 -0000 X-SWARE-Spam-Status: No, hits=0.5 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MEDICAL_SUBJECT,RCVD_IN_DNSWL_LOW,TW_ZJ X-Spam-Check-By: sourceware.org Received: from mail-pv0-f175.google.com (HELO mail-pv0-f175.google.com) (74.125.83.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 03 Jul 2011 11:27:07 +0000 Received: by pvf24 with SMTP id 24so4212566pvf.20 for ; Sun, 03 Jul 2011 04:27:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.143.63.3 with SMTP id q3mr2386260wfk.25.1309692425379; Sun, 03 Jul 2011 04:27:05 -0700 (PDT) Received: by 10.142.107.13 with HTTP; Sun, 3 Jul 2011 04:27:05 -0700 (PDT) In-Reply-To: <20110630225005.GA1839@intel.com> References: <20110630225005.GA1839@intel.com> Date: Sun, 03 Jul 2011 11:27:00 -0000 Message-ID: Subject: Re: PATCH: PR target/49600: Bad SSE2 int->float split in i386.md From: Uros Bizjak To: "H.J. Lu" Cc: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=000e0cd25136c7a0db04a728875b Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-07/txt/msg00146.txt.bz2 --000e0cd25136c7a0db04a728875b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 811 On Fri, Jul 1, 2011 at 12:50 AM, H.J. Lu wrote: > In one SSE2 int->float split, when TARGET_USE_VECTOR_CONVERTS is true, > TARGET_INTER_UNIT_MOVES is false and GENERAL_REG_P (op1) is true. we > will get gcc_unreachable. =A0This patch removes TARGET_INTER_UNIT_MOVES > check. =A0OK for trunk? This will result in register allocation failure. Operand 0 of sse2_loadld pattern has conditional constraint Yi that depends on TARGET_INTER_UNIT_MOVES, so we can't blindly generate sse2_loadld after reload. I'm testing attached patch. BTW: Do you perhaps have a testcase for this problem? 2011-07-03 Uros Bizjak PR target/49600 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in general register to memory for !TARGET_INTER_UNIT_MOVES. Thanks, Uros. --000e0cd25136c7a0db04a728875b Content-Type: text/plain; charset=US-ASCII; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpnx0zt80 Content-length: 1342 SW5kZXg6IGkzODYubWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaTM4 Ni5tZAkocmV2aXNpb24gMTc1Nzg2KQorKysgaTM4Ni5tZAkod29ya2luZyBj b3B5KQpAQCAtNDk1OSwxMSArNDk1OSwyMCBAQAogICBpZiAoR0VUX0NPREUg KG9wMSkgPT0gU1VCUkVHKQogICAgIG9wMSA9IFNVQlJFR19SRUcgKG9wMSk7 CiAKLSAgaWYgKEdFTkVSQUxfUkVHX1AgKG9wMSkgJiYgVEFSR0VUX0lOVEVS X1VOSVRfTU9WRVMpCisgIGlmIChHRU5FUkFMX1JFR19QIChvcDEpKQogICAg IHsKICAgICAgIG9wZXJhbmRzWzRdID0gc2ltcGxpZnlfZ2VuX3N1YnJlZyAo VjRTSW1vZGUsIG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlLCAwKTsKLSAgICAg IGVtaXRfaW5zbiAoZ2VuX3NzZTJfbG9hZGxkIChvcGVyYW5kc1s0XSwKLQkJ CQkgIENPTlNUMF9SVFggKFY0U0ltb2RlKSwgb3BlcmFuZHNbMV0pKTsKKyAg ICAgIGlmIChUQVJHRVRfSU5URVJfVU5JVF9NT1ZFUykKKwllbWl0X2luc24g KGdlbl9zc2UyX2xvYWRsZCAob3BlcmFuZHNbNF0sCisJCQkJICAgIENPTlNU MF9SVFggKFY0U0ltb2RlKSwgb3BlcmFuZHNbMV0pKTsKKyAgICAgIGVsc2UK Kwl7CisJICBvcGVyYW5kc1s1XSA9IGl4ODZfZm9yY2VfdG9fbWVtb3J5IChH RVRfTU9ERSAob3BlcmFuZHNbMV0pLAorCQkJCQkgICAgICBvcGVyYW5kc1sx XSk7CisJICBlbWl0X2luc24gKGdlbl9zc2UyX2xvYWRsZCAob3BlcmFuZHNb NF0sCisJCQkJICAgICAgQ09OU1QwX1JUWCAoVjRTSW1vZGUpLCBvcGVyYW5k c1s1XSkpOworCSAgaXg4Nl9mcmVlX2Zyb21fbWVtb3J5IChHRVRfTU9ERSAo b3BlcmFuZHNbMV0pKTsKKwl9CiAgICAgfQogICAvKiBXZSBjYW4gaWdub3Jl IHBvc3NpYmxlIHRyYXBwaW5nIHZhbHVlIGluIHRoZQogICAgICBoaWdoIHBh cnQgb2YgU1NFIHJlZ2lzdGVyIGZvciBub24tdHJhcHBpbmcgbWF0aC4gKi8K --000e0cd25136c7a0db04a728875b--