Flesh out tests for Thumb2 encodings of NEON instructions.
[oota-llvm.git] / test / MC / ARM / neont2-shift-encoding.s
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unkown -show-encoding < %s | FileCheck %s
2
3 .code 16
4
5 @ CHECK: vshl.u8        d16, d17, d16           @ encoding: [0xa1,0x04,0x40,0xff]
6         vshl.u8 d16, d17, d16
7 @ CHECK: vshl.u16       d16, d17, d16   @ encoding: [0xa1,0x04,0x50,0xff]
8         vshl.u16        d16, d17, d16
9 @ CHECK: vshl.u32       d16, d17, d16   @ encoding: [0xa1,0x04,0x60,0xff]
10         vshl.u32        d16, d17, d16
11 @ CHECK: vshl.u64       d16, d17, d16   @ encoding: [0xa1,0x04,0x70,0xff]
12         vshl.u64        d16, d17, d16
13 @ CHECK: vshl.i8        d16, d16, #7            @ encoding: [0x30,0x05,0xcf,0xef]
14         vshl.i8 d16, d16, #7
15 @ CHECK: vshl.i16       d16, d16, #15   @ encoding: [0x30,0x05,0xdf,0xef]
16         vshl.i16        d16, d16, #15
17 @ CHECK: vshl.i32       d16, d16, #31   @ encoding: [0x30,0x05,0xff,0xef]
18         vshl.i32        d16, d16, #31
19 @ CHECK: vshl.i64       d16, d16, #63   @ encoding: [0xb0,0x05,0xff,0xef]
20         vshl.i64        d16, d16, #63
21 @ CHECK: vshl.u8        q8, q9, q8              @ encoding: [0xe2,0x04,0x40,0xff]
22         vshl.u8 q8, q9, q8
23 @ CHECK: vshl.u16       q8, q9, q8      @ encoding: [0xe2,0x04,0x50,0xff]
24         vshl.u16        q8, q9, q8
25 @ CHECK: vshl.u32       q8, q9, q8      @ encoding: [0xe2,0x04,0x60,0xff]
26         vshl.u32        q8, q9, q8
27 @ CHECK: vshl.u64       q8, q9, q8      @ encoding: [0xe2,0x04,0x70,0xff]
28         vshl.u64        q8, q9, q8
29 @ CHECK: vshl.i8        q8, q8, #7              @ encoding: [0x70,0x05,0xcf,0xef]
30         vshl.i8 q8, q8, #7
31 @ CHECK: vshl.i16       q8, q8, #15     @ encoding: [0x70,0x05,0xdf,0xef]
32         vshl.i16        q8, q8, #15
33 @ CHECK: vshl.i32       q8, q8, #31     @ encoding: [0x70,0x05,0xff,0xef]
34         vshl.i32        q8, q8, #31
35 @ CHECK: vshl.i64       q8, q8, #63     @ encoding: [0xf0,0x05,0xff,0xef]
36         vshl.i64        q8, q8, #63
37 @ CHECK: vshr.u8        d16, d16, #8            @ encoding: [0x30,0x00,0xc8,0xff]
38         vshr.u8 d16, d16, #8
39 @ CHECK: vshr.u16       d16, d16, #16   @ encoding: [0x30,0x00,0xd0,0xff]
40         vshr.u16        d16, d16, #16
41 @ CHECK: vshr.u32       d16, d16, #32   @ encoding: [0x30,0x00,0xe0,0xff]
42         vshr.u32        d16, d16, #32
43 @ CHECK: vshr.u64       d16, d16, #64   @ encoding: [0xb0,0x00,0xc0,0xff]
44         vshr.u64        d16, d16, #64
45 @ CHECK: vshr.u8        q8, q8, #8              @ encoding: [0x70,0x00,0xc8,0xff]
46         vshr.u8 q8, q8, #8
47 @ CHECK: vshr.u16       q8, q8, #16     @ encoding: [0x70,0x00,0xd0,0xff]
48         vshr.u16        q8, q8, #16
49 @ CHECK: vshr.u32       q8, q8, #32     @ encoding: [0x70,0x00,0xe0,0xff]
50         vshr.u32        q8, q8, #32
51 @ CHECK: vshr.u64       q8, q8, #64     @ encoding: [0xf0,0x00,0xc0,0xff]
52         vshr.u64        q8, q8, #64
53 @ CHECK: vshr.s8        d16, d16, #8            @ encoding: [0x30,0x00,0xc8,0xef]
54         vshr.s8 d16, d16, #8
55 @ CHECK: vshr.s16       d16, d16, #16   @ encoding: [0x30,0x00,0xd0,0xef]
56         vshr.s16        d16, d16, #16
57 @ CHECK: vshr.s32       d16, d16, #32   @ encoding: [0x30,0x00,0xe0,0xef]
58         vshr.s32        d16, d16, #32
59 @ CHECK: vshr.s64       d16, d16, #64   @ encoding: [0xb0,0x00,0xc0,0xef]
60         vshr.s64        d16, d16, #64
61 @ CHECK: vshr.s8        q8, q8, #8              @ encoding: [0x70,0x00,0xc8,0xef]
62         vshr.s8 q8, q8, #8
63 @ CHECK: vshr.s16       q8, q8, #16     @ encoding: [0x70,0x00,0xd0,0xef]
64         vshr.s16        q8, q8, #16
65 @ CHECK: vshr.s32       q8, q8, #32     @ encoding: [0x70,0x00,0xe0,0xef]
66         vshr.s32        q8, q8, #32
67 @ CHECK: vshr.s64       q8, q8, #64     @ encoding: [0xf0,0x00,0xc0,0xef]
68         vshr.s64        q8, q8, #64
69 @ CHECK: vshll.s8       q8, d16, #7     @ encoding: [0x30,0x0a,0xcf,0xef]
70         vshll.s8        q8, d16, #7
71 @ CHECK: vshll.s16      q8, d16, #15    @ encoding: [0x30,0x0a,0xdf,0xef]
72         vshll.s16       q8, d16, #15
73 @ CHECK: vshll.s32      q8, d16, #31    @ encoding: [0x30,0x0a,0xff,0xef]
74         vshll.s32       q8, d16, #31
75 @ CHECK: vshll.u8       q8, d16, #7     @ encoding: [0x30,0x0a,0xcf,0xff]
76         vshll.u8        q8, d16, #7
77 @ CHECK: vshll.u16      q8, d16, #15    @ encoding: [0x30,0x0a,0xdf,0xff]
78         vshll.u16       q8, d16, #15
79 @ CHECK: vshll.u32      q8, d16, #31    @ encoding: [0x30,0x0a,0xff,0xff]
80         vshll.u32       q8, d16, #31
81 @ CHECK: vshll.i8       q8, d16, #8     @ encoding: [0x20,0x03,0xf2,0xff]
82         vshll.i8        q8, d16, #8
83 @ CHECK: vshll.i16      q8, d16, #16    @ encoding: [0x20,0x03,0xf6,0xff]
84         vshll.i16       q8, d16, #16
85 @ CHECK: vshll.i32      q8, d16, #32    @ encoding: [0x20,0x03,0xfa,0xff]
86         vshll.i32       q8, d16, #32
87 @ CHECK: vshrn.i16      d16, q8, #8     @ encoding: [0x30,0x08,0xc8,0xef]
88         vshrn.i16       d16, q8, #8
89 @ CHECK: vshrn.i32      d16, q8, #16    @ encoding: [0x30,0x08,0xd0,0xef]
90         vshrn.i32       d16, q8, #16
91 @ CHECK: vshrn.i64      d16, q8, #32    @ encoding: [0x30,0x08,0xe0,0xef]
92         vshrn.i64       d16, q8, #32
93 @ CHECK: vrshl.s8       d16, d17, d16   @ encoding: [0xa1,0x05,0x40,0xef]
94         vrshl.s8        d16, d17, d16
95 @ CHECK: vrshl.s16      d16, d17, d16   @ encoding: [0xa1,0x05,0x50,0xef]
96         vrshl.s16       d16, d17, d16
97 @ CHECK: vrshl.s32      d16, d17, d16   @ encoding: [0xa1,0x05,0x60,0xef]
98         vrshl.s32       d16, d17, d16
99 @ CHECK: vrshl.s64      d16, d17, d16   @ encoding: [0xa1,0x05,0x70,0
100         vrshl.s64       d16, d17, d16
101 @ CHECK: vrshl.u8       d16, d17, d16   @ encoding: [0xa1,0x05,0x40,0xff]
102         vrshl.u8        d16, d17, d16
103 @ CHECK: vrshl.u16      d16, d17, d16   @ encoding: [0xa1,0x05,0x50,0xff]
104         vrshl.u16       d16, d17, d16
105 @ CHECK: vrshl.u32      d16, d17, d16   @ encoding: [0xa1,0x05,0x60,0xff]
106         vrshl.u32       d16, d17, d16
107 @ CHECK: vrshl.u64      d16, d17, d16   @ encoding: [0xa1,0x05,0x70,0xff]
108         vrshl.u64       d16, d17, d16
109 @ CHECK: vrshl.s8       q8, q9, q8      @ encoding: [0xe2,0x05,0x40,0xef]
110         vrshl.s8        q8, q9, q8
111 @ CHECK: vrshl.s16      q8, q9, q8      @ encoding: [0xe2,0x05,0x50,0xef]
112         vrshl.s16       q8, q9, q8
113 @ CHECK: vrshl.s32      q8, q9, q8      @ encoding: [0xe2,0x05,0x60,0xef]
114         vrshl.s32       q8, q9, q8
115 @ CHECK: vrshl.s64      q8, q9, q8      @ encoding: [0xe2,0x05,0x70,0xef]
116         vrshl.s64       q8, q9, q8
117 @ CHECK: vrshl.u8       q8, q9, q8      @ encoding: [0xe2,0x05,0x40,0xff]
118         vrshl.u8        q8, q9, q8
119 @ CHECK: vrshl.u16      q8, q9, q8      @ encoding: [0xe2,0x05,0x50,0xff]
120         vrshl.u16       q8, q9, q8
121 @ CHECK: vrshl.u32      q8, q9, q8      @ encoding: [0xe2,0x05,0x60,0xff]
122         vrshl.u32       q8, q9, q8
123 @ CHECK: vrshl.u64      q8, q9, q8      @ encoding: [0xe2,0x05,0x70,0xff]
124         vrshl.u64       q8, q9, q8
125 @ CHECK: vrshr.s8       d16, d16, #8    @ encoding: [0x30,0x02,0xc8,0xef]
126         vrshr.s8        d16, d16, #8
127 @ CHECK: vrshr.s16      d16, d16, #16   @ encoding: [0x30,0x02,0xd0,0xef]
128         vrshr.s16       d16, d16, #16
129 @ CHECK: vrshr.s32      d16, d16, #32   @ encoding: [0x30,0x02,0xe0,0xef]
130         vrshr.s32       d16, d16, #32
131 @ CHECK: vrshr.s64      d16, d16, #64   @ encoding: [0xb0,0x02,0xc0,0xef]
132         vrshr.s64       d16, d16, #64
133 @ CHECK: vrshr.u8       d16, d16, #8    @ encoding: [0x30,0x02,0xc8,0xff]
134         vrshr.u8        d16, d16, #8
135 @ CHECK: vrshr.u16      d16, d16, #16   @ encoding: [0x30,0x02,0xd0,0xff]
136         vrshr.u16       d16, d16, #16
137 @ CHECK: vrshr.u32      d16, d16, #32   @ encoding: [0x30,0x02,0xe0,0xff]
138         vrshr.u32       d16, d16, #32
139 @ CHECK: vrshr.u64      d16, d16, #64   @ encoding: [0xb0,0x02,0xc0,0xff]
140         vrshr.u64       d16, d16, #64
141 @ CHECK: vrshr.s8       q8, q8, #8      @ encoding: [0x70,0x02,0xc8,0xef]
142         vrshr.s8        q8, q8, #8
143 @ CHECK: vrshr.s16      q8, q8, #16     @ encoding: [0x70,0x02,0xd0,0xef]
144         vrshr.s16       q8, q8, #16
145 @ CHECK: vrshr.s32      q8, q8, #32     @ encoding: [0x70,0x02,0xe0,0xef]
146         vrshr.s32       q8, q8, #32
147 @ CHECK: vrshr.s64      q8, q8, #64     @ encoding: [0xf0,0x02,0xc0,0xef]
148         vrshr.s64       q8, q8, #64
149 @ CHECK: vrshr.u8       q8, q8, #8      @ encoding: [0x70,0x02,0xc8,0xff]
150         vrshr.u8        q8, q8, #8
151 @ CHECK: vrshr.u16      q8, q8, #16     @ encoding: [0x70,0x02,0xd0,0xff]
152         vrshr.u16       q8, q8, #16
153 @ CHECK: vrshr.u32      q8, q8, #32     @ encoding: [0x70,0x02,0xe0,0xff]
154         vrshr.u32       q8, q8, #32
155 @ CHECK: vrshr.u64      q8, q8, #64     @ encoding: [0xf0,0x02,0xc0,0xff]
156         vrshr.u64       q8, q8, #64
157 @ CHECK: vrshrn.i16     d16, q8, #8     @ encoding: [0x70,0x08,0xc8,0xef]
158         vrshrn.i16      d16, q8, #8
159 @ CHECK: vrshrn.i32     d16, q8, #16    @ encoding: [0x70,0x08,0xd0,0xef]
160         vrshrn.i32      d16, q8, #16
161 @ CHECK: vrshrn.i64     d16, q8, #32    @ encoding: [0x70,0x08,0xe0,0xef]
162         vrshrn.i64      d16, q8, #32