OSDN Git Service

[NVPTX] Fix handling of ldg/ldu intrinsics.
authorJustin Holewinski <jholewinski@nvidia.com>
Fri, 27 Jun 2014 18:35:51 +0000 (18:35 +0000)
committerJustin Holewinski <jholewinski@nvidia.com>
Fri, 27 Jun 2014 18:35:51 +0000 (18:35 +0000)
commitcb8f98382be7361c94439f48ec9b297e4d70c49e
tree6d7106e3c82873d46121fbb09453a5a2fd92c80e
parent899227441241fda27d9c9eaf9143d533fff75559
[NVPTX] Fix handling of ldg/ldu intrinsics.

The address space of the pointer must be global (1) for these intrinsics.  There must also be alignment metadata attached to the intrinsic calls, e.g.

%val = tail call i32 @llvm.nvvm.ldu.i.global.i32.p1i32(i32 addrspace(1)* %ptr), !align !0

!0 = metadata !{i32 4}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211939 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/IntrinsicsNVVM.td
lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
lib/Target/NVPTX/NVPTXISelDAGToDAG.h
lib/Target/NVPTX/NVPTXISelLowering.cpp
lib/Target/NVPTX/NVPTXIntrinsics.td
test/CodeGen/NVPTX/ldu-i8.ll
test/CodeGen/NVPTX/ldu-ldg.ll [new file with mode: 0644]
test/CodeGen/NVPTX/ldu-reg-plus-offset.ll