public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [PATCH 2/2] Enable auto-vectorization for PowerPC 750CL paired-single  instructions
       [not found] <OF2476F7FF.0431BF8D-ONC2257376.0046FB9E-C2257383.00571FD1@LocalDomain>
@ 2007-10-29 17:09 ` Dorit Nuzman
  2007-10-29 20:13   ` Revital1 Eres
  0 siblings, 1 reply; 4+ messages in thread
From: Dorit Nuzman @ 2007-10-29 17:09 UTC (permalink / raw)
  To: Revital1 Eres; +Cc: dje, gcc-patches, Ira Rosen, Victor Kaplansky



Revital1 Eres/Haifa/IBM wrote on 29/10/2007 08:51:37:

> Hello,
>
> This patch adds the relevant support in the vectorizer testsuite to
> auto-vectorize the 750CL paired-single instructions.  It also contains
> new tests.
>
> Bootstrapped and tested together with the patch (1/2).
>

did you test the new testcases on something other than 750CL (ppc, i386)?

(noticed this typo:

+proc check_750cl_hw_available { } {
...
+
+        # If this is not the right target than we can quit.

than --> then)


dorit

> OK for mainline?
>
> Thanks,
> Revital
>
> :ADDPATCH SSA (vectorizer):
>
> testsuite changelog:
>
>         * gcc.dg/vect/vect.exp: Add support for powerpc-*paired
>         target.
>         * gcc.dg/vect/tree-vect.h (check_vect): Add
>         powerpc-*paired test.
>         * lib/target-supports.exp (check_750cl_hw_available):
>         New.
>         (check_effective_target_vect_int,
>         check_effective_target_vect_intfloat_cvt,
>         check_effective_target_powerpc_altivec_ok,
>         check_effective_target_vect_long,
>         check_effective_target_vect_sdot_hi,
>         check_effective_target_vect_udot_hi,
>         check_effective_target_vect_pack_trunc,
>         check_effective_target_vect_unpack,
>         check_effective_target_vect_shift,
>         check_effective_target_vect_int_mult): Disable for
powerpc-*paired
>         target.
>         * gcc.dg/vect/vect-ifcvt-11.c: New.
>         * gcc.dg/vect/vect-ifcvt-12.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-13.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-14.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-15.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-16.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-17.c: Likewise.
>
> [attachment "patch_testsuite_27_750cl.txt" deleted by Dorit
Nuzman/Haifa/IBM]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] Enable auto-vectorization for PowerPC 750CL paired-single   instructions
  2007-10-29 17:09 ` [PATCH 2/2] Enable auto-vectorization for PowerPC 750CL paired-single instructions Dorit Nuzman
@ 2007-10-29 20:13   ` Revital1 Eres
  0 siblings, 0 replies; 4+ messages in thread
From: Revital1 Eres @ 2007-10-29 20:13 UTC (permalink / raw)
  To: Dorit Nuzman; +Cc: dje, gcc-patches, Ira Rosen, Victor Kaplansky

> > Bootstrapped and tested together with the patch (1/2).
> >
>
> did you test the new testcases on something other than 750CL (ppc, i386)?

yes, I tested it also on ppc and i386.

>
> (noticed this typo:
>
> +proc check_750cl_hw_available { } {
> ...
> +
> +        # If this is not the right target than we can quit.
>
> than --> then)

Thanks, I'll fix that.

Revital

>
>
> dorit
>
> > OK for mainline?
> >
> > Thanks,
> > Revital
> >
> > :ADDPATCH SSA (vectorizer):
> >
> > testsuite changelog:
> >
> >         * gcc.dg/vect/vect.exp: Add support for powerpc-*paired
> >         target.
> >         * gcc.dg/vect/tree-vect.h (check_vect): Add
> >         powerpc-*paired test.
> >         * lib/target-supports.exp (check_750cl_hw_available):
> >         New.
> >         (check_effective_target_vect_int,
> >         check_effective_target_vect_intfloat_cvt,
> >         check_effective_target_powerpc_altivec_ok,
> >         check_effective_target_vect_long,
> >         check_effective_target_vect_sdot_hi,
> >         check_effective_target_vect_udot_hi,
> >         check_effective_target_vect_pack_trunc,
> >         check_effective_target_vect_unpack,
> >         check_effective_target_vect_shift,
> >         check_effective_target_vect_int_mult): Disable for
> powerpc-*paired
> >         target.
> >         * gcc.dg/vect/vect-ifcvt-11.c: New.
> >         * gcc.dg/vect/vect-ifcvt-12.c: Likewise.
> >         * gcc.dg/vect/vect-ifcvt-13.c: Likewise.
> >         * gcc.dg/vect/vect-ifcvt-14.c: Likewise.
> >         * gcc.dg/vect/vect-ifcvt-15.c: Likewise.
> >         * gcc.dg/vect/vect-ifcvt-16.c: Likewise.
> >         * gcc.dg/vect/vect-ifcvt-17.c: Likewise.
> >
> > [attachment "patch_testsuite_27_750cl.txt" deleted by Dorit
> Nuzman/Haifa/IBM]
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] Enable auto-vectorization for PowerPC 750CL paired-single   instructions
  2007-10-29 16:55 Revital1 Eres
