This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, i386, testsuite] New BMI testcases
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- Cc: gcc-patches List <gcc-patches at gcc dot gnu dot org>, Uros Bizjak <ubizjak at gmail dot com>
- Date: Wed, 27 Jul 2011 07:23:33 -0700
- Subject: Re: [PATCH, i386, testsuite] New BMI testcases
- References: <CAGs3Rft=UTd+imO__HVGk9Zmh4R-zAV-SYbN1h-z90Sayz5psg@mail.gmail.com>
On Wed, Jul 27, 2011 at 7:08 AM, Kirill Yukhin <kirill.yukhin@gmail.com> wrote:
> Hi,
> I've implemented a dozen of tests which cover BMI extensions
>
> testsuite/ChangeLog entry:
> 2011-07-27 ?Yukhin Kirill ?<kirill.yukhin@intel.com>
>
> ? ? ? ?* gcc.target/i386/i386.exp (check_effective_target_bmi): New.
> ? ? ? ?* gcc.target/i386/bmi-bextr-1.c: New test.
> ? ? ? ?* gcc.target/i386/bmi-bextr-1a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-bextr-2.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-bextr-2a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsi-1.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsi-1a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsi-2.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsi-2a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsmsk-1.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsmsk-1a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsmsk-2.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsmsk-2a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsr-1.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsr-1a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsr-2.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-blsr-2a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-lzcnt-1.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-lzcnt-1a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-lzcnt-2.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-lzcnt-2a.c: Likewise.
Are you sure your patch have those lzcnt tests?
> ? ? ? ?* gcc.target/i386/bmi-tzcnt-1.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-tzcnt-1a.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-tzcnt-2.c: Likewise.
> ? ? ? ?* gcc.target/i386/bmi-tzcnt-2a.c: Likewise.
>
BMI check:
__asm__ ("xchg{l}\t{%%}ebx, %1\n\t"
+ "cpuid\n\t"
+ "xchg{l}\t{%%}ebx, %1\n\t"
+ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
+ : "0" (7), "2" (0));
is wrong. It should be
if (__get_cpuid_max (0, NULL) < 7)
return 0;
__cpuid_count (7, 0, eax, ebx, ecx, edx);
--
H.J.