brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · 2e30ac8 Raw
172 lines · plain
1# RUN: llc -o - -run-pass=machine-scheduler -misched=shuffle %s | FileCheck %s2# RUN: llc -o - -passes=machine-scheduler -misched=shuffle %s | FileCheck %s3# RUN: llc -o - -run-pass=postmisched %s | FileCheck %s4# RUN: llc -o - -passes=postmisched %s | FileCheck %s5 6# REQUIRES: asserts7# -misched=shuffle is only available with assertions enabled8 9--- |10  target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"11  target triple = "thumbv8.1m.main-arm-none-eabi"12 13  define i32 @foo_bti() #0 {14  entry:15    ret i32 016  }17 18  define i32 @foo_pac() #0 {19  entry:20    ret i32 021  }22 23  define i32 @foo_pacbti() #0 {24  entry:25    ret i32 026  }27 28  define i32 @foo_setjmp() #0 {29  entry:30    ret i32 031  if.then:32    ret i32 033  }34 35  define i32 @foo_sg() #0 {36  entry:37    ret i32 038  }39 40  declare i32 @setjmp(ptr noundef) #141  declare void @longjmp(ptr noundef, i32 noundef) #242 43  attributes #0 = { "frame-pointer"="all" "target-cpu"="cortex-m55" "target-features"="+armv8.1-m.main" }44  attributes #1 = { nounwind returns_twice "frame-pointer"="all" "target-cpu"="cortex-m55" "target-features"="+armv8.1-m.main" }45  attributes #2 = { noreturn nounwind "frame-pointer"="all" "target-cpu"="cortex-m55" "target-features"="+armv8.1-m.main" }46 47...48---49name:            foo_bti50tracksRegLiveness: true51body:             |52  bb.0.entry:53    liveins: $r054 55    t2BTI56    renamable $r0, dead $cpsr = nsw tADDi8 killed renamable $r0, 1, 14 /* CC::al */, $noreg57    tBX_RET 14 /* CC::al */, $noreg, implicit killed $r058 59...60 61# CHECK-LABEL: name:            foo_bti62# CHECK:       body:63# CHECK-NEXT:   bb.0.entry:64# CHECK-NEXT:     liveins: $r065# CHECK-NEXT:     {{^ +$}}66# CHECK-NEXT:     t2BTI67 68---69name:            foo_pac70tracksRegLiveness: true71body:             |72  bb.0.entry:73    liveins: $r0, $lr, $r1274 75    frame-setup t2PAC implicit-def $r12, implicit $lr, implicit $sp76    renamable $r2 = nsw t2ADDri $r0, 3, 14 /* CC::al */, $noreg, $noreg77    $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr78    $r7 = frame-setup tMOVr killed $sp, 14 /* CC::al */, $noreg79    early-clobber $sp = frame-setup t2STR_PRE killed $r12, $sp, -4, 14 /* CC::al */, $noreg80    $r12, $sp = frame-destroy t2LDR_POST $sp, 4, 14 /* CC::al */, $noreg81    $sp = frame-destroy t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr82    t2AUT implicit $r12, implicit $lr, implicit $sp83    tBX_RET 14 /* CC::al */, $noreg, implicit $r084 85...86 87# CHECK-LABEL: name:            foo_pac88# CHECK:       body:89# CHECK-NEXT:    bb.0.entry:90# CHECK-NEXT:      liveins: $r0, $lr, $r1291# CHECK-NEXT:      {{^ +$}}92# CHECK-NEXT:      frame-setup t2PAC implicit-def $r12, implicit $lr, implicit $sp93 94---95name:            foo_pacbti96tracksRegLiveness: true97body:             |98  bb.0.entry:99    liveins: $r0, $lr, $r12100 101    frame-setup t2PACBTI implicit-def $r12, implicit $lr, implicit $sp102    renamable $r2 = nsw t2ADDri $r0, 3, 14 /* CC::al */, $noreg, $noreg103    $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr104    $r7 = frame-setup tMOVr killed $sp, 14 /* CC::al */, $noreg105    early-clobber $sp = frame-setup t2STR_PRE killed $r12, $sp, -4, 14 /* CC::al */, $noreg106    $r12, $sp = frame-destroy t2LDR_POST $sp, 4, 14 /* CC::al */, $noreg107    $sp = frame-destroy t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr108    t2AUT implicit $r12, implicit $lr, implicit $sp109    tBX_RET 14 /* CC::al */, $noreg, implicit $r0110 111...112 113# CHECK-LABEL: name:            foo_pacbti114# CHECK:       body:115# CHECK-NEXT:    bb.0.entry:116# CHECK-NEXT:      liveins: $r0, $lr, $r12117# CHECK-NEXT:      {{^ +$}}118# CHECK-NEXT:      frame-setup t2PACBTI implicit-def $r12, implicit $lr, implicit $sp119 120---121name:            foo_setjmp122tracksRegLiveness: true123body:             |124  bb.0.entry:125    successors: %bb.1126    liveins: $lr127 128    frame-setup tPUSH 14 /* CC::al */, $noreg, $r7, killed $lr, implicit-def $sp, implicit $sp129    $r7 = frame-setup tMOVr $sp, 14 /* CC::al */, $noreg130    $sp = frame-setup tSUBspi $sp, 40, 14 /* CC::al */, $noreg131    renamable $r0 = tMOVr $sp, 14 /* CC::al */, $noreg132    tBL 14 /* CC::al */, $noreg, @setjmp, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit-def $sp, implicit-def $r0133    t2BTI134    renamable $r2 = nsw t2ADDri $r0, 3, 14 /* CC::al */, $noreg, $noreg135    tCMPi8 killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr136    t2IT 0, 2, implicit-def $itstate137    renamable $r0 = tMOVi8 $noreg, 0, 0 /* CC::eq */, $cpsr, implicit $itstate138    $sp = frame-destroy tADDspi $sp, 40, 0 /* CC::eq */, $cpsr, implicit $itstate139    frame-destroy tPOP_RET 0 /* CC::eq */, killed $cpsr, def $r7, def $pc, implicit killed $r0, implicit $sp, implicit killed $itstate140 141  bb.1.if.then:142    renamable $r0 = tMOVr $sp, 14 /* CC::al */, $noreg143    renamable $r1, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg144    tBL 14 /* CC::al */, $noreg, @longjmp, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit killed $r1, implicit-def $sp145 146...147 148# CHECK-LABEL: name:            foo_setjmp149# CHECK:       body:150# CHECK: tBL 14 /* CC::al */, $noreg, @setjmp, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit-def $sp, implicit-def $r0151# CHECK-NEXT:    t2BTI152 153---154name:            foo_sg155tracksRegLiveness: true156body:             |157  bb.0.entry:158    liveins: $r0159 160    t2SG 14 /* CC::al */, $noreg161    renamable $r0, dead $cpsr = nsw tADDi8 killed renamable $r0, 1, 14 /* CC::al */, $noreg162    tBX_RET 14 /* CC::al */, $noreg, implicit killed $r0163 164...165 166# CHECK-LABEL: name:            foo_sg167# CHECK:       body:168# CHECK-NEXT:   bb.0.entry:169# CHECK-NEXT:     liveins: $r0170# CHECK-NEXT:     {{^ +$}}171# CHECK-NEXT:     t2SG172