451 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 shift right by immediate7//------------------------------------------------------------------------------8 sshr v0.8b, v1.8b, #39 sshr v0.4h, v1.4h, #310 sshr v0.2s, v1.2s, #311 sshr v0.16b, v1.16b, #312 sshr v0.8h, v1.8h, #313 sshr v0.4s, v1.4s, #314 sshr v0.2d, v1.2d, #315// CHECK: sshr v0.8b, v1.8b, #3 // encoding: [0x20,0x04,0x0d,0x0f]16// CHECK: sshr v0.4h, v1.4h, #3 // encoding: [0x20,0x04,0x1d,0x0f]17// CHECK: sshr v0.2s, v1.2s, #3 // encoding: [0x20,0x04,0x3d,0x0f]18// CHECK: sshr v0.16b, v1.16b, #3 // encoding: [0x20,0x04,0x0d,0x4f]19// CHECK: sshr v0.8h, v1.8h, #3 // encoding: [0x20,0x04,0x1d,0x4f]20// CHECK: sshr v0.4s, v1.4s, #3 // encoding: [0x20,0x04,0x3d,0x4f]21// CHECK: sshr v0.2d, v1.2d, #3 // encoding: [0x20,0x04,0x7d,0x4f]22 23//------------------------------------------------------------------------------24// Vector shift right by immediate25//------------------------------------------------------------------------------26 ushr v0.8b, v1.8b, #327 ushr v0.4h, v1.4h, #328 ushr v0.2s, v1.2s, #329 ushr v0.16b, v1.16b, #330 ushr v0.8h, v1.8h, #331 ushr v0.4s, v1.4s, #332 ushr v0.2d, v1.2d, #333 34// CHECK: ushr v0.8b, v1.8b, #3 // encoding: [0x20,0x04,0x0d,0x2f]35// CHECK: ushr v0.4h, v1.4h, #3 // encoding: [0x20,0x04,0x1d,0x2f]36// CHECK: ushr v0.2s, v1.2s, #3 // encoding: [0x20,0x04,0x3d,0x2f]37// CHECK: ushr v0.16b, v1.16b, #3 // encoding: [0x20,0x04,0x0d,0x6f]38// CHECK: ushr v0.8h, v1.8h, #3 // encoding: [0x20,0x04,0x1d,0x6f]39// CHECK: ushr v0.4s, v1.4s, #3 // encoding: [0x20,0x04,0x3d,0x6f]40// CHECK: ushr v0.2d, v1.2d, #3 // encoding: [0x20,0x04,0x7d,0x6f]41 42//------------------------------------------------------------------------------43// Vector shift right and accumulate by immediate44//------------------------------------------------------------------------------45 ssra v0.8b, v1.8b, #346 ssra v0.4h, v1.4h, #347 ssra v0.2s, v1.2s, #348 ssra v0.16b, v1.16b, #349 ssra v0.8h, v1.8h, #350 ssra v0.4s, v1.4s, #351 ssra v0.2d, v1.2d, #352 53// CHECK: ssra v0.8b, v1.8b, #3 // encoding: [0x20,0x14,0x0d,0x0f]54// CHECK: ssra v0.4h, v1.4h, #3 // encoding: [0x20,0x14,0x1d,0x0f]55// CHECK: ssra v0.2s, v1.2s, #3 // encoding: [0x20,0x14,0x3d,0x0f]56// CHECK: ssra v0.16b, v1.16b, #3 // encoding: [0x20,0x14,0x0d,0x4f]57// CHECK: ssra v0.8h, v1.8h, #3 // encoding: [0x20,0x14,0x1d,0x4f]58// CHECK: ssra v0.4s, v1.4s, #3 // encoding: [0x20,0x14,0x3d,0x4f]59// CHECK: ssra v0.2d, v1.2d, #3 // encoding: [0x20,0x14,0x7d,0x4f]60 61//------------------------------------------------------------------------------62// Vector shift right and accumulate by immediate63//------------------------------------------------------------------------------64 usra v0.8b, v1.8b, #365 usra v0.4h, v1.4h, #366 usra v0.2s, v1.2s, #367 usra v0.16b, v1.16b, #368 usra v0.8h, v1.8h, #369 usra v0.4s, v1.4s, #370 usra v0.2d, v1.2d, #371 72// CHECK: usra v0.8b, v1.8b, #3 // encoding: [0x20,0x14,0x0d,0x2f]73// CHECK: usra v0.4h, v1.4h, #3 // encoding: [0x20,0x14,0x1d,0x2f]74// CHECK: usra v0.2s, v1.2s, #3 // encoding: [0x20,0x14,0x3d,0x2f]75// CHECK: usra v0.16b, v1.16b, #3 // encoding: [0x20,0x14,0x0d,0x6f]76// CHECK: usra v0.8h, v1.8h, #3 // encoding: [0x20,0x14,0x1d,0x6f]77// CHECK: usra v0.4s, v1.4s, #3 // encoding: [0x20,0x14,0x3d,0x6f]78// CHECK: usra v0.2d, v1.2d, #3 // encoding: [0x20,0x14,0x7d,0x6f]79 80//------------------------------------------------------------------------------81// Vector rounding shift right by immediate82//------------------------------------------------------------------------------83 srshr v0.8b, v1.8b, #384 srshr v0.4h, v1.4h, #385 srshr v0.2s, v1.2s, #386 srshr v0.16b, v1.16b, #387 srshr v0.8h, v1.8h, #388 srshr v0.4s, v1.4s, #389 srshr v0.2d, v1.2d, #390 91// CHECK: srshr v0.8b, v1.8b, #3 // encoding: [0x20,0x24,0x0d,0x0f]92// CHECK: srshr v0.4h, v1.4h, #3 // encoding: [0x20,0x24,0x1d,0x0f]93// CHECK: srshr v0.2s, v1.2s, #3 // encoding: [0x20,0x24,0x3d,0x0f]94// CHECK: srshr v0.16b, v1.16b, #3 // encoding: [0x20,0x24,0x0d,0x4f]95// CHECK: srshr v0.8h, v1.8h, #3 // encoding: [0x20,0x24,0x1d,0x4f]96// CHECK: srshr v0.4s, v1.4s, #3 // encoding: [0x20,0x24,0x3d,0x4f]97// CHECK: srshr v0.2d, v1.2d, #3 // encoding: [0x20,0x24,0x7d,0x4f]98 99 100//------------------------------------------------------------------------------101// Vecotr rounding shift right by immediate102//------------------------------------------------------------------------------103 urshr v0.8b, v1.8b, #3104 urshr v0.4h, v1.4h, #3105 urshr v0.2s, v1.2s, #3106 urshr v0.16b, v1.16b, #3107 urshr v0.8h, v1.8h, #3108 urshr v0.4s, v1.4s, #3109 urshr v0.2d, v1.2d, #3110 111// CHECK: urshr v0.8b, v1.8b, #3 // encoding: [0x20,0x24,0x0d,0x2f]112// CHECK: urshr v0.4h, v1.4h, #3 // encoding: [0x20,0x24,0x1d,0x2f]113// CHECK: urshr v0.2s, v1.2s, #3 // encoding: [0x20,0x24,0x3d,0x2f]114// CHECK: urshr v0.16b, v1.16b, #3 // encoding: [0x20,0x24,0x0d,0x6f]115// CHECK: urshr v0.8h, v1.8h, #3 // encoding: [0x20,0x24,0x1d,0x6f]116// CHECK: urshr v0.4s, v1.4s, #3 // encoding: [0x20,0x24,0x3d,0x6f]117// CHECK: urshr v0.2d, v1.2d, #3 // encoding: [0x20,0x24,0x7d,0x6f]118 119 120//------------------------------------------------------------------------------121// Vector rounding shift right and accumulate by immediate122//------------------------------------------------------------------------------123 srsra v0.8b, v1.8b, #3124 srsra v0.4h, v1.4h, #3125 srsra v0.2s, v1.2s, #3126 srsra v0.16b, v1.16b, #3127 srsra v0.8h, v1.8h, #3128 srsra v0.4s, v1.4s, #3129 srsra v0.2d, v1.2d, #3130 131// CHECK: srsra v0.8b, v1.8b, #3 // encoding: [0x20,0x34,0x0d,0x0f]132// CHECK: srsra v0.4h, v1.4h, #3 // encoding: [0x20,0x34,0x1d,0x0f]133// CHECK: srsra v0.2s, v1.2s, #3 // encoding: [0x20,0x34,0x3d,0x0f]134// CHECK: srsra v0.16b, v1.16b, #3 // encoding: [0x20,0x34,0x0d,0x4f]135// CHECK: srsra v0.8h, v1.8h, #3 // encoding: [0x20,0x34,0x1d,0x4f]136// CHECK: srsra v0.4s, v1.4s, #3 // encoding: [0x20,0x34,0x3d,0x4f]137// CHECK: srsra v0.2d, v1.2d, #3 // encoding: [0x20,0x34,0x7d,0x4f]138 139 140//------------------------------------------------------------------------------141// Vector rounding shift right and accumulate by immediate142//------------------------------------------------------------------------------143 ursra v0.8b, v1.8b, #3144 ursra v0.4h, v1.4h, #3145 ursra v0.2s, v1.2s, #3146 ursra v0.16b, v1.16b, #3147 ursra v0.8h, v1.8h, #3148 ursra v0.4s, v1.4s, #3149 ursra v0.2d, v1.2d, #3150 151// CHECK: ursra v0.8b, v1.8b, #3 // encoding: [0x20,0x34,0x0d,0x2f]152// CHECK: ursra v0.4h, v1.4h, #3 // encoding: [0x20,0x34,0x1d,0x2f]153// CHECK: ursra v0.2s, v1.2s, #3 // encoding: [0x20,0x34,0x3d,0x2f]154// CHECK: ursra v0.16b, v1.16b, #3 // encoding: [0x20,0x34,0x0d,0x6f]155// CHECK: ursra v0.8h, v1.8h, #3 // encoding: [0x20,0x34,0x1d,0x6f]156// CHECK: ursra v0.4s, v1.4s, #3 // encoding: [0x20,0x34,0x3d,0x6f]157// CHECK: ursra v0.2d, v1.2d, #3 // encoding: [0x20,0x34,0x7d,0x6f]158 159 160//------------------------------------------------------------------------------161// Vector shift right and insert by immediate162//------------------------------------------------------------------------------163 sri v0.8b, v1.8b, #3164 sri v0.4h, v1.4h, #3165 sri v0.2s, v1.2s, #3166 sri v0.16b, v1.16b, #3167 sri v0.8h, v1.8h, #3168 sri v0.4s, v1.4s, #3169 sri v0.2d, v1.2d, #3170 171// CHECK: sri v0.8b, v1.8b, #3 // encoding: [0x20,0x44,0x0d,0x2f]172// CHECK: sri v0.4h, v1.4h, #3 // encoding: [0x20,0x44,0x1d,0x2f]173// CHECK: sri v0.2s, v1.2s, #3 // encoding: [0x20,0x44,0x3d,0x2f]174// CHECK: sri v0.16b, v1.16b, #3 // encoding: [0x20,0x44,0x0d,0x6f]175// CHECK: sri v0.8h, v1.8h, #3 // encoding: [0x20,0x44,0x1d,0x6f]176// CHECK: sri v0.4s, v1.4s, #3 // encoding: [0x20,0x44,0x3d,0x6f]177 178 179//------------------------------------------------------------------------------180// Vector shift left and insert by immediate181//------------------------------------------------------------------------------182 sli v0.8b, v1.8b, #3183 sli v0.4h, v1.4h, #3184 sli v0.2s, v1.2s, #3185 sli v0.16b, v1.16b, #3186 sli v0.8h, v1.8h, #3187 sli v0.4s, v1.4s, #3188 sli v0.2d, v1.2d, #3189 190// CHECK: sli v0.8b, v1.8b, #3 // encoding: [0x20,0x54,0x0b,0x2f]191// CHECK: sli v0.4h, v1.4h, #3 // encoding: [0x20,0x54,0x13,0x2f]192// CHECK: sli v0.2s, v1.2s, #3 // encoding: [0x20,0x54,0x23,0x2f]193// CHECK: sli v0.16b, v1.16b, #3 // encoding: [0x20,0x54,0x0b,0x6f]194// CHECK: sli v0.8h, v1.8h, #3 // encoding: [0x20,0x54,0x13,0x6f]195// CHECK: sli v0.4s, v1.4s, #3 // encoding: [0x20,0x54,0x23,0x6f]196// CHECK: sli v0.2d, v1.2d, #3 // encoding: [0x20,0x54,0x43,0x6f]197 198//------------------------------------------------------------------------------199// Vector saturating shift left unsigned by immediate200//------------------------------------------------------------------------------201 sqshlu v0.8b, v1.8b, #3202 sqshlu v0.4h, v1.4h, #3203 sqshlu v0.2s, v1.2s, #3204 sqshlu v0.16b, v1.16b, #3205 sqshlu v0.8h, v1.8h, #3206 sqshlu v0.4s, v1.4s, #3207 sqshlu v0.2d, v1.2d, #3208 209// CHECK: sqshlu v0.8b, v1.8b, #3 // encoding: [0x20,0x64,0x0b,0x2f]210// CHECK: sqshlu v0.4h, v1.4h, #3 // encoding: [0x20,0x64,0x13,0x2f]211// CHECK: sqshlu v0.2s, v1.2s, #3 // encoding: [0x20,0x64,0x23,0x2f]212// CHECK: sqshlu v0.16b, v1.16b, #3 // encoding: [0x20,0x64,0x0b,0x6f]213// CHECK: sqshlu v0.8h, v1.8h, #3 // encoding: [0x20,0x64,0x13,0x6f]214// CHECK: sqshlu v0.4s, v1.4s, #3 // encoding: [0x20,0x64,0x23,0x6f]215// CHECK: sqshlu v0.2d, v1.2d, #3 // encoding: [0x20,0x64,0x43,0x6f]216 217 218//------------------------------------------------------------------------------219// Vector saturating shift left by immediate220//------------------------------------------------------------------------------221 sqshl v0.8b, v1.8b, #3222 sqshl v0.4h, v1.4h, #3223 sqshl v0.2s, v1.2s, #3224 sqshl v0.16b, v1.16b, #3225 sqshl v0.8h, v1.8h, #3226 sqshl v0.4s, v1.4s, #3227 sqshl v0.2d, v1.2d, #3228 229// CHECK: sqshl v0.8b, v1.8b, #3 // encoding: [0x20,0x74,0x0b,0x0f]230// CHECK: sqshl v0.4h, v1.4h, #3 // encoding: [0x20,0x74,0x13,0x0f]231// CHECK: sqshl v0.2s, v1.2s, #3 // encoding: [0x20,0x74,0x23,0x0f]232// CHECK: sqshl v0.16b, v1.16b, #3 // encoding: [0x20,0x74,0x0b,0x4f]233// CHECK: sqshl v0.8h, v1.8h, #3 // encoding: [0x20,0x74,0x13,0x4f]234// CHECK: sqshl v0.4s, v1.4s, #3 // encoding: [0x20,0x74,0x23,0x4f]235// CHECK: sqshl v0.2d, v1.2d, #3 // encoding: [0x20,0x74,0x43,0x4f]236 237 238 239//------------------------------------------------------------------------------240// Vector saturating shift left by immediate241//------------------------------------------------------------------------------242 uqshl v0.8b, v1.8b, #3243 uqshl v0.4h, v1.4h, #3244 uqshl v0.2s, v1.2s, #3245 uqshl v0.16b, v1.16b, #3246 uqshl v0.8h, v1.8h, #3247 uqshl v0.4s, v1.4s, #3248 uqshl v0.2d, v1.2d, #3249 250// CHECK: uqshl v0.8b, v1.8b, #3 // encoding: [0x20,0x74,0x0b,0x2f]251// CHECK: uqshl v0.4h, v1.4h, #3 // encoding: [0x20,0x74,0x13,0x2f]252// CHECK: uqshl v0.2s, v1.2s, #3 // encoding: [0x20,0x74,0x23,0x2f]253// CHECK: uqshl v0.16b, v1.16b, #3 // encoding: [0x20,0x74,0x0b,0x6f]254// CHECK: uqshl v0.8h, v1.8h, #3 // encoding: [0x20,0x74,0x13,0x6f]255// CHECK: uqshl v0.4s, v1.4s, #3 // encoding: [0x20,0x74,0x23,0x6f]256// CHECK: uqshl v0.2d, v1.2d, #3 // encoding: [0x20,0x74,0x43,0x6f]257 258 259//------------------------------------------------------------------------------260// Vector shift right narrow by immediate261//------------------------------------------------------------------------------262 shrn v0.8b, v1.8h, #3263 shrn v0.4h, v1.4s, #3264 shrn v0.2s, v1.2d, #3265 shrn2 v0.16b, v1.8h, #3266 shrn2 v0.8h, v1.4s, #3267 shrn2 v0.4s, v1.2d, #3268 269// CHECK: shrn v0.8b, v1.8h, #3 // encoding: [0x20,0x84,0x0d,0x0f]270// CHECK: shrn v0.4h, v1.4s, #3 // encoding: [0x20,0x84,0x1d,0x0f]271// CHECK: shrn v0.2s, v1.2d, #3 // encoding: [0x20,0x84,0x3d,0x0f]272// CHECK: shrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x84,0x0d,0x4f]273// CHECK: shrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x84,0x1d,0x4f]274// CHECK: shrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x84,0x3d,0x4f]275 276//------------------------------------------------------------------------------277// Vector saturating shift right unsigned narrow by immediate278//------------------------------------------------------------------------------279 sqshrun v0.8b, v1.8h, #3280 sqshrun v0.4h, v1.4s, #3281 sqshrun v0.2s, v1.2d, #3282 sqshrun2 v0.16b, v1.8h, #3283 sqshrun2 v0.8h, v1.4s, #3284 sqshrun2 v0.4s, v1.2d, #3285 286// CHECK: sqshrun v0.8b, v1.8h, #3 // encoding: [0x20,0x84,0x0d,0x2f]287// CHECK: sqshrun v0.4h, v1.4s, #3 // encoding: [0x20,0x84,0x1d,0x2f]288// CHECK: sqshrun v0.2s, v1.2d, #3 // encoding: [0x20,0x84,0x3d,0x2f]289// CHECK: sqshrun2 v0.16b, v1.8h, #3 // encoding: [0x20,0x84,0x0d,0x6f]290// CHECK: sqshrun2 v0.8h, v1.4s, #3 // encoding: [0x20,0x84,0x1d,0x6f]291// CHECK: sqshrun2 v0.4s, v1.2d, #3 // encoding: [0x20,0x84,0x3d,0x6f]292 293//------------------------------------------------------------------------------294// Vector rounding shift right narrow by immediate295//------------------------------------------------------------------------------296 rshrn v0.8b, v1.8h, #3297 rshrn v0.4h, v1.4s, #3298 rshrn v0.2s, v1.2d, #3299 rshrn2 v0.16b, v1.8h, #3300 rshrn2 v0.8h, v1.4s, #3301 rshrn2 v0.4s, v1.2d, #3302 303// CHECK: rshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x8c,0x0d,0x0f]304// CHECK: rshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x8c,0x1d,0x0f]305// CHECK: rshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x8c,0x3d,0x0f]306// CHECK: rshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x8c,0x0d,0x4f]307// CHECK: rshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x8c,0x1d,0x4f]308// CHECK: rshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x8c,0x3d,0x4f]309 310 311//------------------------------------------------------------------------------312// Vector saturating shift right rounded unsigned narrow by immediate313//------------------------------------------------------------------------------314 sqrshrun v0.8b, v1.8h, #3315 sqrshrun v0.4h, v1.4s, #3316 sqrshrun v0.2s, v1.2d, #3317 sqrshrun2 v0.16b, v1.8h, #3318 sqrshrun2 v0.8h, v1.4s, #3319 sqrshrun2 v0.4s, v1.2d, #3320 321// CHECK: sqrshrun v0.8b, v1.8h, #3 // encoding: [0x20,0x8c,0x0d,0x2f]322// CHECK: sqrshrun v0.4h, v1.4s, #3 // encoding: [0x20,0x8c,0x1d,0x2f]323// CHECK: sqrshrun v0.2s, v1.2d, #3 // encoding: [0x20,0x8c,0x3d,0x2f]324// CHECK: sqrshrun2 v0.16b, v1.8h, #3 // encoding: [0x20,0x8c,0x0d,0x6f]325// CHECK: sqrshrun2 v0.8h, v1.4s, #3 // encoding: [0x20,0x8c,0x1d,0x6f]326// CHECK: sqrshrun2 v0.4s, v1.2d, #3 // encoding: [0x20,0x8c,0x3d,0x6f]327 328 329//------------------------------------------------------------------------------330// Vector saturating shift right narrow by immediate331//------------------------------------------------------------------------------332 sqshrn v0.8b, v1.8h, #3333 sqshrn v0.4h, v1.4s, #3334 sqshrn v0.2s, v1.2d, #3335 sqshrn2 v0.16b, v1.8h, #3336 sqshrn2 v0.8h, v1.4s, #3337 sqshrn2 v0.4s, v1.2d, #3338 339// CHECK: sqshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x94,0x0d,0x0f]340// CHECK: sqshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x94,0x1d,0x0f]341// CHECK: sqshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x94,0x3d,0x0f]342// CHECK: sqshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x94,0x0d,0x4f]343// CHECK: sqshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x94,0x1d,0x4f]344// CHECK: sqshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x94,0x3d,0x4f]345 346 347//------------------------------------------------------------------------------348// Vector saturating shift right narrow by immediate349//------------------------------------------------------------------------------350 uqshrn v0.8b, v1.8h, #3351 uqshrn v0.4h, v1.4s, #3352 uqshrn v0.2s, v1.2d, #3353 uqshrn2 v0.16b, v1.8h, #3354 uqshrn2 v0.8h, v1.4s, #3355 uqshrn2 v0.4s, v1.2d, #3356 357// CHECK: uqshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x94,0x0d,0x2f]358// CHECK: uqshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x94,0x1d,0x2f]359// CHECK: uqshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x94,0x3d,0x2f]360// CHECK: uqshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x94,0x0d,0x6f]361// CHECK: uqshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x94,0x1d,0x6f]362// CHECK: uqshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x94,0x3d,0x6f]363 364//------------------------------------------------------------------------------365// Vector saturating shift right rounded narrow by immediate366//------------------------------------------------------------------------------367 sqrshrn v0.8b, v1.8h, #3368 sqrshrn v0.4h, v1.4s, #3369 sqrshrn v0.2s, v1.2d, #3370 sqrshrn2 v0.16b, v1.8h, #3371 sqrshrn2 v0.8h, v1.4s, #3372 sqrshrn2 v0.4s, v1.2d, #3373 374// CHECK: sqrshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x9c,0x0d,0x0f]375// CHECK: sqrshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x9c,0x1d,0x0f]376// CHECK: sqrshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x9c,0x3d,0x0f]377// CHECK: sqrshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x9c,0x0d,0x4f]378// CHECK: sqrshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x9c,0x1d,0x4f]379// CHECK: sqrshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x9c,0x3d,0x4f]380 381 382//------------------------------------------------------------------------------383// Vector saturating shift right rounded narrow by immediate384//------------------------------------------------------------------------------385 uqrshrn v0.8b, v1.8h, #3386 uqrshrn v0.4h, v1.4s, #3387 uqrshrn v0.2s, v1.2d, #3388 uqrshrn2 v0.16b, v1.8h, #3389 uqrshrn2 v0.8h, v1.4s, #3390 uqrshrn2 v0.4s, v1.2d, #3391 392// CHECK: uqrshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x9c,0x0d,0x2f]393// CHECK: uqrshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x9c,0x1d,0x2f]394// CHECK: uqrshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x9c,0x3d,0x2f]395// CHECK: uqrshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x9c,0x0d,0x6f]396// CHECK: uqrshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x9c,0x1d,0x6f]397// CHECK: uqrshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x9c,0x3d,0x6f]398 399 400//------------------------------------------------------------------------------401// Fixed-point convert to floating-point402//------------------------------------------------------------------------------403 scvtf v0.4h, v1.4h, #3404 scvtf v0.8h, v1.8h, #3405 scvtf v0.2s, v1.2s, #3406 scvtf v0.4s, v1.4s, #3407 scvtf v0.2d, v1.2d, #3408 ucvtf v0.4h, v1.4h, #3409 ucvtf v0.8h, v1.8h, #3410 ucvtf v0.2s, v1.2s, #3411 ucvtf v0.4s, v1.4s, #3412 ucvtf v0.2d, v1.2d, #3413 414// CHECK: scvtf v0.4h, v1.4h, #3 // encoding: [0x20,0xe4,0x1d,0x0f]415// CHECK: scvtf v0.8h, v1.8h, #3 // encoding: [0x20,0xe4,0x1d,0x4f]416// CHECK: scvtf v0.2s, v1.2s, #3 // encoding: [0x20,0xe4,0x3d,0x0f]417// CHECK: scvtf v0.4s, v1.4s, #3 // encoding: [0x20,0xe4,0x3d,0x4f]418// CHECK: scvtf v0.2d, v1.2d, #3 // encoding: [0x20,0xe4,0x7d,0x4f]419// CHECK: ucvtf v0.4h, v1.4h, #3 // encoding: [0x20,0xe4,0x1d,0x2f]420// CHECK: ucvtf v0.8h, v1.8h, #3 // encoding: [0x20,0xe4,0x1d,0x6f]421// CHECK: ucvtf v0.2s, v1.2s, #3 // encoding: [0x20,0xe4,0x3d,0x2f]422// CHECK: ucvtf v0.4s, v1.4s, #3 // encoding: [0x20,0xe4,0x3d,0x6f]423// CHECK: ucvtf v0.2d, v1.2d, #3 // encoding: [0x20,0xe4,0x7d,0x6f]424 425//------------------------------------------------------------------------------426// Floating-point convert to fixed-point427//------------------------------------------------------------------------------428 fcvtzs v0.4h, v1.4h, #3429 fcvtzs v0.8h, v1.8h, #3430 fcvtzs v0.2s, v1.2s, #3431 fcvtzs v0.4s, v1.4s, #3432 fcvtzs v0.2d, v1.2d, #3433 fcvtzu v0.4h, v1.4h, #3434 fcvtzu v0.8h, v1.8h, #3435 fcvtzu v0.2s, v1.2s, #3436 fcvtzu v0.4s, v1.4s, #3437 fcvtzu v0.2d, v1.2d, #3438 439 440// CHECK: fcvtzs v0.4h, v1.4h, #3 // encoding: [0x20,0xfc,0x1d,0x0f]441// CHECK: fcvtzs v0.8h, v1.8h, #3 // encoding: [0x20,0xfc,0x1d,0x4f]442// CHECK: fcvtzs v0.2s, v1.2s, #3 // encoding: [0x20,0xfc,0x3d,0x0f]443// CHECK: fcvtzs v0.4s, v1.4s, #3 // encoding: [0x20,0xfc,0x3d,0x4f]444// CHECK: fcvtzs v0.2d, v1.2d, #3 // encoding: [0x20,0xfc,0x7d,0x4f]445// CHECK: fcvtzu v0.4h, v1.4h, #3 // encoding: [0x20,0xfc,0x1d,0x2f]446// CHECK: fcvtzu v0.8h, v1.8h, #3 // encoding: [0x20,0xfc,0x1d,0x6f]447// CHECK: fcvtzu v0.2s, v1.2s, #3 // encoding: [0x20,0xfc,0x3d,0x2f]448// CHECK: fcvtzu v0.4s, v1.4s, #3 // encoding: [0x20,0xfc,0x3d,0x6f]449// CHECK: fcvtzu v0.2d, v1.2d, #3 // encoding: [0x20,0xfc,0x7d,0x6f]450 451