On Linux/x86, revision 166562 gave: /export/gnu/import/rrs/166562/bld/gcc/testsuite/g++/../../include/bmiintrin.h: In function 'short unsigned int __lzcnt_u16(short unsigned int)':^M /export/gnu/import/rrs/166562/bld/gcc/testsuite/g++/../../include/bmiintrin.h:38:39: error: '__builtin_ia32_lzcnt_u16' was not declared in this scope^M /export/gnu/import/rrs/166562/bld/gcc/testsuite/g++/../../include/bmiintrin.h: In function 'unsigned int __lzcnt_u32(unsigned int)':^M /export/gnu/import/rrs/166562/bld/gcc/testsuite/g++/../../include/bmiintrin.h:85:39: error: '__builtin_ia32_lzcnt_u32' was not declared in this scope^M FAIL: g++.dg/other/i386-2.C (test for excess errors) /export/gnu/import/rrs/166562/bld/gcc/testsuite/g++/../../include/bmiintrin.h: In function 'short unsigned int __lzcnt_u16(short unsigned int)':^M /export/gnu/import/rrs/166562/bld/gcc/testsuite/g++/../../include/bmiintrin.h:38:39: error: '__builtin_ia32_lzcnt_u16' was not declared in this scope^M /export/gnu/import/rrs/166562/bld/gcc/testsuite/g++/../../include/bmiintrin.h: In function 'unsigned int __lzcnt_u32(unsigned int)':^M /export/gnu/import/rrs/166562/bld/gcc/testsuite/g++/../../include/bmiintrin.h:85:39: error: '__builtin_ia32_lzcnt_u32' was not declared in this scope^M FAIL: g++.dg/other/i386-3.C (test for excess errors)
It is caused by revision 166561: http://gcc.gnu.org/ml/gcc-cvs/2010-11/msg00450.html
Fix is posted at http://gcc.gnu.org/ml/gcc-patches/2010-11/msg01597.html
(In reply to comment #2) > Fix is posted at http://gcc.gnu.org/ml/gcc-patches/2010-11/msg01597.html It has been approved: http://gcc.gnu.org/ml/gcc-patches/2010-11/msg01610.html
Author: spop Date: Thu Nov 18 00:10:35 2010 New Revision: 166889 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166889 Log: Fix PR target/46422. 2010-11-17 Quentin Neill <quentin.neill.gnu@gmail.com> PR target/46422 * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64): Call the clz builtin. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/bmiintrin.h
Fixed.