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