Simdize: Fix iterator compares, was UB before
Simdize: Fix iterator compares, was UB before

Advancing an iterator beyond end() or before begin() is UB. Thus, the
compare operators have no way to generically advance an iterator, as any
of the operands could be end()/begin().
Resolve the issue by calculating the distance between the given
iterators and compare the distance. It is important to cast Size to
difference_type, as we otherwise get an unsigned compare, which can
convert a negative value to something very large and thus invert the
result.

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

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