https://gcc.gnu.org/g:93939335b25fdd374d229ef9ca8b82143e8d0f31

commit 93939335b25fdd374d229ef9ca8b82143e8d0f31
Author: Michael Meissner <[email protected]>
Date:   Fri Oct 30 01:44:49 2026 -0400

    Add flags to run the _Float and __bf16 tests on PowerPC.
    
    This patch adds the -mfloat16 -mno-float16-warn-call-return to the dejagnu
    options.
    
    2026-10-30  Michael Meissner  <[email protected]>
    
    gcc/testsuite/
    
            * lib/target-supports.exp (add_options_for_float16): Add -mfloat16
            -mno-float16-warn-call-return to tests for _Float16 and __bf16 
types.
            (add_options_for_bfloat16): Likewise.
            (check_effective_target_powerpc_float16): Likewise.

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

diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index a6ef7c28503e..b25fe7c99a36 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4604,6 +4604,9 @@ proc add_options_for_float16 { flags } {
     if { [check_effective_target_x86] } {
        return "$flags -msse2 -mfpmath=sse"
     }
+    if { [check_effective_target_powerpc_float16] } {
+       return "$flags -mfloat16 -mno-float16-warn-call-return";
+    }
     return "$flags"
 }
 
@@ -4679,6 +4682,9 @@ proc add_options_for_bfloat16 { flags } {
     if { [check_effective_target_x86] } {
        return "$flags -msse2"
     }
+    if { [check_effective_target_powerpc_float16] } {
+       return "$flags -mfloat16 -mno-float16-warn-call-return";
+    }
     return "$flags"
 }
 
@@ -8556,6 +8562,24 @@ proc check_effective_target_ppc_float128_insns { } {
     }]
 }
 
+# Return 1 if this is a PowerPC target supporting -mfloat16
+
+proc check_effective_target_powerpc_float16 { } {
+    if { [istarget powerpc*-*-*]
+        || [istarget rs6000-*-*] } {
+       return [check_no_compiler_messages powerpc_float16_ok object {
+           _Float16 a, b, c;
+           int main (void) {
+               a = b + c;
+               return 0;
+           }
+       } "-mfloat16 -mno-float16-warn-call-return"]
+    } else {
+       return 0
+    }
+}
+
+
 # Return 1 if current options generate VSX instructions, 0 otherwise.
 
 proc check_effective_target_powerpc_vsx { } {

Reply via email to