@@ -249,27 +249,28 @@ entry:
249249define i32 @multiuse (i32 %i , ptr %x , ptr %y ) {
250250; CHECK-T1-LABEL: multiuse:
251251; CHECK-T1: @ %bb.0: @ %entry
252+ ; CHECK-T1-NEXT: lsls r2, r0, #3
253+ ; CHECK-T1-NEXT: adds r1, r1, r2
254+ ; CHECK-T1-NEXT: ldr r1, [r1, #4]
252255; CHECK-T1-NEXT: lsls r0, r0, #1
256+ ; CHECK-T1-NEXT: adds r0, r1, r0
253257; CHECK-T1-NEXT: adds r0, r0, #1
254- ; CHECK-T1-NEXT: lsls r2, r0, #2
255- ; CHECK-T1-NEXT: ldr r1, [r1, r2]
256- ; CHECK-T1-NEXT: adds r0, r0, r1
257258; CHECK-T1-NEXT: bx lr
258259;
259260; CHECK-T2-LABEL: multiuse:
260261; CHECK-T2: @ %bb.0: @ %entry
261- ; CHECK-T2-NEXT: lsls r0, r0, #1
262+ ; CHECK-T2-NEXT: add.w r1, r1, r0, lsl #3
263+ ; CHECK-T2-NEXT: ldr r1, [r1, #4]
264+ ; CHECK-T2-NEXT: add.w r0, r1, r0, lsl #1
262265; CHECK-T2-NEXT: adds r0, #1
263- ; CHECK-T2-NEXT: ldr.w r1, [r1, r0, lsl #2]
264- ; CHECK-T2-NEXT: add r0, r1
265266; CHECK-T2-NEXT: bx lr
266267;
267268; CHECK-A-LABEL: multiuse:
268269; CHECK-A: @ %bb.0: @ %entry
269- ; CHECK-A-NEXT: mov r2, #1
270- ; CHECK-A-NEXT: orr r0, r2, r0, lsl #1
271- ; CHECK-A-NEXT: ldr r1, [ r1, r0, lsl #2]
272- ; CHECK-A-NEXT: add r0, r0, r1
270+ ; CHECK-A-NEXT: add r1, r1, r0, lsl #3
271+ ; CHECK-A-NEXT: ldr r1, [r1, #4]
272+ ; CHECK-A-NEXT: add r0, r1, r0, lsl #1
273+ ; CHECK-A-NEXT: add r0, r0, #1
273274; CHECK-A-NEXT: bx lr
274275entry:
275276 %mul = shl i32 %i , 1
0 commit comments