https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106460
--- Comment #1 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> --- The ice occur when output rtx "(high:DI (symbol_ref:DI ("var_48")..))) to constant pool. This rtx is generated at function "recog_for_combine"(in combine.cc) after invoking "force_const_mem". This kind of rtx represents the high part of a symbol_ref/address when passed as an argument to "cannot_force_const_mem". Actually, this kind of rtx can not be put into a constant pool. So "cannot_force_const_mem" should return 'true' for them.