gallivm/llvmpipe: rename some constant building functions

This commit is contained in:
Brian Paul 2010-03-15 14:00:23 -06:00
parent c86a499769
commit 185be3a87a
14 changed files with 92 additions and 94 deletions

View File

@ -361,12 +361,12 @@ lp_build_mul_u8n(LLVMBuilderRef builder,
LLVMValueRef c8; LLVMValueRef c8;
LLVMValueRef ab; LLVMValueRef ab;
c8 = lp_build_int_const_scalar(i16_type, 8); c8 = lp_build_const_int_vec(i16_type, 8);
#if 0 #if 0
/* a*b/255 ~= (a*(b + 1)) >> 256 */ /* a*b/255 ~= (a*(b + 1)) >> 256 */
b = LLVMBuildAdd(builder, b, lp_build_int_const_scalar(i16_type, 1), ""); b = LLVMBuildAdd(builder, b, lp_build_const_int_vec(i16_type, 1), "");
ab = LLVMBuildMul(builder, a, b, ""); ab = LLVMBuildMul(builder, a, b, "");
#else #else
@ -374,7 +374,7 @@ lp_build_mul_u8n(LLVMBuilderRef builder,
/* ab/255 ~= (ab + (ab >> 8) + 0x80) >> 8 */ /* ab/255 ~= (ab + (ab >> 8) + 0x80) >> 8 */
ab = LLVMBuildMul(builder, a, b, ""); ab = LLVMBuildMul(builder, a, b, "");
ab = LLVMBuildAdd(builder, ab, LLVMBuildLShr(builder, ab, c8, ""), ""); ab = LLVMBuildAdd(builder, ab, LLVMBuildLShr(builder, ab, c8, ""), "");
ab = LLVMBuildAdd(builder, ab, lp_build_int_const_scalar(i16_type, 0x80), ""); ab = LLVMBuildAdd(builder, ab, lp_build_const_int_vec(i16_type, 0x80), "");
#endif #endif
@ -429,7 +429,7 @@ lp_build_mul(struct lp_build_context *bld,
} }
if(type.fixed) if(type.fixed)
shift = lp_build_int_const_scalar(type, type.width/2); shift = lp_build_const_int_vec(type, type.width/2);
else else
shift = NULL; shift = NULL;
@ -491,7 +491,7 @@ lp_build_mul_imm(struct lp_build_context *bld,
* for Inf and NaN. * for Inf and NaN.
*/ */
unsigned mantissa = lp_mantissa(bld->type); unsigned mantissa = lp_mantissa(bld->type);
factor = lp_build_int_const_scalar(bld->type, (unsigned long long)shift << mantissa); factor = lp_build_const_int_vec(bld->type, (unsigned long long)shift << mantissa);
a = LLVMBuildBitCast(bld->builder, a, lp_build_int_vec_type(bld->type), ""); a = LLVMBuildBitCast(bld->builder, a, lp_build_int_vec_type(bld->type), "");
a = LLVMBuildAdd(bld->builder, a, factor, ""); a = LLVMBuildAdd(bld->builder, a, factor, "");
a = LLVMBuildBitCast(bld->builder, a, lp_build_vec_type(bld->type), ""); a = LLVMBuildBitCast(bld->builder, a, lp_build_vec_type(bld->type), "");
@ -499,12 +499,12 @@ lp_build_mul_imm(struct lp_build_context *bld,
#endif #endif
} }
else { else {
factor = lp_build_const_scalar(bld->type, shift); factor = lp_build_const_vec(bld->type, shift);
return LLVMBuildShl(bld->builder, a, factor, ""); return LLVMBuildShl(bld->builder, a, factor, "");
} }
} }
factor = lp_build_const_scalar(bld->type, (double)b); factor = lp_build_const_vec(bld->type, (double)b);
return lp_build_mul(bld, a, factor); return lp_build_mul(bld, a, factor);
} }
@ -567,7 +567,7 @@ lp_build_lerp(struct lp_build_context *bld,
* but it will be wrong for other uses. Basically we need a more * but it will be wrong for other uses. Basically we need a more
* powerful lp_type, capable of further distinguishing the values * powerful lp_type, capable of further distinguishing the values
* interpretation from the value storage. */ * interpretation from the value storage. */
res = LLVMBuildAnd(bld->builder, res, lp_build_int_const_scalar(bld->type, (1 << bld->type.width/2) - 1), ""); res = LLVMBuildAnd(bld->builder, res, lp_build_const_int_vec(bld->type, (1 << bld->type.width/2) - 1), "");
return res; return res;
} }
@ -689,7 +689,7 @@ lp_build_abs(struct lp_build_context *bld,
/* vector of floats */ /* vector of floats */
LLVMTypeRef int_vec_type = lp_build_int_vec_type(type); LLVMTypeRef int_vec_type = lp_build_int_vec_type(type);
unsigned long long absMask = ~(1ULL << (type.width - 1)); unsigned long long absMask = ~(1ULL << (type.width - 1));
LLVMValueRef mask = lp_build_int_const_scalar(type, ((unsigned long long) absMask)); LLVMValueRef mask = lp_build_const_int_vec(type, ((unsigned long long) absMask));
a = LLVMBuildBitCast(bld->builder, a, int_vec_type, ""); a = LLVMBuildBitCast(bld->builder, a, int_vec_type, "");
a = LLVMBuildAnd(bld->builder, a, mask, ""); a = LLVMBuildAnd(bld->builder, a, mask, "");
a = LLVMBuildBitCast(bld->builder, a, vec_type, ""); a = LLVMBuildBitCast(bld->builder, a, vec_type, "");
@ -751,7 +751,7 @@ lp_build_sgn(struct lp_build_context *bld,
/* vector */ /* vector */
int_type = lp_build_int_vec_type(type); int_type = lp_build_int_vec_type(type);
vec_type = lp_build_vec_type(type); vec_type = lp_build_vec_type(type);
mask = lp_build_int_const_scalar(type, maskBit); mask = lp_build_const_int_vec(type, maskBit);
} }
/* Take the sign bit and add it to 1 constant */ /* Take the sign bit and add it to 1 constant */
@ -763,7 +763,7 @@ lp_build_sgn(struct lp_build_context *bld,
} }
else else
{ {
LLVMValueRef minus_one = lp_build_const_scalar(type, -1.0); LLVMValueRef minus_one = lp_build_const_vec(type, -1.0);
cond = lp_build_cmp(bld, PIPE_FUNC_GREATER, a, bld->zero); cond = lp_build_cmp(bld, PIPE_FUNC_GREATER, a, bld->zero);
res = lp_build_select(bld, cond, bld->one, minus_one); res = lp_build_select(bld, cond, bld->one, minus_one);
} }
@ -789,8 +789,8 @@ lp_build_set_sign(struct lp_build_context *bld,
const struct lp_type type = bld->type; const struct lp_type type = bld->type;
LLVMTypeRef int_vec_type = lp_build_int_vec_type(type); LLVMTypeRef int_vec_type = lp_build_int_vec_type(type);
LLVMTypeRef vec_type = lp_build_vec_type(type); LLVMTypeRef vec_type = lp_build_vec_type(type);
LLVMValueRef shift = lp_build_int_const_scalar(type, type.width - 1); LLVMValueRef shift = lp_build_const_int_vec(type, type.width - 1);
LLVMValueRef mask = lp_build_int_const_scalar(type, LLVMValueRef mask = lp_build_const_int_vec(type,
~((unsigned long long) 1 << (type.width - 1))); ~((unsigned long long) 1 << (type.width - 1)));
LLVMValueRef val, res; LLVMValueRef val, res;
@ -1034,7 +1034,7 @@ lp_build_iround(struct lp_build_context *bld,
} }
else { else {
LLVMTypeRef vec_type = lp_build_vec_type(type); LLVMTypeRef vec_type = lp_build_vec_type(type);
LLVMValueRef mask = lp_build_int_const_scalar(type, (unsigned long long)1 << (type.width - 1)); LLVMValueRef mask = lp_build_const_int_vec(type, (unsigned long long)1 << (type.width - 1));
LLVMValueRef sign; LLVMValueRef sign;
LLVMValueRef half; LLVMValueRef half;
@ -1043,7 +1043,7 @@ lp_build_iround(struct lp_build_context *bld,
sign = LLVMBuildAnd(bld->builder, sign, mask, ""); sign = LLVMBuildAnd(bld->builder, sign, mask, "");
/* sign * 0.5 */ /* sign * 0.5 */
half = lp_build_const_scalar(type, 0.5); half = lp_build_const_vec(type, 0.5);
half = LLVMBuildBitCast(bld->builder, half, int_vec_type, ""); half = LLVMBuildBitCast(bld->builder, half, int_vec_type, "");
half = LLVMBuildOr(bld->builder, sign, half, ""); half = LLVMBuildOr(bld->builder, sign, half, "");
half = LLVMBuildBitCast(bld->builder, half, vec_type, ""); half = LLVMBuildBitCast(bld->builder, half, vec_type, "");
@ -1086,18 +1086,18 @@ lp_build_ifloor(struct lp_build_context *bld,
/* Take the sign bit and add it to 1 constant */ /* Take the sign bit and add it to 1 constant */
LLVMTypeRef vec_type = lp_build_vec_type(type); LLVMTypeRef vec_type = lp_build_vec_type(type);
unsigned mantissa = lp_mantissa(type); unsigned mantissa = lp_mantissa(type);
LLVMValueRef mask = lp_build_int_const_scalar(type, (unsigned long long)1 << (type.width - 1)); LLVMValueRef mask = lp_build_const_int_vec(type, (unsigned long long)1 << (type.width - 1));
LLVMValueRef sign; LLVMValueRef sign;
LLVMValueRef offset; LLVMValueRef offset;
/* sign = a < 0 ? ~0 : 0 */ /* sign = a < 0 ? ~0 : 0 */
sign = LLVMBuildBitCast(bld->builder, a, int_vec_type, ""); sign = LLVMBuildBitCast(bld->builder, a, int_vec_type, "");
sign = LLVMBuildAnd(bld->builder, sign, mask, ""); sign = LLVMBuildAnd(bld->builder, sign, mask, "");
sign = LLVMBuildAShr(bld->builder, sign, lp_build_int_const_scalar(type, type.width - 1), ""); sign = LLVMBuildAShr(bld->builder, sign, lp_build_const_int_vec(type, type.width - 1), "");
lp_build_name(sign, "floor.sign"); lp_build_name(sign, "floor.sign");
/* offset = -0.99999(9)f */ /* offset = -0.99999(9)f */
offset = lp_build_const_scalar(type, -(double)(((unsigned long long)1 << mantissa) - 1)/((unsigned long long)1 << mantissa)); offset = lp_build_const_vec(type, -(double)(((unsigned long long)1 << mantissa) - 1)/((unsigned long long)1 << mantissa));
offset = LLVMConstBitCast(offset, int_vec_type); offset = LLVMConstBitCast(offset, int_vec_type);
/* offset = a < 0 ? -0.99999(9)f : 0.0f */ /* offset = a < 0 ? -0.99999(9)f : 0.0f */
@ -1268,7 +1268,7 @@ lp_build_exp(struct lp_build_context *bld,
LLVMValueRef x) LLVMValueRef x)
{ {
/* log2(e) = 1/log(2) */ /* log2(e) = 1/log(2) */
LLVMValueRef log2e = lp_build_const_scalar(bld->type, 1.4426950408889634); LLVMValueRef log2e = lp_build_const_vec(bld->type, 1.4426950408889634);
return lp_build_mul(bld, log2e, lp_build_exp2(bld, x)); return lp_build_mul(bld, log2e, lp_build_exp2(bld, x));
} }
@ -1282,7 +1282,7 @@ lp_build_log(struct lp_build_context *bld,
LLVMValueRef x) LLVMValueRef x)
{ {
/* log(2) */ /* log(2) */
LLVMValueRef log2 = lp_build_const_scalar(bld->type, 0.69314718055994529); LLVMValueRef log2 = lp_build_const_vec(bld->type, 0.69314718055994529);
return lp_build_mul(bld, log2, lp_build_exp2(bld, x)); return lp_build_mul(bld, log2, lp_build_exp2(bld, x));
} }
@ -1318,7 +1318,7 @@ lp_build_polynomial(struct lp_build_context *bld,
if (type.length == 1) if (type.length == 1)
coeff = LLVMConstReal(float_type, coeffs[i]); coeff = LLVMConstReal(float_type, coeffs[i]);
else else
coeff = lp_build_const_scalar(type, coeffs[i]); coeff = lp_build_const_vec(type, coeffs[i]);
if(res) if(res)
res = lp_build_add(bld, coeff, lp_build_mul(bld, x, res)); res = lp_build_add(bld, coeff, lp_build_mul(bld, x, res));
@ -1375,11 +1375,11 @@ lp_build_exp2_approx(struct lp_build_context *bld,
assert(type.floating && type.width == 32); assert(type.floating && type.width == 32);
x = lp_build_min(bld, x, lp_build_const_scalar(type, 129.0)); x = lp_build_min(bld, x, lp_build_const_vec(type, 129.0));
x = lp_build_max(bld, x, lp_build_const_scalar(type, -126.99999)); x = lp_build_max(bld, x, lp_build_const_vec(type, -126.99999));
/* ipart = int(x - 0.5) */ /* ipart = int(x - 0.5) */
ipart = LLVMBuildSub(bld->builder, x, lp_build_const_scalar(type, 0.5f), ""); ipart = LLVMBuildSub(bld->builder, x, lp_build_const_vec(type, 0.5f), "");
ipart = LLVMBuildFPToSI(bld->builder, ipart, int_vec_type, ""); ipart = LLVMBuildFPToSI(bld->builder, ipart, int_vec_type, "");
/* fpart = x - ipart */ /* fpart = x - ipart */
@ -1389,8 +1389,8 @@ lp_build_exp2_approx(struct lp_build_context *bld,
if(p_exp2_int_part || p_exp2) { if(p_exp2_int_part || p_exp2) {
/* expipart = (float) (1 << ipart) */ /* expipart = (float) (1 << ipart) */
expipart = LLVMBuildAdd(bld->builder, ipart, lp_build_int_const_scalar(type, 127), ""); expipart = LLVMBuildAdd(bld->builder, ipart, lp_build_const_int_vec(type, 127), "");
expipart = LLVMBuildShl(bld->builder, expipart, lp_build_int_const_scalar(type, 23), ""); expipart = LLVMBuildShl(bld->builder, expipart, lp_build_const_int_vec(type, 23), "");
expipart = LLVMBuildBitCast(bld->builder, expipart, vec_type, ""); expipart = LLVMBuildBitCast(bld->builder, expipart, vec_type, "");
} }
@ -1456,8 +1456,8 @@ lp_build_log2_approx(struct lp_build_context *bld,
LLVMTypeRef vec_type = lp_build_vec_type(type); LLVMTypeRef vec_type = lp_build_vec_type(type);
LLVMTypeRef int_vec_type = lp_build_int_vec_type(type); LLVMTypeRef int_vec_type = lp_build_int_vec_type(type);
LLVMValueRef expmask = lp_build_int_const_scalar(type, 0x7f800000); LLVMValueRef expmask = lp_build_const_int_vec(type, 0x7f800000);
LLVMValueRef mantmask = lp_build_int_const_scalar(type, 0x007fffff); LLVMValueRef mantmask = lp_build_const_int_vec(type, 0x007fffff);
LLVMValueRef one = LLVMConstBitCast(bld->one, int_vec_type); LLVMValueRef one = LLVMConstBitCast(bld->one, int_vec_type);
LLVMValueRef i = NULL; LLVMValueRef i = NULL;
@ -1482,8 +1482,8 @@ lp_build_log2_approx(struct lp_build_context *bld,
} }
if(p_floor_log2 || p_log2) { if(p_floor_log2 || p_log2) {
logexp = LLVMBuildLShr(bld->builder, exp, lp_build_int_const_scalar(type, 23), ""); logexp = LLVMBuildLShr(bld->builder, exp, lp_build_const_int_vec(type, 23), "");
logexp = LLVMBuildSub(bld->builder, logexp, lp_build_int_const_scalar(type, 127), ""); logexp = LLVMBuildSub(bld->builder, logexp, lp_build_const_int_vec(type, 127), "");
logexp = LLVMBuildSIToFP(bld->builder, logexp, vec_type, ""); logexp = LLVMBuildSIToFP(bld->builder, logexp, vec_type, "");
} }

View File

@ -263,7 +263,7 @@ lp_build_one(struct lp_type type)
if(type.sign) if(type.sign)
/* TODO: Unfortunately this caused "Tried to create a shift operation /* TODO: Unfortunately this caused "Tried to create a shift operation
* on a non-integer type!" */ * on a non-integer type!" */
vec = LLVMConstLShr(vec, lp_build_int_const_scalar(type, 1)); vec = LLVMConstLShr(vec, lp_build_const_int_vec(type, 1));
#endif #endif
return vec; return vec;
@ -283,8 +283,8 @@ lp_build_one(struct lp_type type)
* Build constant-valued vector from a scalar value. * Build constant-valued vector from a scalar value.
*/ */
LLVMValueRef LLVMValueRef
lp_build_const_scalar(struct lp_type type, lp_build_const_vec(struct lp_type type,
double val) double val)
{ {
LLVMTypeRef elem_type = lp_build_elem_type(type); LLVMTypeRef elem_type = lp_build_elem_type(type);
LLVMValueRef elems[LP_MAX_VECTOR_LENGTH]; LLVMValueRef elems[LP_MAX_VECTOR_LENGTH];
@ -309,7 +309,7 @@ lp_build_const_scalar(struct lp_type type,
LLVMValueRef LLVMValueRef
lp_build_int_const_scalar(struct lp_type type, lp_build_const_int_vec(struct lp_type type,
long long val) long long val)
{ {
LLVMTypeRef elem_type = lp_build_int_elem_type(type); LLVMTypeRef elem_type = lp_build_int_elem_type(type);

View File

@ -85,13 +85,11 @@ lp_build_one(struct lp_type type);
LLVMValueRef LLVMValueRef
lp_build_const_scalar(struct lp_type type, lp_build_const_vec(struct lp_type type, double val);
double val);
LLVMValueRef LLVMValueRef
lp_build_int_const_scalar(struct lp_type type, lp_build_const_int_vec(struct lp_type type, long long val);
long long val);
LLVMValueRef LLVMValueRef

View File

@ -114,13 +114,13 @@ lp_build_clamped_float_to_unsigned_norm(LLVMBuilderRef builder,
scale = (double)mask/ubound; scale = (double)mask/ubound;
bias = (double)((unsigned long long)1 << (mantissa - n)); bias = (double)((unsigned long long)1 << (mantissa - n));
res = LLVMBuildMul(builder, src, lp_build_const_scalar(src_type, scale), ""); res = LLVMBuildMul(builder, src, lp_build_const_vec(src_type, scale), "");
res = LLVMBuildAdd(builder, res, lp_build_const_scalar(src_type, bias), ""); res = LLVMBuildAdd(builder, res, lp_build_const_vec(src_type, bias), "");
res = LLVMBuildBitCast(builder, res, int_vec_type, ""); res = LLVMBuildBitCast(builder, res, int_vec_type, "");
if(dst_width > n) { if(dst_width > n) {
int shift = dst_width - n; int shift = dst_width - n;
res = LLVMBuildShl(builder, res, lp_build_int_const_scalar(src_type, shift), ""); res = LLVMBuildShl(builder, res, lp_build_const_int_vec(src_type, shift), "");
/* TODO: Fill in the empty lower bits for additional precision? */ /* TODO: Fill in the empty lower bits for additional precision? */
/* YES: this fixes progs/trivial/tri-z-eq.c. /* YES: this fixes progs/trivial/tri-z-eq.c.
@ -130,21 +130,21 @@ lp_build_clamped_float_to_unsigned_norm(LLVMBuilderRef builder,
#if 0 #if 0
{ {
LLVMValueRef msb; LLVMValueRef msb;
msb = LLVMBuildLShr(builder, res, lp_build_int_const_scalar(src_type, dst_width - 1), ""); msb = LLVMBuildLShr(builder, res, lp_build_const_int_vec(src_type, dst_width - 1), "");
msb = LLVMBuildShl(builder, msb, lp_build_int_const_scalar(src_type, shift), ""); msb = LLVMBuildShl(builder, msb, lp_build_const_int_vec(src_type, shift), "");
msb = LLVMBuildSub(builder, msb, lp_build_int_const_scalar(src_type, 1), ""); msb = LLVMBuildSub(builder, msb, lp_build_const_int_vec(src_type, 1), "");
res = LLVMBuildOr(builder, res, msb, ""); res = LLVMBuildOr(builder, res, msb, "");
} }
#elif 0 #elif 0
while(shift > 0) { while(shift > 0) {
res = LLVMBuildOr(builder, res, LLVMBuildLShr(builder, res, lp_build_int_const_scalar(src_type, n), ""), ""); res = LLVMBuildOr(builder, res, LLVMBuildLShr(builder, res, lp_build_const_int_vec(src_type, n), ""), "");
shift -= n; shift -= n;
n *= 2; n *= 2;
} }
#endif #endif
} }
else else
res = LLVMBuildAnd(builder, res, lp_build_int_const_scalar(src_type, mask), ""); res = LLVMBuildAnd(builder, res, lp_build_const_int_vec(src_type, mask), "");
return res; return res;
} }
@ -183,10 +183,10 @@ lp_build_unsigned_norm_to_float(LLVMBuilderRef builder,
if(src_width > mantissa) { if(src_width > mantissa) {
int shift = src_width - mantissa; int shift = src_width - mantissa;
res = LLVMBuildLShr(builder, res, lp_build_int_const_scalar(dst_type, shift), ""); res = LLVMBuildLShr(builder, res, lp_build_const_int_vec(dst_type, shift), "");
} }
bias_ = lp_build_const_scalar(dst_type, bias); bias_ = lp_build_const_vec(dst_type, bias);
res = LLVMBuildOr(builder, res = LLVMBuildOr(builder,
res, res,
@ -195,7 +195,7 @@ lp_build_unsigned_norm_to_float(LLVMBuilderRef builder,
res = LLVMBuildBitCast(builder, res, vec_type, ""); res = LLVMBuildBitCast(builder, res, vec_type, "");
res = LLVMBuildSub(builder, res, bias_, ""); res = LLVMBuildSub(builder, res, bias_, "");
res = LLVMBuildMul(builder, res, lp_build_const_scalar(dst_type, scale), ""); res = LLVMBuildMul(builder, res, lp_build_const_vec(dst_type, scale), "");
return res; return res;
} }
@ -251,7 +251,7 @@ lp_build_conv(LLVMBuilderRef builder,
if(dst_min == 0.0) if(dst_min == 0.0)
thres = bld.zero; thres = bld.zero;
else else
thres = lp_build_const_scalar(src_type, dst_min); thres = lp_build_const_vec(src_type, dst_min);
for(i = 0; i < num_tmps; ++i) for(i = 0; i < num_tmps; ++i)
tmp[i] = lp_build_max(&bld, tmp[i], thres); tmp[i] = lp_build_max(&bld, tmp[i], thres);
} }
@ -260,7 +260,7 @@ lp_build_conv(LLVMBuilderRef builder,
if(dst_max == 1.0) if(dst_max == 1.0)
thres = bld.one; thres = bld.one;
else else
thres = lp_build_const_scalar(src_type, dst_max); thres = lp_build_const_vec(src_type, dst_max);
for(i = 0; i < num_tmps; ++i) for(i = 0; i < num_tmps; ++i)
tmp[i] = lp_build_min(&bld, tmp[i], thres); tmp[i] = lp_build_min(&bld, tmp[i], thres);
} }
@ -288,7 +288,7 @@ lp_build_conv(LLVMBuilderRef builder,
LLVMTypeRef tmp_vec_type; LLVMTypeRef tmp_vec_type;
if (dst_scale != 1.0) { if (dst_scale != 1.0) {
LLVMValueRef scale = lp_build_const_scalar(tmp_type, dst_scale); LLVMValueRef scale = lp_build_const_vec(tmp_type, dst_scale);
for(i = 0; i < num_tmps; ++i) for(i = 0; i < num_tmps; ++i)
tmp[i] = LLVMBuildMul(builder, tmp[i], scale, ""); tmp[i] = LLVMBuildMul(builder, tmp[i], scale, "");
} }
@ -315,7 +315,7 @@ lp_build_conv(LLVMBuilderRef builder,
/* FIXME: compensate different offsets too */ /* FIXME: compensate different offsets too */
if(src_shift > dst_shift) { if(src_shift > dst_shift) {
LLVMValueRef shift = lp_build_int_const_scalar(tmp_type, src_shift - dst_shift); LLVMValueRef shift = lp_build_const_int_vec(tmp_type, src_shift - dst_shift);
for(i = 0; i < num_tmps; ++i) for(i = 0; i < num_tmps; ++i)
if(src_type.sign) if(src_type.sign)
tmp[i] = LLVMBuildAShr(builder, tmp[i], shift, ""); tmp[i] = LLVMBuildAShr(builder, tmp[i], shift, "");
@ -388,7 +388,7 @@ lp_build_conv(LLVMBuilderRef builder,
} }
if (src_scale != 1.0) { if (src_scale != 1.0) {
LLVMValueRef scale = lp_build_const_scalar(tmp_type, 1.0/src_scale); LLVMValueRef scale = lp_build_const_vec(tmp_type, 1.0/src_scale);
for(i = 0; i < num_tmps; ++i) for(i = 0; i < num_tmps; ++i)
tmp[i] = LLVMBuildMul(builder, tmp[i], scale, ""); tmp[i] = LLVMBuildMul(builder, tmp[i], scale, "");
} }
@ -400,7 +400,7 @@ lp_build_conv(LLVMBuilderRef builder,
/* FIXME: compensate different offsets too */ /* FIXME: compensate different offsets too */
if(src_shift < dst_shift) { if(src_shift < dst_shift) {
LLVMValueRef shift = lp_build_int_const_scalar(tmp_type, dst_shift - src_shift); LLVMValueRef shift = lp_build_const_int_vec(tmp_type, dst_shift - src_shift);
for(i = 0; i < num_tmps; ++i) for(i = 0; i < num_tmps; ++i)
tmp[i] = LLVMBuildShl(builder, tmp[i], shift, ""); tmp[i] = LLVMBuildShl(builder, tmp[i], shift, "");
} }

View File

@ -185,11 +185,11 @@ lp_build_depth_test(LLVMBuilderRef builder,
if(padding_left || padding_right) { if(padding_left || padding_right) {
const unsigned long long mask_left = ((unsigned long long)1 << (format_desc->block.bits - padding_left)) - 1; const unsigned long long mask_left = ((unsigned long long)1 << (format_desc->block.bits - padding_left)) - 1;
const unsigned long long mask_right = ((unsigned long long)1 << (padding_right)) - 1; const unsigned long long mask_right = ((unsigned long long)1 << (padding_right)) - 1;
z_bitmask = lp_build_int_const_scalar(type, mask_left ^ mask_right); z_bitmask = lp_build_const_int_vec(type, mask_left ^ mask_right);
} }
if(padding_left) if(padding_left)
src = LLVMBuildLShr(builder, src, lp_build_int_const_scalar(type, padding_left), ""); src = LLVMBuildLShr(builder, src, lp_build_const_int_vec(type, padding_left), "");
if(padding_right) if(padding_right)
src = LLVMBuildAnd(builder, src, z_bitmask, ""); src = LLVMBuildAnd(builder, src, z_bitmask, "");
if(padding_left || padding_right) if(padding_left || padding_right)

View File

@ -114,10 +114,10 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder,
case UTIL_FORMAT_TYPE_UNSIGNED: case UTIL_FORMAT_TYPE_UNSIGNED:
if(type.floating) { if(type.floating) {
if(start) if(start)
input = LLVMBuildLShr(builder, input, lp_build_int_const_scalar(type, start), ""); input = LLVMBuildLShr(builder, input, lp_build_const_int_vec(type, start), "");
if(stop < format_desc->block.bits) { if(stop < format_desc->block.bits) {
unsigned mask = ((unsigned long long)1 << width) - 1; unsigned mask = ((unsigned long long)1 << width) - 1;
input = LLVMBuildAnd(builder, input, lp_build_int_const_scalar(type, mask), ""); input = LLVMBuildAnd(builder, input, lp_build_const_int_vec(type, mask), "");
} }
if(format_desc->channel[chan].normalized) if(format_desc->channel[chan].normalized)

View File

@ -289,17 +289,17 @@ pos_update(struct lp_build_interp_soa_context *bld, int quad_index)
/* top-right or bottom-right quad in block */ /* top-right or bottom-right quad in block */
/* build x += xstep */ /* build x += xstep */
x = lp_build_add(&bld->base, x, x = lp_build_add(&bld->base, x,
lp_build_const_scalar(bld->base.type, xstep)); lp_build_const_vec(bld->base.type, xstep));
} }
if (quad_index == 2) { if (quad_index == 2) {
/* bottom-left quad in block */ /* bottom-left quad in block */
/* build y += ystep */ /* build y += ystep */
y = lp_build_add(&bld->base, y, y = lp_build_add(&bld->base, y,
lp_build_const_scalar(bld->base.type, ystep)); lp_build_const_vec(bld->base.type, ystep));
/* build x -= xstep */ /* build x -= xstep */
x = lp_build_sub(&bld->base, x, x = lp_build_sub(&bld->base, x,
lp_build_const_scalar(bld->base.type, xstep)); lp_build_const_vec(bld->base.type, xstep));
} }
lp_build_name(x, "pos.x"); lp_build_name(x, "pos.x");

View File

@ -193,7 +193,7 @@ lp_build_compare(LLVMBuilderRef builder,
if(table[func].gt && if(table[func].gt &&
((type.width == 8 && type.sign) || ((type.width == 8 && type.sign) ||
(type.width != 8 && !type.sign))) { (type.width != 8 && !type.sign))) {
LLVMValueRef msb = lp_build_int_const_scalar(type, (unsigned long long)1 << (type.width - 1)); LLVMValueRef msb = lp_build_const_int_vec(type, (unsigned long long)1 << (type.width - 1));
a = LLVMBuildXor(builder, a, msb, ""); a = LLVMBuildXor(builder, a, msb, "");
b = LLVMBuildXor(builder, b, msb, ""); b = LLVMBuildXor(builder, b, msb, "");
} }

View File

@ -164,7 +164,7 @@ lp_build_unpack2(LLVMBuilderRef builder,
if(dst_type.sign && src_type.sign) { if(dst_type.sign && src_type.sign) {
/* Replicate the sign bit in the most significant bits */ /* Replicate the sign bit in the most significant bits */
msb = LLVMBuildAShr(builder, src, lp_build_int_const_scalar(src_type, src_type.width - 1), ""); msb = LLVMBuildAShr(builder, src, lp_build_const_int_vec(src_type, src_type.width - 1), "");
} }
else else
/* Most significant bits always zero */ /* Most significant bits always zero */
@ -361,7 +361,7 @@ lp_build_packs2(LLVMBuilderRef builder,
if(clamp) { if(clamp) {
struct lp_build_context bld; struct lp_build_context bld;
unsigned dst_bits = dst_type.sign ? dst_type.width - 1 : dst_type.width; unsigned dst_bits = dst_type.sign ? dst_type.width - 1 : dst_type.width;
LLVMValueRef dst_max = lp_build_int_const_scalar(src_type, ((unsigned long long)1 << dst_bits) - 1); LLVMValueRef dst_max = lp_build_const_int_vec(src_type, ((unsigned long long)1 << dst_bits) - 1);
lp_build_context_init(&bld, builder, src_type); lp_build_context_init(&bld, builder, src_type);
lo = lp_build_min(&bld, lo, dst_max); lo = lp_build_min(&bld, lo, dst_max);
hi = lp_build_min(&bld, hi, dst_max); hi = lp_build_min(&bld, hi, dst_max);

View File

@ -173,7 +173,7 @@ lp_build_sample_offset(struct lp_build_context *bld,
LLVMValueRef x_stride; LLVMValueRef x_stride;
LLVMValueRef offset; LLVMValueRef offset;
x_stride = lp_build_const_scalar(bld->type, format_desc->block.bits/8); x_stride = lp_build_const_vec(bld->type, format_desc->block.bits/8);
if(format_desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS) { if(format_desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS) {
LLVMValueRef x_lo, x_hi; LLVMValueRef x_lo, x_hi;
@ -195,9 +195,9 @@ lp_build_sample_offset(struct lp_build_context *bld,
y_hi = LLVMBuildLShr(bld->builder, y, bld->one, ""); y_hi = LLVMBuildLShr(bld->builder, y, bld->one, "");
x_stride_lo = x_stride; x_stride_lo = x_stride;
y_stride_lo = lp_build_const_scalar(bld->type, 2*format_desc->block.bits/8); y_stride_lo = lp_build_const_vec(bld->type, 2*format_desc->block.bits/8);
x_stride_hi = lp_build_const_scalar(bld->type, 4*format_desc->block.bits/8); x_stride_hi = lp_build_const_vec(bld->type, 4*format_desc->block.bits/8);
y_stride_hi = LLVMBuildShl(bld->builder, y_stride, bld->one, ""); y_stride_hi = LLVMBuildShl(bld->builder, y_stride, bld->one, "");
x_offset_lo = lp_build_mul(bld, x_lo, x_stride_lo); x_offset_lo = lp_build_mul(bld, x_lo, x_stride_lo);

View File

@ -292,7 +292,7 @@ lp_build_sample_texel_soa(struct lp_build_sample_context *bld,
int chan; int chan;
for (chan = 0; chan < 4; chan++) { for (chan = 0; chan < 4; chan++) {
LLVMValueRef border_chan = LLVMValueRef border_chan =
lp_build_const_scalar(bld->texel_type, lp_build_const_vec(bld->texel_type,
bld->static_state->border_color[chan]); bld->static_state->border_color[chan]);
texel[chan] = lp_build_select(&bld->texel_bld, use_border, texel[chan] = lp_build_select(&bld->texel_bld, use_border,
border_chan, texel[chan]); border_chan, texel[chan]);
@ -457,8 +457,8 @@ lp_build_sample_wrap_linear(struct lp_build_sample_context *bld,
struct lp_build_context *coord_bld = &bld->coord_bld; struct lp_build_context *coord_bld = &bld->coord_bld;
struct lp_build_context *int_coord_bld = &bld->int_coord_bld; struct lp_build_context *int_coord_bld = &bld->int_coord_bld;
struct lp_build_context *uint_coord_bld = &bld->uint_coord_bld; struct lp_build_context *uint_coord_bld = &bld->uint_coord_bld;
LLVMValueRef two = lp_build_const_scalar(coord_bld->type, 2.0); LLVMValueRef two = lp_build_const_vec(coord_bld->type, 2.0);
LLVMValueRef half = lp_build_const_scalar(coord_bld->type, 0.5); LLVMValueRef half = lp_build_const_vec(coord_bld->type, 0.5);
LLVMValueRef length_f = lp_build_int_to_float(coord_bld, length); LLVMValueRef length_f = lp_build_int_to_float(coord_bld, length);
LLVMValueRef length_minus_one = lp_build_sub(uint_coord_bld, length, uint_coord_bld->one); LLVMValueRef length_minus_one = lp_build_sub(uint_coord_bld, length, uint_coord_bld->one);
LLVMValueRef length_f_minus_one = lp_build_sub(coord_bld, length_f, coord_bld->one); LLVMValueRef length_f_minus_one = lp_build_sub(coord_bld, length_f, coord_bld->one);
@ -512,7 +512,7 @@ lp_build_sample_wrap_linear(struct lp_build_sample_context *bld,
else { else {
LLVMValueRef min, max; LLVMValueRef min, max;
/* clamp to [0.5, length - 0.5] */ /* clamp to [0.5, length - 0.5] */
min = lp_build_const_scalar(coord_bld->type, 0.5F); min = lp_build_const_vec(coord_bld->type, 0.5F);
max = lp_build_sub(coord_bld, length_f, min); max = lp_build_sub(coord_bld, length_f, min);
coord = lp_build_clamp(coord_bld, coord, min, max); coord = lp_build_clamp(coord_bld, coord, min, max);
} }
@ -533,7 +533,7 @@ lp_build_sample_wrap_linear(struct lp_build_sample_context *bld,
if (bld->static_state->normalized_coords) { if (bld->static_state->normalized_coords) {
/* min = -1.0 / (2 * length) = -0.5 / length */ /* min = -1.0 / (2 * length) = -0.5 / length */
min = lp_build_mul(coord_bld, min = lp_build_mul(coord_bld,
lp_build_const_scalar(coord_bld->type, -0.5F), lp_build_const_vec(coord_bld->type, -0.5F),
lp_build_rcp(coord_bld, length_f)); lp_build_rcp(coord_bld, length_f));
/* max = 1.0 - min */ /* max = 1.0 - min */
max = lp_build_sub(coord_bld, coord_bld->one, min); max = lp_build_sub(coord_bld, coord_bld->one, min);
@ -545,7 +545,7 @@ lp_build_sample_wrap_linear(struct lp_build_sample_context *bld,
} }
else { else {
/* clamp to [-0.5, length + 0.5] */ /* clamp to [-0.5, length + 0.5] */
min = lp_build_const_scalar(coord_bld->type, -0.5F); min = lp_build_const_vec(coord_bld->type, -0.5F);
max = lp_build_sub(coord_bld, length_f, min); max = lp_build_sub(coord_bld, length_f, min);
coord = lp_build_clamp(coord_bld, coord, min, max); coord = lp_build_clamp(coord_bld, coord, min, max);
coord = lp_build_sub(coord_bld, coord, half); coord = lp_build_sub(coord_bld, coord, half);
@ -620,7 +620,7 @@ lp_build_sample_wrap_linear(struct lp_build_sample_context *bld,
LLVMValueRef min, max; LLVMValueRef min, max;
/* min = -1.0 / (2 * length) = -0.5 / length */ /* min = -1.0 / (2 * length) = -0.5 / length */
min = lp_build_mul(coord_bld, min = lp_build_mul(coord_bld,
lp_build_const_scalar(coord_bld->type, -0.5F), lp_build_const_vec(coord_bld->type, -0.5F),
lp_build_rcp(coord_bld, length_f)); lp_build_rcp(coord_bld, length_f));
/* max = 1.0 - min */ /* max = 1.0 - min */
max = lp_build_sub(coord_bld, coord_bld->one, min); max = lp_build_sub(coord_bld, coord_bld->one, min);
@ -665,7 +665,7 @@ lp_build_sample_wrap_nearest(struct lp_build_sample_context *bld,
struct lp_build_context *coord_bld = &bld->coord_bld; struct lp_build_context *coord_bld = &bld->coord_bld;
struct lp_build_context *int_coord_bld = &bld->int_coord_bld; struct lp_build_context *int_coord_bld = &bld->int_coord_bld;
struct lp_build_context *uint_coord_bld = &bld->uint_coord_bld; struct lp_build_context *uint_coord_bld = &bld->uint_coord_bld;
LLVMValueRef two = lp_build_const_scalar(coord_bld->type, 2.0); LLVMValueRef two = lp_build_const_vec(coord_bld->type, 2.0);
LLVMValueRef length_f = lp_build_int_to_float(coord_bld, length); LLVMValueRef length_f = lp_build_int_to_float(coord_bld, length);
LLVMValueRef length_minus_one = lp_build_sub(uint_coord_bld, length, uint_coord_bld->one); LLVMValueRef length_minus_one = lp_build_sub(uint_coord_bld, length, uint_coord_bld->one);
LLVMValueRef length_f_minus_one = lp_build_sub(coord_bld, length_f, coord_bld->one); LLVMValueRef length_f_minus_one = lp_build_sub(coord_bld, length_f, coord_bld->one);
@ -708,7 +708,7 @@ lp_build_sample_wrap_nearest(struct lp_build_sample_context *bld,
} }
else { else {
/* clamp to [0.5, length - 0.5] */ /* clamp to [0.5, length - 0.5] */
min = lp_build_const_scalar(coord_bld->type, 0.5F); min = lp_build_const_vec(coord_bld->type, 0.5F);
max = lp_build_sub(coord_bld, length_f, min); max = lp_build_sub(coord_bld, length_f, min);
} }
/* coord = clamp(coord, min, max) */ /* coord = clamp(coord, min, max) */
@ -724,7 +724,7 @@ lp_build_sample_wrap_nearest(struct lp_build_sample_context *bld,
if (bld->static_state->normalized_coords) { if (bld->static_state->normalized_coords) {
/* min = -1.0 / (2 * length) = -0.5 / length */ /* min = -1.0 / (2 * length) = -0.5 / length */
min = lp_build_mul(coord_bld, min = lp_build_mul(coord_bld,
lp_build_const_scalar(coord_bld->type, -0.5F), lp_build_const_vec(coord_bld->type, -0.5F),
lp_build_rcp(coord_bld, length_f)); lp_build_rcp(coord_bld, length_f));
/* max = length - min */ /* max = length - min */
max = lp_build_sub(coord_bld, length_f, min); max = lp_build_sub(coord_bld, length_f, min);
@ -733,7 +733,7 @@ lp_build_sample_wrap_nearest(struct lp_build_sample_context *bld,
} }
else { else {
/* clamp to [-0.5, length + 0.5] */ /* clamp to [-0.5, length + 0.5] */
min = lp_build_const_scalar(coord_bld->type, -0.5F); min = lp_build_const_vec(coord_bld->type, -0.5F);
max = lp_build_sub(coord_bld, length_f, min); max = lp_build_sub(coord_bld, length_f, min);
} }
/* coord = clamp(coord, min, max) */ /* coord = clamp(coord, min, max) */
@ -1226,7 +1226,7 @@ static LLVMValueRef
lp_build_cube_ima(struct lp_build_context *coord_bld, LLVMValueRef coord) lp_build_cube_ima(struct lp_build_context *coord_bld, LLVMValueRef coord)
{ {
/* ima = -0.5 / abs(coord); */ /* ima = -0.5 / abs(coord); */
LLVMValueRef negHalf = lp_build_const_scalar(coord_bld->type, -0.5); LLVMValueRef negHalf = lp_build_const_vec(coord_bld->type, -0.5);
LLVMValueRef absCoord = lp_build_abs(coord_bld, coord); LLVMValueRef absCoord = lp_build_abs(coord_bld, coord);
LLVMValueRef ima = lp_build_mul(coord_bld, negHalf, LLVMValueRef ima = lp_build_mul(coord_bld, negHalf,
lp_build_rcp(coord_bld, absCoord)); lp_build_rcp(coord_bld, absCoord));
@ -1246,7 +1246,7 @@ lp_build_cube_coord(struct lp_build_context *coord_bld,
LLVMValueRef coord, LLVMValueRef ima) LLVMValueRef coord, LLVMValueRef ima)
{ {
/* return negate(coord) * ima * sign + 0.5; */ /* return negate(coord) * ima * sign + 0.5; */
LLVMValueRef half = lp_build_const_scalar(coord_bld->type, 0.5); LLVMValueRef half = lp_build_const_vec(coord_bld->type, 0.5);
LLVMValueRef res; LLVMValueRef res;
assert(negate_coord == +1 || negate_coord == -1); assert(negate_coord == +1 || negate_coord == -1);
@ -1708,7 +1708,7 @@ lp_build_rgba8_to_f32_soa(LLVMBuilderRef builder,
LLVMValueRef packed, LLVMValueRef packed,
LLVMValueRef *rgba) LLVMValueRef *rgba)
{ {
LLVMValueRef mask = lp_build_int_const_scalar(dst_type, 0xff); LLVMValueRef mask = lp_build_const_int_vec(dst_type, 0xff);
unsigned chan; unsigned chan;
/* Decode the input vector components */ /* Decode the input vector components */
@ -1720,7 +1720,7 @@ lp_build_rgba8_to_f32_soa(LLVMBuilderRef builder,
input = packed; input = packed;
if(start) if(start)
input = LLVMBuildLShr(builder, input, lp_build_int_const_scalar(dst_type, start), ""); input = LLVMBuildLShr(builder, input, lp_build_const_int_vec(dst_type, start), "");
if(stop < 32) if(stop < 32)
input = LLVMBuildAnd(builder, input, mask, ""); input = LLVMBuildAnd(builder, input, mask, "");
@ -1782,17 +1782,17 @@ lp_build_sample_2d_linear_aos(struct lp_build_sample_context *bld,
t = LLVMBuildFPToSI(builder, t, i32_vec_type, ""); t = LLVMBuildFPToSI(builder, t, i32_vec_type, "");
/* subtract 0.5 (add -128) */ /* subtract 0.5 (add -128) */
i32_c128 = lp_build_int_const_scalar(i32.type, -128); i32_c128 = lp_build_const_int_vec(i32.type, -128);
s = LLVMBuildAdd(builder, s, i32_c128, ""); s = LLVMBuildAdd(builder, s, i32_c128, "");
t = LLVMBuildAdd(builder, t, i32_c128, ""); t = LLVMBuildAdd(builder, t, i32_c128, "");
/* compute floor (shift right 8) */ /* compute floor (shift right 8) */
i32_c8 = lp_build_int_const_scalar(i32.type, 8); i32_c8 = lp_build_const_int_vec(i32.type, 8);
s_ipart = LLVMBuildAShr(builder, s, i32_c8, ""); s_ipart = LLVMBuildAShr(builder, s, i32_c8, "");
t_ipart = LLVMBuildAShr(builder, t, i32_c8, ""); t_ipart = LLVMBuildAShr(builder, t, i32_c8, "");
/* compute fractional part (AND with 0xff) */ /* compute fractional part (AND with 0xff) */
i32_c255 = lp_build_int_const_scalar(i32.type, 255); i32_c255 = lp_build_const_int_vec(i32.type, 255);
s_fpart = LLVMBuildAnd(builder, s, i32_c255, ""); s_fpart = LLVMBuildAnd(builder, s, i32_c255, "");
t_fpart = LLVMBuildAnd(builder, t, i32_c255, ""); t_fpart = LLVMBuildAnd(builder, t, i32_c255, "");
@ -1959,7 +1959,7 @@ lp_build_sample_compare(struct lp_build_sample_context *bld,
} }
assert(res); assert(res);
res = lp_build_mul(texel_bld, res, lp_build_const_scalar(texel_bld->type, 0.25)); res = lp_build_mul(texel_bld, res, lp_build_const_vec(texel_bld->type, 0.25));
/* XXX returning result for default GL_DEPTH_TEXTURE_MODE = GL_LUMINANCE */ /* XXX returning result for default GL_DEPTH_TEXTURE_MODE = GL_LUMINANCE */
for(chan = 0; chan < 3; ++chan) for(chan = 0; chan < 3; ++chan)

View File

@ -144,9 +144,9 @@ lp_build_broadcast_aos(struct lp_build_context *bld,
#endif #endif
if(shift > 0) if(shift > 0)
tmp = LLVMBuildLShr(bld->builder, a, lp_build_int_const_scalar(type4, shift*type.width), ""); tmp = LLVMBuildLShr(bld->builder, a, lp_build_const_int_vec(type4, shift*type.width), "");
if(shift < 0) if(shift < 0)
tmp = LLVMBuildShl(bld->builder, a, lp_build_int_const_scalar(type4, -shift*type.width), ""); tmp = LLVMBuildShl(bld->builder, a, lp_build_const_int_vec(type4, -shift*type.width), "");
assert(tmp); assert(tmp);
if(tmp) if(tmp)

View File

@ -475,7 +475,7 @@ emit_store(
break; break;
case TGSI_SAT_MINUS_PLUS_ONE: case TGSI_SAT_MINUS_PLUS_ONE:
value = lp_build_max(&bld->base, value, lp_build_const_scalar(bld->base.type, -1.0)); value = lp_build_max(&bld->base, value, lp_build_const_vec(bld->base.type, -1.0));
value = lp_build_min(&bld->base, value, bld->base.one); value = lp_build_min(&bld->base, value, bld->base.one);
break; break;
@ -996,7 +996,7 @@ emit_instruction(
src0 = emit_fetch( bld, inst, 0, chan_index ); src0 = emit_fetch( bld, inst, 0, chan_index );
src1 = emit_fetch( bld, inst, 1, chan_index ); src1 = emit_fetch( bld, inst, 1, chan_index );
src2 = emit_fetch( bld, inst, 2, chan_index ); src2 = emit_fetch( bld, inst, 2, chan_index );
tmp1 = lp_build_const_scalar(bld->base.type, 0.5); tmp1 = lp_build_const_vec(bld->base.type, 0.5);
tmp0 = lp_build_cmp( &bld->base, PIPE_FUNC_GREATER, src2, tmp1); tmp0 = lp_build_cmp( &bld->base, PIPE_FUNC_GREATER, src2, tmp1);
dst0[chan_index] = lp_build_select( &bld->base, tmp0, src0, src1 ); dst0[chan_index] = lp_build_select( &bld->base, tmp0, src0, src1 );
} }
@ -1713,7 +1713,7 @@ lp_build_tgsi_soa(LLVMBuilderRef builder,
assert(num_immediates < LP_MAX_IMMEDIATES); assert(num_immediates < LP_MAX_IMMEDIATES);
for( i = 0; i < size; ++i ) for( i = 0; i < size; ++i )
bld.immediates[num_immediates][i] = bld.immediates[num_immediates][i] =
lp_build_const_scalar(type, parse.FullToken.FullImmediate.u[i].Float); lp_build_const_vec(type, parse.FullToken.FullImmediate.u[i].Float);
for( i = size; i < 4; ++i ) for( i = size; i < 4; ++i )
bld.immediates[num_immediates][i] = bld.base.undef; bld.immediates[num_immediates][i] = bld.base.undef;
num_immediates++; num_immediates++;

View File

@ -252,7 +252,7 @@ generate_tri_edge_mask(LLVMBuilderRef builder,
LLVMConstInt(LLVMInt32Type(), INT_MIN, 0), LLVMConstInt(LLVMInt32Type(), INT_MIN, 0),
""); "");
in_out_mask = lp_build_int_const_scalar(i32_type, ~0); in_out_mask = lp_build_const_int_vec(i32_type, ~0);
lp_build_flow_scope_declare(flow, &in_out_mask); lp_build_flow_scope_declare(flow, &in_out_mask);
@ -367,7 +367,7 @@ build_int32_vec_const(int value)
i32_type.norm = FALSE; /* values are not normalized */ i32_type.norm = FALSE; /* values are not normalized */
i32_type.width = 32; /* 32-bit int values */ i32_type.width = 32; /* 32-bit int values */
i32_type.length = 4; /* 4 elements per vector */ i32_type.length = 4; /* 4 elements per vector */
return lp_build_int_const_scalar(i32_type, value); return lp_build_const_int_vec(i32_type, value);
} }