@@ -15,14 +15,14 @@ define dso_local i32 @mul(i32 %a, i32 %b) local_unnamed_addr #0 {
1515;
1616; RV32IMXQCIAC-LABEL: mul:
1717; RV32IMXQCIAC: # %bb.0: # %entry
18- ; RV32IMXQCIAC-NEXT: slli a0, a1, 5
19- ; RV32IMXQCIAC-NEXT: add a0, a0, a1
18+ ; RV32IMXQCIAC-NEXT: li a0, 33
19+ ; RV32IMXQCIAC-NEXT: mul a0, a1, a0
2020; RV32IMXQCIAC-NEXT: ret
2121;
2222; RV32IZBAMXQCIAC-LABEL: mul:
2323; RV32IZBAMXQCIAC: # %bb.0: # %entry
24- ; RV32IZBAMXQCIAC-NEXT: slli a0, a1, 5
25- ; RV32IZBAMXQCIAC-NEXT: add a0, a0, a1
24+ ; RV32IZBAMXQCIAC-NEXT: li a0, 33
25+ ; RV32IZBAMXQCIAC-NEXT: mul a0, a1, a0
2626; RV32IZBAMXQCIAC-NEXT: ret
2727entry:
2828 %mul = mul nsw i32 %b , 33
@@ -131,16 +131,12 @@ define dso_local i32 @pow2immplus1(i32 %a, i32 %b) local_unnamed_addr #0 {
131131;
132132; RV32IMXQCIAC-LABEL: pow2immplus1:
133133; RV32IMXQCIAC: # %bb.0: # %entry
134- ; RV32IMXQCIAC-NEXT: slli a2, a1, 5
135- ; RV32IMXQCIAC-NEXT: add a0, a0, a1
136- ; RV32IMXQCIAC-NEXT: add a0, a0, a2
134+ ; RV32IMXQCIAC-NEXT: qc.muliadd a0, a1, 33
137135; RV32IMXQCIAC-NEXT: ret
138136;
139137; RV32IZBAMXQCIAC-LABEL: pow2immplus1:
140138; RV32IZBAMXQCIAC: # %bb.0: # %entry
141- ; RV32IZBAMXQCIAC-NEXT: slli a2, a1, 5
142- ; RV32IZBAMXQCIAC-NEXT: add a0, a0, a1
143- ; RV32IZBAMXQCIAC-NEXT: add a0, a0, a2
139+ ; RV32IZBAMXQCIAC-NEXT: qc.muliadd a0, a1, 33
144140; RV32IZBAMXQCIAC-NEXT: ret
145141entry:
146142 %mul = mul nsw i32 %b , 33
@@ -159,18 +155,12 @@ define dso_local i32 @pow2immminus2(i32 %a, i32 %b) local_unnamed_addr #0 {
159155;
160156; RV32IMXQCIAC-LABEL: pow2immminus2:
161157; RV32IMXQCIAC: # %bb.0: # %entry
162- ; RV32IMXQCIAC-NEXT: slli a2, a1, 1
163- ; RV32IMXQCIAC-NEXT: slli a1, a1, 7
164- ; RV32IMXQCIAC-NEXT: sub a1, a1, a2
165- ; RV32IMXQCIAC-NEXT: add a0, a0, a1
158+ ; RV32IMXQCIAC-NEXT: qc.muliadd a0, a1, 126
166159; RV32IMXQCIAC-NEXT: ret
167160;
168161; RV32IZBAMXQCIAC-LABEL: pow2immminus2:
169162; RV32IZBAMXQCIAC: # %bb.0: # %entry
170- ; RV32IZBAMXQCIAC-NEXT: slli a2, a1, 1
171- ; RV32IZBAMXQCIAC-NEXT: slli a1, a1, 7
172- ; RV32IZBAMXQCIAC-NEXT: sub a1, a1, a2
173- ; RV32IZBAMXQCIAC-NEXT: add a0, a0, a1
163+ ; RV32IZBAMXQCIAC-NEXT: qc.muliadd a0, a1, 126
174164; RV32IZBAMXQCIAC-NEXT: ret
175165entry:
176166 %mul = mul nsw i32 %b , 126
@@ -189,17 +179,12 @@ define dso_local i32 @pow2minuspow2(i32 %a, i32 %b) local_unnamed_addr #0 {
189179;
190180; RV32IMXQCIAC-LABEL: pow2minuspow2:
191181; RV32IMXQCIAC: # %bb.0: # %entry
192- ; RV32IMXQCIAC-NEXT: slli a2, a1, 7
193- ; RV32IMXQCIAC-NEXT: slli a1, a1, 9
194- ; RV32IMXQCIAC-NEXT: sub a1, a1, a2
195- ; RV32IMXQCIAC-NEXT: add a0, a0, a1
182+ ; RV32IMXQCIAC-NEXT: qc.muliadd a0, a1, 384
196183; RV32IMXQCIAC-NEXT: ret
197184;
198185; RV32IZBAMXQCIAC-LABEL: pow2minuspow2:
199186; RV32IZBAMXQCIAC: # %bb.0: # %entry
200- ; RV32IZBAMXQCIAC-NEXT: sh1add a1, a1, a1
201- ; RV32IZBAMXQCIAC-NEXT: slli a1, a1, 7
202- ; RV32IZBAMXQCIAC-NEXT: add a0, a0, a1
187+ ; RV32IZBAMXQCIAC-NEXT: qc.muliadd a0, a1, 384
203188; RV32IZBAMXQCIAC-NEXT: ret
204189entry:
205190 %mul = mul nsw i32 %b , 384
0 commit comments