Yes, see the linked bug report: If the shift amount is 0 `shrdl %cl, %esi, %ebx` acts as `or` (since it's doing shift mod 32), but LLVM seems to assume that it's shifting it out to the left. http://reviews.llvm.org/D4978 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/