+2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/47385
+ * config/rs6000/altivec.md (vector constant splitters): Add
+ support for creating vector single precision constants if -mvsx is
+ used and we would create the constant using Altivec primitives.
+
2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
(define_split
[(set (match_operand:VM 0 "altivec_register_operand" "")
(match_operand:VM 1 "easy_vector_constant_msb" ""))]
- "VECTOR_UNIT_ALTIVEC_P (<MODE>mode) && reload_completed"
+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode) && reload_completed"
[(const_int 0)]
{
rtx dest = operands[0];
(define_split
[(set (match_operand:VM 0 "altivec_register_operand" "")
(match_operand:VM 1 "easy_vector_constant_add_self" ""))]
- "VECTOR_UNIT_ALTIVEC_P (<MODE>mode) && reload_completed"
+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode) && reload_completed"
[(set (match_dup 0) (match_dup 3))
(set (match_dup 0) (match_dup 4))]
{
+2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/47408
+ * gcc.target/powerpc/altivec-11.c: Add explicit -mno-vsx.
+ * gcc.target/powerpc/altivec-14.c: Ditto.
+ * gcc.target/powerpc/altivec-33.c: Ditto.
+ * gcc.target/powerpc/altivec-types-1.c: Ditto.
+ * gcc.target/powerpc/altivec-types-2.c: Ditto.
+ * gcc.target/powerpc/altivec-types-3.c: Ditto.
+ * gcc.target/powerpc/altivec-types-4.c: Ditto.
+ * gcc.target/powerpc/ppc-vector-memcpy.c: Ditto.
+ * gcc.target/powerpc/ppc-vector-memset.c: Ditto.
+ * g++.dg/ext/altivec-15.C: Ditto.
+ * g++.dg/ext/altivec-types-1.C: Ditto.
+ * g++.dg/ext/altivec-types-2.C: Ditto.
+ * g++.dg/ext/altivec-types-3.C: Ditto.
+ * g++.dg/ext/altivec-types-4.C: Ditto.
+
2011-01-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* lib/scanasm.exp (dg-function-on-line): Handle mips-sgi-irix*.
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec" } */
+/* { dg-options "-maltivec -mno-vsx" } */
/* This test was added for an internal compiler error. The number and
content of error messages is irrelevant. */
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec -std=c++98" } */
+/* { dg-options "-maltivec -mno-vsx -std=c++98" } */
/* Valid AltiVec vector types should be accepted with no warnings. */
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec" } */
+/* { dg-options "-maltivec -mno-vsx" } */
/* These should get warnings for 32-bit code. */
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-require-effective-target lp64 } */
-/* { dg-options "-maltivec" } */
+/* { dg-options "-maltivec -mno-vsx" } */
/* These should be rejected for 64-bit code. */
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec -mno-warn-altivec-long" } */
+/* { dg-options "-maltivec -mno-vsx -mno-warn-altivec-long" } */
/* These should not get warnings for 32-bit code when the warning is
disabled. */
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-O2 -maltivec -mabi=altivec" } */
+/* { dg-options "-O2 -maltivec -mno-vsx -mabi=altivec" } */
/* { dg-final { scan-assembler-not "lvx" } } */
#include <altivec.h>
/* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec" } */
+/* { dg-options "-maltivec -mno-vsx" } */
#include <altivec.h>
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-O2 -maltivec" } */
+/* { dg-options "-O2 -maltivec -mno-vsx" } */
/* We should only produce one vspltw as we already splatted the value. */
/* { dg-final { scan-assembler-times "vspltw" 1 } } */
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec" } */
+/* { dg-options "-maltivec -mno-vsx" } */
/* Valid AltiVec vector types should be accepted with no warnings. */
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec" } */
+/* { dg-options "-maltivec -mno-vsx" } */
/* These should get warnings for 32-bit code. */
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target lp64 } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec" } */
+/* { dg-options "-maltivec -mno-vsx" } */
/* These should be rejected for 64-bit code. */
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-maltivec -mno-warn-altivec-long" } */
+/* { dg-options "-maltivec -mno-warn-altivec-long -mno-vsx" } */
/* These should not get warnings for 32-bit code when the warning is
disabled. */
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-O -maltivec" } */
+/* { dg-options "-O -maltivec -mno-vsx" } */
/* { dg-final { scan-assembler "lvx" } } */
void foo(void)
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
-/* { dg-options "-O -maltivec" } */
+/* { dg-options "-O -maltivec -mno-vsx" } */
/* { dg-final { scan-assembler "stvx" } } */
#include <string.h>