From patchwork Mon Dec 8 23:33:24 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Evgeny Stupachenko X-Patchwork-Id: 418909 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 0E814140079 for ; Tue, 9 Dec 2014 10:33:34 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:date:message-id:subject:from:to:content-type; q= dns; s=default; b=uNgZ9bKbtzBqDY/ffdUPfs90k7IAw3VX8JpT1jBLSj3Xj/ ErMKGAXUUvQaVU91J+YdIJw7x4FMbdE6daL7gJbooo4d7zqIIePOraCCSN3NzCEr 3eK5KDokIy7YoCdipDYGSpNHIPzAHrcLbyxQ+TRuFxjbLzRcIJ//02WZvJ7ys= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:date:message-id:subject:from:to:content-type; s= default; bh=e96yi/FgD1LXMALvKuswqFUnLjc=; b=JsXovNhGdF94MDnoIzkw BROQbn7wrUt6RH+Z2IBQsqUR6jOaIv3drU2tdrhSyD6EJzdBVBTpTgISJYUCFb8F ZqSpqU58tahEEinI2w3QfhscJAbB/RB1TLR0a3EMnjVv3jM3a8RkpvZzkaLphFMl wqaWFmY4chzho7MMzzZqrhM= Received: (qmail 17090 invoked by alias); 8 Dec 2014 23:33:28 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 17080 invoked by uid 89); 8 Dec 2014 23:33:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ie0-f180.google.com Received: from mail-ie0-f180.google.com (HELO mail-ie0-f180.google.com) (209.85.223.180) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 08 Dec 2014 23:33:26 +0000 Received: by mail-ie0-f180.google.com with SMTP id rp18so5333970iec.25 for ; Mon, 08 Dec 2014 15:33:24 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.50.47.102 with SMTP id c6mr3712ign.27.1418081604536; Mon, 08 Dec 2014 15:33:24 -0800 (PST) Received: by 10.107.135.82 with HTTP; Mon, 8 Dec 2014 15:33:24 -0800 (PST) Date: Tue, 9 Dec 2014 02:33:24 +0300 Message-ID: Subject: [PATCH, x86] Fix pblendv expand. From: Evgeny Stupachenko To: GCC Patches , Uros Bizjak , Richard Henderson X-IsSubscribed: yes Hi, The patch fix pblendv expand. The bug was uncovered when permutation operands are constants. In this case we init target register for expand_vec_perm_1 with constant and then rewrite the target with constant for expand_vec_perm_pblend. The patch fixes 403.gcc execution, compiled with -Ofast -funroll-loops -flto -march=corei7. Bootstrap and make check passed. Is it ok? Evgeny 2014-12-09 Evgeny Stupachenko gcc/ * config/i386/i386.c (expand_vec_perm_pblendv): Gen new rtx for expand_vec_perm_1 target. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index eafc15a..5a914ad 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -47546,6 +47546,7 @@ expand_vec_perm_pblendv (struct expand_vec_perm_d *d) dcopy.op0 = dcopy.op1 = d->op1; else dcopy.op0 = dcopy.op1 = d->op0; + dcopy.target = gen_reg_rtx (vmode); dcopy.one_operand_p = true; for (i = 0; i < nelt; ++i)