From ff921bc617fc6afd3c5ccecffdff8e2c0721cc92 Mon Sep 17 00:00:00 2001 From: Justin Lebar Date: Sat, 4 Feb 2017 01:54:56 +0000 Subject: [PATCH] [NVPTX] Add tests that invariant vector loads get lowered to ld.global.nc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294082 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/NVPTX/ldg-invariant.ll | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/CodeGen/NVPTX/ldg-invariant.ll b/test/CodeGen/NVPTX/ldg-invariant.ll index 40dad1f1769..311bea6f416 100644 --- a/test/CodeGen/NVPTX/ldg-invariant.ll +++ b/test/CodeGen/NVPTX/ldg-invariant.ll @@ -10,6 +10,30 @@ define i32 @ld_global(i32 addrspace(1)* %ptr) { ret i32 %a } +; CHECK-LABEL: @ld_global_v2i32 +define i32 @ld_global_v2i32(<2 x i32> addrspace(1)* %ptr) { +; CHECK: ld.global.nc.v2.{{[a-z]}}32 + %a = load <2 x i32>, <2 x i32> addrspace(1)* %ptr, !invariant.load !0 + %v1 = extractelement <2 x i32> %a, i32 0 + %v2 = extractelement <2 x i32> %a, i32 1 + %sum = add i32 %v1, %v2 + ret i32 %sum +} + +; CHECK-LABEL: @ld_global_v4i32 +define i32 @ld_global_v4i32(<4 x i32> addrspace(1)* %ptr) { +; CHECK: ld.global.nc.v4.{{[a-z]}}32 + %a = load <4 x i32>, <4 x i32> addrspace(1)* %ptr, !invariant.load !0 + %v1 = extractelement <4 x i32> %a, i32 0 + %v2 = extractelement <4 x i32> %a, i32 1 + %v3 = extractelement <4 x i32> %a, i32 2 + %v4 = extractelement <4 x i32> %a, i32 3 + %sum1 = add i32 %v1, %v2 + %sum2 = add i32 %v3, %v4 + %sum3 = add i32 %sum1, %sum2 + ret i32 %sum3 +} + ; CHECK-LABEL: @ld_not_invariant define i32 @ld_not_invariant(i32 addrspace(1)* %ptr) { ; CHECK: ld.global.{{[a-z]}}32 -- 2.50.1