llvmpipe: Allow different signs when unpacking.
authorJosé Fonseca <jfonseca@vmware.com>
Sun, 25 Oct 2009 09:03:50 +0000 (09:03 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 25 Oct 2009 09:53:48 +0000 (09:53 +0000)
src/gallium/drivers/llvmpipe/lp_bld_pack.c

index fe82fda0392b027261f7bdf0fcc02470cdf65b06..bc360ad77add1f24c57148fe5edf6b85770a8a6f 100644 (file)
@@ -159,11 +159,10 @@ lp_build_unpack2(LLVMBuilderRef builder,
 
    assert(!src_type.floating);
    assert(!dst_type.floating);
-   assert(dst_type.sign == src_type.sign);
    assert(dst_type.width == src_type.width * 2);
    assert(dst_type.length * 2 == src_type.length);
 
-   if(src_type.sign) {
+   if(dst_type.sign && src_type.sign) {
       /* Replicate the sign bit in the most significant bits */
       msb = LLVMBuildAShr(builder, src, lp_build_int_const_scalar(src_type, src_type.width - 1), "");
    }