https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49244
--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Tue May 3 11:37:25 2016 New Revision: 235813 URL: https://gcc.gnu.org/viewcvs?rev=235813&root=gcc&view=rev Log: PR target/49244 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h. (optimize_atomic_bit_test_and): New function. (pass_fold_builtins::execute): Use it. * optabs.def (atomic_bit_test_and_set_optab, atomic_bit_test_and_complement_optab, atomic_bit_test_and_reset_optab): New optabs. * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns. * builtins.h (expand_ifn_atomic_bit_test_and): New prototype. * builtins.c (expand_ifn_atomic_bit_test_and): New function. * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET, expand_ATOMIC_BIT_TEST_AND_COMPLEMENT, expand_ATOMIC_BIT_TEST_AND_RESET): New functions. * doc/md.texi (atomic_bit_test_and_set@var{mode}, atomic_bit_test_and_complement@var{mode}, atomic_bit_test_and_reset@var{mode}): Document. * config/i386/sync.md (atomic_bit_test_and_set<mode>, atomic_bit_test_and_complement<mode>, atomic_bit_test_and_reset<mode>): New expanders. (atomic_bit_test_and_set<mode>_1, atomic_bit_test_and_complement<mode>_1, atomic_bit_test_and_reset<mode>_1): New insns. * gcc.target/i386/pr49244-1.c: New test. * gcc.target/i386/pr49244-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr49244-1.c trunk/gcc/testsuite/gcc.target/i386/pr49244-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/builtins.h trunk/gcc/config/i386/sync.md trunk/gcc/doc/md.texi trunk/gcc/internal-fn.c trunk/gcc/internal-fn.def trunk/gcc/optabs.def trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-ccp.c