diff options
author | Richard Biener <rguenther@suse.de> | 2024-03-25 11:24:08 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2024-03-25 15:54:37 +0100 |
commit | 78b56a12dd028b9b4051422c6bad6260055e4465 (patch) | |
tree | cdb59d1da29191c01b5f2bb91cd045b305c537b9 /libgomp | |
parent | 44863af22d2c3168fb73d00cc58f393a35d3070d (diff) | |
download | gcc-78b56a12dd028b9b4051422c6bad6260055e4465.zip gcc-78b56a12dd028b9b4051422c6bad6260055e4465.tar.gz gcc-78b56a12dd028b9b4051422c6bad6260055e4465.tar.bz2 |
amdgcn: Add gfx1036 target
Add support for the gfx1036 RDNA2 APU integrated graphics devices. The ROCm
documentation warns that these may not be supported, but it seems to work
at least partially.
gcc/ChangeLog:
* config.gcc (amdgcn): Add gfx1036 entries.
* config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
(gcn_local_sym_hash): Likewise.
* config/gcn/gcn-opts.h (enum processor_type): Likewise.
(TARGET_GFX1036): New macro.
* config/gcn/gcn.cc (gcn_option_override): Handle gfx1036.
(gcn_omp_device_kind_arch_isa): Likewise.
(output_file_start): Likewise.
* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__.
(TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__.
* config/gcn/gcn.opt: Add gfx1036.
* config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New.
(main): Handle gfx1036.
* config/gcn/t-omp-device: Add gfx1036 isa.
* doc/install.texi (amdgcn): Add gfx1036.
* doc/invoke.texi (-march): Likewise.
libgomp/ChangeLog:
* plugin/plugin-gcn.c (EF_AMDGPU_MACH): GFX1036.
(gcn_gfx1103_s): New.
(isa_hsa_name): Handle gfx1036.
(isa_code): Likewise.
(max_isa_vgprs): Likewise.
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/plugin/plugin-gcn.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libgomp/plugin/plugin-gcn.c b/libgomp/plugin/plugin-gcn.c index 53dc1c7..1d183b6 100644 --- a/libgomp/plugin/plugin-gcn.c +++ b/libgomp/plugin/plugin-gcn.c @@ -391,6 +391,7 @@ typedef enum { EF_AMDGPU_MACH_AMDGCN_GFX908 = 0x030, EF_AMDGPU_MACH_AMDGCN_GFX90a = 0x03f, EF_AMDGPU_MACH_AMDGCN_GFX1030 = 0x036, + EF_AMDGPU_MACH_AMDGCN_GFX1036 = 0x045, EF_AMDGPU_MACH_AMDGCN_GFX1100 = 0x041, EF_AMDGPU_MACH_AMDGCN_GFX1103 = 0x044 } EF_AMDGPU_MACH; @@ -1677,6 +1678,7 @@ const static char *gcn_gfx906_s = "gfx906"; const static char *gcn_gfx908_s = "gfx908"; const static char *gcn_gfx90a_s = "gfx90a"; const static char *gcn_gfx1030_s = "gfx1030"; +const static char *gcn_gfx1036_s = "gfx1036"; const static char *gcn_gfx1100_s = "gfx1100"; const static char *gcn_gfx1103_s = "gfx1103"; const static int gcn_isa_name_len = 7; @@ -1700,6 +1702,8 @@ isa_hsa_name (int isa) { return gcn_gfx90a_s; case EF_AMDGPU_MACH_AMDGCN_GFX1030: return gcn_gfx1030_s; + case EF_AMDGPU_MACH_AMDGCN_GFX1036: + return gcn_gfx1036_s; case EF_AMDGPU_MACH_AMDGCN_GFX1100: return gcn_gfx1100_s; case EF_AMDGPU_MACH_AMDGCN_GFX1103: @@ -1746,6 +1750,9 @@ isa_code(const char *isa) { if (!strncmp (isa, gcn_gfx1030_s, gcn_isa_name_len)) return EF_AMDGPU_MACH_AMDGCN_GFX1030; + if (!strncmp (isa, gcn_gfx1036_s, gcn_isa_name_len)) + return EF_AMDGPU_MACH_AMDGCN_GFX1036; + if (!strncmp (isa, gcn_gfx1100_s, gcn_isa_name_len)) return EF_AMDGPU_MACH_AMDGCN_GFX1100; @@ -1770,6 +1777,7 @@ max_isa_vgprs (int isa) case EF_AMDGPU_MACH_AMDGCN_GFX90a: return 512; case EF_AMDGPU_MACH_AMDGCN_GFX1030: + case EF_AMDGPU_MACH_AMDGCN_GFX1036: return 512; /* 512 SIMD32 = 256 wavefrontsize64. */ case EF_AMDGPU_MACH_AMDGCN_GFX1100: case EF_AMDGPU_MACH_AMDGCN_GFX1103: |