diff options
| author | Justin Lebar <jlebar@google.com> | 2018-02-28 23:58:05 +0000 |
|---|---|---|
| committer | Justin Lebar <jlebar@google.com> | 2018-02-28 23:58:05 +0000 |
| commit | faaf2d298e033bf8cdd130a124bfc2c74fe5f046 (patch) | |
| tree | 557f3e582e84c6dcab61183f6ff5b5ac7f362e14 /llvm/test/CodeGen | |
| parent | 5a7de898d236e2b426e050ce51fb72e382eafa28 (diff) | |
| download | bcm5719-llvm-faaf2d298e033bf8cdd130a124bfc2c74fe5f046.tar.gz bcm5719-llvm-faaf2d298e033bf8cdd130a124bfc2c74fe5f046.zip | |
[NVPTX] Lower loads from global constants using ld.global.nc (aka LDG).
Summary:
After D43914, loads from global variables in addrspace(1) happen with
ld.global. But since they're constants, even better would be to use
ld.global.nc, aka ldg.
Reviewers: tra
Subscribers: jholewinski, sanjoy, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D43915
llvm-svn: 326390
Diffstat (limited to 'llvm/test/CodeGen')
| -rw-r--r-- | llvm/test/CodeGen/NVPTX/read-global-variable-constant.ll | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/NVPTX/read-global-variable-constant.ll b/llvm/test/CodeGen/NVPTX/read-global-variable-constant.ll new file mode 100644 index 00000000000..cb9e6dc3a45 --- /dev/null +++ b/llvm/test/CodeGen/NVPTX/read-global-variable-constant.ll @@ -0,0 +1,29 @@ +; RUN: llc < %s -march=nvptx -mcpu=sm_35 | FileCheck %s + +; Check load from constant global variables. These loads should be +; ld.global.nc (aka ldg). + +@gv_float = external constant float +@gv_float2 = external constant <2 x float> +@gv_float4 = external constant <4 x float> + +; CHECK-LABEL: test_gv_float() +define float @test_gv_float() { +; CHECK: ld.global.nc.f32 + %v = load float, float* @gv_float + ret float %v +} + +; CHECK-LABEL: test_gv_float2() +define <2 x float> @test_gv_float2() { +; CHECK: ld.global.nc.v2.f32 + %v = load <2 x float>, <2 x float>* @gv_float2 + ret <2 x float> %v +} + +; CHECK-LABEL: test_gv_float4() +define <4 x float> @test_gv_float4() { +; CHECK: ld.global.nc.v4.f32 + %v = load <4 x float>, <4 x float>* @gv_float4 + ret <4 x float> %v +} |

