// RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s // Check that the assembler can handle the documented syntax for AArch64 //------------------------------------------------------------------------------ // Instructions with 3 different vector data types //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ // Long //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ // Long - Variant 1 //------------------------------------------------------------------------------ saddl v0.8h, v1.8b, v2.8b saddl v0.4s, v1.4h, v2.4h saddl v0.2d, v1.2s, v2.2s // CHECK: saddl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x00,0x22,0x0e] // CHECK: saddl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x00,0x62,0x0e] // CHECK: saddl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x00,0xa2,0x0e] saddl2 v0.4s, v1.8h, v2.8h saddl2 v0.8h, v1.16b, v2.16b saddl2 v0.2d, v1.4s, v2.4s // CHECK: saddl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x00,0x62,0x4e] // CHECK: saddl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x00,0x22,0x4e] // CHECK: saddl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x00,0xa2,0x4e] uaddl v0.8h, v1.8b, v2.8b uaddl v0.4s, v1.4h, v2.4h uaddl v0.2d, v1.2s, v2.2s // CHECK: uaddl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x00,0x22,0x2e] // CHECK: uaddl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x00,0x62,0x2e] // CHECK: uaddl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x00,0xa2,0x2e] uaddl2 v0.8h, v1.16b, v2.16b uaddl2 v0.4s, v1.8h, v2.8h uaddl2 v0.2d, v1.4s, v2.4s // CHECK: uaddl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x00,0x22,0x6e] // CHECK: uaddl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x00,0x62,0x6e] // CHECK: uaddl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x00,0xa2,0x6e] ssubl v0.8h, v1.8b, v2.8b ssubl v0.4s, v1.4h, v2.4h ssubl v0.2d, v1.2s, v2.2s // CHECK: ssubl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x20,0x22,0x0e] // CHECK: ssubl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x20,0x62,0x0e] // CHECK: ssubl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x20,0xa2,0x0e] ssubl2 v0.8h, v1.16b, v2.16b ssubl2 v0.4s, v1.8h, v2.8h ssubl2 v0.2d, v1.4s, v2.4s // CHECK: ssubl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x20,0x22,0x4e] // CHECK: ssubl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x20,0x62,0x4e] // CHECK: ssubl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x20,0xa2,0x4e] usubl v0.8h, v1.8b, v2.8b usubl v0.4s, v1.4h, v2.4h usubl v0.2d, v1.2s, v2.2s // CHECK: usubl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x20,0x22,0x2e] // CHECK: usubl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x20,0x62,0x2e] // CHECK: usubl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x20,0xa2,0x2e] usubl2 v0.8h, v1.16b, v2.16b usubl2 v0.4s, v1.8h, v2.8h usubl2 v0.2d, v1.4s, v2.4s // CHECK: usubl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x20,0x22,0x6e] // CHECK: usubl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x20,0x62,0x6e] // CHECK: usubl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x20,0xa2,0x6e] sabal v0.8h, v1.8b, v2.8b sabal v0.4s, v1.4h, v2.4h sabal v0.2d, v1.2s, v2.2s // CHECK: sabal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x50,0x22,0x0e] // CHECK: sabal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x50,0x62,0x0e] // CHECK: sabal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x50,0xa2,0x0e] sabal2 v0.8h, v1.16b, v2.16b sabal2 v0.4s, v1.8h, v2.8h sabal2 v0.2d, v1.4s, v2.4s // CHECK: sabal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x50,0x22,0x4e] // CHECK: sabal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x50,0x62,0x4e] // CHECK: sabal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x50,0xa2,0x4e] uabal v0.8h, v1.8b, v2.8b uabal v0.4s, v1.4h, v2.4h uabal v0.2d, v1.2s, v2.2s // CHECK: uabal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x50,0x22,0x2e] // CHECK: uabal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x50,0x62,0x2e] // CHECK: uabal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x50,0xa2,0x2e] uabal2 v0.8h, v1.16b, v2.16b uabal2 v0.4s, v1.8h, v2.8h uabal2 v0.2d, v1.4s, v2.4s // CHECK: uabal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x50,0x22,0x6e] // CHECK: uabal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x50,0x62,0x6e] // CHECK: uabal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x50,0xa2,0x6e] sabdl v0.8h, v1.8b, v2.8b sabdl v0.4s, v1.4h, v2.4h sabdl v0.2d, v1.2s, v2.2s // CHECK: sabdl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x70,0x22,0x0e] // CHECK: sabdl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x70,0x62,0x0e] // CHECK: sabdl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x70,0xa2,0x0e] sabdl2 v0.8h, v1.16b, v2.16b sabdl2 v0.4s, v1.8h, v2.8h sabdl2 v0.2d, v1.4s, v2.4s // CHECK: sabdl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x70,0x22,0x4e] // CHECK: sabdl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x70,0x62,0x4e] // CHECK: sabdl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x70,0xa2,0x4e] uabdl v0.8h, v1.8b, v2.8b uabdl v0.4s, v1.4h, v2.4h uabdl v0.2d, v1.2s, v2.2s // CHECK: uabdl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x70,0x22,0x2e] // CHECK: uabdl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x70,0x62,0x2e] // CHECK: uabdl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x70,0xa2,0x2e] uabdl2 v0.8h, v1.16b, v2.16b uabdl2 v0.4s, v1.8h, v2.8h uabdl2 v0.2d, v1.4s, v2.4s // CHECK: uabdl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x70,0x22,0x6e] // CHECK: uabdl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x70,0x62,0x6e] // CHECK: uabdl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x70,0xa2,0x6e] smlal v0.8h, v1.8b, v2.8b smlal v0.4s, v1.4h, v2.4h smlal v0.2d, v1.2s, v2.2s // CHECK: smlal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x80,0x22,0x0e] // CHECK: smlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x80,0x62,0x0e] // CHECK: smlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x80,0xa2,0x0e] smlal2 v0.8h, v1.16b, v2.16b smlal2 v0.4s, v1.8h, v2.8h smlal2 v0.2d, v1.4s, v2.4s // CHECK: smlal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x80,0x22,0x4e] // CHECK: smlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x80,0x62,0x4e] // CHECK: smlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x80,0xa2,0x4e] umlal v0.8h, v1.8b, v2.8b umlal v0.4s, v1.4h, v2.4h umlal v0.2d, v1.2s, v2.2s // CHECK: umlal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x80,0x22,0x2e] // CHECK: umlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x80,0x62,0x2e] // CHECK: umlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x80,0xa2,0x2e] umlal2 v0.8h, v1.16b, v2.16b umlal2 v0.4s, v1.8h, v2.8h umlal2 v0.2d, v1.4s, v2.4s // CHECK: umlal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x80,0x22,0x6e] // CHECK: umlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x80,0x62,0x6e] // CHECK: umlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x80,0xa2,0x6e] smlsl v0.8h, v1.8b, v2.8b smlsl v0.4s, v1.4h, v2.4h smlsl v0.2d, v1.2s, v2.2s // CHECK: smlsl v0.8h, v1.8b, v2.8b // encoding: [0x20,0xa0,0x22,0x0e] // CHECK: smlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xa0,0x62,0x0e] // CHECK: smlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xa0,0xa2,0x0e] smlsl2 v0.8h, v1.16b, v2.16b smlsl2 v0.4s, v1.8h, v2.8h smlsl2 v0.2d, v1.4s, v2.4s // CHECK: smlsl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xa0,0x22,0x4e] // CHECK: smlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xa0,0x62,0x4e] // CHECK: smlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xa0,0xa2,0x4e] umlsl v0.8h, v1.8b, v2.8b umlsl v0.4s, v1.4h, v2.4h umlsl v0.2d, v1.2s, v2.2s // CHECK: umlsl v0.8h, v1.8b, v2.8b // encoding: [0x20,0xa0,0x22,0x2e] // CHECK: umlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xa0,0x62,0x2e] // CHECK: umlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xa0,0xa2,0x2e] umlsl2 v0.8h, v1.16b, v2.16b umlsl2 v0.4s, v1.8h, v2.8h umlsl2 v0.2d, v1.4s, v2.4s // CHECK: umlsl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xa0,0x22,0x6e] // CHECK: umlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xa0,0x62,0x6e] // CHECK: umlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xa0,0xa2,0x6e] smull v0.8h, v1.8b, v2.8b smull v0.4s, v1.4h, v2.4h smull v0.2d, v1.2s, v2.2s // CHECK: smull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xc0,0x22,0x0e] // CHECK: smull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xc0,0x62,0x0e] // CHECK: smull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xc0,0xa2,0x0e] smull2 v0.8h, v1.16b, v2.16b smull2 v0.4s, v1.8h, v2.8h smull2 v0.2d, v1.4s, v2.4s // CHECK: smull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xc0,0x22,0x4e] // CHECK: smull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xc0,0x62,0x4e] // CHECK: smull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xc0,0xa2,0x4e] umull v0.8h, v1.8b, v2.8b umull v0.4s, v1.4h, v2.4h umull v0.2d, v1.2s, v2.2s // CHECK: umull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xc0,0x22,0x2e] // CHECK: umull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xc0,0x62,0x2e] // CHECK: umull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xc0,0xa2,0x2e] umull2 v0.8h, v1.16b, v2.16b umull2 v0.4s, v1.8h, v2.8h umull2 v0.2d, v1.4s, v2.4s // CHECK: umull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xc0,0x22,0x6e] // CHECK: umull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xc0,0x62,0x6e] // CHECK: umull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xc0,0xa2,0x6e] //------------------------------------------------------------------------------ // Long - Variant 2 //------------------------------------------------------------------------------ sqdmlal v0.4s, v1.4h, v2.4h sqdmlal v0.2d, v1.2s, v2.2s // CHECK: sqdmlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x90,0x62,0x0e] // CHECK: sqdmlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x90,0xa2,0x0e] sqdmlal2 v0.4s, v1.8h, v2.8h sqdmlal2 v0.2d, v1.4s, v2.4s // CHECK: sqdmlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x90,0x62,0x4e] // CHECK: sqdmlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x90,0xa2,0x4e] sqdmlsl v0.4s, v1.4h, v2.4h sqdmlsl v0.2d, v1.2s, v2.2s // CHECK: sqdmlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xb0,0x62,0x0e] // CHECK: sqdmlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xb0,0xa2,0x0e] sqdmlsl2 v0.4s, v1.8h, v2.8h sqdmlsl2 v0.2d, v1.4s, v2.4s // CHECK: sqdmlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xb0,0x62,0x4e] // CHECK: sqdmlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xb0,0xa2,0x4e] sqdmull v0.4s, v1.4h, v2.4h sqdmull v0.2d, v1.2s, v2.2s // CHECK: sqdmull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xd0,0x62,0x0e] // CHECK: sqdmull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xd0,0xa2,0x0e] sqdmull2 v0.4s, v1.8h, v2.8h sqdmull2 v0.2d, v1.4s, v2.4s // CHECK: sqdmull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xd0,0x62,0x4e] // CHECK: sqdmull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xd0,0xa2,0x4e] //------------------------------------------------------------------------------ // Long - Variant 3 //------------------------------------------------------------------------------ pmull v0.8h, v1.8b, v2.8b pmull v0.1q, v1.1d, v2.1d // CHECK: pmull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xe0,0x22,0x0e] // CHECK: pmull v0.1q, v1.1d, v2.1d // encoding: [0x20,0xe0,0xe2,0x0e] pmull2 v0.8h, v1.16b, v2.16b pmull2 v0.1q, v1.2d, v2.2d // CHECK: pmull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xe0,0x22,0x4e] // CHECK: pmull2 v0.1q, v1.2d, v2.2d // encoding: [0x20,0xe0,0xe2,0x4e] //------------------------------------------------------------------------------ // Widen //------------------------------------------------------------------------------ saddw v0.8h, v1.8h, v2.8b saddw v0.4s, v1.4s, v2.4h saddw v0.2d, v1.2d, v2.2s // CHECK: saddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x0e] // CHECK: saddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x0e] // CHECK: saddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x0e] saddw2 v0.8h, v1.8h, v2.16b saddw2 v0.4s, v1.4s, v2.8h saddw2 v0.2d, v1.2d, v2.4s // CHECK: saddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x4e] // CHECK: saddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x4e] // CHECK: saddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x4e] uaddw v0.8h, v1.8h, v2.8b uaddw v0.4s, v1.4s, v2.4h uaddw v0.2d, v1.2d, v2.2s // CHECK: uaddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x2e] // CHECK: uaddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x2e] // CHECK: uaddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x2e] uaddw2 v0.8h, v1.8h, v2.16b uaddw2 v0.4s, v1.4s, v2.8h uaddw2 v0.2d, v1.2d, v2.4s // CHECK: uaddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x6e] // CHECK: uaddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x6e] // CHECK: uaddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x6e] ssubw v0.8h, v1.8h, v2.8b ssubw v0.4s, v1.4s, v2.4h ssubw v0.2d, v1.2d, v2.2s // CHECK: ssubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x0e] // CHECK: ssubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x0e] // CHECK: ssubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x0e] ssubw2 v0.8h, v1.8h, v2.16b ssubw2 v0.4s, v1.4s, v2.8h ssubw2 v0.2d, v1.2d, v2.4s // CHECK: ssubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x4e] // CHECK: ssubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x4e] // CHECK: ssubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x4e] usubw v0.8h, v1.8h, v2.8b usubw v0.4s, v1.4s, v2.4h usubw v0.2d, v1.2d, v2.2s // CHECK: usubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x2e] // CHECK: usubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x2e] // CHECK: usubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x2e] usubw2 v0.8h, v1.8h, v2.16b usubw2 v0.4s, v1.4s, v2.8h usubw2 v0.2d, v1.2d, v2.4s // CHECK: usubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x6e] // CHECK: usubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x6e] // CHECK: usubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x6e] //------------------------------------------------------------------------------ // Narrow //------------------------------------------------------------------------------ addhn v0.8b, v1.8h, v2.8h addhn v0.4h, v1.4s, v2.4s addhn v0.2s, v1.2d, v2.2d // CHECK: addhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x0e] // CHECK: addhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x0e] // CHECK: addhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x0e] addhn2 v0.16b, v1.8h, v2.8h addhn2 v0.8h, v1.4s, v2.4s addhn2 v0.4s, v1.2d, v2.2d // CHECK: addhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x4e] // CHECK: addhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x4e] // CHECK: addhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x4e] raddhn v0.8b, v1.8h, v2.8h raddhn v0.4h, v1.4s, v2.4s raddhn v0.2s, v1.2d, v2.2d // CHECK: raddhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x2e] // CHECK: raddhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x2e] // CHECK: raddhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x2e] raddhn2 v0.16b, v1.8h, v2.8h raddhn2 v0.8h, v1.4s, v2.4s raddhn2 v0.4s, v1.2d, v2.2d // CHECK: raddhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x6e] // CHECK: raddhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x6e] // CHECK: raddhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x6e] rsubhn v0.8b, v1.8h, v2.8h rsubhn v0.4h, v1.4s, v2.4s rsubhn v0.2s, v1.2d, v2.2d // CHECK: rsubhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x2e] // CHECK: rsubhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x2e] // CHECK: rsubhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x2e] rsubhn2 v0.16b, v1.8h, v2.8h rsubhn2 v0.8h, v1.4s, v2.4s rsubhn2 v0.4s, v1.2d, v2.2d // CHECK: rsubhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x6e] // CHECK: rsubhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x6e] // CHECK: rsubhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x6e]