// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s
// Check that the assembler can handle the documented syntax for AArch64
//----------------------------------------------------------------------
// Scalar Floating-point Compare Mask Equal
//----------------------------------------------------------------------
         fcmeq h10, h11, h12
         fcmeq s10, s11, s12
         fcmeq d20, d21, d22
// CHECK: fcmeq   h10, h11, h12           // encoding: [0x6a,0x25,0x4c,0x5e]
// 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 h10, h11,          fcmeq s10, s11,          fcmeq d20, d21,          fcmeq h10, h11,          fcmeq s10, s11,          fcmeq d20, d21, 
// CHECK: fcmeq   h10, h11, // CHECK: fcmeq s10, s11, // CHECK: fcmeq d20, d21, // CHECK: fcmeq   h10, h11, // CHECK: fcmeq s10, s11, // CHECK: fcmeq d20, d21, 
//----------------------------------------------------------------------
// Scalar Floating-point Compare Mask Greater Than Or Equal
//----------------------------------------------------------------------
         fcmge h10, h11, h12
         fcmge s10, s11, s12
         fcmge d20, d21, d22
// CHECK: fcmge   h10, h11, h12           // encoding: [0x6a,0x25,0x4c,0x7e]
// 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 h10, h11,          fcmge s10, s11,          fcmge d20, d21,          fcmge h10, h11,          fcmge s10, s11,          fcmge d20, d21, 
// CHECK: fcmge   h10, h11, // CHECK: fcmge s10, s11, // CHECK: fcmge d20, d21, // CHECK: fcmge   h10, h11, // CHECK: fcmge s10, s11, // CHECK: fcmge d20, d21, 
//----------------------------------------------------------------------
// Scalar Floating-point Compare Mask Greather Than
//----------------------------------------------------------------------
         fcmgt h10, h11, h12
         fcmgt s10, s11, s12
         fcmgt d20, d21, d22
// CHECK: fcmgt   h10, h11, h12           // encoding: [0x6a,0x25,0xcc,0x7e]
// 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 h10, h11,          fcmgt s10, s11,          fcmgt d20, d21,          fcmgt h10, h11,          fcmgt s10, s11,          fcmgt d20, d21, 
// CHECK: fcmgt   h10, h11, // CHECK: fcmgt s10, s11, // CHECK: fcmgt d20, d21, // CHECK: fcmgt   h10, h11, // CHECK: fcmgt s10, s11, // CHECK: fcmgt d20, d21, 
//----------------------------------------------------------------------
// Scalar Floating-point Compare Mask Less Than Or Equal To Zero
//----------------------------------------------------------------------
         fcmle h10, h11,          fcmle s10, s11,          fcmle d20, d21,          fcmle h10, h11,          fcmle s10, s11,          fcmle d20, d21, 
// CHECK: fcmle   h10, h11, // CHECK: fcmle s10, s11, // CHECK: fcmle d20, d21, // CHECK: fcmle   h10, h11, // CHECK: fcmle s10, s11, // CHECK: fcmle d20, d21, 
//----------------------------------------------------------------------
// Scalar Floating-point Compare Mask Less Than
//----------------------------------------------------------------------
         fcmlt h10, h11,          fcmlt s10, s11,          fcmlt d20, d21,          fcmlt h10, h11,          fcmlt s10, s11,          fcmlt d20, d21, 
// CHECK: fcmlt   h10, h11, // CHECK: fcmlt s10, s11, // CHECK: fcmlt d20, d21, // CHECK: fcmlt   h10, h11, // CHECK: fcmlt s10, s11, // CHECK: fcmlt d20, d21, 
//----------------------------------------------------------------------
// Scalar Floating-point Absolute Compare Mask Greater Than Or Equal
//----------------------------------------------------------------------
         facge h10, h11, h12
         facge s10, s11, s12
         facge d20, d21, d22
// CHECK: facge   h10, h11, h12           // encoding: [0x6a,0x2d,0x4c,0x7e]
// 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 h10, h11, h12
         facgt s10, s11, s12
         facgt d20, d21, d22
// CHECK: facgt   h10, h11, h12           // encoding: [0x6a,0x2d,0xcc,0x7e]
// CHECK: facgt s10, s11, s12   // encoding: [0x6a,0xed,0xac,0x7e]
// CHECK: facgt d20, d21, d22   // encoding: [0xb4,0xee,0xf6,0x7e]