Commit 8ff27c24 by Victor Kaplansky Committed by Victor Kaplansky

spu.md (vec_extract_evenv4si, [...]): Implement.S

2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
            Dorit Nuzman  <dorit@il.ibm.com>

        * gcc/config/spu/spu.md (vec_extract_evenv4si,
        vec_extract_evenv4sf, vec_extract_evenv8hi,
        vec_extract_evenv16qi, vec_extract_oddv4si,
        vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
        vec_interleave_highv4sf, vec_interleave_lowv4sf,
        vec_interleave_highv4si, vec_interleave_lowv4si,
        vec_interleave_highv8hi, vec_interleave_lowv8hi,
        vec_interleave_highv16qi, vec_interleave_lowv16qi,
        vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S

Testsuite

	* gcc.dg/vect/slp-18.c: Require vect_intfloat_cvt.
	* gcc.dg/vect/slp-11.c: Likewise.
	* gcc.dg/vect/fast-math-pr35982.c: Likewise.
	* lib/target-supports.exp:
	(check_effective_target_vect_pack_trunc): Add SPU to the list.
	(check_effective_target_vect_extract_even_odd): Likewise.
	(check_effective_target_vect_extract_even_odd_wide): Likewise.
	(check_effective_target_vect_interleave): Likewise.


Co-Authored-By: Dorit Nuzman <dorit@il.ibm.com>

From-SVN: r139589
parent 77b31725
2008-08-26 Victor Kaplansky <victork@il.ibm.com>
Dorit Nuzman <dorit@il.ibm.com>
* gcc/config/spu/spu.md (vec_extract_evenv4si,
vec_extract_evenv4sf, vec_extract_evenv8hi,
vec_extract_evenv16qi, vec_extract_oddv4si,
vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
vec_interleave_highv4sf, vec_interleave_lowv4sf,
vec_interleave_highv4si, vec_interleave_lowv4si,
vec_interleave_highv8hi, vec_interleave_lowv8hi,
vec_interleave_highv16qi, vec_interleave_lowv16qi,
vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
2008-08-25 Janis Johnson <janis187@us.ibm.com>
PR target/36756
......
2008-08-26 Victor Kaplansky <victork@il.ibm.com>
* gcc.dg/vect/slp-18.c: Require vect_intfloat_cvt.
* gcc.dg/vect/slp-11.c: Likewise.
* gcc.dg/vect/fast-math-pr35982.c: Likewise.
* lib/target-supports.exp:
(check_effective_target_vect_pack_trunc): Add SPU to the list.
(check_effective_target_vect_extract_even_odd): Likewise.
(check_effective_target_vect_extract_even_odd_wide): Likewise.
(check_effective_target_vect_interleave): Likewise.
2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Andrew Pinski <andrew_pinski@playstation.sony.com>
......
/* { dg-do compile } */
/* { dg-require-effective-target vect_float } */
/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_intfloat_cvt } */
struct mem
{
......
......@@ -106,7 +106,8 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { target { vect_strided_wide && vect_int_mult } } } } */
/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { target { { vect_intfloat_cvt && vect_strided_wide } && vect_int_mult } } } } */
/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target { { { ! vect_intfloat_cvt } && vect_strided_wide } && vect_int_mult } } } } */
/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" {target { ! { vect_int_mult && vect_strided_wide } } } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
......
/* { dg-require-effective-target vect_int } */
/* { dg-require-effective-target vect_intfloat_cvt } */
#include <stdarg.h>
#include <stdio.h>
......
......@@ -1830,7 +1830,8 @@ proc check_effective_target_vect_pack_trunc { } {
set et_vect_pack_trunc_saved 0
if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
|| [istarget i?86-*-*]
|| [istarget x86_64-*-*] } {
|| [istarget x86_64-*-*]
|| [istarget spu-*-*] } {
set et_vect_pack_trunc_saved 1
}
}
......@@ -2101,7 +2102,8 @@ proc check_effective_target_vect_extract_even_odd { } {
verbose "check_effective_target_vect_extract_even_odd: using cached result" 2
} else {
set et_vect_extract_even_odd_saved 0
if { [istarget powerpc*-*-*] } {
if { [istarget powerpc*-*-*]
|| [istarget spu-*-*] } {
set et_vect_extract_even_odd_saved 1
}
}
......@@ -2122,7 +2124,8 @@ proc check_effective_target_vect_extract_even_odd_wide { } {
set et_vect_extract_even_odd_wide_saved 0
if { [istarget powerpc*-*-*]
|| [istarget i?86-*-*]
|| [istarget x86_64-*-*] } {
|| [istarget x86_64-*-*]
|| [istarget spu-*-*] } {
set et_vect_extract_even_odd_wide_saved 1
}
}
......@@ -2142,7 +2145,8 @@ proc check_effective_target_vect_interleave { } {
set et_vect_interleave_saved 0
if { [istarget powerpc*-*-*]
|| [istarget i?86-*-*]
|| [istarget x86_64-*-*] } {
|| [istarget x86_64-*-*]
|| [istarget spu-*-*] } {
set et_vect_interleave_saved 1
}
}
......
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