Commit 76492753 by Paolo Bonzini Committed by Ulrich Weigand

re PR target/27006 (Invalid altivec constant loading code)

2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/27006
	* config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
	to be even.

	PR target/27006
	* gcc.dg/vmx/pr27006.c: New testcase.


Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>

From-SVN: r112923
parent 8a54a1de
2006-04-13 Paolo Bonzini <bonzini@gnu.org>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/27006
* config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
to be even.
2006-04-13 Alan Modra <amodra@bigpond.net.au>
PR target/26459
......
......@@ -1598,7 +1598,8 @@ typedef struct rs6000_args
#define EASY_VECTOR_15(n) ((n) >= -16 && (n) <= 15)
#define EASY_VECTOR_15_ADD_SELF(n) (!EASY_VECTOR_15((n)) \
&& EASY_VECTOR_15((n) >> 1))
&& EASY_VECTOR_15((n) >> 1) \
&& ((n) & 1) == 0)
/* The macros REG_OK_FOR..._P assume that the arg is a REG rtx
and check its validity for a certain class.
......
2006-04-13 Paolo Bonzini <bonzini@gnu.org>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/27006
* gcc.dg/vmx/pr27006.c: New testcase.
2006-04-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/26766
/* { dg-do run */
/* { dg-options "-maltivec" } */
extern void abort ();
typedef union
{
int i[4];
__attribute__((altivec(vector__))) int v;
} vec_int4;
int main (void)
{
vec_int4 i1;
i1.v = (__attribute__((altivec(vector__))) int){31, 31, 31, 31};
if (i1.i[0] != 31)
abort ();
return 0;
}
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