496 lines · plain
1// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s2 3// Check that the assembler can handle the documented syntax for AArch644 5//----------------------------------------------------------------------6// Vector Compare Mask Equal (Integer)7//----------------------------------------------------------------------8 9 cmeq v0.8b, v15.8b, v17.8b10 cmeq v1.16b, v31.16b, v8.16b11 cmeq v15.4h, v16.4h, v17.4h12 cmeq v5.8h, v6.8h, v7.8h13 cmeq v29.2s, v27.2s, v28.2s14 cmeq v9.4s, v7.4s, v8.4s15 cmeq v3.2d, v31.2d, v21.2d16 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.8b32 cmhs v1.16b, v31.16b, v8.16b33 cmhs v15.4h, v16.4h, v17.4h34 cmhs v5.8h, v6.8h, v7.8h35 cmhs v29.2s, v27.2s, v28.2s36 cmhs v9.4s, v7.4s, v8.4s37 cmhs v3.2d, v31.2d, v21.2d38 39 cmls v0.8b, v17.8b, v15.8b40 cmls v1.16b, v8.16b, v31.16b41 cmls v15.4h, v17.4h, v16.4h42 cmls v5.8h, v7.8h, v6.8h43 cmls v29.2s, v28.2s, v27.2s44 cmls v9.4s, v8.4s, v7.4s45 cmls v3.2d, v21.2d, v31.2d46 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.8b69 cmge v1.16b, v31.16b, v8.16b70 cmge v15.4h, v16.4h, v17.4h71 cmge v5.8h, v6.8h, v7.8h72 cmge v29.2s, v27.2s, v28.2s73 cmge v9.4s, v7.4s, v8.4s74 cmge v3.2d, v31.2d, v21.2d75 76 cmle v0.8b, v17.8b, v15.8b77 cmle v1.16b, v8.16b, v31.16b78 cmle v15.4h, v17.4h, v16.4h79 cmle v5.8h, v7.8h, v6.8h80 cmle v29.2s, v28.2s, v27.2s81 cmle v9.4s, v8.4s, v7.4s82 cmle v3.2d, v21.2d, v31.2d83 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.8b106 cmhi v1.16b, v31.16b, v8.16b107 cmhi v15.4h, v16.4h, v17.4h108 cmhi v5.8h, v6.8h, v7.8h109 cmhi v29.2s, v27.2s, v28.2s110 cmhi v9.4s, v7.4s, v8.4s111 cmhi v3.2d, v31.2d, v21.2d112 113 cmlo v0.8b, v17.8b, v15.8b114 cmlo v1.16b, v8.16b, v31.16b115 cmlo v15.4h, v17.4h, v16.4h116 cmlo v5.8h, v7.8h, v6.8h117 cmlo v29.2s, v28.2s, v27.2s118 cmlo v9.4s, v8.4s, v7.4s119 cmlo v3.2d, v21.2d, v31.2d120 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.8b143 cmgt v1.16b, v31.16b, v8.16b144 cmgt v15.4h, v16.4h, v17.4h145 cmgt v5.8h, v6.8h, v7.8h146 cmgt v29.2s, v27.2s, v28.2s147 cmgt v9.4s, v7.4s, v8.4s148 cmgt v3.2d, v31.2d, v21.2d149 150 cmlt v0.8b, v17.8b, v15.8b151 cmlt v1.16b, v8.16b, v31.16b152 cmlt v15.4h, v17.4h, v16.4h153 cmlt v5.8h, v7.8h, v6.8h154 cmlt v29.2s, v28.2s, v27.2s155 cmlt v9.4s, v8.4s, v7.4s156 cmlt v3.2d, v21.2d, v31.2d157 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.8b178 cmtst v1.16b, v31.16b, v8.16b179 cmtst v15.4h, v16.4h, v17.4h180 cmtst v5.8h, v6.8h, v7.8h181 cmtst v29.2s, v27.2s, v28.2s182 cmtst v9.4s, v7.4s, v8.4s183 cmtst v3.2d, v31.2d, v21.2d184 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.4h198 fcmeq v4.8h, v7.8h, v15.8h199 fcmeq v0.2s, v31.2s, v16.2s200 fcmeq v4.4s, v7.4s, v15.4s201 fcmeq v29.2d, v2.2d, v5.2d202 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.4h216 fcmge v31.8h, v29.8h, v28.8h217 fcmle v3.4h, v12.4h, v8.4h218 fcmle v31.8h, v28.8h, v29.8h219 fcmge v31.4s, v29.4s, v28.4s220 fcmge v3.2s, v8.2s, v12.2s221 fcmge v17.2d, v15.2d, v13.2d222 fcmle v31.4s, v28.4s, v29.4s223 fcmle v3.2s, v12.2s, v8.2s224 fcmle v17.2d, v13.2d, v15.2d225 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.4h244 fcmgt v4.8h, v7.8h, v15.8h245 fcmlt v0.4h, v16.4h, v31.4h246 fcmlt v4.8h, v15.8h, v7.8h247 fcmgt v0.2s, v31.2s, v16.2s248 fcmgt v4.4s, v7.4s, v15.4s249 fcmgt v29.2d, v2.2d, v5.2d250 fcmlt v0.2s, v16.2s, v31.2s251 fcmlt v4.4s, v15.4s, v7.4s252 fcmlt v29.2d, v5.2d, v2.2d253 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, #0271 cmeq v1.16b, v31.16b, #0272 cmeq v15.4h, v16.4h, #0273 cmeq v5.8h, v6.8h, #0274 cmeq v29.2s, v27.2s, #0275 cmeq v9.4s, v7.4s, #0276 cmeq v3.2d, v31.2d, #0277 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, #0290 cmge v1.16b, v31.16b, #0291 cmge v15.4h, v16.4h, #0292 cmge v5.8h, v6.8h, #0293 cmge v29.2s, v27.2s, #0294 cmge v17.4s, v20.4s, #0295 cmge v3.2d, v31.2d, #0296 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, #0310 cmgt v1.16b, v31.16b, #0311 cmgt v15.4h, v16.4h, #0312 cmgt v5.8h, v6.8h, #0313 cmgt v29.2s, v27.2s, #0314 cmgt v9.4s, v7.4s, #0315 cmgt v3.2d, v31.2d, #0316 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, #0329 cmle v1.16b, v31.16b, #0330 cmle v15.4h, v16.4h, #0331 cmle v5.8h, v6.8h, #0332 cmle v29.2s, v27.2s, #0333 cmle v9.4s, v7.4s, #0334 cmle v3.2d, v31.2d, #0335 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, #0348 cmlt v1.16b, v31.16b, #0349 cmlt v15.4h, v16.4h, #0350 cmlt v5.8h, v6.8h, #0351 cmlt v29.2s, v27.2s, #0352 cmlt v9.4s, v7.4s, #0353 cmlt v3.2d, v31.2d, #0354 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.0367 fcmeq v4.8h, v7.8h, #0.0368 fcmeq v0.2s, v31.2s, #0.0369 fcmeq v4.4s, v7.4s, #0.0370 fcmeq v29.2d, v2.2d, #0.0371 fcmeq v0.4h, v31.4h, #0372 fcmeq v4.8h, v7.8h, #0373 fcmeq v0.2s, v31.2s, #0374 fcmeq v4.4s, v7.4s, #0375 fcmeq v29.2d, v2.2d, #0376 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.0392 fcmge v31.8h, v29.8h, #0.0393 fcmge v31.4s, v29.4s, #0.0394 fcmge v3.2s, v8.2s, #0.0395 fcmge v17.2d, v15.2d, #0.0396 fcmge v3.4h, v8.4h, #0397 fcmge v31.8h, v29.8h, #0398 fcmge v31.4s, v29.4s, #0399 fcmge v3.2s, v8.2s, #0400 fcmge v17.2d, v15.2d, #0401 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.0417 fcmgt v4.8h, v7.8h, #0.0418 fcmgt v0.2s, v31.2s, #0.0419 fcmgt v4.4s, v7.4s, #0.0420 fcmgt v29.2d, v2.2d, #0.0421 fcmgt v0.4h, v31.4h, #0422 fcmgt v4.8h, v7.8h, #0423 fcmgt v0.2s, v31.2s, #0424 fcmgt v4.4s, v7.4s, #0425 fcmgt v29.2d, v2.2d, #0426 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.0442 fcmle v1.8h, v8.8h, #0.0443 fcmle v1.4s, v8.4s, #0.0444 fcmle v3.2s, v20.2s, #0.0445 fcmle v7.2d, v13.2d, #0.0446 fcmle v3.4h, v20.4h, #0447 fcmle v1.8h, v8.8h, #0448 fcmle v1.4s, v8.4s, #0449 fcmle v3.2s, v20.2s, #0450 fcmle v7.2d, v13.2d, #0451 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.0467 fcmlt v15.8h, v4.8h, #0.0468 fcmlt v16.2s, v2.2s, #0.0469 fcmlt v15.4s, v4.4s, #0.0470 fcmlt v5.2d, v29.2d, #0.0471 fcmlt v16.4h, v2.4h, #0472 fcmlt v15.8h, v4.8h, #0473 fcmlt v16.2s, v2.2s, #0474 fcmlt v15.4s, v4.4s, #0475 fcmlt v5.2d, v29.2d, #0476 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