* 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).