mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-21 00:32:23 +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
256 lines
5.0 KiB
Plaintext
256 lines
5.0 KiB
Plaintext
# RUN: llvm-mc -triple arm64-apple-darwin -mattr=neon --disassemble -output-asm-variant=1 < %s | FileCheck %s
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Floating-point arithmetic
|
|
#-----------------------------------------------------------------------------
|
|
|
|
0x41 0xc0 0x20 0x1e
|
|
0x41 0xc0 0x60 0x1e
|
|
|
|
# CHECK: fabs s1, s2
|
|
# CHECK: fabs d1, d2
|
|
|
|
0x41 0x28 0x23 0x1e
|
|
0x41 0x28 0x63 0x1e
|
|
|
|
# CHECK: fadd s1, s2, s3
|
|
# CHECK: fadd d1, d2, d3
|
|
|
|
0x41 0x18 0x23 0x1e
|
|
0x41 0x18 0x63 0x1e
|
|
|
|
# CHECK: fdiv s1, s2, s3
|
|
# CHECK: fdiv d1, d2, d3
|
|
|
|
0x41 0x10 0x03 0x1f
|
|
0x41 0x10 0x43 0x1f
|
|
|
|
# CHECK: fmadd s1, s2, s3, s4
|
|
# CHECK: fmadd d1, d2, d3, d4
|
|
|
|
0x41 0x48 0x23 0x1e
|
|
0x41 0x48 0x63 0x1e
|
|
0x41 0x68 0x23 0x1e
|
|
0x41 0x68 0x63 0x1e
|
|
|
|
# CHECK: fmax s1, s2, s3
|
|
# CHECK: fmax d1, d2, d3
|
|
# CHECK: fmaxnm s1, s2, s3
|
|
# CHECK: fmaxnm d1, d2, d3
|
|
|
|
0x41 0x58 0x23 0x1e
|
|
0x41 0x58 0x63 0x1e
|
|
0x41 0x78 0x23 0x1e
|
|
0x41 0x78 0x63 0x1e
|
|
|
|
# CHECK: fmin s1, s2, s3
|
|
# CHECK: fmin d1, d2, d3
|
|
# CHECK: fminnm s1, s2, s3
|
|
# CHECK: fminnm d1, d2, d3
|
|
|
|
0x41 0x90 0x03 0x1f
|
|
0x41 0x90 0x43 0x1f
|
|
|
|
# CHECK: fmsub s1, s2, s3, s4
|
|
# CHECK: fmsub d1, d2, d3, d4
|
|
|
|
0x41 0x08 0x23 0x1e
|
|
0x41 0x08 0x63 0x1e
|
|
|
|
# CHECK: fmul s1, s2, s3
|
|
# CHECK: fmul d1, d2, d3
|
|
|
|
0x41 0x40 0x21 0x1e
|
|
0x41 0x40 0x61 0x1e
|
|
|
|
# CHECK: fneg s1, s2
|
|
# CHECK: fneg d1, d2
|
|
|
|
0x41 0x10 0x23 0x1f
|
|
0x41 0x10 0x63 0x1f
|
|
|
|
# CHECK: fnmadd s1, s2, s3, s4
|
|
# CHECK: fnmadd d1, d2, d3, d4
|
|
|
|
0x41 0x90 0x23 0x1f
|
|
0x41 0x90 0x63 0x1f
|
|
|
|
# CHECK: fnmsub s1, s2, s3, s4
|
|
# CHECK: fnmsub d1, d2, d3, d4
|
|
|
|
0x41 0x88 0x23 0x1e
|
|
0x41 0x88 0x63 0x1e
|
|
|
|
# CHECK: fnmul s1, s2, s3
|
|
# CHECK: fnmul d1, d2, d3
|
|
|
|
0x41 0xc0 0x21 0x1e
|
|
0x41 0xc0 0x61 0x1e
|
|
|
|
# CHECK: fsqrt s1, s2
|
|
# CHECK: fsqrt d1, d2
|
|
|
|
0x41 0x38 0x23 0x1e
|
|
0x41 0x38 0x63 0x1e
|
|
|
|
# CHECK: fsub s1, s2, s3
|
|
# CHECK: fsub d1, d2, d3
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Floating-point comparison
|
|
#-----------------------------------------------------------------------------
|
|
|
|
0x20 0x04 0x22 0x1e
|
|
0x20 0x04 0x62 0x1e
|
|
0x30 0x04 0x22 0x1e
|
|
0x30 0x04 0x62 0x1e
|
|
|
|
# CHECK: fccmp s1, s2, #0, eq
|
|
# CHECK: fccmp d1, d2, #0, eq
|
|
# CHECK: fccmpe s1, s2, #0, eq
|
|
# CHECK: fccmpe d1, d2, #0, eq
|
|
|
|
0x20 0x20 0x22 0x1e
|
|
0x20 0x20 0x62 0x1e
|
|
0x28 0x20 0x20 0x1e
|
|
0x28 0x20 0x60 0x1e
|
|
0x30 0x20 0x22 0x1e
|
|
0x30 0x20 0x62 0x1e
|
|
0x38 0x20 0x20 0x1e
|
|
0x38 0x20 0x60 0x1e
|
|
|
|
# CHECK: fcmp s1, s2
|
|
# CHECK: fcmp d1, d2
|
|
# CHECK: fcmp s1, #0.0
|
|
# CHECK: fcmp d1, #0.0
|
|
# CHECK: fcmpe s1, s2
|
|
# CHECK: fcmpe d1, d2
|
|
# CHECK: fcmpe s1, #0.0
|
|
# CHECK: fcmpe d1, #0.0
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Floating-point conditional select
|
|
#-----------------------------------------------------------------------------
|
|
|
|
0x41 0x0c 0x23 0x1e
|
|
0x41 0x0c 0x63 0x1e
|
|
|
|
# CHECK: fcsel s1, s2, s3, eq
|
|
# CHECK: fcsel d1, d2, d3, eq
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Floating-point convert
|
|
#-----------------------------------------------------------------------------
|
|
|
|
0x41 0xc0 0x63 0x1e
|
|
0x41 0x40 0x62 0x1e
|
|
0x41 0xc0 0xe2 0x1e
|
|
0x41 0x40 0xe2 0x1e
|
|
0x41 0xc0 0x22 0x1e
|
|
0x41 0xc0 0x23 0x1e
|
|
|
|
# CHECK: fcvt h1, d2
|
|
# CHECK: fcvt s1, d2
|
|
# CHECK: fcvt d1, h2
|
|
# CHECK: fcvt s1, h2
|
|
# CHECK: fcvt d1, s2
|
|
# CHECK: fcvt h1, s2
|
|
|
|
0x41 0x00 0x44 0x1e
|
|
0x41 0x04 0x44 0x1e
|
|
0x41 0x00 0x44 0x9e
|
|
0x41 0x04 0x44 0x9e
|
|
0x41 0x00 0x04 0x1e
|
|
0x41 0x04 0x04 0x1e
|
|
0x41 0x00 0x04 0x9e
|
|
0x41 0x04 0x04 0x9e
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Floating-point move
|
|
#-----------------------------------------------------------------------------
|
|
|
|
0x41 0x00 0x27 0x1e
|
|
0x41 0x00 0x26 0x1e
|
|
0x41 0x00 0x67 0x9e
|
|
0x41 0x00 0x66 0x9e
|
|
|
|
# CHECK: fmov s1, w2
|
|
# CHECK: fmov w1, s2
|
|
# CHECK: fmov d1, x2
|
|
# CHECK: fmov x1, d2
|
|
|
|
0x01 0x10 0x28 0x1e
|
|
0x01 0x10 0x68 0x1e
|
|
0x01 0xf0 0x7b 0x1e
|
|
0x01 0xf0 0x6b 0x1e
|
|
|
|
# CHECK: fmov s1, #0.12500000
|
|
# CHECK: fmov d1, #0.12500000
|
|
# CHECK: fmov d1, #-0.48437500
|
|
# CHECK: fmov d1, #0.48437500
|
|
|
|
0x41 0x40 0x20 0x1e
|
|
0x41 0x40 0x60 0x1e
|
|
|
|
# CHECK: fmov s1, s2
|
|
# CHECK: fmov d1, d2
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Floating-point round to integral
|
|
#-----------------------------------------------------------------------------
|
|
|
|
0x41 0x40 0x26 0x1e
|
|
0x41 0x40 0x66 0x1e
|
|
|
|
# CHECK: frinta s1, s2
|
|
# CHECK: frinta d1, d2
|
|
|
|
0x41 0xc0 0x27 0x1e
|
|
0x41 0xc0 0x67 0x1e
|
|
|
|
# CHECK: frinti s1, s2
|
|
# CHECK: frinti d1, d2
|
|
|
|
0x41 0x40 0x25 0x1e
|
|
0x41 0x40 0x65 0x1e
|
|
|
|
# CHECK: frintm s1, s2
|
|
# CHECK: frintm d1, d2
|
|
|
|
0x41 0x40 0x24 0x1e
|
|
0x41 0x40 0x64 0x1e
|
|
|
|
# CHECK: frintn s1, s2
|
|
# CHECK: frintn d1, d2
|
|
|
|
0x41 0xc0 0x24 0x1e
|
|
0x41 0xc0 0x64 0x1e
|
|
|
|
# CHECK: frintp s1, s2
|
|
# CHECK: frintp d1, d2
|
|
|
|
0x41 0x40 0x27 0x1e
|
|
0x41 0x40 0x67 0x1e
|
|
|
|
# CHECK: frintx s1, s2
|
|
# CHECK: frintx d1, d2
|
|
|
|
0x41 0xc0 0x25 0x1e
|
|
0x41 0xc0 0x65 0x1e
|
|
|
|
# CHECK: frintz s1, s2
|
|
# CHECK: frintz d1, d2
|
|
|
|
0x00 0x3c 0xe0 0x7e
|
|
0x00 0x8c 0xe0 0x5e
|
|
|
|
# CHECK: cmhs d0, d0, d0
|
|
# CHECK: cmtst d0, d0, d0
|
|
|
|
0x00 0x00 0xaf 0x9e
|
|
0x00 0x00 0xae 0x9e
|
|
|
|
# CHECK: fmov.d v0[1], x0
|
|
# CHECK: fmov.d x0, v0[1]
|
|
|