  Particle-In-Cell (PIC) codes are broadly applied to the kinetic simulation of
plasmas, from laser-matter interaction to astrophysics. Their heavy simulation
cost can be mitigated by using the Single Instruction Multiple Data (SIMD)
capibility, or vectorization, now available on most architectures. This article
details and discusses the vectorization strategy developed in the code Smilei
which takes advantage from an efficient, systematic, cell-based sorting of the
particles. The PIC operators on particles (projection, push, deposition) have
been optimized to benefit from large SIMD vectors on both recent and older
architectures. The efficiency of these vectorized operations increases with the
number of particles per cell (PPC), typically speeding up three-dimensional
simulations by a factor 2 with 256 PPC. Although this implementation shows
acceleration from as few as 8 PPC, it can be slower than the scalar version in
domains containing fewer PPC as usually observed in vectorization attempts.
This issue is overcome with an adaptive algorithm which switches locally
between scalar (for few PPC) and vectorized operators (otherwise). The newly
implemented methods are benchmarked on three different, large-scale simulations
considering configurations frequently studied with PIC codes.
