OSDN Git Service

2006-07-05 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Jul 2006 16:24:57 +0000 (16:24 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Jul 2006 16:24:57 +0000 (16:24 +0000)
PR target/28158
* config/i386/i386.md (*negdf2_1): Restrict pattern to
TARGET_SSE2 targets if using SSE math.
(*absdf2_1): Likewise.

* gfortran.dg/pr28158.f90: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115203 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr28158.f90 [new file with mode: 0644]

index 798fe03..93de949 100644 (file)
@@ -1,5 +1,12 @@
 2006-07-05  Richard Guenther  <rguenther@suse.de>
 
+       PR target/28158
+       * config/i386/i386.md (*negdf2_1): Restrict pattern to
+       TARGET_SSE2 targets if using SSE math.
+       (*absdf2_1): Likewise.
+
+2006-07-05  Richard Guenther  <rguenther@suse.de>
+
        PR tree-optimization/28162
        * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
        make sure to convert the operands to the correct type.
index 80c352c..ee2e76b 100644 (file)
 (define_insn "*negdf2_1"
   [(set (match_operand:DF 0 "register_operand" "=f")
        (neg:DF (match_operand:DF 1 "register_operand" "0")))]
-  "TARGET_80387 && (reload_completed || !TARGET_SSE_MATH)"
+  "TARGET_80387 && (reload_completed || !(TARGET_SSE2 && TARGET_SSE_MATH))"
   "fchs"
   [(set_attr "type" "fsgn")
    (set_attr "mode" "DF")])
 (define_insn "*absdf2_1"
   [(set (match_operand:DF 0 "register_operand" "=f")
        (abs:DF (match_operand:DF 1 "register_operand" "0")))]
-  "TARGET_80387 && (reload_completed || !TARGET_SSE_MATH)"
+  "TARGET_80387 && (reload_completed || !(TARGET_SSE2 && TARGET_SSE_MATH))"
   "fabs"
   [(set_attr "type" "fsgn")
    (set_attr "mode" "DF")])
index e40ce0b..60e18a3 100644 (file)
@@ -1,5 +1,10 @@
 2006-07-05  Richard Guenther  <rguenther@suse.de>
 
+       PR target/28158
+       * gfortran.dg/pr28158.f90: New testcase.
+
+2006-07-05  Richard Guenther  <rguenther@suse.de>
+
        PR tree-optimization/28162
        * gcc.dg/pr28162.c: New testcase.
 
diff --git a/gcc/testsuite/gfortran.dg/pr28158.f90 b/gcc/testsuite/gfortran.dg/pr28158.f90
new file mode 100644 (file)
index 0000000..4556ecd
--- /dev/null
@@ -0,0 +1,7 @@
+! { dg-do compile { target i?86-*-* x86_64-*-* } }
+! { dg-require-effective-target ilp32 }
+! { dg-options "-O -msse -mfpmath=sse" }
+    subroutine yhalf(z)
+    complex cdexpj,z
+    z=cdexpj((0.d0,1.d0)*z)
+    end