blob: 7d43c382d9e7ae1bc2682b248dfeb89a23afe854 [file] [log] [blame]
Dan Gohman72a13d22009-09-08 22:34:10 +00001; RUN: opt < %s -globalopt -S | not grep global
Kenneth Uildriks90fedc62009-11-03 15:29:06 +00002target 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"
Chris Lattner6935f562004-10-08 17:29:47 +00003
Tanya Lattner5640bd12008-03-01 09:15:35 +00004@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]
Chris Lattner6935f562004-10-08 17:29:47 +00008
Tanya Lattner5640bd12008-03-01 09:15:35 +00009define void @onlystore() {
David Blaikief72d05b2015-03-13 18:20:45 +000010 store i32 123, i32* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 0)
Tanya Lattner5640bd12008-03-01 09:15:35 +000011 ret void
Chris Lattner6935f562004-10-08 17:29:47 +000012}
13
Tanya Lattner5640bd12008-03-01 09:15:35 +000014define float @storeinit() {
David Blaikief72d05b2015-03-13 18:20:45 +000015 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]
Tanya Lattner5640bd12008-03-01 09:15:35 +000017 ret float %X
Chris Lattner6935f562004-10-08 17:29:47 +000018}
19
Tanya Lattner5640bd12008-03-01 09:15:35 +000020define double @constantize() {
David Blaikief72d05b2015-03-13 18:20:45 +000021 %X = load double, double* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 2, i32 0) ; <double> [#uses=1]
Tanya Lattner5640bd12008-03-01 09:15:35 +000022 ret double %X
Chris Lattner6935f562004-10-08 17:29:47 +000023}
Tanya Lattner5640bd12008-03-01 09:15:35 +000024
James Molloyeb040cc2016-04-25 10:48:29 +000025@G2 = internal constant { i32, float, { double } } {
26 i32 1,
27 float 1.000000e+00,
28 { double } { double 1.727000e+01 } } ; <{ i32, float, { double } }*> [#uses=3]
29
30define void @onlystore2() {
31 store i32 123, i32* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 0)
32 ret void
33}
34
35define float @storeinit2() {
36 store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 1)
37 %X = load float, float* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 1) ; <float> [#uses=1]
38 ret float %X
39}
40
41define double @constantize2() {
42 %X = load double, double* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 2, i32 0) ; <double> [#uses=1]
43 ret double %X
44}
45