This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Attached patch improves the code generated for the LEADZ and TRAILZ intrinsics. For integer(kind=16), which is larger than C long long type, no builtin is present in the middle-end. Currently, we called library clz128/ctz128 functions in libgfortran. The patch allows to directly generate code inline, which does basic arithmetic and call the middle-end long long builtins. This leads to better and faster code. The question I have is: what should be done with the libgfortran functions? I think, for backward compatibility, we need to keep them, but I may be wrong. Bootstrapped and regtested on x86_64-linux. OK to commit? (potentially with libgfortran functions removal, if deemed suitable) FX
Attachment:
clz_ctz.ChangeLog
Description: Binary data
Attachment:
clz_ctz.diff
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |