[opaque pointer type] Add textual IR support for explicit type parameter to gep operator
[oota-llvm.git] / test / Transforms / GlobalOpt / globalsra.ll
1 ; RUN: opt < %s -globalopt -S | not grep global
2 target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
3
4 @G = internal global { i32, float, { double } } {
5     i32 1, 
6     float 1.000000e+00, 
7     { double } { double 1.727000e+01 } }                ; <{ i32, float, { double } }*> [#uses=3]
8
9 define void @onlystore() {
10         store i32 123, i32* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 0)
11         ret void
12 }
13
14 define float @storeinit() {
15         store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 1)
16         %X = load float, float* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 1)           ; <float> [#uses=1]
17         ret float %X
18 }
19
20 define double @constantize() {
21         %X = load double, double* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 2, i32 0)           ; <double> [#uses=1]
22         ret double %X
23 }
24