Created by: joshua-warburton
This patch adds the appropriate macros, tests and codec entries to encode the following variants:
* FMULX <Hd>.<Ts>, <Hn>.<Ts>, <Hm>.<Ts>
* FMULX <Dd>.<Ts>, <Dn>.<Ts>, <Dm>.<Ts>
* FMOV <Wd>, <Hn>
* FMOV <Xd>, <Hn>
* FMULX <Hd>.<Ts>, <Hn>.<Ts>, <Hm>.H[<index>]
* FMULX <Dd>.<Ts>, <Dn>.<Ts>, <Dm>.<Tb>[<index>]
* FMULX <Hd>, <Hn>, <Hm>.H[<index>]
* FMULX <V><d>, <V><n>, <Sm>.<Ts>[<index>]
* FMULX <Hd>, <Hn>, <Hm>
* FMULX <V><d>, <V><n>, <V><m>
* FMLSL/2 <Sd>.<T>, <Hn>.<Tb>, <Hm>.H[<imm>]
It also tidies up some of the ir tests by adding a macro to implement the testing loops and making sure that all failures are printed
Issues: #2626