glsl: be more consistent about printing constants

Make sure that we print the same number of digits when printing 0.0 as
any other floating-point number. This will make generating expected
output files for tests easier. To avoid breaking "make check," update
the generated tests for lower_jumps before the next commit which will
bring create_test_cases.py in line with them.

Signed-off-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Connor Abbott 2014-05-27 21:23:02 -04:00 committed by Kenneth Graunke
parent a7aca3919b
commit bbaec0f76c
23 changed files with 40 additions and 48 deletions

View file

@ -430,7 +430,7 @@ void ir_print_visitor::visit(ir_constant *ir)
case GLSL_TYPE_FLOAT:
if (ir->value.f[i] == 0.0f)
/* 0.0 == -0.0, so print with %f to get the proper sign. */
fprintf(f, "%.1f", ir->value.f[i]);
fprintf(f, "%f", ir->value.f[i]);
else if (fabs(ir->value.f[i]) < 0.000001f)
fprintf(f, "%a", ir->value.f[i]);
else if (fabs(ir->value.f[i]) > 1000000.0f)

View file

@ -8,6 +8,5 @@
((declare (out) float a)
(function main
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000))) break))))))
((loop ((assign (x) (var_ref a) (constant float (1.000000))) break))))))
EOF

View file

@ -1,5 +1,4 @@
((declare (out) float a)
(function main
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000))) break))))))
((loop ((assign (x) (var_ref a) (constant float (1.000000))) break))))))

View file

@ -3,5 +3,5 @@
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000)))
(if (expression bool > (var_ref b) (constant float (0.0))) (break)
(if (expression bool > (var_ref b) (constant float (0.000000))) (break)
())))))))

View file

@ -3,6 +3,6 @@
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000)))
(if (expression bool > (var_ref b) (constant float (0.0)))
(if (expression bool > (var_ref b) (constant float (0.000000)))
((assign (x) (var_ref c) (constant float (1.000000))) break)
())))))))

View file

@ -3,5 +3,5 @@
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000)))
(if (expression bool > (var_ref b) (constant float (0.0))) ()
(if (expression bool > (var_ref b) (constant float (0.000000))) ()
(break))))))))

View file

@ -3,5 +3,5 @@
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000)))
(if (expression bool > (var_ref b) (constant float (0.0))) ()
(if (expression bool > (var_ref b) (constant float (0.000000))) ()
((assign (x) (var_ref c) (constant float (1.000000))) break))))))))

View file

