else if (TARGET_ALTIVEC)
rs6000_isa_flags |= (OPTION_MASK_PPC_GFXOPT & ~ignore_masks);
+ /* Disable VSX and Altivec silently if the user switched cpus to power7 in a
+ target attribute or pragma which automatically enables both options,
+ unless the altivec ABI was set. This is set by default for 64-bit, but
+ not for 32-bit. Don't move this before the above code using ignore_masks,
+ since it can reset the cleared VSX/ALTIVEC flag again. */
+ if (main_target_opt && !main_target_opt->x_rs6000_altivec_abi)
+ rs6000_isa_flags &= ~((OPTION_MASK_VSX | OPTION_MASK_ALTIVEC)
+ & ~rs6000_isa_flags_explicit);
+
if (TARGET_CRYPTO && !TARGET_ALTIVEC)
{
if (rs6000_isa_flags_explicit & OPTION_MASK_CRYPTO)
}
}
- /* Disable VSX and Altivec silently if the user switched cpus to power7 in a
- target attribute or pragma which automatically enables both options,
- unless the altivec ABI was set. This is set by default for 64-bit, but
- not for 32-bit. */
- if (main_target_opt != NULL && !main_target_opt->x_rs6000_altivec_abi)
- {
- TARGET_FLOAT128_TYPE = 0;
- rs6000_isa_flags &= ~((OPTION_MASK_VSX | OPTION_MASK_ALTIVEC
- | OPTION_MASK_FLOAT128_KEYWORD)
- & ~rs6000_isa_flags_explicit);
- }
-
/* Enable Altivec ABI for AIX -maltivec. */
if (TARGET_XCOFF
&& (TARGET_ALTIVEC || TARGET_VSX)
--- /dev/null
+/* There are no error messages for either LE or BE 64bit. */
+/* { dg-require-effective-target be } */
+/* { dg-require-effective-target ilp32 } */
+/* { dg-options "-mdejagnu-cpu=power6" } */
+
+/* Verify compiler emits error message instead of ICE. */
+
+/* Option -mno-avoid-indexed-addresses is to disable the unexpected
+ warning on indexed addressing which can affect dg checks. */
+#pragma GCC target "cpu=power10,no-avoid-indexed-addresses"
+int
+main ()
+{
+ float *b;
+ __vector_quad c;
+ __builtin_mma_disassemble_acc (b, &c);
+ /* { dg-error "'__builtin_mma_disassemble_acc' requires the '-mmma' option" "" { target *-*-* } .-1 } */
+ return 0;
+}
+