Commit 18aeab2a authored by meissner's avatar meissner
Browse files

Fix PR 47408 and 47385

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169167 138bc75d-0d04-0410-961f-82ee72b054a4
parent 510cc136
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>
......
......@@ -224,7 +224,7 @@
(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];
......@@ -251,7 +251,7 @@
(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>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment