gallivm: Use %.9g to print floats.
authorJosé Fonseca <jfonseca@vmware.com>
Wed, 11 Jul 2012 19:23:52 +0000 (20:23 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 12 Jul 2012 20:14:35 +0000 (21:14 +0100)
So that we can see them in their full denormalized glory.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_printf.c

index 8549b87a1c766ec6e63d53f7d991d4592ced0b25..0de6a0882ba6eff0e660b1a240c058e3b99887a6 100644 (file)
@@ -83,8 +83,8 @@ lp_build_print_value(struct gallivm_state *gallivm,
    LLVMTypeKind type_kind;
    LLVMTypeRef type_ref;
    LLVMValueRef params[2 + LP_MAX_VECTOR_LENGTH];
-   char type_fmt[4] = " %x";
-   char format[2 + 3 * LP_MAX_VECTOR_LENGTH + 2] = "%s";
+   char type_fmt[6] = " %x";
+   char format[2 + 5 * LP_MAX_VECTOR_LENGTH + 2] = "%s";
    unsigned length;
    unsigned i;
 
@@ -101,7 +101,10 @@ lp_build_print_value(struct gallivm_state *gallivm,
    }
 
    if (type_kind == LLVMFloatTypeKind || type_kind == LLVMDoubleTypeKind) {
-      type_fmt[2] = 'f';
+      type_fmt[2] = '.';
+      type_fmt[3] = '9';
+      type_fmt[4] = 'g';
+      type_fmt[5] = '\0';
    } else if (type_kind == LLVMIntegerTypeKind) {
       if (LLVMGetIntTypeWidth(type_ref) == 8) {
          type_fmt[2] = 'u';