1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s | FileCheck %s 3; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s | FileCheck %s 4 5define void @load_store_v1i1(ptr %x, ptr %y) { 6; CHECK-LABEL: load_store_v1i1: 7; CHECK: # %bb.0: 8; CHECK-NEXT: lbu a0, 0(a0) 9; CHECK-NEXT: andi a0, a0, 1 10; CHECK-NEXT: sb a0, 0(a1) 11; CHECK-NEXT: ret 12 %a = load <1 x i1>, ptr %x 13 store <1 x i1> %a, ptr %y 14 ret void 15} 16 17define void @load_store_v2i1(ptr %x, ptr %y) { 18; CHECK-LABEL: load_store_v2i1: 19; CHECK: # %bb.0: 20; CHECK-NEXT: lbu a0, 0(a0) 21; CHECK-NEXT: andi a0, a0, 3 22; CHECK-NEXT: sb a0, 0(a1) 23; CHECK-NEXT: ret 24 %a = load <2 x i1>, ptr %x 25 store <2 x i1> %a, ptr %y 26 ret void 27} 28 29define void @load_store_v4i1(ptr %x, ptr %y) { 30; CHECK-LABEL: load_store_v4i1: 31; CHECK: # %bb.0: 32; CHECK-NEXT: lbu a0, 0(a0) 33; CHECK-NEXT: andi a0, a0, 15 34; CHECK-NEXT: sb a0, 0(a1) 35; CHECK-NEXT: ret 36 %a = load <4 x i1>, ptr %x 37 store <4 x i1> %a, ptr %y 38 ret void 39} 40 41define void @load_store_v8i1(ptr %x, ptr %y) { 42; CHECK-LABEL: load_store_v8i1: 43; CHECK: # %bb.0: 44; CHECK-NEXT: lbu a0, 0(a0) 45; CHECK-NEXT: sb a0, 0(a1) 46; CHECK-NEXT: ret 47 %a = load <8 x i1>, ptr %x 48 store <8 x i1> %a, ptr %y 49 ret void 50} 51 52define void @load_store_v16i1(ptr %x, ptr %y) { 53; CHECK-LABEL: load_store_v16i1: 54; CHECK: # %bb.0: 55; CHECK-NEXT: lh a0, 0(a0) 56; CHECK-NEXT: sh a0, 0(a1) 57; CHECK-NEXT: ret 58 %a = load <16 x i1>, ptr %x 59 store <16 x i1> %a, ptr %y 60 ret void 61} 62 63define void @load_store_v32i1(ptr %x, ptr %y) { 64; CHECK-LABEL: load_store_v32i1: 65; CHECK: # %bb.0: 66; CHECK-NEXT: lw a0, 0(a0) 67; CHECK-NEXT: sw a0, 0(a1) 68; CHECK-NEXT: ret 69 %a = load <32 x i1>, ptr %x 70 store <32 x i1> %a, ptr %y 71 ret void 72} 73