This commit ensures strict compliance with OpenCL 2.0 floating-point
conversion specifications:
* **RISCVISelLowering.cpp**:
- Map FRINT to RNE (round-to-nearest-even) instead of DYN (dynamic)
- Add proper FRM save/restore for vector floating-point operations
* **VentusInstrInfoV.td**:
- Enable VFCVT_RTZ_* instructions for truncation-based conversions
- Use RTZ (round-to-zero) mode for fp-to-int conversions to match
OpenCL spec
- Replace dynamic rounding with explicit RTZ for integer conversions
* **gen_convert.py**:
- Improve saturation handling in type conversions
- Add proper edge case handling for integer source saturation
- Distinguish between integer and float source conversion logic
* **Test Updates**:
- Update float.ll to expect RTZ instructions for fp-to-int conversions
- Add fround.ll test cases for ceil/floor/rint operations
These changes ensure that Ventus GPGPU backend produces OpenCL 2.0 compliant
floating-point conversion behavior, particularly for rounding modes and
saturation handling.