brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.8 KiB · 8187e4a Raw
726 lines · plain
1; RUN: not llvm-mc -triple arm64-apple-darwin -mattr=neon -show-encoding -output-asm-variant=1 < %s 2>%t | FileCheck %s2; RUN: FileCheck %s < %t --check-prefix=NO-FP163; RUN: llvm-mc -triple arm64-apple-darwin -mattr=neon,v8.2a,fullfp16 -show-encoding -output-asm-variant=1 < %s | FileCheck %s --check-prefix=CHECK --check-prefix=FP164 5foo:6;-----------------------------------------------------------------------------7; Floating-point arithmetic8;-----------------------------------------------------------------------------9 10  fabs h1, h211  fabs s1, s212  fabs d1, d213 14; FP16:  fabs h1, h2                 ; encoding: [0x41,0xc0,0xe0,0x1e]15; NO-FP16: error: instruction requires:16; NO-FP16-NEXT:  fabs h1, h217; CHECK: fabs s1, s2                 ; encoding: [0x41,0xc0,0x20,0x1e]18; CHECK: fabs d1, d2                 ; encoding: [0x41,0xc0,0x60,0x1e]19 20  fadd h1, h2, h321  fadd s1, s2, s322  fadd d1, d2, d323 24; FP16:  fadd h1, h2, h3             ; encoding: [0x41,0x28,0xe3,0x1e]25; NO-FP16: error: instruction requires:26; NO-FP16-NEXT:  fadd h1, h2, h327; CHECK: fadd s1, s2, s3             ; encoding: [0x41,0x28,0x23,0x1e]28; CHECK: fadd d1, d2, d3             ; encoding: [0x41,0x28,0x63,0x1e]29 30  fdiv h1, h2, h331  fdiv s1, s2, s332  fdiv d1, d2, d333 34; FP16:  fdiv h1, h2, h3             ; encoding: [0x41,0x18,0xe3,0x1e]35; NO-FP16: error: instruction requires:36; NO-FP16-NEXT:  fdiv h1, h2, h337; CHECK: fdiv s1, s2, s3             ; encoding: [0x41,0x18,0x23,0x1e]38; CHECK: fdiv d1, d2, d3             ; encoding: [0x41,0x18,0x63,0x1e]39 40  fmadd h1, h2, h3, h441  fmadd s1, s2, s3, s442  fmadd d1, d2, d3, d443 44; FP16:  fmadd h1, h2, h3, h4        ; encoding: [0x41,0x10,0xc3,0x1f]45; NO-FP16: error: instruction requires:46; NO-FP16-NEXT:  fmadd h1, h2, h3, h447; CHECK: fmadd s1, s2, s3, s4        ; encoding: [0x41,0x10,0x03,0x1f]48; CHECK: fmadd d1, d2, d3, d4        ; encoding: [0x41,0x10,0x43,0x1f]49 50  fmax   h1, h2, h351  fmax   s1, s2, s352  fmax   d1, d2, d353  fmaxnm h1, h2, h354  fmaxnm s1, s2, s355  fmaxnm d1, d2, d356 57; FP16:  fmax   h1, h2, h3           ; encoding: [0x41,0x48,0xe3,0x1e]58; NO-FP16: error: instruction requires:59; NO-FP16-NEXT: fmax   h1, h2, h360; CHECK: fmax   s1, s2, s3           ; encoding: [0x41,0x48,0x23,0x1e]61; CHECK: fmax   d1, d2, d3           ; encoding: [0x41,0x48,0x63,0x1e]62; FP16:  fmaxnm h1, h2, h3           ; encoding: [0x41,0x68,0xe3,0x1e]63; NO-FP16: error: instruction requires:64; NO-FP16-NEXT: fmaxnm h1, h2, h365; CHECK: fmaxnm s1, s2, s3           ; encoding: [0x41,0x68,0x23,0x1e]66; CHECK: fmaxnm d1, d2, d3           ; encoding: [0x41,0x68,0x63,0x1e]67 68  fmin   h1, h2, h369  fmin   s1, s2, s370  fmin   d1, d2, d371  fminnm h1, h2, h372  fminnm s1, s2, s373  fminnm d1, d2, d374 75; FP16:  fmin   h1, h2, h3           ; encoding: [0x41,0x58,0xe3,0x1e]76; NO-FP16: error: instruction requires:77; NO-FP16-NEXT: fmin   h1, h2, h378; CHECK: fmin   s1, s2, s3           ; encoding: [0x41,0x58,0x23,0x1e]79; CHECK: fmin   d1, d2, d3           ; encoding: [0x41,0x58,0x63,0x1e]80; FP16:  fminnm h1, h2, h3           ; encoding: [0x41,0x78,0xe3,0x1e]81; NO-FP16: error: instruction requires:82; NO-FP16-NEXT: fminnm h1, h2, h383; CHECK: fminnm s1, s2, s3           ; encoding: [0x41,0x78,0x23,0x1e]84; CHECK: fminnm d1, d2, d3           ; encoding: [0x41,0x78,0x63,0x1e]85 86  fmsub h1, h2, h3, h487  fmsub s1, s2, s3, s488  fmsub d1, d2, d3, d489 90; FP16:  fmsub h1, h2, h3, h4        ; encoding: [0x41,0x90,0xc3,0x1f]91; NO-FP16: error: instruction requires:92; NO-FP16-NEXT: fmsub h1, h2, h3, h493; CHECK: fmsub s1, s2, s3, s4        ; encoding: [0x41,0x90,0x03,0x1f]94; CHECK: fmsub d1, d2, d3, d4        ; encoding: [0x41,0x90,0x43,0x1f]95 96  fmul h1, h2, h397  fmul s1, s2, s398  fmul d1, d2, d399 100; FP16:  fmul h1, h2, h3             ; encoding: [0x41,0x08,0xe3,0x1e]101; NO-FP16: error: instruction requires:102; NO-FP16-NEXT: fmul h1, h2, h3103; CHECK: fmul s1, s2, s3             ; encoding: [0x41,0x08,0x23,0x1e]104; CHECK: fmul d1, d2, d3             ; encoding: [0x41,0x08,0x63,0x1e]105 106  fneg h1, h2107  fneg s1, s2108  fneg d1, d2109 110; FP16:  fneg h1, h2                 ; encoding: [0x41,0x40,0xe1,0x1e]111; NO-FP16: error: instruction requires:112; NO-FP16-NEXT: fneg h1, h2113; CHECK: fneg s1, s2                 ; encoding: [0x41,0x40,0x21,0x1e]114; CHECK: fneg d1, d2                 ; encoding: [0x41,0x40,0x61,0x1e]115 116  fnmadd h1, h2, h3, h4117  fnmadd s1, s2, s3, s4118  fnmadd d1, d2, d3, d4119 120; FP16:  fnmadd h1, h2, h3, h4       ; encoding: [0x41,0x10,0xe3,0x1f]121; NO-FP16: error: instruction requires:122; NO-FP16-NEXT: fnmadd h1, h2, h3, h4123; CHECK: fnmadd s1, s2, s3, s4       ; encoding: [0x41,0x10,0x23,0x1f]124; CHECK: fnmadd d1, d2, d3, d4       ; encoding: [0x41,0x10,0x63,0x1f]125 126  fnmsub h1, h2, h3, h4127  fnmsub s1, s2, s3, s4128  fnmsub d1, d2, d3, d4129 130; FP16:  fnmsub h1, h2, h3, h4       ; encoding: [0x41,0x90,0xe3,0x1f]131; NO-FP16: error: instruction requires:132; NO-FP16-NEXT: fnmsub h1, h2, h3, h4133; CHECK: fnmsub s1, s2, s3, s4       ; encoding: [0x41,0x90,0x23,0x1f]134; CHECK: fnmsub d1, d2, d3, d4       ; encoding: [0x41,0x90,0x63,0x1f]135 136  fnmul h1, h2, h3137  fnmul s1, s2, s3138  fnmul d1, d2, d3139 140; FP16:  fnmul h1, h2, h3            ; encoding: [0x41,0x88,0xe3,0x1e]141; NO-FP16: error: instruction requires:142; NO-FP16-NEXT: fnmul h1, h2, h3143; CHECK: fnmul s1, s2, s3            ; encoding: [0x41,0x88,0x23,0x1e]144; CHECK: fnmul d1, d2, d3            ; encoding: [0x41,0x88,0x63,0x1e]145 146  fsqrt h1, h2147  fsqrt s1, s2148  fsqrt d1, d2149 150; FP16:  fsqrt h1, h2                ; encoding: [0x41,0xc0,0xe1,0x1e]151; NO-FP16: error: instruction requires:152; NO-FP16-NEXT: fsqrt h1, h2153; CHECK: fsqrt s1, s2                ; encoding: [0x41,0xc0,0x21,0x1e]154; CHECK: fsqrt d1, d2                ; encoding: [0x41,0xc0,0x61,0x1e]155 156  fsub h1, h2, h3157  fsub s1, s2, s3158  fsub d1, d2, d3159 160; FP16:  fsub h1, h2, h3             ; encoding: [0x41,0x38,0xe3,0x1e]161; NO-FP16: error: instruction requires:162; NO-FP16-NEXT: fsub h1, h2, h3163; CHECK: fsub s1, s2, s3             ; encoding: [0x41,0x38,0x23,0x1e]164; CHECK: fsub d1, d2, d3             ; encoding: [0x41,0x38,0x63,0x1e]165 166;-----------------------------------------------------------------------------167; Floating-point comparison168;-----------------------------------------------------------------------------169 170  fccmp  h1, h2, #0, eq171  fccmp  s1, s2, #0, eq172  fccmp  d1, d2, #0, eq173  fccmpe h1, h2, #0, eq174  fccmpe s1, s2, #0, eq175  fccmpe d1, d2, #0, eq176 177; FP16:  fccmp  h1, h2, #0, eq       ; encoding: [0x20,0x04,0xe2,0x1e]178; NO-FP16: error: instruction requires:179; NO-FP16-NEXT: fccmp  h1, h2, #0, eq180; CHECK: fccmp  s1, s2, #0, eq       ; encoding: [0x20,0x04,0x22,0x1e]181; CHECK: fccmp  d1, d2, #0, eq       ; encoding: [0x20,0x04,0x62,0x1e]182; FP16:  fccmpe h1, h2, #0, eq       ; encoding: [0x30,0x04,0xe2,0x1e]183; NO-FP16: error: instruction requires:184; NO-FP16-NEXT: fccmpe h1, h2, #0, eq185; CHECK: fccmpe s1, s2, #0, eq       ; encoding: [0x30,0x04,0x22,0x1e]186; CHECK: fccmpe d1, d2, #0, eq       ; encoding: [0x30,0x04,0x62,0x1e]187 188  fcmp  h1, h2189  fcmp  s1, s2190  fcmp  d1, d2191  fcmp  h1, #0.0192  fcmp  s1, #0.0193  fcmp  d1, #0.0194  fcmpe h1, h2195  fcmpe s1, s2196  fcmpe d1, d2197  fcmpe h1, #0.0198  fcmpe s1, #0.0199  fcmpe d1, #0.0200 201; FP16:  fcmp  h1, h2                ; encoding: [0x20,0x20,0xe2,0x1e]202; NO-FP16: error: instruction requires:203; NO-FP16-NEXT: fcmp  h1, h2204; CHECK: fcmp  s1, s2                ; encoding: [0x20,0x20,0x22,0x1e]205; CHECK: fcmp  d1, d2                ; encoding: [0x20,0x20,0x62,0x1e]206; FP16:  fcmp  h1, #0.0              ; encoding: [0x28,0x20,0xe0,0x1e]207; NO-FP16: error: instruction requires:208; NO-FP16-NEXT: fcmp  h1, #0.0209; CHECK: fcmp  s1, #0.0              ; encoding: [0x28,0x20,0x20,0x1e]210; CHECK: fcmp  d1, #0.0              ; encoding: [0x28,0x20,0x60,0x1e]211; FP16:  fcmpe h1, h2                ; encoding: [0x30,0x20,0xe2,0x1e]212; NO-FP16: error: instruction requires:213; NO-FP16-NEXT: fcmpe h1, h2214; CHECK: fcmpe s1, s2                ; encoding: [0x30,0x20,0x22,0x1e]215; CHECK: fcmpe d1, d2                ; encoding: [0x30,0x20,0x62,0x1e]216; FP16:  fcmpe h1, #0.0              ; encoding: [0x38,0x20,0xe0,0x1e]217; NO-FP16: error: instruction requires:218; NO-FP16-NEXT: fcmpe h1, #0.0219; CHECK: fcmpe s1, #0.0              ; encoding: [0x38,0x20,0x20,0x1e]220; CHECK: fcmpe d1, #0.0              ; encoding: [0x38,0x20,0x60,0x1e]221 222;-----------------------------------------------------------------------------223; Floating-point conditional select224;-----------------------------------------------------------------------------225 226  fcsel h1, h2, h3, eq227  fcsel s1, s2, s3, eq228  fcsel d1, d2, d3, eq229 230; FP16:  fcsel h1, h2, h3, eq        ; encoding: [0x41,0x0c,0xe3,0x1e]231; NO-FP16: error: instruction requires:232; NO-FP16-NEXT: fcsel h1, h2, h3, eq233; CHECK: fcsel s1, s2, s3, eq        ; encoding: [0x41,0x0c,0x23,0x1e]234; CHECK: fcsel d1, d2, d3, eq        ; encoding: [0x41,0x0c,0x63,0x1e]235 236;-----------------------------------------------------------------------------237; Floating-point convert238;-----------------------------------------------------------------------------239 240  fcvt h1, d2241  fcvt s1, d2242  fcvt d1, h2243  fcvt s1, h2244  fcvt d1, s2245  fcvt h1, s2246 247; CHECK: fcvt h1, d2                 ; encoding: [0x41,0xc0,0x63,0x1e]248; CHECK: fcvt s1, d2                 ; encoding: [0x41,0x40,0x62,0x1e]249; CHECK: fcvt d1, h2                 ; encoding: [0x41,0xc0,0xe2,0x1e]250; CHECK: fcvt s1, h2                 ; encoding: [0x41,0x40,0xe2,0x1e]251; CHECK: fcvt d1, s2                 ; encoding: [0x41,0xc0,0x22,0x1e]252; CHECK: fcvt h1, s2                 ; encoding: [0x41,0xc0,0x23,0x1e]253 254  fcvtas w1, d2255  fcvtas x1, d2256  fcvtas w1, s2257  fcvtas x1, s2258  fcvtas w1, h2259  fcvtas x1, h2260 261; CHECK: fcvtas w1, d2                  ; encoding: [0x41,0x00,0x64,0x1e]262; CHECK: fcvtas x1, d2                  ; encoding: [0x41,0x00,0x64,0x9e]263; CHECK: fcvtas w1, s2                  ; encoding: [0x41,0x00,0x24,0x1e]264; CHECK: fcvtas x1, s2                  ; encoding: [0x41,0x00,0x24,0x9e]265; FP16:  fcvtas w1, h2                  ; encoding: [0x41,0x00,0xe4,0x1e]266; NO-FP16: error: instruction requires:267; NO-FP16-NEXT: fcvtas  w1, h2268; FP16:  fcvtas x1, h2                  ; encoding: [0x41,0x00,0xe4,0x9e]269; NO-FP16: error: instruction requires:270; NO-FP16-NEXT: fcvtas  x1, h2271 272  fcvtau w1, h2273  fcvtau w1, s2274  fcvtau w1, d2275  fcvtau x1, h2276  fcvtau x1, s2277  fcvtau x1, d2278 279; FP16:  fcvtau w1, h2                  ; encoding: [0x41,0x00,0xe5,0x1e]280; NO-FP16: error: instruction requires:281; NO-FP16-NEXT: fcvtau  w1, h2282; CHECK: fcvtau w1, s2                  ; encoding: [0x41,0x00,0x25,0x1e]283; CHECK: fcvtau w1, d2                  ; encoding: [0x41,0x00,0x65,0x1e]284; FP16:  fcvtau x1, h2                  ; encoding: [0x41,0x00,0xe5,0x9e]285; NO-FP16: error: instruction requires:286; NO-FP16-NEXT: fcvtau  x1, h2287; CHECK: fcvtau x1, s2                  ; encoding: [0x41,0x00,0x25,0x9e]288; CHECK: fcvtau x1, d2                  ; encoding: [0x41,0x00,0x65,0x9e]289 290  fcvtms w1, h2291  fcvtms w1, s2292  fcvtms w1, d2293  fcvtms x1, h2294  fcvtms x1, s2295  fcvtms x1, d2296 297; FP16:  fcvtms w1, h2                  ; encoding: [0x41,0x00,0xf0,0x1e]298; NO-FP16: error: instruction requires:299; NO-FP16-NEXT: fcvtms  w1, h2300; CHECK: fcvtms w1, s2                  ; encoding: [0x41,0x00,0x30,0x1e]301; CHECK: fcvtms w1, d2                  ; encoding: [0x41,0x00,0x70,0x1e]302; FP16:  fcvtms x1, h2                  ; encoding: [0x41,0x00,0xf0,0x9e]303; NO-FP16: error: instruction requires:304; NO-FP16-NEXT: fcvtms  x1, h2305; CHECK: fcvtms x1, s2                  ; encoding: [0x41,0x00,0x30,0x9e]306; CHECK: fcvtms x1, d2                  ; encoding: [0x41,0x00,0x70,0x9e]307 308  fcvtmu w1, h2309  fcvtmu w1, s2310  fcvtmu w1, d2311  fcvtmu x1, h2312  fcvtmu x1, s2313  fcvtmu x1, d2314 315; FP16:  fcvtmu w1, h2                  ; encoding: [0x41,0x00,0xf1,0x1e]316; NO-FP16: error: instruction requires:317; NO-FP16-NEXT: fcvtmu  w1, h2318; CHECK: fcvtmu w1, s2                  ; encoding: [0x41,0x00,0x31,0x1e]319; CHECK: fcvtmu w1, d2                  ; encoding: [0x41,0x00,0x71,0x1e]320; FP16:  fcvtmu x1, h2                  ; encoding: [0x41,0x00,0xf1,0x9e]321; NO-FP16: error: instruction requires:322; NO-FP16-NEXT: fcvtmu  x1, h2323; CHECK: fcvtmu x1, s2                  ; encoding: [0x41,0x00,0x31,0x9e]324; CHECK: fcvtmu x1, d2                  ; encoding: [0x41,0x00,0x71,0x9e]325 326  fcvtns w1, h2327  fcvtns w1, s2328  fcvtns w1, d2329  fcvtns x1, h2330  fcvtns x1, s2331  fcvtns x1, d2332 333; FP16:  fcvtns w1, h2                  ; encoding: [0x41,0x00,0xe0,0x1e]334; NO-FP16: error: instruction requires:335; NO-FP16-NEXT: fcvtns  w1, h2336; CHECK: fcvtns w1, s2                  ; encoding: [0x41,0x00,0x20,0x1e]337; CHECK: fcvtns w1, d2                  ; encoding: [0x41,0x00,0x60,0x1e]338; FP16:  fcvtns x1, h2                  ; encoding: [0x41,0x00,0xe0,0x9e]339; NO-FP16: error: instruction requires:340; NO-FP16-NEXT: fcvtns  x1, h2341; CHECK: fcvtns x1, s2                  ; encoding: [0x41,0x00,0x20,0x9e]342; CHECK: fcvtns x1, d2                  ; encoding: [0x41,0x00,0x60,0x9e]343 344  fcvtnu w1, h2345  fcvtnu w1, s2346  fcvtnu w1, d2347  fcvtnu x1, h2348  fcvtnu x1, s2349  fcvtnu x1, d2350 351; FP16:  fcvtnu w1, h2                  ; encoding: [0x41,0x00,0xe1,0x1e]352; NO-FP16: error: instruction requires:353; NO-FP16-NEXT: fcvtnu  w1, h2354; CHECK: fcvtnu w1, s2                  ; encoding: [0x41,0x00,0x21,0x1e]355; CHECK: fcvtnu w1, d2                  ; encoding: [0x41,0x00,0x61,0x1e]356; FP16:  fcvtnu x1, h2                  ; encoding: [0x41,0x00,0xe1,0x9e]357; NO-FP16: error: instruction requires:358; NO-FP16-NEXT: fcvtnu  x1, h2359; CHECK: fcvtnu x1, s2                  ; encoding: [0x41,0x00,0x21,0x9e]360; CHECK: fcvtnu x1, d2                  ; encoding: [0x41,0x00,0x61,0x9e]361 362  fcvtps w1, h2363  fcvtps w1, s2364  fcvtps w1, d2365  fcvtps x1, h2366  fcvtps x1, s2367  fcvtps x1, d2368 369; FP16:  fcvtps w1, h2                  ; encoding: [0x41,0x00,0xe8,0x1e]370; NO-FP16: error: instruction requires:371; NO-FP16-NEXT: fcvtps  w1, h2372; CHECK: fcvtps w1, s2                  ; encoding: [0x41,0x00,0x28,0x1e]373; CHECK: fcvtps w1, d2                  ; encoding: [0x41,0x00,0x68,0x1e]374; FP16:  fcvtps x1, h2                  ; encoding: [0x41,0x00,0xe8,0x9e]375; NO-FP16: error: instruction requires:376; NO-FP16-NEXT: fcvtps  x1, h2377; CHECK: fcvtps x1, s2                  ; encoding: [0x41,0x00,0x28,0x9e]378; CHECK: fcvtps x1, d2                  ; encoding: [0x41,0x00,0x68,0x9e]379 380  fcvtpu w1, h2381  fcvtpu w1, s2382  fcvtpu w1, d2383  fcvtpu x1, h2384  fcvtpu x1, s2385  fcvtpu x1, d2386 387; FP16:  fcvtpu w1, h2                  ; encoding: [0x41,0x00,0xe9,0x1e]388; NO-FP16: error: instruction requires:389; NO-FP16-NEXT: fcvtpu  w1, h2390; CHECK: fcvtpu w1, s2                  ; encoding: [0x41,0x00,0x29,0x1e]391; CHECK: fcvtpu w1, d2                  ; encoding: [0x41,0x00,0x69,0x1e]392; FP16:  fcvtpu x1, h2                  ; encoding: [0x41,0x00,0xe9,0x9e]393; NO-FP16: error: instruction requires:394; NO-FP16-NEXT: fcvtpu  x1, h2395; CHECK: fcvtpu x1, s2                  ; encoding: [0x41,0x00,0x29,0x9e]396; CHECK: fcvtpu x1, d2                  ; encoding: [0x41,0x00,0x69,0x9e]397 398  fcvtzs w1, h2399  fcvtzs w1, h2, #1400  fcvtzs w1, s2401  fcvtzs w1, s2, #1402  fcvtzs w1, d2403  fcvtzs w1, d2, #1404  fcvtzs x1, h2405  fcvtzs x1, h2, #1406  fcvtzs x1, s2407  fcvtzs x1, s2, #1408  fcvtzs x1, d2409  fcvtzs x1, d2, #1410 411; FP16:  fcvtzs w1, h2                  ; encoding: [0x41,0x00,0xf8,0x1e]412; NO-FP16: error: instruction requires:413; NO-FP16-NEXT: fcvtzs  w1, h2414; FP16:  fcvtzs w1, h2, #1              ; encoding: [0x41,0xfc,0xd8,0x1e]415; NO-FP16: error: instruction requires:416; NO-FP16-NEXT: fcvtzs  w1, h2, #1417; CHECK: fcvtzs w1, s2                  ; encoding: [0x41,0x00,0x38,0x1e]418; CHECK: fcvtzs w1, s2, #1              ; encoding: [0x41,0xfc,0x18,0x1e]419; CHECK: fcvtzs w1, d2                  ; encoding: [0x41,0x00,0x78,0x1e]420; CHECK: fcvtzs w1, d2, #1              ; encoding: [0x41,0xfc,0x58,0x1e]421; FP16:  fcvtzs x1, h2                  ; encoding: [0x41,0x00,0xf8,0x9e]422; NO-FP16: error: instruction requires:423; NO-FP16-NEXT: fcvtzs  x1, h2424; FP16:  fcvtzs x1, h2, #1              ; encoding: [0x41,0xfc,0xd8,0x9e]425; NO-FP16: error: instruction requires:426; NO-FP16-NEXT: fcvtzs  x1, h2, #1427; CHECK: fcvtzs x1, s2                  ; encoding: [0x41,0x00,0x38,0x9e]428; CHECK: fcvtzs x1, s2, #1              ; encoding: [0x41,0xfc,0x18,0x9e]429; CHECK: fcvtzs x1, d2                  ; encoding: [0x41,0x00,0x78,0x9e]430; CHECK: fcvtzs x1, d2, #1              ; encoding: [0x41,0xfc,0x58,0x9e]431 432  fcvtzu w1, h2433  fcvtzu w1, h2, #1434  fcvtzu w1, s2435  fcvtzu w1, s2, #1436  fcvtzu w1, d2437  fcvtzu w1, d2, #1438  fcvtzu x1, h2439  fcvtzu x1, h2, #1440  fcvtzu x1, s2441  fcvtzu x1, s2, #1442  fcvtzu x1, d2443  fcvtzu x1, d2, #1444 445; FP16:  fcvtzu w1, h2                  ; encoding: [0x41,0x00,0xf9,0x1e]446; NO-FP16: error: instruction requires:447; NO-FP16-NEXT: fcvtzu  w1, h2448; FP16:  fcvtzu w1, h2, #1              ; encoding: [0x41,0xfc,0xd9,0x1e]449; NO-FP16: error: instruction requires:450; NO-FP16-NEXT: fcvtzu  w1, h2, #1451; CHECK: fcvtzu w1, s2                  ; encoding: [0x41,0x00,0x39,0x1e]452; CHECK: fcvtzu w1, s2, #1              ; encoding: [0x41,0xfc,0x19,0x1e]453; CHECK: fcvtzu w1, d2                  ; encoding: [0x41,0x00,0x79,0x1e]454; CHECK: fcvtzu w1, d2, #1              ; encoding: [0x41,0xfc,0x59,0x1e]455; FP16:  fcvtzu x1, h2                  ; encoding: [0x41,0x00,0xf9,0x9e]456; NO-FP16: error: instruction requires:457; NO-FP16-NEXT: fcvtzu  x1, h2458; FP16:  fcvtzu x1, h2, #1              ; encoding: [0x41,0xfc,0xd9,0x9e]459; NO-FP16: error: instruction requires:460; NO-FP16-NEXT: fcvtzu  x1, h2, #1461; CHECK: fcvtzu x1, s2                  ; encoding: [0x41,0x00,0x39,0x9e]462; CHECK: fcvtzu x1, s2, #1              ; encoding: [0x41,0xfc,0x19,0x9e]463; CHECK: fcvtzu x1, d2                  ; encoding: [0x41,0x00,0x79,0x9e]464; CHECK: fcvtzu x1, d2, #1              ; encoding: [0x41,0xfc,0x59,0x9e]465 466  scvtf h1, w2467  scvtf h1, w2, #1468  scvtf s1, w2469  scvtf s1, w2, #1470  scvtf d1, w2471  scvtf d1, w2, #1472  scvtf h1, x2473  scvtf h1, x2, #1474  scvtf s1, x2475  scvtf s1, x2, #1476  scvtf d1, x2477  scvtf d1, x2, #1478 479; FP16:  scvtf  h1, w2                  ; encoding: [0x41,0x00,0xe2,0x1e]480; NO-FP16: error: instruction requires:481; NO-FP16-NEXT: scvtf h1, w2482; FP16:  scvtf  h1, w2, #1              ; encoding: [0x41,0xfc,0xc2,0x1e]483; NO-FP16: error: instruction requires:484; NO-FP16-NEXT: scvtf h1, w2, #1485; CHECK: scvtf  s1, w2                  ; encoding: [0x41,0x00,0x22,0x1e]486; CHECK: scvtf  s1, w2, #1              ; encoding: [0x41,0xfc,0x02,0x1e]487; CHECK: scvtf  d1, w2                  ; encoding: [0x41,0x00,0x62,0x1e]488; CHECK: scvtf  d1, w2, #1              ; encoding: [0x41,0xfc,0x42,0x1e]489; FP16:  scvtf  h1, x2                  ; encoding: [0x41,0x00,0xe2,0x9e]490; NO-FP16: error: instruction requires:491; NO-FP16-NEXT: scvtf h1, x2492; FP16:  scvtf  h1, x2, #1              ; encoding: [0x41,0xfc,0xc2,0x9e]493; NO-FP16: error: instruction requires:494; NO-FP16-NEXT: scvtf h1, x2, #1495; CHECK: scvtf  s1, x2                  ; encoding: [0x41,0x00,0x22,0x9e]496; CHECK: scvtf  s1, x2, #1              ; encoding: [0x41,0xfc,0x02,0x9e]497; CHECK: scvtf  d1, x2                  ; encoding: [0x41,0x00,0x62,0x9e]498; CHECK: scvtf  d1, x2, #1              ; encoding: [0x41,0xfc,0x42,0x9e]499 500  ucvtf h1, w2501  ucvtf h1, w2, #1502  ucvtf s1, w2503  ucvtf s1, w2, #1504  ucvtf d1, w2505  ucvtf d1, w2, #1506  ucvtf h1, x2507  ucvtf h1, x2, #1508  ucvtf s1, x2509  ucvtf s1, x2, #1510  ucvtf d1, x2511  ucvtf d1, x2, #1512 513; FP16:  ucvtf  h1, w2                  ; encoding: [0x41,0x00,0xe3,0x1e]514; NO-FP16: error: instruction requires:515; NO-FP16-NEXT: ucvtf h1, w2516; FP16:  ucvtf  h1, w2, #1              ; encoding: [0x41,0xfc,0xc3,0x1e]517; NO-FP16: error: instruction requires:518; NO-FP16-NEXT: ucvtf h1, w2, #1519; CHECK: ucvtf  s1, w2                  ; encoding: [0x41,0x00,0x23,0x1e]520; CHECK: ucvtf  s1, w2, #1              ; encoding: [0x41,0xfc,0x03,0x1e]521; CHECK: ucvtf  d1, w2                  ; encoding: [0x41,0x00,0x63,0x1e]522; CHECK: ucvtf  d1, w2, #1              ; encoding: [0x41,0xfc,0x43,0x1e]523; FP16:  ucvtf  h1, x2                  ; encoding: [0x41,0x00,0xe3,0x9e]524; NO-FP16: error: instruction requires:525; NO-FP16-NEXT: ucvtf h1, x2526; FP16:  ucvtf  h1, x2, #1              ; encoding: [0x41,0xfc,0xc3,0x9e]527; NO-FP16: error: instruction requires:528; NO-FP16-NEXT: ucvtf h1, x2, #1529; CHECK: ucvtf  s1, x2                  ; encoding: [0x41,0x00,0x23,0x9e]530; CHECK: ucvtf  s1, x2, #1              ; encoding: [0x41,0xfc,0x03,0x9e]531; CHECK: ucvtf  d1, x2                  ; encoding: [0x41,0x00,0x63,0x9e]532; CHECK: ucvtf  d1, x2, #1              ; encoding: [0x41,0xfc,0x43,0x9e]533 534;-----------------------------------------------------------------------------535; Floating-point move536;-----------------------------------------------------------------------------537 538  fmov h1, w2539  fmov w1, h2540  fmov h1, x2541  fmov x1, h2542  fmov s1, w2543  fmov w1, s2544  fmov d1, x2545  fmov x1, d2546 547; FP16:  fmov h1, w2                 ; encoding: [0x41,0x00,0xe7,0x1e]548; NO-FP16: error: instruction requires:549; NO-FP16-NEXT: fmov h1, w2550; FP16:  fmov w1, h2                 ; encoding: [0x41,0x00,0xe6,0x1e]551; NO-FP16: error: instruction requires:552; NO-FP16-NEXT: fmov w1, h2553; FP16:  fmov h1, x2                 ; encoding: [0x41,0x00,0xe7,0x9e]554; NO-FP16: error: instruction requires:555; NO-FP16-NEXT: fmov h1, x2556; FP16:  fmov x1, h2                 ; encoding: [0x41,0x00,0xe6,0x9e]557; NO-FP16: error: instruction requires:558; NO-FP16-NEXT: fmov x1, h2559; CHECK: fmov s1, w2                 ; encoding: [0x41,0x00,0x27,0x1e]560; CHECK: fmov w1, s2                 ; encoding: [0x41,0x00,0x26,0x1e]561; CHECK: fmov d1, x2                 ; encoding: [0x41,0x00,0x67,0x9e]562; CHECK: fmov x1, d2                 ; encoding: [0x41,0x00,0x66,0x9e]563 564  fmov h1, #0.125565  fmov h1, #0x40566  fmov s1, #0.125567  fmov s1, #0x40568  fmov d1, #0.125569  fmov d1, #0x40570  fmov d1, #-4.843750e-01571  fmov d1, #4.843750e-01572  fmov d3, #3573  fmov h2, #0.0574  fmov s2, #0.0575  fmov d2, #0.0576 577; FP16:  fmov h1, #0.12500000      ; encoding: [0x01,0x10,0xe8,0x1e]578; NO-FP16: error: instruction requires:579; NO-FP16-NEXT: fmov h1, #0.125580; FP16:  fmov h1, #0.12500000      ; encoding: [0x01,0x10,0xe8,0x1e]581; NO-FP16: error: instruction requires:582; NO-FP16-NEXT: fmov h1, #0x40583; CHECK: fmov s1, #0.12500000      ; encoding: [0x01,0x10,0x28,0x1e]584; CHECK: fmov s1, #0.12500000      ; encoding: [0x01,0x10,0x28,0x1e]585; CHECK: fmov d1, #0.12500000      ; encoding: [0x01,0x10,0x68,0x1e]586; CHECK: fmov d1, #0.12500000      ; encoding: [0x01,0x10,0x68,0x1e]587; CHECK: fmov d1, #-0.48437500     ; encoding: [0x01,0xf0,0x7b,0x1e]588; CHECK: fmov d1, #0.48437500      ; encoding: [0x01,0xf0,0x6b,0x1e]589; CHECK: fmov d3, #3.00000000      ; encoding: [0x03,0x10,0x61,0x1e]590; FP16:  fmov h2, wzr                ; encoding: [0xe2,0x03,0xe7,0x1e]591; NO-FP16: error: instruction requires:592; NO-FP16-NEXT: fmov h2, #0.0593; CHECK: fmov s2, wzr                ; encoding: [0xe2,0x03,0x27,0x1e]594; CHECK: fmov d2, xzr                ; encoding: [0xe2,0x03,0x67,0x9e]595 596  fmov h1, h2597  fmov s1, s2598  fmov d1, d2599 600; FP16:  fmov h1, h2                 ; encoding: [0x41,0x40,0xe0,0x1e]601; NO-FP16: error: instruction requires:602; NO-FP16-NEXT: fmov h1, h2603; CHECK: fmov s1, s2                 ; encoding: [0x41,0x40,0x20,0x1e]604; CHECK: fmov d1, d2                 ; encoding: [0x41,0x40,0x60,0x1e]605 606 607  fmov x2, v5.d[1]608  fmov.d x9, v7[1]609  fmov v1.d[1], x1610  fmov.d v8[1], x6611 612; CHECK: fmov.d x2, v5[1]               ; encoding: [0xa2,0x00,0xae,0x9e]613; CHECK: fmov.d x9, v7[1]               ; encoding: [0xe9,0x00,0xae,0x9e]614; CHECK: fmov.d v1[1], x1               ; encoding: [0x21,0x00,0xaf,0x9e]615; CHECK: fmov.d v8[1], x6               ; encoding: [0xc8,0x00,0xaf,0x9e]616 617 618;-----------------------------------------------------------------------------619; Floating-point round to integral620;-----------------------------------------------------------------------------621 622  frinta h1, h2623  frinta s1, s2624  frinta d1, d2625 626; FP16:  frinta h1, h2               ; encoding: [0x41,0x40,0xe6,0x1e]627; NO-FP16: error: instruction requires:628; NO-FP16-NEXT: frinta h1, h2629; CHECK: frinta s1, s2               ; encoding: [0x41,0x40,0x26,0x1e]630; CHECK: frinta d1, d2               ; encoding: [0x41,0x40,0x66,0x1e]631 632  frinti h1, h2633  frinti s1, s2634  frinti d1, d2635 636; FP16:  frinti h1, h2               ; encoding: [0x41,0xc0,0xe7,0x1e]637; NO-FP16: error: instruction requires:638; NO-FP16-NEXT: frinti h1, h2639; CHECK: frinti s1, s2               ; encoding: [0x41,0xc0,0x27,0x1e]640; CHECK: frinti d1, d2               ; encoding: [0x41,0xc0,0x67,0x1e]641 642  frintm h1, h2643  frintm s1, s2644  frintm d1, d2645 646; FP16:  frintm h1, h2               ; encoding: [0x41,0x40,0xe5,0x1e]647; NO-FP16: error: instruction requires:648; NO-FP16-NEXT: frintm h1, h2649; CHECK: frintm s1, s2               ; encoding: [0x41,0x40,0x25,0x1e]650; CHECK: frintm d1, d2               ; encoding: [0x41,0x40,0x65,0x1e]651 652  frintn h1, h2653  frintn s1, s2654  frintn d1, d2655 656; FP16:  frintn h1, h2               ; encoding: [0x41,0x40,0xe4,0x1e]657; NO-FP16: error: instruction requires:658; NO-FP16-NEXT: frintn h1, h2659; CHECK: frintn s1, s2               ; encoding: [0x41,0x40,0x24,0x1e]660; CHECK: frintn d1, d2               ; encoding: [0x41,0x40,0x64,0x1e]661 662  frintp h1, h2663  frintp s1, s2664  frintp d1, d2665 666; FP16:  frintp h1, h2               ; encoding: [0x41,0xc0,0xe4,0x1e]667; NO-FP16: error: instruction requires:668; NO-FP16-NEXT: frintp h1, h2669; CHECK: frintp s1, s2               ; encoding: [0x41,0xc0,0x24,0x1e]670; CHECK: frintp d1, d2               ; encoding: [0x41,0xc0,0x64,0x1e]671 672  frintx h1, h2673  frintx s1, s2674  frintx d1, d2675 676; FP16:  frintx h1, h2               ; encoding: [0x41,0x40,0xe7,0x1e]677; NO-FP16: error: instruction requires:678; NO-FP16-NEXT: frintx h1, h2679; CHECK: frintx s1, s2               ; encoding: [0x41,0x40,0x27,0x1e]680; CHECK: frintx d1, d2               ; encoding: [0x41,0x40,0x67,0x1e]681 682  frintz h1, h2683  frintz s1, s2684  frintz d1, d2685 686; FP16:  frintz h1, h2               ; encoding: [0x41,0xc0,0xe5,0x1e]687; NO-FP16: error: instruction requires:688; NO-FP16-NEXT: frintz h1, h2689; CHECK: frintz s1, s2               ; encoding: [0x41,0xc0,0x25,0x1e]690; CHECK: frintz d1, d2               ; encoding: [0x41,0xc0,0x65,0x1e]691 692  cmhs d0, d0, d0693  cmtst d0, d0, d0694 695; CHECK: cmhs d0, d0, d0              ; encoding: [0x00,0x3c,0xe0,0x7e]696; CHECK: cmtst  d0, d0, d0              ; encoding: [0x00,0x8c,0xe0,0x5e]697 698 699 700;-----------------------------------------------------------------------------701; Floating-point extract and narrow702;-----------------------------------------------------------------------------703  sqxtn b4, h2704  sqxtn h2, s3705  sqxtn s9, d2706 707; CHECK: sqxtn b4, h2                  ; encoding: [0x44,0x48,0x21,0x5e]708; CHECK: sqxtn h2, s3                  ; encoding: [0x62,0x48,0x61,0x5e]709; CHECK: sqxtn s9, d2                  ; encoding: [0x49,0x48,0xa1,0x5e]710 711  sqxtun b4, h2712  sqxtun h2, s3713  sqxtun s9, d2714 715; CHECK: sqxtun b4, h2                  ; encoding: [0x44,0x28,0x21,0x7e]716; CHECK: sqxtun h2, s3                  ; encoding: [0x62,0x28,0x61,0x7e]717; CHECK: sqxtun s9, d2                  ; encoding: [0x49,0x28,0xa1,0x7e]718 719  uqxtn b4, h2720  uqxtn h2, s3721  uqxtn s9, d2722 723; CHECK: uqxtn b4, h2                  ; encoding: [0x44,0x48,0x21,0x7e]724; CHECK: uqxtn h2, s3                  ; encoding: [0x62,0x48,0x61,0x7e]725; CHECK: uqxtn s9, d2                  ; encoding: [0x49,0x48,0xa1,0x7e]726