On Fri, Jan 26, 2024 at 01:00:28PM +0100, Richard Biener wrote: > The following avoids registering unsupported GCN offload devices > when iterating over available ones. With a Zen4 desktop CPU > you will have an IGPU (unspported) which will otherwise be made > available. This causes testcases like > libgomp.c-c++-common/non-rect-loop-1.c which iterate over all > decives to FAIL. > > I'll run a bootstrap with both pending changes and will do > another round of full libgomp testing with this. > > OK if that succeeds? > > Thanks, > Richard. > > libgomp/ > * plugin/plugin-gcn.c (suitable_hsa_agent_p): Filter out > agents with unsupported ISA. > --- > libgomp/plugin/plugin-gcn.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/libgomp/plugin/plugin-gcn.c b/libgomp/plugin/plugin-gcn.c > index 588358bbbf9..88ed77ff049 100644 > --- a/libgomp/plugin/plugin-gcn.c > +++ b/libgomp/plugin/plugin-gcn.c > @@ -1427,6 +1427,8 @@ init_hsa_runtime_functions (void) > #undef DLSYM_FN > } > > +static gcn_isa isa_code(const char *isa);
Space before ( please. > + > /* Return true if the agent is a GPU and can accept of concurrent submissions > from different threads. */ > > @@ -1443,6 +1445,13 @@ suitable_hsa_agent_p (hsa_agent_t agent) > switch (device_type) > { > case HSA_DEVICE_TYPE_GPU: > + { > + char name[64]; > + if ((hsa_fns.hsa_agent_get_info_fn (agent, HSA_AGENT_INFO_NAME, name) > + != HSA_STATUS_SUCCESS) > + || isa_code (name) == EF_AMDGPU_MACH_UNSUPPORTED) > + return false; > + } > break; > case HSA_DEVICE_TYPE_CPU: > if (!support_cpu_devices) Otherwise it looks reasoanble to me, but let's see what Andrew thinks. Jakub