]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/testsuite/sim/aarch64/mla.s
Add self to aarch64 maintainers. Fix mla instruction.
[thirdparty/binutils-gdb.git] / sim / testsuite / sim / aarch64 / mla.s
1 # mach: aarch64
2
3 # Check the vector multiply add instruction: mla.
4
5 .include "testutils.inc"
6
7 input:
8 .word 0x04030201
9 .word 0x08070605
10 .word 0x0c0b0a09
11 .word 0x100f0e0d
12 m8b:
13 .word 0x110a0502
14 .word 0x4132251a
15 m16b:
16 .word 0x110a0502
17 .word 0x4132251a
18 .word 0x917a6552
19 .word 0x01e2c5aa
20 m4h:
21 .word 0x180a0402
22 .word 0x70323c1a
23 m8h:
24 .word 0x180a0402
25 .word 0x70323c1a
26 .word 0x087ab452
27 .word 0xe0e26caa
28 m2s:
29 .word 0x140a0402
30 .word 0xa46a3c1a
31 m4s:
32 .word 0x140a0402
33 .word 0xa46a3c1a
34 .word 0xb52ab452
35 .word 0x464b6caa
36
37 start
38 adrp x0, input
39 ldr q0, [x0, #:lo12:input]
40
41 movi v1.8b, #1
42 mla v1.8b, v0.8b, v0.8b
43 mov x1, v1.d[0]
44 adrp x3, m8b
45 ldr x4, [x3, #:lo12:m8b]
46 cmp x1, x4
47 bne .Lfailure
48
49 movi v1.16b, #1
50 mla v1.16b, v0.16b, v0.16b
51 mov x1, v1.d[0]
52 mov x2, v1.d[1]
53 adrp x3, m16b
54 ldr x4, [x3, #:lo12:m16b]
55 cmp x1, x4
56 bne .Lfailure
57 ldr x5, [x3, #:lo12:m16b+8]
58 cmp x2, x5
59 bne .Lfailure
60
61 movi v1.4h, #1
62 mla v1.4h, v0.4h, v0.4h
63 mov x1, v1.d[0]
64 adrp x3, m4h
65 ldr x4, [x3, #:lo12:m4h]
66 cmp x1, x4
67 bne .Lfailure
68
69 movi v1.8h, #1
70 mla v1.8h, v0.8h, v0.8h
71 mov x1, v1.d[0]
72 mov x2, v1.d[1]
73 adrp x3, m8h
74 ldr x4, [x3, #:lo12:m8h]
75 cmp x1, x4
76 bne .Lfailure
77 ldr x5, [x3, #:lo12:m8h+8]
78 cmp x2, x5
79 bne .Lfailure
80
81 movi v1.2s, #1
82 mla v1.2s, v0.2s, v0.2s
83 mov x1, v1.d[0]
84 adrp x3, m2s
85 ldr x4, [x3, #:lo12:m2s]
86 cmp x1, x4
87 bne .Lfailure
88
89 movi v1.4s, #1
90 mla v1.4s, v0.4s, v0.4s
91 mov x1, v1.d[0]
92 mov x2, v1.d[1]
93 adrp x3, m4s
94 ldr x4, [x3, #:lo12:m4s]
95 cmp x1, x4
96 bne .Lfailure
97 ldr x5, [x3, #:lo12:m4s+8]
98 cmp x2, x5
99 bne .Lfailure
100
101 pass
102 .Lfailure:
103 fail