[llvm-dev] __builtin_expect hint ignored (original) (raw)

Adam Nowacki via llvm-dev llvm-dev at lists.llvm.org
Tue Apr 18 16:20:19 PDT 2017


https://godbolt.org/g/VvrbFZ

For the code below generated assembly is the worst possible - test 1, else test 3, else test 2 with expected value of 2 last ... Whats going on?

long case_2(); long case_3(); long case_1(); long case_else(); long test(long a) { switch (__builtin_expect(a, 2)) { case 2: return case_2(); case 3: return case_3(); case 1: return case_1(); case 0: case 4: case 5: return case_else(); default: __builtin_unreachable(); } }



More information about the llvm-dev mailing list