My recent patch to add additional vector lengths didn't address the vector reductions yet. This patch adds the missing support. Shorter vectors use fewer reduction steps, and the means to extract the final value has been adjusted. Lacking from this is any useful costs, so for loops the vect pass will almost always continue to choose the most expensive 64-lane vectors, and therefore reductions, with masking for smaller sizes. This works, but probably could be improved. For SLP the compiler will usually use a more appropriately sized reduction, so this patch is useful for that case. Andrew