1 /* Test file for ARMv8.3 complex arithmetics instructions. */
4 .macro three_same op, sz
5 .irp rot, 0, 90, 180, 270
6 .irp d, 1.\sz, 2.\sz, 5.\sz, 13.\sz, 27.\sz
7 .irp m, 2.\sz, 3.\sz, 5.\sz, 14.\sz, 31.\sz
8 .irp n, 3.\sz, 4.\sz, 6.\sz, 15.\sz, 30.\sz
9 \op v\d, v\m, v\n, #\rot
16 .macro three_element op, sz1, sz2, idx
17 .irp rot, 0, 90, 180, 270
18 .irp d, 1.\sz1, 2.\sz1, 5.\sz1, 13.\sz1, 27.\sz1
19 .irp m, 2.\sz1, 3.\sz1, 5.\sz1, 14.\sz1, 31.\sz1
20 .irp n, 3.\sz2, 4.\sz2, 6.\sz2, 15.\sz2, 30.\sz2
21 \op v\d, v\m, v\n[\idx], #\rot
28 .macro three_same_rot op, sz
30 .irp d, 1.\sz, 2.\sz, 5.\sz, 13.\sz, 27.\sz
31 .irp m, 2.\sz, 3.\sz, 5.\sz, 14.\sz, 31.\sz
32 .irp n, 3.\sz, 4.\sz, 6.\sz, 15.\sz, 30.\sz
33 \op v\d, v\m, v\n, #\rot
40 /* Three-same operands FCMLA. */
47 /* Indexed element FCMLA. */
48 three_element fcmla, 4s, s, 0
49 three_element fcmla, 4s, s, 1
51 three_element fcmla, 4h, h, 0
52 three_element fcmla, 4h, h, 1
54 three_element fcmla, 8h, h, 0
55 three_element fcmla, 8h, h, 1
56 three_element fcmla, 8h, h, 2
57 three_element fcmla, 8h, h, 3
59 /* Three-same operands FADD. */
60 three_same_rot fcadd, 2d
61 three_same_rot fcadd, 2s
62 three_same_rot fcadd, 4s
63 three_same_rot fcadd, 4h
64 three_same_rot fcadd, 8h