> > Please also add -muintr to g++.dg/other/i386-{2,3}.C and > gcc.target/i386-sse-{12,13,14,22,23}.c. This will test new intrinsics > header. >
Thanks for your review. We found that without adding -muintr, the intrinsics header could also be tested. Make-check for these file all get passed. And there is no intrinsic/builtin with const int parameter. So we remove -muintr from these files. Uros Bizjak <ubiz...@gmail.com> 于2020年10月14日周三 下午2:18写道: > On Tue, Oct 13, 2020 at 10:30 AM Hongyu Wang <wwwhhhyyy...@gmail.com> > wrote: > > > > Hi: > > > > This patch is about to support User Interrupt (UINTR) instructions. > > > > This feature defines user interrupts as new events in the architecture. > They are delivered to software operating in 64-bit mode with CPL = 3 > without any change to segmentation state. > > > > For more details, please refer to > https://software.intel.com/content/dam/develop/external/us/en/documents/architecture-instruction-set-extensions-programming-reference.pdf > > > > Bootstrap ok, regression test on i386/x86 backend is ok. > > > > OK for master? > > > > gcc/ > > * common/config/i386/cpuinfo.h (get_available_features): > > Detect UINTR. > > * common/config/i386/i386-common.c (OPTION_MASK_ISA2_UINTR_SET > > OPTION_MASK_ISA2_UINTR_UNSET): New. > > (ix86_handle_option): Handle -muintr. > > * common/config/i386/i386-cpuinfo.h (enum processor_features): > > Add FEATURE_UINTR. > > * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY > > for uintr. > > * config.gcc: Add uintrintrin.h to extra_headers. > > * config/i386/uintrintrin.h: New. > > * config/i386/cpuid.h (bit_UINTR): New. > > * config/i386/driver-i386.c (host_detect_local_cpu): Detect UINTR. > > * config/i386/i386-builtin-types.def: Add new types. > > * config/i386/i386-builtin.def: Add new builtins. > > * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): Add > > __builtin_ia32_testui. > > * config/i386/i386-builtins.h (ix86_builtins): Add > > IX86_BUILTIN_TESTUI. > > * config/i386/i386-c.c (ix86_target_macros_internal): Define > > __UINTR__. > > * config/i386/i386-expand.c (ix86_expand_special_args_builtin): > > Handle UINT8_FTYPE_VOID. > > (ix86_expand_builtin): Handle IX86_BUILTIN_TESTUI. > > * config/i386/i386-options.c (isa2_opts): Add -muintr. > > (ix86_valid_target_attribute_inner_p): Handle UINTR. > > (ix86_option_override_internal): Add TARGET_64BIT check for UINTR. > > * config/i386/i386.h (TARGET_UINTR, TARGET_UINTR_P, PTA_UINTR): New. > > (PTA_SAPPHIRRAPIDS): Add PTA_UINTR. > > * config/i386/i386.opt: Add -muintr. > > * config/i386/i386.md > > (define_int_iterator UINTR_UNSPECV): New. > > (define_int_attr uintr_unspecv): New. > > (uintr_<uintr_unspecv>, uintr_senduipi, testui): > > New define_insn patterns. > > * config/i386/x86gprintrin.h: Include uintrintrin.h > > * doc/invoke.texi: Document -muintr. > > * doc/extend.texi: Document uintr. > > > > gcc/testsuite/ > > > > * gcc.target/i386/funcspec-56.inc: Add new target attribute. > > * gcc.target/i386/uintr-1.c: New test. > > * gcc.target/i386/uintr-2.c: Ditto. > > * gcc.target/i386/uintr-3.c: Ditto. > > * gcc.target/i386/uintr-4.c: Ditto. > > * gcc.target/i386/uintr-5.c: Ditto. > > Please also add -muintr to g++.dg/other/i386-{2,3}.C and > gcc.target/i386-sse-{12,13,14,22,23}.c. This will test new intrinsics > header. > > OK with the above change. > > Thanks, > Uros. >