Upstream the code for handling while loops from the fir-dev branch at
https://github.com/flang-compiler/f18-llvm-project/tree/fir-dev/
Also add a test.
Real-valued control variables are handled the same as integer ones, the
only difference is that they need to use floating point instructions
instead of the integer equivalents.
Co-authored-by: V Donaldson <vdonaldson@nvidia.com>