Bob Wilson | 8d1b7e5 | 2010-12-15 22:14:01 +0000 | [diff] [blame] | 1 | @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 2 | |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 3 | vand d16, d17, d16 |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 4 | vand q8, q8, q9 |
| 5 | |
Jim Grosbach | 36db6fb | 2011-10-04 17:49:45 +0000 | [diff] [blame] | 6 | @ CHECK: vand d16, d17, d16 @ encoding: [0xb0,0x01,0x41,0xf2] |
| 7 | @ CHECK: vand q8, q8, q9 @ encoding: [0xf2,0x01,0x40,0xf2] |
| 8 | |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 9 | veor d16, d17, d16 |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 10 | veor q8, q8, q9 |
| 11 | |
Jim Grosbach | 36db6fb | 2011-10-04 17:49:45 +0000 | [diff] [blame] | 12 | @ CHECK: veor d16, d17, d16 @ encoding: [0xb0,0x01,0x41,0xf3] |
| 13 | @ CHECK: veor q8, q8, q9 @ encoding: [0xf2,0x01,0x40,0xf3] |
| 14 | |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 15 | vorr d16, d17, d16 |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 16 | vorr q8, q8, q9 |
Jim Grosbach | a02dfe7 | 2011-10-04 18:43:15 +0000 | [diff] [blame] | 17 | |
Jim Grosbach | 36db6fb | 2011-10-04 17:49:45 +0000 | [diff] [blame] | 18 | @ CHECK: vorr d16, d17, d16 @ encoding: [0xb0,0x01,0x61,0xf2] |
| 19 | @ CHECK: vorr q8, q8, q9 @ encoding: [0xf2,0x01,0x60,0xf2] |
| 20 | |
| 21 | vorr.i32 d16, #0x1000000 |
| 22 | vorr.i32 q8, #0x1000000 |
| 23 | vorr.i32 q8, #0x0 |
| 24 | |
Jim Grosbach | 0487e45 | 2011-10-18 20:20:51 +0000 | [diff] [blame] | 25 | @ CHECK: vorr.i32 d16, #0x1000000 @ encoding: [0x11,0x07,0xc0,0xf2] |
| 26 | @ CHECK: vorr.i32 q8, #0x1000000 @ encoding: [0x51,0x07,0xc0,0xf2] |
| 27 | @ CHECK: vorr.i32 q8, #0x0 @ encoding: [0x50,0x01,0xc0,0xf2] |
Jim Grosbach | 36db6fb | 2011-10-04 17:49:45 +0000 | [diff] [blame] | 28 | |
| 29 | vbic d16, d17, d16 |
| 30 | vbic q8, q8, q9 |
| 31 | vbic.i32 d16, #0xFF000000 |
| 32 | vbic.i32 q8, #0xFF000000 |
Jim Grosbach | 2727930 | 2012-05-02 21:11:56 +0000 | [diff] [blame] | 33 | vbic q10, q11 |
| 34 | vbic d9, d1 |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 35 | |
Owen Anderson | 95b9766 | 2010-11-01 18:33:37 +0000 | [diff] [blame] | 36 | @ CHECK: vbic d16, d17, d16 @ encoding: [0xb0,0x01,0x51,0xf2] |
Owen Anderson | 95b9766 | 2010-11-01 18:33:37 +0000 | [diff] [blame] | 37 | @ CHECK: vbic q8, q8, q9 @ encoding: [0xf2,0x01,0x50,0xf2] |
Benjamin Kramer | 70be28a | 2011-11-07 21:00:59 +0000 | [diff] [blame] | 38 | @ CHECK: vbic.i32 d16, #0xff000000 @ encoding: [0x3f,0x07,0xc7,0xf3] |
| 39 | @ CHECK: vbic.i32 q8, #0xff000000 @ encoding: [0x7f,0x07,0xc7,0xf3] |
Jim Grosbach | 2727930 | 2012-05-02 21:11:56 +0000 | [diff] [blame] | 40 | @ CHECK: vbic q10, q10, q11 @ encoding: [0xf6,0x41,0x54,0xf2] |
| 41 | @ CHECK: vbic d9, d9, d1 @ encoding: [0x11,0x91,0x19,0xf2] |
| 42 | |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 43 | |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 44 | vorn d16, d17, d16 |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 45 | vorn q8, q8, q9 |
| 46 | |
Jim Grosbach | 36db6fb | 2011-10-04 17:49:45 +0000 | [diff] [blame] | 47 | @ CHECK: vorn d16, d17, d16 @ encoding: [0xb0,0x01,0x71,0xf2] |
| 48 | @ CHECK: vorn q8, q8, q9 @ encoding: [0xf2,0x01,0x70,0xf2] |
| 49 | |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 50 | vmvn d16, d16 |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 51 | vmvn q8, q8 |
| 52 | |
Jim Grosbach | 36db6fb | 2011-10-04 17:49:45 +0000 | [diff] [blame] | 53 | @ CHECK: vmvn d16, d16 @ encoding: [0xa0,0x05,0xf0,0xf3] |
| 54 | @ CHECK: vmvn q8, q8 @ encoding: [0xe0,0x05,0xf0,0xf3] |
| 55 | |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 56 | vbsl d18, d17, d16 |
Owen Anderson | 7af3f38 | 2010-10-29 18:48:59 +0000 | [diff] [blame] | 57 | vbsl q8, q10, q9 |
Jim Grosbach | 36db6fb | 2011-10-04 17:49:45 +0000 | [diff] [blame] | 58 | |
| 59 | @ CHECK: vbsl d18, d17, d16 @ encoding: [0xb0,0x21,0x51,0xf3] |
| 60 | @ CHECK: vbsl q8, q10, q9 @ encoding: [0xf2,0x01,0x54,0xf3] |
Jim Grosbach | ef44876 | 2011-11-14 23:11:19 +0000 | [diff] [blame] | 61 | |
| 62 | |
| 63 | @ Size suffices are optional. |
| 64 | veor q4, q7, q3 |
| 65 | veor.8 q4, q7, q3 |
| 66 | veor.16 q4, q7, q3 |
| 67 | veor.32 q4, q7, q3 |
| 68 | veor.64 q4, q7, q3 |
| 69 | |
| 70 | veor.i8 q4, q7, q3 |
| 71 | veor.i16 q4, q7, q3 |
| 72 | veor.i32 q4, q7, q3 |
| 73 | veor.i64 q4, q7, q3 |
| 74 | |
| 75 | veor.s8 q4, q7, q3 |
| 76 | veor.s16 q4, q7, q3 |
| 77 | veor.s32 q4, q7, q3 |
| 78 | veor.s64 q4, q7, q3 |
| 79 | |
| 80 | veor.u8 q4, q7, q3 |
| 81 | veor.u16 q4, q7, q3 |
| 82 | veor.u32 q4, q7, q3 |
| 83 | veor.u64 q4, q7, q3 |
| 84 | |
| 85 | veor.p8 q4, q7, q3 |
| 86 | veor.p16 q4, q7, q3 |
| 87 | veor.f32 q4, q7, q3 |
| 88 | veor.f64 q4, q7, q3 |
| 89 | |
| 90 | veor.f q4, q7, q3 |
| 91 | veor.d q4, q7, q3 |
| 92 | |
| 93 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 94 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 95 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 96 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 97 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 98 | |
| 99 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 100 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 101 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 102 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 103 | |
| 104 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 105 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 106 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 107 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 108 | |
| 109 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 110 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 111 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 112 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 113 | |
| 114 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 115 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 116 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 117 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 118 | |
| 119 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 120 | @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] |
| 121 | |
| 122 | |
| 123 | vand d4, d7, d3 |
| 124 | vand.8 d4, d7, d3 |
| 125 | vand.16 d4, d7, d3 |
| 126 | vand.32 d4, d7, d3 |
| 127 | vand.64 d4, d7, d3 |
| 128 | |
| 129 | vand.i8 d4, d7, d3 |
| 130 | vand.i16 d4, d7, d3 |
| 131 | vand.i32 d4, d7, d3 |
| 132 | vand.i64 d4, d7, d3 |
| 133 | |
| 134 | vand.s8 d4, d7, d3 |
| 135 | vand.s16 d4, d7, d3 |
| 136 | vand.s32 d4, d7, d3 |
| 137 | vand.s64 d4, d7, d3 |
| 138 | |
| 139 | vand.u8 d4, d7, d3 |
| 140 | vand.u16 d4, d7, d3 |
| 141 | vand.u32 d4, d7, d3 |
| 142 | vand.u64 d4, d7, d3 |
| 143 | |
| 144 | vand.p8 d4, d7, d3 |
| 145 | vand.p16 d4, d7, d3 |
| 146 | vand.f32 d4, d7, d3 |
| 147 | vand.f64 d4, d7, d3 |
| 148 | |
| 149 | vand.f d4, d7, d3 |
| 150 | vand.d d4, d7, d3 |
| 151 | |
| 152 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 153 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 154 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 155 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 156 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 157 | |
| 158 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 159 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 160 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 161 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 162 | |
| 163 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 164 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 165 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 166 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 167 | |
| 168 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 169 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 170 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 171 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 172 | |
| 173 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 174 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 175 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 176 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 177 | |
| 178 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 179 | @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] |
| 180 | |
| 181 | vorr d4, d7, d3 |
| 182 | vorr.8 d4, d7, d3 |
| 183 | vorr.16 d4, d7, d3 |
| 184 | vorr.32 d4, d7, d3 |
| 185 | vorr.64 d4, d7, d3 |
| 186 | |
| 187 | vorr.i8 d4, d7, d3 |
| 188 | vorr.i16 d4, d7, d3 |
| 189 | vorr.i32 d4, d7, d3 |
| 190 | vorr.i64 d4, d7, d3 |
| 191 | |
| 192 | vorr.s8 d4, d7, d3 |
| 193 | vorr.s16 d4, d7, d3 |
| 194 | vorr.s32 q4, q7, q3 |
| 195 | vorr.s64 q4, q7, q3 |
| 196 | |
| 197 | vorr.u8 q4, q7, q3 |
| 198 | vorr.u16 q4, q7, q3 |
| 199 | vorr.u32 q4, q7, q3 |
| 200 | vorr.u64 q4, q7, q3 |
| 201 | |
| 202 | vorr.p8 q4, q7, q3 |
| 203 | vorr.p16 q4, q7, q3 |
| 204 | vorr.f32 q4, q7, q3 |
| 205 | vorr.f64 q4, q7, q3 |
| 206 | |
| 207 | vorr.f q4, q7, q3 |
| 208 | vorr.d q4, q7, q3 |
| 209 | |
| 210 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 211 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 212 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 213 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 214 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 215 | |
| 216 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 217 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 218 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 219 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 220 | |
| 221 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 222 | @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] |
| 223 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 224 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 225 | |
| 226 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 227 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 228 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 229 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 230 | |
| 231 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 232 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 233 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 234 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 235 | |
| 236 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
| 237 | @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] |
Jim Grosbach | 9fa0a74 | 2011-12-07 23:08:12 +0000 | [diff] [blame] | 238 | |
| 239 | @ Two-operand aliases |
Jim Grosbach | d8b3ed8 | 2012-04-20 18:12:54 +0000 | [diff] [blame] | 240 | vand q6, q5 |
Jim Grosbach | 9fa0a74 | 2011-12-07 23:08:12 +0000 | [diff] [blame] | 241 | vand.s8 q6, q5 |
| 242 | vand.s16 q7, q1 |
| 243 | vand.s32 q8, q2 |
| 244 | vand.f64 q8, q2 |
| 245 | |
Jim Grosbach | d8b3ed8 | 2012-04-20 18:12:54 +0000 | [diff] [blame] | 246 | veor q6, q5 |
Jim Grosbach | 9fa0a74 | 2011-12-07 23:08:12 +0000 | [diff] [blame] | 247 | veor.8 q6, q5 |
| 248 | veor.p16 q7, q1 |
| 249 | veor.u32 q8, q2 |
| 250 | veor.d q8, q2 |
| 251 | |
Jim Grosbach | d8b3ed8 | 2012-04-20 18:12:54 +0000 | [diff] [blame] | 252 | veor q6, q5 |
Jim Grosbach | 9fa0a74 | 2011-12-07 23:08:12 +0000 | [diff] [blame] | 253 | veor.i8 q6, q5 |
| 254 | veor.16 q7, q1 |
| 255 | veor.f q8, q2 |
| 256 | veor.i64 q8, q2 |
| 257 | |
| 258 | @ CHECK: vand q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf2] |
Jim Grosbach | d8b3ed8 | 2012-04-20 18:12:54 +0000 | [diff] [blame] | 259 | @ CHECK: vand q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf2] |
Jim Grosbach | 9fa0a74 | 2011-12-07 23:08:12 +0000 | [diff] [blame] | 260 | @ CHECK: vand q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf2] |
| 261 | @ CHECK: vand q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf2] |
| 262 | @ CHECK: vand q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf2] |
| 263 | |
| 264 | @ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3] |
Jim Grosbach | d8b3ed8 | 2012-04-20 18:12:54 +0000 | [diff] [blame] | 265 | @ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3] |
Jim Grosbach | 9fa0a74 | 2011-12-07 23:08:12 +0000 | [diff] [blame] | 266 | @ CHECK: veor q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf3] |
| 267 | @ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3] |
| 268 | @ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3] |
| 269 | |
| 270 | @ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3] |
Jim Grosbach | d8b3ed8 | 2012-04-20 18:12:54 +0000 | [diff] [blame] | 271 | @ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3] |
Jim Grosbach | 9fa0a74 | 2011-12-07 23:08:12 +0000 | [diff] [blame] | 272 | @ CHECK: veor q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf3] |
| 273 | @ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3] |
| 274 | @ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3] |