https://gcc.gnu.org/g:e71170dc97caf1c6582e4ca1a6416c56160adea9
commit r15-9703-ge71170dc97caf1c6582e4ca1a6416c56160adea9 Author: Thomas Schwinge <tschwi...@baylibre.com> Date: Mon May 5 10:19:30 2025 +0200 'libgomp.c/interop-hsa.c': GCN offloading only Fix-up for commit 8d84ea28510054fbbb8a2b7441916bd75e29163f "OpenMP, GCN: Add interop-hsa testcase", which added 'libgomp.c/interop-hsa.c'. If nvptx offloading compilation is enabled in addition to GCN, the former ICEs: during RTL pass: final [...]/libgomp.c/interop-hsa.c: In function 'get_kernel_ptr': [...]/libgomp.c/interop-hsa.c:34:1: internal compiler error: RTL check: expected code 'subreg', have 'reg' in nvptx_print_operand, at config/nvptx/nvptx.cc:3082 0x1ccdb96 internal_error(char const*, ...) [...]/gcc/diagnostic-global-context.cc:517 0x7446c3 rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/gcc/rtl.cc:770 0x7fa533 nvptx_print_operand [...]/gcc/config/nvptx/nvptx.cc:3082 0xb25f34 output_operand(rtx_def*, int) [...]/gcc/final.cc:3641 0xb26f07 output_asm_insn(char const*, rtx_def**) [...]/gcc/final.cc:3534 0xb29d91 output_asm_insn(char const*, rtx_def**) [...]/gcc/final.cc:2639 0xb29d91 final_scan_insn_1 [...]/gcc/final.cc:2642 0xb2a59f final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) [...]/gcc/final.cc:2892 0xb2a68c final_1 [...]/gcc/final.cc:1983 0xb2b378 rest_of_handle_final [...]/gcc/final.cc:4250 0xb2b378 execute [...]/gcc/final.cc:4328 Regardless of the issue that nvptx offloading compilation probably shouldn't ICE, the 'asm' insert clearly is valid for GCN only. libgomp/ * testsuite/libgomp.c/interop-hsa.c: GCN offloading only. (cherry picked from commit 85ad0d84fcec720c1d94b9bda9a617ced70ba5d2) Diff: --- libgomp/testsuite/libgomp.c/interop-hsa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libgomp/testsuite/libgomp.c/interop-hsa.c b/libgomp/testsuite/libgomp.c/interop-hsa.c index cf8bc90bb9c0..21ac91c1b58c 100644 --- a/libgomp/testsuite/libgomp.c/interop-hsa.c +++ b/libgomp/testsuite/libgomp.c/interop-hsa.c @@ -1,5 +1,7 @@ /* { dg-additional-options "-ldl" } */ -/* { dg-require-effective-target offload_device_gcn } */ +/* { dg-require-effective-target offload_device_gcn } + The 'asm' insert is valid for GCN only: + { dg-additional-options -foffload=amdgcn-amdhsa } */ #include <stdio.h> #include <stdlib.h>