#!/bin/bash
#
# This file was generated by create_test_cases.py.
#
# If a loop contains conditional breaks and continues, and
# ends in an unconditional break, then the unconditional break
# needs to be lowered, because it will no longer be at the end
# of the loop after the final break is added.
../../glsl_test optpass --quiet --input-ir 'do_lower_jumps(0, 0, 0, 1, 1)' <<EOF
((declare (in) float a) (declare (in) float ba) (declare (in) float bb)
 (declare (in) float ca)
 (declare (in) float cb)
 (function main
  (signature void (parameters)
   ((loop () () () ()
     ((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)))
           (continue)
           ()))
         ())
        (if (expression bool > (var_ref ca) (constant float (0.000000)))
         ((if (expression bool > (var_ref cb) (constant float (0.000000)))
           (break)
           ()))
         ()))
       ())
      break))))))
EOF
