]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000: Add assert !TARGET_VSX if !TARGET_ALTIVEC and strip a useless check
authorKewen Lin <linkw@linux.ibm.com>
Tue, 21 May 2024 02:01:06 +0000 (21:01 -0500)
committerKewen Lin <linkw@linux.ibm.com>
Tue, 21 May 2024 02:01:06 +0000 (21:01 -0500)
In function rs6000_option_override_internal, we have the
checks and adjustments like:

  if (TARGET_P8_VECTOR && !TARGET_ALTIVEC)
    rs6000_isa_flags &= ~OPTION_MASK_P8_VECTOR;

  if (TARGET_P8_VECTOR && !TARGET_VSX)
    rs6000_isa_flags &= ~OPTION_MASK_P8_VECTOR;

But in fact some previous code has guaranteed !TARGET_VSX if
!TARGET_ALTIVEC, so we can remove the former check and
adjustment.  This patch is to remove it accordingly and also
place an explicit assertion.

gcc/ChangeLog:

* config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
useless check on TARGET_P8_VECTOR && !TARGET_ALTIVEC and add an
assertion on !TARGET_VSX if !TARGET_ALTIVEC.

gcc/config/rs6000/rs6000.cc

index d18e262d81de7e8c502c3d0d9dd1e10420fbedc1..e4dc629ddcc9a0df7dc809fdd49e1a61ff1062b1 100644 (file)
@@ -3940,8 +3940,9 @@ rs6000_option_override_internal (bool global_init_p)
       rs6000_isa_flags &= ~OPTION_MASK_FPRND;
     }
 
-  if (TARGET_P8_VECTOR && !TARGET_ALTIVEC)
-    rs6000_isa_flags &= ~OPTION_MASK_P8_VECTOR;
+  /* Assert !TARGET_VSX if !TARGET_ALTIVEC and make some adjustments
+     based on either !TARGET_VSX or !TARGET_ALTIVEC concise.  */
+  gcc_assert (TARGET_ALTIVEC || !TARGET_VSX);
 
   if (TARGET_P8_VECTOR && !TARGET_VSX)
     rs6000_isa_flags &= ~OPTION_MASK_P8_VECTOR;