gallivm: enhance special sse2 4x4f and 2x8f -> 1x16ub conversion
authorRoland Scheidegger <sroland@vmware.com>
Tue, 4 Jun 2013 22:11:45 +0000 (00:11 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Tue, 4 Jun 2013 22:29:46 +0000 (00:29 +0200)
commit44993c1808dc10da36cac156408a10e05b5dc140
tree7d5378d8d56ce371c7e80696af69f739e4a9f736
parentce82523db93d31bc72c8683ccbded1cc721ad34f
gallivm: enhance special sse2 4x4f and 2x8f -> 1x16ub conversion

There's no good reason why it can't handle 2x4f->1x8ub, 1x4f->1x4ub and
1x8f->1x8ub cases, there might be legitimate reasons why we don't have
enough input vectors for a full destination vector, and using pack
intrinsics should still be much better than using generic conversion
(it looks like convert_alpha from the blend code might hit this though
I suspect it could be avoided).

v2: add another test vector format to lp_test_conv so this gets tested.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_conv.c
src/gallium/drivers/llvmpipe/lp_test_conv.c