summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm/lp_bld_printf.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2010-10-15 08:41:31 -0600
committerBrian Paul <brianp@vmware.com>2010-10-15 15:40:33 -0600
commit991f0c27638c4bc03a0c609244bf755a0820d46f (patch)
treea09df3850dda1be7b6dc1c401045109e3583bb8c /src/gallium/auxiliary/gallivm/lp_bld_printf.c
parent81d0a1fb3f1e5b7bcf43145f8a096691e3a5fdfb (diff)
gallivm: added lp_build_print_vec4()
Diffstat (limited to 'src/gallium/auxiliary/gallivm/lp_bld_printf.c')
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_printf.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.c b/src/gallium/auxiliary/gallivm/lp_bld_printf.c
index 153ba5b15b..0c16bcf347 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_printf.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.c
@@ -29,6 +29,7 @@
#include "util/u_debug.h"
#include "util/u_memory.h"
+#include "lp_bld_const.h"
#include "lp_bld_printf.h"
@@ -119,3 +120,22 @@ lp_build_printf(LLVMBuilderRef builder, const char *fmt, ...)
return LLVMBuildCall(builder, func_printf, params, argcount + 1, "");
}
+
+
+/**
+ * Print a float[4] vector.
+ */
+LLVMValueRef
+lp_build_print_vec4(LLVMBuilderRef builder, const char *msg, LLVMValueRef vec)
+{
+ char format[1000];
+ LLVMValueRef x, y, z, w;
+
+ x = LLVMBuildExtractElement(builder, vec, lp_build_const_int32(0), "");
+ y = LLVMBuildExtractElement(builder, vec, lp_build_const_int32(1), "");
+ z = LLVMBuildExtractElement(builder, vec, lp_build_const_int32(2), "");
+ w = LLVMBuildExtractElement(builder, vec, lp_build_const_int32(3), "");
+
+ snprintf(format, sizeof(format), "%s %%f %%f %%f %%f\n", msg);
+ return lp_build_printf(builder, format, x, y, z, w);
+}