@ -8,15 +8,15 @@
(loop
((declare (temporary) bool execute_flag)
(assign (x) (var_ref execute_flag) (constant bool (1)))
(if (expression bool > (var_ref a) (constant float (0.0)))
((if (expression bool > (var_ref ba) (constant float (0.0)))
((if (expression bool > (var_ref bb) (constant float (0.0)))
(if (expression bool > (var_ref a) (constant float (0.000000)))
((if (expression bool > (var_ref ba) (constant float (0.000000)))
((if (expression bool > (var_ref bb) (constant float (0.000000)))
((assign (x) (var_ref execute_flag) (constant bool (0))))
()))
())
(if (var_ref execute_flag)
((if (expression bool > (var_ref ca) (constant float (0.0)))
((if (expression bool > (var_ref cb) (constant float (0.0)))
((if (expression bool > (var_ref ca) (constant float (0.000000)))
((if (expression bool > (var_ref cb) (constant float (0.000000)))
((assign (x) (var_ref break_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))
()))

View file

@ -6,13 +6,13 @@
(loop
((declare (temporary) bool execute_flag)
(assign (x) (var_ref execute_flag) (constant bool (1)))
(if (expression bool > (var_ref aa) (constant float (0.0)))
((if (expression bool > (var_ref ab) (constant float (0.0)))
(if (expression bool > (var_ref aa) (constant float (0.000000)))
((if (expression bool > (var_ref ab) (constant float (0.000000)))
((assign (x) (var_ref execute_flag) (constant bool (0))))
()))
())
(if (var_ref execute_flag)
((if (expression bool > (var_ref b) (constant float (0.0)))
((if (expression bool > (var_ref b) (constant float (0.000000)))
((assign (x) (var_ref break_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))
()))

View file

@ -7,16 +7,16 @@
(assign (x) (var_ref execute_flag) (constant bool (1)))
(declare (temporary) bool return_flag)
(assign (x) (var_ref return_flag) (constant bool (0)))
(if (expression bool > (var_ref aa) (constant float (0.0)))
((if (expression bool > (var_ref ab) (constant float (0.0)))
(if (expression bool > (var_ref aa) (constant float (0.000000)))
((if (expression bool > (var_ref ab) (constant float (0.000000)))
((assign (x) (var_ref return_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))
()))
())
(if (var_ref execute_flag)
((loop
((if (expression bool > (var_ref b) (constant float (0.0)))
((if (expression bool > (var_ref c) (constant float (0.0))) ()
((if (expression bool > (var_ref b) (constant float (0.000000)))
((if (expression bool > (var_ref c) (constant float (0.000000))) ()
(continue)))
((assign (x) (var_ref return_flag) (constant bool (1)))))
break))

View file

@ -6,8 +6,8 @@
(declare (temporary) float return_value)
(declare (temporary) bool return_flag)
(assign (x) (var_ref return_flag) (constant bool (0)))
(if (expression bool > (var_ref a) (constant float (0.0)))
((if (expression bool > (var_ref b) (constant float (0.0)))
(if (expression bool > (var_ref a) (constant float (0.000000)))
((if (expression bool > (var_ref b) (constant float (0.000000)))
((assign (x) (var_ref return_value) (constant float (1.000000)))
(assign (x) (var_ref return_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))

View file

@ -6,7 +6,7 @@
(declare (temporary) float return_value)
(declare (temporary) bool return_flag)
(assign (x) (var_ref return_flag) (constant bool (0)))
(if (expression bool > (var_ref a) (constant float (0.0)))
(if (expression bool > (var_ref a) (constant float (0.000000)))
((assign (x) (var_ref return_value) (constant float (1.000000)))
(assign (x) (var_ref return_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))

View file

@ -1,8 +1,8 @@
((declare (in) float a) (declare (in) float b)
(function main
(signature void (parameters)
((if (expression bool > (var_ref a) (constant float (0.0)))
((if (expression bool > (var_ref b) (constant float (0.0)))
((if (expression bool > (var_ref a) (constant float (0.000000)))
((if (expression bool > (var_ref b) (constant float (0.000000)))
((return))
()))
())))))

View file

@ -5,8 +5,8 @@
(assign (x) (var_ref execute_flag) (constant bool (1)))
(declare (temporary) bool return_flag)
(assign (x) (var_ref return_flag) (constant bool (0)))
(if (expression bool > (var_ref a) (constant float (0.0)))
((if (expression bool > (var_ref b) (constant float (0.0)))
(if (expression bool > (var_ref a) (constant float (0.000000)))
((if (expression bool > (var_ref b) (constant float (0.000000)))
((assign (x) (var_ref return_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))
()))

View file

@ -1,8 +1,8 @@
((declare (in) float a) (declare (in) float b)
(function sub
(signature void (parameters)
((if (expression bool > (var_ref a) (constant float (0.0)))
((if (expression bool > (var_ref b) (constant float (0.0)))
((if (expression bool > (var_ref a) (constant float (0.000000)))
((if (expression bool > (var_ref b) (constant float (0.000000)))
((return))
()))
())))))

View file

@ -5,8 +5,8 @@
(assign (x) (var_ref execute_flag) (constant bool (1)))
(declare (temporary) bool return_flag)
(assign (x) (var_ref return_flag) (constant bool (0)))
(if (expression bool > (var_ref a) (constant float (0.0)))
((if (expression bool > (var_ref b) (constant float (0.0)))
(if (expression bool > (var_ref a) (constant float (0.000000)))
((if (expression bool > (var_ref b) (constant float (0.000000)))
((assign (x) (var_ref return_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))
()))

View file

@ -6,15 +6,15 @@
(assign (x) (var_ref execute_flag) (constant bool (1)))
(declare (temporary) bool return_flag)
(assign (x) (var_ref return_flag) (constant bool (0)))
(if (expression bool > (var_ref aa) (constant float (0.0)))
((if (expression bool > (var_ref ab) (constant float (0.0)))
(if (expression bool > (var_ref aa) (constant float (0.000000)))
((if (expression bool > (var_ref ab) (constant float (0.000000)))
((assign (x) (var_ref return_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))
()))
())
(if (var_ref execute_flag)
((if (expression bool > (var_ref b) (constant float (0.0)))
((if (expression bool > (var_ref c) (constant float (0.0))) () ())
((if (expression bool > (var_ref b) (constant float (0.000000)))
((if (expression bool > (var_ref c) (constant float (0.000000))) () ())
(assign (x) (var_ref return_flag) (constant bool (1)))
(assign (x) (var_ref execute_flag) (constant bool (0))))
()))

View file

@ -8,6 +8,5 @@
((declare (out) float a)
(function main
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000))) continue))))))
((loop ((assign (x) (var_ref a) (constant float (1.000000))) continue))))))
EOF

View file

@ -1,5 +1,4 @@
((declare (out) float a)
(function main
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000)))))))))
((loop ((assign (x) (var_ref a) (constant float (1.000000)))))))))

View file

@ -8,7 +8,6 @@
((declare (out) float a) (declare (out) float b)
(function main
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000))) (return)))
((loop ((assign (x) (var_ref a) (constant float (1.000000))) (return)))
(assign (x) (var_ref b) (constant float (2.000000)))))))
EOF

View file

@ -1,6 +1,5 @@
((declare (out) float a) (declare (out) float b)
(function main
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000))) (return)))
((loop ((assign (x) (var_ref a) (constant float (1.000000))) (return)))
(assign (x) (var_ref b) (constant float (2.000000)))))))

View file

@ -8,7 +8,6 @@
((declare (out) float a) (declare (out) float b)
(function main
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000))) (return)))
((loop ((assign (x) (var_ref a) (constant float (1.000000))) (return)))
(assign (x) (var_ref b) (constant float (2.000000)))))))
EOF

View file

@ -8,7 +8,6 @@
((declare (out) float a) (declare (out) float b)
(function main
(signature void (parameters)
((loop
((assign (x) (var_ref a) (constant float (1.000000))) (return)))
((loop ((assign (x) (var_ref a) (constant float (1.000000))) (return)))
(assign (x) (var_ref b) (constant float (2.000000)))))))
EOF