[Bug target/58928] Different results from gcc when -mlzcnt is used
gnome3fans at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Dec 10 07:06:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58928
chenjinzhi <gnome3fans at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |gnome3fans at gmail dot com
--- Comment #1 from chenjinzhi <gnome3fans at gmail dot com> ---
(In reply to Michael Barker from comment #0)
> Created attachment 31113 [details]
> Preprossed test.c code
>
> I have the following code:
>
> #include <stdint.h>
> #include <stdio.h>
> #include <x86intrin.h>
>
> long long lzcnt(long long l)
> {
> return __lzcnt64(l);
> }
>
> int main(int argc, char** argv)
> {
> printf("%lld\n", lzcnt(atoll(argv[1])));
> return 0;
> }
>
> If I compile and run with and without the -mlzcnt flag I get different
> results:
>
> $ gcc src/test.c -D__LZCNT__ -mlzcnt && ./a.out 2047
> 10
>
> $ gcc src/test.c -D__LZCNT__ && ./a.out 2047
> 53
>
> $ gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
> Target: x86_64-redhat-linux
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
> --enable-bootstrap --enable-shared --enable-threads=posix
> --enable-checking=release --with-system-zlib --enable-__cxa_atexit
> --disable-libunwind-exceptions --enable-gnu-unique-object
> --enable-linker-build-id --with-linker-hash-style=gnu
> --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto
> --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi
> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
> --enable-libgcj-multifile --enable-java-maintainer-mode
> --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib
> --with-isl=/builddir/build/BUILD/gcc-4.8.2-20131017/obj-x86_64-redhat-linux/
> isl-install
> --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20131017/obj-x86_64-redhat-
> linux/cloog-install --with-tune=generic --with-arch_32=i686
> --build=x86_64-redhat-linux
> Thread model: posix
> gcc version 4.8.2 20131017 (Red Hat 4.8.2-1) (GCC)
>
> File test.i attached. It was the same for both compilations, so only one
> file attached.
I just test the code in my machine but the result is different from yours.
I compile and run with and without the -mlzcnt flag and get the same result:
53.
Here is my gcc -v output:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id --with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin
--enable-initfini-array --enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib
--with-isl=/builddir/build/BUILD/gcc-4.8.2-20131017/obj-x86_64-redhat-linux/isl-install
--with-cloog=/builddir/build/BUILD/gcc-4.8.2-20131017/obj-x86_64-redhat-linux/cloog-install
--with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.2 20131017 (Red Hat 4.8.2-1) (GCC)
Hope helps
More information about the Gcc-bugs
mailing list