https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87163
Bill Seurer <seurer at linux dot vnet.ibm.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |meissner at gcc dot gnu.org, | |seurer at linux dot vnet.ibm.com --- Comment #8 from Bill Seurer <seurer at linux dot vnet.ibm.com> --- I have duplicated the bug on a cross compile but not natively. It occurs in the one function: int do_signbit_if (__ibm128 a) { return __builtin_signbit (a); } Natively this looks like this when dumped: ;; ;; Full RTL generated for this function: ;; (note 1 0 4 NOTE_INSN_DELETED) (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn 2 4 3 2 (set (mem/c:TF (reg/f:DI 112 virtual-stack-vars) [1 a+0 S16 A128]) (reg:TF 33 1 [ a ])) "./signbit-1.c":7:32 -1 (nil)) ... Cross: ;; ;; Full RTL generated for this function: ;; (note 1 0 4 NOTE_INSN_DELETED) (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn 2 4 3 2 (set (mem/c:IF (reg/f:DI 112 virtual-stack-vars) [1 a+0 S16 A128]) (reg:IF 33 1 [ a ])) "./signbit-1.c":7:32 -1 (nil)) ... Note the reg/mem differences. There are similar ones further on.