aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2022-02-09 20:19:45 +0100
committerUros Bizjak <ubizjak@gmail.com>2022-02-09 20:19:45 +0100
commit2f9ab267e725ddf2b6b44113e4fc4fb8b2a6adfb (patch)
tree772b5d09cd75bd850d186cfcdfd857ee2600ee5a /gcc
parent2b399dbabd48639ab4daac462c9d82c6cf3f99cc (diff)
downloadgcc-2f9ab267e725ddf2b6b44113e4fc4fb8b2a6adfb.zip
gcc-2f9ab267e725ddf2b6b44113e4fc4fb8b2a6adfb.tar.gz
gcc-2f9ab267e725ddf2b6b44113e4fc4fb8b2a6adfb.tar.bz2
i386: -mno-xsave should disable all relevant ISA flags [PR104462]
2022-02-09 Uroš Bizjak <ubizjak@gmail.com> gcc/ChangeLog: PR target/104462 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET): Also include OPTION_MASK_ISA2_AVX2_UNSET. gcc/testsuite/ChangeLog: PR target/104462 * gcc.target/i386/pr104462.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/common/config/i386/i386-common.cc3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr104462.c13
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc
index 607e9f2..449df63 100644
--- a/gcc/common/config/i386/i386-common.cc
+++ b/gcc/common/config/i386/i386-common.cc
@@ -206,7 +206,8 @@ along with GCC; see the file COPYING3. If not see
(OPTION_MASK_ISA_XSAVE | OPTION_MASK_ISA_XSAVEOPT_UNSET \
| OPTION_MASK_ISA_XSAVES_UNSET | OPTION_MASK_ISA_XSAVEC_UNSET \
| OPTION_MASK_ISA_AVX_UNSET)
-#define OPTION_MASK_ISA2_XSAVE_UNSET OPTION_MASK_ISA2_AMX_TILE_UNSET
+#define OPTION_MASK_ISA2_XSAVE_UNSET \
+ (OPTION_MASK_ISA2_AVX2_UNSET | OPTION_MASK_ISA2_AMX_TILE_UNSET)
#define OPTION_MASK_ISA_XSAVEOPT_UNSET OPTION_MASK_ISA_XSAVEOPT
#define OPTION_MASK_ISA_AVX2_UNSET \
(OPTION_MASK_ISA_AVX2 | OPTION_MASK_ISA_AVX512F_UNSET)
diff --git a/gcc/testsuite/gcc.target/i386/pr104462.c b/gcc/testsuite/gcc.target/i386/pr104462.c
new file mode 100644
index 0000000..7a5ee64
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr104462.c
@@ -0,0 +1,13 @@
+/* PR target/104462 */
+/* { dg-do compile } */
+/* { dg-options "-mavx512fp16 -mno-xsave" } */
+
+typedef _Float16 __attribute__((__vector_size__ (8))) F;
+
+F f;
+
+void
+foo (void)
+{
+ f *= -f;
+}