@@ -1004,22 +1004,22 @@ define void @fir(ptr nocapture readonly %S, ptr nocapture readonly %pSrc, ptr no
10041004; CHECK-NEXT: @ %bb.2: @ %while.body.lr.ph
10051005; CHECK-NEXT: ldrh r4, [r0]
10061006; CHECK-NEXT: movs r1, #1
1007- ; CHECK-NEXT: ldrd r5, r3 , [r0, #4]
1007+ ; CHECK-NEXT: ldrd r5, r7 , [r0, #4]
10081008; CHECK-NEXT: sub.w r0, r4, #8
1009- ; CHECK-NEXT: add.w r7 , r0, r0, lsr #29
1009+ ; CHECK-NEXT: add.w r3 , r0, r0, lsr #29
10101010; CHECK-NEXT: and r0, r0, #7
1011- ; CHECK-NEXT: asrs r6, r7 , #3
1011+ ; CHECK-NEXT: asrs r6, r3 , #3
10121012; CHECK-NEXT: cmp r6, #1
10131013; CHECK-NEXT: it gt
1014- ; CHECK-NEXT: asrgt r1, r7 , #3
1015- ; CHECK-NEXT: add.w r7 , r5, r4, lsl #1
1014+ ; CHECK-NEXT: asrgt r1, r3 , #3
1015+ ; CHECK-NEXT: add.w r3 , r5, r4, lsl #1
10161016; CHECK-NEXT: str r1, [sp] @ 4-byte Spill
1017- ; CHECK-NEXT: subs r1, r7 , #2
1018- ; CHECK-NEXT: rsbs r7 , r4, #0
1019- ; CHECK-NEXT: str r7 , [sp, #8] @ 4-byte Spill
1020- ; CHECK-NEXT: add.w r7, r3 , #16
1017+ ; CHECK-NEXT: subs r1, r3 , #2
1018+ ; CHECK-NEXT: rsbs r3 , r4, #0
1019+ ; CHECK-NEXT: str r3 , [sp, #8] @ 4-byte Spill
1020+ ; CHECK-NEXT: add.w r3, r7 , #16
10211021; CHECK-NEXT: str r4, [sp, #12] @ 4-byte Spill
1022- ; CHECK-NEXT: str r7 , [sp, #4] @ 4-byte Spill
1022+ ; CHECK-NEXT: str r3 , [sp, #4] @ 4-byte Spill
10231023; CHECK-NEXT: str r0, [sp, #16] @ 4-byte Spill
10241024; CHECK-NEXT: b .LBB16_6
10251025; CHECK-NEXT: .LBB16_3: @ %while.end.loopexit
@@ -1045,36 +1045,36 @@ define void @fir(ptr nocapture readonly %S, ptr nocapture readonly %pSrc, ptr no
10451045; CHECK-NEXT: @ Child Loop BB16_8 Depth 2
10461046; CHECK-NEXT: @ Child Loop BB16_11 Depth 2
10471047; CHECK-NEXT: ldr r0, [sp, #20] @ 4-byte Reload
1048- ; CHECK-NEXT: ldrh.w lr, [r3 , #14]
1048+ ; CHECK-NEXT: ldrh.w lr, [r7 , #14]
10491049; CHECK-NEXT: vldrw.u32 q0, [r0], #8
1050- ; CHECK-NEXT: ldrh.w r8 , [r3 , #12]
1051- ; CHECK-NEXT: ldrh r7 , [r3 , #10]
1052- ; CHECK-NEXT: ldrh r4, [r3 , #8]
1053- ; CHECK-NEXT: ldrh r6 , [r3 , #6]
1054- ; CHECK-NEXT: ldrh.w r9 , [r3 , #4]
1055- ; CHECK-NEXT: ldrh.w r11, [r3 , #2]
1056- ; CHECK-NEXT: ldrh.w r10 , [r3 ]
1050+ ; CHECK-NEXT: ldrh.w r9 , [r7 , #12]
1051+ ; CHECK-NEXT: ldrh.w r10 , [r7 , #10]
1052+ ; CHECK-NEXT: ldrh r4, [r7 , #8]
1053+ ; CHECK-NEXT: ldrh r3 , [r7 , #6]
1054+ ; CHECK-NEXT: ldrh r6 , [r7 , #4]
1055+ ; CHECK-NEXT: ldrh.w r11, [r7 , #2]
1056+ ; CHECK-NEXT: ldrh.w r8 , [r7 ]
10571057; CHECK-NEXT: vstrb.8 q0, [r1], #8
10581058; CHECK-NEXT: vldrw.u32 q0, [r5]
10591059; CHECK-NEXT: str r0, [sp, #20] @ 4-byte Spill
10601060; CHECK-NEXT: adds r0, r5, #2
10611061; CHECK-NEXT: vldrw.u32 q1, [r0]
1062- ; CHECK-NEXT: vmul.f16 q0, q0, r10
1062+ ; CHECK-NEXT: vmul.f16 q0, q0, r8
10631063; CHECK-NEXT: adds r0, r5, #6
10641064; CHECK-NEXT: vfma.f16 q0, q1, r11
10651065; CHECK-NEXT: vldrw.u32 q1, [r5, #4]
1066- ; CHECK-NEXT: vfma.f16 q0, q1, r9
1066+ ; CHECK-NEXT: vfma.f16 q0, q1, r6
10671067; CHECK-NEXT: vldrw.u32 q1, [r0]
10681068; CHECK-NEXT: add.w r0, r5, #10
1069- ; CHECK-NEXT: vfma.f16 q0, q1, r6
1069+ ; CHECK-NEXT: vfma.f16 q0, q1, r3
10701070; CHECK-NEXT: vldrw.u32 q1, [r5, #8]
10711071; CHECK-NEXT: vfma.f16 q0, q1, r4
10721072; CHECK-NEXT: vldrw.u32 q1, [r0]
10731073; CHECK-NEXT: add.w r0, r5, #14
1074- ; CHECK-NEXT: vfma.f16 q0, q1, r7
1074+ ; CHECK-NEXT: vfma.f16 q0, q1, r10
10751075; CHECK-NEXT: vldrw.u32 q1, [r5, #12]
10761076; CHECK-NEXT: adds r5, #16
1077- ; CHECK-NEXT: vfma.f16 q0, q1, r8
1077+ ; CHECK-NEXT: vfma.f16 q0, q1, r9
10781078; CHECK-NEXT: vldrw.u32 q1, [r0]
10791079; CHECK-NEXT: ldr r0, [sp, #12] @ 4-byte Reload
10801080; CHECK-NEXT: vfma.f16 q0, q1, lr
@@ -1083,40 +1083,44 @@ define void @fir(ptr nocapture readonly %S, ptr nocapture readonly %pSrc, ptr no
10831083; CHECK-NEXT: @ %bb.7: @ %for.body.preheader
10841084; CHECK-NEXT: @ in Loop: Header=BB16_6 Depth=1
10851085; CHECK-NEXT: ldr r0, [sp] @ 4-byte Reload
1086+ ; CHECK-NEXT: mov r3, r7
10861087; CHECK-NEXT: dls lr, r0
10871088; CHECK-NEXT: ldr r6, [sp, #4] @ 4-byte Reload
10881089; CHECK-NEXT: .LBB16_8: @ %for.body
10891090; CHECK-NEXT: @ Parent Loop BB16_6 Depth=1
10901091; CHECK-NEXT: @ => This Inner Loop Header: Depth=2
1091- ; CHECK-NEXT: ldrh r0, [r6] , #16
1092+ ; CHECK-NEXT: ldrh r0, [r3 , #16]
10921093; CHECK-NEXT: vldrw.u32 q1, [r5]
10931094; CHECK-NEXT: adds r4, r5, #2
1095+ ; CHECK-NEXT: mov r9, r6
10941096; CHECK-NEXT: vfma.f16 q0, q1, r0
10951097; CHECK-NEXT: vldrw.u32 q1, [r4]
1096- ; CHECK-NEXT: ldrh r0, [r6 , #-14 ]
1098+ ; CHECK-NEXT: ldrh r0, [r3 , #18 ]
10971099; CHECK-NEXT: adds r4, r5, #6
1100+ ; CHECK-NEXT: adds r6, #16
10981101; CHECK-NEXT: vfma.f16 q0, q1, r0
1099- ; CHECK-NEXT: ldrh r0, [r6 , #-12 ]
1102+ ; CHECK-NEXT: ldrh r0, [r3 , #20 ]
11001103; CHECK-NEXT: vldrw.u32 q1, [r5, #4]
11011104; CHECK-NEXT: vfma.f16 q0, q1, r0
11021105; CHECK-NEXT: vldrw.u32 q1, [r4]
1103- ; CHECK-NEXT: ldrh r0, [r6 , #-10 ]
1106+ ; CHECK-NEXT: ldrh r0, [r3 , #22 ]
11041107; CHECK-NEXT: add.w r4, r5, #10
11051108; CHECK-NEXT: vfma.f16 q0, q1, r0
1106- ; CHECK-NEXT: ldrh r0, [r6 , #-8 ]
1109+ ; CHECK-NEXT: ldrh r0, [r3 , #24 ]
11071110; CHECK-NEXT: vldrw.u32 q1, [r5, #8]
11081111; CHECK-NEXT: vfma.f16 q0, q1, r0
1112+ ; CHECK-NEXT: ldrh r0, [r3, #26]
11091113; CHECK-NEXT: vldrw.u32 q1, [r4]
1110- ; CHECK-NEXT: ldrh r0, [r6, #-6]
1111- ; CHECK-NEXT: ldrh r4, [r6, #-2]
11121114; CHECK-NEXT: vfma.f16 q0, q1, r0
1113- ; CHECK-NEXT: ldrh r0, [r6 , #-4 ]
1115+ ; CHECK-NEXT: ldrh r0, [r3 , #28 ]
11141116; CHECK-NEXT: vldrw.u32 q1, [r5, #12]
1117+ ; CHECK-NEXT: ldrh r3, [r3, #30]
11151118; CHECK-NEXT: vfma.f16 q0, q1, r0
11161119; CHECK-NEXT: add.w r0, r5, #14
11171120; CHECK-NEXT: vldrw.u32 q1, [r0]
11181121; CHECK-NEXT: adds r5, #16
1119- ; CHECK-NEXT: vfma.f16 q0, q1, r4
1122+ ; CHECK-NEXT: vfma.f16 q0, q1, r3
1123+ ; CHECK-NEXT: mov r3, r9
11201124; CHECK-NEXT: le lr, .LBB16_8
11211125; CHECK-NEXT: b .LBB16_4
11221126; CHECK-NEXT: .LBB16_9: @ in Loop: Header=BB16_6 Depth=1
@@ -1128,9 +1132,9 @@ define void @fir(ptr nocapture readonly %S, ptr nocapture readonly %pSrc, ptr no
11281132; CHECK-NEXT: .LBB16_11: @ %while.body76
11291133; CHECK-NEXT: @ Parent Loop BB16_6 Depth=1
11301134; CHECK-NEXT: @ => This Inner Loop Header: Depth=2
1131- ; CHECK-NEXT: ldrh r4 , [r6], #2
1135+ ; CHECK-NEXT: ldrh r3 , [r6], #2
11321136; CHECK-NEXT: vldrh.u16 q1, [r0], #2
1133- ; CHECK-NEXT: vfma.f16 q0, q1, r4
1137+ ; CHECK-NEXT: vfma.f16 q0, q1, r3
11341138; CHECK-NEXT: le lr, .LBB16_11
11351139; CHECK-NEXT: b .LBB16_3
11361140; CHECK-NEXT: .LBB16_12: @ %if.end
0 commit comments