https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127461
--- Comment #4 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
>
> It doesn't fix the ICE, hmm, should be related to others.
4265There are three insn attributes that may be used to selectively disable
4266instruction alternatives:
4267
4268@table @code
4269@item enabled
4270Says whether an alternative is available on the current subtarget.
4271
4272@item preferred_for_size
4273Says whether an enabled alternative should be used in code that is
4274optimized for size.
4275
4276@item preferred_for_speed
4277Says whether an enabled alternative should be used in code that is
4278optimized for speed.
4279@end table
4280
4281All these attributes should use @code{(const_int 1)} to allow an
alternative
4282or @code{(const_int 0)} to disallow it. The attributes must be a static
4283property of the subtarget; they cannot for example depend on the
4284current operands, on the current optimization level, on the location
4285of the insn within the body of a loop, on whether register allocation
4286has finished, or on the current compiler pass.
it's related to optimize_function_for_size_p (cfun) in (attr "enabled") which
should use a static property instead of relying on optimization level.