Hi Sandra,

Sandra Loosemore wrote:
On 8/26/25 05:26, Jakub Jelinek wrote:
I wouldn't emit sorry for targets where we already implement it "correctly",
i.e. at least all targets which have NULL
targetm.simd_clone.compute_vecsize_and_simdlen
There the argument transformation is identity.

That would be the targetm.xxx for the offload target, right?

I am sure that Jakub meant 'target' in the GCC sense – not in the
OpenMP sense, i.e. the system one is currently compiling for –
which means it would be NULL unless compiling for x86-64/i386,
Aarch64 or gcn.

There is also no means to obtain
  targetm.simd_clone.compute_vecsize_and_simdlen
on the non-offload compiler for the offload compiler (but see below).

For offloading, the following applies, quoting Jakub from else thread:

All even more complicated by offloading but guess we already have big
problems with mixing declare simd and calls from target regions.

* * *

We currently only have some light offload-dependency:

First, the available kind/arch/isa checks – and the slightly bogus
target dependency in the two functions:
* omp_max_simt_vf - which returns 0, unless nvptx offloading is enabled
  (if so, then 32)
* omp_max_vf – which the host's value (host in the OpenMP sense), but
  with GCN offload, the max between the host value and GCN's 32.
  (This function uses some target hooks, but not the one Jakub was
   talking about.)

Tobias

Reply via email to