brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · bf3cd95 Raw
147 lines · plain
1# RUN: llc -mtriple=hexagon -run-pass pipeliner -debug-only=pipeliner %s -o /dev/null 2>&1 | FileCheck %s2# REQUIRES: asserts3 4# Test boundary cases for loop carried dependence analysis5 6#CHECK: Overlap check:7#CHECK:   BaseMI:   S2_storeri_io %10:intregs, 0, %0:intregs :: (store (s32))8#CHECK:     Base + 0 + I * 3, Len: 49#CHECK:   OtherMI:   dead %30:intregs = L2_loadri_io %10:intregs, 0 :: (load (s32))10#CHECK:     Base + 0 + I * 3, Len: 411#CHECK:   Result: Overlap12#CHECK: Overlap check:13#CHECK:   BaseMI:   S2_storeri_io %12:intregs, 0, %1:intregs :: (store (s32))14#CHECK:     Base + 0 + I * 4, Len: 415#CHECK:   OtherMI:   dead %31:intregs = L2_loadri_io %12:intregs, 0 :: (load (s32))16#CHECK:     Base + 0 + I * 4, Len: 417#CHECK:   Result: No overlap18#CHECK: Overlap check:19#CHECK:   BaseMI:   S2_storeri_io %14:intregs, 0, %2:intregs :: (store (s64))20#CHECK:     Base + 0 + I * 4, Len: 821#CHECK:   OtherMI:   dead %32:intregs = L2_loadri_io %14:intregs, 0 :: (load (s32))22#CHECK:     Base + 0 + I * 4, Len: 423#CHECK:   Result: Overlap24#CHECK: Overlap check:25#CHECK:   BaseMI:   S2_storeri_io %16:intregs, 0, %3:intregs :: (store (s32))26#CHECK:     Base + 0 + I * 4, Len: 427#CHECK:   OtherMI:   dead %33:intregs = L2_loadri_io %16:intregs, -1 :: (load (s32))28#CHECK:     Base + -1 + I * 4, Len: 429#CHECK:   Result: Overlap30#CHECK: Overlap check:31#CHECK:   BaseMI:   S2_storeri_io %18:intregs, 1, %4:intregs :: (store (s32))32#CHECK:     Base + 1 + I * 4, Len: 433#CHECK:   OtherMI:   dead %34:intregs = L2_loadri_io %18:intregs, 0 :: (load (s32))34#CHECK:     Base + 0 + I * 4, Len: 435#CHECK:   Result: Overlap36#CHECK: Overlap check:37#CHECK:   BaseMI:   S2_storeri_io %20:intregs, 0, %5:intregs :: (store (s32))38#CHECK:     Base + 0 + I * -3, Len: 439#CHECK:   OtherMI:   dead %35:intregs = L2_loadri_io %20:intregs, 0 :: (load (s32))40#CHECK:     Base + 0 + I * -3, Len: 441#CHECK:   Result: Overlap42#CHECK: Overlap check:43#CHECK:   BaseMI:   S2_storeri_io %22:intregs, 0, %6:intregs :: (store (s32))44#CHECK:     Base + 0 + I * -4, Len: 445#CHECK:   OtherMI:   dead %36:intregs = L2_loadri_io %22:intregs, 0 :: (load (s32))46#CHECK:     Base + 0 + I * -4, Len: 447#CHECK:   Result: No overlap48#CHECK: Overlap check:49#CHECK:   BaseMI:   S2_storeri_io %24:intregs, 0, %7:intregs :: (store (s32))50#CHECK:     Base + 0 + I * -4, Len: 451#CHECK:   OtherMI:   dead %37:intregs = L2_loadri_io %24:intregs, 0 :: (load (s64))52#CHECK:     Base + 0 + I * -4, Len: 853#CHECK:   Result: Overlap54#CHECK: Overlap check:55#CHECK:   BaseMI:   S2_storeri_io %26:intregs, 0, %8:intregs :: (store (s32))56#CHECK:     Base + 0 + I * -4, Len: 457#CHECK:   OtherMI:   dead %38:intregs = L2_loadri_io %26:intregs, 1 :: (load (s32))58#CHECK:     Base + 1 + I * -4, Len: 459#CHECK:   Result: Overlap60#CHECK: Overlap check:61#CHECK:   BaseMI:   S2_storeri_io %28:intregs, -1, %9:intregs :: (store (s32))62#CHECK:     Base + -1 + I * -4, Len: 463#CHECK:   OtherMI:   dead %39:intregs = L2_loadri_io %28:intregs, 0 :: (load (s32))64#CHECK:     Base + 0 + I * -4, Len: 465#CHECK:   Result: Overlap66 67---68name:            test69tracksRegLiveness: true70 71body:             |72  bb.0:73    successors: %bb.174 75    %100:intregs = IMPLICIT_DEF76    %200:intregs = IMPLICIT_DEF77    %300:intregs = IMPLICIT_DEF78    %400:intregs = IMPLICIT_DEF79    %500:intregs = IMPLICIT_DEF80    %600:intregs = IMPLICIT_DEF81    %700:intregs = IMPLICIT_DEF82    %800:intregs = IMPLICIT_DEF83    %900:intregs = IMPLICIT_DEF84    %1000:intregs = IMPLICIT_DEF85    J2_loop0i %bb.1, 6, implicit-def $lc0, implicit-def $sa0, implicit-def $usr86 87  bb.1 (machine-block-address-taken):88    successors: %bb.1, %bb.289 90    %0:intregs = PHI %100, %bb.0, %1, %bb.191    %2:intregs = PHI %200, %bb.0, %3, %bb.192    %4:intregs = PHI %300, %bb.0, %5, %bb.193    %6:intregs = PHI %400, %bb.0, %7, %bb.194    %8:intregs = PHI %500, %bb.0, %9, %bb.195    %10:intregs = PHI %600, %bb.0, %11, %bb.196    %12:intregs = PHI %700, %bb.0, %13, %bb.197    %14:intregs = PHI %800, %bb.0, %15, %bb.198    %16:intregs = PHI %900, %bb.0, %17, %bb.199    %18:intregs = PHI %1000, %bb.0, %19, %bb.1100 101    %1:intregs = A2_addi %0, 3102    %101:intregs = L2_loadri_io %0, 0 :: (load (s32))103    S2_storeri_io %0, 0, %100 :: (store (s32))104 105    %3:intregs = A2_addi %2, 4106    %201:intregs = L2_loadri_io %2, 0 :: (load (s32))107    S2_storeri_io %2, 0, %200 :: (store (s32))108 109    %5:intregs = A2_addi %4, 4110    %301:intregs = L2_loadri_io %4, 0 :: (load (s32))111    S2_storeri_io %4, 0, %300 :: (store (s64))112 113    %7:intregs = A2_addi %6, 4114    %401:intregs = L2_loadri_io %6, -1 :: (load (s32))115    S2_storeri_io %6, 0, %400 :: (store (s32))116 117    %9:intregs = A2_addi %8, 4118    %501:intregs = L2_loadri_io %8, 0 :: (load (s32))119    S2_storeri_io %8, 1, %500 :: (store (s32))120 121    %11:intregs = A2_addi %10, -3122    %601:intregs = L2_loadri_io %10, 0 :: (load (s32))123    S2_storeri_io %10, 0, %600 :: (store (s32))124 125    %13:intregs = A2_addi %12, -4126    %701:intregs = L2_loadri_io %12, 0 :: (load (s32))127    S2_storeri_io %12, 0, %700 :: (store (s32))128 129    %15:intregs = A2_addi %14, -4130    %801:intregs = L2_loadri_io %14, 0 :: (load (s64))131    S2_storeri_io %14, 0, %800 :: (store (s32))132 133    %17:intregs = A2_addi %16, -4134    %901:intregs = L2_loadri_io %16, 1 :: (load (s32))135    S2_storeri_io %16, 0, %900 :: (store (s32))136 137    %19:intregs = A2_addi %18, -4138    %1001:intregs = L2_loadri_io %18, 0 :: (load (s32))139    S2_storeri_io %18, -1, %1000 :: (store (s32))140 141    ENDLOOP0 %bb.1, implicit-def $pc, implicit-def $lc0, implicit $sa0, implicit $lc0142    J2_jump %bb.2, implicit-def dead $pc143 144  bb.2:145 146...147