brintos

brintos / llvm-project-archived public Read only

0
0
Text · 32.5 KiB · 503c0fd Raw
1044 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v \3; RUN:   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,RV324; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v \5; RUN:   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,RV646 7define <vscale x 1 x i1> @intrinsic_vmadc_vv_nxv1i1_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {8; CHECK-LABEL: intrinsic_vmadc_vv_nxv1i1_nxv1i8_nxv1i8:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma11; CHECK-NEXT:    vmadc.vv v0, v8, v912; CHECK-NEXT:    ret13entry:14  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i8.nxv1i8(15    <vscale x 1 x i8> %0,16    <vscale x 1 x i8> %1,17    iXLen %2)18 19  ret <vscale x 1 x i1> %a20}21 22define <vscale x 2 x i1> @intrinsic_vmadc_vv_nxv2i1_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {23; CHECK-LABEL: intrinsic_vmadc_vv_nxv2i1_nxv2i8_nxv2i8:24; CHECK:       # %bb.0: # %entry25; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma26; CHECK-NEXT:    vmadc.vv v0, v8, v927; CHECK-NEXT:    ret28entry:29  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i8.nxv2i8(30    <vscale x 2 x i8> %0,31    <vscale x 2 x i8> %1,32    iXLen %2)33 34  ret <vscale x 2 x i1> %a35}36 37define <vscale x 4 x i1> @intrinsic_vmadc_vv_nxv4i1_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {38; CHECK-LABEL: intrinsic_vmadc_vv_nxv4i1_nxv4i8_nxv4i8:39; CHECK:       # %bb.0: # %entry40; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma41; CHECK-NEXT:    vmadc.vv v0, v8, v942; CHECK-NEXT:    ret43entry:44  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i8.nxv4i8(45    <vscale x 4 x i8> %0,46    <vscale x 4 x i8> %1,47    iXLen %2)48 49  ret <vscale x 4 x i1> %a50}51 52define <vscale x 8 x i1> @intrinsic_vmadc_vv_nxv8i1_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {53; CHECK-LABEL: intrinsic_vmadc_vv_nxv8i1_nxv8i8_nxv8i8:54; CHECK:       # %bb.0: # %entry55; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma56; CHECK-NEXT:    vmadc.vv v0, v8, v957; CHECK-NEXT:    ret58entry:59  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i8.nxv8i8(60    <vscale x 8 x i8> %0,61    <vscale x 8 x i8> %1,62    iXLen %2)63 64  ret <vscale x 8 x i1> %a65}66 67define <vscale x 16 x i1> @intrinsic_vmadc_vv_nxv16i1_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {68; CHECK-LABEL: intrinsic_vmadc_vv_nxv16i1_nxv16i8_nxv16i8:69; CHECK:       # %bb.0: # %entry70; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma71; CHECK-NEXT:    vmadc.vv v0, v8, v1072; CHECK-NEXT:    ret73entry:74  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i8.nxv16i8(75    <vscale x 16 x i8> %0,76    <vscale x 16 x i8> %1,77    iXLen %2)78 79  ret <vscale x 16 x i1> %a80}81 82define <vscale x 32 x i1> @intrinsic_vmadc_vv_nxv32i1_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {83; CHECK-LABEL: intrinsic_vmadc_vv_nxv32i1_nxv32i8_nxv32i8:84; CHECK:       # %bb.0: # %entry85; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma86; CHECK-NEXT:    vmadc.vv v0, v8, v1287; CHECK-NEXT:    ret88entry:89  %a = call <vscale x 32 x i1> @llvm.riscv.vmadc.nxv32i8.nxv32i8(90    <vscale x 32 x i8> %0,91    <vscale x 32 x i8> %1,92    iXLen %2)93 94  ret <vscale x 32 x i1> %a95}96 97define <vscale x 64 x i1> @intrinsic_vmadc_vv_nxv64i1_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, iXLen %2) nounwind {98; CHECK-LABEL: intrinsic_vmadc_vv_nxv64i1_nxv64i8_nxv64i8:99; CHECK:       # %bb.0: # %entry100; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma101; CHECK-NEXT:    vmadc.vv v0, v8, v16102; CHECK-NEXT:    ret103entry:104  %a = call <vscale x 64 x i1> @llvm.riscv.vmadc.nxv64i8.nxv64i8(105    <vscale x 64 x i8> %0,106    <vscale x 64 x i8> %1,107    iXLen %2)108 109  ret <vscale x 64 x i1> %a110}111 112define <vscale x 1 x i1> @intrinsic_vmadc_vv_nxv1i1_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {113; CHECK-LABEL: intrinsic_vmadc_vv_nxv1i1_nxv1i16_nxv1i16:114; CHECK:       # %bb.0: # %entry115; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma116; CHECK-NEXT:    vmadc.vv v0, v8, v9117; CHECK-NEXT:    ret118entry:119  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i16.nxv1i16(120    <vscale x 1 x i16> %0,121    <vscale x 1 x i16> %1,122    iXLen %2)123 124  ret <vscale x 1 x i1> %a125}126 127define <vscale x 2 x i1> @intrinsic_vmadc_vv_nxv2i1_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {128; CHECK-LABEL: intrinsic_vmadc_vv_nxv2i1_nxv2i16_nxv2i16:129; CHECK:       # %bb.0: # %entry130; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma131; CHECK-NEXT:    vmadc.vv v0, v8, v9132; CHECK-NEXT:    ret133entry:134  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i16.nxv2i16(135    <vscale x 2 x i16> %0,136    <vscale x 2 x i16> %1,137    iXLen %2)138 139  ret <vscale x 2 x i1> %a140}141 142define <vscale x 4 x i1> @intrinsic_vmadc_vv_nxv4i1_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {143; CHECK-LABEL: intrinsic_vmadc_vv_nxv4i1_nxv4i16_nxv4i16:144; CHECK:       # %bb.0: # %entry145; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma146; CHECK-NEXT:    vmadc.vv v0, v8, v9147; CHECK-NEXT:    ret148entry:149  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i16.nxv4i16(150    <vscale x 4 x i16> %0,151    <vscale x 4 x i16> %1,152    iXLen %2)153 154  ret <vscale x 4 x i1> %a155}156 157define <vscale x 8 x i1> @intrinsic_vmadc_vv_nxv8i1_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {158; CHECK-LABEL: intrinsic_vmadc_vv_nxv8i1_nxv8i16_nxv8i16:159; CHECK:       # %bb.0: # %entry160; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma161; CHECK-NEXT:    vmadc.vv v0, v8, v10162; CHECK-NEXT:    ret163entry:164  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i16.nxv8i16(165    <vscale x 8 x i16> %0,166    <vscale x 8 x i16> %1,167    iXLen %2)168 169  ret <vscale x 8 x i1> %a170}171 172define <vscale x 16 x i1> @intrinsic_vmadc_vv_nxv16i1_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {173; CHECK-LABEL: intrinsic_vmadc_vv_nxv16i1_nxv16i16_nxv16i16:174; CHECK:       # %bb.0: # %entry175; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma176; CHECK-NEXT:    vmadc.vv v0, v8, v12177; CHECK-NEXT:    ret178entry:179  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i16.nxv16i16(180    <vscale x 16 x i16> %0,181    <vscale x 16 x i16> %1,182    iXLen %2)183 184  ret <vscale x 16 x i1> %a185}186 187define <vscale x 32 x i1> @intrinsic_vmadc_vv_nxv32i1_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {188; CHECK-LABEL: intrinsic_vmadc_vv_nxv32i1_nxv32i16_nxv32i16:189; CHECK:       # %bb.0: # %entry190; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma191; CHECK-NEXT:    vmadc.vv v0, v8, v16192; CHECK-NEXT:    ret193entry:194  %a = call <vscale x 32 x i1> @llvm.riscv.vmadc.nxv32i16.nxv32i16(195    <vscale x 32 x i16> %0,196    <vscale x 32 x i16> %1,197    iXLen %2)198 199  ret <vscale x 32 x i1> %a200}201 202define <vscale x 1 x i1> @intrinsic_vmadc_vv_nxv1i1_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {203; CHECK-LABEL: intrinsic_vmadc_vv_nxv1i1_nxv1i32_nxv1i32:204; CHECK:       # %bb.0: # %entry205; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma206; CHECK-NEXT:    vmadc.vv v0, v8, v9207; CHECK-NEXT:    ret208entry:209  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i32.nxv1i32(210    <vscale x 1 x i32> %0,211    <vscale x 1 x i32> %1,212    iXLen %2)213 214  ret <vscale x 1 x i1> %a215}216 217define <vscale x 2 x i1> @intrinsic_vmadc_vv_nxv2i1_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {218; CHECK-LABEL: intrinsic_vmadc_vv_nxv2i1_nxv2i32_nxv2i32:219; CHECK:       # %bb.0: # %entry220; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma221; CHECK-NEXT:    vmadc.vv v0, v8, v9222; CHECK-NEXT:    ret223entry:224  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i32.nxv2i32(225    <vscale x 2 x i32> %0,226    <vscale x 2 x i32> %1,227    iXLen %2)228 229  ret <vscale x 2 x i1> %a230}231 232define <vscale x 4 x i1> @intrinsic_vmadc_vv_nxv4i1_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {233; CHECK-LABEL: intrinsic_vmadc_vv_nxv4i1_nxv4i32_nxv4i32:234; CHECK:       # %bb.0: # %entry235; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma236; CHECK-NEXT:    vmadc.vv v0, v8, v10237; CHECK-NEXT:    ret238entry:239  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i32.nxv4i32(240    <vscale x 4 x i32> %0,241    <vscale x 4 x i32> %1,242    iXLen %2)243 244  ret <vscale x 4 x i1> %a245}246 247define <vscale x 8 x i1> @intrinsic_vmadc_vv_nxv8i1_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {248; CHECK-LABEL: intrinsic_vmadc_vv_nxv8i1_nxv8i32_nxv8i32:249; CHECK:       # %bb.0: # %entry250; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma251; CHECK-NEXT:    vmadc.vv v0, v8, v12252; CHECK-NEXT:    ret253entry:254  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i32.nxv8i32(255    <vscale x 8 x i32> %0,256    <vscale x 8 x i32> %1,257    iXLen %2)258 259  ret <vscale x 8 x i1> %a260}261 262define <vscale x 16 x i1> @intrinsic_vmadc_vv_nxv16i1_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {263; CHECK-LABEL: intrinsic_vmadc_vv_nxv16i1_nxv16i32_nxv16i32:264; CHECK:       # %bb.0: # %entry265; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma266; CHECK-NEXT:    vmadc.vv v0, v8, v16267; CHECK-NEXT:    ret268entry:269  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i32.nxv16i32(270    <vscale x 16 x i32> %0,271    <vscale x 16 x i32> %1,272    iXLen %2)273 274  ret <vscale x 16 x i1> %a275}276 277define <vscale x 1 x i1> @intrinsic_vmadc_vv_nxv1i1_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, iXLen %2) nounwind {278; CHECK-LABEL: intrinsic_vmadc_vv_nxv1i1_nxv1i64_nxv1i64:279; CHECK:       # %bb.0: # %entry280; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma281; CHECK-NEXT:    vmadc.vv v0, v8, v9282; CHECK-NEXT:    ret283entry:284  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i64.nxv1i64(285    <vscale x 1 x i64> %0,286    <vscale x 1 x i64> %1,287    iXLen %2)288 289  ret <vscale x 1 x i1> %a290}291 292define <vscale x 2 x i1> @intrinsic_vmadc_vv_nxv2i1_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, iXLen %2) nounwind {293; CHECK-LABEL: intrinsic_vmadc_vv_nxv2i1_nxv2i64_nxv2i64:294; CHECK:       # %bb.0: # %entry295; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma296; CHECK-NEXT:    vmadc.vv v0, v8, v10297; CHECK-NEXT:    ret298entry:299  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i64.nxv2i64(300    <vscale x 2 x i64> %0,301    <vscale x 2 x i64> %1,302    iXLen %2)303 304  ret <vscale x 2 x i1> %a305}306 307define <vscale x 4 x i1> @intrinsic_vmadc_vv_nxv4i1_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, iXLen %2) nounwind {308; CHECK-LABEL: intrinsic_vmadc_vv_nxv4i1_nxv4i64_nxv4i64:309; CHECK:       # %bb.0: # %entry310; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma311; CHECK-NEXT:    vmadc.vv v0, v8, v12312; CHECK-NEXT:    ret313entry:314  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i64.nxv4i64(315    <vscale x 4 x i64> %0,316    <vscale x 4 x i64> %1,317    iXLen %2)318 319  ret <vscale x 4 x i1> %a320}321 322define <vscale x 8 x i1> @intrinsic_vmadc_vv_nxv8i1_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, iXLen %2) nounwind {323; CHECK-LABEL: intrinsic_vmadc_vv_nxv8i1_nxv8i64_nxv8i64:324; CHECK:       # %bb.0: # %entry325; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma326; CHECK-NEXT:    vmadc.vv v0, v8, v16327; CHECK-NEXT:    ret328entry:329  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i64.nxv8i64(330    <vscale x 8 x i64> %0,331    <vscale x 8 x i64> %1,332    iXLen %2)333 334  ret <vscale x 8 x i1> %a335}336 337define <vscale x 1 x i1> @intrinsic_vmadc_vx_nxv1i1_nxv1i8_i8(<vscale x 1 x i8> %0, i8 %1, iXLen %2) nounwind {338; CHECK-LABEL: intrinsic_vmadc_vx_nxv1i1_nxv1i8_i8:339; CHECK:       # %bb.0: # %entry340; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma341; CHECK-NEXT:    vmadc.vx v0, v8, a0342; CHECK-NEXT:    ret343entry:344  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i8.i8(345    <vscale x 1 x i8> %0,346    i8 %1,347    iXLen %2)348 349  ret <vscale x 1 x i1> %a350}351 352define <vscale x 2 x i1> @intrinsic_vmadc_vx_nxv2i1_nxv2i8_i8(<vscale x 2 x i8> %0, i8 %1, iXLen %2) nounwind {353; CHECK-LABEL: intrinsic_vmadc_vx_nxv2i1_nxv2i8_i8:354; CHECK:       # %bb.0: # %entry355; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma356; CHECK-NEXT:    vmadc.vx v0, v8, a0357; CHECK-NEXT:    ret358entry:359  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i8.i8(360    <vscale x 2 x i8> %0,361    i8 %1,362    iXLen %2)363 364  ret <vscale x 2 x i1> %a365}366 367define <vscale x 4 x i1> @intrinsic_vmadc_vx_nxv4i1_nxv4i8_i8(<vscale x 4 x i8> %0, i8 %1, iXLen %2) nounwind {368; CHECK-LABEL: intrinsic_vmadc_vx_nxv4i1_nxv4i8_i8:369; CHECK:       # %bb.0: # %entry370; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma371; CHECK-NEXT:    vmadc.vx v0, v8, a0372; CHECK-NEXT:    ret373entry:374  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i8.i8(375    <vscale x 4 x i8> %0,376    i8 %1,377    iXLen %2)378 379  ret <vscale x 4 x i1> %a380}381 382define <vscale x 8 x i1> @intrinsic_vmadc_vx_nxv8i1_nxv8i8_i8(<vscale x 8 x i8> %0, i8 %1, iXLen %2) nounwind {383; CHECK-LABEL: intrinsic_vmadc_vx_nxv8i1_nxv8i8_i8:384; CHECK:       # %bb.0: # %entry385; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma386; CHECK-NEXT:    vmadc.vx v0, v8, a0387; CHECK-NEXT:    ret388entry:389  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i8.i8(390    <vscale x 8 x i8> %0,391    i8 %1,392    iXLen %2)393 394  ret <vscale x 8 x i1> %a395}396 397define <vscale x 16 x i1> @intrinsic_vmadc_vx_nxv16i1_nxv16i8_i8(<vscale x 16 x i8> %0, i8 %1, iXLen %2) nounwind {398; CHECK-LABEL: intrinsic_vmadc_vx_nxv16i1_nxv16i8_i8:399; CHECK:       # %bb.0: # %entry400; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma401; CHECK-NEXT:    vmadc.vx v0, v8, a0402; CHECK-NEXT:    ret403entry:404  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i8.i8(405    <vscale x 16 x i8> %0,406    i8 %1,407    iXLen %2)408 409  ret <vscale x 16 x i1> %a410}411 412define <vscale x 32 x i1> @intrinsic_vmadc_vx_nxv32i1_nxv32i8_i8(<vscale x 32 x i8> %0, i8 %1, iXLen %2) nounwind {413; CHECK-LABEL: intrinsic_vmadc_vx_nxv32i1_nxv32i8_i8:414; CHECK:       # %bb.0: # %entry415; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma416; CHECK-NEXT:    vmadc.vx v0, v8, a0417; CHECK-NEXT:    ret418entry:419  %a = call <vscale x 32 x i1> @llvm.riscv.vmadc.nxv32i8.i8(420    <vscale x 32 x i8> %0,421    i8 %1,422    iXLen %2)423 424  ret <vscale x 32 x i1> %a425}426 427define <vscale x 64 x i1> @intrinsic_vmadc_vx_nxv64i1_nxv64i8_i8(<vscale x 64 x i8> %0, i8 %1, iXLen %2) nounwind {428; CHECK-LABEL: intrinsic_vmadc_vx_nxv64i1_nxv64i8_i8:429; CHECK:       # %bb.0: # %entry430; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma431; CHECK-NEXT:    vmadc.vx v0, v8, a0432; CHECK-NEXT:    ret433entry:434  %a = call <vscale x 64 x i1> @llvm.riscv.vmadc.nxv64i8.i8(435    <vscale x 64 x i8> %0,436    i8 %1,437    iXLen %2)438 439  ret <vscale x 64 x i1> %a440}441 442define <vscale x 1 x i1> @intrinsic_vmadc_vx_nxv1i1_nxv1i16_i16(<vscale x 1 x i16> %0, i16 %1, iXLen %2) nounwind {443; CHECK-LABEL: intrinsic_vmadc_vx_nxv1i1_nxv1i16_i16:444; CHECK:       # %bb.0: # %entry445; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma446; CHECK-NEXT:    vmadc.vx v0, v8, a0447; CHECK-NEXT:    ret448entry:449  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i16.i16(450    <vscale x 1 x i16> %0,451    i16 %1,452    iXLen %2)453 454  ret <vscale x 1 x i1> %a455}456 457define <vscale x 2 x i1> @intrinsic_vmadc_vx_nxv2i1_nxv2i16_i16(<vscale x 2 x i16> %0, i16 %1, iXLen %2) nounwind {458; CHECK-LABEL: intrinsic_vmadc_vx_nxv2i1_nxv2i16_i16:459; CHECK:       # %bb.0: # %entry460; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma461; CHECK-NEXT:    vmadc.vx v0, v8, a0462; CHECK-NEXT:    ret463entry:464  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i16.i16(465    <vscale x 2 x i16> %0,466    i16 %1,467    iXLen %2)468 469  ret <vscale x 2 x i1> %a470}471 472define <vscale x 4 x i1> @intrinsic_vmadc_vx_nxv4i1_nxv4i16_i16(<vscale x 4 x i16> %0, i16 %1, iXLen %2) nounwind {473; CHECK-LABEL: intrinsic_vmadc_vx_nxv4i1_nxv4i16_i16:474; CHECK:       # %bb.0: # %entry475; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma476; CHECK-NEXT:    vmadc.vx v0, v8, a0477; CHECK-NEXT:    ret478entry:479  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i16.i16(480    <vscale x 4 x i16> %0,481    i16 %1,482    iXLen %2)483 484  ret <vscale x 4 x i1> %a485}486 487define <vscale x 8 x i1> @intrinsic_vmadc_vx_nxv8i1_nxv8i16_i16(<vscale x 8 x i16> %0, i16 %1, iXLen %2) nounwind {488; CHECK-LABEL: intrinsic_vmadc_vx_nxv8i1_nxv8i16_i16:489; CHECK:       # %bb.0: # %entry490; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma491; CHECK-NEXT:    vmadc.vx v0, v8, a0492; CHECK-NEXT:    ret493entry:494  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i16.i16(495    <vscale x 8 x i16> %0,496    i16 %1,497    iXLen %2)498 499  ret <vscale x 8 x i1> %a500}501 502define <vscale x 16 x i1> @intrinsic_vmadc_vx_nxv16i1_nxv16i16_i16(<vscale x 16 x i16> %0, i16 %1, iXLen %2) nounwind {503; CHECK-LABEL: intrinsic_vmadc_vx_nxv16i1_nxv16i16_i16:504; CHECK:       # %bb.0: # %entry505; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma506; CHECK-NEXT:    vmadc.vx v0, v8, a0507; CHECK-NEXT:    ret508entry:509  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i16.i16(510    <vscale x 16 x i16> %0,511    i16 %1,512    iXLen %2)513 514  ret <vscale x 16 x i1> %a515}516 517define <vscale x 32 x i1> @intrinsic_vmadc_vx_nxv32i1_nxv32i16_i16(<vscale x 32 x i16> %0, i16 %1, iXLen %2) nounwind {518; CHECK-LABEL: intrinsic_vmadc_vx_nxv32i1_nxv32i16_i16:519; CHECK:       # %bb.0: # %entry520; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma521; CHECK-NEXT:    vmadc.vx v0, v8, a0522; CHECK-NEXT:    ret523entry:524  %a = call <vscale x 32 x i1> @llvm.riscv.vmadc.nxv32i16.i16(525    <vscale x 32 x i16> %0,526    i16 %1,527    iXLen %2)528 529  ret <vscale x 32 x i1> %a530}531 532define <vscale x 1 x i1> @intrinsic_vmadc_vx_nxv1i1_nxv1i32_i32(<vscale x 1 x i32> %0, i32 %1, iXLen %2) nounwind {533; CHECK-LABEL: intrinsic_vmadc_vx_nxv1i1_nxv1i32_i32:534; CHECK:       # %bb.0: # %entry535; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma536; CHECK-NEXT:    vmadc.vx v0, v8, a0537; CHECK-NEXT:    ret538entry:539  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i32.i32(540    <vscale x 1 x i32> %0,541    i32 %1,542    iXLen %2)543 544  ret <vscale x 1 x i1> %a545}546 547define <vscale x 2 x i1> @intrinsic_vmadc_vx_nxv2i1_nxv2i32_i32(<vscale x 2 x i32> %0, i32 %1, iXLen %2) nounwind {548; CHECK-LABEL: intrinsic_vmadc_vx_nxv2i1_nxv2i32_i32:549; CHECK:       # %bb.0: # %entry550; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma551; CHECK-NEXT:    vmadc.vx v0, v8, a0552; CHECK-NEXT:    ret553entry:554  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i32.i32(555    <vscale x 2 x i32> %0,556    i32 %1,557    iXLen %2)558 559  ret <vscale x 2 x i1> %a560}561 562define <vscale x 4 x i1> @intrinsic_vmadc_vx_nxv4i1_nxv4i32_i32(<vscale x 4 x i32> %0, i32 %1, iXLen %2) nounwind {563; CHECK-LABEL: intrinsic_vmadc_vx_nxv4i1_nxv4i32_i32:564; CHECK:       # %bb.0: # %entry565; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma566; CHECK-NEXT:    vmadc.vx v0, v8, a0567; CHECK-NEXT:    ret568entry:569  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i32.i32(570    <vscale x 4 x i32> %0,571    i32 %1,572    iXLen %2)573 574  ret <vscale x 4 x i1> %a575}576 577define <vscale x 8 x i1> @intrinsic_vmadc_vx_nxv8i1_nxv8i32_i32(<vscale x 8 x i32> %0, i32 %1, iXLen %2) nounwind {578; CHECK-LABEL: intrinsic_vmadc_vx_nxv8i1_nxv8i32_i32:579; CHECK:       # %bb.0: # %entry580; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma581; CHECK-NEXT:    vmadc.vx v0, v8, a0582; CHECK-NEXT:    ret583entry:584  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i32.i32(585    <vscale x 8 x i32> %0,586    i32 %1,587    iXLen %2)588 589  ret <vscale x 8 x i1> %a590}591 592define <vscale x 16 x i1> @intrinsic_vmadc_vx_nxv16i1_nxv16i32_i32(<vscale x 16 x i32> %0, i32 %1, iXLen %2) nounwind {593; CHECK-LABEL: intrinsic_vmadc_vx_nxv16i1_nxv16i32_i32:594; CHECK:       # %bb.0: # %entry595; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma596; CHECK-NEXT:    vmadc.vx v0, v8, a0597; CHECK-NEXT:    ret598entry:599  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i32.i32(600    <vscale x 16 x i32> %0,601    i32 %1,602    iXLen %2)603 604  ret <vscale x 16 x i1> %a605}606 607define <vscale x 1 x i1> @intrinsic_vmadc_vx_nxv1i1_nxv1i64_i64(<vscale x 1 x i64> %0, i64 %1, iXLen %2) nounwind {608; RV32-LABEL: intrinsic_vmadc_vx_nxv1i1_nxv1i64_i64:609; RV32:       # %bb.0: # %entry610; RV32-NEXT:    addi sp, sp, -16611; RV32-NEXT:    sw a0, 8(sp)612; RV32-NEXT:    sw a1, 12(sp)613; RV32-NEXT:    addi a0, sp, 8614; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma615; RV32-NEXT:    vlse64.v v9, (a0), zero616; RV32-NEXT:    vmadc.vv v0, v8, v9617; RV32-NEXT:    addi sp, sp, 16618; RV32-NEXT:    ret619;620; RV64-LABEL: intrinsic_vmadc_vx_nxv1i1_nxv1i64_i64:621; RV64:       # %bb.0: # %entry622; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma623; RV64-NEXT:    vmadc.vx v0, v8, a0624; RV64-NEXT:    ret625entry:626  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i64.i64(627    <vscale x 1 x i64> %0,628    i64 %1,629    iXLen %2)630 631  ret <vscale x 1 x i1> %a632}633 634define <vscale x 2 x i1> @intrinsic_vmadc_vx_nxv2i1_nxv2i64_i64(<vscale x 2 x i64> %0, i64 %1, iXLen %2) nounwind {635; RV32-LABEL: intrinsic_vmadc_vx_nxv2i1_nxv2i64_i64:636; RV32:       # %bb.0: # %entry637; RV32-NEXT:    addi sp, sp, -16638; RV32-NEXT:    sw a0, 8(sp)639; RV32-NEXT:    sw a1, 12(sp)640; RV32-NEXT:    addi a0, sp, 8641; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma642; RV32-NEXT:    vlse64.v v10, (a0), zero643; RV32-NEXT:    vmadc.vv v0, v8, v10644; RV32-NEXT:    addi sp, sp, 16645; RV32-NEXT:    ret646;647; RV64-LABEL: intrinsic_vmadc_vx_nxv2i1_nxv2i64_i64:648; RV64:       # %bb.0: # %entry649; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma650; RV64-NEXT:    vmadc.vx v0, v8, a0651; RV64-NEXT:    ret652entry:653  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i64.i64(654    <vscale x 2 x i64> %0,655    i64 %1,656    iXLen %2)657 658  ret <vscale x 2 x i1> %a659}660 661define <vscale x 4 x i1> @intrinsic_vmadc_vx_nxv4i1_nxv4i64_i64(<vscale x 4 x i64> %0, i64 %1, iXLen %2) nounwind {662; RV32-LABEL: intrinsic_vmadc_vx_nxv4i1_nxv4i64_i64:663; RV32:       # %bb.0: # %entry664; RV32-NEXT:    addi sp, sp, -16665; RV32-NEXT:    sw a0, 8(sp)666; RV32-NEXT:    sw a1, 12(sp)667; RV32-NEXT:    addi a0, sp, 8668; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma669; RV32-NEXT:    vlse64.v v12, (a0), zero670; RV32-NEXT:    vmadc.vv v0, v8, v12671; RV32-NEXT:    addi sp, sp, 16672; RV32-NEXT:    ret673;674; RV64-LABEL: intrinsic_vmadc_vx_nxv4i1_nxv4i64_i64:675; RV64:       # %bb.0: # %entry676; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma677; RV64-NEXT:    vmadc.vx v0, v8, a0678; RV64-NEXT:    ret679entry:680  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i64.i64(681    <vscale x 4 x i64> %0,682    i64 %1,683    iXLen %2)684 685  ret <vscale x 4 x i1> %a686}687 688define <vscale x 8 x i1> @intrinsic_vmadc_vx_nxv8i1_nxv8i64_i64(<vscale x 8 x i64> %0, i64 %1, iXLen %2) nounwind {689; RV32-LABEL: intrinsic_vmadc_vx_nxv8i1_nxv8i64_i64:690; RV32:       # %bb.0: # %entry691; RV32-NEXT:    addi sp, sp, -16692; RV32-NEXT:    sw a0, 8(sp)693; RV32-NEXT:    sw a1, 12(sp)694; RV32-NEXT:    addi a0, sp, 8695; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma696; RV32-NEXT:    vlse64.v v16, (a0), zero697; RV32-NEXT:    vmadc.vv v0, v8, v16698; RV32-NEXT:    addi sp, sp, 16699; RV32-NEXT:    ret700;701; RV64-LABEL: intrinsic_vmadc_vx_nxv8i1_nxv8i64_i64:702; RV64:       # %bb.0: # %entry703; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma704; RV64-NEXT:    vmadc.vx v0, v8, a0705; RV64-NEXT:    ret706entry:707  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i64.i64(708    <vscale x 8 x i64> %0,709    i64 %1,710    iXLen %2)711 712  ret <vscale x 8 x i1> %a713}714 715define <vscale x 1 x i1> @intrinsic_vmadc_vi_nxv1i1_nxv1i8_i8(<vscale x 1 x i8> %0, iXLen %1) nounwind {716; CHECK-LABEL: intrinsic_vmadc_vi_nxv1i1_nxv1i8_i8:717; CHECK:       # %bb.0: # %entry718; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma719; CHECK-NEXT:    vmadc.vi v0, v8, 9720; CHECK-NEXT:    ret721entry:722  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i8.i8(723    <vscale x 1 x i8> %0,724    i8 9,725    iXLen %1)726 727  ret <vscale x 1 x i1> %a728}729 730define <vscale x 2 x i1> @intrinsic_vmadc_vi_nxv2i1_nxv2i8_i8(<vscale x 2 x i8> %0, iXLen %1) nounwind {731; CHECK-LABEL: intrinsic_vmadc_vi_nxv2i1_nxv2i8_i8:732; CHECK:       # %bb.0: # %entry733; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma734; CHECK-NEXT:    vmadc.vi v0, v8, -9735; CHECK-NEXT:    ret736entry:737  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i8.i8(738    <vscale x 2 x i8> %0,739    i8 -9,740    iXLen %1)741 742  ret <vscale x 2 x i1> %a743}744 745define <vscale x 4 x i1> @intrinsic_vmadc_vi_nxv4i1_nxv4i8_i8(<vscale x 4 x i8> %0, iXLen %1) nounwind {746; CHECK-LABEL: intrinsic_vmadc_vi_nxv4i1_nxv4i8_i8:747; CHECK:       # %bb.0: # %entry748; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma749; CHECK-NEXT:    vmadc.vi v0, v8, 9750; CHECK-NEXT:    ret751entry:752  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i8.i8(753    <vscale x 4 x i8> %0,754    i8 9,755    iXLen %1)756 757  ret <vscale x 4 x i1> %a758}759 760define <vscale x 8 x i1> @intrinsic_vmadc_vi_nxv8i1_nxv8i8_i8(<vscale x 8 x i8> %0, iXLen %1) nounwind {761; CHECK-LABEL: intrinsic_vmadc_vi_nxv8i1_nxv8i8_i8:762; CHECK:       # %bb.0: # %entry763; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma764; CHECK-NEXT:    vmadc.vi v0, v8, -9765; CHECK-NEXT:    ret766entry:767  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i8.i8(768    <vscale x 8 x i8> %0,769    i8 -9,770    iXLen %1)771 772  ret <vscale x 8 x i1> %a773}774 775define <vscale x 16 x i1> @intrinsic_vmadc_vi_nxv16i1_nxv16i8_i8(<vscale x 16 x i8> %0, iXLen %1) nounwind {776; CHECK-LABEL: intrinsic_vmadc_vi_nxv16i1_nxv16i8_i8:777; CHECK:       # %bb.0: # %entry778; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma779; CHECK-NEXT:    vmadc.vi v0, v8, 9780; CHECK-NEXT:    ret781entry:782  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i8.i8(783    <vscale x 16 x i8> %0,784    i8 9,785    iXLen %1)786 787  ret <vscale x 16 x i1> %a788}789 790define <vscale x 32 x i1> @intrinsic_vmadc_vi_nxv32i1_nxv32i8_i8(<vscale x 32 x i8> %0, iXLen %1) nounwind {791; CHECK-LABEL: intrinsic_vmadc_vi_nxv32i1_nxv32i8_i8:792; CHECK:       # %bb.0: # %entry793; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma794; CHECK-NEXT:    vmadc.vi v0, v8, -9795; CHECK-NEXT:    ret796entry:797  %a = call <vscale x 32 x i1> @llvm.riscv.vmadc.nxv32i8.i8(798    <vscale x 32 x i8> %0,799    i8 -9,800    iXLen %1)801 802  ret <vscale x 32 x i1> %a803}804 805define <vscale x 64 x i1> @intrinsic_vmadc_vi_nxv64i1_nxv64i8_i8(<vscale x 64 x i8> %0, iXLen %1) nounwind {806; CHECK-LABEL: intrinsic_vmadc_vi_nxv64i1_nxv64i8_i8:807; CHECK:       # %bb.0: # %entry808; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma809; CHECK-NEXT:    vmadc.vi v0, v8, 9810; CHECK-NEXT:    ret811entry:812  %a = call <vscale x 64 x i1> @llvm.riscv.vmadc.nxv64i8.i8(813    <vscale x 64 x i8> %0,814    i8 9,815    iXLen %1)816 817  ret <vscale x 64 x i1> %a818}819 820define <vscale x 1 x i1> @intrinsic_vmadc_vi_nxv1i1_nxv1i16_i16(<vscale x 1 x i16> %0, iXLen %1) nounwind {821; CHECK-LABEL: intrinsic_vmadc_vi_nxv1i1_nxv1i16_i16:822; CHECK:       # %bb.0: # %entry823; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma824; CHECK-NEXT:    vmadc.vi v0, v8, -9825; CHECK-NEXT:    ret826entry:827  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i16.i16(828    <vscale x 1 x i16> %0,829    i16 -9,830    iXLen %1)831 832  ret <vscale x 1 x i1> %a833}834 835define <vscale x 2 x i1> @intrinsic_vmadc_vi_nxv2i1_nxv2i16_i16(<vscale x 2 x i16> %0, iXLen %1) nounwind {836; CHECK-LABEL: intrinsic_vmadc_vi_nxv2i1_nxv2i16_i16:837; CHECK:       # %bb.0: # %entry838; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma839; CHECK-NEXT:    vmadc.vi v0, v8, 9840; CHECK-NEXT:    ret841entry:842  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i16.i16(843    <vscale x 2 x i16> %0,844    i16 9,845    iXLen %1)846 847  ret <vscale x 2 x i1> %a848}849 850define <vscale x 4 x i1> @intrinsic_vmadc_vi_nxv4i1_nxv4i16_i16(<vscale x 4 x i16> %0, iXLen %1) nounwind {851; CHECK-LABEL: intrinsic_vmadc_vi_nxv4i1_nxv4i16_i16:852; CHECK:       # %bb.0: # %entry853; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma854; CHECK-NEXT:    vmadc.vi v0, v8, -9855; CHECK-NEXT:    ret856entry:857  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i16.i16(858    <vscale x 4 x i16> %0,859    i16 -9,860    iXLen %1)861 862  ret <vscale x 4 x i1> %a863}864 865define <vscale x 8 x i1> @intrinsic_vmadc_vi_nxv8i1_nxv8i16_i16(<vscale x 8 x i16> %0, iXLen %1) nounwind {866; CHECK-LABEL: intrinsic_vmadc_vi_nxv8i1_nxv8i16_i16:867; CHECK:       # %bb.0: # %entry868; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma869; CHECK-NEXT:    vmadc.vi v0, v8, 9870; CHECK-NEXT:    ret871entry:872  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i16.i16(873    <vscale x 8 x i16> %0,874    i16 9,875    iXLen %1)876 877  ret <vscale x 8 x i1> %a878}879 880define <vscale x 16 x i1> @intrinsic_vmadc_vi_nxv16i1_nxv16i16_i16(<vscale x 16 x i16> %0, iXLen %1) nounwind {881; CHECK-LABEL: intrinsic_vmadc_vi_nxv16i1_nxv16i16_i16:882; CHECK:       # %bb.0: # %entry883; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma884; CHECK-NEXT:    vmadc.vi v0, v8, -9885; CHECK-NEXT:    ret886entry:887  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i16.i16(888    <vscale x 16 x i16> %0,889    i16 -9,890    iXLen %1)891 892  ret <vscale x 16 x i1> %a893}894 895define <vscale x 32 x i1> @intrinsic_vmadc_vi_nxv32i1_nxv32i16_i16(<vscale x 32 x i16> %0, iXLen %1) nounwind {896; CHECK-LABEL: intrinsic_vmadc_vi_nxv32i1_nxv32i16_i16:897; CHECK:       # %bb.0: # %entry898; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma899; CHECK-NEXT:    vmadc.vi v0, v8, 9900; CHECK-NEXT:    ret901entry:902  %a = call <vscale x 32 x i1> @llvm.riscv.vmadc.nxv32i16.i16(903    <vscale x 32 x i16> %0,904    i16 9,905    iXLen %1)906 907  ret <vscale x 32 x i1> %a908}909 910define <vscale x 1 x i1> @intrinsic_vmadc_vi_nxv1i1_nxv1i32_i32(<vscale x 1 x i32> %0, iXLen %1) nounwind {911; CHECK-LABEL: intrinsic_vmadc_vi_nxv1i1_nxv1i32_i32:912; CHECK:       # %bb.0: # %entry913; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma914; CHECK-NEXT:    vmadc.vi v0, v8, -9915; CHECK-NEXT:    ret916entry:917  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i32.i32(918    <vscale x 1 x i32> %0,919    i32 -9,920    iXLen %1)921 922  ret <vscale x 1 x i1> %a923}924 925define <vscale x 2 x i1> @intrinsic_vmadc_vi_nxv2i1_nxv2i32_i32(<vscale x 2 x i32> %0, iXLen %1) nounwind {926; CHECK-LABEL: intrinsic_vmadc_vi_nxv2i1_nxv2i32_i32:927; CHECK:       # %bb.0: # %entry928; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma929; CHECK-NEXT:    vmadc.vi v0, v8, 9930; CHECK-NEXT:    ret931entry:932  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i32.i32(933    <vscale x 2 x i32> %0,934    i32 9,935    iXLen %1)936 937  ret <vscale x 2 x i1> %a938}939 940define <vscale x 4 x i1> @intrinsic_vmadc_vi_nxv4i1_nxv4i32_i32(<vscale x 4 x i32> %0, iXLen %1) nounwind {941; CHECK-LABEL: intrinsic_vmadc_vi_nxv4i1_nxv4i32_i32:942; CHECK:       # %bb.0: # %entry943; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma944; CHECK-NEXT:    vmadc.vi v0, v8, -9945; CHECK-NEXT:    ret946entry:947  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i32.i32(948    <vscale x 4 x i32> %0,949    i32 -9,950    iXLen %1)951 952  ret <vscale x 4 x i1> %a953}954 955define <vscale x 8 x i1> @intrinsic_vmadc_vi_nxv8i1_nxv8i32_i32(<vscale x 8 x i32> %0, iXLen %1) nounwind {956; CHECK-LABEL: intrinsic_vmadc_vi_nxv8i1_nxv8i32_i32:957; CHECK:       # %bb.0: # %entry958; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma959; CHECK-NEXT:    vmadc.vi v0, v8, 9960; CHECK-NEXT:    ret961entry:962  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i32.i32(963    <vscale x 8 x i32> %0,964    i32 9,965    iXLen %1)966 967  ret <vscale x 8 x i1> %a968}969 970define <vscale x 16 x i1> @intrinsic_vmadc_vi_nxv16i1_nxv16i32_i32(<vscale x 16 x i32> %0, iXLen %1) nounwind {971; CHECK-LABEL: intrinsic_vmadc_vi_nxv16i1_nxv16i32_i32:972; CHECK:       # %bb.0: # %entry973; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma974; CHECK-NEXT:    vmadc.vi v0, v8, -9975; CHECK-NEXT:    ret976entry:977  %a = call <vscale x 16 x i1> @llvm.riscv.vmadc.nxv16i32.i32(978    <vscale x 16 x i32> %0,979    i32 -9,980    iXLen %1)981 982  ret <vscale x 16 x i1> %a983}984 985define <vscale x 1 x i1> @intrinsic_vmadc_vi_nxv1i1_nxv1i64_i64(<vscale x 1 x i64> %0, iXLen %1) nounwind {986; CHECK-LABEL: intrinsic_vmadc_vi_nxv1i1_nxv1i64_i64:987; CHECK:       # %bb.0: # %entry988; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma989; CHECK-NEXT:    vmadc.vi v0, v8, 9990; CHECK-NEXT:    ret991entry:992  %a = call <vscale x 1 x i1> @llvm.riscv.vmadc.nxv1i64.i64(993    <vscale x 1 x i64> %0,994    i64 9,995    iXLen %1)996 997  ret <vscale x 1 x i1> %a998}999 1000define <vscale x 2 x i1> @intrinsic_vmadc_vi_nxv2i1_nxv2i64_i64(<vscale x 2 x i64> %0, iXLen %1) nounwind {1001; CHECK-LABEL: intrinsic_vmadc_vi_nxv2i1_nxv2i64_i64:1002; CHECK:       # %bb.0: # %entry1003; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma1004; CHECK-NEXT:    vmadc.vi v0, v8, -91005; CHECK-NEXT:    ret1006entry:1007  %a = call <vscale x 2 x i1> @llvm.riscv.vmadc.nxv2i64.i64(1008    <vscale x 2 x i64> %0,1009    i64 -9,1010    iXLen %1)1011 1012  ret <vscale x 2 x i1> %a1013}1014 1015define <vscale x 4 x i1> @intrinsic_vmadc_vi_nxv4i1_nxv4i64_i64(<vscale x 4 x i64> %0, iXLen %1) nounwind {1016; CHECK-LABEL: intrinsic_vmadc_vi_nxv4i1_nxv4i64_i64:1017; CHECK:       # %bb.0: # %entry1018; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1019; CHECK-NEXT:    vmadc.vi v0, v8, 91020; CHECK-NEXT:    ret1021entry:1022  %a = call <vscale x 4 x i1> @llvm.riscv.vmadc.nxv4i64.i64(1023    <vscale x 4 x i64> %0,1024    i64 9,1025    iXLen %1)1026 1027  ret <vscale x 4 x i1> %a1028}1029 1030define <vscale x 8 x i1> @intrinsic_vmadc_vi_nxv8i1_nxv8i64_i64(<vscale x 8 x i64> %0, iXLen %1) nounwind {1031; CHECK-LABEL: intrinsic_vmadc_vi_nxv8i1_nxv8i64_i64:1032; CHECK:       # %bb.0: # %entry1033; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma1034; CHECK-NEXT:    vmadc.vi v0, v8, -91035; CHECK-NEXT:    ret1036entry:1037  %a = call <vscale x 8 x i1> @llvm.riscv.vmadc.nxv8i64.i64(1038    <vscale x 8 x i64> %0,1039    i64 -9,1040    iXLen %1)1041 1042  ret <vscale x 8 x i1> %a1043}1044