llvm-extract was unable to handle aliases. It would leave a copy on the
[oota-llvm.git] / test / Other / multi-pointer-size.ll
1 ; RUN: opt -instcombine %s | llvm-dis | FileCheck %s
2 target datalayout = "e-p:32:32:32-p1:64:64:64-p2:8:8:8-p3:16:16:16--p4:96:96:96-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32"
3
4 define i32 @test_as0(i32 addrspace(0)* %A) {
5 entry:
6 ; CHECK: %arrayidx = getelementptr i32* %A, i32 1
7   %arrayidx = getelementptr i32 addrspace(0)* %A, i64 1
8   %y = load i32 addrspace(0)* %arrayidx, align 4
9   ret i32 %y
10 }
11
12 define i32 @test_as1(i32 addrspace(1)* %A) {
13 entry:
14 ; CHECK: %arrayidx = getelementptr i32 addrspace(1)* %A, i64 1
15   %arrayidx = getelementptr i32 addrspace(1)* %A, i32 1
16   %y = load i32 addrspace(1)* %arrayidx, align 4
17   ret i32 %y
18 }
19
20 define i32 @test_as2(i32 addrspace(2)* %A) {
21 entry:
22 ; CHECK: %arrayidx = getelementptr i32 addrspace(2)* %A, i8 1
23   %arrayidx = getelementptr i32 addrspace(2)* %A, i32 1
24   %y = load i32 addrspace(2)* %arrayidx, align 4
25   ret i32 %y
26 }
27
28 define i32 @test_as3(i32 addrspace(3)* %A) {
29 entry:
30 ; CHECK: %arrayidx = getelementptr i32 addrspace(3)* %A, i16 1
31   %arrayidx = getelementptr i32 addrspace(3)* %A, i32 1
32   %y = load i32 addrspace(3)* %arrayidx, align 4
33   ret i32 %y
34 }
35
36 define i32 @test_as4(i32 addrspace(4)* %A) {
37 entry:
38 ; CHECK: %arrayidx = getelementptr i32 addrspace(4)* %A, i96 1
39   %arrayidx = getelementptr i32 addrspace(4)* %A, i32 1
40   %y = load i32 addrspace(4)* %arrayidx, align 4
41   ret i32 %y
42 }
43