Since @lritter mentioned a favourite #bithack yesterday, I'm inspired to mention mine.
I once had to calculate the mean, rounded down, of two 32-bit integers, in _original_ Thumb assembler, avoiding integer overflow. In _Arm_ asm it's easy: ADDS + RRX, shifting the 33rd bit of the sum back out of the carry flag. But trad Thumb has no RRX.
I found a Thumb version of GNU superopt and asked it how.
It said: _start by XORing the two numbers_. You know you're into fun territory when that happens!