416 lines · plain
1// RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+crypto -mattr=+neon -show-encoding < %s | FileCheck %s2 3// Check that the assembler can handle the documented syntax for AArch644 5//------------------------------------------------------------------------------6// Instructions with 3 different vector data types7//------------------------------------------------------------------------------8 9//------------------------------------------------------------------------------10// Long11//------------------------------------------------------------------------------12 13//------------------------------------------------------------------------------14// Long - Variant 115//------------------------------------------------------------------------------16 17 saddl v0.8h, v1.8b, v2.8b18 saddl v0.4s, v1.4h, v2.4h19 saddl v0.2d, v1.2s, v2.2s20 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.8h26 saddl2 v0.8h, v1.16b, v2.16b27 saddl2 v0.2d, v1.4s, v2.4s28 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.8b34 uaddl v0.4s, v1.4h, v2.4h35 uaddl v0.2d, v1.2s, v2.2s36 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.16b42 uaddl2 v0.4s, v1.8h, v2.8h43 uaddl2 v0.2d, v1.4s, v2.4s44 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.8b50 ssubl v0.4s, v1.4h, v2.4h51 ssubl v0.2d, v1.2s, v2.2s52 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.16b58 ssubl2 v0.4s, v1.8h, v2.8h59 ssubl2 v0.2d, v1.4s, v2.4s60 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.8b66 usubl v0.4s, v1.4h, v2.4h67 usubl v0.2d, v1.2s, v2.2s68 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.16b74 usubl2 v0.4s, v1.8h, v2.8h75 usubl2 v0.2d, v1.4s, v2.4s76 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.8b82 sabal v0.4s, v1.4h, v2.4h83 sabal v0.2d, v1.2s, v2.2s84 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.16b90 sabal2 v0.4s, v1.8h, v2.8h91 sabal2 v0.2d, v1.4s, v2.4s92 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.8b98 uabal v0.4s, v1.4h, v2.4h99 uabal v0.2d, v1.2s, v2.2s100 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.16b106 uabal2 v0.4s, v1.8h, v2.8h107 uabal2 v0.2d, v1.4s, v2.4s108 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.8b114 sabdl v0.4s, v1.4h, v2.4h115 sabdl v0.2d, v1.2s, v2.2s116 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.16b122 sabdl2 v0.4s, v1.8h, v2.8h123 sabdl2 v0.2d, v1.4s, v2.4s124 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.8b130 uabdl v0.4s, v1.4h, v2.4h131 uabdl v0.2d, v1.2s, v2.2s132 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.16b138 uabdl2 v0.4s, v1.8h, v2.8h139 uabdl2 v0.2d, v1.4s, v2.4s140 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.8b146 smlal v0.4s, v1.4h, v2.4h147 smlal v0.2d, v1.2s, v2.2s148 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.16b154 smlal2 v0.4s, v1.8h, v2.8h155 smlal2 v0.2d, v1.4s, v2.4s156 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.8b162 umlal v0.4s, v1.4h, v2.4h163 umlal v0.2d, v1.2s, v2.2s164 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.16b170 umlal2 v0.4s, v1.8h, v2.8h171 umlal2 v0.2d, v1.4s, v2.4s172 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.8b178 smlsl v0.4s, v1.4h, v2.4h179 smlsl v0.2d, v1.2s, v2.2s180 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.16b186 smlsl2 v0.4s, v1.8h, v2.8h187 smlsl2 v0.2d, v1.4s, v2.4s188 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.8b194 umlsl v0.4s, v1.4h, v2.4h195 umlsl v0.2d, v1.2s, v2.2s196 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.16b202 umlsl2 v0.4s, v1.8h, v2.8h203 umlsl2 v0.2d, v1.4s, v2.4s204 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.8b210 smull v0.4s, v1.4h, v2.4h211 smull v0.2d, v1.2s, v2.2s212 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.16b218 smull2 v0.4s, v1.8h, v2.8h219 smull2 v0.2d, v1.4s, v2.4s220 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.8b226 umull v0.4s, v1.4h, v2.4h227 umull v0.2d, v1.2s, v2.2s228 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.16b234 umull2 v0.4s, v1.8h, v2.8h235 umull2 v0.2d, v1.4s, v2.4s236 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 2243//------------------------------------------------------------------------------244 245 sqdmlal v0.4s, v1.4h, v2.4h246 sqdmlal v0.2d, v1.2s, v2.2s247 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.8h252 sqdmlal2 v0.2d, v1.4s, v2.4s253 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.4h258 sqdmlsl v0.2d, v1.2s, v2.2s259 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.8h264 sqdmlsl2 v0.2d, v1.4s, v2.4s265 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.4h270 sqdmull v0.2d, v1.2s, v2.2s271 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.8h276 sqdmull2 v0.2d, v1.4s, v2.4s277 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 3283//------------------------------------------------------------------------------284 285 pmull v0.8h, v1.8b, v2.8b286 pmull v0.1q, v1.1d, v2.1d287 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.16b292 pmull2 v0.1q, v1.2d, v2.2d293 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// Widen299//------------------------------------------------------------------------------300 301 saddw v0.8h, v1.8h, v2.8b302 saddw v0.4s, v1.4s, v2.4h303 saddw v0.2d, v1.2d, v2.2s304 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.16b310 saddw2 v0.4s, v1.4s, v2.8h311 saddw2 v0.2d, v1.2d, v2.4s312 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.8b318 uaddw v0.4s, v1.4s, v2.4h319 uaddw v0.2d, v1.2d, v2.2s320 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.16b326 uaddw2 v0.4s, v1.4s, v2.8h327 uaddw2 v0.2d, v1.2d, v2.4s328 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.8b334 ssubw v0.4s, v1.4s, v2.4h335 ssubw v0.2d, v1.2d, v2.2s336 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.16b342 ssubw2 v0.4s, v1.4s, v2.8h343 ssubw2 v0.2d, v1.2d, v2.4s344 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.8b350 usubw v0.4s, v1.4s, v2.4h351 usubw v0.2d, v1.2d, v2.2s352 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.16b358 usubw2 v0.4s, v1.4s, v2.8h359 usubw2 v0.2d, v1.2d, v2.4s360 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// Narrow367//------------------------------------------------------------------------------368 369 addhn v0.8b, v1.8h, v2.8h370 addhn v0.4h, v1.4s, v2.4s371 addhn v0.2s, v1.2d, v2.2d372 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.8h378 addhn2 v0.8h, v1.4s, v2.4s379 addhn2 v0.4s, v1.2d, v2.2d380 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.8h386 raddhn v0.4h, v1.4s, v2.4s387 raddhn v0.2s, v1.2d, v2.2d388 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.8h394 raddhn2 v0.8h, v1.4s, v2.4s395 raddhn2 v0.4s, v1.2d, v2.2d396 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.8h402 rsubhn v0.4h, v1.4s, v2.4s403 rsubhn v0.2s, v1.2d, v2.2d404 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.8h410 rsubhn2 v0.8h, v1.4s, v2.4s411 rsubhn2 v0.4s, v1.2d, v2.2d412 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