From: Tom de Vries Date: Fri, 18 Mar 2022 15:42:23 +0000 (+0100) Subject: [nvptx] Limit HFmode support to mexperimental X-Git-Tag: basepoints/gcc-13~545 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b57358cc71356c817500042f7d517ac3309195b1;p=thirdparty%2Fgcc.git [nvptx] Limit HFmode support to mexperimental With PR104489 still open and end-of-stage-4 approaching, classify HFmode support as experimental, which is not enabled by default but can be enabled using -mexperimental. This fixes the nvptx build when the default sm_xx is set to sm_53 or higher. Note that we're not using -mfp16 or some such, because that might create expectations about being able to switch support on or off in the future, and at this point it's not clear why, once reaching non-experimental status, it shouldn't always be enabled. gcc/ChangeLog: 2022-03-19 Tom de Vries * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p) (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for mexperimental. gcc/testsuite/ChangeLog: 2022-03-19 Tom de Vries * gcc.target/nvptx/float16-1.c: Add additional-options -mexperimental. * gcc.target/nvptx/float16-2.c: Same. * gcc.target/nvptx/float16-3.c: Same. * gcc.target/nvptx/float16-4.c: Same. * gcc.target/nvptx/float16-5.c: Same. * gcc.target/nvptx/float16-6.c: Same. --- diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc index b2f7b4af392d..87efc23bd96a 100644 --- a/gcc/config/nvptx/nvptx.cc +++ b/gcc/config/nvptx/nvptx.cc @@ -7156,7 +7156,7 @@ nvptx_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, static bool nvptx_scalar_mode_supported_p (scalar_mode mode) { - if (mode == HFmode && TARGET_SM53) + if (nvptx_experimental && mode == HFmode && TARGET_SM53) return true; return default_scalar_mode_supported_p (mode); @@ -7165,7 +7165,7 @@ nvptx_scalar_mode_supported_p (scalar_mode mode) static bool nvptx_libgcc_floating_mode_supported_p (scalar_float_mode mode) { - if (mode == HFmode && TARGET_SM53) + if (nvptx_experimental && mode == HFmode && TARGET_SM53) return true; return default_libgcc_floating_mode_supported_p (mode); diff --git a/gcc/testsuite/gcc.target/nvptx/float16-1.c b/gcc/testsuite/gcc.target/nvptx/float16-1.c index 873a05435359..017774c29415 100644 --- a/gcc/testsuite/gcc.target/nvptx/float16-1.c +++ b/gcc/testsuite/gcc.target/nvptx/float16-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -ffast-math -misa=sm_53 -mptx=_" } */ +/* { dg-additional-options "-mexperimental" } */ _Float16 var; diff --git a/gcc/testsuite/gcc.target/nvptx/float16-2.c b/gcc/testsuite/gcc.target/nvptx/float16-2.c index 30a3092bc29e..e15b685253ba 100644 --- a/gcc/testsuite/gcc.target/nvptx/float16-2.c +++ b/gcc/testsuite/gcc.target/nvptx/float16-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -ffast-math -misa=sm_80 -mptx=_" } */ +/* { dg-additional-options "-mexperimental" } */ _Float16 x; _Float16 y; diff --git a/gcc/testsuite/gcc.target/nvptx/float16-3.c b/gcc/testsuite/gcc.target/nvptx/float16-3.c index edd6514a9763..1c6469020555 100644 --- a/gcc/testsuite/gcc.target/nvptx/float16-3.c +++ b/gcc/testsuite/gcc.target/nvptx/float16-3.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -misa=sm_53 -mptx=_" } */ +/* { dg-additional-options "-mexperimental" } */ _Float16 var; diff --git a/gcc/testsuite/gcc.target/nvptx/float16-4.c b/gcc/testsuite/gcc.target/nvptx/float16-4.c index 0a823971e75f..1c24ec8c3b26 100644 --- a/gcc/testsuite/gcc.target/nvptx/float16-4.c +++ b/gcc/testsuite/gcc.target/nvptx/float16-4.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -ffast-math -misa=sm_53 -mptx=_" } */ +/* { dg-additional-options "-mexperimental" } */ _Float16 var; diff --git a/gcc/testsuite/gcc.target/nvptx/float16-5.c b/gcc/testsuite/gcc.target/nvptx/float16-5.c index 2261f42baacc..9ae3365e1a6e 100644 --- a/gcc/testsuite/gcc.target/nvptx/float16-5.c +++ b/gcc/testsuite/gcc.target/nvptx/float16-5.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -ffast-math -misa=sm_53 -mptx=_" } */ +/* { dg-additional-options "-mexperimental" } */ _Float16 a; _Float16 b; diff --git a/gcc/testsuite/gcc.target/nvptx/float16-6.c b/gcc/testsuite/gcc.target/nvptx/float16-6.c index 9ca714ca76fd..37c580429c55 100644 --- a/gcc/testsuite/gcc.target/nvptx/float16-6.c +++ b/gcc/testsuite/gcc.target/nvptx/float16-6.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -misa=sm_53 -mptx=_" } */ +/* { dg-additional-options "-mexperimental" } */ _Float16 x; _Float16 y;