From 14943add4440e9e79f93e039b788d287eeec2463 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Sun, 22 Apr 2018 01:31:22 +0200 Subject: [PATCH] nir: print 8 and 16 bit constants correctly Signed-off-by: Karol Herbst Reviewed-by: Rob Clark Reviewed-by: Jason Ekstrand --- src/compiler/nir/nir_print.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c index 21f13097651..97b2d6164cd 100644 --- a/src/compiler/nir/nir_print.c +++ b/src/compiler/nir/nir_print.c @@ -27,6 +27,7 @@ #include "nir.h" #include "compiler/shader_enums.h" +#include "util/half_float.h" #include #include #include /* for PRIx64 macro */ @@ -846,11 +847,22 @@ print_load_const_instr(nir_load_const_instr *instr, print_state *state) * and then print the float in a comment for readability. */ - if (instr->def.bit_size == 64) + switch (instr->def.bit_size) { + case 64: fprintf(fp, "0x%16" PRIx64 " /* %f */", instr->value.u64[i], instr->value.f64[i]); - else + break; + case 32: fprintf(fp, "0x%08x /* %f */", instr->value.u32[i], instr->value.f32[i]); + break; + case 16: + fprintf(fp, "0x%04x /* %f */", instr->value.u16[i], + _mesa_half_to_float(instr->value.u16[i])); + break; + case 8: + fprintf(fp, "0x%02x", instr->value.u8[i]); + break; + } } fprintf(fp, ")"); -- 2.30.2