#!/bin/bash
#
# This file was generated by create_test_cases.py.
#
# Normally a conditional break at the end of a loop isn't
# lowered, however if the conditional break gets placed inside
# an if(execute_flag) because of earlier lowering of continues,
# then the break needs to be lowered.
../../glsl_test optpass --quiet --input-ir 'do_lower_jumps(0, 0, 0, 1, 1)' <<EOF
((declare (in) float aa) (declare (in) float ab) (declare (in) float b)
 (function main
  (signature void (parameters)
   ((loop () () () ()
     ((if (expression bool > (var_ref aa) (constant float (0.000000)))
       ((if (expression bool > (var_ref ab) (constant float (0.000000)))
         (continue)
         ()))
       ())
      (if (expression bool > (var_ref b) (constant float (0.000000))) (break)
       ())))))))
EOF
