On Tue, Apr 9, 2024 at 9:58 AM H.J. Lu <hjl.to...@gmail.com> wrote: > > Define __APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32. > When __APX_INLINE_ASM_USE_GPR32__ is defined, inline asm statements > should contain only instructions compatible with r16-r31. Ok. > > gcc/ > > PR target/114587 > * config/i386/i386-c.cc (ix86_target_macros_internal): Define > __APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32. > > gcc/testsuite/ > > PR target/114587 > * gcc.target/i386/apx-3.c: Likewise. > --- > gcc/config/i386/i386-c.cc | 2 ++ > gcc/testsuite/gcc.target/i386/apx-3.c | 6 ++++++ > 2 files changed, 8 insertions(+) > create mode 100644 gcc/testsuite/gcc.target/i386/apx-3.c > > diff --git a/gcc/config/i386/i386-c.cc b/gcc/config/i386/i386-c.cc > index 226d277676c..07f4936ba91 100644 > --- a/gcc/config/i386/i386-c.cc > +++ b/gcc/config/i386/i386-c.cc > @@ -751,6 +751,8 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag, > def_or_undef (parse_in, "__AVX10_1_512__"); > if (isa_flag2 & OPTION_MASK_ISA2_APX_F) > def_or_undef (parse_in, "__APX_F__"); > + if (ix86_apx_inline_asm_use_gpr32) > + def_or_undef (parse_in, "__APX_INLINE_ASM_USE_GPR32__"); > if (TARGET_IAMCU) > { > def_or_undef (parse_in, "__iamcu"); > diff --git a/gcc/testsuite/gcc.target/i386/apx-3.c > b/gcc/testsuite/gcc.target/i386/apx-3.c > new file mode 100644 > index 00000000000..1ba4ac036fc > --- /dev/null > +++ b/gcc/testsuite/gcc.target/i386/apx-3.c > @@ -0,0 +1,6 @@ > +/* { dg-do compile { target { ! ia32 } } } */ > +/* { dg-options "-mapx-inline-asm-use-gpr32" } */ > + > +#ifndef __APX_INLINE_ASM_USE_GPR32__ > +# error __APX_INLINE_ASM_USE_GPR32__ not defined > +#endif > -- > 2.44.0 >
-- BR, Hongtao