diff options
Diffstat (limited to 'test/MC/Disassembler/ARM64/scalar-fp.txt')
-rw-r--r-- | test/MC/Disassembler/ARM64/scalar-fp.txt | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/test/MC/Disassembler/ARM64/scalar-fp.txt b/test/MC/Disassembler/ARM64/scalar-fp.txt new file mode 100644 index 0000000..b242df5 --- /dev/null +++ b/test/MC/Disassembler/ARM64/scalar-fp.txt @@ -0,0 +1,255 @@ +# RUN: llvm-mc -triple arm64-apple-darwin --disassemble < %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, #1.250000e-01 +# CHECK: fmov d1, #1.250000e-01 +# CHECK: fmov d1, #-4.843750e-01 +# CHECK: fmov d1, #4.843750e-01 + +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] + |