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 // Vector Compare Mask Equal (Integer) 7 //---------------------------------------------------------------------- 8 9 cmeq v0.8b, v15.8b, v17.8b 10 cmeq v1.16b, v31.16b, v8.16b 11 cmeq v15.4h, v16.4h, v17.4h 12 cmeq v5.8h, v6.8h, v7.8h 13 cmeq v29.2s, v27.2s, v28.2s 14 cmeq v9.4s, v7.4s, v8.4s 15 cmeq v3.2d, v31.2d, v21.2d 16 17 // CHECK: cmeq v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x8d,0x31,0x2e] 18 // CHECK: cmeq v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x8f,0x28,0x6e] 19 // CHECK: cmeq v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x8e,0x71,0x2e] 20 // CHECK: cmeq v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x8c,0x67,0x6e] 21 // CHECK: cmeq v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x8f,0xbc,0x2e] 22 // CHECK: cmeq v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x8c,0xa8,0x6e] 23 // CHECK: cmeq v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x8f,0xf5,0x6e] 24 25 //---------------------------------------------------------------------- 26 // Vector Compare Mask Higher or Same (Unsigned Integer) 27 // Vector Compare Mask Less or Same (Unsigned Integer) 28 // CMLS is alias for CMHS with operands reversed. 29 //---------------------------------------------------------------------- 30 31 cmhs v0.8b, v15.8b, v17.8b 32 cmhs v1.16b, v31.16b, v8.16b 33 cmhs v15.4h, v16.4h, v17.4h 34 cmhs v5.8h, v6.8h, v7.8h 35 cmhs v29.2s, v27.2s, v28.2s 36 cmhs v9.4s, v7.4s, v8.4s 37 cmhs v3.2d, v31.2d, v21.2d 38 39 cmls v0.8b, v17.8b, v15.8b 40 cmls v1.16b, v8.16b, v31.16b 41 cmls v15.4h, v17.4h, v16.4h 42 cmls v5.8h, v7.8h, v6.8h 43 cmls v29.2s, v28.2s, v27.2s 44 cmls v9.4s, v8.4s, v7.4s 45 cmls v3.2d, v21.2d, v31.2d 46 47 // CHECK: cmhs v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x3d,0x31,0x2e] 48 // CHECK: cmhs v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x3f,0x28,0x6e] 49 // CHECK: cmhs v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x3e,0x71,0x2e] 50 // CHECK: cmhs v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x3c,0x67,0x6e] 51 // CHECK: cmhs v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x3f,0xbc,0x2e] 52 // CHECK: cmhs v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x3c,0xa8,0x6e] 53 // CHECK: cmhs v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x3f,0xf5,0x6e] 54 // CHECK: cmhs v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x3d,0x31,0x2e] 55 // CHECK: cmhs v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x3f,0x28,0x6e] 56 // CHECK: cmhs v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x3e,0x71,0x2e] 57 // CHECK: cmhs v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x3c,0x67,0x6e] 58 // CHECK: cmhs v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x3f,0xbc,0x2e] 59 // CHECK: cmhs v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x3c,0xa8,0x6e] 60 // CHECK: cmhs v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x3f,0xf5,0x6e] 61 62 //---------------------------------------------------------------------- 63 // Vector Compare Mask Greater Than or Equal (Integer) 64 // Vector Compare Mask Less Than or Equal (Integer) 65 // CMLE is alias for CMGE with operands reversed. 66 //---------------------------------------------------------------------- 67 68 cmge v0.8b, v15.8b, v17.8b 69 cmge v1.16b, v31.16b, v8.16b 70 cmge v15.4h, v16.4h, v17.4h 71 cmge v5.8h, v6.8h, v7.8h 72 cmge v29.2s, v27.2s, v28.2s 73 cmge v9.4s, v7.4s, v8.4s 74 cmge v3.2d, v31.2d, v21.2d 75 76 cmle v0.8b, v17.8b, v15.8b 77 cmle v1.16b, v8.16b, v31.16b 78 cmle v15.4h, v17.4h, v16.4h 79 cmle v5.8h, v7.8h, v6.8h 80 cmle v29.2s, v28.2s, v27.2s 81 cmle v9.4s, v8.4s, v7.4s 82 cmle v3.2d, v21.2d, v31.2d 83 84 // CHECK: cmge v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x3d,0x31,0x0e] 85 // CHECK: cmge v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x3f,0x28,0x4e] 86 // CHECK: cmge v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x3e,0x71,0x0e] 87 // CHECK: cmge v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x3c,0x67,0x4e] 88 // CHECK: cmge v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x3f,0xbc,0x0e] 89 // CHECK: cmge v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x3c,0xa8,0x4e] 90 // CHECK: cmge v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x3f,0xf5,0x4e] 91 // CHECK: cmge v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x3d,0x31,0x0e] 92 // CHECK: cmge v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x3f,0x28,0x4e] 93 // CHECK: cmge v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x3e,0x71,0x0e] 94 // CHECK: cmge v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x3c,0x67,0x4e] 95 // CHECK: cmge v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x3f,0xbc,0x0e] 96 // CHECK: cmge v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x3c,0xa8,0x4e] 97 // CHECK: cmge v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x3f,0xf5,0x4e] 98 99 //---------------------------------------------------------------------- 100 // Vector Compare Mask Higher (Unsigned Integer) 101 // Vector Compare Mask Lower (Unsigned Integer) 102 // CMLO is alias for CMHI with operands reversed. 103 //---------------------------------------------------------------------- 104 105 cmhi v0.8b, v15.8b, v17.8b 106 cmhi v1.16b, v31.16b, v8.16b 107 cmhi v15.4h, v16.4h, v17.4h 108 cmhi v5.8h, v6.8h, v7.8h 109 cmhi v29.2s, v27.2s, v28.2s 110 cmhi v9.4s, v7.4s, v8.4s 111 cmhi v3.2d, v31.2d, v21.2d 112 113 cmlo v0.8b, v17.8b, v15.8b 114 cmlo v1.16b, v8.16b, v31.16b 115 cmlo v15.4h, v17.4h, v16.4h 116 cmlo v5.8h, v7.8h, v6.8h 117 cmlo v29.2s, v28.2s, v27.2s 118 cmlo v9.4s, v8.4s, v7.4s 119 cmlo v3.2d, v21.2d, v31.2d 120 121 // CHECK: cmhi v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x35,0x31,0x2e] 122 // CHECK: cmhi v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x37,0x28,0x6e] 123 // CHECK: cmhi v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x36,0x71,0x2e] 124 // CHECK: cmhi v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x34,0x67,0x6e] 125 // CHECK: cmhi v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x37,0xbc,0x2e] 126 // CHECK: cmhi v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x34,0xa8,0x6e] 127 // CHECK: cmhi v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x37,0xf5,0x6e] 128 // CHECK: cmhi v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x35,0x31,0x2e] 129 // CHECK: cmhi v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x37,0x28,0x6e] 130 // CHECK: cmhi v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x36,0x71,0x2e] 131 // CHECK: cmhi v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x34,0x67,0x6e] 132 // CHECK: cmhi v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x37,0xbc,0x2e] 133 // CHECK: cmhi v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x34,0xa8,0x6e] 134 // CHECK: cmhi v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x37,0xf5,0x6e] 135 136 //---------------------------------------------------------------------- 137 // Vector Compare Mask Greater Than (Integer) 138 // Vector Compare Mask Less Than (Integer) 139 // CMLT is alias for CMGT with operands reversed. 140 //---------------------------------------------------------------------- 141 142 cmgt v0.8b, v15.8b, v17.8b 143 cmgt v1.16b, v31.16b, v8.16b 144 cmgt v15.4h, v16.4h, v17.4h 145 cmgt v5.8h, v6.8h, v7.8h 146 cmgt v29.2s, v27.2s, v28.2s 147 cmgt v9.4s, v7.4s, v8.4s 148 cmgt v3.2d, v31.2d, v21.2d 149 150 cmlt v0.8b, v17.8b, v15.8b 151 cmlt v1.16b, v8.16b, v31.16b 152 cmlt v15.4h, v17.4h, v16.4h 153 cmlt v5.8h, v7.8h, v6.8h 154 cmlt v29.2s, v28.2s, v27.2s 155 cmlt v9.4s, v8.4s, v7.4s 156 cmlt v3.2d, v21.2d, v31.2d 157 158 // CHECK: cmgt v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x35,0x31,0x0e] 159 // CHECK: cmgt v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x37,0x28,0x4e] 160 // CHECK: cmgt v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x36,0x71,0x0e] 161 // CHECK: cmgt v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x34,0x67,0x4e] 162 // CHECK: cmgt v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x37,0xbc,0x0e] 163 // CHECK: cmgt v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x34,0xa8,0x4e] 164 // CHECK: cmgt v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x37,0xf5,0x4e] 165 // CHECK: cmgt v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x35,0x31,0x0e] 166 // CHECK: cmgt v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x37,0x28,0x4e] 167 // CHECK: cmgt v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x36,0x71,0x0e] 168 // CHECK: cmgt v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x34,0x67,0x4e] 169 // CHECK: cmgt v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x37,0xbc,0x0e] 170 // CHECK: cmgt v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x34,0xa8,0x4e] 171 // CHECK: cmgt v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x37,0xf5,0x4e] 172 173 //---------------------------------------------------------------------- 174 // Vector Compare Mask Bitwise Test (Integer) 175 //---------------------------------------------------------------------- 176 177 cmtst v0.8b, v15.8b, v17.8b 178 cmtst v1.16b, v31.16b, v8.16b 179 cmtst v15.4h, v16.4h, v17.4h 180 cmtst v5.8h, v6.8h, v7.8h 181 cmtst v29.2s, v27.2s, v28.2s 182 cmtst v9.4s, v7.4s, v8.4s 183 cmtst v3.2d, v31.2d, v21.2d 184 185 // CHECK: cmtst v0.8b, v15.8b, v17.8b // encoding: [0xe0,0x8d,0x31,0x0e] 186 // CHECK: cmtst v1.16b, v31.16b, v8.16b // encoding: [0xe1,0x8f,0x28,0x4e] 187 // CHECK: cmtst v15.4h, v16.4h, v17.4h // encoding: [0x0f,0x8e,0x71,0x0e] 188 // CHECK: cmtst v5.8h, v6.8h, v7.8h // encoding: [0xc5,0x8c,0x67,0x4e] 189 // CHECK: cmtst v29.2s, v27.2s, v28.2s // encoding: [0x7d,0x8f,0xbc,0x0e] 190 // CHECK: cmtst v9.4s, v7.4s, v8.4s // encoding: [0xe9,0x8c,0xa8,0x4e] 191 // CHECK: cmtst v3.2d, v31.2d, v21.2d // encoding: [0xe3,0x8f,0xf5,0x4e] 192 193 //---------------------------------------------------------------------- 194 // Vector Compare Mask Equal (Floating Point) 195 //---------------------------------------------------------------------- 196 197 fcmeq v0.4h, v31.4h, v16.4h 198 fcmeq v4.8h, v7.8h, v15.8h 199 fcmeq v0.2s, v31.2s, v16.2s 200 fcmeq v4.4s, v7.4s, v15.4s 201 fcmeq v29.2d, v2.2d, v5.2d 202 203 // CHECK: fcmeq v0.4h, v31.4h, v16.4h // encoding: [0xe0,0x27,0x50,0x0e] 204 // CHECK: fcmeq v4.8h, v7.8h, v15.8h // encoding: [0xe4,0x24,0x4f,0x4e] 205 // CHECK: fcmeq v0.2s, v31.2s, v16.2s // encoding: [0xe0,0xe7,0x30,0x0e] 206 // CHECK: fcmeq v4.4s, v7.4s, v15.4s // encoding: [0xe4,0xe4,0x2f,0x4e] 207 // CHECK: fcmeq v29.2d, v2.2d, v5.2d // encoding: [0x5d,0xe4,0x65,0x4e] 208 209 //---------------------------------------------------------------------- 210 // Vector Compare Mask Greater Than Or Equal (Floating Point) 211 // Vector Compare Mask Less Than Or Equal (Floating Point) 212 // FCMLE is alias for FCMGE with operands reversed. 213 //---------------------------------------------------------------------- 214 215 fcmge v3.4h, v8.4h, v12.4h 216 fcmge v31.8h, v29.8h, v28.8h 217 fcmle v3.4h, v12.4h, v8.4h 218 fcmle v31.8h, v28.8h, v29.8h 219 fcmge v31.4s, v29.4s, v28.4s 220 fcmge v3.2s, v8.2s, v12.2s 221 fcmge v17.2d, v15.2d, v13.2d 222 fcmle v31.4s, v28.4s, v29.4s 223 fcmle v3.2s, v12.2s, v8.2s 224 fcmle v17.2d, v13.2d, v15.2d 225 226 // CHECK: fcmge v3.4h, v8.4h, v12.4h // encoding: [0x03,0x25,0x4c,0x2e] 227 // CHECK: fcmge v31.8h, v29.8h, v28.8h // encoding: [0xbf,0x27,0x5c,0x6e] 228 // CHECK: fcmge v3.4h, v8.4h, v12.4h // encoding: [0x03,0x25,0x4c,0x2e] 229 // CHECK: fcmge v31.8h, v29.8h, v28.8h // encoding: [0xbf,0x27,0x5c,0x6e] 230 // CHECK: fcmge v31.4s, v29.4s, v28.4s // encoding: [0xbf,0xe7,0x3c,0x6e] 231 // CHECK: fcmge v3.2s, v8.2s, v12.2s // encoding: [0x03,0xe5,0x2c,0x2e] 232 // CHECK: fcmge v17.2d, v15.2d, v13.2d // encoding: [0xf1,0xe5,0x6d,0x6e] 233 // CHECK: fcmge v31.4s, v29.4s, v28.4s // encoding: [0xbf,0xe7,0x3c,0x6e] 234 // CHECK: fcmge v3.2s, v8.2s, v12.2s // encoding: [0x03,0xe5,0x2c,0x2e] 235 // CHECK: fcmge v17.2d, v15.2d, v13.2d // encoding: [0xf1,0xe5,0x6d,0x6e] 236 237 //---------------------------------------------------------------------- 238 // Vector Compare Mask Greater Than (Floating Point) 239 // Vector Compare Mask Less Than (Floating Point) 240 // FCMLT is alias for FCMGT with operands reversed. 241 //---------------------------------------------------------------------- 242 243 fcmgt v0.4h, v31.4h, v16.4h 244 fcmgt v4.8h, v7.8h, v15.8h 245 fcmlt v0.4h, v16.4h, v31.4h 246 fcmlt v4.8h, v15.8h, v7.8h 247 fcmgt v0.2s, v31.2s, v16.2s 248 fcmgt v4.4s, v7.4s, v15.4s 249 fcmgt v29.2d, v2.2d, v5.2d 250 fcmlt v0.2s, v16.2s, v31.2s 251 fcmlt v4.4s, v15.4s, v7.4s 252 fcmlt v29.2d, v5.2d, v2.2d 253 254 // CHECK: fcmgt v0.4h, v31.4h, v16.4h // encoding: [0xe0,0x27,0xd0,0x2e] 255 // CHECK: fcmgt v4.8h, v7.8h, v15.8h // encoding: [0xe4,0x24,0xcf,0x6e] 256 // CHECK: fcmgt v0.4h, v31.4h, v16.4h // encoding: [0xe0,0x27,0xd0,0x2e] 257 // CHECK: fcmgt v4.8h, v7.8h, v15.8h // encoding: [0xe4,0x24,0xcf,0x6e] 258 // CHECK: fcmgt v0.2s, v31.2s, v16.2s // encoding: [0xe0,0xe7,0xb0,0x2e] 259 // CHECK: fcmgt v4.4s, v7.4s, v15.4s // encoding: [0xe4,0xe4,0xaf,0x6e] 260 // CHECK: fcmgt v29.2d, v2.2d, v5.2d // encoding: [0x5d,0xe4,0xe5,0x6e] 261 // CHECK: fcmgt v0.2s, v31.2s, v16.2s // encoding: [0xe0,0xe7,0xb0,0x2e] 262 // CHECK: fcmgt v4.4s, v7.4s, v15.4s // encoding: [0xe4,0xe4,0xaf,0x6e] 263 // CHECK: fcmgt v29.2d, v2.2d, v5.2d // encoding: [0x5d,0xe4,0xe5,0x6e] 264 265 266 //---------------------------------------------------------------------- 267 // Vector Compare Mask Equal to Zero (Integer) 268 //---------------------------------------------------------------------- 269 270 cmeq v0.8b, v15.8b, #0 271 cmeq v1.16b, v31.16b, #0 272 cmeq v15.4h, v16.4h, #0 273 cmeq v5.8h, v6.8h, #0 274 cmeq v29.2s, v27.2s, #0 275 cmeq v9.4s, v7.4s, #0 276 cmeq v3.2d, v31.2d, #0 277 278 // CHECK: cmeq v0.8b, v15.8b, #{{0x0|0}} // encoding: [0xe0,0x99,0x20,0x0e] 279 // CHECK: cmeq v1.16b, v31.16b, #{{0x0|0}} // encoding: [0xe1,0x9b,0x20,0x4e] 280 // CHECK: cmeq v15.4h, v16.4h, #{{0x0|0}} // encoding: [0x0f,0x9a,0x60,0x0e] 281 // CHECK: cmeq v5.8h, v6.8h, #{{0x0|0}} // encoding: [0xc5,0x98,0x60,0x4e] 282 // CHECK: cmeq v29.2s, v27.2s, #{{0x0|0}} // encoding: [0x7d,0x9b,0xa0,0x0e] 283 // CHECK: cmeq v9.4s, v7.4s, #{{0x0|0}} // encoding: [0xe9,0x98,0xa0,0x4e] 284 // CHECK: cmeq v3.2d, v31.2d, #{{0x0|0}} // encoding: [0xe3,0x9b,0xe0,0x4e] 285 286 //---------------------------------------------------------------------- 287 // Vector Compare Mask Greater Than or Equal to Zero (Signed Integer) 288 //---------------------------------------------------------------------- 289 cmge v0.8b, v15.8b, #0 290 cmge v1.16b, v31.16b, #0 291 cmge v15.4h, v16.4h, #0 292 cmge v5.8h, v6.8h, #0 293 cmge v29.2s, v27.2s, #0 294 cmge v17.4s, v20.4s, #0 295 cmge v3.2d, v31.2d, #0 296 297 // CHECK: cmge v0.8b, v15.8b, #{{0x0|0}} // encoding: [0xe0,0x89,0x20,0x2e] 298 // CHECK: cmge v1.16b, v31.16b, #{{0x0|0}} // encoding: [0xe1,0x8b,0x20,0x6e] 299 // CHECK: cmge v15.4h, v16.4h, #{{0x0|0}} // encoding: [0x0f,0x8a,0x60,0x2e] 300 // CHECK: cmge v5.8h, v6.8h, #{{0x0|0}} // encoding: [0xc5,0x88,0x60,0x6e] 301 // CHECK: cmge v29.2s, v27.2s, #{{0x0|0}} // encoding: [0x7d,0x8b,0xa0,0x2e] 302 // CHECK: cmge v17.4s, v20.4s, #{{0x0|0}} // encoding: [0x91,0x8a,0xa0,0x6e] 303 // CHECK: cmge v3.2d, v31.2d, #{{0x0|0}} // encoding: [0xe3,0x8b,0xe0,0x6e] 304 305 //---------------------------------------------------------------------- 306 // Vector Compare Mask Greater Than Zero (Signed Integer) 307 //---------------------------------------------------------------------- 308 309 cmgt v0.8b, v15.8b, #0 310 cmgt v1.16b, v31.16b, #0 311 cmgt v15.4h, v16.4h, #0 312 cmgt v5.8h, v6.8h, #0 313 cmgt v29.2s, v27.2s, #0 314 cmgt v9.4s, v7.4s, #0 315 cmgt v3.2d, v31.2d, #0 316 317 // CHECK: cmgt v0.8b, v15.8b, #{{0x0|0}} // encoding: [0xe0,0x89,0x20,0x0e] 318 // CHECK: cmgt v1.16b, v31.16b, #{{0x0|0}} // encoding: [0xe1,0x8b,0x20,0x4e] 319 // CHECK: cmgt v15.4h, v16.4h, #{{0x0|0}} // encoding: [0x0f,0x8a,0x60,0x0e] 320 // CHECK: cmgt v5.8h, v6.8h, #{{0x0|0}} // encoding: [0xc5,0x88,0x60,0x4e] 321 // CHECK: cmgt v29.2s, v27.2s, #{{0x0|0}} // encoding: [0x7d,0x8b,0xa0,0x0e] 322 // CHECK: cmgt v9.4s, v7.4s, #{{0x0|0}} // encoding: [0xe9,0x88,0xa0,0x4e] 323 // CHECK: cmgt v3.2d, v31.2d, #{{0x0|0}} // encoding: [0xe3,0x8b,0xe0,0x4e] 324 325 //---------------------------------------------------------------------- 326 // Vector Compare Mask Less Than or Equal To Zero (Signed Integer) 327 //---------------------------------------------------------------------- 328 cmle v0.8b, v15.8b, #0 329 cmle v1.16b, v31.16b, #0 330 cmle v15.4h, v16.4h, #0 331 cmle v5.8h, v6.8h, #0 332 cmle v29.2s, v27.2s, #0 333 cmle v9.4s, v7.4s, #0 334 cmle v3.2d, v31.2d, #0 335 336 // CHECK: cmle v0.8b, v15.8b, #{{0x0|0}} // encoding: [0xe0,0x99,0x20,0x2e] 337 // CHECK: cmle v1.16b, v31.16b, #{{0x0|0}} // encoding: [0xe1,0x9b,0x20,0x6e] 338 // CHECK: cmle v15.4h, v16.4h, #{{0x0|0}} // encoding: [0x0f,0x9a,0x60,0x2e] 339 // CHECK: cmle v5.8h, v6.8h, #{{0x0|0}} // encoding: [0xc5,0x98,0x60,0x6e] 340 // CHECK: cmle v29.2s, v27.2s, #{{0x0|0}} // encoding: [0x7d,0x9b,0xa0,0x2e] 341 // CHECK: cmle v9.4s, v7.4s, #{{0x0|0}} // encoding: [0xe9,0x98,0xa0,0x6e] 342 // CHECK: cmle v3.2d, v31.2d, #{{0x0|0}} // encoding: [0xe3,0x9b,0xe0,0x6e] 343 344 //---------------------------------------------------------------------- 345 // Vector Compare Mask Less Than Zero (Signed Integer) 346 //---------------------------------------------------------------------- 347 cmlt v0.8b, v15.8b, #0 348 cmlt v1.16b, v31.16b, #0 349 cmlt v15.4h, v16.4h, #0 350 cmlt v5.8h, v6.8h, #0 351 cmlt v29.2s, v27.2s, #0 352 cmlt v9.4s, v7.4s, #0 353 cmlt v3.2d, v31.2d, #0 354 355 // CHECK: cmlt v0.8b, v15.8b, #{{0x0|0}} // encoding: [0xe0,0xa9,0x20,0x0e] 356 // CHECK: cmlt v1.16b, v31.16b, #{{0x0|0}} // encoding: [0xe1,0xab,0x20,0x4e] 357 // CHECK: cmlt v15.4h, v16.4h, #{{0x0|0}} // encoding: [0x0f,0xaa,0x60,0x0e] 358 // CHECK: cmlt v5.8h, v6.8h, #{{0x0|0}} // encoding: [0xc5,0xa8,0x60,0x4e] 359 // CHECK: cmlt v29.2s, v27.2s, #{{0x0|0}} // encoding: [0x7d,0xab,0xa0,0x0e] 360 // CHECK: cmlt v9.4s, v7.4s, #{{0x0|0}} // encoding: [0xe9,0xa8,0xa0,0x4e] 361 // CHECK: cmlt v3.2d, v31.2d, #{{0x0|0}} // encoding: [0xe3,0xab,0xe0,0x4e] 362 363 //---------------------------------------------------------------------- 364 // Vector Compare Mask Equal to Zero (Floating Point) 365 //---------------------------------------------------------------------- 366 fcmeq v0.4h, v31.4h, #0.0 367 fcmeq v4.8h, v7.8h, #0.0 368 fcmeq v0.2s, v31.2s, #0.0 369 fcmeq v4.4s, v7.4s, #0.0 370 fcmeq v29.2d, v2.2d, #0.0 371 fcmeq v0.4h, v31.4h, #0 372 fcmeq v4.8h, v7.8h, #0 373 fcmeq v0.2s, v31.2s, #0 374 fcmeq v4.4s, v7.4s, #0 375 fcmeq v29.2d, v2.2d, #0 376 377 // CHECK: fcmeq v0.4h, v31.4h, #0.0 // encoding: [0xe0,0xdb,0xf8,0x0e] 378 // CHECK: fcmeq v4.8h, v7.8h, #0.0 // encoding: [0xe4,0xd8,0xf8,0x4e] 379 // CHECK: fcmeq v0.2s, v31.2s, #0.0 // encoding: [0xe0,0xdb,0xa0,0x0e] 380 // CHECK: fcmeq v4.4s, v7.4s, #0.0 // encoding: [0xe4,0xd8,0xa0,0x4e] 381 // CHECK: fcmeq v29.2d, v2.2d, #0.0 // encoding: [0x5d,0xd8,0xe0,0x4e] 382 // CHECK: fcmeq v0.4h, v31.4h, #0.0 // encoding: [0xe0,0xdb,0xf8,0x0e] 383 // CHECK: fcmeq v4.8h, v7.8h, #0.0 // encoding: [0xe4,0xd8,0xf8,0x4e] 384 // CHECK: fcmeq v0.2s, v31.2s, #0.0 // encoding: [0xe0,0xdb,0xa0,0x0e] 385 // CHECK: fcmeq v4.4s, v7.4s, #0.0 // encoding: [0xe4,0xd8,0xa0,0x4e] 386 // CHECK: fcmeq v29.2d, v2.2d, #0.0 // encoding: [0x5d,0xd8,0xe0,0x4e] 387 388 //---------------------------------------------------------------------- 389 // Vector Compare Mask Greater Than or Equal to Zero (Floating Point) 390 //---------------------------------------------------------------------- 391 fcmge v3.4h, v8.4h, #0.0 392 fcmge v31.8h, v29.8h, #0.0 393 fcmge v31.4s, v29.4s, #0.0 394 fcmge v3.2s, v8.2s, #0.0 395 fcmge v17.2d, v15.2d, #0.0 396 fcmge v3.4h, v8.4h, #0 397 fcmge v31.8h, v29.8h, #0 398 fcmge v31.4s, v29.4s, #0 399 fcmge v3.2s, v8.2s, #0 400 fcmge v17.2d, v15.2d, #0 401 402 // CHECK: fcmge v3.4h, v8.4h, #0.0 // encoding: [0x03,0xc9,0xf8,0x2e] 403 // CHECK: fcmge v31.8h, v29.8h, #0.0 // encoding: [0xbf,0xcb,0xf8,0x6e] 404 // CHECK: fcmge v31.4s, v29.4s, #0.0 // encoding: [0xbf,0xcb,0xa0,0x6e] 405 // CHECK: fcmge v3.2s, v8.2s, #0.0 // encoding: [0x03,0xc9,0xa0,0x2e] 406 // CHECK: fcmge v17.2d, v15.2d, #0.0 // encoding: [0xf1,0xc9,0xe0,0x6e] 407 // CHECK: fcmge v3.4h, v8.4h, #0.0 // encoding: [0x03,0xc9,0xf8,0x2e] 408 // CHECK: fcmge v31.8h, v29.8h, #0.0 // encoding: [0xbf,0xcb,0xf8,0x6e] 409 // CHECK: fcmge v31.4s, v29.4s, #0.0 // encoding: [0xbf,0xcb,0xa0,0x6e] 410 // CHECK: fcmge v3.2s, v8.2s, #0.0 // encoding: [0x03,0xc9,0xa0,0x2e] 411 // CHECK: fcmge v17.2d, v15.2d, #0.0 // encoding: [0xf1,0xc9,0xe0,0x6e] 412 413 //---------------------------------------------------------------------- 414 // Vector Compare Mask Greater Than Zero (Floating Point) 415 //---------------------------------------------------------------------- 416 fcmgt v0.4h, v31.4h, #0.0 417 fcmgt v4.8h, v7.8h, #0.0 418 fcmgt v0.2s, v31.2s, #0.0 419 fcmgt v4.4s, v7.4s, #0.0 420 fcmgt v29.2d, v2.2d, #0.0 421 fcmgt v0.4h, v31.4h, #0 422 fcmgt v4.8h, v7.8h, #0 423 fcmgt v0.2s, v31.2s, #0 424 fcmgt v4.4s, v7.4s, #0 425 fcmgt v29.2d, v2.2d, #0 426 427 // CHECK: fcmgt v0.4h, v31.4h, #0.0 // encoding: [0xe0,0xcb,0xf8,0x0e] 428 // CHECK: fcmgt v4.8h, v7.8h, #0.0 // encoding: [0xe4,0xc8,0xf8,0x4e] 429 // CHECK: fcmgt v0.2s, v31.2s, #0.0 // encoding: [0xe0,0xcb,0xa0,0x0e] 430 // CHECK: fcmgt v4.4s, v7.4s, #0.0 // encoding: [0xe4,0xc8,0xa0,0x4e] 431 // CHECK: fcmgt v29.2d, v2.2d, #0.0 // encoding: [0x5d,0xc8,0xe0,0x4e] 432 // CHECK: fcmgt v0.4h, v31.4h, #0.0 // encoding: [0xe0,0xcb,0xf8,0x0e] 433 // CHECK: fcmgt v4.8h, v7.8h, #0.0 // encoding: [0xe4,0xc8,0xf8,0x4e] 434 // CHECK: fcmgt v0.2s, v31.2s, #0.0 // encoding: [0xe0,0xcb,0xa0,0x0e] 435 // CHECK: fcmgt v4.4s, v7.4s, #0.0 // encoding: [0xe4,0xc8,0xa0,0x4e] 436 // CHECK: fcmgt v29.2d, v2.2d, #0.0 // encoding: [0x5d,0xc8,0xe0,0x4e] 437 438 //---------------------------------------------------------------------- 439 // Vector Compare Mask Less Than or Equal To Zero (Floating Point) 440 //---------------------------------------------------------------------- 441 fcmle v3.4h, v20.4h, #0.0 442 fcmle v1.8h, v8.8h, #0.0 443 fcmle v1.4s, v8.4s, #0.0 444 fcmle v3.2s, v20.2s, #0.0 445 fcmle v7.2d, v13.2d, #0.0 446 fcmle v3.4h, v20.4h, #0 447 fcmle v1.8h, v8.8h, #0 448 fcmle v1.4s, v8.4s, #0 449 fcmle v3.2s, v20.2s, #0 450 fcmle v7.2d, v13.2d, #0 451 452 // CHECK: fcmle v3.4h, v20.4h, #0.0 // encoding: [0x83,0xda,0xf8,0x2e] 453 // CHECK: fcmle v1.8h, v8.8h, #0.0 // encoding: [0x01,0xd9,0xf8,0x6e] 454 // CHECK: fcmle v1.4s, v8.4s, #0.0 // encoding: [0x01,0xd9,0xa0,0x6e] 455 // CHECK: fcmle v3.2s, v20.2s, #0.0 // encoding: [0x83,0xda,0xa0,0x2e] 456 // CHECK: fcmle v7.2d, v13.2d, #0.0 // encoding: [0xa7,0xd9,0xe0,0x6e] 457 // CHECK: fcmle v3.4h, v20.4h, #0.0 // encoding: [0x83,0xda,0xf8,0x2e] 458 // CHECK: fcmle v1.8h, v8.8h, #0.0 // encoding: [0x01,0xd9,0xf8,0x6e] 459 // CHECK: fcmle v1.4s, v8.4s, #0.0 // encoding: [0x01,0xd9,0xa0,0x6e] 460 // CHECK: fcmle v3.2s, v20.2s, #0.0 // encoding: [0x83,0xda,0xa0,0x2e] 461 // CHECK: fcmle v7.2d, v13.2d, #0.0 // encoding: [0xa7,0xd9,0xe0,0x6e] 462 463 //---------------------------------------------------------------------- 464 // Vector Compare Mask Less Than Zero (Floating Point) 465 //---------------------------------------------------------------------- 466 fcmlt v16.4h, v2.4h, #0.0 467 fcmlt v15.8h, v4.8h, #0.0 468 fcmlt v16.2s, v2.2s, #0.0 469 fcmlt v15.4s, v4.4s, #0.0 470 fcmlt v5.2d, v29.2d, #0.0 471 fcmlt v16.4h, v2.4h, #0 472 fcmlt v15.8h, v4.8h, #0 473 fcmlt v16.2s, v2.2s, #0 474 fcmlt v15.4s, v4.4s, #0 475 fcmlt v5.2d, v29.2d, #0 476 477 // CHECK: fcmlt v16.4h, v2.4h, #0.0 // encoding: [0x50,0xe8,0xf8,0x0e] 478 // CHECK: fcmlt v15.8h, v4.8h, #0.0 // encoding: [0x8f,0xe8,0xf8,0x4e] 479 // CHECK: fcmlt v16.2s, v2.2s, #0.0 // encoding: [0x50,0xe8,0xa0,0x0e] 480 // CHECK: fcmlt v15.4s, v4.4s, #0.0 // encoding: [0x8f,0xe8,0xa0,0x4e] 481 // CHECK: fcmlt v5.2d, v29.2d, #0.0 // encoding: [0xa5,0xeb,0xe0,0x4e] 482 // CHECK: fcmlt v16.4h, v2.4h, #0.0 // encoding: [0x50,0xe8,0xf8,0x0e] 483 // CHECK: fcmlt v15.8h, v4.8h, #0.0 // encoding: [0x8f,0xe8,0xf8,0x4e] 484 // CHECK: fcmlt v16.2s, v2.2s, #0.0 // encoding: [0x50,0xe8,0xa0,0x0e] 485 // CHECK: fcmlt v15.4s, v4.4s, #0.0 // encoding: [0x8f,0xe8,0xa0,0x4e] 486 // CHECK: fcmlt v5.2d, v29.2d, #0.0 // encoding: [0xa5,0xeb,0xe0,0x4e] 487 488 489 490 491 492 493 494 495 496