The code that originally made me discover this is:
authorDaniel Jasper <djasper@google.com>
Tue, 14 Apr 2015 15:20:37 +0000 (15:20 +0000)
committerDaniel Jasper <djasper@google.com>
Tue, 14 Apr 2015 15:20:37 +0000 (15:20 +0000)
commit7025d248ebbb1d93bce10a789bcdef99f8064d94
treee3c879f0234eff916dd95b647238154d477e6de6
parentd87c77c0e8fdc86283ea3ccc00dad1e5e911093f
The code that originally made me discover this is:

  if ((a & 0x1) == 0x1) {
    ..
  }

In this case we don't actually have any branch probability information and
should not assume to have any. LLVM transforms this into:

  %and = and i32 %a, 1
  %tobool = icmp eq i32 %and, 0

So, in this case, the result of a bitwise and is compared against 0,
but nevertheless, we should not assume to have probability
information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234898 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/BranchProbabilityInfo.cpp
test/Analysis/BranchProbabilityInfo/basic.ll
test/CodeGen/AArch64/arm64-call-tailcalls.ll
test/CodeGen/Mips/octeon.ll