Skip to content

Commit 3228a96

Browse files
committed
add more tests for i8 elmty
1 parent a2ca313 commit 3228a96

File tree

2 files changed

+74
-2
lines changed

2 files changed

+74
-2
lines changed

llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,11 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
266266
{s32, p0, s16, 16},
267267
{s32, p0, s32, 32},
268268
{p0, p0, sXLen, XLen},
269-
{nxv1s8, p0, nxv1s8, 8}})
269+
{nxv1s8, p0, nxv1s8, 8},
270+
{nxv2s8, p0, nxv2s8, 8},
271+
{nxv4s8, p0, nxv4s8, 8},
272+
{nxv8s8, p0, nxv8s8, 8},
273+
{nxv16s8, p0, nxv16s8, 8}})
270274
.widenScalarToNextPow2(0, /* MinSize = */ 8)
271275
.lowerIfMemSizeNotByteSizePow2();
272276

llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-store.mir

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,27 @@
77
store <vscale x 1 x i8> %b, ptr %pa, align 1
88
ret void
99
}
10-
10+
11+
define <vscale x 2 x i8> @vload_nx2i8(ptr %pa) {
12+
%va = load <vscale x 2 x i8>, ptr %pa, align 2
13+
ret <vscale x 2 x i8> %va
14+
}
15+
16+
define <vscale x 4 x i8> @vload_nx4i8(ptr %pa) {
17+
%va = load <vscale x 4 x i8>, ptr %pa, align 4
18+
ret <vscale x 4 x i8> %va
19+
}
20+
21+
define <vscale x 8 x i8> @vload_nx8i8(ptr %pa) {
22+
%va = load <vscale x 8 x i8>, ptr %pa, align 8
23+
ret <vscale x 8 x i8> %va
24+
}
25+
26+
define <vscale x 16 x i8> @vload_nx16i8(ptr %pa) {
27+
%va = load <vscale x 16 x i8>, ptr %pa, align 16
28+
ret <vscale x 16 x i8> %va
29+
}
30+
1131
...
1232
---
1333
name: vstore_nx1i8
@@ -28,3 +48,51 @@ body: |
2848
PseudoRET
2949
3050
...
51+
---
52+
name: vload_nx2i8
53+
body: |
54+
bb.1 (%ir-block.0):
55+
liveins: $x10
56+
57+
%0:_(p0) = COPY $x10
58+
%1:_(<vscale x 2 x s8>) = G_LOAD %0(p0) :: (load (<vscale x 2 x s8>) from %ir.pa)
59+
$v8 = COPY %1(<vscale x 2 x s8>)
60+
PseudoRET implicit $v8
61+
62+
...
63+
---
64+
name: vload_nx4i8
65+
body: |
66+
bb.1 (%ir-block.0):
67+
liveins: $x10
68+
69+
%0:_(p0) = COPY $x10
70+
%1:_(<vscale x 4 x s8>) = G_LOAD %0(p0) :: (load (<vscale x 4 x s8>) from %ir.pa)
71+
$v8 = COPY %1(<vscale x 4 x s8>)
72+
PseudoRET implicit $v8
73+
74+
...
75+
---
76+
name: vload_nx8i8
77+
body: |
78+
bb.1 (%ir-block.0):
79+
liveins: $x10
80+
81+
%0:_(p0) = COPY $x10
82+
%1:_(<vscale x 8 x s8>) = G_LOAD %0(p0) :: (load (<vscale x 8 x s8>) from %ir.pa)
83+
$v8 = COPY %1(<vscale x 8 x s8>)
84+
PseudoRET implicit $v8
85+
86+
...
87+
---
88+
name: vload_nx16i8
89+
body: |
90+
bb.1 (%ir-block.0):
91+
liveins: $x10
92+
93+
%0:_(p0) = COPY $x10
94+
%1:_(<vscale x 16 x s8>) = G_LOAD %0(p0) :: (load (<vscale x 16 x s8>) from %ir.pa)
95+
$v8m2 = COPY %1(<vscale x 16 x s8>)
96+
PseudoRET implicit $v8m2
97+
98+
...

0 commit comments

Comments
 (0)