neon-3vdiff.s revision 13c83a2a09a0842ff57ec020fe3f534de766ccd1
1// RUN: llvm-mc -triple=aarch64-none-linux-gnu -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 287// CHECK: pmull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xe0,0x22,0x0e] 288 289 pmull2 v0.8h, v1.16b, v2.16b 290 291// CHECK: pmull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xe0,0x22,0x4e] 292 293//------------------------------------------------------------------------------ 294// Widen 295//------------------------------------------------------------------------------ 296 297 saddw v0.8h, v1.8h, v2.8b 298 saddw v0.4s, v1.4s, v2.4h 299 saddw v0.2d, v1.2d, v2.2s 300 301// CHECK: saddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x0e] 302// CHECK: saddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x0e] 303// CHECK: saddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x0e] 304 305 saddw2 v0.8h, v1.8h, v2.16b 306 saddw2 v0.4s, v1.4s, v2.8h 307 saddw2 v0.2d, v1.2d, v2.4s 308 309// CHECK: saddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x4e] 310// CHECK: saddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x4e] 311// CHECK: saddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x4e] 312 313 uaddw v0.8h, v1.8h, v2.8b 314 uaddw v0.4s, v1.4s, v2.4h 315 uaddw v0.2d, v1.2d, v2.2s 316 317// CHECK: uaddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x2e] 318// CHECK: uaddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x2e] 319// CHECK: uaddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x2e] 320 321 uaddw2 v0.8h, v1.8h, v2.16b 322 uaddw2 v0.4s, v1.4s, v2.8h 323 uaddw2 v0.2d, v1.2d, v2.4s 324 325// CHECK: uaddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x6e] 326// CHECK: uaddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x6e] 327// CHECK: uaddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x6e] 328 329 ssubw v0.8h, v1.8h, v2.8b 330 ssubw v0.4s, v1.4s, v2.4h 331 ssubw v0.2d, v1.2d, v2.2s 332 333// CHECK: ssubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x0e] 334// CHECK: ssubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x0e] 335// CHECK: ssubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x0e] 336 337 ssubw2 v0.8h, v1.8h, v2.16b 338 ssubw2 v0.4s, v1.4s, v2.8h 339 ssubw2 v0.2d, v1.2d, v2.4s 340 341// CHECK: ssubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x4e] 342// CHECK: ssubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x4e] 343// CHECK: ssubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x4e] 344 345 usubw v0.8h, v1.8h, v2.8b 346 usubw v0.4s, v1.4s, v2.4h 347 usubw v0.2d, v1.2d, v2.2s 348 349// CHECK: usubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x2e] 350// CHECK: usubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x2e] 351// CHECK: usubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x2e] 352 353 usubw2 v0.8h, v1.8h, v2.16b 354 usubw2 v0.4s, v1.4s, v2.8h 355 usubw2 v0.2d, v1.2d, v2.4s 356 357// CHECK: usubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x6e] 358// CHECK: usubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x6e] 359// CHECK: usubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x6e] 360 361//------------------------------------------------------------------------------ 362// Narrow 363//------------------------------------------------------------------------------ 364 365 addhn v0.8b, v1.8h, v2.8h 366 addhn v0.4h, v1.4s, v2.4s 367 addhn v0.2s, v1.2d, v2.2d 368 369// CHECK: addhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x0e] 370// CHECK: addhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x0e] 371// CHECK: addhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x0e] 372 373 addhn2 v0.16b, v1.8h, v2.8h 374 addhn2 v0.8h, v1.4s, v2.4s 375 addhn2 v0.4s, v1.2d, v2.2d 376 377// CHECK: addhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x4e] 378// CHECK: addhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x4e] 379// CHECK: addhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x4e] 380 381 raddhn v0.8b, v1.8h, v2.8h 382 raddhn v0.4h, v1.4s, v2.4s 383 raddhn v0.2s, v1.2d, v2.2d 384 385// CHECK: raddhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x2e] 386// CHECK: raddhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x2e] 387// CHECK: raddhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x2e] 388 389 raddhn2 v0.16b, v1.8h, v2.8h 390 raddhn2 v0.8h, v1.4s, v2.4s 391 raddhn2 v0.4s, v1.2d, v2.2d 392 393// CHECK: raddhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x6e] 394// CHECK: raddhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x6e] 395// CHECK: raddhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x6e] 396 397 rsubhn v0.8b, v1.8h, v2.8h 398 rsubhn v0.4h, v1.4s, v2.4s 399 rsubhn v0.2s, v1.2d, v2.2d 400 401// CHECK: rsubhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x2e] 402// CHECK: rsubhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x2e] 403// CHECK: rsubhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x2e] 404 405 rsubhn2 v0.16b, v1.8h, v2.8h 406 rsubhn2 v0.8h, v1.4s, v2.4s 407 rsubhn2 v0.4s, v1.2d, v2.2d 408 409// CHECK: rsubhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x6e] 410// CHECK: rsubhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x6e] 411// CHECK: rsubhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x6e] 412