[PowerPC] Generate Power9 extswsli extend sign and shift immediate instruction
[llvm-core.git] / test / CodeGen / AMDGPU / merge-m0.mir
blob73a6b136850206362158fa39cc839902c7bff4a1
1 # RUN: llc -march=amdgcn -amdgpu-enable-merge-m0 -verify-machineinstrs -run-pass si-fix-sgpr-copies %s -o - | FileCheck -check-prefix=GCN %s
3 # GCN:    bb.0.entry:
4 # GCN:      SI_INIT_M0 -1
5 # GCN-NEXT: DS_WRITE_B32
6 # GCN-NEXT: DS_WRITE_B32
7 # GCN-NEXT: SI_INIT_M0 65536
8 # GCN-NEXT: DS_WRITE_B32
9 # GCN-NEXT: DS_WRITE_B32
10 # GCN-NEXT: SI_INIT_M0 -1
11 # GCN-NEXT: DS_WRITE_B32
12 # GCN-NEXT: SI_INIT_M0 65536
13 # GCN-NEXT: DS_WRITE_B32
15 # GCN:    bb.1:
16 # GCN:      SI_INIT_M0 -1
17 # GCN-NEXT: DS_WRITE_B32
18 # GCN-NEXT: DS_WRITE_B32
20 # GCN:    bb.2:
21 # GCN:      SI_INIT_M0 65536
22 # GCN-NEXT: DS_WRITE_B32
24 # GCN:    bb.3:
25 # GCN:      SI_INIT_M0 3
27 # GCN:    bb.4:
28 # GCN-NOT:  SI_INIT_M0
29 # GCN:      DS_WRITE_B32
30 # GCN-NEXT: SI_INIT_M0 4
31 # GCN-NEXT: DS_WRITE_B32
33 # GCN:    bb.5:
34 # GCN-NOT: SI_INIT_M0
35 # GCN:     DS_WRITE_B32
36 # GCN-NEXT: SI_INIT_M0 4
37 # GCN-NEXT: DS_WRITE_B32
39 # GCN:    bb.6:
40 # GCN:      SI_INIT_M0 -1,
41 # GCN-NEXT: DS_WRITE_B32
42 # GCN:      SI_INIT_M0 %2
43 # GCN-NEXT: DS_WRITE_B32
44 # GCN-NEXT: SI_INIT_M0 %2
45 # GCN-NEXT: DS_WRITE_B32
46 # GCN-NEXT: SI_INIT_M0 -1
47 # GCN-NEXT: DS_WRITE_B32
49 ---
50 name:            test
51 alignment:       0
52 exposesReturnsTwice: false
53 legalized:       false
54 regBankSelected: false
55 selected:        false
56 tracksRegLiveness: true
57 registers:
58   - { id: 0, class: vgpr_32 }
59   - { id: 1, class: vgpr_32 }
60   - { id: 2, class: sreg_32_xm0 }
61 body:             |
62   bb.0.entry:
63     successors: %bb.1, %bb.2
65     %0 = IMPLICIT_DEF
66     %1 = IMPLICIT_DEF
67     SI_INIT_M0 -1, implicit-def $m0
68     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
69     SI_INIT_M0 -1, implicit-def $m0
70     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
71     SI_INIT_M0 65536, implicit-def $m0
72     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
73     SI_INIT_M0 65536, implicit-def $m0
74     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
75     SI_INIT_M0 -1, implicit-def $m0
76     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
77     SI_INIT_M0 65536, implicit-def $m0
78     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
79     S_CBRANCH_VCCZ %bb.1, implicit undef $vcc
80     S_BRANCH %bb.2
82   bb.1:
83     successors: %bb.2
84     SI_INIT_M0 -1, implicit-def $m0
85     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
86     SI_INIT_M0 -1, implicit-def $m0
87     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
88     S_BRANCH %bb.2
90   bb.2:
91     successors: %bb.3
92     SI_INIT_M0 65536, implicit-def $m0
93     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
94     S_BRANCH %bb.3
96   bb.3:
97     successors: %bb.4, %bb.5
98     S_CBRANCH_VCCZ %bb.4, implicit undef $vcc
99     S_BRANCH %bb.5
101   bb.4:
102     successors: %bb.6
103     SI_INIT_M0 3, implicit-def $m0
104     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
105     SI_INIT_M0 4, implicit-def $m0
106     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
107     S_BRANCH %bb.6
109   bb.5:
110     successors: %bb.6
111     SI_INIT_M0 3, implicit-def $m0
112     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
113     SI_INIT_M0 4, implicit-def $m0
114     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
115     S_BRANCH %bb.6
117   bb.6:
118     successors: %bb.0.entry, %bb.6
119     SI_INIT_M0 -1, implicit-def $m0
120     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
121     %2 = IMPLICIT_DEF
122     SI_INIT_M0 %2, implicit-def $m0
123     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
124     SI_INIT_M0 %2, implicit-def $m0
125     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
126     SI_INIT_M0 -1, implicit-def $m0
127     DS_WRITE_B32 %0, %1, 0, 0, implicit $m0, implicit $exec
128     S_CBRANCH_VCCZ %bb.6, implicit undef $vcc
129     S_BRANCH %bb.0.entry