1 // RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+crypto -mattr=+neon -show-encoding < %s | FileCheck %s 2 3 // Check that the assembler can handle the documented syntax for AArch64 4 5 //------------------------------------------------------------------------------ 6 // Instructions with 3 different vector data types 7 //------------------------------------------------------------------------------ 8 9 //------------------------------------------------------------------------------ 10 // Long 11 //------------------------------------------------------------------------------ 12 13 //------------------------------------------------------------------------------ 14 // Long - Variant 1 15 //------------------------------------------------------------------------------ 16 17 saddl v0.8h, v1.8b, v2.8b 18 saddl v0.4s, v1.4h, v2.4h 19 saddl v0.2d, v1.2s, v2.2s 20 21 // CHECK: saddl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x00,0x22,0x0e] 22 // CHECK: saddl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x00,0x62,0x0e] 23 // CHECK: saddl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x00,0xa2,0x0e] 24 25 saddl2 v0.4s, v1.8h, v2.8h 26 saddl2 v0.8h, v1.16b, v2.16b 27 saddl2 v0.2d, v1.4s, v2.4s 28 29 // CHECK: saddl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x00,0x62,0x4e] 30 // CHECK: saddl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x00,0x22,0x4e] 31 // CHECK: saddl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x00,0xa2,0x4e] 32 33 uaddl v0.8h, v1.8b, v2.8b 34 uaddl v0.4s, v1.4h, v2.4h 35 uaddl v0.2d, v1.2s, v2.2s 36 37 // CHECK: uaddl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x00,0x22,0x2e] 38 // CHECK: uaddl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x00,0x62,0x2e] 39 // CHECK: uaddl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x00,0xa2,0x2e] 40 41 uaddl2 v0.8h, v1.16b, v2.16b 42 uaddl2 v0.4s, v1.8h, v2.8h 43 uaddl2 v0.2d, v1.4s, v2.4s 44 45 // CHECK: uaddl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x00,0x22,0x6e] 46 // CHECK: uaddl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x00,0x62,0x6e] 47 // CHECK: uaddl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x00,0xa2,0x6e] 48 49 ssubl v0.8h, v1.8b, v2.8b 50 ssubl v0.4s, v1.4h, v2.4h 51 ssubl v0.2d, v1.2s, v2.2s 52 53 // CHECK: ssubl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x20,0x22,0x0e] 54 // CHECK: ssubl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x20,0x62,0x0e] 55 // CHECK: ssubl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x20,0xa2,0x0e] 56 57 ssubl2 v0.8h, v1.16b, v2.16b 58 ssubl2 v0.4s, v1.8h, v2.8h 59 ssubl2 v0.2d, v1.4s, v2.4s 60 61 // CHECK: ssubl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x20,0x22,0x4e] 62 // CHECK: ssubl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x20,0x62,0x4e] 63 // CHECK: ssubl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x20,0xa2,0x4e] 64 65 usubl v0.8h, v1.8b, v2.8b 66 usubl v0.4s, v1.4h, v2.4h 67 usubl v0.2d, v1.2s, v2.2s 68 69 // CHECK: usubl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x20,0x22,0x2e] 70 // CHECK: usubl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x20,0x62,0x2e] 71 // CHECK: usubl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x20,0xa2,0x2e] 72 73 usubl2 v0.8h, v1.16b, v2.16b 74 usubl2 v0.4s, v1.8h, v2.8h 75 usubl2 v0.2d, v1.4s, v2.4s 76 77 // CHECK: usubl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x20,0x22,0x6e] 78 // CHECK: usubl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x20,0x62,0x6e] 79 // CHECK: usubl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x20,0xa2,0x6e] 80 81 sabal v0.8h, v1.8b, v2.8b 82 sabal v0.4s, v1.4h, v2.4h 83 sabal v0.2d, v1.2s, v2.2s 84 85 // CHECK: sabal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x50,0x22,0x0e] 86 // CHECK: sabal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x50,0x62,0x0e] 87 // CHECK: sabal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x50,0xa2,0x0e] 88 89 sabal2 v0.8h, v1.16b, v2.16b 90 sabal2 v0.4s, v1.8h, v2.8h 91 sabal2 v0.2d, v1.4s, v2.4s 92 93 // CHECK: sabal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x50,0x22,0x4e] 94 // CHECK: sabal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x50,0x62,0x4e] 95 // CHECK: sabal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x50,0xa2,0x4e] 96 97 uabal v0.8h, v1.8b, v2.8b 98 uabal v0.4s, v1.4h, v2.4h 99 uabal v0.2d, v1.2s, v2.2s 100 101 // CHECK: uabal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x50,0x22,0x2e] 102 // CHECK: uabal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x50,0x62,0x2e] 103 // CHECK: uabal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x50,0xa2,0x2e] 104 105 uabal2 v0.8h, v1.16b, v2.16b 106 uabal2 v0.4s, v1.8h, v2.8h 107 uabal2 v0.2d, v1.4s, v2.4s 108 109 // CHECK: uabal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x50,0x22,0x6e] 110 // CHECK: uabal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x50,0x62,0x6e] 111 // CHECK: uabal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x50,0xa2,0x6e] 112 113 sabdl v0.8h, v1.8b, v2.8b 114 sabdl v0.4s, v1.4h, v2.4h 115 sabdl v0.2d, v1.2s, v2.2s 116 117 // CHECK: sabdl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x70,0x22,0x0e] 118 // CHECK: sabdl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x70,0x62,0x0e] 119 // CHECK: sabdl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x70,0xa2,0x0e] 120 121 sabdl2 v0.8h, v1.16b, v2.16b 122 sabdl2 v0.4s, v1.8h, v2.8h 123 sabdl2 v0.2d, v1.4s, v2.4s 124 125 // CHECK: sabdl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x70,0x22,0x4e] 126 // CHECK: sabdl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x70,0x62,0x4e] 127 // CHECK: sabdl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x70,0xa2,0x4e] 128 129 uabdl v0.8h, v1.8b, v2.8b 130 uabdl v0.4s, v1.4h, v2.4h 131 uabdl v0.2d, v1.2s, v2.2s 132 133 // CHECK: uabdl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x70,0x22,0x2e] 134 // CHECK: uabdl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x70,0x62,0x2e] 135 // CHECK: uabdl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x70,0xa2,0x2e] 136 137 uabdl2 v0.8h, v1.16b, v2.16b 138 uabdl2 v0.4s, v1.8h, v2.8h 139 uabdl2 v0.2d, v1.4s, v2.4s 140 141 // CHECK: uabdl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x70,0x22,0x6e] 142 // CHECK: uabdl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x70,0x62,0x6e] 143 // CHECK: uabdl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x70,0xa2,0x6e] 144 145 smlal v0.8h, v1.8b, v2.8b 146 smlal v0.4s, v1.4h, v2.4h 147 smlal v0.2d, v1.2s, v2.2s 148 149 // CHECK: smlal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x80,0x22,0x0e] 150 // CHECK: smlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x80,0x62,0x0e] 151 // CHECK: smlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x80,0xa2,0x0e] 152 153 smlal2 v0.8h, v1.16b, v2.16b 154 smlal2 v0.4s, v1.8h, v2.8h 155 smlal2 v0.2d, v1.4s, v2.4s 156 157 // CHECK: smlal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x80,0x22,0x4e] 158 // CHECK: smlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x80,0x62,0x4e] 159 // CHECK: smlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x80,0xa2,0x4e] 160 161 umlal v0.8h, v1.8b, v2.8b 162 umlal v0.4s, v1.4h, v2.4h 163 umlal v0.2d, v1.2s, v2.2s 164 165 // CHECK: umlal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x80,0x22,0x2e] 166 // CHECK: umlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x80,0x62,0x2e] 167 // CHECK: umlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x80,0xa2,0x2e] 168 169 umlal2 v0.8h, v1.16b, v2.16b 170 umlal2 v0.4s, v1.8h, v2.8h 171 umlal2 v0.2d, v1.4s, v2.4s 172 173 // CHECK: umlal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x80,0x22,0x6e] 174 // CHECK: umlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x80,0x62,0x6e] 175 // CHECK: umlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x80,0xa2,0x6e] 176 177 smlsl v0.8h, v1.8b, v2.8b 178 smlsl v0.4s, v1.4h, v2.4h 179 smlsl v0.2d, v1.2s, v2.2s 180 181 // CHECK: smlsl v0.8h, v1.8b, v2.8b // encoding: [0x20,0xa0,0x22,0x0e] 182 // CHECK: smlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xa0,0x62,0x0e] 183 // CHECK: smlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xa0,0xa2,0x0e] 184 185 smlsl2 v0.8h, v1.16b, v2.16b 186 smlsl2 v0.4s, v1.8h, v2.8h 187 smlsl2 v0.2d, v1.4s, v2.4s 188 189 // CHECK: smlsl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xa0,0x22,0x4e] 190 // CHECK: smlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xa0,0x62,0x4e] 191 // CHECK: smlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xa0,0xa2,0x4e] 192 193 umlsl v0.8h, v1.8b, v2.8b 194 umlsl v0.4s, v1.4h, v2.4h 195 umlsl v0.2d, v1.2s, v2.2s 196 197 // CHECK: umlsl v0.8h, v1.8b, v2.8b // encoding: [0x20,0xa0,0x22,0x2e] 198 // CHECK: umlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xa0,0x62,0x2e] 199 // CHECK: umlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xa0,0xa2,0x2e] 200 201 umlsl2 v0.8h, v1.16b, v2.16b 202 umlsl2 v0.4s, v1.8h, v2.8h 203 umlsl2 v0.2d, v1.4s, v2.4s 204 205 // CHECK: umlsl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xa0,0x22,0x6e] 206 // CHECK: umlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xa0,0x62,0x6e] 207 // CHECK: umlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xa0,0xa2,0x6e] 208 209 smull v0.8h, v1.8b, v2.8b 210 smull v0.4s, v1.4h, v2.4h 211 smull v0.2d, v1.2s, v2.2s 212 213 // CHECK: smull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xc0,0x22,0x0e] 214 // CHECK: smull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xc0,0x62,0x0e] 215 // CHECK: smull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xc0,0xa2,0x0e] 216 217 smull2 v0.8h, v1.16b, v2.16b 218 smull2 v0.4s, v1.8h, v2.8h 219 smull2 v0.2d, v1.4s, v2.4s 220 221 // CHECK: smull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xc0,0x22,0x4e] 222 // CHECK: smull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xc0,0x62,0x4e] 223 // CHECK: smull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xc0,0xa2,0x4e] 224 225 umull v0.8h, v1.8b, v2.8b 226 umull v0.4s, v1.4h, v2.4h 227 umull v0.2d, v1.2s, v2.2s 228 229 // CHECK: umull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xc0,0x22,0x2e] 230 // CHECK: umull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xc0,0x62,0x2e] 231 // CHECK: umull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xc0,0xa2,0x2e] 232 233 umull2 v0.8h, v1.16b, v2.16b 234 umull2 v0.4s, v1.8h, v2.8h 235 umull2 v0.2d, v1.4s, v2.4s 236 237 // CHECK: umull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xc0,0x22,0x6e] 238 // CHECK: umull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xc0,0x62,0x6e] 239 // CHECK: umull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xc0,0xa2,0x6e] 240 241 //------------------------------------------------------------------------------ 242 // Long - Variant 2 243 //------------------------------------------------------------------------------ 244 245 sqdmlal v0.4s, v1.4h, v2.4h 246 sqdmlal v0.2d, v1.2s, v2.2s 247 248 // CHECK: sqdmlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x90,0x62,0x0e] 249 // CHECK: sqdmlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x90,0xa2,0x0e] 250 251 sqdmlal2 v0.4s, v1.8h, v2.8h 252 sqdmlal2 v0.2d, v1.4s, v2.4s 253 254 // CHECK: sqdmlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x90,0x62,0x4e] 255 // CHECK: sqdmlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x90,0xa2,0x4e] 256 257 sqdmlsl v0.4s, v1.4h, v2.4h 258 sqdmlsl v0.2d, v1.2s, v2.2s 259 260 // CHECK: sqdmlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xb0,0x62,0x0e] 261 // CHECK: sqdmlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xb0,0xa2,0x0e] 262 263 sqdmlsl2 v0.4s, v1.8h, v2.8h 264 sqdmlsl2 v0.2d, v1.4s, v2.4s 265 266 // CHECK: sqdmlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xb0,0x62,0x4e] 267 // CHECK: sqdmlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xb0,0xa2,0x4e] 268 269 sqdmull v0.4s, v1.4h, v2.4h 270 sqdmull v0.2d, v1.2s, v2.2s 271 272 // CHECK: sqdmull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xd0,0x62,0x0e] 273 // CHECK: sqdmull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xd0,0xa2,0x0e] 274 275 sqdmull2 v0.4s, v1.8h, v2.8h 276 sqdmull2 v0.2d, v1.4s, v2.4s 277 278 // CHECK: sqdmull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xd0,0x62,0x4e] 279 // CHECK: sqdmull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xd0,0xa2,0x4e] 280 281 //------------------------------------------------------------------------------ 282 // Long - Variant 3 283 //------------------------------------------------------------------------------ 284 285 pmull v0.8h, v1.8b, v2.8b 286 pmull v0.1q, v1.1d, v2.1d 287 288 // CHECK: pmull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xe0,0x22,0x0e] 289 // CHECK: pmull v0.1q, v1.1d, v2.1d // encoding: [0x20,0xe0,0xe2,0x0e] 290 291 pmull2 v0.8h, v1.16b, v2.16b 292 pmull2 v0.1q, v1.2d, v2.2d 293 294 // CHECK: pmull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xe0,0x22,0x4e] 295 // CHECK: pmull2 v0.1q, v1.2d, v2.2d // encoding: [0x20,0xe0,0xe2,0x4e] 296 297 //------------------------------------------------------------------------------ 298 // Widen 299 //------------------------------------------------------------------------------ 300 301 saddw v0.8h, v1.8h, v2.8b 302 saddw v0.4s, v1.4s, v2.4h 303 saddw v0.2d, v1.2d, v2.2s 304 305 // CHECK: saddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x0e] 306 // CHECK: saddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x0e] 307 // CHECK: saddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x0e] 308 309 saddw2 v0.8h, v1.8h, v2.16b 310 saddw2 v0.4s, v1.4s, v2.8h 311 saddw2 v0.2d, v1.2d, v2.4s 312 313 // CHECK: saddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x4e] 314 // CHECK: saddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x4e] 315 // CHECK: saddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x4e] 316 317 uaddw v0.8h, v1.8h, v2.8b 318 uaddw v0.4s, v1.4s, v2.4h 319 uaddw v0.2d, v1.2d, v2.2s 320 321 // CHECK: uaddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x2e] 322 // CHECK: uaddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x2e] 323 // CHECK: uaddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x2e] 324 325 uaddw2 v0.8h, v1.8h, v2.16b 326 uaddw2 v0.4s, v1.4s, v2.8h 327 uaddw2 v0.2d, v1.2d, v2.4s 328 329 // CHECK: uaddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x6e] 330 // CHECK: uaddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x6e] 331 // CHECK: uaddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x6e] 332 333 ssubw v0.8h, v1.8h, v2.8b 334 ssubw v0.4s, v1.4s, v2.4h 335 ssubw v0.2d, v1.2d, v2.2s 336 337 // CHECK: ssubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x0e] 338 // CHECK: ssubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x0e] 339 // CHECK: ssubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x0e] 340 341 ssubw2 v0.8h, v1.8h, v2.16b 342 ssubw2 v0.4s, v1.4s, v2.8h 343 ssubw2 v0.2d, v1.2d, v2.4s 344 345 // CHECK: ssubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x4e] 346 // CHECK: ssubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x4e] 347 // CHECK: ssubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x4e] 348 349 usubw v0.8h, v1.8h, v2.8b 350 usubw v0.4s, v1.4s, v2.4h 351 usubw v0.2d, v1.2d, v2.2s 352 353 // CHECK: usubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x2e] 354 // CHECK: usubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x2e] 355 // CHECK: usubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x2e] 356 357 usubw2 v0.8h, v1.8h, v2.16b 358 usubw2 v0.4s, v1.4s, v2.8h 359 usubw2 v0.2d, v1.2d, v2.4s 360 361 // CHECK: usubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x6e] 362 // CHECK: usubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x6e] 363 // CHECK: usubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x6e] 364 365 //------------------------------------------------------------------------------ 366 // Narrow 367 //------------------------------------------------------------------------------ 368 369 addhn v0.8b, v1.8h, v2.8h 370 addhn v0.4h, v1.4s, v2.4s 371 addhn v0.2s, v1.2d, v2.2d 372 373 // CHECK: addhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x0e] 374 // CHECK: addhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x0e] 375 // CHECK: addhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x0e] 376 377 addhn2 v0.16b, v1.8h, v2.8h 378 addhn2 v0.8h, v1.4s, v2.4s 379 addhn2 v0.4s, v1.2d, v2.2d 380 381 // CHECK: addhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x4e] 382 // CHECK: addhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x4e] 383 // CHECK: addhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x4e] 384 385 raddhn v0.8b, v1.8h, v2.8h 386 raddhn v0.4h, v1.4s, v2.4s 387 raddhn v0.2s, v1.2d, v2.2d 388 389 // CHECK: raddhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x2e] 390 // CHECK: raddhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x2e] 391 // CHECK: raddhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x2e] 392 393 raddhn2 v0.16b, v1.8h, v2.8h 394 raddhn2 v0.8h, v1.4s, v2.4s 395 raddhn2 v0.4s, v1.2d, v2.2d 396 397 // CHECK: raddhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x6e] 398 // CHECK: raddhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x6e] 399 // CHECK: raddhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x6e] 400 401 rsubhn v0.8b, v1.8h, v2.8h 402 rsubhn v0.4h, v1.4s, v2.4s 403 rsubhn v0.2s, v1.2d, v2.2d 404 405 // CHECK: rsubhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x2e] 406 // CHECK: rsubhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x2e] 407 // CHECK: rsubhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x2e] 408 409 rsubhn2 v0.16b, v1.8h, v2.8h 410 rsubhn2 v0.8h, v1.4s, v2.4s 411 rsubhn2 v0.4s, v1.2d, v2.2d 412 413 // CHECK: rsubhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x6e] 414 // CHECK: rsubhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x6e] 415 // CHECK: rsubhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x6e] 416