{"push_id":757694270,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"3c9002b5cf9c4cc580e03fb609301bc37ef0719b","before":"a73e1315e99357e20fdd7aafb37690c49afa50b7","commits":[{"sha":"3c9002b5cf9c4cc580e03fb609301bc37ef0719b","author":{"email":"1cd424918902c1dbc16c61ea09f30b31f6c2f0e9@freebsd.org","name":"Davide Italiano"},"message":"[SimplifyLibCalls] Correctly set the is_zero_undef flag for llvm.cttz\n\nIf <src> is non-zero we can safely set the flag to true, and this\nresults in less code generated for, e.g. ffs(x) + 1 on FreeBSD.\nThanks to majnemer for suggesting the fix and reviewing.\n\nCode generated before the patch was applied:\n\n\n 0:   0f bc c7                bsf    %edi,%eax\n 3:   b9 20 00 00 00          mov    $0x20,%ecx\n 8:   0f 45 c8                cmovne %eax,%ecx\n b:   83 c1 02                add    $0x2,%ecx\n e:   b8 01 00 00 00          mov    $0x1,%eax\n13:   85 ff                   test   %edi,%edi\n15:   0f 45 c1                cmovne %ecx,%eax\n18:   c3                      retq\n\nCode generated after the patch was applied:\n\n 0:   0f bc cf                bsf    %edi,%ecx\n 3:   83 c1 02                add    $0x2,%ecx\n 6:   85 ff                   test   %edi,%edi\n 8:   b8 01 00 00 00          mov    $0x1,%eax\n d:   0f 45 c1                cmovne %ecx,%eax\n10:   c3                      retq\n\nIt seems we can still use cmove and save another 'test' instruction, but\nthat can be tackled separately.\n\nDifferential Revision:  http://reviews.llvm.org/D11989","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project/commits/3c9002b5cf9c4cc580e03fb609301bc37ef0719b"}]}