--- vc1_block-good.s 2020-09-18 09:34:33.257258123 +0300 +++ vc1_block-bad.s 2020-09-18 09:34:48.076919548 +0300 @@ -587,7 +587,7 @@ ldrsh.w r3, [r3, #2] cmp.w r3, #-1 bgt .LBB1_31 -@ %bb.30: @ %if.then.i64 +@ %bb.30: @ %if.then.i61 @ in Loop: Header=BB1_26 Depth=2 adds r2, #9 mov r4, r5 @@ -972,7 +972,7 @@ ldr.w r0, [r12, #12] str r0, [sp, #136] @ 4-byte Spill bhi .LBB1_73 -@ %bb.70: @ %if.then.i41 +@ %bb.70: @ %if.then.i39 @ in Loop: Header=BB1_66 Depth=3 ldr.w r4, [r8, #1672] ldr r0, [sp, #80] @ 4-byte Reload @@ -1536,7 +1536,7 @@ @ in Loop: Header=BB1_66 Depth=3 add r2, r3 cmp r2, #2 - bge .LBB1_132 + bhs .LBB1_132 .LBB1_131: @ %cleanup312.thread.i @ in Loop: Header=BB1_66 Depth=3 ldrd r4, r5, [sp, #156] @ 8-byte Folded Reload @@ -1568,7 +1568,7 @@ ldr r0, [sp, #152] @ 4-byte Reload add r2, r3 cmp r2, #2 - blt.w .LBB1_65 + blo.w .LBB1_65 @ %bb.137: @ %if.end353.i @ in Loop: Header=BB1_66 Depth=3 cmp r6, #0 @@ -2893,8 +2893,8 @@ it mi rsbmi r6, r6, #0 cmp r6, r7 - it gt - movgt r4, r5 + it hi + movhi r4, r5 adds r0, r4, r2 ldr r4, [sp, #96] @ 4-byte Reload mul r2, r0, r8 @@ -2906,8 +2906,8 @@ sub.w r0, r8, #32 sub.w r9, r8, lr, lsl #5 str r0, [sp, #68] @ 4-byte Spill - it le - movle r9, r0 + it ls + movls r9, r0 ldr r0, [sp, #80] @ 4-byte Reload add.w lr, r12, r1, lsl #1 cmp r0, #0 @@ -2920,8 +2920,8 @@ cmp r6, r7 ldr r0, [r4, #12] ldrd r5, r1, [sp, #24] @ 8-byte Folded Reload - it gt - movgt r5, r1 + it hi + movhi r5, r1 cmp r0, #0 ldr r0, [sp, #32] @ 4-byte Reload it eq @@ -2968,8 +2968,8 @@ @ in Loop: Header=BB2_23 Depth=3 cmp r6, r7 mov r0, r5 - it gt - movgt r0, r12 + it hi + movhi r0, r12 ldr r0, [r0] movs r1, #1 add.w r2, r9, #16 @@ -2977,8 +2977,8 @@ cmp r6, r7 ldr r6, [sp, #68] @ 4-byte Reload ldrh.w r3, [r10, r1, lsl #1] - it gt - movgt r6, r2 + it hi + movhi r6, r2 ldrh r2, [r6, #2] add r2, r3 strh.w r2, [r10, r1, lsl #1] @@ -3117,11 +3117,11 @@ add.w r0, r9, #16 cmp r6, r7 ldr r1, [sp, #68] @ 4-byte Reload - it gt - movgt r1, r0 + it hi + movhi r1, r0 mov.w r0, #292 - it gt - movgt.w r0, #296 + it hi + movhi.w r0, #296 ldr r5, [sp, #76] @ 4-byte Reload mov.w r12, #2 mov r4, r1 @@ -3129,8 +3129,8 @@ add.w r2, r8, #16 cmp r6, r7 ldr r0, [r5, r0] - it le - movle r2, r8 + it ls + movls r2, r8 vst1.16 {d16, d17}, [r2] movs r2, #1 ldrh r1, [r1] @@ -19628,7 +19628,7 @@ rsbmi r6, r6, #0 ldrb.w r5, [r10, r6] cmp r5, #0 - beq .LBB6_12 + beq.w .LBB6_17 @ %bb.1: @ %if.end subs r4, r5, #1 add.w r5, r0, r1, lsl #2 @@ -19638,150 +19638,146 @@ movw r7, #4344 ldr.w r0, [r0, #1836] ldr r5, [r5, r7] - add.w r7, r0, r4, lsl #1 + add.w r0, r0, r4, lsl #1 + mvns r4, r5 + ldrsh.w r4, [r0, r4, lsl #1] + ldrsh r7, [r0, #-2] + str r0, [sp, #8] @ 4-byte Spill + str r4, [sp, #4] @ 4-byte Spill + sub.w r4, r0, r5, lsl #1 + ldrsh.w r0, [r4] bic r4, r1, #2 - mvns r0, r5 - ldrsh.w r0, [r7, r0, lsl #1] cmp r4, #1 - str r0, [sp, #4] @ 4-byte Spill - ldrsh r0, [r7, #-2] - str r0, [sp, #8] @ 4-byte Spill - sub.w r0, r7, r5, lsl #1 - ldrsh.w r0, [r0] it ne cmpne r3, #0 beq .LBB6_6 @ %bb.2: @ %if.then32 add.w r4, r9, r12 - ldrsb r8, [r4, #-1] - cmp.w r8, #0 + ldrsb r5, [r4, #-1] + cmp r5, #0 + mov r8, r5 bpl .LBB6_4 @ %bb.3: @ %if.then32 - rsb.w r8, r8, #0 + rsb.w r8, r5, #0 .LBB6_4: @ %if.then32 - cmp.w r8, #0 + cmp r5, #0 it ne cmpne r8, r6 beq .LBB6_6 @ %bb.5: @ %if.then59 - ldrb.w r8, [r10, r8] + ldrb.w r4, [r10, r8] movw r5, :lower16:.refptr.ff_vc1_dqscale movt r5, :upper16:.refptr.ff_vc1_dqscale - ldr r4, [sp, #8] @ 4-byte Reload + muls r4, r7, r4 ldr r5, [r5] - mul r8, r8, r4 - ldr r4, [sp] @ 4-byte Reload - ldr.w r5, [r5, r4, lsl #2] - mul r4, r8, r5 + ldr r7, [sp] @ 4-byte Reload + ldr.w r5, [r5, r7, lsl #2] + muls r4, r5, r4 add.w r4, r4, #131072 - asrs r4, r4, #18 - str r4, [sp, #8] @ 4-byte Spill + asrs r7, r4, #18 .LBB6_6: @ %if.end68 bic r4, r1, #1 cmp r4, #2 it ne cmpne r2, #0 - beq .LBB6_8 + beq .LBB6_9 @ %bb.7: @ %if.then76 sub.w r4, r9, lr ldrsb.w r5, [r12, r4] cmp r5, #0 + mov r4, r5 it mi - rsbmi r5, r5, #0 + rsbmi r4, r5, #0 cmp r5, #0 it ne - cmpne r5, r6 - bne .LBB6_13 -.LBB6_8: @ %if.end116 - cmp r1, #3 - beq .LBB6_14 + cmpne r4, r6 + beq .LBB6_9 +@ %bb.8: @ %if.then106 + ldrb.w r4, [r10, r4] + movw r5, :lower16:.refptr.ff_vc1_dqscale + movt r5, :upper16:.refptr.ff_vc1_dqscale + muls r4, r0, r4 + ldr r5, [r5] + ldr r0, [sp] @ 4-byte Reload + ldr.w r5, [r5, r0, lsl #2] + muls r4, r5, r4 + add.w r4, r4, #131072 + asrs r0, r4, #18 .LBB6_9: @ %if.end116 + mov r5, r7 + cmp r1, #3 + beq .LBB6_13 +@ %bb.10: @ %if.end116 cmp r2, #0 it ne cmpne r3, #0 - beq .LBB6_14 -@ %bb.10: @ %if.then123 + beq .LBB6_13 +@ %bb.11: @ %if.then123 subs r4, r1, #1 it ne movne.w r4, #-1 - sub.w r5, r4, lr + sub.w r7, r4, lr cmp r1, #2 it eq - moveq r5, r4 - add.w r1, r5, r9 + moveq r7, r4 + add.w r1, r7, r9 ldrsb.w r1, [r12, r1] cmp r1, #0 + mov r7, r1 it mi - rsbmi r1, r1, #0 + rsbmi r7, r1, #0 cmp r1, #0 it ne - cmpne r1, r6 - beq .LBB6_14 -@ %bb.11: @ %if.then157 - ldr r5, [sp, #4] @ 4-byte Reload - movw r6, :lower16:.refptr.ff_vc1_dqscale - movt r6, :upper16:.refptr.ff_vc1_dqscale - ldrb.w r1, [r10, r1] - muls r1, r5, r1 - ldr r6, [r6] - ldr r5, [sp] @ 4-byte Reload - ldr.w r6, [r6, r5, lsl #2] + cmpne r7, r6 + beq .LBB6_13 +@ %bb.12: @ %if.then157 + ldr r6, [sp, #4] @ 4-byte Reload + ldrb.w r1, [r10, r7] + movw r7, :lower16:.refptr.ff_vc1_dqscale + movt r7, :upper16:.refptr.ff_vc1_dqscale muls r1, r6, r1 + ldr r7, [r7] + ldr r6, [sp] @ 4-byte Reload + ldr.w r7, [r7, r6, lsl #2] + muls r1, r7, r1 add.w r1, r1, #131072 asrs r1, r1, #18 str r1, [sp, #4] @ 4-byte Spill - b .LBB6_14 -.LBB6_12: - movs r0, #0 - add sp, #12 - pop.w {r4, r5, r6, r7, r8, r9, r10, r11, pc} -.LBB6_13: @ %if.then106 - ldrb.w r4, [r10, r5] - movw r5, :lower16:.refptr.ff_vc1_dqscale - movt r5, :upper16:.refptr.ff_vc1_dqscale - ldr r5, [r5] - muls r0, r4, r0 - ldr r4, [sp] @ 4-byte Reload - ldr.w r4, [r5, r4, lsl #2] - muls r0, r4, r0 - add.w r0, r0, #131072 - asrs r0, r0, #18 - cmp r1, #3 - bne .LBB6_9 -.LBB6_14: @ %if.end167 +.LBB6_13: @ %if.end167 ldrd r4, r1, [r11, #8] cbz r3, .LBB6_18 -@ %bb.15: @ %land.lhs.true169 - cbz r2, .LBB6_20 -@ %bb.16: @ %lor.lhs.false - ldrd r3, r6, [sp, #4] @ 8-byte Folded Reload - subs r2, r3, r6 +@ %bb.14: @ %land.lhs.true169 + cbz r2, .LBB6_16 +@ %bb.15: @ %lor.lhs.false + ldr r3, [sp, #4] @ 4-byte Reload + subs r2, r3, r5 it mi rsbmi r2, r2, #0 subs r3, r0, r3 it mi rsbmi r3, r3, #0 cmp r3, r2 - bgt .LBB6_19 -@ %bb.17: + bhi .LBB6_19 +.LBB6_16: movs r2, #1 - mov r0, r6 - b .LBB6_22 + mov r0, r5 + b .LBB6_21 +.LBB6_17: + movs r0, #0 + add sp, #12 + pop.w {r4, r5, r6, r7, r8, r9, r10, r11, pc} .LBB6_18: @ %if.else - cbz r2, .LBB6_21 + cbz r2, .LBB6_20 .LBB6_19: @ %if.then178 movs r2, #0 - b .LBB6_22 + b .LBB6_21 .LBB6_20: - movs r2, #1 - ldr r0, [sp, #8] @ 4-byte Reload - b .LBB6_22 -.LBB6_21: movs r0, #0 movs r2, #1 -.LBB6_22: @ %if.end181 - str r7, [r4] +.LBB6_21: @ %if.end181 + ldr r3, [sp, #8] @ 4-byte Reload str r2, [r1] + str r3, [r4] add sp, #12 pop.w {r4, r5, r6, r7, r8, r9, r10, r11, pc} @ -- End function @@ -20479,7 +20475,7 @@ .LBB8_5: ldr r6, [sp, #36] @ 4-byte Reload b .LBB8_11 -.LBB8_6: @ %if.then.i44 +.LBB8_6: @ %if.then.i43 adds r3, #9 str.w r10, [sp, #16] @ 4-byte Spill cmp r1, r3 @@ -20506,7 +20502,7 @@ .LBB8_7: mov r4, r0 b .LBB8_10 -.LBB8_8: @ %if.then36.i59 +.LBB8_8: @ %if.then36.i58 subs r3, r3, r4 cmp r1, r3 it ls @@ -20519,7 +20515,7 @@ @APP rev r4, r4 @NO_APP -.LBB8_9: @ %get_vlc2.exit66 +.LBB8_9: @ %get_vlc2.exit65 lsl.w r7, r4, r7 adds r0, #32 lsr.w r0, r7, r0 @@ -20527,11 +20523,11 @@ ldrsh.w r2, [r6, r0, lsl #2] add.w r0, r6, r0, lsl #2 ldrsh.w r4, [r0, #2] -.LBB8_10: @ %get_vlc2.exit66 +.LBB8_10: @ %get_vlc2.exit65 mov r7, r10 ldr r6, [sp, #36] @ 4-byte Reload ldr.w r10, [sp, #16] @ 4-byte Reload -.LBB8_11: @ %get_vlc2.exit66 +.LBB8_11: @ %get_vlc2.exit65 add r3, r4 cmp r1, r3 it ls @@ -20902,7 +20898,7 @@ .LBB8_65: @ %cond.end214 add r1, r0 cmp r1, #2 - blt.w .LBB8_115 + blo.w .LBB8_115 @ %bb.66: @ %if.end221 mov r12, r5 ldr r4, [sp, #44] @ 4-byte Reload @@ -20927,7 +20923,7 @@ .LBB8_72: @ %cond.end402 add r0, r1 cmp r0, #2 - blt.w .LBB8_115 + blo.w .LBB8_115 @ %bb.73: @ %if.end409 cmp.w r10, #0 beq.w .LBB8_98 @@ -20948,7 +20944,7 @@ .LBB8_79: @ %cond.end474 add r0, r1 cmp r0, #2 - blt.w .LBB8_115 + blo.w .LBB8_115 @ %bb.80: @ %if.end481 cmp.w r10, #0 beq.w .LBB8_112 @@ -21683,11 +21679,12 @@ movw r1, #5964 add.w r10, r4, r1 cmp r7, #0 - mov r9, r7 str r4, [sp, #48] @ 4-byte Spill + str r7, [sp, #36] @ 4-byte Spill bpl .LBB9_2 @ %bb.1: @ %entry - rsb.w r9, r7, #0 + rsbs r0, r7, #0 + str r0, [sp, #36] @ 4-byte Spill .LBB9_2: @ %entry adds.w r12, lr, #1 beq .LBB9_6 @@ -21866,7 +21863,8 @@ ldr.w r7, [r11, #20] add r2, r3 str r2, [sp, #44] @ 4-byte Spill - lsl.w r2, r9, #1 + ldr r2, [sp, #36] @ 4-byte Reload + lsls r2, r2, #1 add r1, r2 str r1, [sp, #40] @ 4-byte Spill .LCPI9_0: @@ -21883,14 +21881,11 @@ .short (.LBB9_50-(.LCPI9_0+4))/2 .p2align 1 .LBB9_24: @ %sw.bb - mov r0, r9 - mov.w r9, #0 - str r0, [sp, #36] @ 4-byte Spill - rsbs r0, r0, #0 - strd r4, r8, [sp, #20] @ 8-byte Folded Spill + movs r5, #0 + strd r8, r4, [sp, #24] @ 8-byte Folded Spill add.w r8, sp, #64 - str.w r9, [sp, #64] - str r0, [sp, #32] @ 4-byte Spill + movw r9, #12304 + str r5, [sp, #64] add r7, sp, #60 add r4, sp, #56 b .LBB9_26 @@ -21913,7 +21908,7 @@ @ %bb.27: @ %if.end81 @ in Loop: Header=BB9_26 Depth=1 ldr r0, [sp, #60] - add r0, r9 + add r0, r5 cmp r0, #63 bgt.w .LBB9_65 @ %bb.28: @ %if.end86 @@ -21921,45 +21916,40 @@ ldr r3, [sp, #44] @ 4-byte Reload movw r6, #8698 ldr r2, [sp, #48] @ 4-byte Reload - movw r5, #12304 ldr r1, [sp, #56] - add.w r9, r0, #1 ldr r3, [r3] add r2, r0 - add r6, r2 - add r5, r2 + adds r5, r2, r6 + add.w r6, r2, r9 cmp r3, #0 it eq - moveq r5, r6 + moveq r6, r5 ldr r2, [sp, #40] @ 4-byte Reload + adds r5, r0, #1 ldrb.w r3, [r10, #3085] mul r2, r1, r2 - ldrb r1, [r5] + ldrb r1, [r6] cmp r3, #0 ldr r6, [sp, #52] @ 4-byte Reload strh.w r2, [r6, r1, lsl #1] bne .LBB9_25 @ %bb.29: @ %if.then100 @ in Loop: Header=BB9_26 Depth=1 - lsls r3, r2, #16 - ldrd r3, r6, [sp, #32] @ 8-byte Folded Reload - it pl - movpl r3, r6 - add r2, r3 + ldr r3, [sp, #36] @ 4-byte Reload + subs r2, r2, r3 ldr r3, [sp, #52] @ 4-byte Reload strh.w r2, [r3, r1, lsl #1] b .LBB9_25 .LBB9_30: @ %sw.bb221 - ands r1, r6, #2 - rsb.w r0, r9, #0 - str r1, [sp, #64] - str r0, [sp, #36] @ 4-byte Spill - strd r4, r8, [sp, #20] @ 8-byte Folded Spill + ands r9, r6, #2 + str r4, [sp, #28] @ 4-byte Spill + str.w r9, [sp, #64] bne.w .LBB9_77 @ %bb.31: @ %while.body240.preheader - strd r6, r1, [sp, #28] @ 8-byte Folded Spill + str r6, [sp, #32] @ 4-byte Spill + mov r6, r8 + str.w r9, [sp, #24] @ 4-byte Spill add r7, sp, #60 - mov r6, r9 movw r0, :lower16:.refptr.ff_vc1_adv_interlaced_8x4_zz movt r0, :upper16:.refptr.ff_vc1_adv_interlaced_8x4_zz movs r5, #0 @@ -22016,27 +22006,23 @@ bne .LBB9_32 @ %bb.39: @ %if.then271 @ in Loop: Header=BB9_33 Depth=1 - lsls r2, r1, #16 ldr r2, [sp, #36] @ 4-byte Reload - it pl - movpl r2, r6 - add r1, r2 + subs r1, r1, r2 ldr r2, [sp, #52] @ 4-byte Reload strh.w r1, [r2, r0, lsl #1] b .LBB9_32 .LBB9_40: @ %sw.bb316 - ands r1, r6, #2 - rsb.w r0, r9, #0 - str r1, [sp, #64] - str r0, [sp, #36] @ 4-byte Spill - strd r4, r8, [sp, #20] @ 8-byte Folded Spill - bne.w .LBB9_93 + ands r0, r6, #2 + str r4, [sp, #28] @ 4-byte Spill + str r0, [sp, #64] + bne.w .LBB9_94 @ %bb.41: @ %while.body331.preheader - strd r6, r1, [sp, #28] @ 8-byte Folded Spill - add r7, sp, #60 - mov r6, r9 + str r0, [sp, #24] @ 4-byte Spill movw r0, :lower16:.refptr.ff_vc1_adv_interlaced_4x8_zz movt r0, :upper16:.refptr.ff_vc1_adv_interlaced_4x8_zz + str r6, [sp, #32] @ 4-byte Spill + mov r6, r8 + add r7, sp, #60 movs r5, #0 add.w r8, sp, #64 add r4, sp, #56 @@ -22091,33 +22077,27 @@ bne .LBB9_42 @ %bb.49: @ %if.then362 @ in Loop: Header=BB9_43 Depth=1 - lsls r2, r1, #16 ldr r2, [sp, #36] @ 4-byte Reload - it pl - movpl r2, r6 - add r1, r2 + subs r1, r1, r2 ldr r2, [sp, #52] @ 4-byte Reload strh.w r1, [r2, r0, lsl #1] b .LBB9_42 .LBB9_50: @ %sw.bb124 movs r0, #15 - str.w r9, [sp, #36] @ 4-byte Spill - bics r0, r6 movs r1, #1 - str r0, [sp, #4] @ 4-byte Spill - lsl.w r0, r7, #1 + bics r0, r6 + strd r8, r4, [sp, #24] @ 8-byte Folded Spill str r0, [sp, #8] @ 4-byte Spill - rsb.w r0, r9, #0 - str r0, [sp, #32] @ 4-byte Spill + lsl.w r0, r7, #1 + str r0, [sp, #12] @ 4-byte Spill movw r0, :lower16:.refptr.ff_vc1_adv_interlaced_4x4_zz movt r0, :upper16:.refptr.ff_vc1_adv_interlaced_4x4_zz - ldr r7, [r0] + ldr.w r9, [r0] movw r0, :lower16:.refptr.ff_vc1_simple_progressive_4x4_zz movt r0, :upper16:.refptr.ff_vc1_simple_progressive_4x4_zz ldr r5, [r0] - mov.w r9, #0 - strd r4, r8, [sp, #20] @ 8-byte Folded Spill - str r6, [sp, #28] @ 4-byte Spill + movs r7, #0 + str r6, [sp, #32] @ 4-byte Spill b .LBB9_53 .LBB9_51: @ %while.end189 @ in Loop: Header=BB9_53 Depth=1 @@ -22126,14 +22106,14 @@ beq .LBB9_60 .LBB9_52: @ %for.inc @ in Loop: Header=BB9_53 Depth=1 - ldr r6, [sp, #28] @ 4-byte Reload - add.w r9, r9, #1 - cmp.w r9, #4 + ldr r6, [sp, #32] @ 4-byte Reload + adds r7, #1 + cmp r7, #4 beq.w .LBB9_73 .LBB9_53: @ %for.body @ =>This Loop Header: Depth=1 @ Child Loop BB9_56 Depth 2 - rsb.w r0, r9, #3 + rsb.w r0, r7, #3 lsl.w r0, r1, r0 ands.w r8, r0, r6 str.w r8, [sp, #64] @@ -22142,10 +22122,10 @@ @ in Loop: Header=BB9_53 Depth=1 movs r0, #4 movs r6, #0 - and.w r1, r0, r9, lsl #2 - and r0, r9, #2 + and.w r1, r0, r7, lsl #2 + and r0, r7, #2 orr.w r4, r1, r0, lsl #4 - strd r1, r0, [sp, #12] @ 8-byte Folded Spill + strd r1, r0, [sp, #16] @ 8-byte Folded Spill b .LBB9_56 .LBB9_55: @ %cleanup186 @ in Loop: Header=BB9_56 Depth=2 @@ -22178,7 +22158,7 @@ ldr r1, [r1] muls r0, r2, r0 cmp r1, #0 - mov r1, r7 + mov r1, r9 it eq moveq r1, r5 ldrb r1, [r1, r6] @@ -22191,11 +22171,8 @@ bne .LBB9_55 @ %bb.59: @ %if.then169 @ in Loop: Header=BB9_56 Depth=2 - lsls r2, r0, #16 - ldrd r2, r3, [sp, #32] @ 8-byte Folded Reload - it pl - movpl r2, r3 - add r0, r2 + ldr r2, [sp, #36] @ 4-byte Reload + subs r0, r0, r2 ldr r2, [sp, #52] @ 4-byte Reload strh.w r0, [r2, r1, lsl #1] b .LBB9_55 @@ -22206,18 +22183,18 @@ bne .LBB9_62 @ %bb.61: @ %if.then199 @ in Loop: Header=BB9_53 Depth=1 - ldr r1, [sp, #12] @ 4-byte Reload - ldr r2, [sp, #16] @ 4-byte Reload + ldr r1, [sp, #16] @ 4-byte Reload + ldr r2, [sp, #20] @ 4-byte Reload add r0, r1 - ldr r1, [sp, #8] @ 4-byte Reload + ldr r1, [sp, #12] @ 4-byte Reload ldr.w r3, [r10, #2224] b .LBB9_63 .LBB9_62: @ %if.else208 @ in Loop: Header=BB9_53 Depth=1 - ldr r1, [sp, #12] @ 4-byte Reload - ldr r2, [sp, #16] @ 4-byte Reload + ldr r1, [sp, #16] @ 4-byte Reload + ldr r2, [sp, #20] @ 4-byte Reload add r0, r1 - ldr r1, [sp, #8] @ 4-byte Reload + ldr r1, [sp, #12] @ 4-byte Reload ldr.w r3, [r10, #2208] .LBB9_63: @ %for.inc @ in Loop: Header=BB9_53 Depth=1 @@ -22242,14 +22219,15 @@ .LBB9_66: @ %sw.epilog blx r3 movs r0, #15 - b .LBB9_111 + b .LBB9_91 .LBB9_67: @ %while.end289 - ldr r1, [sp, #32] @ 4-byte Reload - mov r9, r6 - ldrd r4, r8, [sp, #20] @ 8-byte Folded Reload + ldr.w r9, [sp, #24] @ 4-byte Reload + mov r8, r6 + ldr r4, [sp, #28] @ 4-byte Reload ldr.w r7, [r11, #20] - ldr r6, [sp, #28] @ 4-byte Reload - cbnz r1, .LBB9_77 + cmp.w r9, #0 + ldr r6, [sp, #32] @ 4-byte Reload + bne .LBB9_77 @ %bb.68: @ %if.then296 cmp r5, #1 bne .LBB9_75 @@ -22257,22 +22235,22 @@ ldr.w r3, [r10, #2216] b .LBB9_76 .LBB9_70: @ %while.end380 - ldr r0, [sp, #32] @ 4-byte Reload - mov r9, r6 - ldrd r4, r8, [sp, #20] @ 8-byte Folded Reload - cmp r0, #0 + ldr r0, [sp, #24] @ 4-byte Reload + mov r8, r6 + ldr r4, [sp, #28] @ 4-byte Reload ldr.w r1, [r11, #20] - ldr r6, [sp, #28] @ 4-byte Reload - bne .LBB9_93 + cmp r0, #0 + ldr r6, [sp, #32] @ 4-byte Reload + bne .LBB9_94 @ %bb.71: @ %if.then387 cmp r5, #1 - bne .LBB9_91 + bne .LBB9_92 @ %bb.72: @ %if.then390 ldr.w r3, [r10, #2220] - b .LBB9_92 + b .LBB9_93 .LBB9_73: - ldr r0, [sp, #4] @ 4-byte Reload - b .LBB9_111 + ldr r0, [sp, #8] @ 4-byte Reload + b .LBB9_91 .LBB9_74: @ %if.then119 ldr.w r3, [r10, #2212] ldrd r0, r1, [r11, #16] @@ -22285,24 +22263,23 @@ mov r1, r7 ldr r2, [sp, #52] @ 4-byte Reload blx r3 - ldr r1, [sp, #32] @ 4-byte Reload .LBB9_77: @ %for.inc313 - ands r2, r6, #1 - add.w r0, r1, r1, lsl #1 - add.w r1, r2, r2, lsl #1 - str r2, [sp, #64] + ands r6, r6, #1 + add.w r0, r9, r9, lsl #1 + add.w r1, r6, r6, lsl #1 + str r6, [sp, #64] add.w r0, r1, r0, lsl #1 eor r0, r0, #15 bne.w .LBB9_112 @ %bb.78: @ %while.body240.1.preheader - strd r0, r2, [sp, #28] @ 8-byte Folded Spill + str r0, [sp, #32] @ 4-byte Spill lsls r0, r7, #2 - mov r6, r9 - mov.w r9, #0 - str r0, [sp, #16] @ 4-byte Spill + str r0, [sp, #20] @ 4-byte Spill movw r0, :lower16:.refptr.ff_vc1_adv_interlaced_8x4_zz movt r0, :upper16:.refptr.ff_vc1_adv_interlaced_8x4_zz ldr r5, [r0] + mov.w r9, #0 + str.w r8, [sp, #24] @ 4-byte Spill add r7, sp, #60 add.w r8, sp, #64 add r4, sp, #56 @@ -22356,59 +22333,57 @@ bne .LBB9_79 @ %bb.86: @ %if.then271.1 @ in Loop: Header=BB9_80 Depth=1 - lsls r2, r0, #16 ldr r2, [sp, #36] @ 4-byte Reload - it pl - movpl r2, r6 - add r0, r2 + subs r0, r0, r2 ldr r2, [sp, #52] @ 4-byte Reload strh.w r0, [r2, r1, lsl #1] b .LBB9_79 .LBB9_87: @ %while.end289.1 - ldr r0, [sp, #32] @ 4-byte Reload - cbnz r0, .LBB9_90 + cbnz r6, .LBB9_90 @ %bb.88: @ %if.then296.1 - ldrd r4, r8, [sp, #20] @ 8-byte Folded Reload + ldrd r8, r4, [sp, #24] @ 8-byte Folded Reload cmp.w r9, #1 ldr.w r7, [r11, #20] - ldr r5, [sp, #28] @ 4-byte Reload - ldr r1, [sp, #16] @ 4-byte Reload - bne .LBB9_106 + ldr r5, [sp, #32] @ 4-byte Reload + ldr r1, [sp, #20] @ 4-byte Reload + bne .LBB9_107 @ %bb.89: @ %if.then299.1 ldr.w r3, [r10, #2216] - b .LBB9_107 + b .LBB9_108 .LBB9_90: - ldr r0, [sp, #28] @ 4-byte Reload - b .LBB9_111 -.LBB9_91: @ %if.else395 + ldr r0, [sp, #32] @ 4-byte Reload +.LBB9_91: @ %sw.epilog + ldrd r8, r4, [sp, #24] @ 8-byte Folded Reload + b .LBB9_112 +.LBB9_92: @ %if.else395 ldr.w r3, [r10, #2204] -.LBB9_92: @ %for.inc402 +.LBB9_93: @ %for.inc402 ldr.w r0, [r11, #16] ldr r2, [sp, #52] @ 4-byte Reload blx r3 -.LBB9_93: @ %for.inc402 +.LBB9_94: @ %for.inc402 add.w r0, r6, r6, lsl #2 movs r1, #15 + ands r6, r6, #1 bic.w r0, r1, r0 - ands r1, r6, #1 - str r1, [sp, #64] + str r6, [sp, #64] bne .LBB9_112 -@ %bb.94: @ %while.body331.1.preheader - strd r1, r0, [sp, #28] @ 8-byte Folded Spill +@ %bb.95: @ %while.body331.1.preheader + str r0, [sp, #32] @ 4-byte Spill movw r0, :lower16:.refptr.ff_vc1_adv_interlaced_4x8_zz movt r0, :upper16:.refptr.ff_vc1_adv_interlaced_4x8_zz - mov r6, r9 + ldr.w r9, [r0] + movs r5, #0 + str.w r8, [sp, #24] @ 4-byte Spill add r7, sp, #60 - ldr r5, [r0] - mov.w r9, #0 add.w r8, sp, #64 add r4, sp, #56 - b .LBB9_96 -.LBB9_95: @ %while.cond328thread-pre-split.1 - @ in Loop: Header=BB9_96 Depth=1 + b .LBB9_97 +.LBB9_96: @ %while.cond328thread-pre-split.1 + @ in Loop: Header=BB9_97 Depth=1 ldr r0, [sp, #64] - cbnz r0, .LBB9_103 -.LBB9_96: @ %while.body331.1 + cbnz r0, .LBB9_104 +.LBB9_97: @ %while.body331.1 @ =>This Inner Loop Header: Depth=1 ldr.w r0, [r10, #3040] mov r1, r8 @@ -22419,29 +22394,29 @@ bl vc1_decode_ac_coeff cmp r0, #0 bmi .LBB9_114 -@ %bb.97: @ %if.end338.1 - @ in Loop: Header=BB9_96 Depth=1 +@ %bb.98: @ %if.end338.1 + @ in Loop: Header=BB9_97 Depth=1 ldr r0, [sp, #60] - add r9, r0 - cmp.w r9, #31 - bgt .LBB9_103 -@ %bb.98: @ %if.end343.1 - @ in Loop: Header=BB9_96 Depth=1 + add r5, r0 + cmp r5, #31 + bgt .LBB9_104 +@ %bb.99: @ %if.end343.1 + @ in Loop: Header=BB9_97 Depth=1 ldr r0, [sp, #44] @ 4-byte Reload ldr r0, [r0] - cbz r0, .LBB9_100 -@ %bb.99: @ %if.else351.1 - @ in Loop: Header=BB9_96 Depth=1 - add.w r0, r5, r9 - b .LBB9_101 -.LBB9_100: @ %if.then346.1 - @ in Loop: Header=BB9_96 Depth=1 + cbz r0, .LBB9_101 +@ %bb.100: @ %if.else351.1 + @ in Loop: Header=BB9_97 Depth=1 + add.w r0, r9, r5 + b .LBB9_102 +.LBB9_101: @ %if.then346.1 + @ in Loop: Header=BB9_97 Depth=1 ldr.w r0, [r10, #3004] - add r0, r9 -.LBB9_101: @ %if.end356.1 - @ in Loop: Header=BB9_96 Depth=1 + add r0, r5 +.LBB9_102: @ %if.end356.1 + @ in Loop: Header=BB9_97 Depth=1 ldr r1, [sp, #56] - add.w r9, r9, #1 + adds r5, #1 ldrb r2, [r0] ldr r0, [sp, #40] @ 4-byte Reload ldrb.w r3, [r10, #3085] @@ -22450,30 +22425,27 @@ ldr r2, [sp, #52] @ 4-byte Reload cmp r3, #0 strh.w r0, [r2, r1, lsl #1] - bne .LBB9_95 -@ %bb.102: @ %if.then362.1 - @ in Loop: Header=BB9_96 Depth=1 - lsls r2, r0, #16 + bne .LBB9_96 +@ %bb.103: @ %if.then362.1 + @ in Loop: Header=BB9_97 Depth=1 ldr r2, [sp, #36] @ 4-byte Reload - it pl - movpl r2, r6 - add r0, r2 + subs r0, r0, r2 ldr r2, [sp, #52] @ 4-byte Reload strh.w r0, [r2, r1, lsl #1] - b .LBB9_95 -.LBB9_103: @ %while.end380.1 - ldr r0, [sp, #28] @ 4-byte Reload + b .LBB9_96 +.LBB9_104: @ %while.end380.1 + ldrd r8, r4, [sp, #24] @ 8-byte Folded Reload ldr.w r7, [r11, #20] - cbnz r0, .LBB9_110 -@ %bb.104: @ %if.then387.1 - cmp.w r9, #1 - bne .LBB9_108 -@ %bb.105: @ %if.then390.1 + cbnz r6, .LBB9_111 +@ %bb.105: @ %if.then387.1 + cmp r5, #1 + bne .LBB9_109 +@ %bb.106: @ %if.then390.1 ldr.w r3, [r10, #2220] - b .LBB9_109 -.LBB9_106: @ %if.else305.1 + b .LBB9_110 +.LBB9_107: @ %if.else305.1 ldr.w r3, [r10, #2200] -.LBB9_107: @ %sw.epilog +.LBB9_108: @ %sw.epilog ldr.w r0, [r11, #16] add r0, r1 ldr r1, [sp, #52] @ 4-byte Reload @@ -22482,19 +22454,17 @@ blx r3 mov r0, r5 b .LBB9_112 -.LBB9_108: @ %if.else395.1 +.LBB9_109: @ %if.else395.1 ldr.w r3, [r10, #2204] -.LBB9_109: @ %sw.epilog +.LBB9_110: @ %sw.epilog ldr.w r0, [r11, #16] ldr r1, [sp, #52] @ 4-byte Reload adds r0, #4 add.w r2, r1, #8 mov r1, r7 blx r3 -.LBB9_110: - ldr r0, [sp, #32] @ 4-byte Reload .LBB9_111: @ %sw.epilog - ldrd r4, r8, [sp, #20] @ 8-byte Folded Reload + ldr r0, [sp, #32] @ 4-byte Reload .LBB9_112: @ %sw.epilog ldr.w r1, [r11, #24] cbz r1, .LBB9_114