PowerPC64 .branch_lt address
[binutils-gdb.git] / sim / testsuite / aarch64 / mls.s
1 # mach: aarch64
2
3 # Check the vector multiply subtract instruction: mls.
4
5 .include "testutils.inc"
6
7 .data
8 .align 4
9 input:
10 .word 0x04030201
11 .word 0x08070605
12 .word 0x0c0b0a09
13 .word 0x100f0e0d
14 m8b:
15 .word 0xf1f8fd00
16 .word 0xc1d0dde8
17 m16b:
18 .word 0xf1f8fd00
19 .word 0xc1d0dde8
20 .word 0x71889db0
21 .word 0x01203d58
22 m4h:
23 .word 0xe7f8fc00
24 .word 0x8fd0c3e8
25 m8h:
26 .word 0xe7f8fc00
27 .word 0x8fd0c3e8
28 .word 0xf7884bb0
29 .word 0x1f209358
30 m2s:
31 .word 0xebf5fc00
32 .word 0x5b95c3e8
33 m4s:
34 .word 0xebf5fc00
35 .word 0x5b95c3e8
36 .word 0x4ad54bb0
37 .word 0xb9b49358
38
39 start
40 adrp x0, input
41 ldr q0, [x0, #:lo12:input]
42
43 movi v1.8b, #1
44 mls v1.8b, v0.8b, v0.8b
45 mov x1, v1.d[0]
46 adrp x3, m8b
47 ldr x4, [x3, #:lo12:m8b]
48 cmp x1, x4
49 bne .Lfailure
50
51 movi v1.16b, #1
52 mls v1.16b, v0.16b, v0.16b
53 mov x1, v1.d[0]
54 mov x2, v1.d[1]
55 adrp x3, m16b
56 ldr x4, [x3, #:lo12:m16b]
57 cmp x1, x4
58 bne .Lfailure
59 ldr x5, [x3, #:lo12:m16b+8]
60 cmp x2, x5
61 bne .Lfailure
62
63 movi v1.4h, #1
64 mls v1.4h, v0.4h, v0.4h
65 mov x1, v1.d[0]
66 adrp x3, m4h
67 ldr x4, [x3, #:lo12:m4h]
68 cmp x1, x4
69 bne .Lfailure
70
71 movi v1.8h, #1
72 mls v1.8h, v0.8h, v0.8h
73 mov x1, v1.d[0]
74 mov x2, v1.d[1]
75 adrp x3, m8h
76 ldr x4, [x3, #:lo12:m8h]
77 cmp x1, x4
78 bne .Lfailure
79 ldr x5, [x3, #:lo12:m8h+8]
80 cmp x2, x5
81 bne .Lfailure
82
83 movi v1.2s, #1
84 mls v1.2s, v0.2s, v0.2s
85 mov x1, v1.d[0]
86 adrp x3, m2s
87 ldr x4, [x3, #:lo12:m2s]
88 cmp x1, x4
89 bne .Lfailure
90
91 movi v1.4s, #1
92 mls v1.4s, v0.4s, v0.4s
93 mov x1, v1.d[0]
94 mov x2, v1.d[1]
95 adrp x3, m4s
96 ldr x4, [x3, #:lo12:m4s]
97 cmp x1, x4
98 bne .Lfailure
99 ldr x5, [x3, #:lo12:m4s+8]
100 cmp x2, x5
101 bne .Lfailure
102
103 pass
104 .Lfailure:
105 fail