From 84f367e69a876e473b4293483c5842b47d27d493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Tue, 2 Jul 2013 06:53:25 +0100 Subject: gallivm: Simplify intrinsic name construction. Just noticed this could be slightly shortened when fixing MSVC build. Trivial. --- .../auxiliary/gallivm/lp_bld_arit_overflow.c | 33 +++++++--------------- 1 file changed, 10 insertions(+), 23 deletions(-) (limited to 'src/gallium/auxiliary/gallivm/lp_bld_arit_overflow.c') diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit_overflow.c b/src/gallium/auxiliary/gallivm/lp_bld_arit_overflow.c index 124381d..91247fd 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_arit_overflow.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_arit_overflow.c @@ -66,10 +66,8 @@ build_binary_int_overflow(struct gallivm_state *gallivm, char intr_str[256]; LLVMTypeRef type_ref; LLVMTypeKind type_kind; - LLVMTypeRef oelems[2] = { - LLVMInt32TypeInContext(gallivm->context), - LLVMInt1TypeInContext(gallivm->context) - }; + unsigned type_width; + LLVMTypeRef oelems[2]; LLVMValueRef oresult; LLVMTypeRef otype; @@ -78,26 +76,15 @@ build_binary_int_overflow(struct gallivm_state *gallivm, type_kind = LLVMGetTypeKind(type_ref); debug_assert(type_kind == LLVMIntegerTypeKind); + type_width = LLVMGetIntTypeWidth(type_ref); - switch (LLVMGetIntTypeWidth(type_ref)) { - case 16: - util_snprintf(intr_str, sizeof intr_str, "%s.i16", - intr_prefix); - oelems[0] = LLVMInt16TypeInContext(gallivm->context); - break; - case 32: - util_snprintf(intr_str, sizeof intr_str, "%s.i32", - intr_prefix); - oelems[0] = LLVMInt32TypeInContext(gallivm->context); - break; - case 64: - util_snprintf(intr_str, sizeof intr_str, "%s.i64", - intr_prefix); - oelems[0] = LLVMInt64TypeInContext(gallivm->context); - break; - default: - debug_assert(!"Unsupported integer width in overflow computation!"); - } + debug_assert(type_width == 16 || type_width == 32 || type_width == 64); + + util_snprintf(intr_str, sizeof intr_str, "%s.i%u", + intr_prefix, type_width); + + oelems[0] = type_ref; + oelems[1] = LLVMInt1TypeInContext(gallivm->context); otype = LLVMStructTypeInContext(gallivm->context, oelems, 2, FALSE); oresult = lp_build_intrinsic_binary(builder, intr_str, -- cgit v1.1