xref: /llvm-project/llvm/test/CodeGen/SystemZ/machinesink-dead-cc.mir (revision 64599ac97eb1346dcc0e45b722c4a84c8c72e899)
1# RUN: llc -mtriple=s390x-linux-gnu -mcpu=z15 -O3 -run-pass=machine-sink %s -o - \
2# RUN:   -verify-machineinstrs | FileCheck %s
3#
4# Test that the AGHIK can be sunk into %bb.4. It has a def of CC, but it is dead.
5
6--- |
7  define void @fun() {  ret void  }
8...
9
10# CHECK-LABEL: bb.4:
11# CHECK:         %1:gr64bit = nsw AGHIK %0, -4, implicit-def dead $cc
12# CHECK-NEXT:    CGHI %1, 0, implicit-def $cc
13# CHECK-NEXT:    BRC 14, 6, %bb.1, implicit $cc
14# CHECK-NEXT:    J %bb.5
15
16
17---
18name:            fun
19alignment:       16
20tracksRegLiveness: true
21registers:
22  - { id: 0, class: gr64bit }
23  - { id: 1, class: gr64bit }
24  - { id: 2, class: grx32bit }
25  - { id: 3, class: gr64bit }
26frameInfo:
27  maxAlignment:    1
28machineFunctionInfo: {}
29body:             |
30  bb.0:
31
32    %2:grx32bit = LHIMux 0
33    %3:gr64bit = IMPLICIT_DEF
34
35  bb.1:
36
37    %0:gr64bit = PHI %3, %bb.0, %1, %bb.4
38
39  bb.2:
40
41    %1:gr64bit = nsw AGHIK %0, -4, implicit-def dead $cc
42    CHIMux %2, 0, implicit-def $cc
43    BRC 14, 6, %bb.4, implicit $cc
44    J %bb.3
45
46  bb.3:
47
48  bb.4:
49
50    CGHI %1, 0, implicit-def $cc
51    BRC 14, 6, %bb.1, implicit $cc
52    J %bb.5
53
54  bb.5:
55    Return
56
57...
58