summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2010-10-04 17:42:18 +0100
committerKeith Whitwell <[email protected]>2010-10-08 17:30:08 +0100
commitf91b4266c6ca950b267bc8968091c85de8cae032 (patch)
treee9d1f6ebb52c542b952e2a897e28d8981d872ee0
parent607e3c542cedd645da91c96abfe6698623acf503 (diff)
gallivm: Use the wrappers for SSE pack intrinsics.
Fixes assertion failures on LLVM 2.6.
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_conv.c18
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;
}