gallivm: Use the wrappers for SSE pack intrinsics.

Fixes assertion failures on LLVM 2.6.
This commit is contained in:
José Fonseca 2010-10-04 17:42:18 +01:00 committed by Keith Whitwell
parent 607e3c542c
commit f91b4266c6

View file

@ -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;
}