From: José Fonseca Date: Mon, 4 Oct 2010 16:42:18 +0000 (+0100) Subject: gallivm: Use the wrappers for SSE pack intrinsics. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f91b4266c6ca950b267bc8968091c85de8cae032;p=mesa.git gallivm: Use the wrappers for SSE pack intrinsics. Fixes assertion failures on LLVM 2.6. --- 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; }