Re: Tighten ARM's CANNOT_CHANGE_MODE_CLASS

2011-03-25 Thread Richard Sandiford
Richard Earnshaw writes: >> gcc/ >> * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS >> case to VFPv1. >> > > I think adding a comment that VFPv1 would require a restriction but that > that isn't supported would be useful. Then if the worst happens it will > be one less

Re: Tighten ARM's CANNOT_CHANGE_MODE_CLASS

2011-03-25 Thread Richard Earnshaw
On Fri, 2011-03-25 at 09:28 +, Richard Sandiford wrote: > Richard Earnshaw writes: > > On Thu, 2011-03-24 at 15:40 +, Richard Sandiford wrote: > >> gcc/ > >>* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS > >>case to VFPv1. > >> > > > > GCC doesn't support VFPv1

Re: Tighten ARM's CANNOT_CHANGE_MODE_CLASS

2011-03-25 Thread Richard Sandiford
Richard Earnshaw writes: > On Thu, 2011-03-24 at 15:40 +, Richard Sandiford wrote: >> gcc/ >> * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS >> case to VFPv1. >> > > GCC doesn't support VFPv1 (see the all_fpus table), and I don't think > many chips based on that ev

Re: Tighten ARM's CANNOT_CHANGE_MODE_CLASS

2011-03-24 Thread Richard Earnshaw
On Thu, 2011-03-24 at 15:40 +, Richard Sandiford wrote: > We currently generate very poor code for tests like: > > #include > > void > foo (uint32_t *a, uint32_t *b, uint32_t *c) > { > uint32x4x3_t x, y; > > x = vld3q_u32 (a); > y = vld3q_u32 (b); > x.val[0] = vaddq_u32 (x.val[0],