https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118594

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The code in expr.cc does:
```

          if (to_mode == SFmode
              && !HONOR_NANS (from_mode)
              && !HONOR_NANS (to_mode)
              && optimize_insn_for_speed_p ())
            {
              /* If we don't expect sNaNs, for BFmode -> SFmode we can just
                 shift the bits up.  */
              machine_mode fromi_mode, toi_mode;
              if (int_mode_for_size (GET_MODE_BITSIZE (from_mode),
                                     0).exists (&fromi_mode)
                  && int_mode_for_size (GET_MODE_BITSIZE (to_mode),
                                        0).exists (&toi_mode))
                {
                  start_sequence ();
                  rtx fromi = force_lowpart_subreg (fromi_mode, from,
                                                    from_mode);
```

So I think force_lowpart_subreg needs changes maybe.

Reply via email to