This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi,
I think there is a problem in the way we model the setting of subregs (insn
"insvsi") in rs6000, or rather - a problem in the way reload phase handles
these patterns when they are generated to express an initialization of a
vector register. Consider the following example:
typedef int __attribute__((mode(V8HI))) v8hi; #define N 1024 void foo5 (short n){ short a[N]; v8hi *pa = (v8hi *)a;int i;v8hi va = {n,n,n,n,n,n,n,n};
for (i=0; i<N/8; i++){ pa[i] = va; } bar1 (pa[2]); }
short a[N];
v8hi *pa = (v8hi *)a;
This sort of thing generally violates strict aliasing rules, and has a
tendency| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |