F95 intrinsics status

Hello everyone,

I was looking at the intrinsic status spreadsheet that was shared in
the call yesterday [1] and I'm a bit confused about some of the
intrinsics. For instance, there's not much information about ADJUSTL /
ADJUSTR, but as far as I can tell there already is some support for
them in the runtime and also in folding (and I think I also recently
saw support for DOT_PRODUCT landing in the runtime). Does this just
mean that the spreadsheet isn't up to date, or is there some other
requirement that isn't met (e.g., not enough tests)?

In any case, I'd like to help with this but I'm not entirely sure who
I should be coordinating with. Should we maybe have a slack channel
for this? Any pointers appreciated :slight_smile:

Thanks,
Diana

[1] https://docs.google.com/spreadsheets/d/1ctIPb4ADTuLDgwKzZNCThzNnbOcwWG5tA6UTuA9tO_c/edit#gid=1823771597

Hi Diana,

When the cells are empty, it means I did not check yet what was the runtime status for the intrinsic. If the related lowering cell is OK, then it means no runtime is needed to implement the intrinsic. Regarding ADJUSTL/ADJUSTR, lowering was not added yet, but you are right, the runtime is here. I have updated the spreadsheet to reflect this as well as other intrinsic for which there were recent changes (like DOT_PRODUCT). For F95, I think the missing runtime part is mainly the time related functions (CPU_TIME/SYSTEM_CLOCK).
OK in "Library status" does not mean it is thoroughly tested, so if you want to add a "Library unit tests" column and start gathering a status for this and adding more tests when needed, go for it, I think it will always be valuable.

To coordinate in live, I think we can start by using flang-compiler general slack channel [2], if the traffic regarding this topic turns out too big, we can always create an f18-intrinsics channel later.

Jean

[2] https://flang-compiler.slack.com/archives/C5C58TT32

Ok, sounds good, thanks for clarifying!

Hi Diana,

When the cells are empty, it means I did not check yet what was the runtime status for the intrinsic. If the related lowering cell is OK, then it means no runtime is needed to implement the intrinsic. Regarding ADJUSTL/ADJUSTR, lowering was not added yet, but you are right, the runtime is here. I have updated the spreadsheet to reflect this as well as other intrinsic for which there were recent changes (like DOT_PRODUCT). For F95, I think the missing runtime part is mainly the time related functions (CPU_TIME/SYSTEM_CLOCK).
OK in "Library status" does not mean it is thoroughly tested, so if you want to add a "Library unit tests" column and start gathering a status for this and adding more tests when needed, go for it, I think it will always be valuable.

I can do that, but I'll need permissions to edit the spreadsheet :slight_smile:

Hi again,

I did some grep-ing through the existing library tests and created a
couple of patches for the intrinsics from the spreadsheet that didn't
seem to have any testing at all [1][2]. With these in place, we should
have at least superficial coverage of the library via unit tests. So
unless people think we need to better scrutinize the existing tests,
we shouldn't need another column in the spreadsheet.

Cheers,
Diana

NB: There are also some functions that have variants, e.g.
SumInteger[1|2|4|8], SumReal[4|8|10|16] etc, where we only test a
subset of them. They seem to be using a lot of common infrastructure
though, so I'm not sure we'd be getting much extra value with more
tests.

[1] https://reviews.llvm.org/D103402
[2] https://reviews.llvm.org/D103392