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