Ping. -- K
On Wed, Jul 27, 2011 at 10:23 PM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote: > Okay, then here is an updated patch > > updated ChangeLog entry: > 2011-07-26 Kirill Yukhin <kirill.yuk...@intel.com> > > PR target/49547 > * config.gcc (i[34567]86-*-*): Replace abmintrin.h with > lzcntintrin.h. > (x86_64-*-*): Likewise. > * config/i386/i386.opt (mlzcnt): New. > * config/i386/abmintrin.h: File removed. > (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ... > * config/i386/lzcntintrin.h: ... here. New file. > (__lzcnt): Rename to ... > (__lzcnt32): ... this. > * config/i386/bmiintrin.h (head): Update copyright year. > (__lzcnt_u16): Removed. > (__lzcnt_u32): Likewise. > (__lzcnt_u64): Likewise. > * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__ > is defined, remove abmintrin.h. > * config/i386/cpuid.h: New define. > * config/i386/driver-i386.c (host_detect_local_cpu): Detect > LZCNT feature. > * config/i386/i386-c.c (ix86_target_macros_internal): Define > __LZCNT__ if needed. > * config/i386/i386.c (ix86_target_string): New option -mlzcnt. > (ix86_option_override_internal): Handle LZCNT option. > (ix86_valid_target_attribute_inner_p): Likewise. > (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update. > * config/i386/i386.h (TARGET_LZCNT): New. > (CLZ_DEFINED_VALUE_AT_ZERO): Update. > * config/i386/i386.md (clz<mode>2): Update insn constraint. > (clz<mode>2_lzcnt): Likewise. > * doc/invoke.texi: Mention -mlzcnt option. > * doc/extend.texi: Likewise. > > Bootstrapped successfully. > Ok? > > K > > On Wed, Jul 27, 2011 at 8:51 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >> On Wed, Jul 27, 2011 at 9:49 AM, Uros Bizjak <ubiz...@gmail.com> wrote: >>> On Wed, Jul 27, 2011 at 6:12 PM, Kirill Yukhin <kirill.yuk...@gmail.com> >>> wrote: >>>> Than as it is ABM header, it should include two headers: lzcntinrin.h >>>> and popcntintrin.h >>>> >>>> But again, it seems useless to me. If we cannot remove empty header, >>>> let it stay empty... >>>> >>>> K >>>> >>>> On Wed, Jul 27, 2011 at 7:53 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >>>>> On Wed, Jul 27, 2011 at 8:45 AM, Kirill Yukhin <kirill.yuk...@gmail.com> >>>>> wrote: >>>>>> Just have a closer look to ABM intrinsics support in GCC >>>>>> Seems, we have popcnt support in separate file: popcntintrin.h >>>>>> >>>>>> So, after I move lzcnt intrinsics to lzcntintrin.h, abmintrin will >>>>>> become useless and have to be removed at all >>>>> >>>>> We can't remove an installed header file. It should just include >>>>> other header files. >>> >>> ambintrin.h has: >>> >>> #ifndef _X86INTRIN_H_INCLUDED >>> # error "Never use <abmintrin.h> directly; include <x86intrin.h> instead." >>> #endif >>> >>> I see no problem in removing this header. It is not possible to >>> #include it directly. >>> >> >> Sounds good to me. >> >> -- >> H.J. >> >