brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.8 KiB · 0a31271 Raw
486 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --extra_scrub2; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s3 4; FCEIL5 6define <vscale x 8 x half> @frintp_nxv8f16(<vscale x 8 x half> %a) {7; CHECK-LABEL: frintp_nxv8f16:8; CHECK:       // %bb.0:9; CHECK-NEXT:    ptrue p0.h10; CHECK-NEXT:    frintp z0.h, p0/m, z0.h11; CHECK-NEXT:    ret12  %res = call <vscale x 8 x half> @llvm.ceil.nxv8f16(<vscale x 8 x half> %a)13  ret <vscale x 8 x half> %res14}15 16define <vscale x 4 x half> @frintp_nxv4f16(<vscale x 4 x half> %a) {17; CHECK-LABEL: frintp_nxv4f16:18; CHECK:       // %bb.0:19; CHECK-NEXT:    ptrue p0.s20; CHECK-NEXT:    frintp z0.h, p0/m, z0.h21; CHECK-NEXT:    ret22  %res = call <vscale x 4 x half> @llvm.ceil.nxv4f16(<vscale x 4 x half> %a)23  ret <vscale x 4 x half> %res24}25 26define <vscale x 2 x half> @frintp_nxv2f16(<vscale x 2 x half> %a) {27; CHECK-LABEL: frintp_nxv2f16:28; CHECK:       // %bb.0:29; CHECK-NEXT:    ptrue p0.d30; CHECK-NEXT:    frintp z0.h, p0/m, z0.h31; CHECK-NEXT:    ret32  %res = call <vscale x 2 x half> @llvm.ceil.nxv2f16(<vscale x 2 x half> %a)33  ret <vscale x 2 x half> %res34}35 36define <vscale x 4 x float> @frintp_nxv4f32(<vscale x 4 x float> %a) {37; CHECK-LABEL: frintp_nxv4f32:38; CHECK:       // %bb.0:39; CHECK-NEXT:    ptrue p0.s40; CHECK-NEXT:    frintp z0.s, p0/m, z0.s41; CHECK-NEXT:    ret42  %res = call <vscale x 4 x float> @llvm.ceil.nxv4f32(<vscale x 4 x float> %a)43  ret <vscale x 4 x float> %res44}45 46define <vscale x 2 x float> @frintp_nxv2f32(<vscale x 2 x float> %a) {47; CHECK-LABEL: frintp_nxv2f32:48; CHECK:       // %bb.0:49; CHECK-NEXT:    ptrue p0.d50; CHECK-NEXT:    frintp z0.s, p0/m, z0.s51; CHECK-NEXT:    ret52  %res = call <vscale x 2 x float> @llvm.ceil.nxv2f32(<vscale x 2 x float> %a)53  ret <vscale x 2 x float> %res54}55 56define <vscale x 2 x double> @frintp_nxv2f64(<vscale x 2 x double> %a) {57; CHECK-LABEL: frintp_nxv2f64:58; CHECK:       // %bb.0:59; CHECK-NEXT:    ptrue p0.d60; CHECK-NEXT:    frintp z0.d, p0/m, z0.d61; CHECK-NEXT:    ret62  %res = call <vscale x 2 x double> @llvm.ceil.nxv2f64(<vscale x 2 x double> %a)63  ret <vscale x 2 x double> %res64}65 66; FFLOOR67 68define <vscale x 8 x half> @frintm_nxv8f16(<vscale x 8 x half> %a) {69; CHECK-LABEL: frintm_nxv8f16:70; CHECK:       // %bb.0:71; CHECK-NEXT:    ptrue p0.h72; CHECK-NEXT:    frintm z0.h, p0/m, z0.h73; CHECK-NEXT:    ret74  %res = call <vscale x 8 x half> @llvm.floor.nxv8f16(<vscale x 8 x half> %a)75  ret <vscale x 8 x half> %res76}77 78define <vscale x 4 x half> @frintm_nxv4f16(<vscale x 4 x half> %a) {79; CHECK-LABEL: frintm_nxv4f16:80; CHECK:       // %bb.0:81; CHECK-NEXT:    ptrue p0.s82; CHECK-NEXT:    frintm z0.h, p0/m, z0.h83; CHECK-NEXT:    ret84  %res = call <vscale x 4 x half> @llvm.floor.nxv4f16(<vscale x 4 x half> %a)85  ret <vscale x 4 x half> %res86}87 88define <vscale x 2 x half> @frintm_nxv2f16(<vscale x 2 x half> %a) {89; CHECK-LABEL: frintm_nxv2f16:90; CHECK:       // %bb.0:91; CHECK-NEXT:    ptrue p0.d92; CHECK-NEXT:    frintm z0.h, p0/m, z0.h93; CHECK-NEXT:    ret94  %res = call <vscale x 2 x half> @llvm.floor.nxv2f16(<vscale x 2 x half> %a)95  ret <vscale x 2 x half> %res96}97 98define <vscale x 4 x float> @frintm_nxv4f32(<vscale x 4 x float> %a) {99; CHECK-LABEL: frintm_nxv4f32:100; CHECK:       // %bb.0:101; CHECK-NEXT:    ptrue p0.s102; CHECK-NEXT:    frintm z0.s, p0/m, z0.s103; CHECK-NEXT:    ret104  %res = call <vscale x 4 x float> @llvm.floor.nxv4f32(<vscale x 4 x float> %a)105  ret <vscale x 4 x float> %res106}107 108define <vscale x 2 x float> @frintm_nxv2f32(<vscale x 2 x float> %a) {109; CHECK-LABEL: frintm_nxv2f32:110; CHECK:       // %bb.0:111; CHECK-NEXT:    ptrue p0.d112; CHECK-NEXT:    frintm z0.s, p0/m, z0.s113; CHECK-NEXT:    ret114  %res = call <vscale x 2 x float> @llvm.floor.nxv2f32(<vscale x 2 x float> %a)115  ret <vscale x 2 x float> %res116}117 118define <vscale x 2 x double> @frintm_nxv2f64(<vscale x 2 x double> %a) {119; CHECK-LABEL: frintm_nxv2f64:120; CHECK:       // %bb.0:121; CHECK-NEXT:    ptrue p0.d122; CHECK-NEXT:    frintm z0.d, p0/m, z0.d123; CHECK-NEXT:    ret124  %res = call <vscale x 2 x double> @llvm.floor.nxv2f64(<vscale x 2 x double> %a)125  ret <vscale x 2 x double> %res126}127 128; FNEARBYINT129 130define <vscale x 8 x half> @frinti_nxv8f16(<vscale x 8 x half> %a) {131; CHECK-LABEL: frinti_nxv8f16:132; CHECK:       // %bb.0:133; CHECK-NEXT:    ptrue p0.h134; CHECK-NEXT:    frinti z0.h, p0/m, z0.h135; CHECK-NEXT:    ret136  %res = call <vscale x 8 x half> @llvm.nearbyint.nxv8f16(<vscale x 8 x half> %a)137  ret <vscale x 8 x half> %res138}139 140define <vscale x 4 x half> @frinti_nxv4f16(<vscale x 4 x half> %a) {141; CHECK-LABEL: frinti_nxv4f16:142; CHECK:       // %bb.0:143; CHECK-NEXT:    ptrue p0.s144; CHECK-NEXT:    frinti z0.h, p0/m, z0.h145; CHECK-NEXT:    ret146  %res = call <vscale x 4 x half> @llvm.nearbyint.nxv4f16(<vscale x 4 x half> %a)147  ret <vscale x 4 x half> %res148}149 150define <vscale x 2 x half> @frinti_nxv2f16(<vscale x 2 x half> %a) {151; CHECK-LABEL: frinti_nxv2f16:152; CHECK:       // %bb.0:153; CHECK-NEXT:    ptrue p0.d154; CHECK-NEXT:    frinti z0.h, p0/m, z0.h155; CHECK-NEXT:    ret156  %res = call <vscale x 2 x half> @llvm.nearbyint.nxv2f16(<vscale x 2 x half> %a)157  ret <vscale x 2 x half> %res158}159 160define <vscale x 4 x float> @frinti_nxv4f32(<vscale x 4 x float> %a) {161; CHECK-LABEL: frinti_nxv4f32:162; CHECK:       // %bb.0:163; CHECK-NEXT:    ptrue p0.s164; CHECK-NEXT:    frinti z0.s, p0/m, z0.s165; CHECK-NEXT:    ret166  %res = call <vscale x 4 x float> @llvm.nearbyint.nxv4f32(<vscale x 4 x float> %a)167  ret <vscale x 4 x float> %res168}169 170define <vscale x 2 x float> @frinti_nxv2f32(<vscale x 2 x float> %a) {171; CHECK-LABEL: frinti_nxv2f32:172; CHECK:       // %bb.0:173; CHECK-NEXT:    ptrue p0.d174; CHECK-NEXT:    frinti z0.s, p0/m, z0.s175; CHECK-NEXT:    ret176  %res = call <vscale x 2 x float> @llvm.nearbyint.nxv2f32(<vscale x 2 x float> %a)177  ret <vscale x 2 x float> %res178}179 180define <vscale x 2 x double> @frinti_nxv2f64(<vscale x 2 x double> %a) {181; CHECK-LABEL: frinti_nxv2f64:182; CHECK:       // %bb.0:183; CHECK-NEXT:    ptrue p0.d184; CHECK-NEXT:    frinti z0.d, p0/m, z0.d185; CHECK-NEXT:    ret186  %res = call <vscale x 2 x double> @llvm.nearbyint.nxv2f64(<vscale x 2 x double> %a)187  ret <vscale x 2 x double> %res188}189 190; FRINT191 192define <vscale x 8 x half> @frintx_nxv8f16(<vscale x 8 x half> %a) {193; CHECK-LABEL: frintx_nxv8f16:194; CHECK:       // %bb.0:195; CHECK-NEXT:    ptrue p0.h196; CHECK-NEXT:    frintx z0.h, p0/m, z0.h197; CHECK-NEXT:    ret198  %res = call <vscale x 8 x half> @llvm.rint.nxv8f16(<vscale x 8 x half> %a)199  ret <vscale x 8 x half> %res200}201 202define <vscale x 4 x half> @frintx_nxv4f16(<vscale x 4 x half> %a) {203; CHECK-LABEL: frintx_nxv4f16:204; CHECK:       // %bb.0:205; CHECK-NEXT:    ptrue p0.s206; CHECK-NEXT:    frintx z0.h, p0/m, z0.h207; CHECK-NEXT:    ret208  %res = call <vscale x 4 x half> @llvm.rint.nxv4f16(<vscale x 4 x half> %a)209  ret <vscale x 4 x half> %res210}211 212define <vscale x 2 x half> @frintx_nxv2f16(<vscale x 2 x half> %a) {213; CHECK-LABEL: frintx_nxv2f16:214; CHECK:       // %bb.0:215; CHECK-NEXT:    ptrue p0.d216; CHECK-NEXT:    frintx z0.h, p0/m, z0.h217; CHECK-NEXT:    ret218  %res = call <vscale x 2 x half> @llvm.rint.nxv2f16(<vscale x 2 x half> %a)219  ret <vscale x 2 x half> %res220}221 222define <vscale x 4 x float> @frintx_nxv4f32(<vscale x 4 x float> %a) {223; CHECK-LABEL: frintx_nxv4f32:224; CHECK:       // %bb.0:225; CHECK-NEXT:    ptrue p0.s226; CHECK-NEXT:    frintx z0.s, p0/m, z0.s227; CHECK-NEXT:    ret228  %res = call <vscale x 4 x float> @llvm.rint.nxv4f32(<vscale x 4 x float> %a)229  ret <vscale x 4 x float> %res230}231 232define <vscale x 2 x float> @frintx_nxv2f32(<vscale x 2 x float> %a) {233; CHECK-LABEL: frintx_nxv2f32:234; CHECK:       // %bb.0:235; CHECK-NEXT:    ptrue p0.d236; CHECK-NEXT:    frintx z0.s, p0/m, z0.s237; CHECK-NEXT:    ret238  %res = call <vscale x 2 x float> @llvm.rint.nxv2f32(<vscale x 2 x float> %a)239  ret <vscale x 2 x float> %res240}241 242define <vscale x 2 x double> @frintx_nxv2f64(<vscale x 2 x double> %a) {243; CHECK-LABEL: frintx_nxv2f64:244; CHECK:       // %bb.0:245; CHECK-NEXT:    ptrue p0.d246; CHECK-NEXT:    frintx z0.d, p0/m, z0.d247; CHECK-NEXT:    ret248  %res = call <vscale x 2 x double> @llvm.rint.nxv2f64(<vscale x 2 x double> %a)249  ret <vscale x 2 x double> %res250}251 252; ROUND253 254define <vscale x 8 x half> @frinta_nxv8f16(<vscale x 8 x half> %a) {255; CHECK-LABEL: frinta_nxv8f16:256; CHECK:       // %bb.0:257; CHECK-NEXT:    ptrue p0.h258; CHECK-NEXT:    frinta z0.h, p0/m, z0.h259; CHECK-NEXT:    ret260  %res = call <vscale x 8 x half> @llvm.round.nxv8f16(<vscale x 8 x half> %a)261  ret <vscale x 8 x half> %res262}263 264define <vscale x 4 x half> @frinta_nxv4f16(<vscale x 4 x half> %a) {265; CHECK-LABEL: frinta_nxv4f16:266; CHECK:       // %bb.0:267; CHECK-NEXT:    ptrue p0.s268; CHECK-NEXT:    frinta z0.h, p0/m, z0.h269; CHECK-NEXT:    ret270  %res = call <vscale x 4 x half> @llvm.round.nxv4f16(<vscale x 4 x half> %a)271  ret <vscale x 4 x half> %res272}273 274define <vscale x 2 x half> @frinta_nxv2f16(<vscale x 2 x half> %a) {275; CHECK-LABEL: frinta_nxv2f16:276; CHECK:       // %bb.0:277; CHECK-NEXT:    ptrue p0.d278; CHECK-NEXT:    frinta z0.h, p0/m, z0.h279; CHECK-NEXT:    ret280  %res = call <vscale x 2 x half> @llvm.round.nxv2f16(<vscale x 2 x half> %a)281  ret <vscale x 2 x half> %res282}283 284define <vscale x 4 x float> @frinta_nxv4f32(<vscale x 4 x float> %a) {285; CHECK-LABEL: frinta_nxv4f32:286; CHECK:       // %bb.0:287; CHECK-NEXT:    ptrue p0.s288; CHECK-NEXT:    frinta z0.s, p0/m, z0.s289; CHECK-NEXT:    ret290  %res = call <vscale x 4 x float> @llvm.round.nxv4f32(<vscale x 4 x float> %a)291  ret <vscale x 4 x float> %res292}293 294define <vscale x 2 x float> @frinta_nxv2f32(<vscale x 2 x float> %a) {295; CHECK-LABEL: frinta_nxv2f32:296; CHECK:       // %bb.0:297; CHECK-NEXT:    ptrue p0.d298; CHECK-NEXT:    frinta z0.s, p0/m, z0.s299; CHECK-NEXT:    ret300  %res = call <vscale x 2 x float> @llvm.round.nxv2f32(<vscale x 2 x float> %a)301  ret <vscale x 2 x float> %res302}303 304define <vscale x 2 x double> @frinta_nxv2f64(<vscale x 2 x double> %a) {305; CHECK-LABEL: frinta_nxv2f64:306; CHECK:       // %bb.0:307; CHECK-NEXT:    ptrue p0.d308; CHECK-NEXT:    frinta z0.d, p0/m, z0.d309; CHECK-NEXT:    ret310  %res = call <vscale x 2 x double> @llvm.round.nxv2f64(<vscale x 2 x double> %a)311  ret <vscale x 2 x double> %res312}313 314; ROUNDEVEN315 316define <vscale x 8 x half> @frintn_nxv8f16(<vscale x 8 x half> %a) {317; CHECK-LABEL: frintn_nxv8f16:318; CHECK:       // %bb.0:319; CHECK-NEXT:    ptrue p0.h320; CHECK-NEXT:    frintn z0.h, p0/m, z0.h321; CHECK-NEXT:    ret322  %res = call <vscale x 8 x half> @llvm.roundeven.nxv8f16(<vscale x 8 x half> %a)323  ret <vscale x 8 x half> %res324}325 326define <vscale x 4 x half> @frintn_nxv4f16(<vscale x 4 x half> %a) {327; CHECK-LABEL: frintn_nxv4f16:328; CHECK:       // %bb.0:329; CHECK-NEXT:    ptrue p0.s330; CHECK-NEXT:    frintn z0.h, p0/m, z0.h331; CHECK-NEXT:    ret332  %res = call <vscale x 4 x half> @llvm.roundeven.nxv4f16(<vscale x 4 x half> %a)333  ret <vscale x 4 x half> %res334}335 336define <vscale x 2 x half> @frintn_nxv2f16(<vscale x 2 x half> %a) {337; CHECK-LABEL: frintn_nxv2f16:338; CHECK:       // %bb.0:339; CHECK-NEXT:    ptrue p0.d340; CHECK-NEXT:    frintn z0.h, p0/m, z0.h341; CHECK-NEXT:    ret342  %res = call <vscale x 2 x half> @llvm.roundeven.nxv2f16(<vscale x 2 x half> %a)343  ret <vscale x 2 x half> %res344}345 346define <vscale x 4 x float> @frintn_nxv4f32(<vscale x 4 x float> %a) {347; CHECK-LABEL: frintn_nxv4f32:348; CHECK:       // %bb.0:349; CHECK-NEXT:    ptrue p0.s350; CHECK-NEXT:    frintn z0.s, p0/m, z0.s351; CHECK-NEXT:    ret352  %res = call <vscale x 4 x float> @llvm.roundeven.nxv4f32(<vscale x 4 x float> %a)353  ret <vscale x 4 x float> %res354}355 356define <vscale x 2 x float> @frintn_nxv2f32(<vscale x 2 x float> %a) {357; CHECK-LABEL: frintn_nxv2f32:358; CHECK:       // %bb.0:359; CHECK-NEXT:    ptrue p0.d360; CHECK-NEXT:    frintn z0.s, p0/m, z0.s361; CHECK-NEXT:    ret362  %res = call <vscale x 2 x float> @llvm.roundeven.nxv2f32(<vscale x 2 x float> %a)363  ret <vscale x 2 x float> %res364}365 366define <vscale x 2 x double> @frintn_nxv2f64(<vscale x 2 x double> %a) {367; CHECK-LABEL: frintn_nxv2f64:368; CHECK:       // %bb.0:369; CHECK-NEXT:    ptrue p0.d370; CHECK-NEXT:    frintn z0.d, p0/m, z0.d371; CHECK-NEXT:    ret372  %res = call <vscale x 2 x double> @llvm.roundeven.nxv2f64(<vscale x 2 x double> %a)373  ret <vscale x 2 x double> %res374}375 376; FTRUNC377 378define <vscale x 8 x half> @frintz_nxv8f16(<vscale x 8 x half> %a) {379; CHECK-LABEL: frintz_nxv8f16:380; CHECK:       // %bb.0:381; CHECK-NEXT:    ptrue p0.h382; CHECK-NEXT:    frintz z0.h, p0/m, z0.h383; CHECK-NEXT:    ret384  %res = call <vscale x 8 x half> @llvm.trunc.nxv8f16(<vscale x 8 x half> %a)385  ret <vscale x 8 x half> %res386}387 388define <vscale x 4 x half> @frintz_nxv4f16(<vscale x 4 x half> %a) {389; CHECK-LABEL: frintz_nxv4f16:390; CHECK:       // %bb.0:391; CHECK-NEXT:    ptrue p0.s392; CHECK-NEXT:    frintz z0.h, p0/m, z0.h393; CHECK-NEXT:    ret394  %res = call <vscale x 4 x half> @llvm.trunc.nxv4f16(<vscale x 4 x half> %a)395  ret <vscale x 4 x half> %res396}397 398define <vscale x 2 x half> @frintz_nxv2f16(<vscale x 2 x half> %a) {399; CHECK-LABEL: frintz_nxv2f16:400; CHECK:       // %bb.0:401; CHECK-NEXT:    ptrue p0.d402; CHECK-NEXT:    frintz z0.h, p0/m, z0.h403; CHECK-NEXT:    ret404  %res = call <vscale x 2 x half> @llvm.trunc.nxv2f16(<vscale x 2 x half> %a)405  ret <vscale x 2 x half> %res406}407 408define <vscale x 4 x float> @frintz_nxv4f32(<vscale x 4 x float> %a) {409; CHECK-LABEL: frintz_nxv4f32:410; CHECK:       // %bb.0:411; CHECK-NEXT:    ptrue p0.s412; CHECK-NEXT:    frintz z0.s, p0/m, z0.s413; CHECK-NEXT:    ret414  %res = call <vscale x 4 x float> @llvm.trunc.nxv4f32(<vscale x 4 x float> %a)415  ret <vscale x 4 x float> %res416}417 418define <vscale x 2 x float> @frintz_nxv2f32(<vscale x 2 x float> %a) {419; CHECK-LABEL: frintz_nxv2f32:420; CHECK:       // %bb.0:421; CHECK-NEXT:    ptrue p0.d422; CHECK-NEXT:    frintz z0.s, p0/m, z0.s423; CHECK-NEXT:    ret424  %res = call <vscale x 2 x float> @llvm.trunc.nxv2f32(<vscale x 2 x float> %a)425  ret <vscale x 2 x float> %res426}427 428define <vscale x 2 x double> @frintz_nxv2f64(<vscale x 2 x double> %a) {429; CHECK-LABEL: frintz_nxv2f64:430; CHECK:       // %bb.0:431; CHECK-NEXT:    ptrue p0.d432; CHECK-NEXT:    frintz z0.d, p0/m, z0.d433; CHECK-NEXT:    ret434  %res = call <vscale x 2 x double> @llvm.trunc.nxv2f64(<vscale x 2 x double> %a)435  ret <vscale x 2 x double> %res436}437 438declare <vscale x 8 x half> @llvm.ceil.nxv8f16( <vscale x 8 x half>)439declare <vscale x 4 x half> @llvm.ceil.nxv4f16( <vscale x 4 x half>)440declare <vscale x 2 x half> @llvm.ceil.nxv2f16( <vscale x 2 x half>)441declare <vscale x 4 x float> @llvm.ceil.nxv4f32(<vscale x 4 x float>)442declare <vscale x 2 x float> @llvm.ceil.nxv2f32(<vscale x 2 x float>)443declare <vscale x 2 x double> @llvm.ceil.nxv2f64(<vscale x 2 x double>)444 445declare <vscale x 8 x half> @llvm.floor.nxv8f16( <vscale x 8 x half>)446declare <vscale x 4 x half> @llvm.floor.nxv4f16( <vscale x 4 x half>)447declare <vscale x 2 x half> @llvm.floor.nxv2f16( <vscale x 2 x half>)448declare <vscale x 4 x float> @llvm.floor.nxv4f32(<vscale x 4 x float>)449declare <vscale x 2 x float> @llvm.floor.nxv2f32(<vscale x 2 x float>)450declare <vscale x 2 x double> @llvm.floor.nxv2f64(<vscale x 2 x double>)451 452declare <vscale x 8 x half> @llvm.nearbyint.nxv8f16( <vscale x 8 x half>)453declare <vscale x 4 x half> @llvm.nearbyint.nxv4f16( <vscale x 4 x half>)454declare <vscale x 2 x half> @llvm.nearbyint.nxv2f16( <vscale x 2 x half>)455declare <vscale x 4 x float> @llvm.nearbyint.nxv4f32(<vscale x 4 x float>)456declare <vscale x 2 x float> @llvm.nearbyint.nxv2f32(<vscale x 2 x float>)457declare <vscale x 2 x double> @llvm.nearbyint.nxv2f64(<vscale x 2 x double>)458 459declare <vscale x 8 x half> @llvm.rint.nxv8f16( <vscale x 8 x half>)460declare <vscale x 4 x half> @llvm.rint.nxv4f16( <vscale x 4 x half>)461declare <vscale x 2 x half> @llvm.rint.nxv2f16( <vscale x 2 x half>)462declare <vscale x 4 x float> @llvm.rint.nxv4f32(<vscale x 4 x float>)463declare <vscale x 2 x float> @llvm.rint.nxv2f32(<vscale x 2 x float>)464declare <vscale x 2 x double> @llvm.rint.nxv2f64(<vscale x 2 x double>)465 466declare <vscale x 8 x half> @llvm.round.nxv8f16( <vscale x 8 x half>)467declare <vscale x 4 x half> @llvm.round.nxv4f16( <vscale x 4 x half>)468declare <vscale x 2 x half> @llvm.round.nxv2f16( <vscale x 2 x half>)469declare <vscale x 4 x float> @llvm.round.nxv4f32(<vscale x 4 x float>)470declare <vscale x 2 x float> @llvm.round.nxv2f32(<vscale x 2 x float>)471declare <vscale x 2 x double> @llvm.round.nxv2f64(<vscale x 2 x double>)472 473declare <vscale x 8 x half> @llvm.roundeven.nxv8f16( <vscale x 8 x half>)474declare <vscale x 4 x half> @llvm.roundeven.nxv4f16( <vscale x 4 x half>)475declare <vscale x 2 x half> @llvm.roundeven.nxv2f16( <vscale x 2 x half>)476declare <vscale x 4 x float> @llvm.roundeven.nxv4f32(<vscale x 4 x float>)477declare <vscale x 2 x float> @llvm.roundeven.nxv2f32(<vscale x 2 x float>)478declare <vscale x 2 x double> @llvm.roundeven.nxv2f64(<vscale x 2 x double>)479 480declare <vscale x 8 x half> @llvm.trunc.nxv8f16( <vscale x 8 x half>)481declare <vscale x 4 x half> @llvm.trunc.nxv4f16( <vscale x 4 x half>)482declare <vscale x 2 x half> @llvm.trunc.nxv2f16( <vscale x 2 x half>)483declare <vscale x 4 x float> @llvm.trunc.nxv4f32(<vscale x 4 x float>)484declare <vscale x 2 x float> @llvm.trunc.nxv2f32(<vscale x 2 x float>)485declare <vscale x 2 x double> @llvm.trunc.nxv2f64(<vscale x 2 x double>)486