From patchwork Sat Oct 23 16:01:30 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 69005 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]) by ozlabs.org (Postfix) with SMTP id B318BB7043 for ; Sun, 24 Oct 2010 03:01:40 +1100 (EST) Received: (qmail 1114 invoked by alias); 23 Oct 2010 16:01:38 -0000 Received: (qmail 1105 invoked by uid 22791); 23 Oct 2010 16:01:37 -0000 X-SWARE-Spam-Status: No, hits=-0.7 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SARE_HTML_INV_TAG X-Spam-Check-By: sourceware.org Received: from mail-pz0-f47.google.com (HELO mail-pz0-f47.google.com) (209.85.210.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 23 Oct 2010 16:01:32 +0000 Received: by pzk27 with SMTP id 27so451841pzk.20 for ; Sat, 23 Oct 2010 09:01:31 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.115.5 with SMTP id n5mr3323906wfc.328.1287849691099; Sat, 23 Oct 2010 09:01:31 -0700 (PDT) Received: by 10.220.112.65 with HTTP; Sat, 23 Oct 2010 09:01:30 -0700 (PDT) Date: Sat, 23 Oct 2010 09:01:30 -0700 Message-ID: Subject: PATCH: PR target/46144: [4.6 regression] gfortran.dg/vect/fast-math-vect-8.f90 From: "H.J. Lu" To: Richard Henderson , Uros Bizjak Cc: GCC Patches X-IsSubscribed: yes 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 On Sat, Oct 23, 2010 at 8:50 AM, H.J. Lu wrote: > On Fri, Oct 22, 2010 at 12:40 PM, Richard Henderson wrote: >> This solves the problem that Richi saw on x86 with fma >> plus negation on vectors not being merged into fnma etc >> during combine. >> >> Tested on x86_64-linux. >> > > This caused: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46144 This patch fixes it. OK for trunk? Thanks. diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index d80be88..22963d6 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -586,10 +586,10 @@ "ix86_expand_fp_absneg_operator (, mode, operands); DONE;") (define_insn_and_split "*absneg2" - [(set (match_operand:VEC_FLOAT_MODE 0 "register_operand" "=x,x") + [(set (match_operand:VEC_FLOAT_MODE 0 "register_operand" "=x") (match_operator:VEC_FLOAT_MODE 3 "absneg_operator" - [(match_operand:VEC_FLOAT_MODE 1 "nonimmediate_operand" "0,xm")])) - (use (match_operand:VEC_FLOAT_MODE 2 "nonimmediate_operand" "xm,0"))] + [(match_operand:VEC_FLOAT_MODE 1 "nonimmediate_operand" "%0")])) + (use (match_operand:VEC_FLOAT_MODE 2 "nonimmediate_operand" "xm"))] "SSE_VEC_FLOAT_MODE_P (mode) || AVX256_VEC_FLOAT_MODE_P (mode)" "#" "&& reload_completed"