@ 2007-10-31 13:24 ` Revital1 Eres
  0 siblings, 0 replies; 4+ messages in thread
From: Revital1 Eres @ 2007-10-31 13:24 UTC (permalink / raw)
  To: gcc-patches; +Cc: dje, janis187, Dorit Nuzman, Ira Rosen, Victor Kaplansky

Janis approved this part offline.  I will commit it with Dorit's comment
regarding the typo.

Thanks,
Revital

gcc-patches-owner@gcc.gnu.org wrote on 29/10/2007 17:51:37:

>
> Hello,
>
> This patch adds the relevant support in the vectorizer testsuite to
> auto-vectorize the 750CL paired-single instructions.  It also contains
> new tests.
>
> Bootstrapped and tested together with the patch (1/2).
>
> OK for mainline?
>
> Thanks,
> Revital
>
> :ADDPATCH SSA (vectorizer):
>
> testsuite changelog:
>
>         * gcc.dg/vect/vect.exp: Add support for powerpc-*paired
>         target.
>         * gcc.dg/vect/tree-vect.h (check_vect): Add
>         powerpc-*paired test.
>         * lib/target-supports.exp (check_750cl_hw_available):
>         New.
>         (check_effective_target_vect_int,
>         check_effective_target_vect_intfloat_cvt,
>         check_effective_target_powerpc_altivec_ok,
>         check_effective_target_vect_long,
>         check_effective_target_vect_sdot_hi,
>         check_effective_target_vect_udot_hi,
>         check_effective_target_vect_pack_trunc,
>         check_effective_target_vect_unpack,
>         check_effective_target_vect_shift,
>         check_effective_target_vect_int_mult): Disable for
powerpc-*paired
>         target.
>         * gcc.dg/vect/vect-ifcvt-11.c: New.
>         * gcc.dg/vect/vect-ifcvt-12.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-13.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-14.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-15.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-16.c: Likewise.
>         * gcc.dg/vect/vect-ifcvt-17.c: Likewise.
>
> (See attached file: patch_testsuite_27_750cl.txt)[attachment
> "patch_testsuite_27_750cl.txt" deleted by Revital1 Eres/Haifa/IBM]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/2] Enable auto-vectorization for PowerPC 750CL paired-single  instructions
@ 2007-10-29 16:55 Revital1 Eres
  2007-10-31 13:24 ` Revital1 Eres
  0 siblings, 1 reply; 4+ messages in thread
From: Revital1 Eres @ 2007-10-29 16:55 UTC (permalink / raw)
  To: gcc-patches; +Cc: dje, Dorit Nuzman, Ira Rosen, Victor Kaplansky

