This is the mail archive of the 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]

Re: [PATCH, ARM] Support vcond/vcondu patterns for NEON

On Wed, Aug 25, 2010 at 2:22 PM, Julian Brown <> wrote:
> Hi,
> This patch implements vcond<mode> and vcondu<mode> for NEON, fixing the
> testsuite failure gcc.dg/vect/pr43430-1.c. These are RTX "standard
> names", but are unfortunately undocumented at present (see PR29269), so
> the intended semantics have been cargo-culted from other backends which
> implement the pattern. These vector comparisons provide a rather nice
> extension to the capabilities of the vectorizer.

If you figured out how they work can you add documentation on
your way?


> Also, the patterns for vcge, vcgt and vceq instructions have been
> extended to support the immediate variants (only comparisons with zero
> are supported), and vcle and vclt immediate patterns have been added. I
> haven't attempted to hook these up to the intrinsic-expansion
> mechanism, so those won't support the immediate-zero mode yet.
> (Note the gap in the numbering for the unspecs is intended to be filled
> by the NEON misalignment-support patch, when that is approved).
> Tested with cross to ARM Linux, using the options "-mfpu=neon
> -march=armv7-a -mfloat-abi=softfp" (gcc, g++ and libstdc++). The only
> change in test results is the transition of the test named above from
> OK to apply?
> Thanks,
> Julian
> ChangeLog
> ? ?gcc/
> ? ?* config/arm/ (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
> ? ?unspecs.
> ? ?(vcond<mode>, vcondu<mode>): New expanders.
> ? ?(neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
> ? ?comparisons with zero.
> ? ?(neon_vcle<mode>, neon_vclt<mode>): New patterns.
> ? ?* config/arm/ (Dz): New constraint.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]