1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

Fix for regression after Global Load Scalarization patch

llvm-svn: 289822
This commit is contained in:
Alexander Timofeev 2016-12-15 15:17:19 +00:00
parent b6cc44c368
commit aa7ea574e9
2 changed files with 13 additions and 1 deletions

View File

@ -2785,7 +2785,8 @@ SDValue SITargetLowering::LowerLOAD(SDValue Op, SelectionDAG &DAG) const {
//
LLVM_FALLTHROUGH;
case AMDGPUAS::GLOBAL_ADDRESS: {
if (isMemOpUniform(Load) && isMemOpHasNoClobberedMemOperand(Load))
if (Subtarget->getScalarizeGlobalBehavior() && isMemOpUniform(Load) &&
isMemOpHasNoClobberedMemOperand(Load))
return SDValue();
// Non-uniform loads will be selected to MUBUF instructions, so they
// have the same legalization requirements as global and private

View File

@ -0,0 +1,11 @@
; RUN: llc -O2 -mtriple amdgcn--amdhsa -mcpu=fiji -amdgpu-scalarize-global-loads=false -verify-machineinstrs < %s | FileCheck %s
; CHECK-LABEL: %entry
; CHECK: flat_load_dwordx4
define amdgpu_kernel void @store_global(<16 x double> addrspace(1)* nocapture %out, <16 x double> addrspace(1)* nocapture readonly %in) {
entry:
%tmp = load <16 x double>, <16 x double> addrspace(1)* %in
store <16 x double> %tmp, <16 x double> addrspace(1)* %out
ret void
}