brintos

brintos / llvm-project-archived public Read only

0
0
Text · 23.3 KiB · 10fba54 Raw
354 lines · plain
1; RUN: llc -verify-machineinstrs -O0 -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 < %s | FileCheck %s2 3; Due to a bug in resolveFrameIndex we ended up with invalid addresses4; 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, ptr, ptr, ptr, [32 x ptr], i64, [32 x i64], i64, i64, i64, [32 x i64] }11%struct.S1998 = type { [2 x ptr], 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 815@fails = global i32 0, align 416@intarray = global [256 x i32] zeroinitializer, align 417@s1998 = global %struct.S1998 zeroinitializer, align 1618@a1998 = external global [5 x %struct.S1998]19 20define void @test1998() {21entry:22  %i = alloca i32, align 423  %j = alloca i32, align 424  %tmp = alloca i32, align 425  %agg.tmp = alloca %struct.S1998, align 1626  %agg.tmp111 = alloca %struct.S1998, align 1627  %agg.tmp112 = alloca %struct.S1998, align 1628  %agg.tmp113 = alloca %struct.S1998, align 1629  %agg.tmp114 = alloca %struct.S1998, align 1630  %agg.tmp115 = alloca %struct.S1998, align 1631  %agg.tmp116 = alloca %struct.S1998, align 1632  %agg.tmp117 = alloca %struct.S1998, align 1633  %agg.tmp118 = alloca %struct.S1998, align 1634  %agg.tmp119 = alloca %struct.S1998, align 1635  call void @llvm.memset.p0.i64(ptr align 16 @s1998, i8 0, i64 5168, i1 false)36  call void @llvm.memset.p0.i64(ptr align 16 @a1998, i8 0, i64 25840, i1 false)37  call void @llvm.memset.p0.i64(ptr align 8 @info, i8 0, i64 832, i1 false)38  store ptr @s1998, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 2), align 839  store ptr @a1998, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 3), align 840  store ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 3), ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 4), align 841  store i64 5168, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 6), align 842  store i64 16, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 8), align 843  store i64 16, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 9), align 844  store i64 16, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 10), align 845  %0 = load i64, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 8), align 846  %sub = sub i64 %0, 147  %and = and i64 ptrtoint (ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 3) to i64), %sub48  %tobool = icmp ne i64 %and, 049  br i1 %tobool, label %if.then, label %if.end50 51if.then:                                          ; preds = %entry52  %1 = load i32, ptr @fails, align 453  %inc = add nsw i32 %1, 154  store i32 %inc, ptr @fails, align 455  br label %if.end56 57if.end:                                           ; preds = %if.then, %entry58  store i32 0, ptr %i, align 459  store i32 0, ptr %j, align 460  %2 = load i32, ptr %i, align 461  %idxprom = sext i32 %2 to i6462  %arrayidx = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom63  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 0, i64 1), ptr %arrayidx, align 864  %3 = load i32, ptr %i, align 465  %idxprom1 = sext i32 %3 to i6466  %arrayidx2 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom167  store i64 8, ptr %arrayidx2, align 868  %4 = load i32, ptr %i, align 469  %idxprom3 = sext i32 %4 to i6470  %arrayidx4 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom371  store i64 8, ptr %arrayidx4, align 872  store ptr getelementptr inbounds ([256 x i32], ptr @intarray, i32 0, i64 190), ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 0, i64 1), align 873  store ptr getelementptr inbounds ([256 x i32], ptr @intarray, i32 0, i64 241), ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 0, i64 1), align 874  %5 = load i32, ptr %i, align 475  %inc5 = add nsw i32 %5, 176  store i32 %inc5, ptr %i, align 477  %6 = load i32, ptr %i, align 478  %idxprom6 = sext i32 %6 to i6479  %arrayidx7 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom680  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 1), ptr %arrayidx7, align 881  %7 = load i32, ptr %i, align 482  %idxprom8 = sext i32 %7 to i6483  %arrayidx9 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom884  store i64 8, ptr %arrayidx9, align 885  %8 = load i32, ptr %i, align 486  %idxprom10 = sext i32 %8 to i6487  %arrayidx11 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom1088  store i64 8, ptr %arrayidx11, align 889  store i64 -3866974208859106459, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 1), align 890  store i64 -185376695371304091, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 1), align 891  %9 = load i32, ptr %i, align 492  %inc12 = add nsw i32 %9, 193  store i32 %inc12, ptr %i, align 494  %10 = load i32, ptr %i, align 495  %idxprom13 = sext i32 %10 to i6496  %arrayidx14 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom1397  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 2), ptr %arrayidx14, align 898  %11 = load i32, ptr %i, align 499  %idxprom15 = sext i32 %11 to i64100  %arrayidx16 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom15101  store i64 8, ptr %arrayidx16, align 8102  %12 = load i32, ptr %i, align 4103  %idxprom17 = sext i32 %12 to i64104  %arrayidx18 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom17105  store i64 8, ptr %arrayidx18, align 8106  store i64 -963638028680427187, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 2), align 8107  store i64 7510542175772455554, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 2), align 8108  %13 = load i32, ptr %i, align 4109  %inc19 = add nsw i32 %13, 1110  store i32 %inc19, ptr %i, align 4111  %14 = load i32, ptr %i, align 4112  %idxprom20 = sext i32 %14 to i64113  %arrayidx21 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom20114  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 3), ptr %arrayidx21, align 8115  %15 = load i32, ptr %i, align 4116  %idxprom22 = sext i32 %15 to i64117  %arrayidx23 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom22118  store i64 8, ptr %arrayidx23, align 8119  %16 = load i32, ptr %i, align 4120  %idxprom24 = sext i32 %16 to i64121  %arrayidx25 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom24122  store i64 16, ptr %arrayidx25, align 8123  store double 0xC0F8783300000000, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 3), align 16124  store double 0xC10DF3CCC0000000, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 3), align 16125  %17 = load i32, ptr %i, align 4126  %inc26 = add nsw i32 %17, 1127  store i32 %inc26, ptr %i, align 4128  %18 = load i32, ptr %i, align 4129  %idxprom27 = sext i32 %18 to i64130  %arrayidx28 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom27131  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 4), ptr %arrayidx28, align 8132  %19 = load i32, ptr %i, align 4133  %idxprom29 = sext i32 %19 to i64134  %arrayidx30 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom29135  store i64 2, ptr %arrayidx30, align 8136  %20 = load i32, ptr %i, align 4137  %idxprom31 = sext i32 %20 to i64138  %arrayidx32 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom31139  store i64 2, ptr %arrayidx32, align 8140  store i16 -15897, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 4), align 2141  store i16 30935, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 4), align 2142  %21 = load i32, ptr %i, align 4143  %inc33 = add nsw i32 %21, 1144  store i32 %inc33, ptr %i, align 4145  store i32 -419541644, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 5), align 4146  store i32 2125926812, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 5), align 4147  %22 = load i32, ptr %j, align 4148  %inc34 = add nsw i32 %22, 1149  store i32 %inc34, ptr %j, align 4150  %23 = load i32, ptr %i, align 4151  %idxprom35 = sext i32 %23 to i64152  %arrayidx36 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom35153  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 0, i64 0), ptr %arrayidx36, align 8154  %24 = load i32, ptr %i, align 4155  %idxprom37 = sext i32 %24 to i64156  %arrayidx38 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom37157  store i64 8, ptr %arrayidx38, align 8158  %25 = load i32, ptr %i, align 4159  %idxprom39 = sext i32 %25 to i64160  %arrayidx40 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom39161  store i64 8, ptr %arrayidx40, align 8162  store double 0xC0FC765780000000, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 0, i64 0), align 8163  store double 0xC1025CD7A0000000, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 0, i64 0), align 8164  %26 = load i32, ptr %i, align 4165  %inc41 = add nsw i32 %26, 1166  store i32 %inc41, ptr %i, align 4167  %bf.load = load i32, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 1), align 8168  %bf.clear = and i32 %bf.load, 7169  %bf.set = or i32 %bf.clear, 16170  store i32 %bf.set, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 1), align 8171  %bf.load42 = load i32, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 1), align 8172  %bf.clear43 = and i32 %bf.load42, 7173  %bf.set44 = or i32 %bf.clear43, 24174  store i32 %bf.set44, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 1), align 8175  %27 = load i32, ptr %j, align 4176  %inc45 = add nsw i32 %27, 1177  store i32 %inc45, ptr %j, align 4178  %bf.load46 = load i16, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 2), align 4179  %bf.clear47 = and i16 %bf.load46, 127180  store i16 %bf.clear47, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 2), align 4181  %bf.load48 = load i16, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 2), align 4182  %bf.clear49 = and i16 %bf.load48, 127183  store i16 %bf.clear49, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 2), align 4184  %28 = load i32, ptr %j, align 4185  %inc50 = add nsw i32 %28, 1186  store i32 %inc50, ptr %j, align 4187  %bf.load51 = load i32, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 3), align 8188  %bf.clear52 = and i32 %bf.load51, 63189  store i32 %bf.clear52, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 3), align 8190  %bf.load53 = load i32, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 3), align 8191  %bf.clear54 = and i32 %bf.load53, 63192  %bf.set55 = or i32 %bf.clear54, 64193  store i32 %bf.set55, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 3), align 8194  %29 = load i32, ptr %j, align 4195  %inc56 = add nsw i32 %29, 1196  store i32 %inc56, ptr %j, align 4197  %bf.load57 = load i24, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 4), align 4198  %bf.clear58 = and i24 %bf.load57, 63199  store i24 %bf.clear58, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 4), align 4200  %bf.load59 = load i24, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 4), align 4201  %bf.clear60 = and i24 %bf.load59, 63202  store i24 %bf.clear60, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 4), align 4203  %30 = load i32, ptr %j, align 4204  %inc61 = add nsw i32 %30, 1205  store i32 %inc61, ptr %j, align 4206  %31 = load i32, ptr %i, align 4207  %idxprom62 = sext i32 %31 to i64208  %arrayidx63 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom62209  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 5, i64 5), ptr %arrayidx63, align 8210  %32 = load i32, ptr %i, align 4211  %idxprom64 = sext i32 %32 to i64212  %arrayidx65 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom64213  store i64 1, ptr %arrayidx65, align 8214  %33 = load i32, ptr %i, align 4215  %idxprom66 = sext i32 %33 to i64216  %arrayidx67 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom66217  store i64 1, ptr %arrayidx67, align 8218  store i8 -83, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 5, i64 5), align 1219  store i8 -67, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 5, i64 5), align 1220  %34 = load i32, ptr %i, align 4221  %inc68 = add nsw i32 %34, 1222  store i32 %inc68, ptr %i, align 4223  %35 = load i32, ptr %i, align 4224  %idxprom69 = sext i32 %35 to i64225  %arrayidx70 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom69226  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 5, i64 1), ptr %arrayidx70, align 8227  %36 = load i32, ptr %i, align 4228  %idxprom71 = sext i32 %36 to i64229  %arrayidx72 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom71230  store i64 1, ptr %arrayidx72, align 8231  %37 = load i32, ptr %i, align 4232  %idxprom73 = sext i32 %37 to i64233  %arrayidx74 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom73234  store i64 1, ptr %arrayidx74, align 8235  store i8 34, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 5, i64 1), align 1236  store i8 64, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 5, i64 1), align 1237  %38 = load i32, ptr %i, align 4238  %inc75 = add nsw i32 %38, 1239  store i32 %inc75, ptr %i, align 4240  %39 = load i32, ptr %i, align 4241  %idxprom76 = sext i32 %39 to i64242  %arrayidx77 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom76243  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 6, i64 3), ptr %arrayidx77, align 8244  %40 = load i32, ptr %i, align 4245  %idxprom78 = sext i32 %40 to i64246  %arrayidx79 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom78247  store i64 4, ptr %arrayidx79, align 8248  %41 = load i32, ptr %i, align 4249  %idxprom80 = sext i32 %41 to i64250  %arrayidx81 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom80251  store i64 4, ptr %arrayidx81, align 8252  store i32 -3, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 6, i64 3), align 4253  store i32 -3, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 6, i64 3), align 4254  %42 = load i32, ptr %i, align 4255  %inc82 = add nsw i32 %42, 1256  store i32 %inc82, ptr %i, align 4257  %43 = load i32, ptr %i, align 4258  %idxprom83 = sext i32 %43 to i64259  %arrayidx84 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom83260  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 7), ptr %arrayidx84, align 8261  %44 = load i32, ptr %i, align 4262  %idxprom85 = sext i32 %44 to i64263  %arrayidx86 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom85264  store i64 1, ptr %arrayidx86, align 8265  %45 = load i32, ptr %i, align 4266  %idxprom87 = sext i32 %45 to i64267  %arrayidx88 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom87268  store i64 1, ptr %arrayidx88, align 8269  store i8 106, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 7), align 1270  store i8 -102, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 7), align 1271  %46 = load i32, ptr %i, align 4272  %inc89 = add nsw i32 %46, 1273  store i32 %inc89, ptr %i, align 4274  %47 = load i32, ptr %i, align 4275  %idxprom90 = sext i32 %47 to i64276  %arrayidx91 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom90277  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 7), ptr %arrayidx91, align 8278  %48 = load i32, ptr %i, align 4279  %idxprom92 = sext i32 %48 to i64280  %arrayidx93 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom92281  store i64 2, ptr %arrayidx93, align 8282  %49 = load i32, ptr %i, align 4283  %idxprom94 = sext i32 %49 to i64284  %arrayidx95 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom94285  store i64 2, ptr %arrayidx95, align 8286  store i16 29665, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 7), align 2287  store i16 7107, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 7), align 2288  %50 = load i32, ptr %i, align 4289  %inc96 = add nsw i32 %50, 1290  store i32 %inc96, ptr %i, align 4291  %51 = load i32, ptr %i, align 4292  %idxprom97 = sext i32 %51 to i64293  %arrayidx98 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom97294  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 8), ptr %arrayidx98, align 8295  %52 = load i32, ptr %i, align 4296  %idxprom99 = sext i32 %52 to i64297  %arrayidx100 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom99298  store i64 1, ptr %arrayidx100, align 8299  %53 = load i32, ptr %i, align 4300  %idxprom101 = sext i32 %53 to i64301  %arrayidx102 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom101302  store i64 1, ptr %arrayidx102, align 8303  store i8 52, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 8), align 1304  store i8 -86, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 8), align 1305  %54 = load i32, ptr %i, align 4306  %inc103 = add nsw i32 %54, 1307  store i32 %inc103, ptr %i, align 4308  %55 = load i32, ptr %i, align 4309  %idxprom104 = sext i32 %55 to i64310  %arrayidx105 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom104311  store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 9), ptr %arrayidx105, align 8312  %56 = load i32, ptr %i, align 4313  %idxprom106 = sext i32 %56 to i64314  %arrayidx107 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom106315  store i64 4, ptr %arrayidx107, align 8316  %57 = load i32, ptr %i, align 4317  %idxprom108 = sext i32 %57 to i64318  %arrayidx109 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom108319  store i64 4, ptr %arrayidx109, align 8320  store i32 -54118453, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 9), align 4321  store i32 1668755823, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 9), align 4322  %58 = load i32, ptr %i, align 4323  %inc110 = add nsw i32 %58, 1324  store i32 %inc110, ptr %i, align 4325  store i32 %inc110, ptr %tmp326  %59 = load i32, ptr %tmp327  %60 = load i32, ptr %i, align 4328  store i32 %60, ptr @info, align 4329  %61 = load i32, ptr %j, align 4330  store i32 %61, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 1), align 4331  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp111, ptr align 16 @s1998, i64 5168, i1 false)332  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp112, ptr align 16 getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2), i64 5168, i1 false)333  call void @check1998(ptr sret(%struct.S1998) %agg.tmp, ptr byval(%struct.S1998) align 16 %agg.tmp111, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 1), ptr byval(%struct.S1998) align 16 %agg.tmp112)334  call void @checkx1998(ptr byval(%struct.S1998) align 16 %agg.tmp)335  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp113, ptr align 16 @s1998, i64 5168, i1 false)336  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp114, ptr align 16 getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2), i64 5168, i1 false)337  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp115, ptr align 16 getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2), i64 5168, i1 false)338  call void (i32, ...) @check1998va(i32 signext 1, double 1.000000e+00, ptr byval(%struct.S1998) align 16 %agg.tmp113, i64 2, ptr byval(%struct.S1998) align 16 %agg.tmp114, ptr byval(%struct.S1998) align 16 %agg.tmp115)339  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp116, ptr align 16 @s1998, i64 5168, i1 false)340  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp117, ptr align 16 @s1998, i64 5168, i1 false)341  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp118, ptr align 16 getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2), i64 5168, i1 false)342  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp119, ptr align 16 @s1998, i64 5168, i1 false)343  call void (i32, ...) @check1998va(i32 signext 2, ptr byval(%struct.S1998) align 16 %agg.tmp116, ptr byval(%struct.S1998) align 16 %agg.tmp117, ppc_fp128 0xM40000000000000000000000000000000, ptr byval(%struct.S1998) align 16 %agg.tmp118, ptr byval(%struct.S1998) align 16 %agg.tmp119)344  ret void345}346 347declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1)348declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1)349 350declare void @check1998(ptr sret(%struct.S1998), ptr byval(%struct.S1998) align 16, ptr, ptr byval(%struct.S1998) align 16)351declare void @check1998va(i32 signext, ...)352declare void @checkx1998(ptr byval(%struct.S1998) align 16 %arg)353 354