9b5e8016d8dba67a341fdf3072786013490b2709
[oota-llvm.git] / test / MC / ARM / neont2-mov-encoding.s
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
2
3 .code 16
4
5         vmov.i8 d16, #0x8
6         vmov.i16        d16, #0x10
7         vmov.i16        d16, #0x1000
8 @       vmov.i32        d16, #0x20
9 @       vmov.i32        d16, #0x2000
10 @       vmov.i32        d16, #0x200000
11 @       vmov.i32        d16, #0x20000000
12 @       vmov.i32        d16, #0x20FF
13 @       vmov.i32        d16, #0x20FFFF
14 @       vmov.i64        d16, #0xFF0000FF0000FFFF
15
16 @ CHECK: vmov.i8        d16, #0x8       @ encoding: [0xc0,0xef,0x18,0x0e]
17 @ CHECK: vmov.i16       d16, #0x10      @ encoding: [0xc1,0xef,0x10,0x08]
18 @ CHECK: vmov.i16       d16, #0x1000    @ encoding: [0xc1,0xef,0x10,0x0a]
19 @ FIXME: vmov.i32       d16, #0x20      @ encoding: [0xc2,0xef,0x10,0x00]
20 @ FIXME: vmov.i32       d16, #0x2000    @ encoding: [0xc2,0xef,0x10,0x02]
21 @ FIXME: vmov.i32       d16, #0x200000  @ encoding: [0xc2,0xef,0x10,0x04]
22 @ FIXME: vmov.i32       d16, #0x20000000 @ encoding: [0xc2,0xef,0x10,0x06]
23 @ FIXME: vmov.i32       d16, #0x20FF    @ encoding: [0xc2,0xef,0x10,0x0c]
24 @ FIXME: vmov.i32       d16, #0x20FFFF  @ encoding: [0xc2,0xef,0x10,0x0d]
25 @ FIXME: vmov.i64 d16, #0xFF0000FF0000FFFF @ encoding: [0xc1,0xff,0x33,0x0e]
26
27
28         vmov.i8 q8, #0x8
29         vmov.i16        q8, #0x10
30         vmov.i16        q8, #0x1000
31 @       vmov.i32        q8, #0x20
32 @       vmov.i32        q8, #0x2000
33 @       vmov.i32        q8, #0x200000
34 @       vmov.i32        q8, #0x20000000
35 @       vmov.i32        q8, #0x20FF
36 @       vmov.i32        q8, #0x20FFFF
37 @       vmov.i64        q8, #0xFF0000FF0000FFFF
38
39 @ CHECK: vmov.i8        q8, #0x8        @ encoding: [0xc0,0xef,0x58,0x0e]
40 @ CHECK: vmov.i16       q8, #0x10       @ encoding: [0xc1,0xef,0x50,0x08]
41 @ CHECK: vmov.i16       q8, #0x1000     @ encoding: [0xc1,0xef,0x50,0x0a]
42 @ FIXME: vmov.i32       q8, #0x20       @ encoding: [0xc2,0xef,0x50,0x00]
43 @ FIXME: vmov.i32       q8, #0x2000     @ encoding: [0xc2,0xef,0x50,0x02]
44 @ FIXME: vmov.i32       q8, #0x200000   @ encoding: [0xc2,0xef,0x50,0x04]
45 @ FIXME: vmov.i32       q8, #0x20000000 @ encoding: [0xc2,0xef,0x50,0x06]
46 @ FIXME: vmov.i32       q8, #0x20FF     @ encoding: [0xc2,0xef,0x50,0x0c]
47 @ FIXME: vmov.i32       q8, #0x20FFFF   @ encoding: [0xc2,0xef,0x50,0x0d]
48 @ FIXME: vmov.i64 q8, #0xFF0000FF0000FFFF @ encoding: [0xc1,0xff,0x73,0x0e]
49
50
51         vmvn.i16        d16, #0x10
52         vmvn.i16        d16, #0x1000
53 @       vmvn.i32        d16, #0x20
54 @       vmvn.i32        d16, #0x2000
55 @       vmvn.i32        d16, #0x200000
56 @       vmvn.i32        d16, #0x20000000
57 @       vmvn.i32        d16, #0x20FF
58 @       vmvn.i32        d16, #0x20FFFF
59
60 @ CHECK: vmvn.i16       d16, #0x10      @ encoding: [0xc1,0xef,0x30,0x08]
61 @ CHECK: vmvn.i16       d16, #0x1000    @ encoding: [0xc1,0xef,0x30,0x0a]
62 @ FIXME: vmvn.i32       d16, #0x20      @ encoding: [0xc2,0xef,0x30,0x00]
63 @ FIXME: vmvn.i32       d16, #0x2000    @ encoding: [0xc2,0xef,0x30,0x02]
64 @ FIXME: vmvn.i32       d16, #0x200000  @ encoding: [0xc2,0xef,0x30,0x04]
65 @ FIXME: vmvn.i32       d16, #0x20000000 @ encoding: [0xc2,0xef,0x30,0x06]
66 @ FIXME: vmvn.i32       d16, #0x20FF    @ encoding: [0xc2,0xef,0x30,0x0c]
67 @ FIXME: vmvn.i32       d16, #0x20FFFF  @ encoding: [0xc2,0xef,0x30,0x0d]
68
69
70         vmovl.s8        q8, d16
71         vmovl.s16       q8, d16
72         vmovl.s32       q8, d16
73         vmovl.u8        q8, d16
74         vmovl.u16       q8, d16
75         vmovl.u32       q8, d16
76         vmovn.i16       d16, q8
77         vmovn.i32       d16, q8
78         vmovn.i64       d16, q8
79         vqmovn.s16      d16, q8
80         vqmovn.s32      d16, q8
81         vqmovn.s64      d16, q8
82         vqmovn.u16      d16, q8
83         vqmovn.u32      d16, q8
84         vqmovn.u64      d16, q8
85         vqmovun.s16     d16, q8
86         vqmovun.s32     d16, q8
87         vqmovun.s64     d16, q8
88
89 @ CHECK: vmovl.s8       q8, d16         @ encoding: [0xc8,0xef,0x30,0x0a]
90 @ CHECK: vmovl.s16      q8, d16         @ encoding: [0xd0,0xef,0x30,0x0a]
91 @ CHECK: vmovl.s32      q8, d16         @ encoding: [0xe0,0xef,0x30,0x0a]
92 @ CHECK: vmovl.u8       q8, d16         @ encoding: [0xc8,0xff,0x30,0x0a]
93 @ CHECK: vmovl.u16      q8, d16         @ encoding: [0xd0,0xff,0x30,0x0a]
94 @ CHECK: vmovl.u32      q8, d16         @ encoding: [0xe0,0xff,0x30,0x0a]
95 @ CHECK: vmovn.i16      d16, q8         @ encoding: [0xf2,0xff,0x20,0x02]
96 @ CHECK: vmovn.i32      d16, q8         @ encoding: [0xf6,0xff,0x20,0x02]
97 @ CHECK: vmovn.i64      d16, q8         @ encoding: [0xfa,0xff,0x20,0x02]
98 @ CHECK: vqmovn.s16     d16, q8         @ encoding: [0xf2,0xff,0xa0,0x02]
99 @ CHECK: vqmovn.s32     d16, q8         @ encoding: [0xf6,0xff,0xa0,0x02]
100 @ CHECK: vqmovn.s64     d16, q8         @ encoding: [0xfa,0xff,0xa0,0x02]
101 @ CHECK: vqmovn.u16     d16, q8         @ encoding: [0xf2,0xff,0xe0,0x02]
102 @ CHECK: vqmovn.u32     d16, q8         @ encoding: [0xf6,0xff,0xe0,0x02]
103 @ CHECK: vqmovn.u64     d16, q8         @ encoding: [0xfa,0xff,0xe0,0x02]
104 @ CHECK: vqmovun.s16    d16, q8         @ encoding: [0xf2,0xff,0x60,0x02]
105 @ CHECK: vqmovun.s32    d16, q8         @ encoding: [0xf6,0xff,0x60,0x02]
106 @ CHECK: vqmovun.s64    d16, q8         @ encoding: [0xfa,0xff,0x60,0x02]
107
108
109 @       vmov.s8 r0, d16[1]
110 @       vmov.s16        r0, d16[1]
111 @       vmov.u8 r0, d16[1]
112 @       vmov.u16        r0, d16[1]
113 @       vmov.32 r0, d16[1]
114 @       vmov.8  d16[1], r1
115 @       vmov.16 d16[1], r1
116 @       vmov.32 d16[1], r1
117 @       vmov.8  d18[1], r1
118 @       vmov.16 d18[1], r1
119 @       vmov.32 d18[1], r1
120
121 @ FIXME: vmov.s8        r0, d16[1]      @ encoding: [0x50,0xee,0xb0,0x0b]
122 @ FIXME: vmov.s16       r0, d16[1]      @ encoding: [0x10,0xee,0xf0,0x0b]
123 @ FIXME: vmov.u8        r0, d16[1]      @ encoding: [0xd0,0xee,0xb0,0x0b]
124 @ FIXME: vmov.u16       r0, d16[1]      @ encoding: [0x90,0xee,0xf0,0x0b]
125 @ FIXME: vmov.32        r0, d16[1]      @ encoding: [0x30,0xee,0x90,0x0b]
126 @ FIXME: vmov.8 d16[1], r1              @ encoding: [0x40,0xee,0xb0,0x1b]
127 @ FIXME: vmov.16        d16[1], r1      @ encoding: [0x00,0xee,0xf0,0x1b]
128 @ FIXME: vmov.32        d16[1], r1      @ encoding: [0x20,0xee,0x90,0x1b]
129 @ FIXME: vmov.8 d18[1], r1              @ encoding: [0x42,0xee,0xb0,0x1b]
130 @ FIXME: vmov.16        d18[1], r1      @ encoding: [0x02,0xee,0xf0,0x1b]
131 @ FIXME: vmov.32        d18[1], r1      @ encoding: [0x22,0xee,0x90,0x1b]