From e621ec816da65a56c3ba038a85075000bf5882d2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Mon, 1 Jul 2013 20:54:19 +0100 Subject: [PATCH] gallivm: Fix indirect immediate registers. If reg->Register.Indirect is true then the immediate is not truly a constant LLVM expression. There is no performance regression in using LLVMBuildBitCast, as it will fallback to LLVMConstBitCast internally when the argument is a constant. Reviewed-by: Roland Scheidegger Reviewed-by: Zack Rusin --- src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c index 0bbc408..f641859 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c @@ -1026,9 +1026,9 @@ emit_fetch_immediate( } if (stype == TGSI_TYPE_UNSIGNED) { - res = LLVMConstBitCast(res, bld_base->uint_bld.vec_type); + res = LLVMBuildBitCast(builder, res, bld_base->uint_bld.vec_type, ""); } else if (stype == TGSI_TYPE_SIGNED) { - res = LLVMConstBitCast(res, bld_base->int_bld.vec_type); + res = LLVMBuildBitCast(builder, res, bld_base->int_bld.vec_type, ""); } return res; } -- 2.7.4