blob: a613c3310a557e812311d516f70ebcb171d2cb25 [file] [log] [blame]
Ulrich Weigand14bd5212014-06-27 13:04:12 +00001; RUN: llc -O0 -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 < %s | FileCheck %s
2
3; Due to a bug in resolveFrameIndex we ended up with invalid addresses
4; containing a base register 0. Verify that this no longer happens.
5; CHECK-NOT: (0)
6
7target datalayout = "E-m:e-i64:64-n32:64"
8target triple = "powerpc64-unknown-linux-gnu"
9
10%struct.Info = type { i32, i32, i8*, i8*, i8*, [32 x i8*], i64, [32 x i64], i64, i64, i64, [32 x i64] }
11%struct.S1998 = type { [2 x i32*], i64, i64, double, i16, i32, [29 x %struct.anon], i16, i8, i32, [8 x i8] }
12%struct.anon = type { [16 x double], i32, i16, i32, [3 x i8], [6 x i8], [4 x i32], i8 }
13
14@info = global %struct.Info zeroinitializer, align 8
15@fails = global i32 0, align 4
16@intarray = global [256 x i32] zeroinitializer, align 4
17@s1998 = global %struct.S1998 zeroinitializer, align 16
18@a1998 = external global [5 x %struct.S1998]
19
20define void @test1998() {
21entry:
22 %i = alloca i32, align 4
23 %j = alloca i32, align 4
24 %tmp = alloca i32, align 4
25 %agg.tmp = alloca %struct.S1998, align 16
26 %agg.tmp111 = alloca %struct.S1998, align 16
27 %agg.tmp112 = alloca %struct.S1998, align 16
28 %agg.tmp113 = alloca %struct.S1998, align 16
29 %agg.tmp114 = alloca %struct.S1998, align 16
30 %agg.tmp115 = alloca %struct.S1998, align 16
31 %agg.tmp116 = alloca %struct.S1998, align 16
32 %agg.tmp117 = alloca %struct.S1998, align 16
33 %agg.tmp118 = alloca %struct.S1998, align 16
34 %agg.tmp119 = alloca %struct.S1998, align 16
Pete Cooper67cf9a72015-11-19 05:56:52 +000035 call void @llvm.memset.p0i8.i64(i8* bitcast (%struct.S1998* @s1998 to i8*), i8 0, i64 5168, i32 16, i1 false)
36 call void @llvm.memset.p0i8.i64(i8* bitcast ([5 x %struct.S1998]* @a1998 to i8*), i8 0, i64 25840, i32 16, i1 false)
37 call void @llvm.memset.p0i8.i64(i8* bitcast (%struct.Info* @info to i8*), i8 0, i64 832, i32 8, i1 false)
David Blaikief72d05b2015-03-13 18:20:45 +000038 store i8* bitcast (%struct.S1998* @s1998 to i8*), i8** getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 2), align 8
39 store i8* bitcast ([5 x %struct.S1998]* @a1998 to i8*), i8** getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 3), align 8
40 store i8* bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 3) to i8*), i8** getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 4), align 8
41 store i64 5168, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 6), align 8
42 store i64 16, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 8), align 8
43 store i64 16, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 9), align 8
44 store i64 16, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 10), align 8
45 %0 = load i64, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 8), align 8
Ulrich Weigand14bd5212014-06-27 13:04:12 +000046 %sub = sub i64 %0, 1
David Blaikief72d05b2015-03-13 18:20:45 +000047 %and = and i64 ptrtoint (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 3) to i64), %sub
Ulrich Weigand14bd5212014-06-27 13:04:12 +000048 %tobool = icmp ne i64 %and, 0
49 br i1 %tobool, label %if.then, label %if.end
50
51if.then: ; preds = %entry
David Blaikiea79ac142015-02-27 21:17:42 +000052 %1 = load i32, i32* @fails, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000053 %inc = add nsw i32 %1, 1
54 store i32 %inc, i32* @fails, align 4
55 br label %if.end
56
57if.end: ; preds = %if.then, %entry
58 store i32 0, i32* %i, align 4
59 store i32 0, i32* %j, align 4
David Blaikiea79ac142015-02-27 21:17:42 +000060 %2 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000061 %idxprom = sext i32 %2 to i64
David Blaikief72d05b2015-03-13 18:20:45 +000062 %arrayidx = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom
63 store i8* bitcast (i32** getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 0, i64 1) to i8*), i8** %arrayidx, align 8
David Blaikiea79ac142015-02-27 21:17:42 +000064 %3 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000065 %idxprom1 = sext i32 %3 to i64
David Blaikief72d05b2015-03-13 18:20:45 +000066 %arrayidx2 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom1
Ulrich Weigand14bd5212014-06-27 13:04:12 +000067 store i64 8, i64* %arrayidx2, align 8
David Blaikiea79ac142015-02-27 21:17:42 +000068 %4 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000069 %idxprom3 = sext i32 %4 to i64
David Blaikief72d05b2015-03-13 18:20:45 +000070 %arrayidx4 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom3
Ulrich Weigand14bd5212014-06-27 13:04:12 +000071 store i64 8, i64* %arrayidx4, align 8
David Blaikief72d05b2015-03-13 18:20:45 +000072 store i32* getelementptr inbounds ([256 x i32], [256 x i32]* @intarray, i32 0, i64 190), i32** getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 0, i64 1), align 8
73 store i32* getelementptr inbounds ([256 x i32], [256 x i32]* @intarray, i32 0, i64 241), i32** getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 0, i64 1), align 8
David Blaikiea79ac142015-02-27 21:17:42 +000074 %5 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000075 %inc5 = add nsw i32 %5, 1
76 store i32 %inc5, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +000077 %6 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000078 %idxprom6 = sext i32 %6 to i64
David Blaikief72d05b2015-03-13 18:20:45 +000079 %arrayidx7 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom6
80 store i8* bitcast (i64* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 1) to i8*), i8** %arrayidx7, align 8
David Blaikiea79ac142015-02-27 21:17:42 +000081 %7 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000082 %idxprom8 = sext i32 %7 to i64
David Blaikief72d05b2015-03-13 18:20:45 +000083 %arrayidx9 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom8
Ulrich Weigand14bd5212014-06-27 13:04:12 +000084 store i64 8, i64* %arrayidx9, align 8
David Blaikiea79ac142015-02-27 21:17:42 +000085 %8 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000086 %idxprom10 = sext i32 %8 to i64
David Blaikief72d05b2015-03-13 18:20:45 +000087 %arrayidx11 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom10
Ulrich Weigand14bd5212014-06-27 13:04:12 +000088 store i64 8, i64* %arrayidx11, align 8
David Blaikief72d05b2015-03-13 18:20:45 +000089 store i64 -3866974208859106459, i64* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 1), align 8
90 store i64 -185376695371304091, i64* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 1), align 8
David Blaikiea79ac142015-02-27 21:17:42 +000091 %9 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000092 %inc12 = add nsw i32 %9, 1
93 store i32 %inc12, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +000094 %10 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000095 %idxprom13 = sext i32 %10 to i64
David Blaikief72d05b2015-03-13 18:20:45 +000096 %arrayidx14 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom13
97 store i8* bitcast (i64* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 2) to i8*), i8** %arrayidx14, align 8
David Blaikiea79ac142015-02-27 21:17:42 +000098 %11 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +000099 %idxprom15 = sext i32 %11 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000100 %arrayidx16 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom15
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000101 store i64 8, i64* %arrayidx16, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000102 %12 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000103 %idxprom17 = sext i32 %12 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000104 %arrayidx18 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom17
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000105 store i64 8, i64* %arrayidx18, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000106 store i64 -963638028680427187, i64* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 2), align 8
107 store i64 7510542175772455554, i64* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 2), align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000108 %13 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000109 %inc19 = add nsw i32 %13, 1
110 store i32 %inc19, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000111 %14 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000112 %idxprom20 = sext i32 %14 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000113 %arrayidx21 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom20
114 store i8* bitcast (double* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 3) to i8*), i8** %arrayidx21, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000115 %15 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000116 %idxprom22 = sext i32 %15 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000117 %arrayidx23 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom22
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000118 store i64 8, i64* %arrayidx23, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000119 %16 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000120 %idxprom24 = sext i32 %16 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000121 %arrayidx25 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom24
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000122 store i64 16, i64* %arrayidx25, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000123 store double 0xC0F8783300000000, double* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 3), align 16
124 store double 0xC10DF3CCC0000000, double* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 3), align 16
David Blaikiea79ac142015-02-27 21:17:42 +0000125 %17 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000126 %inc26 = add nsw i32 %17, 1
127 store i32 %inc26, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000128 %18 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000129 %idxprom27 = sext i32 %18 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000130 %arrayidx28 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom27
131 store i8* bitcast (i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 4) to i8*), i8** %arrayidx28, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000132 %19 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000133 %idxprom29 = sext i32 %19 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000134 %arrayidx30 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom29
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000135 store i64 2, i64* %arrayidx30, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000136 %20 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000137 %idxprom31 = sext i32 %20 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000138 %arrayidx32 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom31
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000139 store i64 2, i64* %arrayidx32, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000140 store i16 -15897, i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 4), align 2
141 store i16 30935, i16* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 4), align 2
David Blaikiea79ac142015-02-27 21:17:42 +0000142 %21 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000143 %inc33 = add nsw i32 %21, 1
144 store i32 %inc33, i32* %i, align 4
David Blaikief72d05b2015-03-13 18:20:45 +0000145 store i32 -419541644, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 5), align 4
146 store i32 2125926812, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 5), align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000147 %22 = load i32, i32* %j, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000148 %inc34 = add nsw i32 %22, 1
149 store i32 %inc34, i32* %j, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000150 %23 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000151 %idxprom35 = sext i32 %23 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000152 %arrayidx36 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom35
153 store i8* bitcast (double* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 0, i64 0) to i8*), i8** %arrayidx36, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000154 %24 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000155 %idxprom37 = sext i32 %24 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000156 %arrayidx38 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom37
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000157 store i64 8, i64* %arrayidx38, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000158 %25 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000159 %idxprom39 = sext i32 %25 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000160 %arrayidx40 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom39
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000161 store i64 8, i64* %arrayidx40, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000162 store double 0xC0FC765780000000, double* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 0, i64 0), align 8
163 store double 0xC1025CD7A0000000, double* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 0, i64 0), align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000164 %26 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000165 %inc41 = add nsw i32 %26, 1
166 store i32 %inc41, i32* %i, align 4
David Blaikief72d05b2015-03-13 18:20:45 +0000167 %bf.load = load i32, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 1), align 8
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000168 %bf.clear = and i32 %bf.load, 7
169 %bf.set = or i32 %bf.clear, 16
David Blaikief72d05b2015-03-13 18:20:45 +0000170 store i32 %bf.set, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 1), align 8
171 %bf.load42 = load i32, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 1), align 8
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000172 %bf.clear43 = and i32 %bf.load42, 7
173 %bf.set44 = or i32 %bf.clear43, 24
David Blaikief72d05b2015-03-13 18:20:45 +0000174 store i32 %bf.set44, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 1), align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000175 %27 = load i32, i32* %j, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000176 %inc45 = add nsw i32 %27, 1
177 store i32 %inc45, i32* %j, align 4
David Blaikief72d05b2015-03-13 18:20:45 +0000178 %bf.load46 = load i16, i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 2), align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000179 %bf.clear47 = and i16 %bf.load46, 127
David Blaikief72d05b2015-03-13 18:20:45 +0000180 store i16 %bf.clear47, i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 2), align 4
181 %bf.load48 = load i16, i16* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 2), align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000182 %bf.clear49 = and i16 %bf.load48, 127
David Blaikief72d05b2015-03-13 18:20:45 +0000183 store i16 %bf.clear49, i16* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 2), align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000184 %28 = load i32, i32* %j, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000185 %inc50 = add nsw i32 %28, 1
186 store i32 %inc50, i32* %j, align 4
David Blaikief72d05b2015-03-13 18:20:45 +0000187 %bf.load51 = load i32, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 3), align 8
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000188 %bf.clear52 = and i32 %bf.load51, 63
David Blaikief72d05b2015-03-13 18:20:45 +0000189 store i32 %bf.clear52, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 3), align 8
190 %bf.load53 = load i32, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 3), align 8
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000191 %bf.clear54 = and i32 %bf.load53, 63
192 %bf.set55 = or i32 %bf.clear54, 64
David Blaikief72d05b2015-03-13 18:20:45 +0000193 store i32 %bf.set55, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 3), align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000194 %29 = load i32, i32* %j, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000195 %inc56 = add nsw i32 %29, 1
196 store i32 %inc56, i32* %j, align 4
David Blaikief72d05b2015-03-13 18:20:45 +0000197 %bf.load57 = load i24, i24* bitcast ([3 x i8]* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 4) to i24*), align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000198 %bf.clear58 = and i24 %bf.load57, 63
David Blaikief72d05b2015-03-13 18:20:45 +0000199 store i24 %bf.clear58, i24* bitcast ([3 x i8]* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 4) to i24*), align 4
200 %bf.load59 = load i24, i24* bitcast ([3 x i8]* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 4) to i24*), align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000201 %bf.clear60 = and i24 %bf.load59, 63
David Blaikief72d05b2015-03-13 18:20:45 +0000202 store i24 %bf.clear60, i24* bitcast ([3 x i8]* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 4) to i24*), align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000203 %30 = load i32, i32* %j, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000204 %inc61 = add nsw i32 %30, 1
205 store i32 %inc61, i32* %j, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000206 %31 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000207 %idxprom62 = sext i32 %31 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000208 %arrayidx63 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom62
209 store i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 5, i64 5), i8** %arrayidx63, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000210 %32 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000211 %idxprom64 = sext i32 %32 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000212 %arrayidx65 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom64
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000213 store i64 1, i64* %arrayidx65, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000214 %33 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000215 %idxprom66 = sext i32 %33 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000216 %arrayidx67 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom66
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000217 store i64 1, i64* %arrayidx67, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000218 store i8 -83, i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 5, i64 5), align 1
219 store i8 -67, i8* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 5, i64 5), align 1
David Blaikiea79ac142015-02-27 21:17:42 +0000220 %34 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000221 %inc68 = add nsw i32 %34, 1
222 store i32 %inc68, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000223 %35 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000224 %idxprom69 = sext i32 %35 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000225 %arrayidx70 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom69
226 store i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 5, i64 1), i8** %arrayidx70, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000227 %36 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000228 %idxprom71 = sext i32 %36 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000229 %arrayidx72 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom71
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000230 store i64 1, i64* %arrayidx72, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000231 %37 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000232 %idxprom73 = sext i32 %37 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000233 %arrayidx74 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom73
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000234 store i64 1, i64* %arrayidx74, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000235 store i8 34, i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 5, i64 1), align 1
236 store i8 64, i8* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 5, i64 1), align 1
David Blaikiea79ac142015-02-27 21:17:42 +0000237 %38 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000238 %inc75 = add nsw i32 %38, 1
239 store i32 %inc75, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000240 %39 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000241 %idxprom76 = sext i32 %39 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000242 %arrayidx77 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom76
243 store i8* bitcast (i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 6, i64 3) to i8*), i8** %arrayidx77, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000244 %40 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000245 %idxprom78 = sext i32 %40 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000246 %arrayidx79 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom78
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000247 store i64 4, i64* %arrayidx79, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000248 %41 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000249 %idxprom80 = sext i32 %41 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000250 %arrayidx81 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom80
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000251 store i64 4, i64* %arrayidx81, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000252 store i32 -3, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 6, i64 3), align 4
253 store i32 -3, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 6, i64 3), align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000254 %42 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000255 %inc82 = add nsw i32 %42, 1
256 store i32 %inc82, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000257 %43 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000258 %idxprom83 = sext i32 %43 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000259 %arrayidx84 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom83
260 store i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 7), i8** %arrayidx84, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000261 %44 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000262 %idxprom85 = sext i32 %44 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000263 %arrayidx86 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom85
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000264 store i64 1, i64* %arrayidx86, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000265 %45 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000266 %idxprom87 = sext i32 %45 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000267 %arrayidx88 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom87
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000268 store i64 1, i64* %arrayidx88, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000269 store i8 106, i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 7), align 1
270 store i8 -102, i8* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 7), align 1
David Blaikiea79ac142015-02-27 21:17:42 +0000271 %46 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000272 %inc89 = add nsw i32 %46, 1
273 store i32 %inc89, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000274 %47 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000275 %idxprom90 = sext i32 %47 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000276 %arrayidx91 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom90
277 store i8* bitcast (i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 7) to i8*), i8** %arrayidx91, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000278 %48 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000279 %idxprom92 = sext i32 %48 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000280 %arrayidx93 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom92
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000281 store i64 2, i64* %arrayidx93, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000282 %49 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000283 %idxprom94 = sext i32 %49 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000284 %arrayidx95 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom94
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000285 store i64 2, i64* %arrayidx95, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000286 store i16 29665, i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 7), align 2
287 store i16 7107, i16* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 7), align 2
David Blaikiea79ac142015-02-27 21:17:42 +0000288 %50 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000289 %inc96 = add nsw i32 %50, 1
290 store i32 %inc96, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000291 %51 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000292 %idxprom97 = sext i32 %51 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000293 %arrayidx98 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom97
294 store i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 8), i8** %arrayidx98, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000295 %52 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000296 %idxprom99 = sext i32 %52 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000297 %arrayidx100 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom99
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000298 store i64 1, i64* %arrayidx100, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000299 %53 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000300 %idxprom101 = sext i32 %53 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000301 %arrayidx102 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom101
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000302 store i64 1, i64* %arrayidx102, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000303 store i8 52, i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 8), align 1
304 store i8 -86, i8* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 8), align 1
David Blaikiea79ac142015-02-27 21:17:42 +0000305 %54 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000306 %inc103 = add nsw i32 %54, 1
307 store i32 %inc103, i32* %i, align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000308 %55 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000309 %idxprom104 = sext i32 %55 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000310 %arrayidx105 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom104
311 store i8* bitcast (i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 9) to i8*), i8** %arrayidx105, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000312 %56 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000313 %idxprom106 = sext i32 %56 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000314 %arrayidx107 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom106
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000315 store i64 4, i64* %arrayidx107, align 8
David Blaikiea79ac142015-02-27 21:17:42 +0000316 %57 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000317 %idxprom108 = sext i32 %57 to i64
David Blaikief72d05b2015-03-13 18:20:45 +0000318 %arrayidx109 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom108
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000319 store i64 4, i64* %arrayidx109, align 8
David Blaikief72d05b2015-03-13 18:20:45 +0000320 store i32 -54118453, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 9), align 4
321 store i32 1668755823, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 9), align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000322 %58 = load i32, i32* %i, align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000323 %inc110 = add nsw i32 %58, 1
324 store i32 %inc110, i32* %i, align 4
325 store i32 %inc110, i32* %tmp
David Blaikiea79ac142015-02-27 21:17:42 +0000326 %59 = load i32, i32* %tmp
327 %60 = load i32, i32* %i, align 4
David Blaikief72d05b2015-03-13 18:20:45 +0000328 store i32 %60, i32* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 0), align 4
David Blaikiea79ac142015-02-27 21:17:42 +0000329 %61 = load i32, i32* %j, align 4
David Blaikief72d05b2015-03-13 18:20:45 +0000330 store i32 %61, i32* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 1), align 4
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000331 %62 = bitcast %struct.S1998* %agg.tmp111 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000332 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %62, i8* bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i32 16, i1 false)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000333 %63 = bitcast %struct.S1998* %agg.tmp112 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000334 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %63, i8* bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2) to i8*), i64 5168, i32 16, i1 false)
David Blaikief72d05b2015-03-13 18:20:45 +0000335 call void @check1998(%struct.S1998* sret %agg.tmp, %struct.S1998* byval align 16 %agg.tmp111, %struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 1), %struct.S1998* byval align 16 %agg.tmp112)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000336 call void @checkx1998(%struct.S1998* byval align 16 %agg.tmp)
337 %64 = bitcast %struct.S1998* %agg.tmp113 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000338 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %64, i8* bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i32 16, i1 false)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000339 %65 = bitcast %struct.S1998* %agg.tmp114 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000340 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %65, i8* bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2) to i8*), i64 5168, i32 16, i1 false)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000341 %66 = bitcast %struct.S1998* %agg.tmp115 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000342 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %66, i8* bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2) to i8*), i64 5168, i32 16, i1 false)
David Blaikie23af6482015-04-16 23:24:18 +0000343 call void (i32, ...) @check1998va(i32 signext 1, double 1.000000e+00, %struct.S1998* byval align 16 %agg.tmp113, i64 2, %struct.S1998* byval align 16 %agg.tmp114, %struct.S1998* byval align 16 %agg.tmp115)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000344 %67 = bitcast %struct.S1998* %agg.tmp116 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000345 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %67, i8* bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i32 16, i1 false)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000346 %68 = bitcast %struct.S1998* %agg.tmp117 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000347 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %68, i8* bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i32 16, i1 false)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000348 %69 = bitcast %struct.S1998* %agg.tmp118 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000349 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %69, i8* bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2) to i8*), i64 5168, i32 16, i1 false)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000350 %70 = bitcast %struct.S1998* %agg.tmp119 to i8*
Pete Cooper67cf9a72015-11-19 05:56:52 +0000351 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %70, i8* bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i32 16, i1 false)
David Blaikie23af6482015-04-16 23:24:18 +0000352 call void (i32, ...) @check1998va(i32 signext 2, %struct.S1998* byval align 16 %agg.tmp116, %struct.S1998* byval align 16 %agg.tmp117, ppc_fp128 0xM40000000000000000000000000000000, %struct.S1998* byval align 16 %agg.tmp118, %struct.S1998* byval align 16 %agg.tmp119)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000353 ret void
354}
355
Pete Cooper67cf9a72015-11-19 05:56:52 +0000356declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1)
357declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1)
Ulrich Weigand14bd5212014-06-27 13:04:12 +0000358
359declare void @check1998(%struct.S1998* sret, %struct.S1998* byval align 16, %struct.S1998*, %struct.S1998* byval align 16)
360declare void @check1998va(i32 signext, ...)
361declare void @checkx1998(%struct.S1998* byval align 16 %arg)
362