blob: fb22963bc97448f0326aa7d8735c2f8336a107b0 [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
Puyan Lotfi43e94b12018-01-31 22:04:26 +00005# GCN: $exec = S_AND_B64 $exec, killed $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +00006# GCN-NEXT: S_ENDPGM
7name: reduce_and_saveexec
8tracksRegLiveness: true
9body: |
10 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000011 $vcc = IMPLICIT_DEF
12 $sgpr0_sgpr1 = S_AND_B64 $exec, killed $vcc, implicit-def $scc
13 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000014 S_ENDPGM
15...
16---
17# GCN-LABEL: name: reduce_and_saveexec_commuted
Puyan Lotfi43e94b12018-01-31 22:04:26 +000018# GCN: $exec = S_AND_B64 killed $vcc, $exec
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000019# GCN-NEXT: S_ENDPGM
20name: reduce_and_saveexec_commuted
21tracksRegLiveness: true
22body: |
23 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000024 $vcc = IMPLICIT_DEF
25 $sgpr0_sgpr1 = S_AND_B64 killed $vcc, $exec, implicit-def $scc
26 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000027 S_ENDPGM
28...
29---
30# GCN-LABEL: name: reduce_and_saveexec_liveout
Puyan Lotfi43e94b12018-01-31 22:04:26 +000031# GCN: $sgpr0_sgpr1 = S_AND_B64 $exec, killed $vcc
32# GCN-NEXT: $exec = COPY
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000033name: reduce_and_saveexec_liveout
34tracksRegLiveness: true
35body: |
36 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000037 $vcc = IMPLICIT_DEF
38 $sgpr0_sgpr1 = S_AND_B64 $exec, killed $vcc, implicit-def $scc
39 $exec = COPY $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000040 S_ENDPGM
41...
42---
43# GCN-LABEL: name: and_saveexec
Puyan Lotfi43e94b12018-01-31 22:04:26 +000044# GCN: $sgpr0_sgpr1 = S_AND_SAVEEXEC_B64 $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000045# GCN-NEXT: S_ENDPGM
46name: and_saveexec
47tracksRegLiveness: true
48body: |
49 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000050 $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
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000054 S_ENDPGM
55...
56---
57# GCN-LABEL: name: reduce_or_saveexec
Puyan Lotfi43e94b12018-01-31 22:04:26 +000058# GCN: $exec = S_OR_B64 $exec, killed $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000059# GCN-NEXT: S_ENDPGM
60name: reduce_or_saveexec
61tracksRegLiveness: true
62body: |
63 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000064 $vcc = IMPLICIT_DEF
65 $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc
66 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000067 S_ENDPGM
68...
69---
70# GCN-LABEL: name: reduce_xor_saveexec
Puyan Lotfi43e94b12018-01-31 22:04:26 +000071# GCN: $exec = S_XOR_B64 $exec, killed $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000072# GCN-NEXT: S_ENDPGM
73name: reduce_xor_saveexec
74tracksRegLiveness: true
75body: |
76 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000077 $vcc = IMPLICIT_DEF
78 $sgpr0_sgpr1 = S_XOR_B64 $exec, killed $vcc, implicit-def $scc
79 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000080 S_ENDPGM
81...
82---
83# GCN-LABEL: name: reduce_andn2_saveexec
Puyan Lotfi43e94b12018-01-31 22:04:26 +000084# GCN: $exec = S_ANDN2_B64 $exec, killed $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000085# GCN-NEXT: S_ENDPGM
86name: reduce_andn2_saveexec
87tracksRegLiveness: true
88body: |
89 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +000090 $vcc = IMPLICIT_DEF
91 $sgpr0_sgpr1 = S_ANDN2_B64 $exec, killed $vcc, implicit-def $scc
92 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000093 S_ENDPGM
94...
95---
96# GCN-LABEL: name: reduce_orn2_saveexec
Puyan Lotfi43e94b12018-01-31 22:04:26 +000097# GCN: $exec = S_ORN2_B64 $exec, killed $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +000098# GCN-NEXT: S_ENDPGM
99name: reduce_orn2_saveexec
100tracksRegLiveness: true
101body: |
102 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +0000103 $vcc = IMPLICIT_DEF
104 $sgpr0_sgpr1 = S_ORN2_B64 $exec, killed $vcc, implicit-def $scc
105 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +0000106 S_ENDPGM
107...
108---
109# GCN-LABEL: name: reduce_nand_saveexec
Puyan Lotfi43e94b12018-01-31 22:04:26 +0000110# GCN: $exec = S_NAND_B64 $exec, killed $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +0000111# GCN-NEXT: S_ENDPGM
112name: reduce_nand_saveexec
113tracksRegLiveness: true
114body: |
115 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +0000116 $vcc = IMPLICIT_DEF
117 $sgpr0_sgpr1 = S_NAND_B64 $exec, killed $vcc, implicit-def $scc
118 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +0000119 S_ENDPGM
120...
121---
122# GCN-LABEL: name: reduce_nor_saveexec
Puyan Lotfi43e94b12018-01-31 22:04:26 +0000123# GCN: $exec = S_NOR_B64 $exec, killed $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +0000124# GCN-NEXT: S_ENDPGM
125name: reduce_nor_saveexec
126tracksRegLiveness: true
127body: |
128 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +0000129 $vcc = IMPLICIT_DEF
130 $sgpr0_sgpr1 = S_NOR_B64 $exec, killed $vcc, implicit-def $scc
131 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +0000132 S_ENDPGM
133...
134---
135# GCN-LABEL: name: reduce_xnor_saveexec
Puyan Lotfi43e94b12018-01-31 22:04:26 +0000136# GCN: $exec = S_XNOR_B64 $exec, killed $vcc
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +0000137# GCN-NEXT: S_ENDPGM
138name: reduce_xnor_saveexec
139tracksRegLiveness: true
140body: |
141 bb.0:
Puyan Lotfi43e94b12018-01-31 22:04:26 +0000142 $vcc = IMPLICIT_DEF
143 $sgpr0_sgpr1 = S_XNOR_B64 $exec, killed $vcc, implicit-def $scc
144 $exec = COPY killed $sgpr0_sgpr1
Stanislav Mekhanoshinda0edef2017-08-01 23:44:35 +0000145 S_ENDPGM
146...
147---