This addresses some weird assembly sequences seen during float conversion
involving casts via double. In particular, the fcvt instructions should, if
GCC and I are not mistaken, compose together based on suffix/prefix, as shown in
the test.
The patterns are added for the F extension because they only need F-extension
instructions, but the tests only apply if you have enabled the D extension
because without it, the legaliser will turn the conversions into libcalls which
cannot be matched on in the same way. Maybe this is really a job for the
DAGCombiner?
These patterns were duplicated in this file, which seems incorrect.