1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker// Check that the assembler can handle the documented syntax for AArch64 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 6*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Equal 7*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker fcmeq h10, h11, h12 10*9880d681SAndroid Build Coastguard Worker fcmeq s10, s11, s12 11*9880d681SAndroid Build Coastguard Worker fcmeq d20, d21, d22 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq h10, h11, h12 // encoding: [0x6a,0x25,0x4c,0x5e] 14*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq s10, s11, s12 // encoding: [0x6a,0xe5,0x2c,0x5e] 15*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq d20, d21, d22 // encoding: [0xb4,0xe6,0x76,0x5e] 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 18*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Equal To Zero 19*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker fcmeq h10, h11, #0.0 22*9880d681SAndroid Build Coastguard Worker fcmeq s10, s11, #0.0 23*9880d681SAndroid Build Coastguard Worker fcmeq d20, d21, #0.0 24*9880d681SAndroid Build Coastguard Worker fcmeq h10, h11, #0 25*9880d681SAndroid Build Coastguard Worker fcmeq s10, s11, #0 26*9880d681SAndroid Build Coastguard Worker fcmeq d20, d21, #0x0 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x5e] 29*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x5e] 30*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x5e] 31*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x5e] 32*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x5e] 33*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x5e] 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 36*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Greater Than Or Equal 37*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker fcmge h10, h11, h12 40*9880d681SAndroid Build Coastguard Worker fcmge s10, s11, s12 41*9880d681SAndroid Build Coastguard Worker fcmge d20, d21, d22 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge h10, h11, h12 // encoding: [0x6a,0x25,0x4c,0x7e] 44*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge s10, s11, s12 // encoding: [0x6a,0xe5,0x2c,0x7e] 45*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge d20, d21, d22 // encoding: [0xb4,0xe6,0x76,0x7e] 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 48*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Greater Than Or Equal To Zero 49*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Worker fcmge h10, h11, #0.0 52*9880d681SAndroid Build Coastguard Worker fcmge s10, s11, #0.0 53*9880d681SAndroid Build Coastguard Worker fcmge d20, d21, #0.0 54*9880d681SAndroid Build Coastguard Worker fcmge h10, h11, #0 55*9880d681SAndroid Build Coastguard Worker fcmge s10, s11, #0 56*9880d681SAndroid Build Coastguard Worker fcmge d20, d21, #0x0 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x7e] 59*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x7e] 60*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x7e] 61*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x7e] 62*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x7e] 63*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x7e] 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 66*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Greather Than 67*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Worker fcmgt h10, h11, h12 70*9880d681SAndroid Build Coastguard Worker fcmgt s10, s11, s12 71*9880d681SAndroid Build Coastguard Worker fcmgt d20, d21, d22 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt h10, h11, h12 // encoding: [0x6a,0x25,0xcc,0x7e] 74*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt s10, s11, s12 // encoding: [0x6a,0xe5,0xac,0x7e] 75*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt d20, d21, d22 // encoding: [0xb4,0xe6,0xf6,0x7e] 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 78*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Greather Than Zero 79*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Worker fcmgt h10, h11, #0.0 82*9880d681SAndroid Build Coastguard Worker fcmgt s10, s11, #0.0 83*9880d681SAndroid Build Coastguard Worker fcmgt d20, d21, #0.0 84*9880d681SAndroid Build Coastguard Worker fcmgt h10, h11, #0 85*9880d681SAndroid Build Coastguard Worker fcmgt s10, s11, #0 86*9880d681SAndroid Build Coastguard Worker fcmgt d20, d21, #0x0 87*9880d681SAndroid Build Coastguard Worker 88*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x5e] 89*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x5e] 90*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x5e] 91*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x5e] 92*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x5e] 93*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x5e] 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 96*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Less Than Or Equal To Zero 97*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Worker fcmle h10, h11, #0.0 100*9880d681SAndroid Build Coastguard Worker fcmle s10, s11, #0.0 101*9880d681SAndroid Build Coastguard Worker fcmle d20, d21, #0.0 102*9880d681SAndroid Build Coastguard Worker fcmle h10, h11, #0 103*9880d681SAndroid Build Coastguard Worker fcmle s10, s11, #0 104*9880d681SAndroid Build Coastguard Worker fcmle d20, d21, #0x0 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x7e] 107*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x7e] 108*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x7e] 109*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x7e] 110*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x7e] 111*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x7e] 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 114*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Less Than 115*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 116*9880d681SAndroid Build Coastguard Worker 117*9880d681SAndroid Build Coastguard Worker fcmlt h10, h11, #0.0 118*9880d681SAndroid Build Coastguard Worker fcmlt s10, s11, #0.0 119*9880d681SAndroid Build Coastguard Worker fcmlt d20, d21, #0.0 120*9880d681SAndroid Build Coastguard Worker fcmlt h10, h11, #0 121*9880d681SAndroid Build Coastguard Worker fcmlt s10, s11, #0 122*9880d681SAndroid Build Coastguard Worker fcmlt d20, d21, #0x0 123*9880d681SAndroid Build Coastguard Worker 124*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt h10, h11, #0.0 // encoding: [0x6a,0xe9,0xf8,0x5e] 125*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt s10, s11, #0.0 // encoding: [0x6a,0xe9,0xa0,0x5e] 126*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt d20, d21, #0.0 // encoding: [0xb4,0xea,0xe0,0x5e] 127*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt h10, h11, #0.0 // encoding: [0x6a,0xe9,0xf8,0x5e] 128*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt s10, s11, #0.0 // encoding: [0x6a,0xe9,0xa0,0x5e] 129*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt d20, d21, #0.0 // encoding: [0xb4,0xea,0xe0,0x5e] 130*9880d681SAndroid Build Coastguard Worker 131*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 132*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Absolute Compare Mask Greater Than Or Equal 133*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 134*9880d681SAndroid Build Coastguard Worker 135*9880d681SAndroid Build Coastguard Worker facge h10, h11, h12 136*9880d681SAndroid Build Coastguard Worker facge s10, s11, s12 137*9880d681SAndroid Build Coastguard Worker facge d20, d21, d22 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Worker// CHECK: facge h10, h11, h12 // encoding: [0x6a,0x2d,0x4c,0x7e] 140*9880d681SAndroid Build Coastguard Worker// CHECK: facge s10, s11, s12 // encoding: [0x6a,0xed,0x2c,0x7e] 141*9880d681SAndroid Build Coastguard Worker// CHECK: facge d20, d21, d22 // encoding: [0xb4,0xee,0x76,0x7e] 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 144*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Absolute Compare Mask Greater Than 145*9880d681SAndroid Build Coastguard Worker//---------------------------------------------------------------------- 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Worker facgt h10, h11, h12 148*9880d681SAndroid Build Coastguard Worker facgt s10, s11, s12 149*9880d681SAndroid Build Coastguard Worker facgt d20, d21, d22 150*9880d681SAndroid Build Coastguard Worker 151*9880d681SAndroid Build Coastguard Worker// CHECK: facgt h10, h11, h12 // encoding: [0x6a,0x2d,0xcc,0x7e] 152*9880d681SAndroid Build Coastguard Worker// CHECK: facgt s10, s11, s12 // encoding: [0x6a,0xed,0xac,0x7e] 153*9880d681SAndroid Build Coastguard Worker// CHECK: facgt d20, d21, d22 // encoding: [0xb4,0xee,0xf6,0x7e] 154