mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
52f60f81d9
It's been decided that in the future, the floating-point immediate in instructions like "fcmeq v0.2s, v1.2s, #0.0" will be canonically "0.0", which has been implemented on AArch64 already but not ARM64. This fixes that issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207666 91177308-0d34-0410-b5e6-96231b3b80d8
125 lines
5.1 KiB
ArmAsm
125 lines
5.1 KiB
ArmAsm
// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
|
|
// RUN: llvm-mc -triple arm64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
|
|
|
|
// Check that the assembler can handle the documented syntax for AArch64
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Compare Mask Equal
|
|
//----------------------------------------------------------------------
|
|
|
|
fcmeq s10, s11, s12
|
|
fcmeq d20, d21, d22
|
|
|
|
// CHECK: fcmeq s10, s11, s12 // encoding: [0x6a,0xe5,0x2c,0x5e]
|
|
// CHECK: fcmeq d20, d21, d22 // encoding: [0xb4,0xe6,0x76,0x5e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Compare Mask Equal To Zero
|
|
//----------------------------------------------------------------------
|
|
|
|
fcmeq s10, s11, #0.0
|
|
fcmeq d20, d21, #0.0
|
|
fcmeq s10, s11, #0
|
|
fcmeq d20, d21, #0x0
|
|
|
|
// CHECK: fcmeq s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x5e]
|
|
// CHECK: fcmeq d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x5e]
|
|
// CHECK: fcmeq s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x5e]
|
|
// CHECK: fcmeq d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x5e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Compare Mask Greater Than Or Equal
|
|
//----------------------------------------------------------------------
|
|
|
|
fcmge s10, s11, s12
|
|
fcmge d20, d21, d22
|
|
|
|
// CHECK: fcmge s10, s11, s12 // encoding: [0x6a,0xe5,0x2c,0x7e]
|
|
// CHECK: fcmge d20, d21, d22 // encoding: [0xb4,0xe6,0x76,0x7e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Compare Mask Greater Than Or Equal To Zero
|
|
//----------------------------------------------------------------------
|
|
|
|
fcmge s10, s11, #0.0
|
|
fcmge d20, d21, #0.0
|
|
fcmge s10, s11, #0
|
|
fcmge d20, d21, #0x0
|
|
|
|
// CHECK: fcmge s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x7e]
|
|
// CHECK: fcmge d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x7e]
|
|
// CHECK: fcmge s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x7e]
|
|
// CHECK: fcmge d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x7e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Compare Mask Greather Than
|
|
//----------------------------------------------------------------------
|
|
|
|
fcmgt s10, s11, s12
|
|
fcmgt d20, d21, d22
|
|
|
|
// CHECK: fcmgt s10, s11, s12 // encoding: [0x6a,0xe5,0xac,0x7e]
|
|
// CHECK: fcmgt d20, d21, d22 // encoding: [0xb4,0xe6,0xf6,0x7e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Compare Mask Greather Than Zero
|
|
//----------------------------------------------------------------------
|
|
|
|
fcmgt s10, s11, #0.0
|
|
fcmgt d20, d21, #0.0
|
|
fcmgt s10, s11, #0
|
|
fcmgt d20, d21, #0x0
|
|
|
|
// CHECK: fcmgt s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x5e]
|
|
// CHECK: fcmgt d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x5e]
|
|
// CHECK: fcmgt s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x5e]
|
|
// CHECK: fcmgt d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x5e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Compare Mask Less Than Or Equal To Zero
|
|
//----------------------------------------------------------------------
|
|
|
|
fcmle s10, s11, #0.0
|
|
fcmle d20, d21, #0.0
|
|
fcmle s10, s11, #0
|
|
fcmle d20, d21, #0x0
|
|
|
|
// CHECK: fcmle s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x7e]
|
|
// CHECK: fcmle d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x7e]
|
|
// CHECK: fcmle s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x7e]
|
|
// CHECK: fcmle d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x7e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Compare Mask Less Than
|
|
//----------------------------------------------------------------------
|
|
|
|
fcmlt s10, s11, #0.0
|
|
fcmlt d20, d21, #0.0
|
|
fcmlt s10, s11, #0
|
|
fcmlt d20, d21, #0x0
|
|
|
|
// CHECK: fcmlt s10, s11, #0.0 // encoding: [0x6a,0xe9,0xa0,0x5e]
|
|
// CHECK: fcmlt d20, d21, #0.0 // encoding: [0xb4,0xea,0xe0,0x5e]
|
|
// CHECK: fcmlt s10, s11, #0.0 // encoding: [0x6a,0xe9,0xa0,0x5e]
|
|
// CHECK: fcmlt d20, d21, #0.0 // encoding: [0xb4,0xea,0xe0,0x5e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Absolute Compare Mask Greater Than Or Equal
|
|
//----------------------------------------------------------------------
|
|
|
|
facge s10, s11, s12
|
|
facge d20, d21, d22
|
|
|
|
// CHECK: facge s10, s11, s12 // encoding: [0x6a,0xed,0x2c,0x7e]
|
|
// CHECK: facge d20, d21, d22 // encoding: [0xb4,0xee,0x76,0x7e]
|
|
|
|
//----------------------------------------------------------------------
|
|
// Scalar Floating-point Absolute Compare Mask Greater Than
|
|
//----------------------------------------------------------------------
|
|
|
|
facgt s10, s11, s12
|
|
facgt d20, d21, d22
|
|
|
|
// CHECK: facgt s10, s11, s12 // encoding: [0x6a,0xed,0xac,0x7e]
|
|
// CHECK: facgt d20, d21, d22 // encoding: [0xb4,0xee,0xf6,0x7e]
|