diff options
author | José Fonseca <[email protected]> | 2010-10-04 17:42:18 +0100 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2010-10-08 17:30:08 +0100 |
commit | f91b4266c6ca950b267bc8968091c85de8cae032 (patch) | |
tree | e9d1f6ebb52c542b952e2a897e28d8981d872ee0 /src/gallium/auxiliary | |
parent | 607e3c542cedd645da91c96abfe6698623acf503 (diff) |
gallivm: Use the wrappers for SSE pack intrinsics.
Fixes assertion failures on LLVM 2.6.
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_conv.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_conv.c b/src/gallium/auxiliary/gallivm/lp_bld_conv.c index 605eb043c73..40c66187520 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_conv.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_conv.c @@ -306,21 +306,9 @@ lp_build_conv(LLVMBuilderRef builder, LLVMBuildFMul(builder, src[3], const_255f, ""), int32_vec_type, ""); -#if HAVE_LLVM >= 0x0207 - lo = lp_build_intrinsic_binary(builder, "llvm.x86.sse2.packssdw.128", - int16_vec_type, src_int0, src_int1); - hi = lp_build_intrinsic_binary(builder, "llvm.x86.sse2.packssdw.128", - int16_vec_type, src_int2, src_int3); - dst[i] = lp_build_intrinsic_binary(builder, "llvm.x86.sse2.packuswb.128", - dst_vec_type, lo, hi); -#else - lo = lp_build_intrinsic_binary(builder, "llvm.x86.sse2.packssdw.128", - int32_vec_type, src_int0, src_int1); - hi = lp_build_intrinsic_binary(builder, "llvm.x86.sse2.packssdw.128", - int32_vec_type, src_int2, src_int3); - dst[i] = lp_build_intrinsic_binary(builder, "llvm.x86.sse2.packuswb.128", - int16_vec_type, lo, hi); -#endif + lo = lp_build_pack2(builder, int32_type, int16_type, src_int0, src_int1); + hi = lp_build_pack2(builder, int32_type, int16_type, src_int2, src_int3); + dst[i] = lp_build_pack2(builder, int16_type, dst_type, lo, hi); } return; } |