1 # RUN: llc -o /dev/null %s -mtriple=aarch64-- -run-pass=machine-scheduler -enable-misched -debug-only=machine-scheduler 2>&1 | FileCheck %s 2 # REQUIRES: asserts 3 --- | 4 define void @func() { ret void } 5 ... 6 --- 7 # Check that the instructions are not dependent on each other, even though 8 # they all read/write to the zero register. 9 # CHECK-LABEL: MI Scheduling 10 # CHECK: SU(0): dead $wzr = SUBSWri $w1, 0, 0, implicit-def dead $nzcv 11 # CHECK: # succs left : 0 12 # CHECK-NOT: Successors: 13 # CHECK: SU(1): $w2 = COPY $wzr 14 # CHECK: # succs left : 0 15 # CHECK-NOT: Successors: 16 # CHECK: SU(2): dead $wzr = SUBSWri $w3, 0, 0, implicit-def dead $nzcv 17 # CHECK: # succs left : 0 18 # CHECK-NOT: Successors: 19 # CHECK: SU(3): $w4 = COPY $wzr 20 # CHECK: # succs left : 0 21 # CHECK-NOT: Successors: 22 name: func 23 body: | 24 bb.0: 25 dead $wzr = SUBSWri $w1, 0, 0, implicit-def dead $nzcv 26 $w2 = COPY $wzr 27 dead $wzr = SUBSWri $w3, 0, 0, implicit-def dead $nzcv 28 $w4 = COPY $wzr 29 ... 30