+++ /dev/null
-/* { dg-do compile { target { powerpc-*-linux*paired* && ilp32 } } } */
-/* { dg-options "-mpaired -ffinite-math-only" } */
-
-/* Test PowerPC PAIRED extensions. */
-
-#include <paired.h>
-
-vector float a, b, c, d;
-
-void
-test_api ()
-{
- b = paired_msub (b, c, d);
- b = paired_madd (b, c, d);
- b = paired_nmadd (b, c, d);
- b = paired_nmsub (b, c, d);
- b = paired_sum0 (a, b, c);
- b = paired_sum1 (a, b, c);
- b = paired_div (b, c);
- b = paired_add (a, c);
- b = paired_sub (a, c);
- b = paired_mul (a, c);
- b = paired_neg (a);
- b = paired_muls0 (a, c);
- b = paired_muls1 (a, c);
- b = paired_madds0 (a, c, d);
- b = paired_madds1 (a, c, d);
- b = paired_merge00 (a, c);
- b = paired_merge01 (a, c);
- b = paired_merge10 (a, c);
- b = paired_merge11 (a, c);
- b = paired_abs (a);
- b = paired_nabs (a);
- b = paired_sqrt (a);
- b = paired_res (a);
- b = paired_sel (a, b, c);
-}
-
-int
-main (void)
-{
- test_api ();
- return 0;
-}
-
return [check_cached_effective_target_indexed vect_int {
expr {
[istarget i?86-*-*] || [istarget x86_64-*-*]
- || ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ || [istarget powerpc*-*-*]
|| [istarget amdgcn-*-*]
|| [istarget sparc*-*-*]
|| [istarget alpha*-*-*]
proc check_effective_target_vect_intfloat_cvt { } {
return [check_cached_effective_target_indexed vect_intfloat_cvt {
expr { [istarget i?86-*-*] || [istarget x86_64-*-*]
- || ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ || [istarget powerpc*-*-*]
|| [is-effective-target arm_neon]
|| ([istarget mips*-*-*]
&& [et-is-effective-target mips_msa])
proc check_effective_target_vect_uintfloat_cvt { } {
return [check_cached_effective_target_indexed vect_uintfloat_cvt {
expr { [istarget i?86-*-*] || [istarget x86_64-*-*]
- || ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ || [istarget powerpc*-*-*]
|| [istarget aarch64*-*-*]
|| [is-effective-target arm_neon]
|| ([istarget mips*-*-*]
proc check_effective_target_vect_floatint_cvt { } {
return [check_cached_effective_target_indexed vect_floatint_cvt {
expr { [istarget i?86-*-*] || [istarget x86_64-*-*]
- || ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ || [istarget powerpc*-*-*]
|| [is-effective-target arm_neon]
|| ([istarget mips*-*-*]
&& [et-is-effective-target mips_msa])
proc check_effective_target_vect_floatuint_cvt { } {
return [check_cached_effective_target_indexed vect_floatuint_cvt {
- expr { ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ expr { [istarget powerpc*-*-*]
|| [is-effective-target arm_neon]
|| ([istarget mips*-*-*]
&& [et-is-effective-target mips_msa])
# Not PowerPC, then not ok
if { !([istarget powerpc*-*-*] || [istarget rs6000-*-*]) } { return 0 }
- # Paired Single, then not ok
- if { [istarget powerpc-*-linux*paired*] } { return 0 }
-
# Return true iff compiling with -maltivec does not error.
return [check_no_compiler_messages powerpc_altivec_ok object {
int dummy;
# Return 1 if this is a PowerPC target supporting -mmodulo
proc check_effective_target_powerpc_p9modulo_ok { } {
- if { ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ if { [istarget powerpc*-*-*]
|| [istarget rs6000-*-*] } {
return [check_no_compiler_messages powerpc_p9modulo_ok object {
int main (void) {
# software emulation on power7/power8 systems or hardware support on power9.
proc check_effective_target_powerpc_float128_sw_ok { } {
- if { ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ if { [istarget powerpc*-*-*]
|| [istarget rs6000-*-*] } {
# Darwin doesn't have VSX, so no soft support for float128.
if { [istarget *-*-darwin*] } {
# support on power9.
proc check_effective_target_powerpc_float128_hw_ok { } {
- if { ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ if { [istarget powerpc*-*-*]
|| [istarget rs6000-*-*] } {
# Darwin doesn't run on any machine with float128 h/w so far.
if { [istarget *-*-darwin*] } {
# Return 1 if this is a PowerPC target supporting -mvsx
proc check_effective_target_powerpc_vsx_ok { } {
- if { ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ if { [istarget powerpc*-*-*]
|| [istarget rs6000-*-*] } {
# Darwin doesn't have VSX, even if it's used with an assembler
# which recognises the insns.
# Return 1 if this is a PowerPC target supporting -mhtm
proc check_effective_target_powerpc_htm_ok { } {
- if { ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ if { [istarget powerpc*-*-*]
|| [istarget rs6000-*-*] } {
# HTM is not supported on AIX yet.
if { [istarget powerpc*-*-aix*] } {
proc check_effective_target_vect_shift { } {
return [check_cached_effective_target_indexed vect_shift {
- expr {([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ expr {[istarget powerpc*-*-*]
|| [istarget ia64-*-*]
|| [istarget i?86-*-*] || [istarget x86_64-*-*]
|| [istarget aarch64*-*-*]
return [check_cached_effective_target_indexed vect_char_add {
expr {
[istarget i?86-*-*] || [istarget x86_64-*-*]
- || ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ || [istarget powerpc*-*-*]
|| [istarget amdgcn-*-*]
|| [istarget ia64-*-*]
|| [istarget aarch64*-*-*]
proc check_effective_target_vect_shift_char { } {
return [check_cached_effective_target_indexed vect_shift_char {
- expr { ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ expr { [istarget powerpc*-*-*]
|| [is-effective-target arm_neon]
|| ([istarget mips*-*-*]
&& [et-is-effective-target mips_msa])
proc check_effective_target_vect_long { } {
if { [istarget i?86-*-*] || [istarget x86_64-*-*]
- || (([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
- && [check_effective_target_ilp32])
+ || ([istarget powerpc*-*-*]
+ && [check_effective_target_ilp32])
|| [is-effective-target arm_neon]
|| ([istarget sparc*-*-*] && [check_effective_target_ilp32])
|| [istarget aarch64*-*-*]
|| ([istarget s390*-*-*]
&& [check_effective_target_s390_vx])
|| ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*]
&& [check_effective_target_has_arch_pwr8])
|| [istarget aarch64*-*-*]
|| ([istarget riscv*-*-*]
&& [is-effective-target sse])
|| ([istarget loongarch*-*-*]
&& [check_effective_target_hard_float])
- || ([istarget powerpc*-*-*]
- && ![istarget powerpc-*-linux*paired*])
+ || [istarget powerpc*-*-*]
|| [istarget alpha*-*-*]
|| [istarget aarch64*-*-*]
|| [is-effective-target arm_neon]
proc check_effective_target_vect_sdot_hi { } {
return [check_cached_effective_target_indexed vect_sdot_hi {
- expr { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
+ expr { [istarget powerpc*-*-*]
|| [istarget ia64-*-*]
|| [istarget i?86-*-*] || [istarget x86_64-*-*]
|| ([istarget mips*-*-*]
proc check_effective_target_vect_udot_hi { } {
return [check_cached_effective_target_indexed vect_udot_hi {
- expr { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
+ expr { [istarget powerpc*-*-*]
|| ([istarget mips*-*-*]
&& [et-is-effective-target mips_msa])
|| ([istarget riscv*-*-*]
proc check_effective_target_vect_pack_trunc { } {
return [check_cached_effective_target_indexed vect_pack_trunc {
- expr { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
+ expr { [istarget powerpc*-*-*]
|| [istarget i?86-*-*] || [istarget x86_64-*-*]
|| [istarget aarch64*-*-*]
|| ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]
proc check_effective_target_vect_int_mult { } {
return [check_cached_effective_target_indexed vect_int_mult {
- expr { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
+ expr { [istarget powerpc*-*-*]
|| [istarget i?86-*-*] || [istarget x86_64-*-*]
|| [istarget ia64-*-*]
|| [istarget aarch64*-*-*]