; RUN: opt < %s -globalopt -S | not grep global
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"

@G = internal global { i32, float, { double } } {
    i32 1, 
    float 1.000000e+00, 
    { double } { double 1.727000e+01 } }                ; <{ i32, float, { double } }*> [#uses=3]

define void @onlystore() {
        store i32 123, i32* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 0)
        ret void
}

define float @storeinit() {
        store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1)
        %X = load float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1)           ; <float> [#uses=1]
        ret float %X
}

define double @constantize() {
        %X = load double* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 2, i32 0)           ; <double> [#uses=1]
        ret double %X
}

