[PATCH] [X86][SSE] Vectorized i8 and i16 shift operators
Fiona Glaser
escha at apple.com
Thu May 21 16:07:22 PDT 2015
Is it possible to do an i8 variable shift as follows? pseudocode (in0 = value being shifted, in1 = shift amounts):
vec8_multiplies: [1, 2, 4, 8, 16, 32, 64, 128]
pshufb tmp1, [vec8_multiplies], in1
pmovzxbw tmp2, in0
pmovzxbw tmp3, tmp1
pmullw tmp2, tmp3
or something like that? would it be faster, and could something of the sort maybe be doable for right shifts (multiply, then shift back down?) i16 might also be doable with appropriate hacks...
REPOSITORY
rL LLVM
http://reviews.llvm.org/D9474
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list