simdarray: reconsidered int promotion
simdarray: reconsidered int promotion

don't promote shorts to int anymore:
In principle we want the exact same rules for simd_array<T> ⨉ simd_array<U> as the standard
defines for T ⨉ U. BUT: short ⨉ short returns int (because all integral types smaller than
int are promoted to int before any operation). This would imply that SIMD types with integral
types smaller than int are more or less useless - and you could use simd_array<int> from the
start. Therefore we special-case those operations where the scalar type of both operands is
integral and smaller than int.

Signed-off-by: Matthias Kretz <372ea4eca737a13cd010ee806d4ce7b98ee71550@kde.org>

VcDevel/Vc,chr-engwer/Vc,VcDevel/Vc,chr-engwer/Vc,VcDevel/Vc,chr-engwer/Vc,VcDevel/Vc