This adds the mov_f_ru6 and mov_cc_f_ru6 instruction formats. Adding the f flag to these instructions revealed a bug in the u6 decoding (details to be explained in context below). This u6 decoding bug is fixed here.
Many new decoder test cases have also been added, exercising the changes mentioned above in addition to further exercising predicated binary instructions (the support for these was added here https://reviews.llvm.org/rG1cda1e618648d463f89eb5cea8c9849bc0074b24, but that patch only tested predicated rsub).
This change was really just a rename from F32_SOP_CC_RU6 to F32_DOP_CC_RU6. The instruction is really a "dual-operand" instruction, and was just named incorrectly earlier.
The full diff shows up rather than the rename because the definition was moved to be adjacent to other dual operand instructions.