https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105138
--- Comment #4 from kargl at gcc dot gnu.org ---
(In reply to Vladimir Fuka from comment #2)
> As mentioned, the correct function is called in case everything is REAL
>
Actually, the correct function isn't called. See the parse
tree that I posted for log_gamma. For your floor example,
the parse tree contains
code:
IF (> floor:z 0)
ASSIGN floor:res __convert_i4_r4[[((__floor4_r4[[(((- floor:z
1.00000000e0)) ((arg not-present)))]]))]]
ELSE
ASSIGN floor:res 0
ENDIF
Notice, the __floor4_r4 is the intrinsic routine not the user-defined floor.