craig.topper added a comment.
So AMD's description is similar to the incorrect Intel description. Do you have an AMD machine that you can verify this with?
I tested with
printf("%x", _bzhi_u32(0xffffffff, 32));
On Haswell that returned 0xffffffff.
https://reviews.llvm.org/D32616