[Bug rtl-optimization/77919] [5/6/7 Regression] ICE converting DC to V2DF mode
ebotcazou at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Oct 27 13:46:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77919
--- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> I guess the first question is if it is valid for expand_expr that requests
> some mode to return a rtx with some completely different mode. If not, then
> the bug is somewhere in normal_inner_ref: code:
> if (GET_CODE (op0) == CONCAT && !must_force_mem)
> {
> if (bitpos == 0
> && bitsize == GET_MODE_BITSIZE (GET_MODE (op0)))
> {
> if (reversep)
> op0 = flip_storage_order (GET_MODE (op0), op0);
> return op0;
> }
> If bitpos/bitsize indicate the real or imaginary part of the CONCAT, then we
> don't return and let the later code handle the mode changes, but for this
> early out we don't really consider what the mode is.
I agree that the early return is awkward here. What happens if you just fall
through in this case?
More information about the Gcc-bugs
mailing list