blob: e03f55d4090d2e6e54f28229c03a762ef3f6de2e [file]
# RUN: llc -o - %s -mtriple=s390x-linux-gnu -mcpu=z16 -verify-machineinstrs \
# RUN: -run-pass=machine-scheduler -debug-only=machine-scheduler 2>&1\
# RUN: | FileCheck %s
# REQUIRES: asserts
# Schedule the NRK that defines the compare source low to help comparison
# elimination.
# CHECK: ********** MI Scheduling **********
# CHECK-NEXT: fun0:%bb.0
# CHECK: ********** MI Scheduling **********
# CHECK-NEXT: fun0:%bb.1
# CHECK: Queue BotQ.A: 6 4
# CHECK-NEXT: Cand SU(6) FIRST
# CHECK-NEXT: Cand SU(4) WEAK
# CHECK-NEXT: Pick Bot WEAK [pre-RA]
# CHECK-NEXT: Scheduling SU(4) %7:gr32bit = NRK %6:gr32bit, %0:gr32bit, implicit-def dead $cc
# CHECK: *** Final schedule for %bb.1 ***
# CHECK-NEXT: SU(0): %5:gr32bit = NRK %2:gr32bit, %0:gr32bit, implicit-def dead $cc
# CHECK-NEXT: SU(1): CHIMux %5:gr32bit, 0, implicit-def $cc
# CHECK-NEXT: SU(2): %6:gr32bit = LHIMux 0
# CHECK-NEXT: SU(3): %6:gr32bit = LOCHIMux %6:gr32bit(tied-def 0), 1, 14, 8, implicit $cc
# CHECK-NEXT: SU(5): %3:addr32bit = OILMux %3:addr32bit(tied-def 0), 1, implicit-def dead $cc
# CHECK-NEXT: SU(6): %8:gr32bit = SLLK %1:gr32bit, %3:addr32bit, 0
# CHECK-NEXT: SU(4): %7:gr32bit = NRK %6:gr32bit, %0:gr32bit, implicit-def dead $cc
# CHECK-NEXT: SU(7): CHIMux %7:gr32bit, 0, implicit-def $cc
# CHECK-NEXT: SU(8): %8:gr32bit = LOCHIMux %8:gr32bit(tied-def 0), 0, 14, 8, implicit $cc
# CHECK-NEXT: SU(9): %4:gr32bit = ORK %8:gr32bit, %4:gr32bit, implicit-def dead $cc
# CHECK-NEXT: SU(10): %2:gr32bit = LHIMux 1
# CHECK-NEXT: SU(11): %3:addr32bit = LHIMux 0
---
name: fun0
tracksRegLiveness: true
body: |
bb.0:
liveins: $r2l
%0:gr32bit = COPY $r2l
%1:gr32bit = LHIMux 1
%2:gr32bit = LHIMux 0
%3:addr32bit = LHIMux 1
%4:gr32bit = LHIMux 0
bb.1:
%5:gr32bit = NRK %2, %0, implicit-def dead $cc
CHIMux %5, 0, implicit-def $cc
%6:gr32bit = LHIMux 0
%6:gr32bit = LOCHIMux %6, 1, 14, 8, implicit killed $cc
%7:gr32bit = NRK %6, %0, implicit-def dead $cc
%3:addr32bit = OILMux %3, 1, implicit-def dead $cc
%8:gr32bit = SLLK %1, %3, 0
CHIMux %7, 0, implicit-def $cc
%8:gr32bit = LOCHIMux %8, 0, 14, 8, implicit killed $cc
%4:gr32bit = ORK %8, %4, implicit-def dead $cc
%2:gr32bit = LHIMux 1
%3:addr32bit = LHIMux 0
J %bb.1
...