https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98321
--- Comment #5 from Tom de Vries <vries at gcc dot gnu.org> --- (In reply to Thomas Schwinge from comment #4) > I had been looking into how/when PTX 'atom' is used for reductions, and > first had a look what the back end currently might emit at all, found SDIM > 'atomic_fetch_add<mode>', and SF 'atomic_fetch_addsf'. Ack. > I tried to get these > used via '(void) __atomic_fetch_add (&a, b, __ATOMIC_RELAXED);', which works > fine for integer types, but 'error: operand type ‘float *’ is incompatible > with argument 1 of ‘__atomic_fetch_add’' (didn't research the rationale > behind that), so resorted to 'acc atomic'. > Further analysis to be done. > (Can floating-point type atomic generally not be supported, given that > '__atomic_fetch_add' rejects it? Is OMP atomic handling doing something > wrong for these even for nvptx target (real, not via offloading)? Is > something wrong in the nvptx back end?) > I don't know the rationale either, but at least it looks like documented behaviour, both for the builtin and the pattern. I don't see the backend doing anything wrong. > This isn't important right now; I just filed the issue as I'd found it. Ack, understood.