On 22/12/11 13:14, Dmitry Plotnikov wrote: > gcc/config/arm/ > * neon.md (float<mode><V_CVTTOF>2): New. > (floatuns<mode><V_CVTTOF>2): New. > (fix_trunc<mode><V_CVTTOI>2): New. > (fix_truncuns<mode><V_CVTTOI>2): New. > * iterators.md (V_CVTTOF): New iterator. > (V_CVTTOI): New iterator. > > > diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md > index 85dd641..de4340c 100644 > --- a/gcc/config/arm/iterators.md > +++ b/gcc/config/arm/iterators.md > @@ -197,6 +197,10 @@ > (define_mode_attr V_CVTTO [(V2SI "V2SF") (V2SF "V2SI") > (V4SI "V4SF") (V4SF "V4SI")]) > > +(define_mode_attr V_CVTTOF [(V2SI "v2sf") (V4SI "v4sf")]) > + > +(define_mode_attr V_CVTTOI [(V2SF "v2si") (V4SF "v4si")]) > +
attributes can be any superset of the iterator, so you don't need two separate attributes here. ;; As above but in lower case. (define_mode_attr V_cvtto [V2SI "v2sf") (V2SF "v2si") (V4SI "v4sf") (V4SF "v4si")]) is perfectly adequate and matches other attributes in the ARM back-end. The ARM bits are OK with that change. R.