From 4a16efa3e43e35f0cc9efe3a67f620f0017c3d36 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Mon, 8 Apr 2013 18:41:23 +0000 Subject: Vendor import of llvm trunk r178860: http://llvm.org/svn/llvm-project/llvm/trunk@178860 --- test/Assembler/getelementptr.ll | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'test/Assembler/getelementptr.ll') diff --git a/test/Assembler/getelementptr.ll b/test/Assembler/getelementptr.ll index ce6866d54417..af03fca6d2c1 100644 --- a/test/Assembler/getelementptr.ll +++ b/test/Assembler/getelementptr.ll @@ -7,12 +7,12 @@ @C = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]]* @A, i64 3, i64 2, i64 0, i64 0, i64 7523) ; CHECK: @C = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]]* @A, i64 39, i64 1, i64 1, i64 4, i64 5) -;; Verify that i16 indices work. +; Verify that i16 indices work. @x = external global {i32, i32} @y = global i32* getelementptr ({ i32, i32 }* @x, i16 42, i32 0) ; CHECK: @y = global i32* getelementptr ({ i32, i32 }* @x, i16 42, i32 0) -; see if i92 indices work too. +; See if i92 indices work too. define i32 *@test({i32, i32}* %t, i92 %n) { ; CHECK: @test ; CHECK: %B = getelementptr { i32, i32 }* %t, i92 %n, i32 0 @@ -20,3 +20,18 @@ define i32 *@test({i32, i32}* %t, i92 %n) { ret i32* %B } +; Verify that constant expression vector GEPs work. + +@z = global <2 x i32*> getelementptr (<2 x [3 x {i32, i32}]*> zeroinitializer, <2 x i32> , <2 x i32> , <2 x i32> ) + +; Verify that struct GEP works with a vector of pointers. +define <2 x i32*> @test7(<2 x {i32, i32}*> %a) { + %w = getelementptr <2 x {i32, i32}*> %a, <2 x i32> , <2 x i32> zeroinitializer + ret <2 x i32*> %w +} + +; Verify that array GEP works with a vector of pointers. +define <2 x i8*> @test8(<2 x [2 x i8]*> %a) { + %w = getelementptr <2 x [2 x i8]*> %a, <2 x i32> , <2 x i8> + ret <2 x i8*> %w +} -- cgit v1.2.3