This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Vectorizer Pragmas
- From: Renato Golin <renato dot golin at linaro dot org>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: gcc <gcc at gcc dot gnu dot org>
- Date: Sat, 15 Feb 2014 20:36:30 +0000
- Subject: Re: Vectorizer Pragmas
- Authentication-results: sourceware.org; auth=none
- References: <CAMSE1kcaRgyF_HawBSDPvkt2=jP+dXDQJowHOMQ7XmHZCCWLhQ at mail dot gmail dot com> <20140215192627 dot GB22862 at tucnak dot redhat dot com>
On 15 February 2014 19:26, Jakub Jelinek <jakub@redhat.com> wrote:
> GCC supports #pragma GCC ivdep/#pragma simd/#pragma omp simd, the last one
> can be used without rest of OpenMP by using -fopenmp-simd switch.
Does the simd/omp have control over the tree vectorizer? Or are they
just flags for the omp implementation?
> I don't see why we would need more ways to do the same thing.
Me neither! That's what I'm trying to avoid.
Do you guys use those pragmas for everything related to the
vectorizer? I found that the Intel pragmas (not just simd and omp) are
pretty good fit to most of our needed functionality.
Does GCC use Intel pragmas to control the vectorizer? Would be good to
know how you guys did it, so that we can follow the same pattern.
Can GCC vectorize lexical blocks as well? Or just loops?
IF those pragmas can't be used in lexical blocks, would it be desired
to extend that in GCC? The Intel guys are pretty happy implementing
simd, omp, etc. in LLVM, and I think if the lexical block problem is
common, they may even be open to extending the semantics?
cheers,
--renato