https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79487
--- Comment #13 from Dominik Vogt <vogt at linux dot vnet.ibm.com> ---
From the "optimize" dump:
With float:
if (tem.1_3 != -9.223372036854775808e+18)
With _Decimal32:
if (tem.1_3 != -9223372036854775808)
This precision of the constant and the representation as floating point versus
integer value continues to the pass before Cse1 (Dfinit):
With float:
(insn 5 2 11 2 (set (mem/v/c:SF (plus:DI (reg/f:DI 34 %fp)
(const_int -4 [0xfffffffffffffffc])) [1 tem+0 S4 A32])
(const_double:SF -9.223372036854775808e+18 [-0x0.8p+64]))
With _Decimal32:
(insn 5 2 15 2 (set (mem/v/c:SD (plus:DI (reg/f:DI 34 %fp)
(const_int -4 [0xfffffffffffffffc])) [1 tem+0 S4 A32])
(const_double:SD -9223372036854775808 [N/A]))