| # Generates tests to see if setting bit 22 (sz) and 21 (L) together correctly |
| # marks the instruction as undefined. This pattern can't be created by the |
| # assembler so instead manually encode it. |
| .macro gen_insns opc |
| .inst \opc |
| .inst (\opc | 0x600000) |
| .endm |
| |
| # fmul s0, s0, v16.s[0] |
| gen_insns 0x5f909000 |
| |
| # fmla s0, s0, v16.s[0] |
| gen_insns 0x5f901000 |
| |
| # fmls s0, s0, v16.s[0] |
| gen_insns 0x5f905000 |
| |
| # fmulx s0, s0, v16.s[0] |
| gen_insns 0x7f909000 |
| |
| # fmul d0, d0, v16.d[0] |
| gen_insns 0x5fd09000 |
| |
| # fmla d0, d0, v16.d[0] |
| gen_insns 0x5fd01000 |
| |
| # fmls d0, d0, v16.d[0] |
| gen_insns 0x5fd05000 |
| |
| # fmulx d0, d0, v16.d[0] |
| gen_insns 0x7fd09000 |
| |
| # fmul v0.4s, v0.4s, v16.s[0] |
| gen_insns 0x4f909000 |
| |
| # fmla v0.4s, v0.4s, v16.s[0] |
| gen_insns 0x4f901000 |
| |
| # fmls v0.4s, v0.4s, v16.s[0] |
| gen_insns 0x4f905000 |
| |
| # fmulx v0.4s, v0.4s, v16.s[0] |
| gen_insns 0x6f909000 |
| |
| # fmul v0.2d, v0.2d, v16.d[0] |
| gen_insns 0x4fd09000 |
| |
| # fmla v0.2d, v0.2d, v16.d[0] |
| gen_insns 0x4fd01000 |
| |
| # fmls v0.2d, v0.2d, v16.d[0] |
| gen_insns 0x4fd05000 |
| |
| # fmulx v0.2d, v0.2d, v16.d[0] |
| gen_insns 0x6fd09000 |