Hi Richard, > ...I still think we should avoid testing can_create_pseudo_p. > Does it work with the last part replaced by: > > if (!DECIMAL_FLOAT_MODE_P (mode)) > { > if (aarch64_can_const_movi_rtx_p (src, mode) > || aarch64_float_const_representable_p (src) > || aarch64_float_const_zero_rtx_p (src)) > return true; > } > > return false; > > ? If so, the patch is OK with that change from my POV, but please wait > till Thursday morning for others' opinions.
With that every FP literal load causes an internal error, so they must be allowed. I could change the can_create_pseudo_p to true. This generates identical code but it allows literal loads to be created after regalloc (which should ultimately crash as there is no valid alternative). Cheers, Wilco