diff options
author | Brian Paul <brianp@vmware.com> | 2010-09-16 08:56:22 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2010-09-16 08:56:34 -0600 |
commit | 3c9f4c7b750ce7e9c60d75dbe186aaaf69e4baab (patch) | |
tree | 1e9604fbda3711631f11849b8cc1f7c648feb9d5 | |
parent | 3a62365f402b1159afd526fb4b510cdb51de1365 (diff) | |
download | mesa-3c9f4c7b750ce7e9c60d75dbe186aaaf69e4baab.tar.gz |
gallivm: fix incorrect vector shuffle datatype
The permutation vector must always be a vector of int32 values.
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_swizzle.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_swizzle.c b/src/gallium/auxiliary/gallivm/lp_bld_swizzle.c index d4d2f2b307e..1dfbe56634e 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_swizzle.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_swizzle.c @@ -76,11 +76,15 @@ lp_build_broadcast_scalar(struct lp_build_context *bld, } else { LLVMValueRef res; + /* The shuffle vector is always made of int32 elements */ + struct lp_type i32_vec_type = lp_type_int_vec(32); + i32_vec_type.length = type.length; + #if HAVE_LLVM >= 0x207 res = LLVMBuildInsertElement(bld->builder, bld->undef, scalar, LLVMConstInt(LLVMInt32Type(), 0, 0), ""); res = LLVMBuildShuffleVector(bld->builder, res, bld->undef, - lp_build_const_int_vec(type, 0), ""); + lp_build_const_int_vec(i32_vec_type, 0), ""); #else /* XXX: The above path provokes a bug in LLVM 2.6 */ unsigned i; |