OSDN Git Service

Support AVX for cmpss/cmpsd.
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 May 2010 12:48:02 +0000 (12:48 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:06:12 +0000 (14:06 +0900)
gcc/

2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>

PR target/44088
* config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.

gcc/testsuite/

2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>

PR target/44088
* gcc.target/i386/avx-cmpsd-1.c: New.
* gcc.target/i386/avx-cmpsd-2.c: Likewise.
* gcc.target/i386/avx-cmpss-1.c: Likewise.
* gcc.target/i386/avx-cmpss-2.c: Likewise.
* gcc.target/i386/sse-cmpss-1.c: Likewise.
* gcc.target/i386/sse2-cmpsd-1.c: Likewise.

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

gcc/ChangeLog
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c
gcc/testsuite/gcc.target/i386/avx-cmpss-1.c
gcc/testsuite/gcc.target/i386/sse2-cmpsd-1.c

index 52f8319..09043fd 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/44088
+       * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
+
 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/44085
index 0baefd8..efe55e8 100644 (file)
    (set_attr "length_immediate" "1")
    (set_attr "mode" "<MODE>")])
 
+(define_insn "*avx_vmmaskcmp<mode>3"
+  [(set (match_operand:SSEMODEF2P 0 "register_operand" "=x")
+       (vec_merge:SSEMODEF2P
+        (match_operator:SSEMODEF2P 3 "sse_comparison_operator"
+               [(match_operand:SSEMODEF2P 1 "register_operand" "x")
+                (match_operand:SSEMODEF2P 2 "nonimmediate_operand" "xm")])
+        (match_dup 1)
+        (const_int 1)))]
+  "AVX_VEC_FLOAT_MODE_P (<MODE>mode)"
+  "vcmp%D3s<ssemodesuffixf2c>\t{%2, %1, %0|%0, %1, %2}"
+  [(set_attr "type" "ssecmp")
+   (set_attr "prefix" "vex")
+   (set_attr "mode" "<ssescalarmode>")])
+
 (define_insn "<sse>_vmmaskcmp<mode>3"
   [(set (match_operand:SSEMODEF2P 0 "register_operand" "=x")
        (vec_merge:SSEMODEF2P
index d2628e4..e5f3a50 100644 (file)
@@ -1,3 +1,13 @@
+2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/44088
+       * gcc.target/i386/avx-cmpsd-1.c: New.
+       * gcc.target/i386/avx-cmpsd-2.c: Likewise.
+       * gcc.target/i386/avx-cmpss-1.c: Likewise.
+       * gcc.target/i386/avx-cmpss-2.c: Likewise.
+       * gcc.target/i386/sse-cmpss-1.c: Likewise.
+       * gcc.target/i386/sse2-cmpsd-1.c: Likewise.
+
 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/44085
index 65cda0b..ad59f26 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target avx } */
-/* { dg-options "-O2 -mavx -std=c99" } */
+/* { dg-options "-O2 -mavx" } */
 
 #define CHECK_H "avx-check.h"
 #define TEST avx_test
index b2603aa..c0cdd68 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target avx } */
-/* { dg-options "-O2 -mavx -std=c99" } */
+/* { dg-options "-O2 -mavx" } */
 
 #define CHECK_H "avx-check.h"
 #define TEST avx_test
index 953f220..224a609 100644 (file)
@@ -1,6 +1,5 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -msse2 -std=c99" } */
-/* { dg-require-effective-target sse2 } */
 
 #ifndef CHECK_H
 #define CHECK_H "sse2-check.h"