#!/bin/bash
#
# This file was generated by create_test_cases.py.
#
# Test lowering of returns when there is one nested inside a
# complex structure of ifs, and one at the end of a function.
# In this case, the latter return needs to be lowered because it
# will not be at the end of the function once the final return
# is inserted.
../../glsl_test optpass --quiet --input-ir 'do_lower_jumps(0, 1, 0, 0, 0)' <<EOF
((declare (in) float a) (declare (in) float b)
 (function sub
  (signature float (parameters)
   ((if (expression bool > (var_ref a) (constant float (0.000000)))
     ((if (expression bool > (var_ref b) (constant float (0.000000)))
       ((return (constant float (1.000000))))
       ()))
     ())
    (return (constant float (2.000000)))))))
EOF
