ARM 'vzip.32 Dd, Dm' is a pseudo-instruction.
[oota-llvm.git] / test / MC / ARM / neon-shuffle-encoding.s
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
2
3         vext.8  d16, d17, d16, #3
4         vext.8  d16, d17, d16, #5
5         vext.8  q8, q9, q8, #3
6         vext.8  q8, q9, q8, #7
7         vext.16 d16, d17, d16, #3
8         vext.32 q8, q9, q8, #3
9         vext.64 q8, q9, q8, #1
10
11         vext.8  d17, d16, #3
12         vext.8  d7, d11, #5
13         vext.8  q3, q8, #3
14         vext.8  q9, q4, #7
15         vext.16 d1, d26, #3
16         vext.32 q5, q8, #3
17         vext.64 q5, q8, #1
18
19
20 @ CHECK: vext.8 d16, d17, d16, #3       @ encoding: [0xa0,0x03,0xf1,0xf2]
21 @ CHECK: vext.8 d16, d17, d16, #5       @ encoding: [0xa0,0x05,0xf1,0xf2]
22 @ CHECK: vext.8 q8, q9, q8, #3          @ encoding: [0xe0,0x03,0xf2,0xf2]
23 @ CHECK: vext.8 q8, q9, q8, #7          @ encoding: [0xe0,0x07,0xf2,0xf2]
24 @ CHECK: vext.16 d16, d17, d16, #3      @ encoding: [0xa0,0x06,0xf1,0xf2]
25 @ CHECK: vext.32 q8, q9, q8, #3         @ encoding: [0xe0,0x0c,0xf2,0xf2]
26 @ CHECK: vext.64 q8, q9, q8, #1         @ encoding: [0xe0,0x08,0xf2,0xf2]
27
28 @ CHECK: vext.8 d17, d17, d16, #3       @ encoding: [0xa0,0x13,0xf1,0xf2]
29 @ CHECK: vext.8 d7, d7, d11, #5         @ encoding: [0x0b,0x75,0xb7,0xf2]
30 @ CHECK: vext.8 q3, q3, q8, #3          @ encoding: [0x60,0x63,0xb6,0xf2]
31 @ CHECK: vext.8 q9, q9, q4, #7          @ encoding: [0xc8,0x27,0xf2,0xf2]
32 @ CHECK: vext.16 d1, d1, d26, #3        @ encoding: [0x2a,0x16,0xb1,0xf2]
33 @ CHECK: vext.32 q5, q5, q8, #3         @ encoding: [0x60,0xac,0xba,0xf2]
34 @ CHECK: vext.64 q5, q5, q8, #1         @ encoding: [0x60,0xa8,0xba,0xf2]
35
36
37         vtrn.8  d17, d16
38         vtrn.16 d17, d16
39         vtrn.32 d17, d16
40         vtrn.8  q9, q8
41         vtrn.16 q9, q8
42         vtrn.32 q9, q8
43
44 @ CHECK: vtrn.8 d17, d16                @ encoding: [0xa0,0x10,0xf2,0xf3]
45 @ CHECK: vtrn.16 d17, d16               @ encoding: [0xa0,0x10,0xf6,0xf3]
46 @ CHECK: vtrn.32 d17, d16               @ encoding: [0xa0,0x10,0xfa,0xf3]
47 @ CHECK: vtrn.8 q9, q8                  @ encoding: [0xe0,0x20,0xf2,0xf3]
48 @ CHECK: vtrn.16 q9, q8                 @ encoding: [0xe0,0x20,0xf6,0xf3]
49 @ CHECK: vtrn.32 q9, q8                 @ encoding: [0xe0,0x20,0xfa,0xf3]
50
51
52         vuzp.8  d17, d16
53         vuzp.16 d17, d16
54         vuzp.8  q9, q8
55         vuzp.16 q9, q8
56         vuzp.32 q9, q8
57         vzip.8  d17, d16
58         vzip.16 d17, d16
59         vzip.8  q9, q8
60         vzip.16 q9, q8
61         vzip.32 q9, q8
62         vzip.32 d2, d3
63
64 @ CHECK: vuzp.8 d17, d16                @ encoding: [0x20,0x11,0xf2,0xf3]
65 @ CHECK: vuzp.16 d17, d16               @ encoding: [0x20,0x11,0xf6,0xf3]
66 @ CHECK: vuzp.8 q9, q8                  @ encoding: [0x60,0x21,0xf2,0xf3]
67 @ CHECK: vuzp.16 q9, q8                 @ encoding: [0x60,0x21,0xf6,0xf3]
68 @ CHECK: vuzp.32 q9, q8                 @ encoding: [0x60,0x21,0xfa,0xf3]
69 @ CHECK: vzip.8 d17, d16                @ encoding: [0xa0,0x11,0xf2,0xf3]
70 @ CHECK: vzip.16 d17, d16               @ encoding: [0xa0,0x11,0xf6,0xf3]
71 @ CHECK: vzip.8 q9, q8                  @ encoding: [0xe0,0x21,0xf2,0xf3]
72 @ CHECK: vzip.16 q9, q8                 @ encoding: [0xe0,0x21,0xf6,0xf3]
73 @ CHECK: vzip.32 q9, q8                 @ encoding: [0xe0,0x21,0xfa,0xf3]
74 @ CHECK: vtrn.32 d2, d3                 @ encoding: [0x83,0x20,0xba,0xf3]
75
76
77 @ VTRN alternate size suffices
78
79         vtrn.8 d3, d9
80         vtrn.i8 d3, d9
81         vtrn.u8 d3, d9
82         vtrn.p8 d3, d9
83         vtrn.16 d3, d9
84         vtrn.i16 d3, d9
85         vtrn.u16 d3, d9
86         vtrn.p16 d3, d9
87         vtrn.32 d3, d9
88         vtrn.i32 d3, d9
89         vtrn.u32 d3, d9
90         vtrn.f32 d3, d9
91         vtrn.f d3, d9
92
93         vtrn.8 q14, q6
94         vtrn.i8 q14, q6
95         vtrn.u8 q14, q6
96         vtrn.p8 q14, q6
97         vtrn.16 q14, q6
98         vtrn.i16 q14, q6
99         vtrn.u16 q14, q6
100         vtrn.p16 q14, q6
101         vtrn.32 q14, q6
102         vtrn.i32 q14, q6
103         vtrn.u32 q14, q6
104         vtrn.f32 q14, q6
105         vtrn.f q14, q6
106
107 @ CHECK: vtrn.8 d3, d9                  @ encoding: [0x89,0x30,0xb2,0xf3]
108 @ CHECK: vtrn.8 d3, d9                  @ encoding: [0x89,0x30,0xb2,0xf3]
109 @ CHECK: vtrn.8 d3, d9                  @ encoding: [0x89,0x30,0xb2,0xf3]
110 @ CHECK: vtrn.8 d3, d9                  @ encoding: [0x89,0x30,0xb2,0xf3]
111 @ CHECK: vtrn.16        d3, d9          @ encoding: [0x89,0x30,0xb6,0xf3]
112 @ CHECK: vtrn.16        d3, d9          @ encoding: [0x89,0x30,0xb6,0xf3]
113 @ CHECK: vtrn.16        d3, d9          @ encoding: [0x89,0x30,0xb6,0xf3]
114 @ CHECK: vtrn.16        d3, d9          @ encoding: [0x89,0x30,0xb6,0xf3]
115 @ CHECK: vtrn.32        d3, d9          @ encoding: [0x89,0x30,0xba,0xf3]
116 @ CHECK: vtrn.32        d3, d9          @ encoding: [0x89,0x30,0xba,0xf3]
117 @ CHECK: vtrn.32        d3, d9          @ encoding: [0x89,0x30,0xba,0xf3]
118 @ CHECK: vtrn.32        d3, d9          @ encoding: [0x89,0x30,0xba,0xf3]
119 @ CHECK: vtrn.32        d3, d9          @ encoding: [0x89,0x30,0xba,0xf3]
120
121 @ CHECK: vtrn.8 q14, q6                 @ encoding: [0xcc,0xc0,0xf2,0xf3]
122 @ CHECK: vtrn.8 q14, q6                 @ encoding: [0xcc,0xc0,0xf2,0xf3]
123 @ CHECK: vtrn.8 q14, q6                 @ encoding: [0xcc,0xc0,0xf2,0xf3]
124 @ CHECK: vtrn.8 q14, q6                 @ encoding: [0xcc,0xc0,0xf2,0xf3]
125 @ CHECK: vtrn.16        q14, q6         @ encoding: [0xcc,0xc0,0xf6,0xf3]
126 @ CHECK: vtrn.16        q14, q6         @ encoding: [0xcc,0xc0,0xf6,0xf3]
127 @ CHECK: vtrn.16        q14, q6         @ encoding: [0xcc,0xc0,0xf6,0xf3]
128 @ CHECK: vtrn.16        q14, q6         @ encoding: [0xcc,0xc0,0xf6,0xf3]
129 @ CHECK: vtrn.32        q14, q6         @ encoding: [0xcc,0xc0,0xfa,0xf3]
130 @ CHECK: vtrn.32        q14, q6         @ encoding: [0xcc,0xc0,0xfa,0xf3]
131 @ CHECK: vtrn.32        q14, q6         @ encoding: [0xcc,0xc0,0xfa,0xf3]
132 @ CHECK: vtrn.32        q14, q6         @ encoding: [0xcc,0xc0,0xfa,0xf3]
133 @ CHECK: vtrn.32        q14, q6         @ encoding: [0xcc,0xc0,0xfa,0xf3]
134