@@ -17,7 +17,7 @@ define i2 @bitreverse_i2(i2 %x) {
1717; RV64-NEXT: slli a1, a0, 1
1818; RV64-NEXT: andi a1, a1, 2
1919; RV64-NEXT: andi a0, a0, 3
20- ; RV64-NEXT: srliw a0, a0, 1
20+ ; RV64-NEXT: srli a0, a0, 1
2121; RV64-NEXT: or a0, a1, a0
2222; RV64-NEXT: ret
2323 %rev = call i2 @llvm.bitreverse.i2 (i2 %x )
@@ -43,7 +43,7 @@ define i3 @bitreverse_i3(i3 %x) {
4343; RV64-NEXT: andi a0, a0, 7
4444; RV64-NEXT: andi a2, a0, 2
4545; RV64-NEXT: or a1, a1, a2
46- ; RV64-NEXT: srliw a0, a0, 2
46+ ; RV64-NEXT: srli a0, a0, 2
4747; RV64-NEXT: or a0, a1, a0
4848; RV64-NEXT: ret
4949 %rev = call i3 @llvm.bitreverse.i3 (i3 %x )
@@ -74,10 +74,10 @@ define i4 @bitreverse_i4(i4 %x) {
7474; RV64-NEXT: andi a2, a2, 4
7575; RV64-NEXT: or a1, a1, a2
7676; RV64-NEXT: andi a0, a0, 15
77- ; RV64-NEXT: srliw a2, a0, 1
77+ ; RV64-NEXT: srli a2, a0, 1
7878; RV64-NEXT: andi a2, a2, 2
7979; RV64-NEXT: or a1, a1, a2
80- ; RV64-NEXT: srliw a0, a0, 3
80+ ; RV64-NEXT: srli a0, a0, 3
8181; RV64-NEXT: or a0, a1, a0
8282; RV64-NEXT: ret
8383 %rev = call i4 @llvm.bitreverse.i4 (i4 %x )
@@ -121,13 +121,13 @@ define i7 @bitreverse_i7(i7 %x) {
121121; RV64-NEXT: andi a3, a0, 8
122122; RV64-NEXT: or a2, a2, a3
123123; RV64-NEXT: or a1, a1, a2
124- ; RV64-NEXT: srliw a2, a0, 2
124+ ; RV64-NEXT: srli a2, a0, 2
125125; RV64-NEXT: andi a2, a2, 4
126- ; RV64-NEXT: srliw a3, a0, 4
126+ ; RV64-NEXT: srli a3, a0, 4
127127; RV64-NEXT: andi a3, a3, 2
128128; RV64-NEXT: or a2, a2, a3
129129; RV64-NEXT: or a1, a1, a2
130- ; RV64-NEXT: srliw a0, a0, 6
130+ ; RV64-NEXT: srli a0, a0, 6
131131; RV64-NEXT: or a0, a1, a0
132132; RV64-NEXT: ret
133133 %rev = call i7 @llvm.bitreverse.i7 (i7 %x )
@@ -171,36 +171,36 @@ define i24 @bitreverse_i24(i24 %x) {
171171;
172172; RV64-LABEL: bitreverse_i24:
173173; RV64: # %bb.0:
174- ; RV64-NEXT: slli a1, a0, 16
175- ; RV64-NEXT: lui a2, 4096
176- ; RV64-NEXT: addi a2, a2, -1
177- ; RV64-NEXT: and a0, a0, a2
178- ; RV64-NEXT: srliw a0, a0, 16
179- ; RV64-NEXT: or a0, a0, a1
180- ; RV64-NEXT: lui a1 , 1048335
181- ; RV64-NEXT: addi a1, a1 , 240
182- ; RV64-NEXT: and a3, a1, a2
174+ ; RV64-NEXT: lui a1, 4096
175+ ; RV64-NEXT: addiw a1, a1, -1
176+ ; RV64-NEXT: slli a2, a0, 16
177+ ; RV64-NEXT: and a0, a0, a1
178+ ; RV64-NEXT: srli a0, a0, 16
179+ ; RV64-NEXT: or a0, a0, a2
180+ ; RV64-NEXT: lui a2 , 1048335
181+ ; RV64-NEXT: addiw a2, a2 , 240
182+ ; RV64-NEXT: and a3, a2, a1
183183; RV64-NEXT: and a3, a0, a3
184- ; RV64-NEXT: srliw a3, a3, 4
184+ ; RV64-NEXT: srli a3, a3, 4
185185; RV64-NEXT: slli a0, a0, 4
186- ; RV64-NEXT: and a0, a0, a1
186+ ; RV64-NEXT: and a0, a0, a2
187187; RV64-NEXT: or a0, a3, a0
188- ; RV64-NEXT: lui a1 , 1047757
189- ; RV64-NEXT: addi a1, a1 , -820
190- ; RV64-NEXT: and a3, a1, a2
188+ ; RV64-NEXT: lui a2 , 1047757
189+ ; RV64-NEXT: addiw a2, a2 , -820
190+ ; RV64-NEXT: and a3, a2, a1
191191; RV64-NEXT: and a3, a0, a3
192- ; RV64-NEXT: srliw a3, a3, 2
192+ ; RV64-NEXT: srli a3, a3, 2
193193; RV64-NEXT: slli a0, a0, 2
194- ; RV64-NEXT: and a0, a0, a1
194+ ; RV64-NEXT: and a0, a0, a2
195195; RV64-NEXT: or a0, a3, a0
196- ; RV64-NEXT: lui a1 , 1047211
197- ; RV64-NEXT: addiw a1, a1 , -1366
198- ; RV64-NEXT: and a2, a1, a2
199- ; RV64-NEXT: and a2 , a0, a2
200- ; RV64-NEXT: srliw a2, a2 , 1
201- ; RV64-NEXT: slliw a0, a0, 1
202- ; RV64-NEXT: and a0, a0, a1
203- ; RV64-NEXT: or a0, a2 , a0
196+ ; RV64-NEXT: lui a2 , 1047211
197+ ; RV64-NEXT: addiw a2, a2 , -1366
198+ ; RV64-NEXT: and a1, a2, a1
199+ ; RV64-NEXT: and a1 , a0, a1
200+ ; RV64-NEXT: srli a1, a1 , 1
201+ ; RV64-NEXT: slli a0, a0, 1
202+ ; RV64-NEXT: and a0, a0, a2
203+ ; RV64-NEXT: or a0, a1 , a0
204204; RV64-NEXT: ret
205205 %rev = call i24 @llvm.bitreverse.i24 (i24 %x )
206206 ret i24 %rev
0 commit comments