1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 2# RUN: llc -mtriple=hexagon -enable-subreg-liveness -start-after machine-scheduler -stop-after stack-slot-coloring -o - %s | FileCheck %s 3 4--- | 5 target triple = "hexagon" 6 7 define void @main() #0 { 8 entry: 9 br label %for.body 10 11 for.body: ; preds = %if.end82, %entry 12 %lsr.iv = phi i32 [ %lsr.iv.next, %if.end82 ], [ 524288, %entry ] 13 %call9 = tail call i32 @lrand48() #0 14 %conv10 = sext i32 %call9 to i64 15 %shr11 = lshr i64 %conv10, 9 16 %or12 = or i64 0, %shr11 17 %call14 = tail call i32 @lrand48() #0 18 %conv15138 = zext i32 %call14 to i64 19 %shr16 = lshr i64 %conv15138, 9 20 %0 = call i64 @llvm.hexagon.S2.extractup(i64 %conv15138, i32 22, i32 9) 21 %1 = shl i64 %0, 42 22 %shl17 = shl i64 %shr16, 42 23 %or22 = or i64 0, %1 24 %or26 = or i64 %or22, 0 25 %shr30 = lshr i64 undef, 25 26 %2 = call i64 @llvm.hexagon.S2.extractup(i64 undef, i32 6, i32 25) 27 %and = and i64 %shr30, 63 28 %sub = shl i64 2, %2 29 %add = add i64 %sub, -1 30 %shl37 = shl i64 %add, 0 31 %call38 = tail call i32 @lrand48() #0 32 %conv39141 = zext i32 %call38 to i64 33 %shr40 = lshr i64 %conv39141, 25 34 %3 = call i64 @llvm.hexagon.S2.extractup(i64 %conv39141, i32 6, i32 25) 35 %and41 = and i64 %shr40, 63 36 %sub43 = shl i64 2, %3 37 %add45 = add i64 %sub43, -1 38 %call46 = tail call i32 @lrand48() #0 39 %shr48 = lshr i64 undef, 25 40 %4 = call i64 @llvm.hexagon.S2.extractup(i64 undef, i32 6, i32 25) 41 %and49 = and i64 %shr48, 63 42 %shl50 = shl i64 %add45, %4 43 %and52 = and i64 %shl37, %or12 44 %and54 = and i64 %shl50, %or26 45 store i64 %and54, ptr undef, align 8 46 %cmp56 = icmp eq i64 %and52, 0 47 br i1 %cmp56, label %for.end, label %if.end82 48 49 if.end82: ; preds = %for.body 50 %lsr.iv.next = add nsw i32 %lsr.iv, -1 51 %exitcond = icmp eq i32 %lsr.iv.next, 0 52 br i1 %exitcond, label %for.end, label %for.body 53 54 for.end: ; preds = %if.end82, %for.body 55 unreachable 56 } 57 58 declare i32 @lrand48() #0 59 declare i64 @llvm.hexagon.S2.extractup(i64, i32, i32) #1 60 61 attributes #0 = { nounwind optsize "target-cpu"="hexagonv55" "target-features"="-hvx" } 62 attributes #1 = { nounwind readnone } 63 64... 65--- 66name: main 67alignment: 4 68tracksRegLiveness: true 69registers: 70 - { id: 0, class: intregs } 71 - { id: 1, class: intregs } 72 - { id: 2, class: intregs } 73 - { id: 3, class: intregs } 74 - { id: 4, class: doubleregs } 75 - { id: 5, class: intregs } 76 - { id: 6, class: doubleregs } 77 - { id: 7, class: doubleregs } 78 - { id: 8, class: doubleregs } 79 - { id: 9, class: doubleregs } 80 - { id: 10, class: intregs } 81 - { id: 11, class: doubleregs } 82 - { id: 12, class: doubleregs } 83 - { id: 13, class: doubleregs } 84 - { id: 14, class: intregs } 85 - { id: 15, class: doubleregs } 86 - { id: 16, class: doubleregs } 87 - { id: 17, class: intregs } 88 - { id: 18, class: doubleregs } 89 - { id: 19, class: intregs } 90 - { id: 20, class: doubleregs } 91 - { id: 21, class: doubleregs } 92 - { id: 22, class: doubleregs } 93 - { id: 23, class: intregs } 94 - { id: 24, class: doubleregs } 95 - { id: 25, class: predregs } 96 - { id: 26, class: predregs } 97 - { id: 27, class: intregs } 98 - { id: 28, class: intregs } 99 - { id: 29, class: doubleregs } 100 - { id: 30, class: intregs } 101 - { id: 31, class: intregs } 102 - { id: 32, class: doubleregs } 103 - { id: 33, class: intregs } 104 - { id: 34, class: intregs } 105 - { id: 35, class: doubleregs } 106 - { id: 36, class: doubleregs } 107 - { id: 37, class: intregs } 108 - { id: 38, class: intregs } 109 - { id: 39, class: doubleregs } 110 - { id: 40, class: doubleregs } 111 - { id: 41, class: intregs } 112 - { id: 42, class: intregs } 113 - { id: 43, class: doubleregs } 114 - { id: 44, class: intregs } 115 - { id: 45, class: intregs } 116 - { id: 46, class: doubleregs } 117 - { id: 47, class: doubleregs } 118 - { id: 48, class: doubleregs } 119 - { id: 49, class: doubleregs } 120 - { id: 50, class: doubleregs } 121 - { id: 51, class: doubleregs } 122 - { id: 52, class: intregs } 123 - { id: 53, class: intregs } 124 - { id: 54, class: intregs } 125 - { id: 55, class: doubleregs } 126 - { id: 56, class: doubleregs } 127 - { id: 57, class: intregs } 128 - { id: 58, class: intregs } 129 - { id: 59, class: intregs } 130frameInfo: 131 isFrameAddressTaken: false 132 isReturnAddressTaken: false 133 hasStackMap: false 134 hasPatchPoint: false 135 stackSize: 0 136 offsetAdjustment: 0 137 maxAlignment: 0 138 adjustsStack: true 139 hasCalls: true 140 maxCallFrameSize: 0 141 hasOpaqueSPAdjustment: false 142 hasVAStart: false 143 hasMustTailInVarArgFunc: false 144body: | 145 ; CHECK-LABEL: name: main 146 ; CHECK: bb.0.entry: 147 ; CHECK-NEXT: successors: %bb.1(0x80000000) 148 ; CHECK-NEXT: {{ $}} 149 ; CHECK-NEXT: renamable $r20 = A2_tfrsi 524288 150 ; CHECK-NEXT: renamable $r17 = A2_tfrsi 0 151 ; CHECK-NEXT: renamable $d2 = S2_extractup undef renamable $d0, 6, 25 152 ; CHECK-NEXT: renamable $d0 = A2_tfrpi 2 153 ; CHECK-NEXT: renamable $d13 = A2_tfrpi -1 154 ; CHECK-NEXT: renamable $d13 = S2_asl_r_p_acc killed renamable $d13, killed renamable $d0, renamable $r4 155 ; CHECK-NEXT: S2_storerd_io %stack.0, 0, renamable $d2 :: (store (s64) into %stack.0) 156 ; CHECK-NEXT: {{ $}} 157 ; CHECK-NEXT: bb.1.for.body: 158 ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.2(0x40000000) 159 ; CHECK-NEXT: liveins: $d8:0x0000000000000001, $d13, $r20 160 ; CHECK-NEXT: {{ $}} 161 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29 162 ; CHECK-NEXT: J2_call @lrand48, implicit-def dead $d0, implicit-def dead $d1, implicit-def dead $d2, implicit-def dead $d3, implicit-def dead $d4, implicit-def dead $d5, implicit-def dead $d6, implicit-def dead $d7, implicit-def dead $r28, implicit-def dead $r31, implicit-def dead $p0, implicit-def dead $p1, implicit-def dead $p2, implicit-def dead $p3, implicit-def dead $m0, implicit-def dead $m1, implicit-def dead $lc0, implicit-def dead $lc1, implicit-def dead $sa0, implicit-def dead $sa1, implicit-def dead $usr, implicit-def $usr_ovf, implicit-def dead $cs0, implicit-def dead $cs1, implicit-def dead $w0, implicit-def dead $w1, implicit-def dead $w2, implicit-def dead $w3, implicit-def dead $w4, implicit-def dead $w5, implicit-def dead $w6, implicit-def dead $w7, implicit-def dead $w8, implicit-def dead $w9, implicit-def dead $w10, implicit-def dead $w11, implicit-def dead $w12, implicit-def dead $w13, implicit-def dead $w14, implicit-def dead $w15, implicit-def dead $q0, implicit-def dead $q1, implicit-def dead $q2, implicit-def dead $q3, implicit-def $r0 163 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29 164 ; CHECK-NEXT: renamable $r18 = COPY $r0 165 ; CHECK-NEXT: renamable $r19 = S2_asr_i_r renamable $r18, 31 166 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29 167 ; CHECK-NEXT: J2_call @lrand48, implicit-def dead $d0, implicit-def dead $d1, implicit-def dead $d2, implicit-def dead $d3, implicit-def dead $d4, implicit-def dead $d5, implicit-def dead $d6, implicit-def dead $d7, implicit-def dead $r28, implicit-def dead $r31, implicit-def dead $p0, implicit-def dead $p1, implicit-def dead $p2, implicit-def dead $p3, implicit-def dead $m0, implicit-def dead $m1, implicit-def dead $lc0, implicit-def dead $lc1, implicit-def dead $sa0, implicit-def dead $sa1, implicit-def dead $usr, implicit-def $usr_ovf, implicit-def dead $cs0, implicit-def dead $cs1, implicit-def dead $w0, implicit-def dead $w1, implicit-def dead $w2, implicit-def dead $w3, implicit-def dead $w4, implicit-def dead $w5, implicit-def dead $w6, implicit-def dead $w7, implicit-def dead $w8, implicit-def dead $w9, implicit-def dead $w10, implicit-def dead $w11, implicit-def dead $w12, implicit-def dead $w13, implicit-def dead $w14, implicit-def dead $w15, implicit-def dead $q0, implicit-def dead $q1, implicit-def dead $q2, implicit-def dead $q3, implicit-def $r0 168 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29 169 ; CHECK-NEXT: renamable $r16 = COPY $r0 170 ; CHECK-NEXT: renamable $d12 = S2_extractup renamable $d8, 22, 9 171 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29 172 ; CHECK-NEXT: J2_call @lrand48, implicit-def dead $d0, implicit-def dead $d1, implicit-def dead $d2, implicit-def dead $d3, implicit-def dead $d4, implicit-def dead $d5, implicit-def dead $d6, implicit-def dead $d7, implicit-def dead $r28, implicit-def dead $r31, implicit-def dead $p0, implicit-def dead $p1, implicit-def dead $p2, implicit-def dead $p3, implicit-def dead $m0, implicit-def dead $m1, implicit-def dead $lc0, implicit-def dead $lc1, implicit-def dead $sa0, implicit-def dead $sa1, implicit-def dead $usr, implicit-def $usr_ovf, implicit-def dead $cs0, implicit-def dead $cs1, implicit-def dead $w0, implicit-def dead $w1, implicit-def dead $w2, implicit-def dead $w3, implicit-def dead $w4, implicit-def dead $w5, implicit-def dead $w6, implicit-def dead $w7, implicit-def dead $w8, implicit-def dead $w9, implicit-def dead $w10, implicit-def dead $w11, implicit-def dead $w12, implicit-def dead $w13, implicit-def dead $w14, implicit-def dead $w15, implicit-def dead $q0, implicit-def dead $q1, implicit-def dead $q2, implicit-def dead $q3, implicit-def $r0 173 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29 174 ; CHECK-NEXT: renamable $r1 = COPY renamable $r17 175 ; CHECK-NEXT: renamable $d0 = S2_extractup killed renamable $d0, 6, 25 176 ; CHECK-NEXT: renamable $d11 = A2_tfrpi -1 177 ; CHECK-NEXT: renamable $d1 = A2_tfrpi 2 178 ; CHECK-NEXT: renamable $d11 = S2_asl_r_p_acc killed renamable $d11, killed renamable $d1, killed renamable $r0 179 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29 180 ; CHECK-NEXT: J2_call @lrand48, implicit-def dead $d0, implicit-def dead $d1, implicit-def dead $d2, implicit-def dead $d3, implicit-def dead $d4, implicit-def dead $d5, implicit-def dead $d6, implicit-def dead $d7, implicit-def dead $r28, implicit-def dead $r31, implicit-def dead $p0, implicit-def dead $p1, implicit-def dead $p2, implicit-def dead $p3, implicit-def dead $m0, implicit-def dead $m1, implicit-def dead $lc0, implicit-def dead $lc1, implicit-def dead $sa0, implicit-def dead $sa1, implicit-def dead $usr, implicit-def $usr_ovf, implicit-def dead $cs0, implicit-def dead $cs1, implicit-def dead $w0, implicit-def dead $w1, implicit-def dead $w2, implicit-def dead $w3, implicit-def dead $w4, implicit-def dead $w5, implicit-def dead $w6, implicit-def dead $w7, implicit-def dead $w8, implicit-def dead $w9, implicit-def dead $w10, implicit-def dead $w11, implicit-def dead $w12, implicit-def dead $w13, implicit-def dead $w14, implicit-def dead $w15, implicit-def dead $q0, implicit-def dead $q1, implicit-def dead $q2, implicit-def dead $q3 181 ; CHECK-NEXT: renamable $d2 = L2_loadrd_io %stack.0, 0 :: (load (s64) from %stack.0) 182 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29 183 ; CHECK-NEXT: renamable $d0 = S2_asl_r_p killed renamable $d11, killed renamable $r4 184 ; CHECK-NEXT: renamable $d1 = COPY renamable $d13 185 ; CHECK-NEXT: renamable $d1 = S2_lsr_i_p_and killed renamable $d1, killed renamable $d9, 9 186 ; CHECK-NEXT: renamable $d0 = S2_asl_i_p_and killed renamable $d0, killed renamable $d12, 42 187 ; CHECK-NEXT: S2_storerd_io undef renamable $r0, 0, killed renamable $d0 :: (store (s64) into `ptr undef`) 188 ; CHECK-NEXT: renamable $d0 = A2_tfrpi 0 189 ; CHECK-NEXT: renamable $p0 = C2_cmpeqp killed renamable $d1, killed renamable $d0 190 ; CHECK-NEXT: J2_jumpt killed renamable $p0, %bb.3, implicit-def dead $pc 191 ; CHECK-NEXT: J2_jump %bb.2, implicit-def dead $pc 192 ; CHECK-NEXT: {{ $}} 193 ; CHECK-NEXT: bb.2.if.end82: 194 ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.1(0x40000000) 195 ; CHECK-NEXT: liveins: $d8:0x0000000000000001, $d13, $r20 196 ; CHECK-NEXT: {{ $}} 197 ; CHECK-NEXT: renamable $r20 = A2_addi killed renamable $r20, -1 198 ; CHECK-NEXT: renamable $p0 = C2_cmpeqi renamable $r20, 0 199 ; CHECK-NEXT: J2_jumpf killed renamable $p0, %bb.1, implicit-def dead $pc 200 ; CHECK-NEXT: J2_jump %bb.3, implicit-def dead $pc 201 ; CHECK-NEXT: {{ $}} 202 ; CHECK-NEXT: bb.3.for.end: 203 bb.0.entry: 204 successors: %bb.1.for.body 205 206 %59 = A2_tfrsi 524288 207 undef %32.isub_hi = A2_tfrsi 0 208 %8 = S2_extractup undef %9, 6, 25 209 %47 = A2_tfrpi 2 210 %13 = A2_tfrpi -1 211 %13 = S2_asl_r_p_acc %13, %47, %8.isub_lo 212 %51 = A2_tfrpi 0 213 214 bb.1.for.body: 215 successors: %bb.3.for.end, %bb.2.if.end82 216 217 ADJCALLSTACKDOWN 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29 218 J2_call @lrand48, implicit-def dead $d0, implicit-def dead $d1, implicit-def dead $d2, implicit-def dead $d3, implicit-def dead $d4, implicit-def dead $d5, implicit-def dead $d6, implicit-def dead $d7, implicit-def dead $r28, implicit-def dead $r31, implicit-def dead $p0, implicit-def dead $p1, implicit-def dead $p2, implicit-def dead $p3, implicit-def dead $m0, implicit-def dead $m1, implicit-def dead $lc0, implicit-def dead $lc1, implicit-def dead $sa0, implicit-def dead $sa1, implicit-def dead $usr, implicit-def $usr_ovf, implicit-def dead $cs0, implicit-def dead $cs1, implicit-def dead $w0, implicit-def dead $w1, implicit-def dead $w2, implicit-def dead $w3, implicit-def dead $w4, implicit-def dead $w5, implicit-def dead $w6, implicit-def dead $w7, implicit-def dead $w8, implicit-def dead $w9, implicit-def dead $w10, implicit-def dead $w11, implicit-def dead $w12, implicit-def dead $w13, implicit-def dead $w14, implicit-def dead $w15, implicit-def dead $q0, implicit-def dead $q1, implicit-def dead $q2, implicit-def dead $q3, implicit-def $r0 219 ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29 220 undef %29.isub_lo = COPY killed $r0 221 %29.isub_hi = S2_asr_i_r %29.isub_lo, 31 222 ADJCALLSTACKDOWN 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29 223 J2_call @lrand48, implicit-def dead $d0, implicit-def dead $d1, implicit-def dead $d2, implicit-def dead $d3, implicit-def dead $d4, implicit-def dead $d5, implicit-def dead $d6, implicit-def dead $d7, implicit-def dead $r28, implicit-def dead $r31, implicit-def dead $p0, implicit-def dead $p1, implicit-def dead $p2, implicit-def dead $p3, implicit-def dead $m0, implicit-def dead $m1, implicit-def dead $lc0, implicit-def dead $lc1, implicit-def dead $sa0, implicit-def dead $sa1, implicit-def dead $usr, implicit-def $usr_ovf, implicit-def dead $cs0, implicit-def dead $cs1, implicit-def dead $w0, implicit-def dead $w1, implicit-def dead $w2, implicit-def dead $w3, implicit-def dead $w4, implicit-def dead $w5, implicit-def dead $w6, implicit-def dead $w7, implicit-def dead $w8, implicit-def dead $w9, implicit-def dead $w10, implicit-def dead $w11, implicit-def dead $w12, implicit-def dead $w13, implicit-def dead $w14, implicit-def dead $w15, implicit-def dead $q0, implicit-def dead $q1, implicit-def dead $q2, implicit-def dead $q3, implicit-def $r0 224 ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29 225 %32.isub_lo = COPY killed $r0 226 %7 = S2_extractup %32, 22, 9 227 ADJCALLSTACKDOWN 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29 228 J2_call @lrand48, implicit-def dead $d0, implicit-def dead $d1, implicit-def dead $d2, implicit-def dead $d3, implicit-def dead $d4, implicit-def dead $d5, implicit-def dead $d6, implicit-def dead $d7, implicit-def dead $r28, implicit-def dead $r31, implicit-def dead $p0, implicit-def dead $p1, implicit-def dead $p2, implicit-def dead $p3, implicit-def dead $m0, implicit-def dead $m1, implicit-def dead $lc0, implicit-def dead $lc1, implicit-def dead $sa0, implicit-def dead $sa1, implicit-def dead $usr, implicit-def $usr_ovf, implicit-def dead $cs0, implicit-def dead $cs1, implicit-def dead $w0, implicit-def dead $w1, implicit-def dead $w2, implicit-def dead $w3, implicit-def dead $w4, implicit-def dead $w5, implicit-def dead $w6, implicit-def dead $w7, implicit-def dead $w8, implicit-def dead $w9, implicit-def dead $w10, implicit-def dead $w11, implicit-def dead $w12, implicit-def dead $w13, implicit-def dead $w14, implicit-def dead $w15, implicit-def dead $q0, implicit-def dead $q1, implicit-def dead $q2, implicit-def dead $q3, implicit-def $r0 229 ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29 230 undef %43.isub_lo = COPY killed $r0 231 %43.isub_hi = COPY %32.isub_hi 232 %16 = S2_extractup %43, 6, 25 233 %18 = A2_tfrpi -1 234 %18 = S2_asl_r_p_acc %18, %47, %16.isub_lo 235 ADJCALLSTACKDOWN 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29 236 J2_call @lrand48, implicit-def dead $d0, implicit-def dead $d1, implicit-def dead $d2, implicit-def dead $d3, implicit-def dead $d4, implicit-def dead $d5, implicit-def dead $d6, implicit-def dead $d7, implicit-def dead $r28, implicit-def dead $r31, implicit-def dead $p0, implicit-def dead $p1, implicit-def dead $p2, implicit-def dead $p3, implicit-def dead $m0, implicit-def dead $m1, implicit-def dead $lc0, implicit-def dead $lc1, implicit-def dead $sa0, implicit-def dead $sa1, implicit-def dead $usr, implicit-def $usr_ovf, implicit-def dead $cs0, implicit-def dead $cs1, implicit-def dead $w0, implicit-def dead $w1, implicit-def dead $w2, implicit-def dead $w3, implicit-def dead $w4, implicit-def dead $w5, implicit-def dead $w6, implicit-def dead $w7, implicit-def dead $w8, implicit-def dead $w9, implicit-def dead $w10, implicit-def dead $w11, implicit-def dead $w12, implicit-def dead $w13, implicit-def dead $w14, implicit-def dead $w15, implicit-def dead $q0, implicit-def dead $q1, implicit-def dead $q2, implicit-def dead $q3 237 ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29 238 %22 = S2_asl_r_p %18, %8.isub_lo 239 %21 = COPY %13 240 %21 = S2_lsr_i_p_and %21, %29, 9 241 %22 = S2_asl_i_p_and %22, %7, 42 242 S2_storerd_io undef %23, 0, %22 :: (store (s64) into `ptr undef`) 243 %25 = C2_cmpeqp %21, %51 244 J2_jumpt %25, %bb.3.for.end, implicit-def dead $pc 245 J2_jump %bb.2.if.end82, implicit-def dead $pc 246 247 bb.2.if.end82: 248 successors: %bb.3.for.end, %bb.1.for.body 249 250 %59 = A2_addi %59, -1 251 %26 = C2_cmpeqi %59, 0 252 J2_jumpf %26, %bb.1.for.body, implicit-def dead $pc 253 J2_jump %bb.3.for.end, implicit-def dead $pc 254 255 bb.3.for.end: 256 257... 258