Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MachineVerifier / live-ins-01.mir
blob5d6d2fa399e7857caf7cb5ca9ed9201d55b8de2a
1 # RUN: not --crash llc -o - %s -mtriple=s390x-linux-gnu -mcpu=z14 -run-pass none 2>&1 | FileCheck %s
2 # REQUIRES: systemz-registered-target
4 # Test that a the machine verifier reports an error when a register in
5 # liveins is not liveout from predecessor.
7 ---
8 name:            f1
9 tracksRegLiveness: true
10 machineFunctionInfo: {}
11 body:             |
12   bb.0:
13     liveins: $r2l, $r3l
14   
15     %1:gr32bit = COPY $r3l
16     %0:gr32bit = COPY $r2l
17     CHIMux %0, 0, implicit-def $cc
19   bb.1:
20     liveins: $cc
22   bb.2:
23     liveins: $cc
25     %2:grx32bit = LOCRMux %1, %0, 14, 8, implicit $cc
26     $r2l = COPY %2
27     Return implicit $r2l
28 ...
30 # CHECK: *** Bad machine code: Live in register not found to be live out from predecessor. ***
31 # CHECK:- function:    f2
32 # CHECK:- basic block: %bb.2
33 # CHECK:CC not found to be live out from %bb.1
34 ---
35 name:            f2
36 tracksRegLiveness: true
37 machineFunctionInfo: {}
38 body:             |
39   bb.0:
40     liveins: $r2l, $r3l
41   
42     %1:gr32bit = COPY $r3l
43     %0:gr32bit = COPY $r2l
44     CHIMux %0, 0, implicit-def $cc
46   bb.1:
47     liveins: $cc
48     KILL killed $cc
50   bb.2:
51     liveins: $cc
53     %2:grx32bit = LOCRMux %1, %0, 14, 8, implicit $cc
54     $r2l = COPY %2
55     Return implicit $r2l
57 ...