blob: 6f6b0deb2b98f507db605cd31ea93a788a608429 [file] [log] [blame]
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +00001# RUN: llc -march=amdgcn -verify-machineinstrs -run-pass si-optimize-exec-masking %s -o - | FileCheck -check-prefix=GCN %s
2
3---
4# GCN-LABEL: name: reduce_and_saveexec
5# GCN: %exec = S_AND_B64 %exec, killed %vcc
6# GCN-NEXT: S_ENDPGM
7name: reduce_and_saveexec
8tracksRegLiveness: true
9body: |
10 bb.0:
11 %vcc = IMPLICIT_DEF
12 %sgpr0_sgpr1 = S_AND_B64 %exec, killed %vcc, implicit-def %scc
13 %exec = COPY killed %sgpr0_sgpr1
14 S_ENDPGM
15...
16---
17# GCN-LABEL: name: reduce_and_saveexec_commuted
18# GCN: %exec = S_AND_B64 killed %vcc, %exec
19# GCN-NEXT: S_ENDPGM
20name: reduce_and_saveexec_commuted
21tracksRegLiveness: true
22body: |
23 bb.0:
24 %vcc = IMPLICIT_DEF
25 %sgpr0_sgpr1 = S_AND_B64 killed %vcc, %exec, implicit-def %scc
26 %exec = COPY killed %sgpr0_sgpr1
27 S_ENDPGM
28...
29---
30# GCN-LABEL: name: reduce_and_saveexec_liveout
31# GCN: %sgpr0_sgpr1 = S_AND_B64 %exec, killed %vcc
32# GCN-NEXT: %exec = COPY
33name: reduce_and_saveexec_liveout
34tracksRegLiveness: true
35body: |
36 bb.0:
37 %vcc = IMPLICIT_DEF
38 %sgpr0_sgpr1 = S_AND_B64 %exec, killed %vcc, implicit-def %scc
39 %exec = COPY %sgpr0_sgpr1
40 S_ENDPGM
41...
42---
43# GCN-LABEL: name: and_saveexec
44# GCN: %sgpr0_sgpr1 = S_AND_SAVEEXEC_B64 %vcc
45# GCN-NEXT: S_ENDPGM
46name: and_saveexec
47tracksRegLiveness: true
48body: |
49 bb.0:
50 %vcc = IMPLICIT_DEF
51 %sgpr0_sgpr1 = COPY %exec
52 %sgpr2_sgpr3 = S_AND_B64 %sgpr0_sgpr1, killed %vcc, implicit-def %scc
53 %exec = S_MOV_B64_term %sgpr2_sgpr3
54 S_ENDPGM
55...
56---
57# GCN-LABEL: name: reduce_or_saveexec
58# GCN: %exec = S_OR_B64 %exec, killed %vcc
59# GCN-NEXT: S_ENDPGM
60name: reduce_or_saveexec
61tracksRegLiveness: true
62body: |
63 bb.0:
64 %vcc = IMPLICIT_DEF
65 %sgpr0_sgpr1 = S_OR_B64 %exec, killed %vcc, implicit-def %scc
66 %exec = COPY killed %sgpr0_sgpr1
67 S_ENDPGM
68...
69---
70# GCN-LABEL: name: reduce_xor_saveexec
71# GCN: %exec = S_XOR_B64 %exec, killed %vcc
72# GCN-NEXT: S_ENDPGM
73name: reduce_xor_saveexec
74tracksRegLiveness: true
75body: |
76 bb.0:
77 %vcc = IMPLICIT_DEF
78 %sgpr0_sgpr1 = S_XOR_B64 %exec, killed %vcc, implicit-def %scc
79 %exec = COPY killed %sgpr0_sgpr1
80 S_ENDPGM
81...
82---
83# GCN-LABEL: name: reduce_andn2_saveexec
84# GCN: %exec = S_ANDN2_B64 %exec, killed %vcc
85# GCN-NEXT: S_ENDPGM
86name: reduce_andn2_saveexec
87tracksRegLiveness: true
88body: |
89 bb.0:
90 %vcc = IMPLICIT_DEF
91 %sgpr0_sgpr1 = S_ANDN2_B64 %exec, killed %vcc, implicit-def %scc
92 %exec = COPY killed %sgpr0_sgpr1
93 S_ENDPGM
94...
95---
96# GCN-LABEL: name: reduce_orn2_saveexec
97# GCN: %exec = S_ORN2_B64 %exec, killed %vcc
98# GCN-NEXT: S_ENDPGM
99name: reduce_orn2_saveexec
100tracksRegLiveness: true
101body: |
102 bb.0:
103 %vcc = IMPLICIT_DEF
104 %sgpr0_sgpr1 = S_ORN2_B64 %exec, killed %vcc, implicit-def %scc
105 %exec = COPY killed %sgpr0_sgpr1
106 S_ENDPGM
107...
108---
109# GCN-LABEL: name: reduce_nand_saveexec
110# GCN: %exec = S_NAND_B64 %exec, killed %vcc
111# GCN-NEXT: S_ENDPGM
112name: reduce_nand_saveexec
113tracksRegLiveness: true
114body: |
115 bb.0:
116 %vcc = IMPLICIT_DEF
117 %sgpr0_sgpr1 = S_NAND_B64 %exec, killed %vcc, implicit-def %scc
118 %exec = COPY killed %sgpr0_sgpr1
119 S_ENDPGM
120...
121---
122# GCN-LABEL: name: reduce_nor_saveexec
123# GCN: %exec = S_NOR_B64 %exec, killed %vcc
124# GCN-NEXT: S_ENDPGM
125name: reduce_nor_saveexec
126tracksRegLiveness: true
127body: |
128 bb.0:
129 %vcc = IMPLICIT_DEF
130 %sgpr0_sgpr1 = S_NOR_B64 %exec, killed %vcc, implicit-def %scc
131 %exec = COPY killed %sgpr0_sgpr1
132 S_ENDPGM
133...
134---
135# GCN-LABEL: name: reduce_xnor_saveexec
136# GCN: %exec = S_XNOR_B64 %exec, killed %vcc
137# GCN-NEXT: S_ENDPGM
138name: reduce_xnor_saveexec
139tracksRegLiveness: true
140body: |
141 bb.0:
142 %vcc = IMPLICIT_DEF
143 %sgpr0_sgpr1 = S_XNOR_B64 %exec, killed %vcc, implicit-def %scc
144 %exec = COPY killed %sgpr0_sgpr1
145 S_ENDPGM
146...
147---