766 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s \3; RUN: | FileCheck %s --check-prefixes=CHECK,RV324; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \5; RUN: | FileCheck %s --check-prefixes=CHECK,RV646 7define <vscale x 1 x i8> @uadd_nxv1i8_vv(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b) {8; CHECK-LABEL: uadd_nxv1i8_vv:9; CHECK: # %bb.0:10; CHECK-NEXT: vsetvli a0, zero, e8, mf8, ta, ma11; CHECK-NEXT: vsaddu.vv v8, v8, v912; CHECK-NEXT: ret13 %v = call <vscale x 1 x i8> @llvm.uadd.sat.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b)14 ret <vscale x 1 x i8> %v15}16 17define <vscale x 1 x i8> @uadd_nxv1i8_vx(<vscale x 1 x i8> %va, i8 %b) {18; CHECK-LABEL: uadd_nxv1i8_vx:19; CHECK: # %bb.0:20; CHECK-NEXT: vsetvli a1, zero, e8, mf8, ta, ma21; CHECK-NEXT: vsaddu.vx v8, v8, a022; CHECK-NEXT: ret23 %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 024 %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer25 %v = call <vscale x 1 x i8> @llvm.uadd.sat.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb)26 ret <vscale x 1 x i8> %v27}28 29define <vscale x 1 x i8> @uadd_nxv1i8_vi(<vscale x 1 x i8> %va) {30; CHECK-LABEL: uadd_nxv1i8_vi:31; CHECK: # %bb.0:32; CHECK-NEXT: vsetvli a0, zero, e8, mf8, ta, ma33; CHECK-NEXT: vsaddu.vi v8, v8, 834; CHECK-NEXT: ret35 %v = call <vscale x 1 x i8> @llvm.uadd.sat.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> splat (i8 8))36 ret <vscale x 1 x i8> %v37}38 39define <vscale x 2 x i8> @uadd_nxv2i8_vv(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b) {40; CHECK-LABEL: uadd_nxv2i8_vv:41; CHECK: # %bb.0:42; CHECK-NEXT: vsetvli a0, zero, e8, mf4, ta, ma43; CHECK-NEXT: vsaddu.vv v8, v8, v944; CHECK-NEXT: ret45 %v = call <vscale x 2 x i8> @llvm.uadd.sat.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b)46 ret <vscale x 2 x i8> %v47}48 49define <vscale x 2 x i8> @uadd_nxv2i8_vx(<vscale x 2 x i8> %va, i8 %b) {50; CHECK-LABEL: uadd_nxv2i8_vx:51; CHECK: # %bb.0:52; CHECK-NEXT: vsetvli a1, zero, e8, mf4, ta, ma53; CHECK-NEXT: vsaddu.vx v8, v8, a054; CHECK-NEXT: ret55 %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 056 %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer57 %v = call <vscale x 2 x i8> @llvm.uadd.sat.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb)58 ret <vscale x 2 x i8> %v59}60 61define <vscale x 2 x i8> @uadd_nxv2i8_vi(<vscale x 2 x i8> %va) {62; CHECK-LABEL: uadd_nxv2i8_vi:63; CHECK: # %bb.0:64; CHECK-NEXT: vsetvli a0, zero, e8, mf4, ta, ma65; CHECK-NEXT: vsaddu.vi v8, v8, 866; CHECK-NEXT: ret67 %v = call <vscale x 2 x i8> @llvm.uadd.sat.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> splat (i8 8))68 ret <vscale x 2 x i8> %v69}70 71define <vscale x 4 x i8> @uadd_nxv4i8_vv(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b) {72; CHECK-LABEL: uadd_nxv4i8_vv:73; CHECK: # %bb.0:74; CHECK-NEXT: vsetvli a0, zero, e8, mf2, ta, ma75; CHECK-NEXT: vsaddu.vv v8, v8, v976; CHECK-NEXT: ret77 %v = call <vscale x 4 x i8> @llvm.uadd.sat.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b)78 ret <vscale x 4 x i8> %v79}80 81define <vscale x 4 x i8> @uadd_nxv4i8_vx(<vscale x 4 x i8> %va, i8 %b) {82; CHECK-LABEL: uadd_nxv4i8_vx:83; CHECK: # %bb.0:84; CHECK-NEXT: vsetvli a1, zero, e8, mf2, ta, ma85; CHECK-NEXT: vsaddu.vx v8, v8, a086; CHECK-NEXT: ret87 %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 088 %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer89 %v = call <vscale x 4 x i8> @llvm.uadd.sat.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb)90 ret <vscale x 4 x i8> %v91}92 93define <vscale x 4 x i8> @uadd_nxv4i8_vi(<vscale x 4 x i8> %va) {94; CHECK-LABEL: uadd_nxv4i8_vi:95; CHECK: # %bb.0:96; CHECK-NEXT: vsetvli a0, zero, e8, mf2, ta, ma97; CHECK-NEXT: vsaddu.vi v8, v8, 898; CHECK-NEXT: ret99 %v = call <vscale x 4 x i8> @llvm.uadd.sat.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> splat (i8 8))100 ret <vscale x 4 x i8> %v101}102 103define <vscale x 8 x i8> @uadd_nxv8i8_vv(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b) {104; CHECK-LABEL: uadd_nxv8i8_vv:105; CHECK: # %bb.0:106; CHECK-NEXT: vsetvli a0, zero, e8, m1, ta, ma107; CHECK-NEXT: vsaddu.vv v8, v8, v9108; CHECK-NEXT: ret109 %v = call <vscale x 8 x i8> @llvm.uadd.sat.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b)110 ret <vscale x 8 x i8> %v111}112 113define <vscale x 8 x i8> @uadd_nxv8i8_vx(<vscale x 8 x i8> %va, i8 %b) {114; CHECK-LABEL: uadd_nxv8i8_vx:115; CHECK: # %bb.0:116; CHECK-NEXT: vsetvli a1, zero, e8, m1, ta, ma117; CHECK-NEXT: vsaddu.vx v8, v8, a0118; CHECK-NEXT: ret119 %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0120 %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer121 %v = call <vscale x 8 x i8> @llvm.uadd.sat.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb)122 ret <vscale x 8 x i8> %v123}124 125define <vscale x 8 x i8> @uadd_nxv8i8_vi(<vscale x 8 x i8> %va) {126; CHECK-LABEL: uadd_nxv8i8_vi:127; CHECK: # %bb.0:128; CHECK-NEXT: vsetvli a0, zero, e8, m1, ta, ma129; CHECK-NEXT: vsaddu.vi v8, v8, 8130; CHECK-NEXT: ret131 %v = call <vscale x 8 x i8> @llvm.uadd.sat.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> splat (i8 8))132 ret <vscale x 8 x i8> %v133}134 135define <vscale x 16 x i8> @uadd_nxv16i8_vv(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b) {136; CHECK-LABEL: uadd_nxv16i8_vv:137; CHECK: # %bb.0:138; CHECK-NEXT: vsetvli a0, zero, e8, m2, ta, ma139; CHECK-NEXT: vsaddu.vv v8, v8, v10140; CHECK-NEXT: ret141 %v = call <vscale x 16 x i8> @llvm.uadd.sat.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b)142 ret <vscale x 16 x i8> %v143}144 145define <vscale x 16 x i8> @uadd_nxv16i8_vx(<vscale x 16 x i8> %va, i8 %b) {146; CHECK-LABEL: uadd_nxv16i8_vx:147; CHECK: # %bb.0:148; CHECK-NEXT: vsetvli a1, zero, e8, m2, ta, ma149; CHECK-NEXT: vsaddu.vx v8, v8, a0150; CHECK-NEXT: ret151 %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0152 %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer153 %v = call <vscale x 16 x i8> @llvm.uadd.sat.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb)154 ret <vscale x 16 x i8> %v155}156 157define <vscale x 16 x i8> @uadd_nxv16i8_vi(<vscale x 16 x i8> %va) {158; CHECK-LABEL: uadd_nxv16i8_vi:159; CHECK: # %bb.0:160; CHECK-NEXT: vsetvli a0, zero, e8, m2, ta, ma161; CHECK-NEXT: vsaddu.vi v8, v8, 8162; CHECK-NEXT: ret163 %v = call <vscale x 16 x i8> @llvm.uadd.sat.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> splat (i8 8))164 ret <vscale x 16 x i8> %v165}166 167define <vscale x 32 x i8> @uadd_nxv32i8_vv(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b) {168; CHECK-LABEL: uadd_nxv32i8_vv:169; CHECK: # %bb.0:170; CHECK-NEXT: vsetvli a0, zero, e8, m4, ta, ma171; CHECK-NEXT: vsaddu.vv v8, v8, v12172; CHECK-NEXT: ret173 %v = call <vscale x 32 x i8> @llvm.uadd.sat.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b)174 ret <vscale x 32 x i8> %v175}176 177define <vscale x 32 x i8> @uadd_nxv32i8_vx(<vscale x 32 x i8> %va, i8 %b) {178; CHECK-LABEL: uadd_nxv32i8_vx:179; CHECK: # %bb.0:180; CHECK-NEXT: vsetvli a1, zero, e8, m4, ta, ma181; CHECK-NEXT: vsaddu.vx v8, v8, a0182; CHECK-NEXT: ret183 %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0184 %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer185 %v = call <vscale x 32 x i8> @llvm.uadd.sat.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb)186 ret <vscale x 32 x i8> %v187}188 189define <vscale x 32 x i8> @uadd_nxv32i8_vi(<vscale x 32 x i8> %va) {190; CHECK-LABEL: uadd_nxv32i8_vi:191; CHECK: # %bb.0:192; CHECK-NEXT: vsetvli a0, zero, e8, m4, ta, ma193; CHECK-NEXT: vsaddu.vi v8, v8, 8194; CHECK-NEXT: ret195 %v = call <vscale x 32 x i8> @llvm.uadd.sat.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> splat (i8 8))196 ret <vscale x 32 x i8> %v197}198 199define <vscale x 64 x i8> @uadd_nxv64i8_vv(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b) {200; CHECK-LABEL: uadd_nxv64i8_vv:201; CHECK: # %bb.0:202; CHECK-NEXT: vsetvli a0, zero, e8, m8, ta, ma203; CHECK-NEXT: vsaddu.vv v8, v8, v16204; CHECK-NEXT: ret205 %v = call <vscale x 64 x i8> @llvm.uadd.sat.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b)206 ret <vscale x 64 x i8> %v207}208 209define <vscale x 64 x i8> @uadd_nxv64i8_vx(<vscale x 64 x i8> %va, i8 %b) {210; CHECK-LABEL: uadd_nxv64i8_vx:211; CHECK: # %bb.0:212; CHECK-NEXT: vsetvli a1, zero, e8, m8, ta, ma213; CHECK-NEXT: vsaddu.vx v8, v8, a0214; CHECK-NEXT: ret215 %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0216 %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer217 %v = call <vscale x 64 x i8> @llvm.uadd.sat.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb)218 ret <vscale x 64 x i8> %v219}220 221define <vscale x 64 x i8> @uadd_nxv64i8_vi(<vscale x 64 x i8> %va) {222; CHECK-LABEL: uadd_nxv64i8_vi:223; CHECK: # %bb.0:224; CHECK-NEXT: vsetvli a0, zero, e8, m8, ta, ma225; CHECK-NEXT: vsaddu.vi v8, v8, 8226; CHECK-NEXT: ret227 %v = call <vscale x 64 x i8> @llvm.uadd.sat.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> splat (i8 8))228 ret <vscale x 64 x i8> %v229}230 231define <vscale x 1 x i16> @uadd_nxv1i16_vv(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b) {232; CHECK-LABEL: uadd_nxv1i16_vv:233; CHECK: # %bb.0:234; CHECK-NEXT: vsetvli a0, zero, e16, mf4, ta, ma235; CHECK-NEXT: vsaddu.vv v8, v8, v9236; CHECK-NEXT: ret237 %v = call <vscale x 1 x i16> @llvm.uadd.sat.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b)238 ret <vscale x 1 x i16> %v239}240 241define <vscale x 1 x i16> @uadd_nxv1i16_vx(<vscale x 1 x i16> %va, i16 %b) {242; CHECK-LABEL: uadd_nxv1i16_vx:243; CHECK: # %bb.0:244; CHECK-NEXT: vsetvli a1, zero, e16, mf4, ta, ma245; CHECK-NEXT: vsaddu.vx v8, v8, a0246; CHECK-NEXT: ret247 %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0248 %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer249 %v = call <vscale x 1 x i16> @llvm.uadd.sat.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb)250 ret <vscale x 1 x i16> %v251}252 253define <vscale x 1 x i16> @uadd_nxv1i16_vi(<vscale x 1 x i16> %va) {254; CHECK-LABEL: uadd_nxv1i16_vi:255; CHECK: # %bb.0:256; CHECK-NEXT: vsetvli a0, zero, e16, mf4, ta, ma257; CHECK-NEXT: vsaddu.vi v8, v8, 8258; CHECK-NEXT: ret259 %v = call <vscale x 1 x i16> @llvm.uadd.sat.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> splat (i16 8))260 ret <vscale x 1 x i16> %v261}262 263define <vscale x 2 x i16> @uadd_nxv2i16_vv(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b) {264; CHECK-LABEL: uadd_nxv2i16_vv:265; CHECK: # %bb.0:266; CHECK-NEXT: vsetvli a0, zero, e16, mf2, ta, ma267; CHECK-NEXT: vsaddu.vv v8, v8, v9268; CHECK-NEXT: ret269 %v = call <vscale x 2 x i16> @llvm.uadd.sat.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b)270 ret <vscale x 2 x i16> %v271}272 273define <vscale x 2 x i16> @uadd_nxv2i16_vx(<vscale x 2 x i16> %va, i16 %b) {274; CHECK-LABEL: uadd_nxv2i16_vx:275; CHECK: # %bb.0:276; CHECK-NEXT: vsetvli a1, zero, e16, mf2, ta, ma277; CHECK-NEXT: vsaddu.vx v8, v8, a0278; CHECK-NEXT: ret279 %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0280 %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer281 %v = call <vscale x 2 x i16> @llvm.uadd.sat.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb)282 ret <vscale x 2 x i16> %v283}284 285define <vscale x 2 x i16> @uadd_nxv2i16_vi(<vscale x 2 x i16> %va) {286; CHECK-LABEL: uadd_nxv2i16_vi:287; CHECK: # %bb.0:288; CHECK-NEXT: vsetvli a0, zero, e16, mf2, ta, ma289; CHECK-NEXT: vsaddu.vi v8, v8, 8290; CHECK-NEXT: ret291 %v = call <vscale x 2 x i16> @llvm.uadd.sat.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> splat (i16 8))292 ret <vscale x 2 x i16> %v293}294 295define <vscale x 4 x i16> @uadd_nxv4i16_vv(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b) {296; CHECK-LABEL: uadd_nxv4i16_vv:297; CHECK: # %bb.0:298; CHECK-NEXT: vsetvli a0, zero, e16, m1, ta, ma299; CHECK-NEXT: vsaddu.vv v8, v8, v9300; CHECK-NEXT: ret301 %v = call <vscale x 4 x i16> @llvm.uadd.sat.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b)302 ret <vscale x 4 x i16> %v303}304 305define <vscale x 4 x i16> @uadd_nxv4i16_vx(<vscale x 4 x i16> %va, i16 %b) {306; CHECK-LABEL: uadd_nxv4i16_vx:307; CHECK: # %bb.0:308; CHECK-NEXT: vsetvli a1, zero, e16, m1, ta, ma309; CHECK-NEXT: vsaddu.vx v8, v8, a0310; CHECK-NEXT: ret311 %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0312 %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer313 %v = call <vscale x 4 x i16> @llvm.uadd.sat.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb)314 ret <vscale x 4 x i16> %v315}316 317define <vscale x 4 x i16> @uadd_nxv4i16_vi(<vscale x 4 x i16> %va) {318; CHECK-LABEL: uadd_nxv4i16_vi:319; CHECK: # %bb.0:320; CHECK-NEXT: vsetvli a0, zero, e16, m1, ta, ma321; CHECK-NEXT: vsaddu.vi v8, v8, 8322; CHECK-NEXT: ret323 %v = call <vscale x 4 x i16> @llvm.uadd.sat.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> splat (i16 8))324 ret <vscale x 4 x i16> %v325}326 327define <vscale x 8 x i16> @uadd_nxv8i16_vv(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b) {328; CHECK-LABEL: uadd_nxv8i16_vv:329; CHECK: # %bb.0:330; CHECK-NEXT: vsetvli a0, zero, e16, m2, ta, ma331; CHECK-NEXT: vsaddu.vv v8, v8, v10332; CHECK-NEXT: ret333 %v = call <vscale x 8 x i16> @llvm.uadd.sat.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b)334 ret <vscale x 8 x i16> %v335}336 337define <vscale x 8 x i16> @uadd_nxv8i16_vx(<vscale x 8 x i16> %va, i16 %b) {338; CHECK-LABEL: uadd_nxv8i16_vx:339; CHECK: # %bb.0:340; CHECK-NEXT: vsetvli a1, zero, e16, m2, ta, ma341; CHECK-NEXT: vsaddu.vx v8, v8, a0342; CHECK-NEXT: ret343 %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0344 %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer345 %v = call <vscale x 8 x i16> @llvm.uadd.sat.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb)346 ret <vscale x 8 x i16> %v347}348 349define <vscale x 8 x i16> @uadd_nxv8i16_vi(<vscale x 8 x i16> %va) {350; CHECK-LABEL: uadd_nxv8i16_vi:351; CHECK: # %bb.0:352; CHECK-NEXT: vsetvli a0, zero, e16, m2, ta, ma353; CHECK-NEXT: vsaddu.vi v8, v8, 8354; CHECK-NEXT: ret355 %v = call <vscale x 8 x i16> @llvm.uadd.sat.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> splat (i16 8))356 ret <vscale x 8 x i16> %v357}358 359define <vscale x 16 x i16> @uadd_nxv16i16_vv(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b) {360; CHECK-LABEL: uadd_nxv16i16_vv:361; CHECK: # %bb.0:362; CHECK-NEXT: vsetvli a0, zero, e16, m4, ta, ma363; CHECK-NEXT: vsaddu.vv v8, v8, v12364; CHECK-NEXT: ret365 %v = call <vscale x 16 x i16> @llvm.uadd.sat.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b)366 ret <vscale x 16 x i16> %v367}368 369define <vscale x 16 x i16> @uadd_nxv16i16_vx(<vscale x 16 x i16> %va, i16 %b) {370; CHECK-LABEL: uadd_nxv16i16_vx:371; CHECK: # %bb.0:372; CHECK-NEXT: vsetvli a1, zero, e16, m4, ta, ma373; CHECK-NEXT: vsaddu.vx v8, v8, a0374; CHECK-NEXT: ret375 %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0376 %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer377 %v = call <vscale x 16 x i16> @llvm.uadd.sat.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb)378 ret <vscale x 16 x i16> %v379}380 381define <vscale x 16 x i16> @uadd_nxv16i16_vi(<vscale x 16 x i16> %va) {382; CHECK-LABEL: uadd_nxv16i16_vi:383; CHECK: # %bb.0:384; CHECK-NEXT: vsetvli a0, zero, e16, m4, ta, ma385; CHECK-NEXT: vsaddu.vi v8, v8, 8386; CHECK-NEXT: ret387 %v = call <vscale x 16 x i16> @llvm.uadd.sat.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> splat (i16 8))388 ret <vscale x 16 x i16> %v389}390 391define <vscale x 32 x i16> @uadd_nxv32i16_vv(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b) {392; CHECK-LABEL: uadd_nxv32i16_vv:393; CHECK: # %bb.0:394; CHECK-NEXT: vsetvli a0, zero, e16, m8, ta, ma395; CHECK-NEXT: vsaddu.vv v8, v8, v16396; CHECK-NEXT: ret397 %v = call <vscale x 32 x i16> @llvm.uadd.sat.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b)398 ret <vscale x 32 x i16> %v399}400 401define <vscale x 32 x i16> @uadd_nxv32i16_vx(<vscale x 32 x i16> %va, i16 %b) {402; CHECK-LABEL: uadd_nxv32i16_vx:403; CHECK: # %bb.0:404; CHECK-NEXT: vsetvli a1, zero, e16, m8, ta, ma405; CHECK-NEXT: vsaddu.vx v8, v8, a0406; CHECK-NEXT: ret407 %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0408 %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer409 %v = call <vscale x 32 x i16> @llvm.uadd.sat.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb)410 ret <vscale x 32 x i16> %v411}412 413define <vscale x 32 x i16> @uadd_nxv32i16_vi(<vscale x 32 x i16> %va) {414; CHECK-LABEL: uadd_nxv32i16_vi:415; CHECK: # %bb.0:416; CHECK-NEXT: vsetvli a0, zero, e16, m8, ta, ma417; CHECK-NEXT: vsaddu.vi v8, v8, 8418; CHECK-NEXT: ret419 %v = call <vscale x 32 x i16> @llvm.uadd.sat.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> splat (i16 8))420 ret <vscale x 32 x i16> %v421}422 423define <vscale x 1 x i32> @uadd_nxv1i32_vv(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b) {424; CHECK-LABEL: uadd_nxv1i32_vv:425; CHECK: # %bb.0:426; CHECK-NEXT: vsetvli a0, zero, e32, mf2, ta, ma427; CHECK-NEXT: vsaddu.vv v8, v8, v9428; CHECK-NEXT: ret429 %v = call <vscale x 1 x i32> @llvm.uadd.sat.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b)430 ret <vscale x 1 x i32> %v431}432 433define <vscale x 1 x i32> @uadd_nxv1i32_vx(<vscale x 1 x i32> %va, i32 %b) {434; CHECK-LABEL: uadd_nxv1i32_vx:435; CHECK: # %bb.0:436; CHECK-NEXT: vsetvli a1, zero, e32, mf2, ta, ma437; CHECK-NEXT: vsaddu.vx v8, v8, a0438; CHECK-NEXT: ret439 %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0440 %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer441 %v = call <vscale x 1 x i32> @llvm.uadd.sat.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb)442 ret <vscale x 1 x i32> %v443}444 445define <vscale x 1 x i32> @uadd_nxv1i32_vi(<vscale x 1 x i32> %va) {446; CHECK-LABEL: uadd_nxv1i32_vi:447; CHECK: # %bb.0:448; CHECK-NEXT: vsetvli a0, zero, e32, mf2, ta, ma449; CHECK-NEXT: vsaddu.vi v8, v8, 8450; CHECK-NEXT: ret451 %v = call <vscale x 1 x i32> @llvm.uadd.sat.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> splat (i32 8))452 ret <vscale x 1 x i32> %v453}454 455define <vscale x 2 x i32> @uadd_nxv2i32_vv(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b) {456; CHECK-LABEL: uadd_nxv2i32_vv:457; CHECK: # %bb.0:458; CHECK-NEXT: vsetvli a0, zero, e32, m1, ta, ma459; CHECK-NEXT: vsaddu.vv v8, v8, v9460; CHECK-NEXT: ret461 %v = call <vscale x 2 x i32> @llvm.uadd.sat.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b)462 ret <vscale x 2 x i32> %v463}464 465define <vscale x 2 x i32> @uadd_nxv2i32_vx(<vscale x 2 x i32> %va, i32 %b) {466; CHECK-LABEL: uadd_nxv2i32_vx:467; CHECK: # %bb.0:468; CHECK-NEXT: vsetvli a1, zero, e32, m1, ta, ma469; CHECK-NEXT: vsaddu.vx v8, v8, a0470; CHECK-NEXT: ret471 %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0472 %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer473 %v = call <vscale x 2 x i32> @llvm.uadd.sat.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb)474 ret <vscale x 2 x i32> %v475}476 477define <vscale x 2 x i32> @uadd_nxv2i32_vi(<vscale x 2 x i32> %va) {478; CHECK-LABEL: uadd_nxv2i32_vi:479; CHECK: # %bb.0:480; CHECK-NEXT: vsetvli a0, zero, e32, m1, ta, ma481; CHECK-NEXT: vsaddu.vi v8, v8, 8482; CHECK-NEXT: ret483 %v = call <vscale x 2 x i32> @llvm.uadd.sat.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> splat (i32 8))484 ret <vscale x 2 x i32> %v485}486 487define <vscale x 4 x i32> @uadd_nxv4i32_vv(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b) {488; CHECK-LABEL: uadd_nxv4i32_vv:489; CHECK: # %bb.0:490; CHECK-NEXT: vsetvli a0, zero, e32, m2, ta, ma491; CHECK-NEXT: vsaddu.vv v8, v8, v10492; CHECK-NEXT: ret493 %v = call <vscale x 4 x i32> @llvm.uadd.sat.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b)494 ret <vscale x 4 x i32> %v495}496 497define <vscale x 4 x i32> @uadd_nxv4i32_vx(<vscale x 4 x i32> %va, i32 %b) {498; CHECK-LABEL: uadd_nxv4i32_vx:499; CHECK: # %bb.0:500; CHECK-NEXT: vsetvli a1, zero, e32, m2, ta, ma501; CHECK-NEXT: vsaddu.vx v8, v8, a0502; CHECK-NEXT: ret503 %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0504 %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer505 %v = call <vscale x 4 x i32> @llvm.uadd.sat.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb)506 ret <vscale x 4 x i32> %v507}508 509define <vscale x 4 x i32> @uadd_nxv4i32_vi(<vscale x 4 x i32> %va) {510; CHECK-LABEL: uadd_nxv4i32_vi:511; CHECK: # %bb.0:512; CHECK-NEXT: vsetvli a0, zero, e32, m2, ta, ma513; CHECK-NEXT: vsaddu.vi v8, v8, 8514; CHECK-NEXT: ret515 %v = call <vscale x 4 x i32> @llvm.uadd.sat.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> splat (i32 8))516 ret <vscale x 4 x i32> %v517}518 519define <vscale x 8 x i32> @uadd_nxv8i32_vv(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b) {520; CHECK-LABEL: uadd_nxv8i32_vv:521; CHECK: # %bb.0:522; CHECK-NEXT: vsetvli a0, zero, e32, m4, ta, ma523; CHECK-NEXT: vsaddu.vv v8, v8, v12524; CHECK-NEXT: ret525 %v = call <vscale x 8 x i32> @llvm.uadd.sat.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b)526 ret <vscale x 8 x i32> %v527}528 529define <vscale x 8 x i32> @uadd_nxv8i32_vx(<vscale x 8 x i32> %va, i32 %b) {530; CHECK-LABEL: uadd_nxv8i32_vx:531; CHECK: # %bb.0:532; CHECK-NEXT: vsetvli a1, zero, e32, m4, ta, ma533; CHECK-NEXT: vsaddu.vx v8, v8, a0534; CHECK-NEXT: ret535 %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0536 %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer537 %v = call <vscale x 8 x i32> @llvm.uadd.sat.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb)538 ret <vscale x 8 x i32> %v539}540 541define <vscale x 8 x i32> @uadd_nxv8i32_vi(<vscale x 8 x i32> %va) {542; CHECK-LABEL: uadd_nxv8i32_vi:543; CHECK: # %bb.0:544; CHECK-NEXT: vsetvli a0, zero, e32, m4, ta, ma545; CHECK-NEXT: vsaddu.vi v8, v8, 8546; CHECK-NEXT: ret547 %v = call <vscale x 8 x i32> @llvm.uadd.sat.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> splat (i32 8))548 ret <vscale x 8 x i32> %v549}550 551define <vscale x 16 x i32> @uadd_nxv16i32_vv(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b) {552; CHECK-LABEL: uadd_nxv16i32_vv:553; CHECK: # %bb.0:554; CHECK-NEXT: vsetvli a0, zero, e32, m8, ta, ma555; CHECK-NEXT: vsaddu.vv v8, v8, v16556; CHECK-NEXT: ret557 %v = call <vscale x 16 x i32> @llvm.uadd.sat.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b)558 ret <vscale x 16 x i32> %v559}560 561define <vscale x 16 x i32> @uadd_nxv16i32_vx(<vscale x 16 x i32> %va, i32 %b) {562; CHECK-LABEL: uadd_nxv16i32_vx:563; CHECK: # %bb.0:564; CHECK-NEXT: vsetvli a1, zero, e32, m8, ta, ma565; CHECK-NEXT: vsaddu.vx v8, v8, a0566; CHECK-NEXT: ret567 %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0568 %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer569 %v = call <vscale x 16 x i32> @llvm.uadd.sat.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb)570 ret <vscale x 16 x i32> %v571}572 573define <vscale x 16 x i32> @uadd_nxv16i32_vi(<vscale x 16 x i32> %va) {574; CHECK-LABEL: uadd_nxv16i32_vi:575; CHECK: # %bb.0:576; CHECK-NEXT: vsetvli a0, zero, e32, m8, ta, ma577; CHECK-NEXT: vsaddu.vi v8, v8, 8578; CHECK-NEXT: ret579 %v = call <vscale x 16 x i32> @llvm.uadd.sat.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> splat (i32 8))580 ret <vscale x 16 x i32> %v581}582 583define <vscale x 1 x i64> @uadd_nxv1i64_vv(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b) {584; CHECK-LABEL: uadd_nxv1i64_vv:585; CHECK: # %bb.0:586; CHECK-NEXT: vsetvli a0, zero, e64, m1, ta, ma587; CHECK-NEXT: vsaddu.vv v8, v8, v9588; CHECK-NEXT: ret589 %v = call <vscale x 1 x i64> @llvm.uadd.sat.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b)590 ret <vscale x 1 x i64> %v591}592 593define <vscale x 1 x i64> @uadd_nxv1i64_vx(<vscale x 1 x i64> %va, i64 %b) {594; RV32-LABEL: uadd_nxv1i64_vx:595; RV32: # %bb.0:596; RV32-NEXT: addi sp, sp, -16597; RV32-NEXT: .cfi_def_cfa_offset 16598; RV32-NEXT: sw a0, 8(sp)599; RV32-NEXT: sw a1, 12(sp)600; RV32-NEXT: addi a0, sp, 8601; RV32-NEXT: vsetvli a1, zero, e64, m1, ta, ma602; RV32-NEXT: vlse64.v v9, (a0), zero603; RV32-NEXT: vsaddu.vv v8, v8, v9604; RV32-NEXT: addi sp, sp, 16605; RV32-NEXT: .cfi_def_cfa_offset 0606; RV32-NEXT: ret607;608; RV64-LABEL: uadd_nxv1i64_vx:609; RV64: # %bb.0:610; RV64-NEXT: vsetvli a1, zero, e64, m1, ta, ma611; RV64-NEXT: vsaddu.vx v8, v8, a0612; RV64-NEXT: ret613 %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0614 %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer615 %v = call <vscale x 1 x i64> @llvm.uadd.sat.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb)616 ret <vscale x 1 x i64> %v617}618 619define <vscale x 1 x i64> @uadd_nxv1i64_vi(<vscale x 1 x i64> %va) {620; CHECK-LABEL: uadd_nxv1i64_vi:621; CHECK: # %bb.0:622; CHECK-NEXT: vsetvli a0, zero, e64, m1, ta, ma623; CHECK-NEXT: vsaddu.vi v8, v8, 8624; CHECK-NEXT: ret625 %v = call <vscale x 1 x i64> @llvm.uadd.sat.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> splat (i64 8))626 ret <vscale x 1 x i64> %v627}628 629define <vscale x 2 x i64> @uadd_nxv2i64_vv(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b) {630; CHECK-LABEL: uadd_nxv2i64_vv:631; CHECK: # %bb.0:632; CHECK-NEXT: vsetvli a0, zero, e64, m2, ta, ma633; CHECK-NEXT: vsaddu.vv v8, v8, v10634; CHECK-NEXT: ret635 %v = call <vscale x 2 x i64> @llvm.uadd.sat.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b)636 ret <vscale x 2 x i64> %v637}638 639define <vscale x 2 x i64> @uadd_nxv2i64_vx(<vscale x 2 x i64> %va, i64 %b) {640; RV32-LABEL: uadd_nxv2i64_vx:641; RV32: # %bb.0:642; RV32-NEXT: addi sp, sp, -16643; RV32-NEXT: .cfi_def_cfa_offset 16644; RV32-NEXT: sw a0, 8(sp)645; RV32-NEXT: sw a1, 12(sp)646; RV32-NEXT: addi a0, sp, 8647; RV32-NEXT: vsetvli a1, zero, e64, m2, ta, ma648; RV32-NEXT: vlse64.v v10, (a0), zero649; RV32-NEXT: vsaddu.vv v8, v8, v10650; RV32-NEXT: addi sp, sp, 16651; RV32-NEXT: .cfi_def_cfa_offset 0652; RV32-NEXT: ret653;654; RV64-LABEL: uadd_nxv2i64_vx:655; RV64: # %bb.0:656; RV64-NEXT: vsetvli a1, zero, e64, m2, ta, ma657; RV64-NEXT: vsaddu.vx v8, v8, a0658; RV64-NEXT: ret659 %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0660 %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer661 %v = call <vscale x 2 x i64> @llvm.uadd.sat.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb)662 ret <vscale x 2 x i64> %v663}664 665define <vscale x 2 x i64> @uadd_nxv2i64_vi(<vscale x 2 x i64> %va) {666; CHECK-LABEL: uadd_nxv2i64_vi:667; CHECK: # %bb.0:668; CHECK-NEXT: vsetvli a0, zero, e64, m2, ta, ma669; CHECK-NEXT: vsaddu.vi v8, v8, 8670; CHECK-NEXT: ret671 %v = call <vscale x 2 x i64> @llvm.uadd.sat.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> splat (i64 8))672 ret <vscale x 2 x i64> %v673}674 675define <vscale x 4 x i64> @uadd_nxv4i64_vv(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b) {676; CHECK-LABEL: uadd_nxv4i64_vv:677; CHECK: # %bb.0:678; CHECK-NEXT: vsetvli a0, zero, e64, m4, ta, ma679; CHECK-NEXT: vsaddu.vv v8, v8, v12680; CHECK-NEXT: ret681 %v = call <vscale x 4 x i64> @llvm.uadd.sat.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b)682 ret <vscale x 4 x i64> %v683}684 685define <vscale x 4 x i64> @uadd_nxv4i64_vx(<vscale x 4 x i64> %va, i64 %b) {686; RV32-LABEL: uadd_nxv4i64_vx:687; RV32: # %bb.0:688; RV32-NEXT: addi sp, sp, -16689; RV32-NEXT: .cfi_def_cfa_offset 16690; RV32-NEXT: sw a0, 8(sp)691; RV32-NEXT: sw a1, 12(sp)692; RV32-NEXT: addi a0, sp, 8693; RV32-NEXT: vsetvli a1, zero, e64, m4, ta, ma694; RV32-NEXT: vlse64.v v12, (a0), zero695; RV32-NEXT: vsaddu.vv v8, v8, v12696; RV32-NEXT: addi sp, sp, 16697; RV32-NEXT: .cfi_def_cfa_offset 0698; RV32-NEXT: ret699;700; RV64-LABEL: uadd_nxv4i64_vx:701; RV64: # %bb.0:702; RV64-NEXT: vsetvli a1, zero, e64, m4, ta, ma703; RV64-NEXT: vsaddu.vx v8, v8, a0704; RV64-NEXT: ret705 %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 0706 %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer707 %v = call <vscale x 4 x i64> @llvm.uadd.sat.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb)708 ret <vscale x 4 x i64> %v709}710 711define <vscale x 4 x i64> @uadd_nxv4i64_vi(<vscale x 4 x i64> %va) {712; CHECK-LABEL: uadd_nxv4i64_vi:713; CHECK: # %bb.0:714; CHECK-NEXT: vsetvli a0, zero, e64, m4, ta, ma715; CHECK-NEXT: vsaddu.vi v8, v8, 8716; CHECK-NEXT: ret717 %v = call <vscale x 4 x i64> @llvm.uadd.sat.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> splat (i64 8))718 ret <vscale x 4 x i64> %v719}720 721define <vscale x 8 x i64> @uadd_nxv8i64_vv(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b) {722; CHECK-LABEL: uadd_nxv8i64_vv:723; CHECK: # %bb.0:724; CHECK-NEXT: vsetvli a0, zero, e64, m8, ta, ma725; CHECK-NEXT: vsaddu.vv v8, v8, v16726; CHECK-NEXT: ret727 %v = call <vscale x 8 x i64> @llvm.uadd.sat.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b)728 ret <vscale x 8 x i64> %v729}730 731define <vscale x 8 x i64> @uadd_nxv8i64_vx(<vscale x 8 x i64> %va, i64 %b) {732; RV32-LABEL: uadd_nxv8i64_vx:733; RV32: # %bb.0:734; RV32-NEXT: addi sp, sp, -16735; RV32-NEXT: .cfi_def_cfa_offset 16736; RV32-NEXT: sw a0, 8(sp)737; RV32-NEXT: sw a1, 12(sp)738; RV32-NEXT: addi a0, sp, 8739; RV32-NEXT: vsetvli a1, zero, e64, m8, ta, ma740; RV32-NEXT: vlse64.v v16, (a0), zero741; RV32-NEXT: vsaddu.vv v8, v8, v16742; RV32-NEXT: addi sp, sp, 16743; RV32-NEXT: .cfi_def_cfa_offset 0744; RV32-NEXT: ret745;746; RV64-LABEL: uadd_nxv8i64_vx:747; RV64: # %bb.0:748; RV64-NEXT: vsetvli a1, zero, e64, m8, ta, ma749; RV64-NEXT: vsaddu.vx v8, v8, a0750; RV64-NEXT: ret751 %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 0752 %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer753 %v = call <vscale x 8 x i64> @llvm.uadd.sat.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb)754 ret <vscale x 8 x i64> %v755}756 757define <vscale x 8 x i64> @uadd_nxv8i64_vi(<vscale x 8 x i64> %va) {758; CHECK-LABEL: uadd_nxv8i64_vi:759; CHECK: # %bb.0:760; CHECK-NEXT: vsetvli a0, zero, e64, m8, ta, ma761; CHECK-NEXT: vsaddu.vi v8, v8, 8762; CHECK-NEXT: ret763 %v = call <vscale x 8 x i64> @llvm.uadd.sat.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> splat (i64 8))764 ret <vscale x 8 x i64> %v765}766