Commit d5dfe0b8 by Richard Henderson Committed by Richard Henderson

target-supports.exp (check_effective_target_vect_no_int_max): Rename from…

target-supports.exp (check_effective_target_vect_no_int_max): Rename from check_effective_target_vect_no_max.

        * lib/target-supports.exp (check_effective_target_vect_no_int_max):
        Rename from check_effective_target_vect_no_max.
        (check_effective_target_vect_no_int_add): New.
        * gcc.dg/vect/vect-13.c: Use vect_no_int_max.
        * gcc.dg/vect/vect-91.c: Use vect_no_int_add.
        * gcc.dg/vect/vect-reduc-3.c: Likewise.
        * gcc.dg/vect/vect-reduc-1.c: Use both.
        * gcc.dg/vect/vect-reduc-2.c: Likewise.

From-SVN: r101435
parent 70707f6c
2005-05-29 Richard Henderson <rth@redhat.com> 2005-05-29 Richard Henderson <rth@redhat.com>
* lib/target-supports.exp (check_effective_target_vect_no_int_max):
Rename from check_effective_target_vect_no_max.
(check_effective_target_vect_no_int_add): New.
* gcc.dg/vect/vect-13.c: Use vect_no_int_max.
* gcc.dg/vect/vect-91.c: Use vect_no_int_add.
* gcc.dg/vect/vect-reduc-3.c: Likewise.
* gcc.dg/vect/vect-reduc-1.c: Use both.
* gcc.dg/vect/vect-reduc-2.c: Likewise.
2005-05-29 Richard Henderson <rth@redhat.com>
* lib/target-supports.exp (check_effective_target_vect_no_max): * lib/target-supports.exp (check_effective_target_vect_no_max):
Remove i386 and x86_64. Remove i386 and x86_64.
......
...@@ -36,6 +36,6 @@ int main (void) ...@@ -36,6 +36,6 @@ int main (void)
return main1 (); return main1 ();
} }
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_max } } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_max } } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */ /* { dg-final { cleanup-tree-dump "vect" } } */
...@@ -63,7 +63,7 @@ main3 () ...@@ -63,7 +63,7 @@ main3 ()
/* Currently only the loops in main2 and main3 get vectorized. After the merge /* Currently only the loops in main2 and main3 get vectorized. After the merge
of the datarefs-analysis cleanups from autovect-branch to mainline, the loop of the datarefs-analysis cleanups from autovect-branch to mainline, the loop
in main1 will also be vectorized. */ in main1 will also be vectorized. */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail vect_no_int_add } } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
/* { dg-final { scan-tree-dump-times "accesses have the same alignment." 2 "vect" } } */ /* { dg-final { scan-tree-dump-times "accesses have the same alignment." 2 "vect" } } */
/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
......
...@@ -50,5 +50,5 @@ int main (void) ...@@ -50,5 +50,5 @@ int main (void)
return 0; return 0;
} }
/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_max } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */ /* { dg-final { cleanup-tree-dump "vect" } } */
...@@ -47,5 +47,5 @@ int main (void) ...@@ -47,5 +47,5 @@ int main (void)
return 0; return 0;
} }
/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_max } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */ /* { dg-final { cleanup-tree-dump "vect" } } */
...@@ -36,5 +36,5 @@ int main (void) ...@@ -36,5 +36,5 @@ int main (void)
return 0; return 0;
} }
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_add } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */ /* { dg-final { cleanup-tree-dump "vect" } } */
...@@ -962,24 +962,45 @@ proc check_effective_target_vect_double { } { ...@@ -962,24 +962,45 @@ proc check_effective_target_vect_double { } {
} }
# Return 1 if the target plus current options does not support a vector # Return 1 if the target plus current options does not support a vector
# max instruction, 0 otherwise. # max instruction on "int", 0 otherwise.
# #
# This won't change for different subtargets so cache the result. # This won't change for different subtargets so cache the result.
proc check_effective_target_vect_no_max { } { proc check_effective_target_vect_no_int_max { } {
global et_vect_no_max_saved global et_vect_no_int_max_saved
if [info exists et_vect_no_max_saved] { if [info exists et_vect_no_int_max_saved] {
verbose "check_effective_target_vect_no_max: using cached result" 2 verbose "check_effective_target_vect_no_int_max: using cached result" 2
} else { } else {
set et_vect_no_max_saved 0 set et_vect_no_int_max_saved 0
if { [istarget sparc*-*-*] if { [istarget sparc*-*-*]
|| [istarget alpha*-*-*] } { || [istarget alpha*-*-*] } {
set et_vect_no_max_saved 1 set et_vect_no_int_max_saved 1
} }
} }
verbose "check_effective_target_vect_no_max: returning $et_vect_no_max_saved" 2 verbose "check_effective_target_vect_no_int_max: returning $et_vect_no_int_max_saved" 2
return $et_vect_no_max_saved return $et_vect_no_int_max_saved
}
# Return 1 if the target plus current options does not support a vector
# add instruction on "int", 0 otherwise.
#
# This won't change for different subtargets so cache the result.
proc check_effective_target_vect_no_int_add { } {
global et_vect_no_int_add_saved
if [info exists et_vect_no_int_add_saved] {
verbose "check_effective_target_vect_no_int_add: using cached result" 2
} else {
set et_vect_no_int_add_saved 0
# Alpha only supports vector add on V8QI and V4HI.
if { [istarget alpha*-*-*] } {
set et_vect_no_int_add_saved 1
}
}
verbose "check_effective_target_vect_no_int_add: returning $et_vect_no_int_add_saved" 2
return $et_vect_no_int_add_saved
} }
# Return 1 if the target plus current options does not support vector # Return 1 if the target plus current options does not support vector
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment