brintos

brintos / llvm-project-archived public Read only

0
0
Text · 32.2 KiB · 32dd486 Raw
743 lines · plain
1// RUN: llvm-mc -triple=arm64 -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s2 3// Check that the assembler can handle the documented syntax for AArch644 5 6//------------------------------------------------------------------------------7// Element reverse8//------------------------------------------------------------------------------9         rev64 v0.16b, v31.16b10         rev64 v2.8h, v4.8h11         rev64 v6.4s, v8.4s12         rev64 v1.8b, v9.8b13         rev64 v13.4h, v21.4h14         rev64 v4.2s, v0.2s15 16// CHECK:	rev64	v0.16b, v31.16b         // encoding: [0xe0,0x0b,0x20,0x4e]17// CHECK:	rev64	v2.8h, v4.8h            // encoding: [0x82,0x08,0x60,0x4e]18// CHECK:	rev64	v6.4s, v8.4s            // encoding: [0x06,0x09,0xa0,0x4e]19// CHECK:	rev64	v1.8b, v9.8b            // encoding: [0x21,0x09,0x20,0x0e]20// CHECK:	rev64	v13.4h, v21.4h          // encoding: [0xad,0x0a,0x60,0x0e]21// CHECK:	rev64	v4.2s, v0.2s            // encoding: [0x04,0x08,0xa0,0x0e]22 23         rev32 v30.16b, v31.16b24         rev32 v4.8h, v7.8h25         rev32 v21.8b, v1.8b26         rev32 v0.4h, v9.4h27 28// CHECK:	rev32	v30.16b, v31.16b        // encoding: [0xfe,0x0b,0x20,0x6e]29// CHECK:	rev32	v4.8h, v7.8h            // encoding: [0xe4,0x08,0x60,0x6e]30// CHECK:	rev32	v21.8b, v1.8b           // encoding: [0x35,0x08,0x20,0x2e]31// CHECK:	rev32	v0.4h, v9.4h            // encoding: [0x20,0x09,0x60,0x2e]32 33         rev16 v30.16b, v31.16b34         rev16 v21.8b, v1.8b35 36// CHECK:	rev16	v30.16b, v31.16b        // encoding: [0xfe,0x1b,0x20,0x4e]37// CHECK:	rev16	v21.8b, v1.8b           // encoding: [0x35,0x18,0x20,0x0e]38 39//------------------------------------------------------------------------------40// Signed integer pairwise add long41//------------------------------------------------------------------------------42 43         saddlp v3.8h, v21.16b44         saddlp v8.4h, v5.8b45         saddlp v9.4s, v1.8h46         saddlp v0.2s, v1.4h47         saddlp v12.2d, v4.4s48         saddlp v17.1d, v28.2s49 50// CHECK:	saddlp	v3.8h, v21.16b          // encoding: [0xa3,0x2a,0x20,0x4e]51// CHECK:	saddlp	v8.4h, v5.8b            // encoding: [0xa8,0x28,0x20,0x0e]52// CHECK:	saddlp	v9.4s, v1.8h            // encoding: [0x29,0x28,0x60,0x4e]53// CHECK:	saddlp	v0.2s, v1.4h            // encoding: [0x20,0x28,0x60,0x0e]54// CHECK:	saddlp	v12.2d, v4.4s           // encoding: [0x8c,0x28,0xa0,0x4e]55// CHECK:	saddlp	v17.1d, v28.2s          // encoding: [0x91,0x2b,0xa0,0x0e]56 57//------------------------------------------------------------------------------58// Unsigned integer pairwise add long59//------------------------------------------------------------------------------60 61         uaddlp v3.8h, v21.16b62         uaddlp v8.4h, v5.8b63         uaddlp v9.4s, v1.8h64         uaddlp v0.2s, v1.4h65         uaddlp v12.2d, v4.4s66         uaddlp v17.1d, v28.2s67 68// CHECK:	uaddlp	v3.8h, v21.16b          // encoding: [0xa3,0x2a,0x20,0x6e]69// CHECK:	uaddlp	v8.4h, v5.8b            // encoding: [0xa8,0x28,0x20,0x2e]70// CHECK:	uaddlp	v9.4s, v1.8h            // encoding: [0x29,0x28,0x60,0x6e]71// CHECK:	uaddlp	v0.2s, v1.4h            // encoding: [0x20,0x28,0x60,0x2e]72// CHECK:	uaddlp	v12.2d, v4.4s           // encoding: [0x8c,0x28,0xa0,0x6e]73// CHECK:	uaddlp	v17.1d, v28.2s          // encoding: [0x91,0x2b,0xa0,0x2e]74 75//------------------------------------------------------------------------------76// Signed integer pairwise add and accumulate long77//------------------------------------------------------------------------------78 79         sadalp v3.8h, v21.16b80         sadalp v8.4h, v5.8b81         sadalp v9.4s, v1.8h82         sadalp v0.2s, v1.4h83         sadalp v12.2d, v4.4s84         sadalp v17.1d, v28.2s85 86// CHECK:	sadalp	v3.8h, v21.16b          // encoding: [0xa3,0x6a,0x20,0x4e]87// CHECK:	sadalp	v8.4h, v5.8b            // encoding: [0xa8,0x68,0x20,0x0e]88// CHECK:	sadalp	v9.4s, v1.8h            // encoding: [0x29,0x68,0x60,0x4e]89// CHECK:	sadalp	v0.2s, v1.4h            // encoding: [0x20,0x68,0x60,0x0e]90// CHECK:	sadalp	v12.2d, v4.4s           // encoding: [0x8c,0x68,0xa0,0x4e]91// CHECK:	sadalp	v17.1d, v28.2s          // encoding: [0x91,0x6b,0xa0,0x0e]92 93//------------------------------------------------------------------------------94// Unsigned integer pairwise add and accumulate long95//------------------------------------------------------------------------------96 97         uadalp v3.8h, v21.16b98         uadalp v8.4h, v5.8b99         uadalp v9.4s, v1.8h100         uadalp v0.2s, v1.4h101         uadalp v12.2d, v4.4s102         uadalp v17.1d, v28.2s103 104// CHECK:	uadalp	v3.8h, v21.16b          // encoding: [0xa3,0x6a,0x20,0x6e]105// CHECK:	uadalp	v8.4h, v5.8b            // encoding: [0xa8,0x68,0x20,0x2e]106// CHECK:	uadalp	v9.4s, v1.8h            // encoding: [0x29,0x68,0x60,0x6e]107// CHECK:	uadalp	v0.2s, v1.4h            // encoding: [0x20,0x68,0x60,0x2e]108// CHECK:	uadalp	v12.2d, v4.4s           // encoding: [0x8c,0x68,0xa0,0x6e]109// CHECK:	uadalp	v17.1d, v28.2s          // encoding: [0x91,0x6b,0xa0,0x2e]110 111//------------------------------------------------------------------------------112// Signed integer saturating accumulate of unsigned value113//------------------------------------------------------------------------------114 115         suqadd v0.16b, v31.16b116         suqadd v2.8h, v4.8h117         suqadd v6.4s, v8.4s118         suqadd v6.2d, v8.2d119         suqadd v1.8b, v9.8b120         suqadd v13.4h, v21.4h121         suqadd v4.2s, v0.2s122 123// CHECK:	suqadd	v0.16b, v31.16b         // encoding: [0xe0,0x3b,0x20,0x4e]124// CHECK:	suqadd	v2.8h, v4.8h            // encoding: [0x82,0x38,0x60,0x4e]125// CHECK:	suqadd	v6.4s, v8.4s            // encoding: [0x06,0x39,0xa0,0x4e]126// CHECK:	suqadd	v6.2d, v8.2d            // encoding: [0x06,0x39,0xe0,0x4e]127// CHECK:	suqadd	v1.8b, v9.8b            // encoding: [0x21,0x39,0x20,0x0e]128// CHECK:	suqadd	v13.4h, v21.4h          // encoding: [0xad,0x3a,0x60,0x0e]129// CHECK:	suqadd	v4.2s, v0.2s            // encoding: [0x04,0x38,0xa0,0x0e]130 131//------------------------------------------------------------------------------132// Unsigned integer saturating accumulate of signed value133//------------------------------------------------------------------------------134 135         usqadd v0.16b, v31.16b136         usqadd v2.8h, v4.8h137         usqadd v6.4s, v8.4s138         usqadd v6.2d, v8.2d139         usqadd v1.8b, v9.8b140         usqadd v13.4h, v21.4h141         usqadd v4.2s, v0.2s142 143// CHECK:	usqadd	v0.16b, v31.16b         // encoding: [0xe0,0x3b,0x20,0x6e]144// CHECK:	usqadd	v2.8h, v4.8h            // encoding: [0x82,0x38,0x60,0x6e]145// CHECK:	usqadd	v6.4s, v8.4s            // encoding: [0x06,0x39,0xa0,0x6e]146// CHECK:	usqadd	v6.2d, v8.2d            // encoding: [0x06,0x39,0xe0,0x6e]147// CHECK:	usqadd	v1.8b, v9.8b            // encoding: [0x21,0x39,0x20,0x2e]148// CHECK:	usqadd	v13.4h, v21.4h          // encoding: [0xad,0x3a,0x60,0x2e]149// CHECK:	usqadd	v4.2s, v0.2s            // encoding: [0x04,0x38,0xa0,0x2e]150 151//------------------------------------------------------------------------------152// Integer saturating absolute153//------------------------------------------------------------------------------154 155         sqabs v0.16b, v31.16b156         sqabs v2.8h, v4.8h157         sqabs v6.4s, v8.4s158         sqabs v6.2d, v8.2d159         sqabs v1.8b, v9.8b160         sqabs v13.4h, v21.4h161         sqabs v4.2s, v0.2s162 163// CHECK:	sqabs	v0.16b, v31.16b         // encoding: [0xe0,0x7b,0x20,0x4e]164// CHECK:	sqabs	v2.8h, v4.8h            // encoding: [0x82,0x78,0x60,0x4e]165// CHECK:	sqabs	v6.4s, v8.4s            // encoding: [0x06,0x79,0xa0,0x4e]166// CHECK:	sqabs	v6.2d, v8.2d            // encoding: [0x06,0x79,0xe0,0x4e]167// CHECK:	sqabs	v1.8b, v9.8b            // encoding: [0x21,0x79,0x20,0x0e]168// CHECK:	sqabs	v13.4h, v21.4h          // encoding: [0xad,0x7a,0x60,0x0e]169// CHECK:	sqabs	v4.2s, v0.2s            // encoding: [0x04,0x78,0xa0,0x0e]170 171//------------------------------------------------------------------------------172// Signed integer saturating negate173//------------------------------------------------------------------------------174 175         sqneg v0.16b, v31.16b176         sqneg v2.8h, v4.8h177         sqneg v6.4s, v8.4s178         sqneg v6.2d, v8.2d179         sqneg v1.8b, v9.8b180         sqneg v13.4h, v21.4h181         sqneg v4.2s, v0.2s182 183// CHECK:	sqneg	v0.16b, v31.16b         // encoding: [0xe0,0x7b,0x20,0x6e]184// CHECK:	sqneg	v2.8h, v4.8h            // encoding: [0x82,0x78,0x60,0x6e]185// CHECK:	sqneg	v6.4s, v8.4s            // encoding: [0x06,0x79,0xa0,0x6e]186// CHECK:	sqneg	v6.2d, v8.2d            // encoding: [0x06,0x79,0xe0,0x6e]187// CHECK:	sqneg	v1.8b, v9.8b            // encoding: [0x21,0x79,0x20,0x2e]188// CHECK:	sqneg	v13.4h, v21.4h          // encoding: [0xad,0x7a,0x60,0x2e]189// CHECK:	sqneg	v4.2s, v0.2s            // encoding: [0x04,0x78,0xa0,0x2e]190 191//------------------------------------------------------------------------------192// Integer absolute193//------------------------------------------------------------------------------194 195         abs v0.16b, v31.16b196         abs v2.8h, v4.8h197         abs v6.4s, v8.4s198         abs v6.2d, v8.2d199         abs v1.8b, v9.8b200         abs v13.4h, v21.4h201         abs v4.2s, v0.2s202 203// CHECK:	abs	v0.16b, v31.16b         // encoding: [0xe0,0xbb,0x20,0x4e]204// CHECK:	abs	v2.8h, v4.8h            // encoding: [0x82,0xb8,0x60,0x4e]205// CHECK:	abs	v6.4s, v8.4s            // encoding: [0x06,0xb9,0xa0,0x4e]206// CHECK:	abs	v6.2d, v8.2d            // encoding: [0x06,0xb9,0xe0,0x4e]207// CHECK:	abs	v1.8b, v9.8b            // encoding: [0x21,0xb9,0x20,0x0e]208// CHECK:	abs	v13.4h, v21.4h          // encoding: [0xad,0xba,0x60,0x0e]209// CHECK:	abs	v4.2s, v0.2s            // encoding: [0x04,0xb8,0xa0,0x0e]210 211//------------------------------------------------------------------------------212// Integer negate213//------------------------------------------------------------------------------214 215         neg v0.16b, v31.16b216         neg v2.8h, v4.8h217         neg v6.4s, v8.4s218         neg v6.2d, v8.2d219         neg v1.8b, v9.8b220         neg v13.4h, v21.4h221         neg v4.2s, v0.2s222 223// CHECK:	neg	v0.16b, v31.16b         // encoding: [0xe0,0xbb,0x20,0x6e]224// CHECK:	neg	v2.8h, v4.8h            // encoding: [0x82,0xb8,0x60,0x6e]225// CHECK:	neg	v6.4s, v8.4s            // encoding: [0x06,0xb9,0xa0,0x6e]226// CHECK:	neg	v6.2d, v8.2d            // encoding: [0x06,0xb9,0xe0,0x6e]227// CHECK:	neg	v1.8b, v9.8b            // encoding: [0x21,0xb9,0x20,0x2e]228// CHECK:	neg	v13.4h, v21.4h          // encoding: [0xad,0xba,0x60,0x2e]229// CHECK:	neg	v4.2s, v0.2s            // encoding: [0x04,0xb8,0xa0,0x2e]230 231//------------------------------------------------------------------------------232// Integer count leading sign bits233//------------------------------------------------------------------------------234 235         cls v0.16b, v31.16b236         cls v2.8h, v4.8h237         cls v6.4s, v8.4s238         cls v1.8b, v9.8b239         cls v13.4h, v21.4h240         cls v4.2s, v0.2s241 242// CHECK:	cls	v0.16b, v31.16b         // encoding: [0xe0,0x4b,0x20,0x4e]243// CHECK:	cls	v2.8h, v4.8h            // encoding: [0x82,0x48,0x60,0x4e]244// CHECK:	cls	v6.4s, v8.4s            // encoding: [0x06,0x49,0xa0,0x4e]245// CHECK:	cls	v1.8b, v9.8b            // encoding: [0x21,0x49,0x20,0x0e]246// CHECK:	cls	v13.4h, v21.4h          // encoding: [0xad,0x4a,0x60,0x0e]247// CHECK:	cls	v4.2s, v0.2s            // encoding: [0x04,0x48,0xa0,0x0e]248 249//------------------------------------------------------------------------------250// Integer count leading zeros251//------------------------------------------------------------------------------252 253         clz v0.16b, v31.16b254         clz v2.8h, v4.8h255         clz v6.4s, v8.4s256         clz v1.8b, v9.8b257         clz v13.4h, v21.4h258         clz v4.2s, v0.2s259 260// CHECK:	clz	v0.16b, v31.16b         // encoding: [0xe0,0x4b,0x20,0x6e]261// CHECK:	clz	v2.8h, v4.8h            // encoding: [0x82,0x48,0x60,0x6e]262// CHECK:	clz	v6.4s, v8.4s            // encoding: [0x06,0x49,0xa0,0x6e]263// CHECK:	clz	v1.8b, v9.8b            // encoding: [0x21,0x49,0x20,0x2e]264// CHECK:	clz	v13.4h, v21.4h          // encoding: [0xad,0x4a,0x60,0x2e]265// CHECK:	clz	v4.2s, v0.2s            // encoding: [0x04,0x48,0xa0,0x2e]266 267//------------------------------------------------------------------------------268// Population count269//------------------------------------------------------------------------------270 271         cnt v0.16b, v31.16b272         cnt v1.8b, v9.8b273 274// CHECK:	cnt	v0.16b, v31.16b         // encoding: [0xe0,0x5b,0x20,0x4e]275// CHECK:	cnt	v1.8b, v9.8b            // encoding: [0x21,0x59,0x20,0x0e]276 277//------------------------------------------------------------------------------278// Bitwise NOT279//------------------------------------------------------------------------------280 281         not v0.16b, v31.16b282         not v1.8b, v9.8b283 284// CHECK: {{mvn|not}} v0.16b, v31.16b         // encoding: [0xe0,0x5b,0x20,0x6e]285// CHECK: {{mvn|not}} v1.8b, v9.8b            // encoding: [0x21,0x59,0x20,0x2e]286 287//------------------------------------------------------------------------------288// Bitwise reverse289//------------------------------------------------------------------------------290 291         rbit v0.16b, v31.16b292         rbit v1.8b, v9.8b293 294// CHECK:	rbit	v0.16b, v31.16b         // encoding: [0xe0,0x5b,0x60,0x6e]295// CHECK:	rbit	v1.8b, v9.8b            // encoding: [0x21,0x59,0x60,0x2e]296 297//------------------------------------------------------------------------------298// Floating-point absolute299//------------------------------------------------------------------------------300 301         fabs v4.4h, v0.4h302         fabs v6.8h, v8.8h303         fabs v6.4s, v8.4s304         fabs v6.2d, v8.2d305         fabs v4.2s, v0.2s306 307// CHECK: fabs    v4.4h, v0.4h            // encoding: [0x04,0xf8,0xf8,0x0e]308// CHECK: fabs    v6.8h, v8.8h            // encoding: [0x06,0xf9,0xf8,0x4e]309// CHECK:	fabs	v6.4s, v8.4s            // encoding: [0x06,0xf9,0xa0,0x4e]310// CHECK:	fabs	v6.2d, v8.2d            // encoding: [0x06,0xf9,0xe0,0x4e]311// CHECK:	fabs	v4.2s, v0.2s            // encoding: [0x04,0xf8,0xa0,0x0e]312 313//------------------------------------------------------------------------------314// Floating-point negate315//------------------------------------------------------------------------------316 317         fneg v4.4h, v0.4h318         fneg v6.8h, v8.8h319         fneg v6.4s, v8.4s320         fneg v6.2d, v8.2d321         fneg v4.2s, v0.2s322 323// CHECK: fneg    v4.4h, v0.4h            // encoding: [0x04,0xf8,0xf8,0x2e]324// CHECK: fneg    v6.8h, v8.8h            // encoding: [0x06,0xf9,0xf8,0x6e]325// CHECK:	fneg	v6.4s, v8.4s            // encoding: [0x06,0xf9,0xa0,0x6e]326// CHECK:	fneg	v6.2d, v8.2d            // encoding: [0x06,0xf9,0xe0,0x6e]327// CHECK:	fneg	v4.2s, v0.2s            // encoding: [0x04,0xf8,0xa0,0x2e]328 329//------------------------------------------------------------------------------330// Integer extract and narrow331//------------------------------------------------------------------------------332 333         xtn2 v0.16b, v31.8h334         xtn2 v2.8h, v4.4s335         xtn2 v6.4s, v8.2d336         xtn v1.8b, v9.8h337         xtn v13.4h, v21.4s338         xtn v4.2s, v0.2d339 340// CHECK:	xtn2	v0.16b, v31.8h          // encoding: [0xe0,0x2b,0x21,0x4e]341// CHECK:	xtn2	v2.8h, v4.4s            // encoding: [0x82,0x28,0x61,0x4e]342// CHECK:	xtn2	v6.4s, v8.2d            // encoding: [0x06,0x29,0xa1,0x4e]343// CHECK:	xtn	v1.8b, v9.8h            // encoding: [0x21,0x29,0x21,0x0e]344// CHECK:	xtn	v13.4h, v21.4s          // encoding: [0xad,0x2a,0x61,0x0e]345// CHECK:	xtn	v4.2s, v0.2d            // encoding: [0x04,0x28,0xa1,0x0e]346 347//------------------------------------------------------------------------------348// Signed integer saturating extract and unsigned narrow349//------------------------------------------------------------------------------350 351         sqxtun2 v0.16b, v31.8h352         sqxtun2 v2.8h, v4.4s353         sqxtun2 v6.4s, v8.2d354         sqxtun v1.8b, v9.8h355         sqxtun v13.4h, v21.4s356         sqxtun v4.2s, v0.2d357 358// CHECK:	sqxtun2	v0.16b, v31.8h          // encoding: [0xe0,0x2b,0x21,0x6e]359// CHECK:	sqxtun2	v2.8h, v4.4s            // encoding: [0x82,0x28,0x61,0x6e]360// CHECK:	sqxtun2	v6.4s, v8.2d            // encoding: [0x06,0x29,0xa1,0x6e]361// CHECK:	sqxtun	v1.8b, v9.8h            // encoding: [0x21,0x29,0x21,0x2e]362// CHECK:	sqxtun	v13.4h, v21.4s          // encoding: [0xad,0x2a,0x61,0x2e]363// CHECK:	sqxtun	v4.2s, v0.2d            // encoding: [0x04,0x28,0xa1,0x2e]364 365//------------------------------------------------------------------------------366// Signed integer saturating extract and narrow367//------------------------------------------------------------------------------368 369         sqxtn2 v0.16b, v31.8h370         sqxtn2 v2.8h, v4.4s371         sqxtn2 v6.4s, v8.2d372         sqxtn v1.8b, v9.8h373         sqxtn v13.4h, v21.4s374         sqxtn v4.2s, v0.2d375 376// CHECK:	sqxtn2	v0.16b, v31.8h          // encoding: [0xe0,0x4b,0x21,0x4e]377// CHECK:	sqxtn2	v2.8h, v4.4s            // encoding: [0x82,0x48,0x61,0x4e]378// CHECK:	sqxtn2	v6.4s, v8.2d            // encoding: [0x06,0x49,0xa1,0x4e]379// CHECK:	sqxtn	v1.8b, v9.8h            // encoding: [0x21,0x49,0x21,0x0e]380// CHECK:	sqxtn	v13.4h, v21.4s          // encoding: [0xad,0x4a,0x61,0x0e]381// CHECK:	sqxtn	v4.2s, v0.2d            // encoding: [0x04,0x48,0xa1,0x0e]382 383//------------------------------------------------------------------------------384// Unsigned integer saturating extract and narrow385//------------------------------------------------------------------------------386 387         uqxtn2 v0.16b, v31.8h388         uqxtn2 v2.8h, v4.4s389         uqxtn2 v6.4s, v8.2d390         uqxtn v1.8b, v9.8h391         uqxtn v13.4h, v21.4s392         uqxtn v4.2s, v0.2d393 394// CHECK:	uqxtn2	v0.16b, v31.8h          // encoding: [0xe0,0x4b,0x21,0x6e]395// CHECK:	uqxtn2	v2.8h, v4.4s            // encoding: [0x82,0x48,0x61,0x6e]396// CHECK:	uqxtn2	v6.4s, v8.2d            // encoding: [0x06,0x49,0xa1,0x6e]397// CHECK:	uqxtn	v1.8b, v9.8h            // encoding: [0x21,0x49,0x21,0x2e]398// CHECK:	uqxtn	v13.4h, v21.4s          // encoding: [0xad,0x4a,0x61,0x2e]399// CHECK:	uqxtn	v4.2s, v0.2d            // encoding: [0x04,0x48,0xa1,0x2e]400 401//------------------------------------------------------------------------------402// Integer shift left long403//------------------------------------------------------------------------------404 405         shll2 v2.8h, v4.16b, #8406         shll2 v6.4s, v8.8h, #16407         shll2 v6.2d, v8.4s, #32408         shll v2.8h, v4.8b, #8409         shll v6.4s, v8.4h, #16410         shll v6.2d, v8.2s, #32411 412// CHECK:	shll2	v2.8h, v4.16b, #8      // encoding: [0x82,0x38,0x21,0x6e]413// CHECK:	shll2	v6.4s, v8.8h, #16      // encoding: [0x06,0x39,0x61,0x6e]414// CHECK:	shll2	v6.2d, v8.4s, #32      // encoding: [0x06,0x39,0xa1,0x6e]415// CHECK:	shll	v2.8h, v4.8b, #8       // encoding: [0x82,0x38,0x21,0x2e]416// CHECK:	shll	v6.4s, v8.4h, #16      // encoding: [0x06,0x39,0x61,0x2e]417// CHECK:	shll	v6.2d, v8.2s, #32      // encoding: [0x06,0x39,0xa1,0x2e]418 419//------------------------------------------------------------------------------420// Floating-point convert downsize421//------------------------------------------------------------------------------422 423         fcvtn2 v2.8h, v4.4s424         fcvtn2 v6.4s, v8.2d425         fcvtn v13.4h, v21.4s426         fcvtn v4.2s, v0.2d427 428// CHECK:	fcvtn2	v2.8h, v4.4s            // encoding: [0x82,0x68,0x21,0x4e]429// CHECK:	fcvtn2	v6.4s, v8.2d            // encoding: [0x06,0x69,0x61,0x4e]430// CHECK:	fcvtn	v13.4h, v21.4s          // encoding: [0xad,0x6a,0x21,0x0e]431// CHECK:	fcvtn	v4.2s, v0.2d            // encoding: [0x04,0x68,0x61,0x0e]432 433//------------------------------------------------------------------------------434// Floating-point convert downsize with inexact435//------------------------------------------------------------------------------436 437         fcvtxn2 v6.4s, v8.2d438         fcvtxn v4.2s, v0.2d439 440// CHECK:	fcvtxn2	v6.4s, v8.2d            // encoding: [0x06,0x69,0x61,0x6e]441// CHECK:	fcvtxn	v4.2s, v0.2d            // encoding: [0x04,0x68,0x61,0x2e]442 443//------------------------------------------------------------------------------444// Floating-point convert upsize445//------------------------------------------------------------------------------446 447         fcvtl v9.4s, v1.4h448         fcvtl v0.2d, v1.2s449         fcvtl2 v12.4s, v4.8h450         fcvtl2 v17.2d, v28.4s451 452// CHECK:	fcvtl	v9.4s, v1.4h            // encoding: [0x29,0x78,0x21,0x0e]453// CHECK:	fcvtl	v0.2d, v1.2s            // encoding: [0x20,0x78,0x61,0x0e]454// CHECK:	fcvtl2	v12.4s, v4.8h           // encoding: [0x8c,0x78,0x21,0x4e]455// CHECK:	fcvtl2	v17.2d, v28.4s          // encoding: [0x91,0x7b,0x61,0x4e]456 457//------------------------------------------------------------------------------458// Floating-point round to integral459//------------------------------------------------------------------------------460 461         frintn v4.4h, v0.4h462         frintn v6.8h, v8.8h463         frintn v6.4s, v8.4s464         frintn v6.2d, v8.2d465         frintn v4.2s, v0.2s466 467// CHECK: frintn  v4.4h, v0.4h            // encoding: [0x04,0x88,0x79,0x0e]468// CHECK: frintn  v6.8h, v8.8h            // encoding: [0x06,0x89,0x79,0x4e]469// CHECK:	frintn	v6.4s, v8.4s            // encoding: [0x06,0x89,0x21,0x4e]470// CHECK:	frintn	v6.2d, v8.2d            // encoding: [0x06,0x89,0x61,0x4e]471// CHECK:	frintn	v4.2s, v0.2s            // encoding: [0x04,0x88,0x21,0x0e]472 473         frinta v4.4h, v0.4h474         frinta v6.8h, v8.8h475         frinta v6.4s, v8.4s476         frinta v6.2d, v8.2d477         frinta v4.2s, v0.2s478 479// CHECK: frinta  v4.4h, v0.4h            // encoding: [0x04,0x88,0x79,0x2e]480// CHECK: frinta  v6.8h, v8.8h            // encoding: [0x06,0x89,0x79,0x6e]481// CHECK:	frinta	v6.4s, v8.4s            // encoding: [0x06,0x89,0x21,0x6e]482// CHECK:	frinta	v6.2d, v8.2d            // encoding: [0x06,0x89,0x61,0x6e]483// CHECK:	frinta	v4.2s, v0.2s            // encoding: [0x04,0x88,0x21,0x2e]484 485         frintp v4.4h, v0.4h486         frintp v6.8h, v8.8h487         frintp v6.4s, v8.4s488         frintp v6.2d, v8.2d489         frintp v4.2s, v0.2s490 491// CHECK: frintp  v4.4h, v0.4h            // encoding: [0x04,0x88,0xf9,0x0e]492// CHECK: frintp  v6.8h, v8.8h            // encoding: [0x06,0x89,0xf9,0x4e]493// CHECK:	frintp	v6.4s, v8.4s            // encoding: [0x06,0x89,0xa1,0x4e]494// CHECK:	frintp	v6.2d, v8.2d            // encoding: [0x06,0x89,0xe1,0x4e]495// CHECK:	frintp	v4.2s, v0.2s            // encoding: [0x04,0x88,0xa1,0x0e]496 497         frintm v4.4h, v0.4h498         frintm v6.8h, v8.8h499         frintm v6.4s, v8.4s500         frintm v6.2d, v8.2d501         frintm v4.2s, v0.2s502 503// CHECK: frintm  v4.4h, v0.4h            // encoding: [0x04,0x98,0x79,0x0e]504// CHECK: frintm  v6.8h, v8.8h            // encoding: [0x06,0x99,0x79,0x4e]505// CHECK:	frintm	v6.4s, v8.4s            // encoding: [0x06,0x99,0x21,0x4e]506// CHECK:	frintm	v6.2d, v8.2d            // encoding: [0x06,0x99,0x61,0x4e]507// CHECK:	frintm	v4.2s, v0.2s            // encoding: [0x04,0x98,0x21,0x0e]508 509         frintx v4.4h, v0.4h510         frintx v6.8h, v8.8h511         frintx v6.4s, v8.4s512         frintx v6.2d, v8.2d513         frintx v4.2s, v0.2s514 515// CHECK: frintx  v4.4h, v0.4h            // encoding: [0x04,0x98,0x79,0x2e]516// CHECK: frintx  v6.8h, v8.8h            // encoding: [0x06,0x99,0x79,0x6e]517// CHECK:	frintx	v6.4s, v8.4s            // encoding: [0x06,0x99,0x21,0x6e]518// CHECK:	frintx	v6.2d, v8.2d            // encoding: [0x06,0x99,0x61,0x6e]519// CHECK:	frintx	v4.2s, v0.2s            // encoding: [0x04,0x98,0x21,0x2e]520 521         frintz v4.4h, v0.4h522         frintz v6.8h, v8.8h523         frintz v6.4s, v8.4s524         frintz v6.2d, v8.2d525         frintz v4.2s, v0.2s526 527// CHECK: frintz  v4.4h, v0.4h            // encoding: [0x04,0x98,0xf9,0x0e]528// CHECK: frintz  v6.8h, v8.8h            // encoding: [0x06,0x99,0xf9,0x4e]529// CHECK:	frintz	v6.4s, v8.4s            // encoding: [0x06,0x99,0xa1,0x4e]530// CHECK:	frintz	v6.2d, v8.2d            // encoding: [0x06,0x99,0xe1,0x4e]531// CHECK:	frintz	v4.2s, v0.2s            // encoding: [0x04,0x98,0xa1,0x0e]532 533         frinti v4.4h, v0.4h534         frinti v6.8h, v8.8h535         frinti v6.4s, v8.4s536         frinti v6.2d, v8.2d537         frinti v4.2s, v0.2s538 539// CHECK: frinti  v4.4h, v0.4h            // encoding: [0x04,0x98,0xf9,0x2e]540// CHECK: frinti  v6.8h, v8.8h            // encoding: [0x06,0x99,0xf9,0x6e]541// CHECK:	frinti	v6.4s, v8.4s            // encoding: [0x06,0x99,0xa1,0x6e]542// CHECK:	frinti	v6.2d, v8.2d            // encoding: [0x06,0x99,0xe1,0x6e]543// CHECK:	frinti	v4.2s, v0.2s            // encoding: [0x04,0x98,0xa1,0x2e]544 545//------------------------------------------------------------------------------546// Floating-point convert to integer547//------------------------------------------------------------------------------548 549         fcvtns v4.4h, v0.4h550         fcvtns v6.8h, v8.8h551         fcvtns v6.4s, v8.4s552         fcvtns v6.2d, v8.2d553         fcvtns v4.2s, v0.2s554 555// CHECK: fcvtns  v4.4h, v0.4h            // encoding: [0x04,0xa8,0x79,0x0e]556// CHECK: fcvtns  v6.8h, v8.8h            // encoding: [0x06,0xa9,0x79,0x4e]557// CHECK:	fcvtns	v6.4s, v8.4s            // encoding: [0x06,0xa9,0x21,0x4e]558// CHECK:	fcvtns	v6.2d, v8.2d            // encoding: [0x06,0xa9,0x61,0x4e]559// CHECK:	fcvtns	v4.2s, v0.2s            // encoding: [0x04,0xa8,0x21,0x0e]560 561         fcvtnu v4.4h, v0.4h562         fcvtnu v6.8h, v8.8h563         fcvtnu v6.4s, v8.4s564         fcvtnu v6.2d, v8.2d565         fcvtnu v4.2s, v0.2s566 567// CHECK: fcvtnu  v4.4h, v0.4h            // encoding: [0x04,0xa8,0x79,0x2e]568// CHECK: fcvtnu  v6.8h, v8.8h            // encoding: [0x06,0xa9,0x79,0x6e]569// CHECK:	fcvtnu	v6.4s, v8.4s            // encoding: [0x06,0xa9,0x21,0x6e]570// CHECK:	fcvtnu	v6.2d, v8.2d            // encoding: [0x06,0xa9,0x61,0x6e]571// CHECK:	fcvtnu	v4.2s, v0.2s            // encoding: [0x04,0xa8,0x21,0x2e]572 573         fcvtps v4.4h, v0.4h574         fcvtps v6.8h, v8.8h575         fcvtps v6.4s, v8.4s576         fcvtps v6.2d, v8.2d577         fcvtps v4.2s, v0.2s578 579// CHECK: fcvtps  v4.4h, v0.4h            // encoding: [0x04,0xa8,0xf9,0x0e]580// CHECK: fcvtps  v6.8h, v8.8h            // encoding: [0x06,0xa9,0xf9,0x4e]581// CHECK:	fcvtps	v6.4s, v8.4s            // encoding: [0x06,0xa9,0xa1,0x4e]582// CHECK:	fcvtps	v6.2d, v8.2d            // encoding: [0x06,0xa9,0xe1,0x4e]583// CHECK:	fcvtps	v4.2s, v0.2s            // encoding: [0x04,0xa8,0xa1,0x0e]584 585         fcvtpu v4.4h, v0.4h586         fcvtpu v6.8h, v8.8h587         fcvtpu v6.4s, v8.4s588         fcvtpu v6.2d, v8.2d589         fcvtpu v4.2s, v0.2s590 591// CHECK: fcvtpu  v4.4h, v0.4h            // encoding: [0x04,0xa8,0xf9,0x2e]592// CHECK: fcvtpu  v6.8h, v8.8h            // encoding: [0x06,0xa9,0xf9,0x6e]593// CHECK:	fcvtpu	v6.4s, v8.4s            // encoding: [0x06,0xa9,0xa1,0x6e]594// CHECK:	fcvtpu	v6.2d, v8.2d            // encoding: [0x06,0xa9,0xe1,0x6e]595// CHECK:	fcvtpu	v4.2s, v0.2s            // encoding: [0x04,0xa8,0xa1,0x2e]596 597         fcvtms v4.4h, v0.4h598         fcvtms v6.8h, v8.8h599         fcvtms v6.4s, v8.4s600         fcvtms v6.2d, v8.2d601         fcvtms v4.2s, v0.2s602 603// CHECK: fcvtms  v4.4h, v0.4h            // encoding: [0x04,0xb8,0x79,0x0e]604// CHECK: fcvtms  v6.8h, v8.8h            // encoding: [0x06,0xb9,0x79,0x4e]605// CHECK:	fcvtms	v6.4s, v8.4s            // encoding: [0x06,0xb9,0x21,0x4e]606// CHECK:	fcvtms	v6.2d, v8.2d            // encoding: [0x06,0xb9,0x61,0x4e]607// CHECK:	fcvtms	v4.2s, v0.2s            // encoding: [0x04,0xb8,0x21,0x0e]608 609         fcvtmu v4.4h, v0.4h610         fcvtmu v6.8h, v8.8h611         fcvtmu v6.4s, v8.4s612         fcvtmu v6.2d, v8.2d613         fcvtmu v4.2s, v0.2s614 615// CHECK: fcvtmu  v4.4h, v0.4h            // encoding: [0x04,0xb8,0x79,0x2e]616// CHECK: fcvtmu  v6.8h, v8.8h            // encoding: [0x06,0xb9,0x79,0x6e]617// CHECK:	fcvtmu	v6.4s, v8.4s            // encoding: [0x06,0xb9,0x21,0x6e]618// CHECK:	fcvtmu	v6.2d, v8.2d            // encoding: [0x06,0xb9,0x61,0x6e]619// CHECK:	fcvtmu	v4.2s, v0.2s            // encoding: [0x04,0xb8,0x21,0x2e]620 621         fcvtzs v4.4h, v0.4h622         fcvtzs v6.8h, v8.8h623         fcvtzs v6.4s, v8.4s624         fcvtzs v6.2d, v8.2d625         fcvtzs v4.2s, v0.2s626 627// CHECK: fcvtzs  v4.4h, v0.4h            // encoding: [0x04,0xb8,0xf9,0x0e]628// CHECK: fcvtzs  v6.8h, v8.8h            // encoding: [0x06,0xb9,0xf9,0x4e]629// CHECK:	fcvtzs	v6.4s, v8.4s            // encoding: [0x06,0xb9,0xa1,0x4e]630// CHECK:	fcvtzs	v6.2d, v8.2d            // encoding: [0x06,0xb9,0xe1,0x4e]631// CHECK:	fcvtzs	v4.2s, v0.2s            // encoding: [0x04,0xb8,0xa1,0x0e]632 633 634         fcvtzu v4.4h, v0.4h635         fcvtzu v6.8h, v8.8h636         fcvtzu v6.4s, v8.4s637         fcvtzu v6.2d, v8.2d638         fcvtzu v4.2s, v0.2s639 640// CHECK: fcvtzu  v4.4h, v0.4h            // encoding: [0x04,0xb8,0xf9,0x2e]641// CHECK: fcvtzu  v6.8h, v8.8h            // encoding: [0x06,0xb9,0xf9,0x6e]642// CHECK:	fcvtzu	v6.4s, v8.4s            // encoding: [0x06,0xb9,0xa1,0x6e]643// CHECK:	fcvtzu	v6.2d, v8.2d            // encoding: [0x06,0xb9,0xe1,0x6e]644// CHECK:	fcvtzu	v4.2s, v0.2s            // encoding: [0x04,0xb8,0xa1,0x2e]645 646         fcvtas v4.4h, v0.4h647         fcvtas v6.8h, v8.8h648         fcvtas v6.4s, v8.4s649         fcvtas v6.2d, v8.2d650         fcvtas v4.2s, v0.2s651 652// CHECK: fcvtas  v4.4h, v0.4h            // encoding: [0x04,0xc8,0x79,0x0e]653// CHECK: fcvtas  v6.8h, v8.8h            // encoding: [0x06,0xc9,0x79,0x4e]654// CHECK:	fcvtas	v6.4s, v8.4s            // encoding: [0x06,0xc9,0x21,0x4e]655// CHECK:	fcvtas	v6.2d, v8.2d            // encoding: [0x06,0xc9,0x61,0x4e]656// CHECK:	fcvtas	v4.2s, v0.2s            // encoding: [0x04,0xc8,0x21,0x0e]657 658         fcvtau v4.4h, v0.4h659         fcvtau v6.8h, v8.8h660         fcvtau v6.4s, v8.4s661         fcvtau v6.2d, v8.2d662         fcvtau v4.2s, v0.2s663 664// CHECK: fcvtau  v4.4h, v0.4h            // encoding: [0x04,0xc8,0x79,0x2e]665// CHECK: fcvtau  v6.8h, v8.8h            // encoding: [0x06,0xc9,0x79,0x6e]666// CHECK:	fcvtau	v6.4s, v8.4s            // encoding: [0x06,0xc9,0x21,0x6e]667// CHECK:	fcvtau	v6.2d, v8.2d            // encoding: [0x06,0xc9,0x61,0x6e]668// CHECK:	fcvtau	v4.2s, v0.2s            // encoding: [0x04,0xc8,0x21,0x2e]669 670         urecpe v6.4s, v8.4s671         urecpe v4.2s, v0.2s672 673// CHECK:	urecpe	v6.4s, v8.4s            // encoding: [0x06,0xc9,0xa1,0x4e]674// CHECK:	urecpe	v4.2s, v0.2s            // encoding: [0x04,0xc8,0xa1,0x0e]675 676         ursqrte v6.4s, v8.4s677         ursqrte v4.2s, v0.2s678 679// CHECK:	ursqrte	v6.4s, v8.4s            // encoding: [0x06,0xc9,0xa1,0x6e]680// CHECK:	ursqrte	v4.2s, v0.2s            // encoding: [0x04,0xc8,0xa1,0x2e]681 682         scvtf v4.4h, v0.4h683         scvtf v6.8h, v8.8h684         scvtf v6.4s, v8.4s685         scvtf v6.2d, v8.2d686         scvtf v4.2s, v0.2s687 688// CHECK: scvtf   v4.4h, v0.4h            // encoding: [0x04,0xd8,0x79,0x0e]689// CHECK: scvtf   v6.8h, v8.8h            // encoding: [0x06,0xd9,0x79,0x4e]690// CHECK:	scvtf	v6.4s, v8.4s            // encoding: [0x06,0xd9,0x21,0x4e]691// CHECK:	scvtf	v6.2d, v8.2d            // encoding: [0x06,0xd9,0x61,0x4e]692// CHECK:	scvtf	v4.2s, v0.2s            // encoding: [0x04,0xd8,0x21,0x0e]693 694         ucvtf v4.4h, v0.4h695         ucvtf v6.8h, v8.8h696         ucvtf v6.4s, v8.4s697         ucvtf v6.2d, v8.2d698         ucvtf v4.2s, v0.2s699 700// CHECK: ucvtf   v4.4h, v0.4h            // encoding: [0x04,0xd8,0x79,0x2e]701// CHECK: ucvtf   v6.8h, v8.8h            // encoding: [0x06,0xd9,0x79,0x6e]702// CHECK:	ucvtf	v6.4s, v8.4s            // encoding: [0x06,0xd9,0x21,0x6e]703// CHECK:	ucvtf	v6.2d, v8.2d            // encoding: [0x06,0xd9,0x61,0x6e]704// CHECK:	ucvtf	v4.2s, v0.2s            // encoding: [0x04,0xd8,0x21,0x2e]705 706         frecpe v4.4h, v0.4h707         frecpe v6.8h, v8.8h708         frecpe v6.4s, v8.4s709         frecpe v6.2d, v8.2d710         frecpe v4.2s, v0.2s711 712// CHECK: frecpe  v4.4h, v0.4h            // encoding: [0x04,0xd8,0xf9,0x0e]713// CHECK: frecpe  v6.8h, v8.8h            // encoding: [0x06,0xd9,0xf9,0x4e]714// CHECK:	frecpe	v6.4s, v8.4s            // encoding: [0x06,0xd9,0xa1,0x4e]715// CHECK:	frecpe	v6.2d, v8.2d            // encoding: [0x06,0xd9,0xe1,0x4e]716// CHECK:	frecpe	v4.2s, v0.2s            // encoding: [0x04,0xd8,0xa1,0x0e]717 718         frsqrte v4.4h, v0.4h719         frsqrte v6.8h, v8.8h720         frsqrte v6.4s, v8.4s721         frsqrte v6.2d, v8.2d722         frsqrte v4.2s, v0.2s723 724// CHECK: frsqrte v4.4h, v0.4h            // encoding: [0x04,0xd8,0xf9,0x2e]725// CHECK: frsqrte v6.8h, v8.8h            // encoding: [0x06,0xd9,0xf9,0x6e]726// CHECK:	frsqrte	v6.4s, v8.4s            // encoding: [0x06,0xd9,0xa1,0x6e]727// CHECK:	frsqrte	v6.2d, v8.2d            // encoding: [0x06,0xd9,0xe1,0x6e]728// CHECK:	frsqrte	v4.2s, v0.2s            // encoding: [0x04,0xd8,0xa1,0x2e]729 730         fsqrt v4.4h, v0.4h731         fsqrt v6.8h, v8.8h732         fsqrt v6.4s, v8.4s733         fsqrt v6.2d, v8.2d734         fsqrt v4.2s, v0.2s735 736// CHECK: fsqrt   v4.4h, v0.4h            // encoding: [0x04,0xf8,0xf9,0x2e]737// CHECK: fsqrt   v6.8h, v8.8h            // encoding: [0x06,0xf9,0xf9,0x6e]738// CHECK:	fsqrt	v6.4s, v8.4s            // encoding: [0x06,0xf9,0xa1,0x6e]739// CHECK:	fsqrt	v6.2d, v8.2d            // encoding: [0x06,0xf9,0xe1,0x6e]740// CHECK:	fsqrt	v4.2s, v0.2s            // encoding: [0x04,0xf8,0xa1,0x2e]741 742 743