brintos

brintos / llvm-project-archived public Read only

0
0
Text · 95.1 KiB · 9287ffa Raw
2074 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 8 x i7> @vxor_vx_nxv8i7(<vscale x 8 x i7> %a, i7 signext %b, <vscale x 8 x i1> %mask, i32 zeroext %evl) {8; CHECK-LABEL: vxor_vx_nxv8i7:9; CHECK:       # %bb.0:10; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma11; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t12; CHECK-NEXT:    ret13  %elt.head = insertelement <vscale x 8 x i7> poison, i7 %b, i32 014  %vb = shufflevector <vscale x 8 x i7> %elt.head, <vscale x 8 x i7> poison, <vscale x 8 x i32> zeroinitializer15  %v = call <vscale x 8 x i7> @llvm.vp.xor.nxv8i7(<vscale x 8 x i7> %a, <vscale x 8 x i7> %vb, <vscale x 8 x i1> %mask, i32 %evl)16  ret <vscale x 8 x i7> %v17}18 19define <vscale x 1 x i8> @vxor_vv_nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {20; CHECK-LABEL: vxor_vv_nxv1i8:21; CHECK:       # %bb.0:22; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma23; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t24; CHECK-NEXT:    ret25  %v = call <vscale x 1 x i8> @llvm.vp.xor.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 %evl)26  ret <vscale x 1 x i8> %v27}28 29define <vscale x 1 x i8> @vxor_vv_nxv1i8_unmasked(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, i32 zeroext %evl) {30; CHECK-LABEL: vxor_vv_nxv1i8_unmasked:31; CHECK:       # %bb.0:32; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma33; CHECK-NEXT:    vxor.vv v8, v8, v934; CHECK-NEXT:    ret35  %v = call <vscale x 1 x i8> @llvm.vp.xor.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)36  ret <vscale x 1 x i8> %v37}38 39define <vscale x 1 x i8> @vxor_vx_nxv1i8(<vscale x 1 x i8> %va, i8 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {40; CHECK-LABEL: vxor_vx_nxv1i8:41; CHECK:       # %bb.0:42; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma43; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t44; CHECK-NEXT:    ret45  %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 046  %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer47  %v = call <vscale x 1 x i8> @llvm.vp.xor.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb, <vscale x 1 x i1> %m, i32 %evl)48  ret <vscale x 1 x i8> %v49}50 51define <vscale x 1 x i8> @vxor_vx_nxv1i8_unmasked(<vscale x 1 x i8> %va, i8 %b, i32 zeroext %evl) {52; CHECK-LABEL: vxor_vx_nxv1i8_unmasked:53; CHECK:       # %bb.0:54; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma55; CHECK-NEXT:    vxor.vx v8, v8, a056; CHECK-NEXT:    ret57  %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 058  %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer59  %v = call <vscale x 1 x i8> @llvm.vp.xor.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)60  ret <vscale x 1 x i8> %v61}62 63define <vscale x 1 x i8> @vxor_vi_nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {64; CHECK-LABEL: vxor_vi_nxv1i8:65; CHECK:       # %bb.0:66; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma67; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t68; CHECK-NEXT:    ret69  %v = call <vscale x 1 x i8> @llvm.vp.xor.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> splat (i8 7), <vscale x 1 x i1> %m, i32 %evl)70  ret <vscale x 1 x i8> %v71}72 73define <vscale x 1 x i8> @vxor_vi_nxv1i8_unmasked(<vscale x 1 x i8> %va, i32 zeroext %evl) {74; CHECK-LABEL: vxor_vi_nxv1i8_unmasked:75; CHECK:       # %bb.0:76; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma77; CHECK-NEXT:    vxor.vi v8, v8, 778; CHECK-NEXT:    ret79  %v = call <vscale x 1 x i8> @llvm.vp.xor.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> splat (i8 7), <vscale x 1 x i1> splat (i1 true), i32 %evl)80  ret <vscale x 1 x i8> %v81}82 83define <vscale x 1 x i8> @vxor_vi_nxv1i8_1(<vscale x 1 x i8> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {84; CHECK-LABEL: vxor_vi_nxv1i8_1:85; CHECK:       # %bb.0:86; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma87; CHECK-NEXT:    vnot.v v8, v8, v0.t88; CHECK-NEXT:    ret89  %v = call <vscale x 1 x i8> @llvm.vp.xor.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> splat (i8 -1), <vscale x 1 x i1> %m, i32 %evl)90  ret <vscale x 1 x i8> %v91}92 93define <vscale x 1 x i8> @vxor_vi_nxv1i8_unmasked_1(<vscale x 1 x i8> %va, i32 zeroext %evl) {94; CHECK-LABEL: vxor_vi_nxv1i8_unmasked_1:95; CHECK:       # %bb.0:96; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma97; CHECK-NEXT:    vnot.v v8, v898; CHECK-NEXT:    ret99  %v = call <vscale x 1 x i8> @llvm.vp.xor.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> splat (i8 -1), <vscale x 1 x i1> splat (i1 true), i32 %evl)100  ret <vscale x 1 x i8> %v101}102 103define <vscale x 2 x i8> @vxor_vv_nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {104; CHECK-LABEL: vxor_vv_nxv2i8:105; CHECK:       # %bb.0:106; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma107; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t108; CHECK-NEXT:    ret109  %v = call <vscale x 2 x i8> @llvm.vp.xor.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 %evl)110  ret <vscale x 2 x i8> %v111}112 113define <vscale x 2 x i8> @vxor_vv_nxv2i8_unmasked(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, i32 zeroext %evl) {114; CHECK-LABEL: vxor_vv_nxv2i8_unmasked:115; CHECK:       # %bb.0:116; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma117; CHECK-NEXT:    vxor.vv v8, v8, v9118; CHECK-NEXT:    ret119  %v = call <vscale x 2 x i8> @llvm.vp.xor.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)120  ret <vscale x 2 x i8> %v121}122 123define <vscale x 2 x i8> @vxor_vx_nxv2i8(<vscale x 2 x i8> %va, i8 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {124; CHECK-LABEL: vxor_vx_nxv2i8:125; CHECK:       # %bb.0:126; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma127; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t128; CHECK-NEXT:    ret129  %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 0130  %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer131  %v = call <vscale x 2 x i8> @llvm.vp.xor.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb, <vscale x 2 x i1> %m, i32 %evl)132  ret <vscale x 2 x i8> %v133}134 135define <vscale x 2 x i8> @vxor_vx_nxv2i8_unmasked(<vscale x 2 x i8> %va, i8 %b, i32 zeroext %evl) {136; CHECK-LABEL: vxor_vx_nxv2i8_unmasked:137; CHECK:       # %bb.0:138; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma139; CHECK-NEXT:    vxor.vx v8, v8, a0140; CHECK-NEXT:    ret141  %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 0142  %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer143  %v = call <vscale x 2 x i8> @llvm.vp.xor.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)144  ret <vscale x 2 x i8> %v145}146 147define <vscale x 2 x i8> @vxor_vi_nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {148; CHECK-LABEL: vxor_vi_nxv2i8:149; CHECK:       # %bb.0:150; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma151; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t152; CHECK-NEXT:    ret153  %v = call <vscale x 2 x i8> @llvm.vp.xor.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> splat (i8 7), <vscale x 2 x i1> %m, i32 %evl)154  ret <vscale x 2 x i8> %v155}156 157define <vscale x 2 x i8> @vxor_vi_nxv2i8_unmasked(<vscale x 2 x i8> %va, i32 zeroext %evl) {158; CHECK-LABEL: vxor_vi_nxv2i8_unmasked:159; CHECK:       # %bb.0:160; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma161; CHECK-NEXT:    vxor.vi v8, v8, 7162; CHECK-NEXT:    ret163  %v = call <vscale x 2 x i8> @llvm.vp.xor.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> splat (i8 7), <vscale x 2 x i1> splat (i1 true), i32 %evl)164  ret <vscale x 2 x i8> %v165}166 167define <vscale x 2 x i8> @vxor_vi_nxv2i8_1(<vscale x 2 x i8> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {168; CHECK-LABEL: vxor_vi_nxv2i8_1:169; CHECK:       # %bb.0:170; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma171; CHECK-NEXT:    vnot.v v8, v8, v0.t172; CHECK-NEXT:    ret173  %v = call <vscale x 2 x i8> @llvm.vp.xor.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> splat (i8 -1), <vscale x 2 x i1> %m, i32 %evl)174  ret <vscale x 2 x i8> %v175}176 177define <vscale x 2 x i8> @vxor_vi_nxv2i8_unmasked_1(<vscale x 2 x i8> %va, i32 zeroext %evl) {178; CHECK-LABEL: vxor_vi_nxv2i8_unmasked_1:179; CHECK:       # %bb.0:180; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma181; CHECK-NEXT:    vnot.v v8, v8182; CHECK-NEXT:    ret183  %v = call <vscale x 2 x i8> @llvm.vp.xor.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> splat (i8 -1), <vscale x 2 x i1> splat (i1 true), i32 %evl)184  ret <vscale x 2 x i8> %v185}186 187define <vscale x 4 x i8> @vxor_vv_nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {188; CHECK-LABEL: vxor_vv_nxv4i8:189; CHECK:       # %bb.0:190; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma191; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t192; CHECK-NEXT:    ret193  %v = call <vscale x 4 x i8> @llvm.vp.xor.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 %evl)194  ret <vscale x 4 x i8> %v195}196 197define <vscale x 4 x i8> @vxor_vv_nxv4i8_unmasked(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, i32 zeroext %evl) {198; CHECK-LABEL: vxor_vv_nxv4i8_unmasked:199; CHECK:       # %bb.0:200; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma201; CHECK-NEXT:    vxor.vv v8, v8, v9202; CHECK-NEXT:    ret203  %v = call <vscale x 4 x i8> @llvm.vp.xor.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)204  ret <vscale x 4 x i8> %v205}206 207define <vscale x 4 x i8> @vxor_vx_nxv4i8(<vscale x 4 x i8> %va, i8 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {208; CHECK-LABEL: vxor_vx_nxv4i8:209; CHECK:       # %bb.0:210; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma211; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t212; CHECK-NEXT:    ret213  %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0214  %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer215  %v = call <vscale x 4 x i8> @llvm.vp.xor.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb, <vscale x 4 x i1> %m, i32 %evl)216  ret <vscale x 4 x i8> %v217}218 219define <vscale x 4 x i8> @vxor_vx_nxv4i8_unmasked(<vscale x 4 x i8> %va, i8 %b, i32 zeroext %evl) {220; CHECK-LABEL: vxor_vx_nxv4i8_unmasked:221; CHECK:       # %bb.0:222; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma223; CHECK-NEXT:    vxor.vx v8, v8, a0224; CHECK-NEXT:    ret225  %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0226  %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer227  %v = call <vscale x 4 x i8> @llvm.vp.xor.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)228  ret <vscale x 4 x i8> %v229}230 231define <vscale x 4 x i8> @vxor_vi_nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {232; CHECK-LABEL: vxor_vi_nxv4i8:233; CHECK:       # %bb.0:234; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma235; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t236; CHECK-NEXT:    ret237  %v = call <vscale x 4 x i8> @llvm.vp.xor.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> splat (i8 7), <vscale x 4 x i1> %m, i32 %evl)238  ret <vscale x 4 x i8> %v239}240 241define <vscale x 4 x i8> @vxor_vi_nxv4i8_unmasked(<vscale x 4 x i8> %va, i32 zeroext %evl) {242; CHECK-LABEL: vxor_vi_nxv4i8_unmasked:243; CHECK:       # %bb.0:244; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma245; CHECK-NEXT:    vxor.vi v8, v8, 7246; CHECK-NEXT:    ret247  %v = call <vscale x 4 x i8> @llvm.vp.xor.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> splat (i8 7), <vscale x 4 x i1> splat (i1 true), i32 %evl)248  ret <vscale x 4 x i8> %v249}250 251define <vscale x 4 x i8> @vxor_vi_nxv4i8_1(<vscale x 4 x i8> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {252; CHECK-LABEL: vxor_vi_nxv4i8_1:253; CHECK:       # %bb.0:254; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma255; CHECK-NEXT:    vnot.v v8, v8, v0.t256; CHECK-NEXT:    ret257  %v = call <vscale x 4 x i8> @llvm.vp.xor.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> splat (i8 -1), <vscale x 4 x i1> %m, i32 %evl)258  ret <vscale x 4 x i8> %v259}260 261define <vscale x 4 x i8> @vxor_vi_nxv4i8_unmasked_1(<vscale x 4 x i8> %va, i32 zeroext %evl) {262; CHECK-LABEL: vxor_vi_nxv4i8_unmasked_1:263; CHECK:       # %bb.0:264; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma265; CHECK-NEXT:    vnot.v v8, v8266; CHECK-NEXT:    ret267  %v = call <vscale x 4 x i8> @llvm.vp.xor.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> splat (i8 -1), <vscale x 4 x i1> splat (i1 true), i32 %evl)268  ret <vscale x 4 x i8> %v269}270 271define <vscale x 8 x i8> @vxor_vv_nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {272; CHECK-LABEL: vxor_vv_nxv8i8:273; CHECK:       # %bb.0:274; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma275; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t276; CHECK-NEXT:    ret277  %v = call <vscale x 8 x i8> @llvm.vp.xor.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 %evl)278  ret <vscale x 8 x i8> %v279}280 281define <vscale x 8 x i8> @vxor_vv_nxv8i8_unmasked(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, i32 zeroext %evl) {282; CHECK-LABEL: vxor_vv_nxv8i8_unmasked:283; CHECK:       # %bb.0:284; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma285; CHECK-NEXT:    vxor.vv v8, v8, v9286; CHECK-NEXT:    ret287  %v = call <vscale x 8 x i8> @llvm.vp.xor.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)288  ret <vscale x 8 x i8> %v289}290 291define <vscale x 8 x i8> @vxor_vx_nxv8i8(<vscale x 8 x i8> %va, i8 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {292; CHECK-LABEL: vxor_vx_nxv8i8:293; CHECK:       # %bb.0:294; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma295; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t296; CHECK-NEXT:    ret297  %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0298  %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer299  %v = call <vscale x 8 x i8> @llvm.vp.xor.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb, <vscale x 8 x i1> %m, i32 %evl)300  ret <vscale x 8 x i8> %v301}302 303define <vscale x 8 x i8> @vxor_vx_nxv8i8_unmasked(<vscale x 8 x i8> %va, i8 %b, i32 zeroext %evl) {304; CHECK-LABEL: vxor_vx_nxv8i8_unmasked:305; CHECK:       # %bb.0:306; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma307; CHECK-NEXT:    vxor.vx v8, v8, a0308; CHECK-NEXT:    ret309  %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0310  %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer311  %v = call <vscale x 8 x i8> @llvm.vp.xor.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)312  ret <vscale x 8 x i8> %v313}314 315define <vscale x 8 x i8> @vxor_vi_nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {316; CHECK-LABEL: vxor_vi_nxv8i8:317; CHECK:       # %bb.0:318; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma319; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t320; CHECK-NEXT:    ret321  %v = call <vscale x 8 x i8> @llvm.vp.xor.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> splat (i8 7), <vscale x 8 x i1> %m, i32 %evl)322  ret <vscale x 8 x i8> %v323}324 325define <vscale x 8 x i8> @vxor_vi_nxv8i8_unmasked(<vscale x 8 x i8> %va, i32 zeroext %evl) {326; CHECK-LABEL: vxor_vi_nxv8i8_unmasked:327; CHECK:       # %bb.0:328; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma329; CHECK-NEXT:    vxor.vi v8, v8, 7330; CHECK-NEXT:    ret331  %v = call <vscale x 8 x i8> @llvm.vp.xor.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> splat (i8 7), <vscale x 8 x i1> splat (i1 true), i32 %evl)332  ret <vscale x 8 x i8> %v333}334 335define <vscale x 8 x i8> @vxor_vi_nxv8i8_1(<vscale x 8 x i8> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {336; CHECK-LABEL: vxor_vi_nxv8i8_1:337; CHECK:       # %bb.0:338; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma339; CHECK-NEXT:    vnot.v v8, v8, v0.t340; CHECK-NEXT:    ret341  %v = call <vscale x 8 x i8> @llvm.vp.xor.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> splat (i8 -1), <vscale x 8 x i1> %m, i32 %evl)342  ret <vscale x 8 x i8> %v343}344 345define <vscale x 8 x i8> @vxor_vi_nxv8i8_unmasked_1(<vscale x 8 x i8> %va, i32 zeroext %evl) {346; CHECK-LABEL: vxor_vi_nxv8i8_unmasked_1:347; CHECK:       # %bb.0:348; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma349; CHECK-NEXT:    vnot.v v8, v8350; CHECK-NEXT:    ret351  %v = call <vscale x 8 x i8> @llvm.vp.xor.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> splat (i8 -1), <vscale x 8 x i1> splat (i1 true), i32 %evl)352  ret <vscale x 8 x i8> %v353}354 355define <vscale x 15 x i8> @vxor_vv_nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> %b, <vscale x 15 x i1> %m, i32 zeroext %evl) {356; CHECK-LABEL: vxor_vv_nxv15i8:357; CHECK:       # %bb.0:358; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma359; CHECK-NEXT:    vxor.vv v8, v8, v10, v0.t360; CHECK-NEXT:    ret361  %v = call <vscale x 15 x i8> @llvm.vp.xor.nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> %b, <vscale x 15 x i1> %m, i32 %evl)362  ret <vscale x 15 x i8> %v363}364 365define <vscale x 15 x i8> @vxor_vv_nxv15i8_unmasked(<vscale x 15 x i8> %va, <vscale x 15 x i8> %b, i32 zeroext %evl) {366; CHECK-LABEL: vxor_vv_nxv15i8_unmasked:367; CHECK:       # %bb.0:368; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma369; CHECK-NEXT:    vxor.vv v8, v8, v10370; CHECK-NEXT:    ret371  %v = call <vscale x 15 x i8> @llvm.vp.xor.nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> %b, <vscale x 15 x i1> splat (i1 true), i32 %evl)372  ret <vscale x 15 x i8> %v373}374 375define <vscale x 15 x i8> @vxor_vx_nxv15i8(<vscale x 15 x i8> %va, i8 %b, <vscale x 15 x i1> %m, i32 zeroext %evl) {376; CHECK-LABEL: vxor_vx_nxv15i8:377; CHECK:       # %bb.0:378; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma379; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t380; CHECK-NEXT:    ret381  %elt.head = insertelement <vscale x 15 x i8> poison, i8 %b, i32 0382  %vb = shufflevector <vscale x 15 x i8> %elt.head, <vscale x 15 x i8> poison, <vscale x 15 x i32> zeroinitializer383  %v = call <vscale x 15 x i8> @llvm.vp.xor.nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> %vb, <vscale x 15 x i1> %m, i32 %evl)384  ret <vscale x 15 x i8> %v385}386 387define <vscale x 15 x i8> @vxor_vx_nxv15i8_unmasked(<vscale x 15 x i8> %va, i8 %b, i32 zeroext %evl) {388; CHECK-LABEL: vxor_vx_nxv15i8_unmasked:389; CHECK:       # %bb.0:390; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma391; CHECK-NEXT:    vxor.vx v8, v8, a0392; CHECK-NEXT:    ret393  %elt.head = insertelement <vscale x 15 x i8> poison, i8 %b, i32 0394  %vb = shufflevector <vscale x 15 x i8> %elt.head, <vscale x 15 x i8> poison, <vscale x 15 x i32> zeroinitializer395  %v = call <vscale x 15 x i8> @llvm.vp.xor.nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> %vb, <vscale x 15 x i1> splat (i1 true), i32 %evl)396  ret <vscale x 15 x i8> %v397}398 399define <vscale x 15 x i8> @vxor_vi_nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i1> %m, i32 zeroext %evl) {400; CHECK-LABEL: vxor_vi_nxv15i8:401; CHECK:       # %bb.0:402; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma403; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t404; CHECK-NEXT:    ret405  %v = call <vscale x 15 x i8> @llvm.vp.xor.nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> splat (i8 7), <vscale x 15 x i1> %m, i32 %evl)406  ret <vscale x 15 x i8> %v407}408 409define <vscale x 15 x i8> @vxor_vi_nxv15i8_unmasked(<vscale x 15 x i8> %va, i32 zeroext %evl) {410; CHECK-LABEL: vxor_vi_nxv15i8_unmasked:411; CHECK:       # %bb.0:412; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma413; CHECK-NEXT:    vxor.vi v8, v8, 7414; CHECK-NEXT:    ret415  %v = call <vscale x 15 x i8> @llvm.vp.xor.nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> splat (i8 7), <vscale x 15 x i1> splat (i1 true), i32 %evl)416  ret <vscale x 15 x i8> %v417}418 419define <vscale x 15 x i8> @vxor_vi_nxv15i8_1(<vscale x 15 x i8> %va, <vscale x 15 x i1> %m, i32 zeroext %evl) {420; CHECK-LABEL: vxor_vi_nxv15i8_1:421; CHECK:       # %bb.0:422; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma423; CHECK-NEXT:    vnot.v v8, v8, v0.t424; CHECK-NEXT:    ret425  %v = call <vscale x 15 x i8> @llvm.vp.xor.nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> splat (i8 -1), <vscale x 15 x i1> %m, i32 %evl)426  ret <vscale x 15 x i8> %v427}428 429define <vscale x 15 x i8> @vxor_vi_nxv15i8_unmasked_1(<vscale x 15 x i8> %va, i32 zeroext %evl) {430; CHECK-LABEL: vxor_vi_nxv15i8_unmasked_1:431; CHECK:       # %bb.0:432; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma433; CHECK-NEXT:    vnot.v v8, v8434; CHECK-NEXT:    ret435  %v = call <vscale x 15 x i8> @llvm.vp.xor.nxv15i8(<vscale x 15 x i8> %va, <vscale x 15 x i8> splat (i8 -1), <vscale x 15 x i1> splat (i1 true), i32 %evl)436  ret <vscale x 15 x i8> %v437}438 439define <vscale x 16 x i8> @vxor_vv_nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {440; CHECK-LABEL: vxor_vv_nxv16i8:441; CHECK:       # %bb.0:442; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma443; CHECK-NEXT:    vxor.vv v8, v8, v10, v0.t444; CHECK-NEXT:    ret445  %v = call <vscale x 16 x i8> @llvm.vp.xor.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 %evl)446  ret <vscale x 16 x i8> %v447}448 449define <vscale x 16 x i8> @vxor_vv_nxv16i8_unmasked(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, i32 zeroext %evl) {450; CHECK-LABEL: vxor_vv_nxv16i8_unmasked:451; CHECK:       # %bb.0:452; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma453; CHECK-NEXT:    vxor.vv v8, v8, v10454; CHECK-NEXT:    ret455  %v = call <vscale x 16 x i8> @llvm.vp.xor.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)456  ret <vscale x 16 x i8> %v457}458 459define <vscale x 16 x i8> @vxor_vx_nxv16i8(<vscale x 16 x i8> %va, i8 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {460; CHECK-LABEL: vxor_vx_nxv16i8:461; CHECK:       # %bb.0:462; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma463; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t464; CHECK-NEXT:    ret465  %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0466  %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer467  %v = call <vscale x 16 x i8> @llvm.vp.xor.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb, <vscale x 16 x i1> %m, i32 %evl)468  ret <vscale x 16 x i8> %v469}470 471define <vscale x 16 x i8> @vxor_vx_nxv16i8_unmasked(<vscale x 16 x i8> %va, i8 %b, i32 zeroext %evl) {472; CHECK-LABEL: vxor_vx_nxv16i8_unmasked:473; CHECK:       # %bb.0:474; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma475; CHECK-NEXT:    vxor.vx v8, v8, a0476; CHECK-NEXT:    ret477  %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0478  %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer479  %v = call <vscale x 16 x i8> @llvm.vp.xor.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)480  ret <vscale x 16 x i8> %v481}482 483define <vscale x 16 x i8> @vxor_vi_nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {484; CHECK-LABEL: vxor_vi_nxv16i8:485; CHECK:       # %bb.0:486; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma487; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t488; CHECK-NEXT:    ret489  %v = call <vscale x 16 x i8> @llvm.vp.xor.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> splat (i8 7), <vscale x 16 x i1> %m, i32 %evl)490  ret <vscale x 16 x i8> %v491}492 493define <vscale x 16 x i8> @vxor_vi_nxv16i8_unmasked(<vscale x 16 x i8> %va, i32 zeroext %evl) {494; CHECK-LABEL: vxor_vi_nxv16i8_unmasked:495; CHECK:       # %bb.0:496; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma497; CHECK-NEXT:    vxor.vi v8, v8, 7498; CHECK-NEXT:    ret499  %v = call <vscale x 16 x i8> @llvm.vp.xor.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> splat (i8 7), <vscale x 16 x i1> splat (i1 true), i32 %evl)500  ret <vscale x 16 x i8> %v501}502 503define <vscale x 16 x i8> @vxor_vi_nxv16i8_1(<vscale x 16 x i8> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {504; CHECK-LABEL: vxor_vi_nxv16i8_1:505; CHECK:       # %bb.0:506; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma507; CHECK-NEXT:    vnot.v v8, v8, v0.t508; CHECK-NEXT:    ret509  %v = call <vscale x 16 x i8> @llvm.vp.xor.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> splat (i8 -1), <vscale x 16 x i1> %m, i32 %evl)510  ret <vscale x 16 x i8> %v511}512 513define <vscale x 16 x i8> @vxor_vi_nxv16i8_unmasked_1(<vscale x 16 x i8> %va, i32 zeroext %evl) {514; CHECK-LABEL: vxor_vi_nxv16i8_unmasked_1:515; CHECK:       # %bb.0:516; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma517; CHECK-NEXT:    vnot.v v8, v8518; CHECK-NEXT:    ret519  %v = call <vscale x 16 x i8> @llvm.vp.xor.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> splat (i8 -1), <vscale x 16 x i1> splat (i1 true), i32 %evl)520  ret <vscale x 16 x i8> %v521}522 523define <vscale x 32 x i8> @vxor_vv_nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {524; CHECK-LABEL: vxor_vv_nxv32i8:525; CHECK:       # %bb.0:526; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma527; CHECK-NEXT:    vxor.vv v8, v8, v12, v0.t528; CHECK-NEXT:    ret529  %v = call <vscale x 32 x i8> @llvm.vp.xor.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 %evl)530  ret <vscale x 32 x i8> %v531}532 533define <vscale x 32 x i8> @vxor_vv_nxv32i8_unmasked(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, i32 zeroext %evl) {534; CHECK-LABEL: vxor_vv_nxv32i8_unmasked:535; CHECK:       # %bb.0:536; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma537; CHECK-NEXT:    vxor.vv v8, v8, v12538; CHECK-NEXT:    ret539  %v = call <vscale x 32 x i8> @llvm.vp.xor.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> splat (i1 true), i32 %evl)540  ret <vscale x 32 x i8> %v541}542 543define <vscale x 32 x i8> @vxor_vx_nxv32i8(<vscale x 32 x i8> %va, i8 %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {544; CHECK-LABEL: vxor_vx_nxv32i8:545; CHECK:       # %bb.0:546; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma547; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t548; CHECK-NEXT:    ret549  %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0550  %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer551  %v = call <vscale x 32 x i8> @llvm.vp.xor.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb, <vscale x 32 x i1> %m, i32 %evl)552  ret <vscale x 32 x i8> %v553}554 555define <vscale x 32 x i8> @vxor_vx_nxv32i8_unmasked(<vscale x 32 x i8> %va, i8 %b, i32 zeroext %evl) {556; CHECK-LABEL: vxor_vx_nxv32i8_unmasked:557; CHECK:       # %bb.0:558; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma559; CHECK-NEXT:    vxor.vx v8, v8, a0560; CHECK-NEXT:    ret561  %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0562  %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer563  %v = call <vscale x 32 x i8> @llvm.vp.xor.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb, <vscale x 32 x i1> splat (i1 true), i32 %evl)564  ret <vscale x 32 x i8> %v565}566 567define <vscale x 32 x i8> @vxor_vi_nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i1> %m, i32 zeroext %evl) {568; CHECK-LABEL: vxor_vi_nxv32i8:569; CHECK:       # %bb.0:570; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma571; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t572; CHECK-NEXT:    ret573  %v = call <vscale x 32 x i8> @llvm.vp.xor.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> splat (i8 7), <vscale x 32 x i1> %m, i32 %evl)574  ret <vscale x 32 x i8> %v575}576 577define <vscale x 32 x i8> @vxor_vi_nxv32i8_unmasked(<vscale x 32 x i8> %va, i32 zeroext %evl) {578; CHECK-LABEL: vxor_vi_nxv32i8_unmasked:579; CHECK:       # %bb.0:580; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma581; CHECK-NEXT:    vxor.vi v8, v8, 7582; CHECK-NEXT:    ret583  %v = call <vscale x 32 x i8> @llvm.vp.xor.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> splat (i8 7), <vscale x 32 x i1> splat (i1 true), i32 %evl)584  ret <vscale x 32 x i8> %v585}586 587define <vscale x 32 x i8> @vxor_vi_nxv32i8_1(<vscale x 32 x i8> %va, <vscale x 32 x i1> %m, i32 zeroext %evl) {588; CHECK-LABEL: vxor_vi_nxv32i8_1:589; CHECK:       # %bb.0:590; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma591; CHECK-NEXT:    vnot.v v8, v8, v0.t592; CHECK-NEXT:    ret593  %v = call <vscale x 32 x i8> @llvm.vp.xor.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> splat (i8 -1), <vscale x 32 x i1> %m, i32 %evl)594  ret <vscale x 32 x i8> %v595}596 597define <vscale x 32 x i8> @vxor_vi_nxv32i8_unmasked_1(<vscale x 32 x i8> %va, i32 zeroext %evl) {598; CHECK-LABEL: vxor_vi_nxv32i8_unmasked_1:599; CHECK:       # %bb.0:600; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma601; CHECK-NEXT:    vnot.v v8, v8602; CHECK-NEXT:    ret603  %v = call <vscale x 32 x i8> @llvm.vp.xor.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> splat (i8 -1), <vscale x 32 x i1> splat (i1 true), i32 %evl)604  ret <vscale x 32 x i8> %v605}606 607define <vscale x 64 x i8> @vxor_vv_nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 zeroext %evl) {608; CHECK-LABEL: vxor_vv_nxv64i8:609; CHECK:       # %bb.0:610; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma611; CHECK-NEXT:    vxor.vv v8, v8, v16, v0.t612; CHECK-NEXT:    ret613  %v = call <vscale x 64 x i8> @llvm.vp.xor.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 %evl)614  ret <vscale x 64 x i8> %v615}616 617define <vscale x 64 x i8> @vxor_vv_nxv64i8_unmasked(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, i32 zeroext %evl) {618; CHECK-LABEL: vxor_vv_nxv64i8_unmasked:619; CHECK:       # %bb.0:620; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma621; CHECK-NEXT:    vxor.vv v8, v8, v16622; CHECK-NEXT:    ret623  %v = call <vscale x 64 x i8> @llvm.vp.xor.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> splat (i1 true), i32 %evl)624  ret <vscale x 64 x i8> %v625}626 627define <vscale x 64 x i8> @vxor_vx_nxv64i8(<vscale x 64 x i8> %va, i8 %b, <vscale x 64 x i1> %m, i32 zeroext %evl) {628; CHECK-LABEL: vxor_vx_nxv64i8:629; CHECK:       # %bb.0:630; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma631; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t632; CHECK-NEXT:    ret633  %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0634  %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer635  %v = call <vscale x 64 x i8> @llvm.vp.xor.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb, <vscale x 64 x i1> %m, i32 %evl)636  ret <vscale x 64 x i8> %v637}638 639define <vscale x 64 x i8> @vxor_vx_nxv64i8_unmasked(<vscale x 64 x i8> %va, i8 %b, i32 zeroext %evl) {640; CHECK-LABEL: vxor_vx_nxv64i8_unmasked:641; CHECK:       # %bb.0:642; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma643; CHECK-NEXT:    vxor.vx v8, v8, a0644; CHECK-NEXT:    ret645  %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0646  %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer647  %v = call <vscale x 64 x i8> @llvm.vp.xor.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb, <vscale x 64 x i1> splat (i1 true), i32 %evl)648  ret <vscale x 64 x i8> %v649}650 651define <vscale x 64 x i8> @vxor_vi_nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i1> %m, i32 zeroext %evl) {652; CHECK-LABEL: vxor_vi_nxv64i8:653; CHECK:       # %bb.0:654; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma655; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t656; CHECK-NEXT:    ret657  %v = call <vscale x 64 x i8> @llvm.vp.xor.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> splat (i8 7), <vscale x 64 x i1> %m, i32 %evl)658  ret <vscale x 64 x i8> %v659}660 661define <vscale x 64 x i8> @vxor_vi_nxv64i8_unmasked(<vscale x 64 x i8> %va, i32 zeroext %evl) {662; CHECK-LABEL: vxor_vi_nxv64i8_unmasked:663; CHECK:       # %bb.0:664; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma665; CHECK-NEXT:    vxor.vi v8, v8, 7666; CHECK-NEXT:    ret667  %v = call <vscale x 64 x i8> @llvm.vp.xor.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> splat (i8 7), <vscale x 64 x i1> splat (i1 true), i32 %evl)668  ret <vscale x 64 x i8> %v669}670 671define <vscale x 64 x i8> @vxor_vi_nxv64i8_1(<vscale x 64 x i8> %va, <vscale x 64 x i1> %m, i32 zeroext %evl) {672; CHECK-LABEL: vxor_vi_nxv64i8_1:673; CHECK:       # %bb.0:674; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma675; CHECK-NEXT:    vnot.v v8, v8, v0.t676; CHECK-NEXT:    ret677  %v = call <vscale x 64 x i8> @llvm.vp.xor.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> splat (i8 -1), <vscale x 64 x i1> %m, i32 %evl)678  ret <vscale x 64 x i8> %v679}680 681define <vscale x 64 x i8> @vxor_vi_nxv64i8_unmasked_1(<vscale x 64 x i8> %va, i32 zeroext %evl) {682; CHECK-LABEL: vxor_vi_nxv64i8_unmasked_1:683; CHECK:       # %bb.0:684; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma685; CHECK-NEXT:    vnot.v v8, v8686; CHECK-NEXT:    ret687  %v = call <vscale x 64 x i8> @llvm.vp.xor.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> splat (i8 -1), <vscale x 64 x i1> splat (i1 true), i32 %evl)688  ret <vscale x 64 x i8> %v689}690 691define <vscale x 1 x i16> @vxor_vv_nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {692; CHECK-LABEL: vxor_vv_nxv1i16:693; CHECK:       # %bb.0:694; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma695; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t696; CHECK-NEXT:    ret697  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 %evl)698  ret <vscale x 1 x i16> %v699}700 701define <vscale x 1 x i16> @vxor_vv_nxv1i16_unmasked(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, i32 zeroext %evl) {702; CHECK-LABEL: vxor_vv_nxv1i16_unmasked:703; CHECK:       # %bb.0:704; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma705; CHECK-NEXT:    vxor.vv v8, v8, v9706; CHECK-NEXT:    ret707  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)708  ret <vscale x 1 x i16> %v709}710 711define <vscale x 1 x i16> @vxor_vx_nxv1i16(<vscale x 1 x i16> %va, i16 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {712; CHECK-LABEL: vxor_vx_nxv1i16:713; CHECK:       # %bb.0:714; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma715; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t716; CHECK-NEXT:    ret717  %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0718  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer719  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb, <vscale x 1 x i1> %m, i32 %evl)720  ret <vscale x 1 x i16> %v721}722 723define <vscale x 1 x i16> @vxor_vx_nxv1i16_commute(<vscale x 1 x i16> %va, i16 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {724; CHECK-LABEL: vxor_vx_nxv1i16_commute:725; CHECK:       # %bb.0:726; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma727; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t728; CHECK-NEXT:    ret729  %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0730  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer731  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %vb, <vscale x 1 x i16> %va, <vscale x 1 x i1> %m, i32 %evl)732  ret <vscale x 1 x i16> %v733}734 735define <vscale x 1 x i16> @vxor_vx_nxv1i16_unmasked(<vscale x 1 x i16> %va, i16 %b, i32 zeroext %evl) {736; CHECK-LABEL: vxor_vx_nxv1i16_unmasked:737; CHECK:       # %bb.0:738; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma739; CHECK-NEXT:    vxor.vx v8, v8, a0740; CHECK-NEXT:    ret741  %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0742  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer743  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)744  ret <vscale x 1 x i16> %v745}746 747define <vscale x 1 x i16> @vxor_vi_nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {748; CHECK-LABEL: vxor_vi_nxv1i16:749; CHECK:       # %bb.0:750; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma751; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t752; CHECK-NEXT:    ret753  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> splat (i16 7), <vscale x 1 x i1> %m, i32 %evl)754  ret <vscale x 1 x i16> %v755}756 757define <vscale x 1 x i16> @vxor_vi_nxv1i16_unmasked(<vscale x 1 x i16> %va, i32 zeroext %evl) {758; CHECK-LABEL: vxor_vi_nxv1i16_unmasked:759; CHECK:       # %bb.0:760; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma761; CHECK-NEXT:    vxor.vi v8, v8, 7762; CHECK-NEXT:    ret763  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> splat (i16 7), <vscale x 1 x i1> splat (i1 true), i32 %evl)764  ret <vscale x 1 x i16> %v765}766 767define <vscale x 1 x i16> @vxor_vi_nxv1i16_1(<vscale x 1 x i16> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {768; CHECK-LABEL: vxor_vi_nxv1i16_1:769; CHECK:       # %bb.0:770; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma771; CHECK-NEXT:    vnot.v v8, v8, v0.t772; CHECK-NEXT:    ret773  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> splat (i16 -1), <vscale x 1 x i1> %m, i32 %evl)774  ret <vscale x 1 x i16> %v775}776 777define <vscale x 1 x i16> @vxor_vi_nxv1i16_unmasked_1(<vscale x 1 x i16> %va, i32 zeroext %evl) {778; CHECK-LABEL: vxor_vi_nxv1i16_unmasked_1:779; CHECK:       # %bb.0:780; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma781; CHECK-NEXT:    vnot.v v8, v8782; CHECK-NEXT:    ret783  %v = call <vscale x 1 x i16> @llvm.vp.xor.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> splat (i16 -1), <vscale x 1 x i1> splat (i1 true), i32 %evl)784  ret <vscale x 1 x i16> %v785}786 787define <vscale x 2 x i16> @vxor_vv_nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {788; CHECK-LABEL: vxor_vv_nxv2i16:789; CHECK:       # %bb.0:790; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma791; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t792; CHECK-NEXT:    ret793  %v = call <vscale x 2 x i16> @llvm.vp.xor.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 %evl)794  ret <vscale x 2 x i16> %v795}796 797define <vscale x 2 x i16> @vxor_vv_nxv2i16_unmasked(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, i32 zeroext %evl) {798; CHECK-LABEL: vxor_vv_nxv2i16_unmasked:799; CHECK:       # %bb.0:800; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma801; CHECK-NEXT:    vxor.vv v8, v8, v9802; CHECK-NEXT:    ret803  %v = call <vscale x 2 x i16> @llvm.vp.xor.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)804  ret <vscale x 2 x i16> %v805}806 807define <vscale x 2 x i16> @vxor_vx_nxv2i16(<vscale x 2 x i16> %va, i16 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {808; CHECK-LABEL: vxor_vx_nxv2i16:809; CHECK:       # %bb.0:810; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma811; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t812; CHECK-NEXT:    ret813  %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0814  %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer815  %v = call <vscale x 2 x i16> @llvm.vp.xor.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb, <vscale x 2 x i1> %m, i32 %evl)816  ret <vscale x 2 x i16> %v817}818 819define <vscale x 2 x i16> @vxor_vx_nxv2i16_unmasked(<vscale x 2 x i16> %va, i16 %b, i32 zeroext %evl) {820; CHECK-LABEL: vxor_vx_nxv2i16_unmasked:821; CHECK:       # %bb.0:822; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma823; CHECK-NEXT:    vxor.vx v8, v8, a0824; CHECK-NEXT:    ret825  %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0826  %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer827  %v = call <vscale x 2 x i16> @llvm.vp.xor.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)828  ret <vscale x 2 x i16> %v829}830 831define <vscale x 2 x i16> @vxor_vi_nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {832; CHECK-LABEL: vxor_vi_nxv2i16:833; CHECK:       # %bb.0:834; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma835; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t836; CHECK-NEXT:    ret837  %v = call <vscale x 2 x i16> @llvm.vp.xor.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> splat (i16 7), <vscale x 2 x i1> %m, i32 %evl)838  ret <vscale x 2 x i16> %v839}840 841define <vscale x 2 x i16> @vxor_vi_nxv2i16_unmasked(<vscale x 2 x i16> %va, i32 zeroext %evl) {842; CHECK-LABEL: vxor_vi_nxv2i16_unmasked:843; CHECK:       # %bb.0:844; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma845; CHECK-NEXT:    vxor.vi v8, v8, 7846; CHECK-NEXT:    ret847  %v = call <vscale x 2 x i16> @llvm.vp.xor.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> splat (i16 7), <vscale x 2 x i1> splat (i1 true), i32 %evl)848  ret <vscale x 2 x i16> %v849}850 851define <vscale x 2 x i16> @vxor_vi_nxv2i16_1(<vscale x 2 x i16> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {852; CHECK-LABEL: vxor_vi_nxv2i16_1:853; CHECK:       # %bb.0:854; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma855; CHECK-NEXT:    vnot.v v8, v8, v0.t856; CHECK-NEXT:    ret857  %v = call <vscale x 2 x i16> @llvm.vp.xor.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> splat (i16 -1), <vscale x 2 x i1> %m, i32 %evl)858  ret <vscale x 2 x i16> %v859}860 861define <vscale x 2 x i16> @vxor_vi_nxv2i16_unmasked_1(<vscale x 2 x i16> %va, i32 zeroext %evl) {862; CHECK-LABEL: vxor_vi_nxv2i16_unmasked_1:863; CHECK:       # %bb.0:864; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma865; CHECK-NEXT:    vnot.v v8, v8866; CHECK-NEXT:    ret867  %v = call <vscale x 2 x i16> @llvm.vp.xor.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> splat (i16 -1), <vscale x 2 x i1> splat (i1 true), i32 %evl)868  ret <vscale x 2 x i16> %v869}870 871define <vscale x 4 x i16> @vxor_vv_nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {872; CHECK-LABEL: vxor_vv_nxv4i16:873; CHECK:       # %bb.0:874; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma875; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t876; CHECK-NEXT:    ret877  %v = call <vscale x 4 x i16> @llvm.vp.xor.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 %evl)878  ret <vscale x 4 x i16> %v879}880 881define <vscale x 4 x i16> @vxor_vv_nxv4i16_unmasked(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, i32 zeroext %evl) {882; CHECK-LABEL: vxor_vv_nxv4i16_unmasked:883; CHECK:       # %bb.0:884; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma885; CHECK-NEXT:    vxor.vv v8, v8, v9886; CHECK-NEXT:    ret887  %v = call <vscale x 4 x i16> @llvm.vp.xor.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)888  ret <vscale x 4 x i16> %v889}890 891define <vscale x 4 x i16> @vxor_vx_nxv4i16(<vscale x 4 x i16> %va, i16 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {892; CHECK-LABEL: vxor_vx_nxv4i16:893; CHECK:       # %bb.0:894; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma895; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t896; CHECK-NEXT:    ret897  %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0898  %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer899  %v = call <vscale x 4 x i16> @llvm.vp.xor.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb, <vscale x 4 x i1> %m, i32 %evl)900  ret <vscale x 4 x i16> %v901}902 903define <vscale x 4 x i16> @vxor_vx_nxv4i16_unmasked(<vscale x 4 x i16> %va, i16 %b, i32 zeroext %evl) {904; CHECK-LABEL: vxor_vx_nxv4i16_unmasked:905; CHECK:       # %bb.0:906; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma907; CHECK-NEXT:    vxor.vx v8, v8, a0908; CHECK-NEXT:    ret909  %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0910  %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer911  %v = call <vscale x 4 x i16> @llvm.vp.xor.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)912  ret <vscale x 4 x i16> %v913}914 915define <vscale x 4 x i16> @vxor_vi_nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {916; CHECK-LABEL: vxor_vi_nxv4i16:917; CHECK:       # %bb.0:918; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma919; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t920; CHECK-NEXT:    ret921  %v = call <vscale x 4 x i16> @llvm.vp.xor.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> splat (i16 7), <vscale x 4 x i1> %m, i32 %evl)922  ret <vscale x 4 x i16> %v923}924 925define <vscale x 4 x i16> @vxor_vi_nxv4i16_unmasked(<vscale x 4 x i16> %va, i32 zeroext %evl) {926; CHECK-LABEL: vxor_vi_nxv4i16_unmasked:927; CHECK:       # %bb.0:928; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma929; CHECK-NEXT:    vxor.vi v8, v8, 7930; CHECK-NEXT:    ret931  %v = call <vscale x 4 x i16> @llvm.vp.xor.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> splat (i16 7), <vscale x 4 x i1> splat (i1 true), i32 %evl)932  ret <vscale x 4 x i16> %v933}934 935define <vscale x 4 x i16> @vxor_vi_nxv4i16_1(<vscale x 4 x i16> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {936; CHECK-LABEL: vxor_vi_nxv4i16_1:937; CHECK:       # %bb.0:938; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma939; CHECK-NEXT:    vnot.v v8, v8, v0.t940; CHECK-NEXT:    ret941  %v = call <vscale x 4 x i16> @llvm.vp.xor.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> splat (i16 -1), <vscale x 4 x i1> %m, i32 %evl)942  ret <vscale x 4 x i16> %v943}944 945define <vscale x 4 x i16> @vxor_vi_nxv4i16_unmasked_1(<vscale x 4 x i16> %va, i32 zeroext %evl) {946; CHECK-LABEL: vxor_vi_nxv4i16_unmasked_1:947; CHECK:       # %bb.0:948; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma949; CHECK-NEXT:    vnot.v v8, v8950; CHECK-NEXT:    ret951  %v = call <vscale x 4 x i16> @llvm.vp.xor.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> splat (i16 -1), <vscale x 4 x i1> splat (i1 true), i32 %evl)952  ret <vscale x 4 x i16> %v953}954 955define <vscale x 8 x i16> @vxor_vv_nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {956; CHECK-LABEL: vxor_vv_nxv8i16:957; CHECK:       # %bb.0:958; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma959; CHECK-NEXT:    vxor.vv v8, v8, v10, v0.t960; CHECK-NEXT:    ret961  %v = call <vscale x 8 x i16> @llvm.vp.xor.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 %evl)962  ret <vscale x 8 x i16> %v963}964 965define <vscale x 8 x i16> @vxor_vv_nxv8i16_unmasked(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, i32 zeroext %evl) {966; CHECK-LABEL: vxor_vv_nxv8i16_unmasked:967; CHECK:       # %bb.0:968; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma969; CHECK-NEXT:    vxor.vv v8, v8, v10970; CHECK-NEXT:    ret971  %v = call <vscale x 8 x i16> @llvm.vp.xor.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)972  ret <vscale x 8 x i16> %v973}974 975define <vscale x 8 x i16> @vxor_vx_nxv8i16(<vscale x 8 x i16> %va, i16 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {976; CHECK-LABEL: vxor_vx_nxv8i16:977; CHECK:       # %bb.0:978; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma979; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t980; CHECK-NEXT:    ret981  %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0982  %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer983  %v = call <vscale x 8 x i16> @llvm.vp.xor.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb, <vscale x 8 x i1> %m, i32 %evl)984  ret <vscale x 8 x i16> %v985}986 987define <vscale x 8 x i16> @vxor_vx_nxv8i16_unmasked(<vscale x 8 x i16> %va, i16 %b, i32 zeroext %evl) {988; CHECK-LABEL: vxor_vx_nxv8i16_unmasked:989; CHECK:       # %bb.0:990; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma991; CHECK-NEXT:    vxor.vx v8, v8, a0992; CHECK-NEXT:    ret993  %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0994  %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer995  %v = call <vscale x 8 x i16> @llvm.vp.xor.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)996  ret <vscale x 8 x i16> %v997}998 999define <vscale x 8 x i16> @vxor_vi_nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {1000; CHECK-LABEL: vxor_vi_nxv8i16:1001; CHECK:       # %bb.0:1002; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1003; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1004; CHECK-NEXT:    ret1005  %v = call <vscale x 8 x i16> @llvm.vp.xor.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> splat (i16 7), <vscale x 8 x i1> %m, i32 %evl)1006  ret <vscale x 8 x i16> %v1007}1008 1009define <vscale x 8 x i16> @vxor_vi_nxv8i16_unmasked(<vscale x 8 x i16> %va, i32 zeroext %evl) {1010; CHECK-LABEL: vxor_vi_nxv8i16_unmasked:1011; CHECK:       # %bb.0:1012; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1013; CHECK-NEXT:    vxor.vi v8, v8, 71014; CHECK-NEXT:    ret1015  %v = call <vscale x 8 x i16> @llvm.vp.xor.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> splat (i16 7), <vscale x 8 x i1> splat (i1 true), i32 %evl)1016  ret <vscale x 8 x i16> %v1017}1018 1019define <vscale x 8 x i16> @vxor_vi_nxv8i16_1(<vscale x 8 x i16> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {1020; CHECK-LABEL: vxor_vi_nxv8i16_1:1021; CHECK:       # %bb.0:1022; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1023; CHECK-NEXT:    vnot.v v8, v8, v0.t1024; CHECK-NEXT:    ret1025  %v = call <vscale x 8 x i16> @llvm.vp.xor.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> splat (i16 -1), <vscale x 8 x i1> %m, i32 %evl)1026  ret <vscale x 8 x i16> %v1027}1028 1029define <vscale x 8 x i16> @vxor_vi_nxv8i16_unmasked_1(<vscale x 8 x i16> %va, i32 zeroext %evl) {1030; CHECK-LABEL: vxor_vi_nxv8i16_unmasked_1:1031; CHECK:       # %bb.0:1032; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma1033; CHECK-NEXT:    vnot.v v8, v81034; CHECK-NEXT:    ret1035  %v = call <vscale x 8 x i16> @llvm.vp.xor.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> splat (i16 -1), <vscale x 8 x i1> splat (i1 true), i32 %evl)1036  ret <vscale x 8 x i16> %v1037}1038 1039define <vscale x 16 x i16> @vxor_vv_nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {1040; CHECK-LABEL: vxor_vv_nxv16i16:1041; CHECK:       # %bb.0:1042; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma1043; CHECK-NEXT:    vxor.vv v8, v8, v12, v0.t1044; CHECK-NEXT:    ret1045  %v = call <vscale x 16 x i16> @llvm.vp.xor.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 %evl)1046  ret <vscale x 16 x i16> %v1047}1048 1049define <vscale x 16 x i16> @vxor_vv_nxv16i16_unmasked(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, i32 zeroext %evl) {1050; CHECK-LABEL: vxor_vv_nxv16i16_unmasked:1051; CHECK:       # %bb.0:1052; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma1053; CHECK-NEXT:    vxor.vv v8, v8, v121054; CHECK-NEXT:    ret1055  %v = call <vscale x 16 x i16> @llvm.vp.xor.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)1056  ret <vscale x 16 x i16> %v1057}1058 1059define <vscale x 16 x i16> @vxor_vx_nxv16i16(<vscale x 16 x i16> %va, i16 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {1060; CHECK-LABEL: vxor_vx_nxv16i16:1061; CHECK:       # %bb.0:1062; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma1063; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t1064; CHECK-NEXT:    ret1065  %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 01066  %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer1067  %v = call <vscale x 16 x i16> @llvm.vp.xor.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb, <vscale x 16 x i1> %m, i32 %evl)1068  ret <vscale x 16 x i16> %v1069}1070 1071define <vscale x 16 x i16> @vxor_vx_nxv16i16_unmasked(<vscale x 16 x i16> %va, i16 %b, i32 zeroext %evl) {1072; CHECK-LABEL: vxor_vx_nxv16i16_unmasked:1073; CHECK:       # %bb.0:1074; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma1075; CHECK-NEXT:    vxor.vx v8, v8, a01076; CHECK-NEXT:    ret1077  %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 01078  %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer1079  %v = call <vscale x 16 x i16> @llvm.vp.xor.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)1080  ret <vscale x 16 x i16> %v1081}1082 1083define <vscale x 16 x i16> @vxor_vi_nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {1084; CHECK-LABEL: vxor_vi_nxv16i16:1085; CHECK:       # %bb.0:1086; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma1087; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1088; CHECK-NEXT:    ret1089  %v = call <vscale x 16 x i16> @llvm.vp.xor.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> splat (i16 7), <vscale x 16 x i1> %m, i32 %evl)1090  ret <vscale x 16 x i16> %v1091}1092 1093define <vscale x 16 x i16> @vxor_vi_nxv16i16_unmasked(<vscale x 16 x i16> %va, i32 zeroext %evl) {1094; CHECK-LABEL: vxor_vi_nxv16i16_unmasked:1095; CHECK:       # %bb.0:1096; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma1097; CHECK-NEXT:    vxor.vi v8, v8, 71098; CHECK-NEXT:    ret1099  %v = call <vscale x 16 x i16> @llvm.vp.xor.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> splat (i16 7), <vscale x 16 x i1> splat (i1 true), i32 %evl)1100  ret <vscale x 16 x i16> %v1101}1102 1103define <vscale x 16 x i16> @vxor_vi_nxv16i16_1(<vscale x 16 x i16> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {1104; CHECK-LABEL: vxor_vi_nxv16i16_1:1105; CHECK:       # %bb.0:1106; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma1107; CHECK-NEXT:    vnot.v v8, v8, v0.t1108; CHECK-NEXT:    ret1109  %v = call <vscale x 16 x i16> @llvm.vp.xor.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> splat (i16 -1), <vscale x 16 x i1> %m, i32 %evl)1110  ret <vscale x 16 x i16> %v1111}1112 1113define <vscale x 16 x i16> @vxor_vi_nxv16i16_unmasked_1(<vscale x 16 x i16> %va, i32 zeroext %evl) {1114; CHECK-LABEL: vxor_vi_nxv16i16_unmasked_1:1115; CHECK:       # %bb.0:1116; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma1117; CHECK-NEXT:    vnot.v v8, v81118; CHECK-NEXT:    ret1119  %v = call <vscale x 16 x i16> @llvm.vp.xor.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> splat (i16 -1), <vscale x 16 x i1> splat (i1 true), i32 %evl)1120  ret <vscale x 16 x i16> %v1121}1122 1123define <vscale x 32 x i16> @vxor_vv_nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {1124; CHECK-LABEL: vxor_vv_nxv32i16:1125; CHECK:       # %bb.0:1126; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma1127; CHECK-NEXT:    vxor.vv v8, v8, v16, v0.t1128; CHECK-NEXT:    ret1129  %v = call <vscale x 32 x i16> @llvm.vp.xor.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 %evl)1130  ret <vscale x 32 x i16> %v1131}1132 1133define <vscale x 32 x i16> @vxor_vv_nxv32i16_unmasked(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, i32 zeroext %evl) {1134; CHECK-LABEL: vxor_vv_nxv32i16_unmasked:1135; CHECK:       # %bb.0:1136; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma1137; CHECK-NEXT:    vxor.vv v8, v8, v161138; CHECK-NEXT:    ret1139  %v = call <vscale x 32 x i16> @llvm.vp.xor.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> splat (i1 true), i32 %evl)1140  ret <vscale x 32 x i16> %v1141}1142 1143define <vscale x 32 x i16> @vxor_vx_nxv32i16(<vscale x 32 x i16> %va, i16 %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {1144; CHECK-LABEL: vxor_vx_nxv32i16:1145; CHECK:       # %bb.0:1146; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma1147; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t1148; CHECK-NEXT:    ret1149  %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 01150  %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer1151  %v = call <vscale x 32 x i16> @llvm.vp.xor.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb, <vscale x 32 x i1> %m, i32 %evl)1152  ret <vscale x 32 x i16> %v1153}1154 1155define <vscale x 32 x i16> @vxor_vx_nxv32i16_unmasked(<vscale x 32 x i16> %va, i16 %b, i32 zeroext %evl) {1156; CHECK-LABEL: vxor_vx_nxv32i16_unmasked:1157; CHECK:       # %bb.0:1158; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma1159; CHECK-NEXT:    vxor.vx v8, v8, a01160; CHECK-NEXT:    ret1161  %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 01162  %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer1163  %v = call <vscale x 32 x i16> @llvm.vp.xor.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb, <vscale x 32 x i1> splat (i1 true), i32 %evl)1164  ret <vscale x 32 x i16> %v1165}1166 1167define <vscale x 32 x i16> @vxor_vi_nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i1> %m, i32 zeroext %evl) {1168; CHECK-LABEL: vxor_vi_nxv32i16:1169; CHECK:       # %bb.0:1170; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma1171; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1172; CHECK-NEXT:    ret1173  %v = call <vscale x 32 x i16> @llvm.vp.xor.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> splat (i16 7), <vscale x 32 x i1> %m, i32 %evl)1174  ret <vscale x 32 x i16> %v1175}1176 1177define <vscale x 32 x i16> @vxor_vi_nxv32i16_unmasked(<vscale x 32 x i16> %va, i32 zeroext %evl) {1178; CHECK-LABEL: vxor_vi_nxv32i16_unmasked:1179; CHECK:       # %bb.0:1180; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma1181; CHECK-NEXT:    vxor.vi v8, v8, 71182; CHECK-NEXT:    ret1183  %v = call <vscale x 32 x i16> @llvm.vp.xor.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> splat (i16 7), <vscale x 32 x i1> splat (i1 true), i32 %evl)1184  ret <vscale x 32 x i16> %v1185}1186 1187define <vscale x 32 x i16> @vxor_vi_nxv32i16_1(<vscale x 32 x i16> %va, <vscale x 32 x i1> %m, i32 zeroext %evl) {1188; CHECK-LABEL: vxor_vi_nxv32i16_1:1189; CHECK:       # %bb.0:1190; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma1191; CHECK-NEXT:    vnot.v v8, v8, v0.t1192; CHECK-NEXT:    ret1193  %v = call <vscale x 32 x i16> @llvm.vp.xor.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> splat (i16 -1), <vscale x 32 x i1> %m, i32 %evl)1194  ret <vscale x 32 x i16> %v1195}1196 1197define <vscale x 32 x i16> @vxor_vi_nxv32i16_unmasked_1(<vscale x 32 x i16> %va, i32 zeroext %evl) {1198; CHECK-LABEL: vxor_vi_nxv32i16_unmasked_1:1199; CHECK:       # %bb.0:1200; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma1201; CHECK-NEXT:    vnot.v v8, v81202; CHECK-NEXT:    ret1203  %v = call <vscale x 32 x i16> @llvm.vp.xor.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> splat (i16 -1), <vscale x 32 x i1> splat (i1 true), i32 %evl)1204  ret <vscale x 32 x i16> %v1205}1206 1207define <vscale x 1 x i32> @vxor_vv_nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1208; CHECK-LABEL: vxor_vv_nxv1i32:1209; CHECK:       # %bb.0:1210; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma1211; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t1212; CHECK-NEXT:    ret1213  %v = call <vscale x 1 x i32> @llvm.vp.xor.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 %evl)1214  ret <vscale x 1 x i32> %v1215}1216 1217define <vscale x 1 x i32> @vxor_vv_nxv1i32_unmasked(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, i32 zeroext %evl) {1218; CHECK-LABEL: vxor_vv_nxv1i32_unmasked:1219; CHECK:       # %bb.0:1220; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma1221; CHECK-NEXT:    vxor.vv v8, v8, v91222; CHECK-NEXT:    ret1223  %v = call <vscale x 1 x i32> @llvm.vp.xor.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)1224  ret <vscale x 1 x i32> %v1225}1226 1227define <vscale x 1 x i32> @vxor_vx_nxv1i32(<vscale x 1 x i32> %va, i32 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1228; CHECK-LABEL: vxor_vx_nxv1i32:1229; CHECK:       # %bb.0:1230; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1231; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t1232; CHECK-NEXT:    ret1233  %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 01234  %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer1235  %v = call <vscale x 1 x i32> @llvm.vp.xor.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb, <vscale x 1 x i1> %m, i32 %evl)1236  ret <vscale x 1 x i32> %v1237}1238 1239define <vscale x 1 x i32> @vxor_vx_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 %b, i32 zeroext %evl) {1240; CHECK-LABEL: vxor_vx_nxv1i32_unmasked:1241; CHECK:       # %bb.0:1242; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma1243; CHECK-NEXT:    vxor.vx v8, v8, a01244; CHECK-NEXT:    ret1245  %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 01246  %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer1247  %v = call <vscale x 1 x i32> @llvm.vp.xor.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)1248  ret <vscale x 1 x i32> %v1249}1250 1251define <vscale x 1 x i32> @vxor_vi_nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {1252; CHECK-LABEL: vxor_vi_nxv1i32:1253; CHECK:       # %bb.0:1254; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma1255; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1256; CHECK-NEXT:    ret1257  %v = call <vscale x 1 x i32> @llvm.vp.xor.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> splat (i32 7), <vscale x 1 x i1> %m, i32 %evl)1258  ret <vscale x 1 x i32> %v1259}1260 1261define <vscale x 1 x i32> @vxor_vi_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 zeroext %evl) {1262; CHECK-LABEL: vxor_vi_nxv1i32_unmasked:1263; CHECK:       # %bb.0:1264; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma1265; CHECK-NEXT:    vxor.vi v8, v8, 71266; CHECK-NEXT:    ret1267  %v = call <vscale x 1 x i32> @llvm.vp.xor.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> splat (i32 7), <vscale x 1 x i1> splat (i1 true), i32 %evl)1268  ret <vscale x 1 x i32> %v1269}1270 1271define <vscale x 1 x i32> @vxor_vi_nxv1i32_1(<vscale x 1 x i32> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {1272; CHECK-LABEL: vxor_vi_nxv1i32_1:1273; CHECK:       # %bb.0:1274; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma1275; CHECK-NEXT:    vnot.v v8, v8, v0.t1276; CHECK-NEXT:    ret1277  %v = call <vscale x 1 x i32> @llvm.vp.xor.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> splat (i32 -1), <vscale x 1 x i1> %m, i32 %evl)1278  ret <vscale x 1 x i32> %v1279}1280 1281define <vscale x 1 x i32> @vxor_vi_nxv1i32_unmasked_1(<vscale x 1 x i32> %va, i32 zeroext %evl) {1282; CHECK-LABEL: vxor_vi_nxv1i32_unmasked_1:1283; CHECK:       # %bb.0:1284; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma1285; CHECK-NEXT:    vnot.v v8, v81286; CHECK-NEXT:    ret1287  %v = call <vscale x 1 x i32> @llvm.vp.xor.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> splat (i32 -1), <vscale x 1 x i1> splat (i1 true), i32 %evl)1288  ret <vscale x 1 x i32> %v1289}1290 1291define <vscale x 2 x i32> @vxor_vv_nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {1292; CHECK-LABEL: vxor_vv_nxv2i32:1293; CHECK:       # %bb.0:1294; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma1295; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t1296; CHECK-NEXT:    ret1297  %v = call <vscale x 2 x i32> @llvm.vp.xor.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 %evl)1298  ret <vscale x 2 x i32> %v1299}1300 1301define <vscale x 2 x i32> @vxor_vv_nxv2i32_unmasked(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, i32 zeroext %evl) {1302; CHECK-LABEL: vxor_vv_nxv2i32_unmasked:1303; CHECK:       # %bb.0:1304; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma1305; CHECK-NEXT:    vxor.vv v8, v8, v91306; CHECK-NEXT:    ret1307  %v = call <vscale x 2 x i32> @llvm.vp.xor.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)1308  ret <vscale x 2 x i32> %v1309}1310 1311define <vscale x 2 x i32> @vxor_vx_nxv2i32(<vscale x 2 x i32> %va, i32 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {1312; CHECK-LABEL: vxor_vx_nxv2i32:1313; CHECK:       # %bb.0:1314; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1315; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t1316; CHECK-NEXT:    ret1317  %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 01318  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer1319  %v = call <vscale x 2 x i32> @llvm.vp.xor.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, <vscale x 2 x i1> %m, i32 %evl)1320  ret <vscale x 2 x i32> %v1321}1322 1323define <vscale x 2 x i32> @vxor_vx_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 %b, i32 zeroext %evl) {1324; CHECK-LABEL: vxor_vx_nxv2i32_unmasked:1325; CHECK:       # %bb.0:1326; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma1327; CHECK-NEXT:    vxor.vx v8, v8, a01328; CHECK-NEXT:    ret1329  %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 01330  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer1331  %v = call <vscale x 2 x i32> @llvm.vp.xor.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)1332  ret <vscale x 2 x i32> %v1333}1334 1335define <vscale x 2 x i32> @vxor_vi_nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {1336; CHECK-LABEL: vxor_vi_nxv2i32:1337; CHECK:       # %bb.0:1338; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma1339; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1340; CHECK-NEXT:    ret1341  %v = call <vscale x 2 x i32> @llvm.vp.xor.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> splat (i32 7), <vscale x 2 x i1> %m, i32 %evl)1342  ret <vscale x 2 x i32> %v1343}1344 1345define <vscale x 2 x i32> @vxor_vi_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 zeroext %evl) {1346; CHECK-LABEL: vxor_vi_nxv2i32_unmasked:1347; CHECK:       # %bb.0:1348; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma1349; CHECK-NEXT:    vxor.vi v8, v8, 71350; CHECK-NEXT:    ret1351  %v = call <vscale x 2 x i32> @llvm.vp.xor.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> splat (i32 7), <vscale x 2 x i1> splat (i1 true), i32 %evl)1352  ret <vscale x 2 x i32> %v1353}1354 1355define <vscale x 2 x i32> @vxor_vi_nxv2i32_1(<vscale x 2 x i32> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {1356; CHECK-LABEL: vxor_vi_nxv2i32_1:1357; CHECK:       # %bb.0:1358; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma1359; CHECK-NEXT:    vnot.v v8, v8, v0.t1360; CHECK-NEXT:    ret1361  %v = call <vscale x 2 x i32> @llvm.vp.xor.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> splat (i32 -1), <vscale x 2 x i1> %m, i32 %evl)1362  ret <vscale x 2 x i32> %v1363}1364 1365define <vscale x 2 x i32> @vxor_vi_nxv2i32_unmasked_1(<vscale x 2 x i32> %va, i32 zeroext %evl) {1366; CHECK-LABEL: vxor_vi_nxv2i32_unmasked_1:1367; CHECK:       # %bb.0:1368; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma1369; CHECK-NEXT:    vnot.v v8, v81370; CHECK-NEXT:    ret1371  %v = call <vscale x 2 x i32> @llvm.vp.xor.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> splat (i32 -1), <vscale x 2 x i1> splat (i1 true), i32 %evl)1372  ret <vscale x 2 x i32> %v1373}1374 1375define <vscale x 4 x i32> @vxor_vv_nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {1376; CHECK-LABEL: vxor_vv_nxv4i32:1377; CHECK:       # %bb.0:1378; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1379; CHECK-NEXT:    vxor.vv v8, v8, v10, v0.t1380; CHECK-NEXT:    ret1381  %v = call <vscale x 4 x i32> @llvm.vp.xor.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 %evl)1382  ret <vscale x 4 x i32> %v1383}1384 1385define <vscale x 4 x i32> @vxor_vv_nxv4i32_unmasked(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, i32 zeroext %evl) {1386; CHECK-LABEL: vxor_vv_nxv4i32_unmasked:1387; CHECK:       # %bb.0:1388; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1389; CHECK-NEXT:    vxor.vv v8, v8, v101390; CHECK-NEXT:    ret1391  %v = call <vscale x 4 x i32> @llvm.vp.xor.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)1392  ret <vscale x 4 x i32> %v1393}1394 1395define <vscale x 4 x i32> @vxor_vx_nxv4i32(<vscale x 4 x i32> %va, i32 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {1396; CHECK-LABEL: vxor_vx_nxv4i32:1397; CHECK:       # %bb.0:1398; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1399; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t1400; CHECK-NEXT:    ret1401  %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 01402  %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer1403  %v = call <vscale x 4 x i32> @llvm.vp.xor.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb, <vscale x 4 x i1> %m, i32 %evl)1404  ret <vscale x 4 x i32> %v1405}1406 1407define <vscale x 4 x i32> @vxor_vx_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 %b, i32 zeroext %evl) {1408; CHECK-LABEL: vxor_vx_nxv4i32_unmasked:1409; CHECK:       # %bb.0:1410; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma1411; CHECK-NEXT:    vxor.vx v8, v8, a01412; CHECK-NEXT:    ret1413  %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 01414  %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer1415  %v = call <vscale x 4 x i32> @llvm.vp.xor.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)1416  ret <vscale x 4 x i32> %v1417}1418 1419define <vscale x 4 x i32> @vxor_vi_nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {1420; CHECK-LABEL: vxor_vi_nxv4i32:1421; CHECK:       # %bb.0:1422; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1423; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1424; CHECK-NEXT:    ret1425  %v = call <vscale x 4 x i32> @llvm.vp.xor.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> splat (i32 7), <vscale x 4 x i1> %m, i32 %evl)1426  ret <vscale x 4 x i32> %v1427}1428 1429define <vscale x 4 x i32> @vxor_vi_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 zeroext %evl) {1430; CHECK-LABEL: vxor_vi_nxv4i32_unmasked:1431; CHECK:       # %bb.0:1432; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1433; CHECK-NEXT:    vxor.vi v8, v8, 71434; CHECK-NEXT:    ret1435  %v = call <vscale x 4 x i32> @llvm.vp.xor.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> splat (i32 7), <vscale x 4 x i1> splat (i1 true), i32 %evl)1436  ret <vscale x 4 x i32> %v1437}1438 1439define <vscale x 4 x i32> @vxor_vi_nxv4i32_1(<vscale x 4 x i32> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {1440; CHECK-LABEL: vxor_vi_nxv4i32_1:1441; CHECK:       # %bb.0:1442; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1443; CHECK-NEXT:    vnot.v v8, v8, v0.t1444; CHECK-NEXT:    ret1445  %v = call <vscale x 4 x i32> @llvm.vp.xor.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> splat (i32 -1), <vscale x 4 x i1> %m, i32 %evl)1446  ret <vscale x 4 x i32> %v1447}1448 1449define <vscale x 4 x i32> @vxor_vi_nxv4i32_unmasked_1(<vscale x 4 x i32> %va, i32 zeroext %evl) {1450; CHECK-LABEL: vxor_vi_nxv4i32_unmasked_1:1451; CHECK:       # %bb.0:1452; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma1453; CHECK-NEXT:    vnot.v v8, v81454; CHECK-NEXT:    ret1455  %v = call <vscale x 4 x i32> @llvm.vp.xor.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> splat (i32 -1), <vscale x 4 x i1> splat (i1 true), i32 %evl)1456  ret <vscale x 4 x i32> %v1457}1458 1459define <vscale x 8 x i32> @vxor_vv_nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1460; CHECK-LABEL: vxor_vv_nxv8i32:1461; CHECK:       # %bb.0:1462; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1463; CHECK-NEXT:    vxor.vv v8, v8, v12, v0.t1464; CHECK-NEXT:    ret1465  %v = call <vscale x 8 x i32> @llvm.vp.xor.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 %evl)1466  ret <vscale x 8 x i32> %v1467}1468 1469define <vscale x 8 x i32> @vxor_vv_nxv8i32_unmasked(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, i32 zeroext %evl) {1470; CHECK-LABEL: vxor_vv_nxv8i32_unmasked:1471; CHECK:       # %bb.0:1472; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1473; CHECK-NEXT:    vxor.vv v8, v8, v121474; CHECK-NEXT:    ret1475  %v = call <vscale x 8 x i32> @llvm.vp.xor.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)1476  ret <vscale x 8 x i32> %v1477}1478 1479define <vscale x 8 x i32> @vxor_vx_nxv8i32(<vscale x 8 x i32> %va, i32 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1480; CHECK-LABEL: vxor_vx_nxv8i32:1481; CHECK:       # %bb.0:1482; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma1483; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t1484; CHECK-NEXT:    ret1485  %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 01486  %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer1487  %v = call <vscale x 8 x i32> @llvm.vp.xor.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb, <vscale x 8 x i1> %m, i32 %evl)1488  ret <vscale x 8 x i32> %v1489}1490 1491define <vscale x 8 x i32> @vxor_vx_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 %b, i32 zeroext %evl) {1492; CHECK-LABEL: vxor_vx_nxv8i32_unmasked:1493; CHECK:       # %bb.0:1494; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma1495; CHECK-NEXT:    vxor.vx v8, v8, a01496; CHECK-NEXT:    ret1497  %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 01498  %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer1499  %v = call <vscale x 8 x i32> @llvm.vp.xor.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)1500  ret <vscale x 8 x i32> %v1501}1502 1503define <vscale x 8 x i32> @vxor_vi_nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {1504; CHECK-LABEL: vxor_vi_nxv8i32:1505; CHECK:       # %bb.0:1506; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1507; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1508; CHECK-NEXT:    ret1509  %v = call <vscale x 8 x i32> @llvm.vp.xor.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> splat (i32 7), <vscale x 8 x i1> %m, i32 %evl)1510  ret <vscale x 8 x i32> %v1511}1512 1513define <vscale x 8 x i32> @vxor_vi_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 zeroext %evl) {1514; CHECK-LABEL: vxor_vi_nxv8i32_unmasked:1515; CHECK:       # %bb.0:1516; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1517; CHECK-NEXT:    vxor.vi v8, v8, 71518; CHECK-NEXT:    ret1519  %v = call <vscale x 8 x i32> @llvm.vp.xor.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> splat (i32 7), <vscale x 8 x i1> splat (i1 true), i32 %evl)1520  ret <vscale x 8 x i32> %v1521}1522 1523define <vscale x 8 x i32> @vxor_vi_nxv8i32_1(<vscale x 8 x i32> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {1524; CHECK-LABEL: vxor_vi_nxv8i32_1:1525; CHECK:       # %bb.0:1526; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1527; CHECK-NEXT:    vnot.v v8, v8, v0.t1528; CHECK-NEXT:    ret1529  %v = call <vscale x 8 x i32> @llvm.vp.xor.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> splat (i32 -1), <vscale x 8 x i1> %m, i32 %evl)1530  ret <vscale x 8 x i32> %v1531}1532 1533define <vscale x 8 x i32> @vxor_vi_nxv8i32_unmasked_1(<vscale x 8 x i32> %va, i32 zeroext %evl) {1534; CHECK-LABEL: vxor_vi_nxv8i32_unmasked_1:1535; CHECK:       # %bb.0:1536; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma1537; CHECK-NEXT:    vnot.v v8, v81538; CHECK-NEXT:    ret1539  %v = call <vscale x 8 x i32> @llvm.vp.xor.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> splat (i32 -1), <vscale x 8 x i1> splat (i1 true), i32 %evl)1540  ret <vscale x 8 x i32> %v1541}1542 1543define <vscale x 16 x i32> @vxor_vv_nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {1544; CHECK-LABEL: vxor_vv_nxv16i32:1545; CHECK:       # %bb.0:1546; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma1547; CHECK-NEXT:    vxor.vv v8, v8, v16, v0.t1548; CHECK-NEXT:    ret1549  %v = call <vscale x 16 x i32> @llvm.vp.xor.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 %evl)1550  ret <vscale x 16 x i32> %v1551}1552 1553define <vscale x 16 x i32> @vxor_vv_nxv16i32_unmasked(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, i32 zeroext %evl) {1554; CHECK-LABEL: vxor_vv_nxv16i32_unmasked:1555; CHECK:       # %bb.0:1556; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma1557; CHECK-NEXT:    vxor.vv v8, v8, v161558; CHECK-NEXT:    ret1559  %v = call <vscale x 16 x i32> @llvm.vp.xor.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)1560  ret <vscale x 16 x i32> %v1561}1562 1563define <vscale x 16 x i32> @vxor_vx_nxv16i32(<vscale x 16 x i32> %va, i32 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {1564; CHECK-LABEL: vxor_vx_nxv16i32:1565; CHECK:       # %bb.0:1566; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma1567; CHECK-NEXT:    vxor.vx v8, v8, a0, v0.t1568; CHECK-NEXT:    ret1569  %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 01570  %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer1571  %v = call <vscale x 16 x i32> @llvm.vp.xor.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb, <vscale x 16 x i1> %m, i32 %evl)1572  ret <vscale x 16 x i32> %v1573}1574 1575define <vscale x 16 x i32> @vxor_vx_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 %b, i32 zeroext %evl) {1576; CHECK-LABEL: vxor_vx_nxv16i32_unmasked:1577; CHECK:       # %bb.0:1578; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma1579; CHECK-NEXT:    vxor.vx v8, v8, a01580; CHECK-NEXT:    ret1581  %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 01582  %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer1583  %v = call <vscale x 16 x i32> @llvm.vp.xor.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)1584  ret <vscale x 16 x i32> %v1585}1586 1587define <vscale x 16 x i32> @vxor_vi_nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {1588; CHECK-LABEL: vxor_vi_nxv16i32:1589; CHECK:       # %bb.0:1590; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma1591; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1592; CHECK-NEXT:    ret1593  %v = call <vscale x 16 x i32> @llvm.vp.xor.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> splat (i32 7), <vscale x 16 x i1> %m, i32 %evl)1594  ret <vscale x 16 x i32> %v1595}1596 1597define <vscale x 16 x i32> @vxor_vi_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 zeroext %evl) {1598; CHECK-LABEL: vxor_vi_nxv16i32_unmasked:1599; CHECK:       # %bb.0:1600; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma1601; CHECK-NEXT:    vxor.vi v8, v8, 71602; CHECK-NEXT:    ret1603  %v = call <vscale x 16 x i32> @llvm.vp.xor.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> splat (i32 7), <vscale x 16 x i1> splat (i1 true), i32 %evl)1604  ret <vscale x 16 x i32> %v1605}1606 1607define <vscale x 16 x i32> @vxor_vi_nxv16i32_1(<vscale x 16 x i32> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {1608; CHECK-LABEL: vxor_vi_nxv16i32_1:1609; CHECK:       # %bb.0:1610; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma1611; CHECK-NEXT:    vnot.v v8, v8, v0.t1612; CHECK-NEXT:    ret1613  %v = call <vscale x 16 x i32> @llvm.vp.xor.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> splat (i32 -1), <vscale x 16 x i1> %m, i32 %evl)1614  ret <vscale x 16 x i32> %v1615}1616 1617define <vscale x 16 x i32> @vxor_vi_nxv16i32_unmasked_1(<vscale x 16 x i32> %va, i32 zeroext %evl) {1618; CHECK-LABEL: vxor_vi_nxv16i32_unmasked_1:1619; CHECK:       # %bb.0:1620; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma1621; CHECK-NEXT:    vnot.v v8, v81622; CHECK-NEXT:    ret1623  %v = call <vscale x 16 x i32> @llvm.vp.xor.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> splat (i32 -1), <vscale x 16 x i1> splat (i1 true), i32 %evl)1624  ret <vscale x 16 x i32> %v1625}1626 1627define <vscale x 1 x i64> @vxor_vv_nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1628; CHECK-LABEL: vxor_vv_nxv1i64:1629; CHECK:       # %bb.0:1630; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma1631; CHECK-NEXT:    vxor.vv v8, v8, v9, v0.t1632; CHECK-NEXT:    ret1633  %v = call <vscale x 1 x i64> @llvm.vp.xor.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 %evl)1634  ret <vscale x 1 x i64> %v1635}1636 1637define <vscale x 1 x i64> @vxor_vv_nxv1i64_unmasked(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, i32 zeroext %evl) {1638; CHECK-LABEL: vxor_vv_nxv1i64_unmasked:1639; CHECK:       # %bb.0:1640; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma1641; CHECK-NEXT:    vxor.vv v8, v8, v91642; CHECK-NEXT:    ret1643  %v = call <vscale x 1 x i64> @llvm.vp.xor.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)1644  ret <vscale x 1 x i64> %v1645}1646 1647define <vscale x 1 x i64> @vxor_vx_nxv1i64(<vscale x 1 x i64> %va, i64 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {1648; RV32-LABEL: vxor_vx_nxv1i64:1649; RV32:       # %bb.0:1650; RV32-NEXT:    addi sp, sp, -161651; RV32-NEXT:    .cfi_def_cfa_offset 161652; RV32-NEXT:    sw a0, 8(sp)1653; RV32-NEXT:    sw a1, 12(sp)1654; RV32-NEXT:    addi a0, sp, 81655; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1656; RV32-NEXT:    vlse64.v v9, (a0), zero1657; RV32-NEXT:    vxor.vv v8, v8, v9, v0.t1658; RV32-NEXT:    addi sp, sp, 161659; RV32-NEXT:    .cfi_def_cfa_offset 01660; RV32-NEXT:    ret1661;1662; RV64-LABEL: vxor_vx_nxv1i64:1663; RV64:       # %bb.0:1664; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1665; RV64-NEXT:    vxor.vx v8, v8, a0, v0.t1666; RV64-NEXT:    ret1667  %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 01668  %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer1669  %v = call <vscale x 1 x i64> @llvm.vp.xor.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb, <vscale x 1 x i1> %m, i32 %evl)1670  ret <vscale x 1 x i64> %v1671}1672 1673define <vscale x 1 x i64> @vxor_vx_nxv1i64_unmasked(<vscale x 1 x i64> %va, i64 %b, i32 zeroext %evl) {1674; RV32-LABEL: vxor_vx_nxv1i64_unmasked:1675; RV32:       # %bb.0:1676; RV32-NEXT:    addi sp, sp, -161677; RV32-NEXT:    .cfi_def_cfa_offset 161678; RV32-NEXT:    sw a0, 8(sp)1679; RV32-NEXT:    sw a1, 12(sp)1680; RV32-NEXT:    addi a0, sp, 81681; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma1682; RV32-NEXT:    vlse64.v v9, (a0), zero1683; RV32-NEXT:    vxor.vv v8, v8, v91684; RV32-NEXT:    addi sp, sp, 161685; RV32-NEXT:    .cfi_def_cfa_offset 01686; RV32-NEXT:    ret1687;1688; RV64-LABEL: vxor_vx_nxv1i64_unmasked:1689; RV64:       # %bb.0:1690; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma1691; RV64-NEXT:    vxor.vx v8, v8, a01692; RV64-NEXT:    ret1693  %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 01694  %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer1695  %v = call <vscale x 1 x i64> @llvm.vp.xor.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)1696  ret <vscale x 1 x i64> %v1697}1698 1699define <vscale x 1 x i64> @vxor_vi_nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {1700; CHECK-LABEL: vxor_vi_nxv1i64:1701; CHECK:       # %bb.0:1702; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma1703; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1704; CHECK-NEXT:    ret1705  %v = call <vscale x 1 x i64> @llvm.vp.xor.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> splat (i64 7), <vscale x 1 x i1> %m, i32 %evl)1706  ret <vscale x 1 x i64> %v1707}1708 1709define <vscale x 1 x i64> @vxor_vi_nxv1i64_unmasked(<vscale x 1 x i64> %va, i32 zeroext %evl) {1710; CHECK-LABEL: vxor_vi_nxv1i64_unmasked:1711; CHECK:       # %bb.0:1712; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma1713; CHECK-NEXT:    vxor.vi v8, v8, 71714; CHECK-NEXT:    ret1715  %v = call <vscale x 1 x i64> @llvm.vp.xor.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> splat (i64 7), <vscale x 1 x i1> splat (i1 true), i32 %evl)1716  ret <vscale x 1 x i64> %v1717}1718 1719define <vscale x 1 x i64> @vxor_vi_nxv1i64_1(<vscale x 1 x i64> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {1720; CHECK-LABEL: vxor_vi_nxv1i64_1:1721; CHECK:       # %bb.0:1722; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma1723; CHECK-NEXT:    vnot.v v8, v8, v0.t1724; CHECK-NEXT:    ret1725  %v = call <vscale x 1 x i64> @llvm.vp.xor.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> splat (i64 -1), <vscale x 1 x i1> %m, i32 %evl)1726  ret <vscale x 1 x i64> %v1727}1728 1729define <vscale x 1 x i64> @vxor_vi_nxv1i64_unmasked_1(<vscale x 1 x i64> %va, i32 zeroext %evl) {1730; CHECK-LABEL: vxor_vi_nxv1i64_unmasked_1:1731; CHECK:       # %bb.0:1732; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma1733; CHECK-NEXT:    vnot.v v8, v81734; CHECK-NEXT:    ret1735  %v = call <vscale x 1 x i64> @llvm.vp.xor.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> splat (i64 -1), <vscale x 1 x i1> splat (i1 true), i32 %evl)1736  ret <vscale x 1 x i64> %v1737}1738 1739define <vscale x 2 x i64> @vxor_vv_nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {1740; CHECK-LABEL: vxor_vv_nxv2i64:1741; CHECK:       # %bb.0:1742; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma1743; CHECK-NEXT:    vxor.vv v8, v8, v10, v0.t1744; CHECK-NEXT:    ret1745  %v = call <vscale x 2 x i64> @llvm.vp.xor.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 %evl)1746  ret <vscale x 2 x i64> %v1747}1748 1749define <vscale x 2 x i64> @vxor_vv_nxv2i64_unmasked(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, i32 zeroext %evl) {1750; CHECK-LABEL: vxor_vv_nxv2i64_unmasked:1751; CHECK:       # %bb.0:1752; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma1753; CHECK-NEXT:    vxor.vv v8, v8, v101754; CHECK-NEXT:    ret1755  %v = call <vscale x 2 x i64> @llvm.vp.xor.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)1756  ret <vscale x 2 x i64> %v1757}1758 1759define <vscale x 2 x i64> @vxor_vx_nxv2i64(<vscale x 2 x i64> %va, i64 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {1760; RV32-LABEL: vxor_vx_nxv2i64:1761; RV32:       # %bb.0:1762; RV32-NEXT:    addi sp, sp, -161763; RV32-NEXT:    .cfi_def_cfa_offset 161764; RV32-NEXT:    sw a0, 8(sp)1765; RV32-NEXT:    sw a1, 12(sp)1766; RV32-NEXT:    addi a0, sp, 81767; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1768; RV32-NEXT:    vlse64.v v10, (a0), zero1769; RV32-NEXT:    vxor.vv v8, v8, v10, v0.t1770; RV32-NEXT:    addi sp, sp, 161771; RV32-NEXT:    .cfi_def_cfa_offset 01772; RV32-NEXT:    ret1773;1774; RV64-LABEL: vxor_vx_nxv2i64:1775; RV64:       # %bb.0:1776; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1777; RV64-NEXT:    vxor.vx v8, v8, a0, v0.t1778; RV64-NEXT:    ret1779  %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 01780  %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer1781  %v = call <vscale x 2 x i64> @llvm.vp.xor.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb, <vscale x 2 x i1> %m, i32 %evl)1782  ret <vscale x 2 x i64> %v1783}1784 1785define <vscale x 2 x i64> @vxor_vx_nxv2i64_unmasked(<vscale x 2 x i64> %va, i64 %b, i32 zeroext %evl) {1786; RV32-LABEL: vxor_vx_nxv2i64_unmasked:1787; RV32:       # %bb.0:1788; RV32-NEXT:    addi sp, sp, -161789; RV32-NEXT:    .cfi_def_cfa_offset 161790; RV32-NEXT:    sw a0, 8(sp)1791; RV32-NEXT:    sw a1, 12(sp)1792; RV32-NEXT:    addi a0, sp, 81793; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma1794; RV32-NEXT:    vlse64.v v10, (a0), zero1795; RV32-NEXT:    vxor.vv v8, v8, v101796; RV32-NEXT:    addi sp, sp, 161797; RV32-NEXT:    .cfi_def_cfa_offset 01798; RV32-NEXT:    ret1799;1800; RV64-LABEL: vxor_vx_nxv2i64_unmasked:1801; RV64:       # %bb.0:1802; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma1803; RV64-NEXT:    vxor.vx v8, v8, a01804; RV64-NEXT:    ret1805  %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 01806  %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer1807  %v = call <vscale x 2 x i64> @llvm.vp.xor.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)1808  ret <vscale x 2 x i64> %v1809}1810 1811define <vscale x 2 x i64> @vxor_vi_nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {1812; CHECK-LABEL: vxor_vi_nxv2i64:1813; CHECK:       # %bb.0:1814; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma1815; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1816; CHECK-NEXT:    ret1817  %v = call <vscale x 2 x i64> @llvm.vp.xor.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> splat (i64 7), <vscale x 2 x i1> %m, i32 %evl)1818  ret <vscale x 2 x i64> %v1819}1820 1821define <vscale x 2 x i64> @vxor_vi_nxv2i64_unmasked(<vscale x 2 x i64> %va, i32 zeroext %evl) {1822; CHECK-LABEL: vxor_vi_nxv2i64_unmasked:1823; CHECK:       # %bb.0:1824; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma1825; CHECK-NEXT:    vxor.vi v8, v8, 71826; CHECK-NEXT:    ret1827  %v = call <vscale x 2 x i64> @llvm.vp.xor.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> splat (i64 7), <vscale x 2 x i1> splat (i1 true), i32 %evl)1828  ret <vscale x 2 x i64> %v1829}1830 1831define <vscale x 2 x i64> @vxor_vi_nxv2i64_1(<vscale x 2 x i64> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {1832; CHECK-LABEL: vxor_vi_nxv2i64_1:1833; CHECK:       # %bb.0:1834; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma1835; CHECK-NEXT:    vnot.v v8, v8, v0.t1836; CHECK-NEXT:    ret1837  %v = call <vscale x 2 x i64> @llvm.vp.xor.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> splat (i64 -1), <vscale x 2 x i1> %m, i32 %evl)1838  ret <vscale x 2 x i64> %v1839}1840 1841define <vscale x 2 x i64> @vxor_vi_nxv2i64_unmasked_1(<vscale x 2 x i64> %va, i32 zeroext %evl) {1842; CHECK-LABEL: vxor_vi_nxv2i64_unmasked_1:1843; CHECK:       # %bb.0:1844; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma1845; CHECK-NEXT:    vnot.v v8, v81846; CHECK-NEXT:    ret1847  %v = call <vscale x 2 x i64> @llvm.vp.xor.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> splat (i64 -1), <vscale x 2 x i1> splat (i1 true), i32 %evl)1848  ret <vscale x 2 x i64> %v1849}1850 1851define <vscale x 4 x i64> @vxor_vv_nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {1852; CHECK-LABEL: vxor_vv_nxv4i64:1853; CHECK:       # %bb.0:1854; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1855; CHECK-NEXT:    vxor.vv v8, v8, v12, v0.t1856; CHECK-NEXT:    ret1857  %v = call <vscale x 4 x i64> @llvm.vp.xor.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 %evl)1858  ret <vscale x 4 x i64> %v1859}1860 1861define <vscale x 4 x i64> @vxor_vv_nxv4i64_unmasked(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, i32 zeroext %evl) {1862; CHECK-LABEL: vxor_vv_nxv4i64_unmasked:1863; CHECK:       # %bb.0:1864; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1865; CHECK-NEXT:    vxor.vv v8, v8, v121866; CHECK-NEXT:    ret1867  %v = call <vscale x 4 x i64> @llvm.vp.xor.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)1868  ret <vscale x 4 x i64> %v1869}1870 1871define <vscale x 4 x i64> @vxor_vx_nxv4i64(<vscale x 4 x i64> %va, i64 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {1872; RV32-LABEL: vxor_vx_nxv4i64:1873; RV32:       # %bb.0:1874; RV32-NEXT:    addi sp, sp, -161875; RV32-NEXT:    .cfi_def_cfa_offset 161876; RV32-NEXT:    sw a0, 8(sp)1877; RV32-NEXT:    sw a1, 12(sp)1878; RV32-NEXT:    addi a0, sp, 81879; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1880; RV32-NEXT:    vlse64.v v12, (a0), zero1881; RV32-NEXT:    vxor.vv v8, v8, v12, v0.t1882; RV32-NEXT:    addi sp, sp, 161883; RV32-NEXT:    .cfi_def_cfa_offset 01884; RV32-NEXT:    ret1885;1886; RV64-LABEL: vxor_vx_nxv4i64:1887; RV64:       # %bb.0:1888; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1889; RV64-NEXT:    vxor.vx v8, v8, a0, v0.t1890; RV64-NEXT:    ret1891  %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 01892  %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer1893  %v = call <vscale x 4 x i64> @llvm.vp.xor.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb, <vscale x 4 x i1> %m, i32 %evl)1894  ret <vscale x 4 x i64> %v1895}1896 1897define <vscale x 4 x i64> @vxor_vx_nxv4i64_unmasked(<vscale x 4 x i64> %va, i64 %b, i32 zeroext %evl) {1898; RV32-LABEL: vxor_vx_nxv4i64_unmasked:1899; RV32:       # %bb.0:1900; RV32-NEXT:    addi sp, sp, -161901; RV32-NEXT:    .cfi_def_cfa_offset 161902; RV32-NEXT:    sw a0, 8(sp)1903; RV32-NEXT:    sw a1, 12(sp)1904; RV32-NEXT:    addi a0, sp, 81905; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1906; RV32-NEXT:    vlse64.v v12, (a0), zero1907; RV32-NEXT:    vxor.vv v8, v8, v121908; RV32-NEXT:    addi sp, sp, 161909; RV32-NEXT:    .cfi_def_cfa_offset 01910; RV32-NEXT:    ret1911;1912; RV64-LABEL: vxor_vx_nxv4i64_unmasked:1913; RV64:       # %bb.0:1914; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1915; RV64-NEXT:    vxor.vx v8, v8, a01916; RV64-NEXT:    ret1917  %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 01918  %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer1919  %v = call <vscale x 4 x i64> @llvm.vp.xor.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)1920  ret <vscale x 4 x i64> %v1921}1922 1923define <vscale x 4 x i64> @vxor_vi_nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {1924; CHECK-LABEL: vxor_vi_nxv4i64:1925; CHECK:       # %bb.0:1926; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1927; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t1928; CHECK-NEXT:    ret1929  %v = call <vscale x 4 x i64> @llvm.vp.xor.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> splat (i64 7), <vscale x 4 x i1> %m, i32 %evl)1930  ret <vscale x 4 x i64> %v1931}1932 1933define <vscale x 4 x i64> @vxor_vi_nxv4i64_unmasked(<vscale x 4 x i64> %va, i32 zeroext %evl) {1934; CHECK-LABEL: vxor_vi_nxv4i64_unmasked:1935; CHECK:       # %bb.0:1936; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1937; CHECK-NEXT:    vxor.vi v8, v8, 71938; CHECK-NEXT:    ret1939  %v = call <vscale x 4 x i64> @llvm.vp.xor.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> splat (i64 7), <vscale x 4 x i1> splat (i1 true), i32 %evl)1940  ret <vscale x 4 x i64> %v1941}1942 1943define <vscale x 4 x i64> @vxor_vi_nxv4i64_1(<vscale x 4 x i64> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {1944; CHECK-LABEL: vxor_vi_nxv4i64_1:1945; CHECK:       # %bb.0:1946; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1947; CHECK-NEXT:    vnot.v v8, v8, v0.t1948; CHECK-NEXT:    ret1949  %v = call <vscale x 4 x i64> @llvm.vp.xor.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> splat (i64 -1), <vscale x 4 x i1> %m, i32 %evl)1950  ret <vscale x 4 x i64> %v1951}1952 1953define <vscale x 4 x i64> @vxor_vi_nxv4i64_unmasked_1(<vscale x 4 x i64> %va, i32 zeroext %evl) {1954; CHECK-LABEL: vxor_vi_nxv4i64_unmasked_1:1955; CHECK:       # %bb.0:1956; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma1957; CHECK-NEXT:    vnot.v v8, v81958; CHECK-NEXT:    ret1959  %v = call <vscale x 4 x i64> @llvm.vp.xor.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> splat (i64 -1), <vscale x 4 x i1> splat (i1 true), i32 %evl)1960  ret <vscale x 4 x i64> %v1961}1962 1963define <vscale x 8 x i64> @vxor_vv_nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1964; CHECK-LABEL: vxor_vv_nxv8i64:1965; CHECK:       # %bb.0:1966; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma1967; CHECK-NEXT:    vxor.vv v8, v8, v16, v0.t1968; CHECK-NEXT:    ret1969  %v = call <vscale x 8 x i64> @llvm.vp.xor.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 %evl)1970  ret <vscale x 8 x i64> %v1971}1972 1973define <vscale x 8 x i64> @vxor_vv_nxv8i64_unmasked(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, i32 zeroext %evl) {1974; CHECK-LABEL: vxor_vv_nxv8i64_unmasked:1975; CHECK:       # %bb.0:1976; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma1977; CHECK-NEXT:    vxor.vv v8, v8, v161978; CHECK-NEXT:    ret1979  %v = call <vscale x 8 x i64> @llvm.vp.xor.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)1980  ret <vscale x 8 x i64> %v1981}1982 1983define <vscale x 8 x i64> @vxor_vx_nxv8i64(<vscale x 8 x i64> %va, i64 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1984; RV32-LABEL: vxor_vx_nxv8i64:1985; RV32:       # %bb.0:1986; RV32-NEXT:    addi sp, sp, -161987; RV32-NEXT:    .cfi_def_cfa_offset 161988; RV32-NEXT:    sw a0, 8(sp)1989; RV32-NEXT:    sw a1, 12(sp)1990; RV32-NEXT:    addi a0, sp, 81991; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma1992; RV32-NEXT:    vlse64.v v16, (a0), zero1993; RV32-NEXT:    vxor.vv v8, v8, v16, v0.t1994; RV32-NEXT:    addi sp, sp, 161995; RV32-NEXT:    .cfi_def_cfa_offset 01996; RV32-NEXT:    ret1997;1998; RV64-LABEL: vxor_vx_nxv8i64:1999; RV64:       # %bb.0:2000; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma2001; RV64-NEXT:    vxor.vx v8, v8, a0, v0.t2002; RV64-NEXT:    ret2003  %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 02004  %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer2005  %v = call <vscale x 8 x i64> @llvm.vp.xor.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb, <vscale x 8 x i1> %m, i32 %evl)2006  ret <vscale x 8 x i64> %v2007}2008 2009define <vscale x 8 x i64> @vxor_vx_nxv8i64_unmasked(<vscale x 8 x i64> %va, i64 %b, i32 zeroext %evl) {2010; RV32-LABEL: vxor_vx_nxv8i64_unmasked:2011; RV32:       # %bb.0:2012; RV32-NEXT:    addi sp, sp, -162013; RV32-NEXT:    .cfi_def_cfa_offset 162014; RV32-NEXT:    sw a0, 8(sp)2015; RV32-NEXT:    sw a1, 12(sp)2016; RV32-NEXT:    addi a0, sp, 82017; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma2018; RV32-NEXT:    vlse64.v v16, (a0), zero2019; RV32-NEXT:    vxor.vv v8, v8, v162020; RV32-NEXT:    addi sp, sp, 162021; RV32-NEXT:    .cfi_def_cfa_offset 02022; RV32-NEXT:    ret2023;2024; RV64-LABEL: vxor_vx_nxv8i64_unmasked:2025; RV64:       # %bb.0:2026; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma2027; RV64-NEXT:    vxor.vx v8, v8, a02028; RV64-NEXT:    ret2029  %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 02030  %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer2031  %v = call <vscale x 8 x i64> @llvm.vp.xor.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)2032  ret <vscale x 8 x i64> %v2033}2034 2035define <vscale x 8 x i64> @vxor_vi_nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {2036; CHECK-LABEL: vxor_vi_nxv8i64:2037; CHECK:       # %bb.0:2038; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma2039; CHECK-NEXT:    vxor.vi v8, v8, 7, v0.t2040; CHECK-NEXT:    ret2041  %v = call <vscale x 8 x i64> @llvm.vp.xor.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> splat (i64 7), <vscale x 8 x i1> %m, i32 %evl)2042  ret <vscale x 8 x i64> %v2043}2044 2045define <vscale x 8 x i64> @vxor_vi_nxv8i64_unmasked(<vscale x 8 x i64> %va, i32 zeroext %evl) {2046; CHECK-LABEL: vxor_vi_nxv8i64_unmasked:2047; CHECK:       # %bb.0:2048; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma2049; CHECK-NEXT:    vxor.vi v8, v8, 72050; CHECK-NEXT:    ret2051  %v = call <vscale x 8 x i64> @llvm.vp.xor.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> splat (i64 7), <vscale x 8 x i1> splat (i1 true), i32 %evl)2052  ret <vscale x 8 x i64> %v2053}2054 2055define <vscale x 8 x i64> @vxor_vi_nxv8i64_1(<vscale x 8 x i64> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {2056; CHECK-LABEL: vxor_vi_nxv8i64_1:2057; CHECK:       # %bb.0:2058; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma2059; CHECK-NEXT:    vnot.v v8, v8, v0.t2060; CHECK-NEXT:    ret2061  %v = call <vscale x 8 x i64> @llvm.vp.xor.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> splat (i64 -1), <vscale x 8 x i1> %m, i32 %evl)2062  ret <vscale x 8 x i64> %v2063}2064 2065define <vscale x 8 x i64> @vxor_vi_nxv8i64_unmasked_1(<vscale x 8 x i64> %va, i32 zeroext %evl) {2066; CHECK-LABEL: vxor_vi_nxv8i64_unmasked_1:2067; CHECK:       # %bb.0:2068; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma2069; CHECK-NEXT:    vnot.v v8, v82070; CHECK-NEXT:    ret2071  %v = call <vscale x 8 x i64> @llvm.vp.xor.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> splat (i64 -1), <vscale x 8 x i1> splat (i1 true), i32 %evl)2072  ret <vscale x 8 x i64> %v2073}2074