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.