File tree 2 files changed +10
-7
lines changed
2 files changed +10
-7
lines changed Original file line number Diff line number Diff line change @@ -4010,7 +4010,8 @@ bool SIInstrInfo::hasUnwantedEffectsWhenEXECEmpty(const MachineInstr &MI) const
4010
4010
//
4011
4011
// However, executing them with EXEC = 0 causes them to operate on undefined
4012
4012
// data, which we avoid by returning true here.
4013
- if (Opcode == AMDGPU::V_READFIRSTLANE_B32)
4013
+ if (Opcode == AMDGPU::V_READFIRSTLANE_B32 ||
4014
+ Opcode == AMDGPU::V_READLANE_B32 || Opcode == AMDGPU::V_WRITELANE_B32)
4014
4015
return true ;
4015
4016
4016
4017
return false ;
Original file line number Diff line number Diff line change @@ -130,12 +130,13 @@ body: |
130
130
131
131
---
132
132
133
- name : dont_skip_writelane_b32
133
+ name : need_skip_writelane_b32
134
134
body : |
135
- ; CHECK-LABEL: name: dont_skip_writelane_b32
135
+ ; CHECK-LABEL: name: need_skip_writelane_b32
136
136
; CHECK: bb.0:
137
- ; CHECK-NEXT: successors: %bb.1(0x40000000)
137
+ ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
138
138
; CHECK-NEXT: {{ $}}
139
+ ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec
139
140
; CHECK-NEXT: {{ $}}
140
141
; CHECK-NEXT: bb.1:
141
142
; CHECK-NEXT: successors: %bb.2(0x80000000)
@@ -159,12 +160,13 @@ body: |
159
160
...
160
161
161
162
---
162
- name : dont_skip_readlane_b32
163
+ name : need_skip_readlane_b32
163
164
body : |
164
- ; CHECK-LABEL: name: dont_skip_readlane_b32
165
+ ; CHECK-LABEL: name: need_skip_readlane_b32
165
166
; CHECK: bb.0:
166
- ; CHECK-NEXT: successors: %bb.1(0x40000000)
167
+ ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
167
168
; CHECK-NEXT: {{ $}}
169
+ ; CHECK-NEXT: S_CBRANCH_EXECZ %bb.2, implicit $exec
168
170
; CHECK-NEXT: {{ $}}
169
171
; CHECK-NEXT: bb.1:
170
172
; CHECK-NEXT: successors: %bb.2(0x80000000)
You can’t perform that action at this time.
0 commit comments