https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118892
--- Comment #9 from Tamar Christina <tnfchris at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #8) > (In reply to Tamar Christina from comment #7) > > > > But operand1 is marked as `register_operand` which means whatever did the > > expansion didn't honor the predicate. i.e. the input wasn't legitimized.. > > Actually it did. It was (subreg:DF (reg:TI )). And subreg is a valid for the > register_operand. Yeah, I guess it's having an issue with creating the paradoxical subreg from another subreg. I swear that was something that was fixed. But in any case, the simplest fix is to force it into a reg again indeed. I'm slightly worried that this then relies on the intermediate copy being removed but such is life.