GCN: Add pre-initial support for gfx1100
ROCm since 5.7.1 supports gfx1100 (RDNA3) cards. This commit adds support for it, mostly by assuming gfx1100 behaves identical to gfx1030. Like gfx1030, gfx1100 support is neither documented nor the build of the multilib enabled by default. But contrary to gfx1030, gfx1100 has a known issue causing some libraries not to build, including newlib: The sdwa variant of v_mov_b32_sdwa is not supported by the hardware but GCC current does generates this instruction. This will be addressed in a later commit. gcc/ChangeLog: * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100. * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100: (ASM_SPEC): Handle gfx1100. * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100. (enum gcn_isa): Add ISA_RDNA3. (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define. * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS. * config/gcn/gcn.cc (gcn_option_override, gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100. (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change TARGET_RDNA2 to TARGET_RDNA2_PLUS. (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch' with gfx1100. * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise. (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and __gfx1100__. * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS. * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100. * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define. (isa_has_combined_avgprs, main): Handle gfx1100. * config/gcn/t-omp-device (isa): Add gfx1100. libgomp/ChangeLog: * plugin/plugin-gcn.c (gcn_gfx1100_s): New const string. (gcn_isa_name_len): Fix length. (isa_hsa_name, isa_code, max_isa_vgprs): Handle gfx1100.
Showing
- gcc/config.gcc 1 addition, 1 deletiongcc/config.gcc
- gcc/config/gcn/gcn-hsa.h 2 additions, 2 deletionsgcc/config/gcn/gcn-hsa.h
- gcc/config/gcn/gcn-opts.h 6 additions, 1 deletiongcc/config/gcn/gcn-opts.h
- gcc/config/gcn/gcn-valu.md 5 additions, 5 deletionsgcc/config/gcn/gcn-valu.md
- gcc/config/gcn/gcn.cc 21 additions, 8 deletionsgcc/config/gcn/gcn.cc
- gcc/config/gcn/gcn.h 7 additions, 3 deletionsgcc/config/gcn/gcn.h
- gcc/config/gcn/gcn.md 16 additions, 16 deletionsgcc/config/gcn/gcn.md
- gcc/config/gcn/gcn.opt 3 additions, 0 deletionsgcc/config/gcn/gcn.opt
- gcc/config/gcn/mkoffload.cc 4 additions, 0 deletionsgcc/config/gcn/mkoffload.cc
- gcc/config/gcn/t-omp-device 1 addition, 1 deletiongcc/config/gcn/t-omp-device
- libgomp/plugin/plugin-gcn.c 8 additions, 1 deletionlibgomp/plugin/plugin-gcn.c
Loading
Please register or sign in to comment