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