[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)
commitb926d9d446f2b08fb4fb5905b8f92e1bad872ac8
treea8aed5aef8be2bd630cb7e2a68466df9991208da
parent6e40f63e419f5a558d00cc771922239f6ee52169
[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}

llvm-svn: 211939
llvm/include/llvm/IR/IntrinsicsNVVM.td
llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h
llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
llvm/test/CodeGen/NVPTX/ldu-i8.ll
llvm/test/CodeGen/NVPTX/ldu-ldg.ll [new file with mode: 0644]
llvm/test/CodeGen/NVPTX/ldu-reg-plus-offset.ll