90 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple riscv32 -mattr=+v %s -o - \3; RUN: -verify-machineinstrs | FileCheck %s4; RUN: llc -mtriple riscv64 -mattr=+v %s -o - \5; RUN: -verify-machineinstrs | FileCheck %s6 7define void @test_load_mask_64(ptr %pa, ptr %pb) {8; CHECK-LABEL: test_load_mask_64:9; CHECK: # %bb.0:10; CHECK-NEXT: vsetvli a2, zero, e8, m8, ta, ma11; CHECK-NEXT: vlm.v v8, (a0)12; CHECK-NEXT: vsm.v v8, (a1)13; CHECK-NEXT: ret14 %a = load <vscale x 64 x i1>, ptr %pa15 store <vscale x 64 x i1> %a, ptr %pb16 ret void17}18 19define void @test_load_mask_32(ptr %pa, ptr %pb) {20; CHECK-LABEL: test_load_mask_32:21; CHECK: # %bb.0:22; CHECK-NEXT: vsetvli a2, zero, e8, m4, ta, ma23; CHECK-NEXT: vlm.v v8, (a0)24; CHECK-NEXT: vsm.v v8, (a1)25; CHECK-NEXT: ret26 %a = load <vscale x 32 x i1>, ptr %pa27 store <vscale x 32 x i1> %a, ptr %pb28 ret void29}30 31define void @test_load_mask_16(ptr %pa, ptr %pb) {32; CHECK-LABEL: test_load_mask_16:33; CHECK: # %bb.0:34; CHECK-NEXT: vsetvli a2, zero, e8, m2, ta, ma35; CHECK-NEXT: vlm.v v8, (a0)36; CHECK-NEXT: vsm.v v8, (a1)37; CHECK-NEXT: ret38 %a = load <vscale x 16 x i1>, ptr %pa39 store <vscale x 16 x i1> %a, ptr %pb40 ret void41}42 43define void @test_load_mask_8(ptr %pa, ptr %pb) {44; CHECK-LABEL: test_load_mask_8:45; CHECK: # %bb.0:46; CHECK-NEXT: vsetvli a2, zero, e8, m1, ta, ma47; CHECK-NEXT: vlm.v v8, (a0)48; CHECK-NEXT: vsm.v v8, (a1)49; CHECK-NEXT: ret50 %a = load <vscale x 8 x i1>, ptr %pa51 store <vscale x 8 x i1> %a, ptr %pb52 ret void53}54 55define void @test_load_mask_4(ptr %pa, ptr %pb) {56; CHECK-LABEL: test_load_mask_4:57; CHECK: # %bb.0:58; CHECK-NEXT: vsetvli a2, zero, e8, mf2, ta, ma59; CHECK-NEXT: vlm.v v8, (a0)60; CHECK-NEXT: vsm.v v8, (a1)61; CHECK-NEXT: ret62 %a = load <vscale x 4 x i1>, ptr %pa63 store <vscale x 4 x i1> %a, ptr %pb64 ret void65}66 67define void @test_load_mask_2(ptr %pa, ptr %pb) {68; CHECK-LABEL: test_load_mask_2:69; CHECK: # %bb.0:70; CHECK-NEXT: vsetvli a2, zero, e8, mf4, ta, ma71; CHECK-NEXT: vlm.v v8, (a0)72; CHECK-NEXT: vsm.v v8, (a1)73; CHECK-NEXT: ret74 %a = load <vscale x 2 x i1>, ptr %pa75 store <vscale x 2 x i1> %a, ptr %pb76 ret void77}78 79define void @test_load_mask_1(ptr %pa, ptr %pb) {80; CHECK-LABEL: test_load_mask_1:81; CHECK: # %bb.0:82; CHECK-NEXT: vsetvli a2, zero, e8, mf8, ta, ma83; CHECK-NEXT: vlm.v v8, (a0)84; CHECK-NEXT: vsm.v v8, (a1)85; CHECK-NEXT: ret86 %a = load <vscale x 1 x i1>, ptr %pa87 store <vscale x 1 x i1> %a, ptr %pb88 ret void89}90