mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
29f94c7201
This commit starts with a "git mv ARM64 AArch64" and continues out from there, renaming the C++ classes, intrinsics, and other target-local objects for consistency. "ARM64" test directories are also moved, and tests that began their life in ARM64 use an arm64 triple, those from AArch64 use an aarch64 triple. Both should be equivalent though. This finishes the AArch64 merge, and everyone should feel free to continue committing as normal now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209577 91177308-0d34-0410-b5e6-96231b3b80d8
416 lines
17 KiB
ArmAsm
416 lines
17 KiB
ArmAsm
// RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+crypto -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]
|