Patchwork PATCH: PR target/46144: [4.6 regression] gfortran.dg/vect/fast-math-vect-8.f90

login
register
mail settings
Submitter H.J. Lu
Date Oct. 23, 2010, 4:01 p.m.
Message ID <AANLkTime86GdTkF8RLM3RGqT3i+39qZ0D-uW7T4EQhCu@mail.gmail.com>
Download mbox | patch
Permalink /patch/69005/
State New
Headers show

Comments

H.J. Lu - Oct. 23, 2010, 4:01 p.m.
On Sat, Oct 23, 2010 at 8:50 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Oct 22, 2010 at 12:40 PM, Richard Henderson <rth@redhat.com> 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.

Patch

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 (<CODE>, <MODE>mode, operands); DONE;")
 
 (define_insn_and_split "*absneg<mode>2"
-  [(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>mode) || AVX256_VEC_FLOAT_MODE_P (<MODE>mode)"
   "#"
   "&& reload_completed"