This requires 3 wait states unless there is a wait or VALU in
between
Details
Diff Detail
Event Timeline
lib/Target/AMDGPU/GCNHazardRecognizer.cpp | ||
---|---|---|
148 | Typo Denrom | |
1156–1157 | Assuming false for memoperands_empty is wrong | |
1157–1163 | This whole approach to identifying the atomic opcodes doesn't really work. You can't rely on any of the information in the memoperand, especially the IR pointee type. We do have an SIInstrFlags::maybeAtomic, but I think you need to check the opcode for if it's an FP one | |
1161–1163 | Can't use the pointee type | |
test/CodeGen/AMDGPU/fp-atomic-to-s_denormmode.mir | ||
39 | Should test all the FP atomic opcodes |
lib/Target/AMDGPU/GCNHazardRecognizer.cpp | ||
---|---|---|
1157–1163 | maybeAtomic will catch too much, including atomic loads and stores. I can use "AMDGPU::getAtomicRetOp(I->getOpcode()) != -1" to catch it. |
lib/Target/AMDGPU/GCNHazardRecognizer.cpp | ||
---|---|---|
1157–1163 | Another bit would be fine |
LGTM assuming the DS atomics really aren't impacted
lib/Target/AMDGPU/BUFInstructions.td | ||
---|---|---|
696 ↗ | (On Diff #205910) | I didn't know you could omit the braces here |
According to the ticket that is only vmem.
lib/Target/AMDGPU/BUFInstructions.td | ||
---|---|---|
696 ↗ | (On Diff #205910) | You do not need braces to cover a single def. |
Typo Denrom