diff options
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_printf.c | 21 | ||||
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_printf.h | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.c b/src/gallium/auxiliary/gallivm/lp_bld_printf.c index 60cc6094f5a..56ff4269588 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_printf.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.c @@ -149,3 +149,24 @@ lp_build_print_vec4(struct gallivm_state *gallivm, util_snprintf(format, sizeof(format), "%s %%f %%f %%f %%f\n", msg); return lp_build_printf(gallivm, format, x, y, z, w); } + + +/** + * Print a intt[4] vector. + */ +LLVMValueRef +lp_build_print_ivec4(struct gallivm_state *gallivm, + const char *msg, LLVMValueRef vec) +{ + LLVMBuilderRef builder = gallivm->builder; + char format[1000]; + LLVMValueRef x, y, z, w; + + x = LLVMBuildExtractElement(builder, vec, lp_build_const_int32(gallivm, 0), ""); + y = LLVMBuildExtractElement(builder, vec, lp_build_const_int32(gallivm, 1), ""); + z = LLVMBuildExtractElement(builder, vec, lp_build_const_int32(gallivm, 2), ""); + w = LLVMBuildExtractElement(builder, vec, lp_build_const_int32(gallivm, 3), ""); + + util_snprintf(format, sizeof(format), "%s %%i %%i %%i %%i\n", msg); + return lp_build_printf(gallivm, format, x, y, z, w); +} diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.h b/src/gallium/auxiliary/gallivm/lp_bld_printf.h index f6bb8348699..79db74d8886 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_printf.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.h @@ -45,6 +45,9 @@ LLVMValueRef lp_build_print_vec4(struct gallivm_state *gallivm, const char *msg, LLVMValueRef vec); +LLVMValueRef +lp_build_print_ivec4(struct gallivm_state *gallivm, + const char *msg, LLVMValueRef vec); #endif |