This patch addresses some weird assembly sequences we were seeing during
comparing floats. In particular, comparing a float to itself tells you whether
it is NaN or not, which we were doing correctly, but with an extra unneeded
and instruction.
This patch specialises the existing patterns to remove the and instruction
when both their operands are the same.
I think this pattern and the matching one in RISCVInstrInfoF.td is left untested?