Skip to content

Commit 3c0777c

Browse files
toppercsivan-shani
authored andcommitted
[RISCV] Add tests for widening fixed vector masked loads/stores. NFC (llvm#140949)
1 parent b3b7cc1 commit 3c0777c

File tree

4 files changed

+49
-0
lines changed

4 files changed

+49
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-load-fp.ll

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,3 +322,15 @@ define <128 x half> @masked_load_v128f16(ptr %a, <128 x i1> %mask) {
322322
ret <128 x half> %load
323323
}
324324

325+
define <7 x float> @masked_load_v7f32(ptr %a, <7 x i1> %mask) {
326+
; CHECK-LABEL: masked_load_v7f32:
327+
; CHECK: # %bb.0:
328+
; CHECK-NEXT: li a1, 127
329+
; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
330+
; CHECK-NEXT: vmv.s.x v8, a1
331+
; CHECK-NEXT: vmand.mm v0, v0, v8
332+
; CHECK-NEXT: vle32.v v8, (a0), v0.t
333+
; CHECK-NEXT: ret
334+
%load = call <7 x float> @llvm.masked.load.v7f32(ptr %a, i32 8, <7 x i1> %mask, <7 x float> undef)
335+
ret <7 x float> %load
336+
}

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-load-int.ll

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,3 +331,16 @@ define <256 x i8> @masked_load_v256i8(ptr %a, <256 x i1> %mask) {
331331
ret <256 x i8> %load
332332
}
333333

334+
define <7 x i8> @masked_load_v7i8(ptr %a, <7 x i1> %mask) {
335+
; CHECK-LABEL: masked_load_v7i8:
336+
; CHECK: # %bb.0:
337+
; CHECK-NEXT: li a1, 127
338+
; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
339+
; CHECK-NEXT: vmv.s.x v8, a1
340+
; CHECK-NEXT: vmand.mm v0, v0, v8
341+
; CHECK-NEXT: vle8.v v8, (a0), v0.t
342+
; CHECK-NEXT: ret
343+
%load = call <7 x i8> @llvm.masked.load.v7i8(ptr %a, i32 8, <7 x i1> %mask, <7 x i8> undef)
344+
ret <7 x i8> %load
345+
}
346+

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-fp.ll

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,3 +322,15 @@ define void @masked_store_v128f16(<128 x half> %val, ptr %a, <128 x i1> %mask) {
322322
ret void
323323
}
324324

325+
define void @masked_store_v7f32(<7 x float> %val, ptr %a, <7 x i1> %mask) {
326+
; CHECK-LABEL: masked_store_v7f32:
327+
; CHECK: # %bb.0:
328+
; CHECK-NEXT: li a1, 127
329+
; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
330+
; CHECK-NEXT: vmv.s.x v10, a1
331+
; CHECK-NEXT: vmand.mm v0, v0, v10
332+
; CHECK-NEXT: vse32.v v8, (a0), v0.t
333+
; CHECK-NEXT: ret
334+
call void @llvm.masked.store.v7f32.p0(<7 x float> %val, ptr %a, i32 8, <7 x i1> %mask)
335+
ret void
336+
}

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-int.ll

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,3 +330,15 @@ define void @masked_store_v256i8(<256 x i8> %val, ptr %a, <256 x i1> %mask) {
330330
ret void
331331
}
332332

333+
define void @masked_store_v7i8(<7 x i8> %val, ptr %a, <7 x i1> %mask) {
334+
; CHECK-LABEL: masked_store_v7i8:
335+
; CHECK: # %bb.0:
336+
; CHECK-NEXT: li a1, 127
337+
; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
338+
; CHECK-NEXT: vmv.s.x v9, a1
339+
; CHECK-NEXT: vmand.mm v0, v0, v9
340+
; CHECK-NEXT: vse8.v v8, (a0), v0.t
341+
; CHECK-NEXT: ret
342+
call void @llvm.masked.store.v7i8.p0(<7 x i8> %val, ptr %a, i32 8, <7 x i1> %mask)
343+
ret void
344+
}

0 commit comments

Comments
 (0)