[-- Attachment #1: Type: text/plain, Size: 1428 bytes --]


Hello,

This patch adds the relevant support in the vectorizer testsuite to
auto-vectorize the 750CL paired-single instructions.  It also contains
new tests.

Bootstrapped and tested together with the patch (1/2).

OK for mainline?

Thanks,
Revital

:ADDPATCH SSA (vectorizer):

testsuite changelog:

        * gcc.dg/vect/vect.exp: Add support for powerpc-*paired
        target.
        * gcc.dg/vect/tree-vect.h (check_vect): Add
        powerpc-*paired test.
        * lib/target-supports.exp (check_750cl_hw_available):
        New.
        (check_effective_target_vect_int,
        check_effective_target_vect_intfloat_cvt,
        check_effective_target_powerpc_altivec_ok,
        check_effective_target_vect_long,
        check_effective_target_vect_sdot_hi,
        check_effective_target_vect_udot_hi,
        check_effective_target_vect_pack_trunc,
        check_effective_target_vect_unpack,
        check_effective_target_vect_shift,
        check_effective_target_vect_int_mult): Disable for powerpc-*paired
        target.
        * gcc.dg/vect/vect-ifcvt-11.c: New.
        * gcc.dg/vect/vect-ifcvt-12.c: Likewise.
        * gcc.dg/vect/vect-ifcvt-13.c: Likewise.
        * gcc.dg/vect/vect-ifcvt-14.c: Likewise.
        * gcc.dg/vect/vect-ifcvt-15.c: Likewise.
        * gcc.dg/vect/vect-ifcvt-16.c: Likewise.
        * gcc.dg/vect/vect-ifcvt-17.c: Likewise.

(See attached file: patch_testsuite_27_750cl.txt)

[-- Attachment #2: patch_testsuite_27_750cl.txt --]
[-- Type: text/plain, Size: 14767 bytes --]

Index: testsuite/gcc.dg/vect/vect-ifcvt-17.c
===================================================================
--- testsuite/gcc.dg/vect/vect-ifcvt-17.c	(revision 0)
+++ testsuite/gcc.dg/vect/vect-ifcvt-17.c	(revision 0)
@@ -0,0 +1,33 @@
+/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_float } */
+
+#include <stdarg.h>
+#include <signal.h>
+#include "tree-vect.h"
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+  float A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,42,78,89,11};
+  float B[N] = {42,42,0,42,42,42,42,42,42,42,42,42,0,42,42,42};
+  int i, j;
+
+  check_vect ();
+
+  for (i = 0; i < 16; i++)
+    A[i] = ( A[i] == MAX ? 0 : MAX);
+
+  /* check results:  */
+  for (i = 0; i < N; i++)
+    if (A[i] != B[i])
+      abort ();
+
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
Index: testsuite/gcc.dg/vect/vect-ifcvt-11.c
===================================================================
--- testsuite/gcc.dg/vect/vect-ifcvt-11.c	(revision 0)
+++ testsuite/gcc.dg/vect/vect-ifcvt-11.c	(revision 0)
@@ -0,0 +1,33 @@
+/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_float } */
+
+#include <stdarg.h>
+#include <signal.h>
+#include "tree-vect.h"
+
+#define N 16
+#define MAX 42
+
+extern void abort(void); 
+
+int main ()
+{  
+  float A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+  float B[N] = {0,0,42,42,42,0,0,0,0,0,42,42,42,42,42,0};
+  int i, j;
+
+  check_vect ();
+
+  for (i = 0; i < 16; i++)
+    A[i] = ( A[i] >= MAX ? MAX : 0); 
+
+  /* check results:  */
+  for (i = 0; i < N; i++)
+    if (A[i] != B[i])
+      abort ();
+
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
Index: testsuite/gcc.dg/vect/tree-vect.h
===================================================================
--- testsuite/gcc.dg/vect/tree-vect.h	(revision 129679)
+++ testsuite/gcc.dg/vect/tree-vect.h	(working copy)
@@ -13,7 +13,10 @@
 void check_vect (void)
 {
   signal(SIGILL, sig_ill_handler);
-#if defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__) || defined(powerpc)
+#if defined(__PAIRED__)
+  /* 750CL paired-single instruction, 'ps_mul %v0,%v0,%v0'.  */
+ asm volatile (".long 0x10000032");
+#elif defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__) || defined(powerpc)
   /* Altivec instruction, 'vor %v0,%v0,%v0'.  */
   asm volatile (".long 0x10000484");
 #elif defined(__i386__) || defined(__x86_64__)
Index: testsuite/gcc.dg/vect/vect-ifcvt-12.c
===================================================================
--- testsuite/gcc.dg/vect/vect-ifcvt-12.c	(revision 0)
+++ testsuite/gcc.dg/vect/vect-ifcvt-12.c	(revision 0)
@@ -0,0 +1,32 @@
+/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_float } */
+
+#include <stdarg.h>
+#include <signal.h>
+#include "tree-vect.h"
+
+#define N 16
+#define MAX 42
+
+extern void abort(void); 
+
+int main ()
+{  
+  float A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+  float B[N] = {0,0,0,42,42,0,0,0,0,0,42,42,42,42,42,0};
+  int i, j;
+
+  check_vect ();
+  for (i = 0; i < 16; i++)
+    A[i] = ( A[i] > MAX ? MAX : 0); 
+
+  /* check results:  */
+  for (i = 0; i < N; i++)
+    if (A[i] != B[i])
+      abort ();
+
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
Index: testsuite/gcc.dg/vect/vect-ifcvt-13.c
===================================================================
--- testsuite/gcc.dg/vect/vect-ifcvt-13.c	(revision 0)
+++ testsuite/gcc.dg/vect/vect-ifcvt-13.c	(revision 0)
@@ -0,0 +1,33 @@
+/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_float } */
+
+#include <stdarg.h>
+#include <signal.h>
+#include "tree-vect.h"
+
+#define N 16
+#define MAX 42
+
+extern void abort(void); 
+
+int main ()
+{  
+  float A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+  float B[N] = {42,42,42,0,0,42,42,42,42,42,0,0,0,0,0,42};
+  int i, j;
+
+  check_vect ();
+
+  for (i = 0; i < 16; i++)
+    A[i] = ( A[i] <= MAX ? MAX : 0); 
+
+  /* check results:  */
+  for (i = 0; i < N; i++)
+    if (A[i] != B[i])
+      abort ();
+
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
Index: testsuite/gcc.dg/vect/vect-ifcvt-14.c
===================================================================
--- testsuite/gcc.dg/vect/vect-ifcvt-14.c	(revision 0)
+++ testsuite/gcc.dg/vect/vect-ifcvt-14.c	(revision 0)
@@ -0,0 +1,33 @@
+/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_float } */
+
+#include <stdarg.h>
+#include <signal.h>
+#include "tree-vect.h"
+
+#define N 16
+#define MAX 42
+
+extern void abort(void); 
+
+int main ()
+{  
+  float A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+  float B[N] = {42,42,42,0,0,42,42,42,42,42,0,0,0,0,0,42};
+  int i, j;
+
+  check_vect ();
+
+  for (i = 0; i < 16; i++)
+    A[i] = ( A[i] <= MAX ? MAX : 0); 
+
+  /* check results:  */
+  for (i = 0; i < N; i++)
+    if (A[i] != B[i])
+      abort ();
+
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
Index: testsuite/gcc.dg/vect/vect.exp
===================================================================
--- testsuite/gcc.dg/vect/vect.exp	(revision 129679)
+++ testsuite/gcc.dg/vect/vect.exp	(working copy)
@@ -36,7 +36,14 @@
 # Skip these tests for targets that do not support generating vector
 # code.  Set additional target-dependent vector flags, which can be
 # overridden by using dg-options in individual tests.
-if [istarget "powerpc*-*-*"] {
+if  [istarget "powerpc-*paired*"]  {
+   lappend DEFAULT_VECTCFLAGS "-mpaired"
+    if [check_750cl_hw_available] {
+        set dg-do-what-default run 
+    } else {
+        set dg-do-what-default compile
+    }
+} elseif [istarget "powerpc*-*-*"] {
     # Skip targets not supporting -maltivec.
     if ![is-effective-target powerpc_altivec_ok] {
 	return
Index: testsuite/gcc.dg/vect/vect-ifcvt-15.c
===================================================================
--- testsuite/gcc.dg/vect/vect-ifcvt-15.c	(revision 0)
+++ testsuite/gcc.dg/vect/vect-ifcvt-15.c	(revision 0)
@@ -0,0 +1,33 @@
+/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_float } */
+
+#include <stdarg.h>
+#include <signal.h>
+#include "tree-vect.h"
+
+#define N 16
+#define MAX 42
+
+extern void abort(void); 
+
+int main ()
+{  
+  float A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+  float B[N] = {42,42,0,0,0,42,42,42,42,42,0,0,0,0,0,42};
+  int i, j;
+
+  check_vect ();
+
+  for (i = 0; i < 16; i++)
+    A[i] = ( A[i] < MAX ? MAX : 0); 
+
+  /* check results:  */
+  for (i = 0; i < N; i++)
+    if (A[i] != B[i])
+      abort ();
+
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
Index: testsuite/gcc.dg/vect/vect-ifcvt-16.c
===================================================================
--- testsuite/gcc.dg/vect/vect-ifcvt-16.c	(revision 0)
+++ testsuite/gcc.dg/vect/vect-ifcvt-16.c	(revision 0)
@@ -0,0 +1,33 @@
+/* { dg-require-effective-target vect_condition } */
+/* { dg-require-effective-target vect_float } */
+
+#include <stdarg.h>
+#include <signal.h>
+#include "tree-vect.h"
+
+#define N 16
+#define MAX 42
+
+extern void abort(void); 
+
+int main ()
+{  
+  float A[N] = {36,39,42,45,43,32,21,42,23,34,45,56,67,42,89,11};
+  float B[N] = {42,42,0,42,42,42,42,0,42,42,42,42,42,0,42,42};
+  int i, j;
+
+  check_vect ();
+
+  for (i = 0; i < 16; i++)
+    A[i] = ( A[i] != MAX ? MAX : 0); 
+
+  /* check results:  */
+  for (i = 0; i < N; i++)
+    if (A[i] != B[i])
+      abort ();
+
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
Index: testsuite/lib/target-supports.exp
===================================================================
--- testsuite/lib/target-supports.exp	(revision 129679)
+++ testsuite/lib/target-supports.exp	(working copy)
@@ -906,6 +906,63 @@
     return $et_static_libgfortran_saved
 }
 
+# Return 1 if the target supports executing 750CL paired-single instructions, 0
+# otherwise.  Cache the result.
+
+proc check_750cl_hw_available { } {
+    global 750cl_hw_available_saved
+    global tool
+
+    if [info exists 750cl_hw_available_saved] {
+        verbose "check_hw_available  returning saved $750cl_hw_available_saved" 2
+    } else {
+        set 750cl_hw_available_saved 0
+
+        # If this is not the right target than we can quit.
+        if { ![istarget powerpc-*paired*] } {
+            verbose "check_hw_available  returning 0" 2
+            return $750cl_hw_available_saved
+        }
+
+        # Set up, compile, and execute a test program containing paired-single
+        # instructions.  Include the current process ID in the file
+        # names to prevent conflicts with invocations for multiple
+        # testsuites.
+        set src 750cl[pid].c
+        set exe 750cl[pid].x
+
+        set f [open $src "w"]
+        puts $f "int main() {"
+        puts $f "#ifdef __MACH__"
+        puts $f "  asm volatile (\"ps_mul v0,v0,v0\");"
+        puts $f "#else"
+        puts $f "  asm volatile (\"ps_mul 0,0,0\");"
+        puts $f "#endif"
+        puts $f "  return 0; }"
+        close $f
+
+        verbose "check_750cl_hw_available  compiling testfile $src" 2
+        set lines [${tool}_target_compile $src $exe executable "-mpaired"]
+        file delete $src
+
+        if [string match "" $lines] then {
+            # No error message, compilation succeeded.
+            set result [${tool}_load "./$exe" "" ""]
+            set status [lindex $result 0]
+            remote_file build delete $exe
+            verbose "check_750cl_hw_available testfile status is <$status>" 2
+
+            if { $status == "pass" } then {
+                set 750_hw_available_saved 1
+            }
+        } else {
+            verbose "check_750_hw_availalble testfile compilation failed" 2
+        }
+    }
+    return $750cl_hw_available_saved
+}
+
+
 # Return 1 if the target supports executing AltiVec instructions, 0
 # otherwise.  Cache the result.
 
@@ -1451,7 +1508,8 @@
     } else {
 	set et_vect_int_saved 0
 	if { [istarget i?86-*-*]
-	      || [istarget powerpc*-*-*]
+             || ([istarget powerpc*-*-*]
+                  && ![istarget powerpc-*-linux*paired*])
 	      || [istarget spu-*-*]
 	      || [istarget x86_64-*-*]
 	      || [istarget sparc*-*-*]
@@ -1476,7 +1534,8 @@
     } else {
         set et_vect_intfloat_cvt_saved 0
         if { [istarget i?86-*-*]
-              || [istarget powerpc*-*-*]
+              || ([istarget powerpc*-*-*]
+                   && ![istarget powerpc-*-linux*paired*])
               || [istarget x86_64-*-*] } {
            set et_vect_intfloat_cvt_saved 1
         }
@@ -1618,7 +1677,8 @@
 # Return 1 if this is a PowerPC target supporting -maltivec.
 
 proc check_effective_target_powerpc_altivec_ok { } {
-    if { [istarget powerpc*-*-*]
+    if { ([istarget powerpc*-*-*]
+         && ![istarget powerpc-*-linux*paired*])
 	 || [istarget rs6000-*-*] } {
 	# AltiVec is not supported on AIX before 5.3.
 	if { [istarget powerpc*-*-aix4*]
@@ -1720,7 +1780,8 @@
 	verbose "check_effective_target_vect_shift: using cached result" 2
     } else {
 	set et_vect_shift_saved 0
-	if { [istarget powerpc*-*-*]
+	if { ([istarget powerpc*-*-*]
+             && ![istarget powerpc-*-linux*paired*])
 	     || [istarget ia64-*-*]
 	     || [istarget i?86-*-*]
 	     || [istarget x86_64-*-*] } {
@@ -1738,7 +1799,9 @@
 
 proc check_effective_target_vect_long { } {
     if { [istarget i?86-*-*]
-	 || ([istarget powerpc*-*-*] && [check_effective_target_ilp32])
+	 || (([istarget powerpc*-*-*] 
+              && ![istarget powerpc-*-linux*paired*]) 
+              && [check_effective_target_ilp32])
 	 || [istarget x86_64-*-*]
 	 || ([istarget sparc*-*-*] && [check_effective_target_ilp32]) } {
 	set answer 1
@@ -2033,7 +2096,7 @@
         verbose "check_effective_target_vect_sdot_hi: using cached result" 2
     } else {
         set et_vect_sdot_hi_saved 0
-        if { [istarget powerpc*-*-*] 
+        if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
 	     || [istarget i?86-*-*]
              || [istarget x86_64-*-*] } {
             set et_vect_sdot_hi_saved 1
@@ -2055,7 +2118,7 @@
         verbose "check_effective_target_vect_udot_hi: using cached result" 2
     } else {
         set et_vect_udot_hi_saved 0
-        if { [istarget powerpc*-*-*] } {
+        if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) } {
             set et_vect_udot_hi_saved 1
         }
     }
@@ -2077,7 +2140,7 @@
         verbose "check_effective_target_vect_pack_trunc: using cached result" 2
     } else {
         set et_vect_pack_trunc_saved 0
-        if { [istarget powerpc*-*-*]
+        if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
              || [istarget i?86-*-*]
              || [istarget x86_64-*-*] } {
             set et_vect_pack_trunc_saved 1
@@ -2099,7 +2162,7 @@
         verbose "check_effective_target_vect_unpack: using cached result" 2
     } else {
         set et_vect_unpack_saved 0
-        if { [istarget powerpc*-*-*]
+        if { ([istarget powerpc*-*-*] && ![istarget powerpc-*paired*])
              || [istarget i?86-*-*]
              || [istarget x86_64-*-*] } {
             set et_vect_unpack_saved 1
@@ -2308,7 +2371,7 @@
 	verbose "check_effective_target_vect_int_mult: using cached result" 2
     } else {
 	set et_vect_int_mult_saved 0
-	if { [istarget powerpc*-*-*]
+	if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
 	     || [istarget spu-*-*]
 	     || [istarget i?86-*-*]
 	     || [istarget x86_64-*-*] } {

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-10-31  9:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <OF2476F7FF.0431BF8D-ONC2257376.0046FB9E-C2257383.00571FD1@LocalDomain>
2007-10-29 17:09 ` [PATCH 2/2] Enable auto-vectorization for PowerPC 750CL paired-single instructions Dorit Nuzman
2007-10-29 20:13   ` Revital1 Eres
2007-10-29 16:55 Revital1 Eres
2007-10-31 13:24 ` Revital1 Eres

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).