HomePhabricator

AMDGPU: Avoid selecting ds_{read,write}2_b32 on SI

Description

AMDGPU: Avoid selecting ds_{read,write}2_b32 on SI

Summary:
To workaround a hardware issue in the (base + offset) calculation
when base is negative. The impact on code quality should be limited
since SILoadStoreOptimizer still runs afterwards and is able to
combine loads/stores based on known sign information.

This fixes visible corruption in Hitman on SI (easily reproducible
by running benchmark mode).

Change-Id: Ia178d207a5e2ac38ae7cd98b532ea2ae74704e5f
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99923

Reviewers: arsenm, mareko

Subscribers: jholewinski, kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Differential Revision: https://reviews.llvm.org/D53160

Details

Committed
nhaOct 17 2018, 8:37 AM
Differential Revision
D53160: AMDGPU: Avoid selecting ds_{read,write}2_b32 on SI
Parents
rL344697: StructurizeCFG: Simplify inserted PHI nodes
Branches
Unknown
Tags
Unknown