Home | History | Annotate | Download | only in SystemZ
      1 #RUN: llc -o - %s -mtriple=s390x-ibm-linux -run-pass=greedy
      2 #PR34502. Check HoistSpill works properly after the live range of spilled
      3 #virtual register is cleared.
      4 --- |
      5   ; ModuleID = 'hoistspills_crash.ll'
      6   source_filename = "bugpoint-output-07170c2.bc"
      7   target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
      8   target triple = "s390x-ibm-linux"
      9 
     10   @best8x8mode = external local_unnamed_addr global [4 x i16], align 2
     11   @best8x8fwref = external local_unnamed_addr global [15 x [4 x i16]], align 2
     12   @rec_mbY8x8 = external local_unnamed_addr global [16 x [16 x i16]], align 2
     13   @bi_pred_me = external local_unnamed_addr global i32, align 4
     14 
     15   declare signext i32 @Get_Direct_Cost8x8(i32 signext, i32*) local_unnamed_addr #0
     16   declare void @store_coding_state(i32*) local_unnamed_addr #0
     17   declare void @reset_coding_state(i32*) local_unnamed_addr #0
     18   declare void @SetRefAndMotionVectors(i32 signext, i32 signext, i32 signext, i32 signext, i32 signext) local_unnamed_addr #2
     19   declare signext i32 @Get_Direct_CostMB(double) local_unnamed_addr #0
     20   declare void @SetModesAndRefframeForBlocks(i32 signext) local_unnamed_addr #1
     21 
     22   define void @encode_one_macroblock() { ret void }
     23 ---
     24 name:            encode_one_macroblock
     25 alignment:       2
     26 tracksRegLiveness: true
     27 registers:       
     28   - { id: 0, class: addr64bit }
     29   - { id: 1, class: addr64bit }
     30   - { id: 2, class: grx32bit }
     31   - { id: 3, class: grx32bit }
     32   - { id: 4, class: gr32bit }
     33   - { id: 5, class: gr32bit }
     34   - { id: 6, class: addr64bit }
     35   - { id: 7, class: addr64bit }
     36   - { id: 8, class: gr64bit }
     37   - { id: 9, class: grx32bit }
     38   - { id: 10, class: gr32bit }
     39   - { id: 11, class: grx32bit }
     40   - { id: 12, class: gr32bit }
     41   - { id: 13, class: grx32bit }
     42   - { id: 14, class: gr32bit }
     43   - { id: 15, class: grx32bit }
     44   - { id: 16, class: grx32bit }
     45   - { id: 17, class: gr32bit }
     46   - { id: 18, class: gr32bit }
     47   - { id: 19, class: gr64bit }
     48   - { id: 20, class: grx32bit }
     49   - { id: 21, class: grx32bit }
     50   - { id: 22, class: addr64bit }
     51   - { id: 23, class: grx32bit }
     52   - { id: 24, class: grx32bit }
     53   - { id: 25, class: grx32bit }
     54   - { id: 26, class: grx32bit }
     55   - { id: 27, class: grx32bit }
     56   - { id: 28, class: grx32bit }
     57   - { id: 29, class: grx32bit }
     58   - { id: 30, class: grx32bit }
     59   - { id: 31, class: grx32bit }
     60   - { id: 32, class: grx32bit }
     61   - { id: 33, class: grx32bit }
     62   - { id: 34, class: grx32bit }
     63   - { id: 35, class: grx32bit }
     64   - { id: 36, class: grx32bit }
     65   - { id: 37, class: gr64bit }
     66   - { id: 38, class: gr32bit }
     67   - { id: 39, class: grx32bit }
     68   - { id: 40, class: addr64bit }
     69   - { id: 41, class: addr64bit }
     70   - { id: 42, class: gr64bit }
     71   - { id: 43, class: gr32bit }
     72   - { id: 44, class: gr32bit }
     73   - { id: 45, class: gr32bit }
     74   - { id: 46, class: gr32bit }
     75   - { id: 47, class: gr32bit }
     76   - { id: 48, class: grx32bit }
     77   - { id: 49, class: gr64bit }
     78   - { id: 50, class: gr64bit }
     79   - { id: 51, class: gr64bit }
     80   - { id: 52, class: gr32bit }
     81   - { id: 53, class: gr32bit }
     82   - { id: 54, class: grx32bit }
     83   - { id: 55, class: gr32bit }
     84   - { id: 56, class: grx32bit }
     85   - { id: 57, class: grx32bit }
     86   - { id: 58, class: gr64bit }
     87   - { id: 59, class: gr64bit }
     88   - { id: 60, class: gr32bit }
     89   - { id: 61, class: grx32bit }
     90   - { id: 62, class: addr64bit }
     91   - { id: 63, class: addr64bit }
     92   - { id: 64, class: addr64bit }
     93   - { id: 65, class: addr64bit }
     94   - { id: 66, class: addr64bit }
     95   - { id: 67, class: addr64bit }
     96   - { id: 68, class: addr64bit }
     97   - { id: 69, class: addr64bit }
     98   - { id: 70, class: addr64bit }
     99   - { id: 71, class: gr64bit }
    100   - { id: 72, class: addr64bit }
    101   - { id: 73, class: grx32bit }
    102   - { id: 74, class: gr64bit }
    103   - { id: 75, class: addr64bit }
    104   - { id: 76, class: addr64bit }
    105   - { id: 77, class: addr64bit }
    106   - { id: 78, class: addr64bit }
    107   - { id: 79, class: gr32bit }
    108   - { id: 80, class: grx32bit }
    109   - { id: 81, class: gr64bit }
    110   - { id: 82, class: addr64bit }
    111   - { id: 83, class: grx32bit }
    112   - { id: 84, class: addr64bit }
    113   - { id: 85, class: addr64bit }
    114   - { id: 86, class: addr64bit }
    115   - { id: 87, class: grx32bit }
    116   - { id: 88, class: addr64bit }
    117   - { id: 89, class: addr64bit }
    118   - { id: 90, class: gr64bit }
    119   - { id: 91, class: addr64bit }
    120   - { id: 92, class: addr64bit }
    121   - { id: 93, class: addr64bit }
    122   - { id: 94, class: addr64bit }
    123   - { id: 95, class: addr64bit }
    124   - { id: 96, class: addr64bit }
    125   - { id: 97, class: addr64bit }
    126   - { id: 98, class: gr64bit }
    127   - { id: 99, class: gr64bit }
    128   - { id: 100, class: addr64bit }
    129   - { id: 101, class: gr64bit }
    130   - { id: 102, class: gr64bit }
    131   - { id: 103, class: gr64bit }
    132   - { id: 104, class: gr64bit }
    133   - { id: 105, class: addr64bit }
    134   - { id: 106, class: grx32bit }
    135   - { id: 107, class: grx32bit }
    136   - { id: 108, class: vr64bit }
    137   - { id: 109, class: gr64bit }
    138   - { id: 110, class: gr64bit }
    139   - { id: 111, class: grx32bit }
    140   - { id: 112, class: grx32bit }
    141   - { id: 113, class: fp64bit }
    142   - { id: 114, class: grx32bit }
    143   - { id: 115, class: fp64bit }
    144   - { id: 116, class: fp64bit }
    145   - { id: 117, class: addr64bit }
    146   - { id: 118, class: grx32bit }
    147   - { id: 119, class: grx32bit }
    148   - { id: 120, class: addr64bit }
    149   - { id: 121, class: grx32bit }
    150   - { id: 122, class: grx32bit }
    151   - { id: 123, class: gr32bit }
    152   - { id: 124, class: gr32bit }
    153   - { id: 125, class: gr32bit }
    154   - { id: 126, class: gr32bit }
    155   - { id: 127, class: gr32bit }
    156   - { id: 128, class: grx32bit }
    157   - { id: 129, class: grx32bit }
    158   - { id: 130, class: fp64bit }
    159 frameInfo:       
    160   hasCalls:        true
    161 body:             |
    162   bb.0:
    163     successors: %bb.2(0x00000001), %bb.1(0x7fffffff)
    164   
    165     CHIMux undef %20, 3, implicit-def $cc
    166     BRC 14, 8, %bb.2, implicit killed $cc
    167     J %bb.1
    168   
    169   bb.1:
    170     successors: %bb.2(0x00000001), %bb.3(0x7fffffff)
    171   
    172     CHIMux undef %21, 0, implicit-def $cc
    173     BRC 14, 6, %bb.3, implicit killed $cc
    174     J %bb.2
    175   
    176   bb.2:
    177   
    178   bb.3:
    179     successors: %bb.6(0x00000001), %bb.4(0x7fffffff)
    180   
    181     CHIMux undef %23, 2, implicit-def $cc
    182     BRC 14, 8, %bb.6, implicit killed $cc
    183     J %bb.4
    184   
    185   bb.4:
    186     successors: %bb.5(0x00000001), %bb.7(0x7fffffff)
    187   
    188     CHIMux undef %24, 1, implicit-def $cc
    189     BRC 14, 6, %bb.7, implicit killed $cc
    190     J %bb.5
    191   
    192   bb.5:
    193   
    194   bb.6:
    195   
    196   bb.7:
    197     successors: %bb.47(0x00000001), %bb.8(0x7fffffff)
    198   
    199     CHIMux undef %25, 1, implicit-def $cc
    200     BRC 14, 8, %bb.47, implicit killed $cc
    201     J %bb.8
    202   
    203   bb.8:
    204     successors: %bb.46(0x00000001), %bb.48(0x7fffffff)
    205   
    206     CHIMux undef %26, 2, implicit-def $cc
    207     BRC 14, 8, %bb.46, implicit killed $cc
    208     J %bb.48
    209   
    210   bb.9:
    211     successors: %bb.36(0x00000001), %bb.10(0x7fffffff)
    212   
    213     CHIMux undef %31, 1, implicit-def $cc
    214     BRC 14, 8, %bb.36, implicit killed $cc
    215     J %bb.10
    216   
    217   bb.10:
    218     successors: %bb.35(0x00000001), %bb.37(0x7fffffff)
    219   
    220     CHIMux undef %32, 2, implicit-def $cc
    221     BRC 14, 8, %bb.35, implicit killed $cc
    222     J %bb.37
    223   
    224   bb.11:
    225     %4 = COPY %60
    226     %6 = SLLG %120, $noreg, 1
    227     %7 = LA %6, 64, %41
    228     %6 = AGR %6, %42, implicit-def dead $cc
    229     %45 = SRLK %120.subreg_l32, $noreg, 31
    230     %45 = AR %45, %120.subreg_l32, implicit-def dead $cc
    231     %45 = NIFMux %45, 536870910, implicit-def dead $cc
    232     %47 = SRK %120.subreg_l32, %45, implicit-def dead $cc
    233     %47 = SLL %47, $noreg, 3
    234     %81 = LGFR %47
    235   
    236   bb.12:
    237     successors: %bb.56, %bb.13
    238   
    239     CHIMux %38, 0, implicit-def $cc
    240     BRC 14, 8, %bb.13, implicit killed $cc
    241   
    242   bb.56:
    243     J %bb.16
    244   
    245   bb.13:
    246     successors: %bb.14(0x7fffffff), %bb.15(0x00000001)
    247   
    248     ADJCALLSTACKDOWN 0, 0
    249     %49 = LGFR %120.subreg_l32
    250     $r2d = COPY %49
    251     CallBRASL @Get_Direct_Cost8x8, killed $r2d, undef $r3d, csr_systemz, implicit-def dead $r14d, implicit-def dead $cc, implicit-def $r2d
    252     ADJCALLSTACKUP 0, 0
    253     %51 = COPY killed $r2d
    254     MVHHI %7, 0, 0 :: (store 2)
    255     %12 = ARK %51.subreg_l32, %125, implicit-def dead $cc
    256     CFIMux %51.subreg_l32, 2147483647, implicit-def $cc
    257     %12 = LOCRMux %12, %126, 14, 8, implicit killed $cc
    258     CFIMux %125, 2147483647, implicit-def $cc
    259     %12 = LOCRMux %12, %126, 14, 8, implicit killed $cc
    260     CHIMux undef %56, 0, implicit-def $cc
    261     BRC 14, 6, %bb.15, implicit killed $cc
    262     J %bb.14
    263   
    264   bb.14:
    265     %124 = AHIMux %124, 1, implicit-def dead $cc
    266     ADJCALLSTACKDOWN 0, 0
    267     CallBRASL @store_coding_state, undef $r2d, csr_systemz, implicit-def dead $r14d, implicit-def dead $cc
    268     ADJCALLSTACKUP 0, 0
    269     %125 = COPY %12
    270     J %bb.16
    271   
    272   bb.15:
    273   
    274   bb.16:
    275     successors: %bb.12(0x7c000000), %bb.17(0x04000000)
    276   
    277     CLGFI undef %59, 4, implicit-def $cc
    278     BRC 14, 4, %bb.12, implicit killed $cc
    279     J %bb.17
    280   
    281   bb.17:
    282     successors: %bb.18, %bb.19
    283   
    284     MVHI %0, 332, 2 :: (store 4)
    285     %60 = COPY %126
    286     %60 = AR %60, %4, implicit-def dead $cc
    287     %18 = LHMux %6, 0, $noreg :: (load 2)
    288     CHIMux %38, 0, implicit-def $cc
    289     BRC 14, 6, %bb.19, implicit killed $cc
    290     J %bb.18
    291   
    292   bb.18:
    293     %62 = SLLG %81, $noreg, 1
    294     %64 = LA %62, 0, %63
    295     %65 = LG undef %66, 0, $noreg :: (load 8)
    296     %67 = LGF undef %68, 0, $noreg :: (load 4)
    297     MVC undef %69, 0, 2, %64, 0 :: (store 2), (load 2)
    298     %70 = COPY %81
    299     %70 = OILL64 %70, 3, implicit-def dead $cc
    300     %71 = LA %70, 2, $noreg
    301     %72 = SLLG %71, $noreg, 1
    302     %73 = LHMux %72, 0, %63 :: (load 2)
    303     %74 = LA %70, 2, %67
    304     %75 = SLLG %74, $noreg, 1
    305     %76 = LG %65, 0, $noreg :: (load 8)
    306     STHMux %73, %76, 0, %75 :: (store 2)
    307     %77 = LG undef %78, 0, $noreg :: (load 8)
    308     %79 = LHRL @rec_mbY8x8 :: (load 2)
    309     STHMux %79, %77, 0, $noreg :: (store 2)
    310     %80 = LHMux %72, 0, %63 :: (load 2)
    311     STHMux %80, %77, 0, %75 :: (store 2)
    312     %81 = OILL64 %81, 7, implicit-def dead $cc
    313     %82 = SLLG %81, $noreg, 1
    314     %83 = LHMux %82, 0, %63 :: (load 2)
    315     STHMux %83, %77, 0, $noreg :: (store 2)
    316     %84 = LA %62, 64, %63
    317     MVC undef %85, 0, 2, %84, 0 :: (store 2), (load 2)
    318     %86 = SLLG %70, $noreg, 1
    319     %87 = LHMux %86, 64, %63 :: (load 2)
    320     %88 = SLLG %67, $noreg, 3
    321     %89 = LG %65, 16, %88 :: (load 8)
    322     %90 = LA %70, 0, %67
    323     %91 = SLLG %90, $noreg, 1
    324     STHMux %87, %89, 0, %91 :: (store 2)
    325     %92 = LA %72, 64, %63
    326     MVC undef %93, 0, 2, %92, 0 :: (store 2), (load 2)
    327     %94 = LA %86, 6, %63
    328     MVC undef %95, 0, 2, %94, 0 :: (store 2), (load 2)
    329     %96 = LA %82, 0, %63
    330     MVC undef %97, 0, 2, %96, 0 :: (store 2), (load 2)
    331   
    332   bb.19:
    333     successors: %bb.20(0x04000000), %bb.11(0x7c000000)
    334   
    335     %98 = LGH %7, 0, $noreg :: (load 2)
    336     %99 = LGH undef %100, 0, $noreg :: (load 2)
    337     ADJCALLSTACKDOWN 0, 0
    338     %101 = LGFR %120.subreg_l32
    339     %102 = LGFR %18
    340     $r2d = COPY %101
    341     $r3d = COPY %102
    342     $r4d = LGHI 0
    343     $r5d = COPY %98
    344     $r6d = COPY %99
    345     CallBRASL @SetRefAndMotionVectors, killed $r2d, killed $r3d, killed $r4d, killed $r5d, killed $r6d, csr_systemz, implicit-def dead $r14d, implicit-def dead $cc
    346     ADJCALLSTACKUP 0, 0
    347     ADJCALLSTACKDOWN 0, 0
    348     CallBRASL @reset_coding_state, undef $r2d, csr_systemz, implicit-def dead $r14d, implicit-def dead $cc
    349     ADJCALLSTACKUP 0, 0
    350     %120 = LA %120, 1, $noreg
    351     CGHI %120, 4, implicit-def $cc
    352     BRC 14, 6, %bb.11, implicit killed $cc
    353     J %bb.20
    354   
    355   bb.20:
    356     successors: %bb.22(0x00000001), %bb.21(0x7fffffff)
    357   
    358     MVHI undef %105, 0, 0 :: (store 4)
    359     CHIMux undef %106, 3, implicit-def $cc
    360     BRC 14, 8, %bb.22, implicit killed $cc
    361     J %bb.21
    362   
    363   bb.21:
    364     successors: %bb.22(0x00000001), %bb.23(0x7fffffff)
    365   
    366     CHIMux undef %107, 0, implicit-def $cc
    367     BRC 14, 6, %bb.23, implicit killed $cc
    368     J %bb.22
    369   
    370   bb.22:
    371   
    372   bb.23:
    373     successors: %bb.26(0x00000001), %bb.24(0x7fffffff)
    374   
    375     ADJCALLSTACKDOWN 0, 0
    376     CallBRASL @Get_Direct_CostMB, undef $f0d, csr_systemz, implicit-def dead $r14d, implicit-def dead $cc, implicit-def dead $r2d
    377     ADJCALLSTACKUP 0, 0
    378     ADJCALLSTACKDOWN 0, 0
    379     $r2d = LGHI 0
    380     CallBRASL @SetModesAndRefframeForBlocks, killed $r2d, csr_systemz, implicit-def dead $r14d, implicit-def dead $cc
    381     ADJCALLSTACKUP 0, 0
    382     CHIMux undef %111, 13, implicit-def $cc
    383     BRC 14, 8, %bb.26, implicit killed $cc
    384     J %bb.24
    385   
    386   bb.24:
    387     successors: %bb.25(0x00000001), %bb.27(0x7fffffff)
    388   
    389     CHIMux undef %112, 8, implicit-def $cc
    390     BRC 14, 6, %bb.27, implicit killed $cc
    391     J %bb.25
    392   
    393   bb.25:
    394   
    395   bb.26:
    396   
    397   bb.27:
    398     successors: %bb.28, %bb.29
    399   
    400     CHIMux undef %114, 0, implicit-def $cc
    401     BRC 14, 6, %bb.29, implicit killed $cc
    402   
    403   bb.28:
    404     %130 = CDFBR %60
    405     J %bb.30
    406   
    407   bb.29:
    408     %130 = IMPLICIT_DEF
    409   
    410   bb.30:
    411     successors: %bb.33(0x00000001), %bb.31(0x7fffffff)
    412   
    413     VST64 %130, undef %117, 0, $noreg :: (store 8)
    414     CHIMux undef %118, 2, implicit-def $cc
    415     BRC 14, 8, %bb.33, implicit killed $cc
    416     J %bb.31
    417   
    418   bb.31:
    419     successors: %bb.32(0x00000001), %bb.34(0x7fffffff)
    420   
    421     CHIMux undef %119, 1, implicit-def $cc
    422     BRC 14, 6, %bb.34, implicit killed $cc
    423     J %bb.32
    424   
    425   bb.32:
    426   
    427   bb.33:
    428   
    429   bb.34:
    430     Return
    431   
    432   bb.35:
    433   
    434   bb.36:
    435   
    436   bb.37:
    437     successors: %bb.40(0x00000001), %bb.38(0x7fffffff)
    438   
    439     CHIMux undef %33, 1, implicit-def $cc
    440     BRC 14, 8, %bb.40, implicit killed $cc
    441     J %bb.38
    442   
    443   bb.38:
    444     successors: %bb.39(0x00000001), %bb.41(0x7fffffff)
    445   
    446     CHIMux undef %34, 2, implicit-def $cc
    447     BRC 14, 6, %bb.41, implicit killed $cc
    448     J %bb.39
    449   
    450   bb.39:
    451   
    452   bb.40:
    453   
    454   bb.41:
    455     successors: %bb.44(0x00000001), %bb.42(0x7fffffff)
    456   
    457     CHIMux undef %35, 1, implicit-def $cc
    458     BRC 14, 8, %bb.44, implicit killed $cc
    459     J %bb.42
    460   
    461   bb.42:
    462     successors: %bb.43(0x00000001), %bb.45(0x7fffffff)
    463   
    464     CHIMux undef %36, 2, implicit-def $cc
    465     BRC 14, 6, %bb.45, implicit killed $cc
    466     J %bb.43
    467   
    468   bb.43:
    469   
    470   bb.44:
    471   
    472   bb.45:
    473     %0 = LG undef %22, 0, $noreg :: (load 8)
    474     %38 = LHIMux 0
    475     STRL %38, @bi_pred_me :: (store 4)
    476     %120 = LGHI 0
    477     %41 = LARL @best8x8fwref
    478     %42 = LARL @best8x8mode
    479     %63 = LARL @rec_mbY8x8
    480     %126 = IIFMux 2147483647
    481     %124 = LHIMux 0
    482     %125 = LHIMux 0
    483     %60 = LHIMux 0
    484     J %bb.11
    485   
    486   bb.46:
    487   
    488   bb.47:
    489   
    490   bb.48:
    491     successors: %bb.51(0x00000001), %bb.49(0x7fffffff)
    492   
    493     CHIMux undef %27, 1, implicit-def $cc
    494     BRC 14, 8, %bb.51, implicit killed $cc
    495     J %bb.49
    496   
    497   bb.49:
    498     successors: %bb.50(0x00000001), %bb.52(0x7fffffff)
    499   
    500     CHIMux undef %28, 2, implicit-def $cc
    501     BRC 14, 6, %bb.52, implicit killed $cc
    502     J %bb.50
    503   
    504   bb.50:
    505   
    506   bb.51:
    507   
    508   bb.52:
    509     successors: %bb.55(0x00000001), %bb.53(0x7fffffff)
    510   
    511     CHIMux undef %29, 1, implicit-def $cc
    512     BRC 14, 8, %bb.55, implicit killed $cc
    513     J %bb.53
    514   
    515   bb.53:
    516     successors: %bb.54(0x00000001), %bb.9(0x7fffffff)
    517   
    518     CHIMux undef %30, 2, implicit-def $cc
    519     BRC 14, 6, %bb.9, implicit killed $cc
    520     J %bb.54
    521   
    522   bb.54:
    523   
    524   bb.55:
    525 
    526 ...
    527