[5/6] rs6000: New testsuite selectors

Message ID 372d3db8a5c5331d6b3e7faa3bb09142896a62b9.1531778766.git.segher@kernel.crashing.org
State New
Headers show
Series
  • rs6000: Test all rs6000 floating point conversions
Related show

Commit Message

Segher Boessenkool July 16, 2018, 10:52 p.m.
This introduces four new selectors for use with Power testcases:
longdouble64, ppc_float128, ppc_float128_insns, powerpc_vsx.


2018-07-16  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_longdouble64,
	check_effective_target_ppc_float128,
	check_effective_target_ppc_float128_insns,
	check_effective_target_powerpc_vsx): New.

---
 gcc/testsuite/lib/target-supports.exp | 39 +++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

-- 
1.8.3.1

Patch

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index ec4a35d..c2d814c 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2684,6 +2684,15 @@  proc check_effective_target_longdouble128 { } {
     }]
 }
 
+# Return 1 if the target supports long double of 64 bits,
+# 0 otherwise.
+
+proc check_effective_target_longdouble64 { } {
+    return [check_no_compiler_messages longdouble64 object {
+	int dummy[sizeof(long double) == 8 ? 1 : -1];
+    }]
+}
+
 # Return 1 if the target supports double of 64 bits,
 # 0 otherwise.
 
@@ -5141,6 +5150,36 @@  proc check_effective_target_powerpc_float128_hw_ok { } {
     }
 }
 
+# Return 1 if current options define float128, 0 otherwise.
+
+proc check_effective_target_ppc_float128 { } {
+    return [check_no_compiler_messages_nocache ppc_float128 object {
+	#ifndef __FLOAT128__
+	  nope no good
+	#endif
+    }]
+}
+
+# Return 1 if current options generate float128 insns, 0 otherwise.
+
+proc check_effective_target_ppc_float128_insns { } {
+    return [check_no_compiler_messages_nocache ppc_float128 object {
+	#ifndef __FLOAT128_HARDWARE__
+	  nope no good
+	#endif
+    }]
+}
+
+# Return 1 if current options generate VSX instructions, 0 otherwise.
+
+proc check_effective_target_powerpc_vsx { } {
+    return [check_no_compiler_messages_nocache powerpc_vsx object {
+	#ifndef __VSX__
+	  nope no vsx
+	#endif
+    }]
+}
+
 # Return 1 if this is a PowerPC target supporting -mvsx
 
 proc check_effective_target_powerpc_vsx_ok { } {