You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
539 lines
14 KiB
539 lines
14 KiB
; ModuleID = 'asdf'
|
|
|
|
declare i32 @getchar()
|
|
|
|
declare i32 @putchar(i32)
|
|
|
|
define i32 @main() {
|
|
%malloccall = tail call i8* @malloc(i32 mul (i32 ptrtoint (i8* getelementptr (i8* null, i32 1) to i32), i32 100))
|
|
call void @llvm.memset.p0i8.i32(i8* %malloccall, i8 0, i32 100, i32 1, i1 false)
|
|
%1 = getelementptr i8* %malloccall, i32 50
|
|
%2 = getelementptr i8* %1, i32 1
|
|
%3 = load i8* %2
|
|
%4 = add i8 %3, 1
|
|
store i8 %4, i8* %2
|
|
%5 = load i8* %2
|
|
%6 = add i8 %5, 1
|
|
store i8 %6, i8* %2
|
|
%7 = load i8* %2
|
|
%8 = add i8 %7, 1
|
|
store i8 %8, i8* %2
|
|
%9 = load i8* %2
|
|
%10 = add i8 %9, 1
|
|
store i8 %10, i8* %2
|
|
%11 = load i8* %2
|
|
%12 = add i8 %11, 1
|
|
store i8 %12, i8* %2
|
|
%13 = load i8* %2
|
|
%14 = add i8 %13, 1
|
|
store i8 %14, i8* %2
|
|
%15 = load i8* %2
|
|
%16 = add i8 %15, 1
|
|
store i8 %16, i8* %2
|
|
%17 = load i8* %2
|
|
%18 = add i8 %17, 1
|
|
store i8 %18, i8* %2
|
|
%19 = load i8* %2
|
|
%20 = add i8 %19, 1
|
|
store i8 %20, i8* %2
|
|
%21 = load i8* %2
|
|
%22 = icmp ne i8 %21, 0
|
|
br i1 %22, label %23, label %46
|
|
|
|
; <label>:23 ; preds = %23, %0
|
|
%24 = getelementptr i8* %2, i32 -1
|
|
%25 = load i8* %24
|
|
%26 = add i8 %25, 1
|
|
store i8 %26, i8* %24
|
|
%27 = load i8* %24
|
|
%28 = add i8 %27, 1
|
|
store i8 %28, i8* %24
|
|
%29 = load i8* %24
|
|
%30 = add i8 %29, 1
|
|
store i8 %30, i8* %24
|
|
%31 = load i8* %24
|
|
%32 = add i8 %31, 1
|
|
store i8 %32, i8* %24
|
|
%33 = load i8* %24
|
|
%34 = add i8 %33, 1
|
|
store i8 %34, i8* %24
|
|
%35 = load i8* %24
|
|
%36 = add i8 %35, 1
|
|
store i8 %36, i8* %24
|
|
%37 = load i8* %24
|
|
%38 = add i8 %37, 1
|
|
store i8 %38, i8* %24
|
|
%39 = load i8* %24
|
|
%40 = add i8 %39, 1
|
|
store i8 %40, i8* %24
|
|
%41 = getelementptr i8* %24, i32 1
|
|
%42 = load i8* %41
|
|
%43 = sub i8 %42, 1
|
|
store i8 %43, i8* %41
|
|
%44 = load i8* %41
|
|
%45 = icmp ne i8 %44, 0
|
|
br i1 %45, label %23, label %46
|
|
|
|
; <label>:46 ; preds = %23, %0
|
|
%47 = getelementptr i8* %41, i32 -1
|
|
%48 = load i8* %47
|
|
%49 = sext i8 %48 to i32
|
|
%50 = call i32 @putchar(i32 %49)
|
|
%51 = getelementptr i8* %47, i32 1
|
|
%52 = load i8* %51
|
|
%53 = add i8 %52, 1
|
|
store i8 %53, i8* %51
|
|
%54 = load i8* %51
|
|
%55 = add i8 %54, 1
|
|
store i8 %55, i8* %51
|
|
%56 = load i8* %51
|
|
%57 = add i8 %56, 1
|
|
store i8 %57, i8* %51
|
|
%58 = load i8* %51
|
|
%59 = add i8 %58, 1
|
|
store i8 %59, i8* %51
|
|
%60 = load i8* %51
|
|
%61 = add i8 %60, 1
|
|
store i8 %61, i8* %51
|
|
%62 = load i8* %51
|
|
%63 = add i8 %62, 1
|
|
store i8 %63, i8* %51
|
|
%64 = load i8* %51
|
|
%65 = add i8 %64, 1
|
|
store i8 %65, i8* %51
|
|
%66 = load i8* %51
|
|
%67 = icmp ne i8 %66, 0
|
|
br i1 %67, label %68, label %83
|
|
|
|
; <label>:68 ; preds = %68, %46
|
|
%69 = getelementptr i8* %51, i32 -1
|
|
%70 = load i8* %69
|
|
%71 = add i8 %70, 1
|
|
store i8 %71, i8* %69
|
|
%72 = load i8* %69
|
|
%73 = add i8 %72, 1
|
|
store i8 %73, i8* %69
|
|
%74 = load i8* %69
|
|
%75 = add i8 %74, 1
|
|
store i8 %75, i8* %69
|
|
%76 = load i8* %69
|
|
%77 = add i8 %76, 1
|
|
store i8 %77, i8* %69
|
|
%78 = getelementptr i8* %69, i32 1
|
|
%79 = load i8* %78
|
|
%80 = sub i8 %79, 1
|
|
store i8 %80, i8* %78
|
|
%81 = load i8* %78
|
|
%82 = icmp ne i8 %81, 0
|
|
br i1 %82, label %68, label %83
|
|
|
|
; <label>:83 ; preds = %68, %46
|
|
%84 = getelementptr i8* %78, i32 -1
|
|
%85 = load i8* %84
|
|
%86 = add i8 %85, 1
|
|
store i8 %86, i8* %84
|
|
%87 = load i8* %84
|
|
%88 = sext i8 %87 to i32
|
|
%89 = call i32 @putchar(i32 %88)
|
|
%90 = load i8* %84
|
|
%91 = add i8 %90, 1
|
|
store i8 %91, i8* %84
|
|
%92 = load i8* %84
|
|
%93 = add i8 %92, 1
|
|
store i8 %93, i8* %84
|
|
%94 = load i8* %84
|
|
%95 = add i8 %94, 1
|
|
store i8 %95, i8* %84
|
|
%96 = load i8* %84
|
|
%97 = add i8 %96, 1
|
|
store i8 %97, i8* %84
|
|
%98 = load i8* %84
|
|
%99 = add i8 %98, 1
|
|
store i8 %99, i8* %84
|
|
%100 = load i8* %84
|
|
%101 = add i8 %100, 1
|
|
store i8 %101, i8* %84
|
|
%102 = load i8* %84
|
|
%103 = add i8 %102, 1
|
|
store i8 %103, i8* %84
|
|
%104 = load i8* %84
|
|
%105 = sext i8 %104 to i32
|
|
%106 = call i32 @putchar(i32 %105)
|
|
%107 = load i8* %84
|
|
%108 = sext i8 %107 to i32
|
|
%109 = call i32 @putchar(i32 %108)
|
|
%110 = load i8* %84
|
|
%111 = add i8 %110, 1
|
|
store i8 %111, i8* %84
|
|
%112 = load i8* %84
|
|
%113 = add i8 %112, 1
|
|
store i8 %113, i8* %84
|
|
%114 = load i8* %84
|
|
%115 = add i8 %114, 1
|
|
store i8 %115, i8* %84
|
|
%116 = load i8* %84
|
|
%117 = sext i8 %116 to i32
|
|
%118 = call i32 @putchar(i32 %117)
|
|
%119 = load i8* %84
|
|
%120 = icmp ne i8 %119, 0
|
|
br i1 %120, label %121, label %126
|
|
|
|
; <label>:121 ; preds = %121, %83
|
|
%122 = load i8* %84
|
|
%123 = sub i8 %122, 1
|
|
store i8 %123, i8* %84
|
|
%124 = load i8* %84
|
|
%125 = icmp ne i8 %124, 0
|
|
br i1 %125, label %121, label %126
|
|
|
|
; <label>:126 ; preds = %121, %83
|
|
%127 = getelementptr i8* %84, i32 1
|
|
%128 = load i8* %127
|
|
%129 = add i8 %128, 1
|
|
store i8 %129, i8* %127
|
|
%130 = load i8* %127
|
|
%131 = add i8 %130, 1
|
|
store i8 %131, i8* %127
|
|
%132 = load i8* %127
|
|
%133 = add i8 %132, 1
|
|
store i8 %133, i8* %127
|
|
%134 = load i8* %127
|
|
%135 = add i8 %134, 1
|
|
store i8 %135, i8* %127
|
|
%136 = load i8* %127
|
|
%137 = add i8 %136, 1
|
|
store i8 %137, i8* %127
|
|
%138 = load i8* %127
|
|
%139 = add i8 %138, 1
|
|
store i8 %139, i8* %127
|
|
%140 = load i8* %127
|
|
%141 = add i8 %140, 1
|
|
store i8 %141, i8* %127
|
|
%142 = load i8* %127
|
|
%143 = add i8 %142, 1
|
|
store i8 %143, i8* %127
|
|
%144 = load i8* %127
|
|
%145 = icmp ne i8 %144, 0
|
|
br i1 %145, label %146, label %161
|
|
|
|
; <label>:146 ; preds = %146, %126
|
|
%147 = getelementptr i8* %127, i32 -1
|
|
%148 = load i8* %147
|
|
%149 = add i8 %148, 1
|
|
store i8 %149, i8* %147
|
|
%150 = load i8* %147
|
|
%151 = add i8 %150, 1
|
|
store i8 %151, i8* %147
|
|
%152 = load i8* %147
|
|
%153 = add i8 %152, 1
|
|
store i8 %153, i8* %147
|
|
%154 = load i8* %147
|
|
%155 = add i8 %154, 1
|
|
store i8 %155, i8* %147
|
|
%156 = getelementptr i8* %147, i32 1
|
|
%157 = load i8* %156
|
|
%158 = sub i8 %157, 1
|
|
store i8 %158, i8* %156
|
|
%159 = load i8* %156
|
|
%160 = icmp ne i8 %159, 0
|
|
br i1 %160, label %146, label %161
|
|
|
|
; <label>:161 ; preds = %146, %126
|
|
%162 = getelementptr i8* %156, i32 -1
|
|
%163 = load i8* %162
|
|
%164 = sext i8 %163 to i32
|
|
%165 = call i32 @putchar(i32 %164)
|
|
%166 = getelementptr i8* %162, i32 1
|
|
%167 = load i8* %166
|
|
%168 = add i8 %167, 1
|
|
store i8 %168, i8* %166
|
|
%169 = load i8* %166
|
|
%170 = add i8 %169, 1
|
|
store i8 %170, i8* %166
|
|
%171 = load i8* %166
|
|
%172 = add i8 %171, 1
|
|
store i8 %172, i8* %166
|
|
%173 = load i8* %166
|
|
%174 = add i8 %173, 1
|
|
store i8 %174, i8* %166
|
|
%175 = load i8* %166
|
|
%176 = add i8 %175, 1
|
|
store i8 %176, i8* %166
|
|
%177 = load i8* %166
|
|
%178 = add i8 %177, 1
|
|
store i8 %178, i8* %166
|
|
%179 = load i8* %166
|
|
%180 = add i8 %179, 1
|
|
store i8 %180, i8* %166
|
|
%181 = load i8* %166
|
|
%182 = add i8 %181, 1
|
|
store i8 %182, i8* %166
|
|
%183 = load i8* %166
|
|
%184 = add i8 %183, 1
|
|
store i8 %184, i8* %166
|
|
%185 = load i8* %166
|
|
%186 = add i8 %185, 1
|
|
store i8 %186, i8* %166
|
|
%187 = load i8* %166
|
|
%188 = add i8 %187, 1
|
|
store i8 %188, i8* %166
|
|
%189 = load i8* %166
|
|
%190 = icmp ne i8 %189, 0
|
|
br i1 %190, label %191, label %214
|
|
|
|
; <label>:191 ; preds = %191, %161
|
|
%192 = getelementptr i8* %166, i32 -1
|
|
%193 = load i8* %192
|
|
%194 = add i8 %193, 1
|
|
store i8 %194, i8* %192
|
|
%195 = load i8* %192
|
|
%196 = add i8 %195, 1
|
|
store i8 %196, i8* %192
|
|
%197 = load i8* %192
|
|
%198 = add i8 %197, 1
|
|
store i8 %198, i8* %192
|
|
%199 = load i8* %192
|
|
%200 = add i8 %199, 1
|
|
store i8 %200, i8* %192
|
|
%201 = load i8* %192
|
|
%202 = add i8 %201, 1
|
|
store i8 %202, i8* %192
|
|
%203 = load i8* %192
|
|
%204 = add i8 %203, 1
|
|
store i8 %204, i8* %192
|
|
%205 = load i8* %192
|
|
%206 = add i8 %205, 1
|
|
store i8 %206, i8* %192
|
|
%207 = load i8* %192
|
|
%208 = add i8 %207, 1
|
|
store i8 %208, i8* %192
|
|
%209 = getelementptr i8* %192, i32 1
|
|
%210 = load i8* %209
|
|
%211 = sub i8 %210, 1
|
|
store i8 %211, i8* %209
|
|
%212 = load i8* %209
|
|
%213 = icmp ne i8 %212, 0
|
|
br i1 %213, label %191, label %214
|
|
|
|
; <label>:214 ; preds = %191, %161
|
|
%215 = getelementptr i8* %209, i32 -1
|
|
%216 = load i8* %215
|
|
%217 = sub i8 %216, 1
|
|
store i8 %217, i8* %215
|
|
%218 = load i8* %215
|
|
%219 = sext i8 %218 to i32
|
|
%220 = call i32 @putchar(i32 %219)
|
|
%221 = load i8* %215
|
|
%222 = sub i8 %221, 1
|
|
store i8 %222, i8* %215
|
|
%223 = load i8* %215
|
|
%224 = sub i8 %223, 1
|
|
store i8 %224, i8* %215
|
|
%225 = load i8* %215
|
|
%226 = sub i8 %225, 1
|
|
store i8 %226, i8* %215
|
|
%227 = load i8* %215
|
|
%228 = sub i8 %227, 1
|
|
store i8 %228, i8* %215
|
|
%229 = load i8* %215
|
|
%230 = sub i8 %229, 1
|
|
store i8 %230, i8* %215
|
|
%231 = load i8* %215
|
|
%232 = sub i8 %231, 1
|
|
store i8 %232, i8* %215
|
|
%233 = load i8* %215
|
|
%234 = sub i8 %233, 1
|
|
store i8 %234, i8* %215
|
|
%235 = load i8* %215
|
|
%236 = sub i8 %235, 1
|
|
store i8 %236, i8* %215
|
|
%237 = load i8* %215
|
|
%238 = sext i8 %237 to i32
|
|
%239 = call i32 @putchar(i32 %238)
|
|
%240 = load i8* %215
|
|
%241 = add i8 %240, 1
|
|
store i8 %241, i8* %215
|
|
%242 = load i8* %215
|
|
%243 = add i8 %242, 1
|
|
store i8 %243, i8* %215
|
|
%244 = load i8* %215
|
|
%245 = add i8 %244, 1
|
|
store i8 %245, i8* %215
|
|
%246 = load i8* %215
|
|
%247 = sext i8 %246 to i32
|
|
%248 = call i32 @putchar(i32 %247)
|
|
%249 = load i8* %215
|
|
%250 = sub i8 %249, 1
|
|
store i8 %250, i8* %215
|
|
%251 = load i8* %215
|
|
%252 = sub i8 %251, 1
|
|
store i8 %252, i8* %215
|
|
%253 = load i8* %215
|
|
%254 = sub i8 %253, 1
|
|
store i8 %254, i8* %215
|
|
%255 = load i8* %215
|
|
%256 = sub i8 %255, 1
|
|
store i8 %256, i8* %215
|
|
%257 = load i8* %215
|
|
%258 = sub i8 %257, 1
|
|
store i8 %258, i8* %215
|
|
%259 = load i8* %215
|
|
%260 = sub i8 %259, 1
|
|
store i8 %260, i8* %215
|
|
%261 = load i8* %215
|
|
%262 = sext i8 %261 to i32
|
|
%263 = call i32 @putchar(i32 %262)
|
|
%264 = load i8* %215
|
|
%265 = sub i8 %264, 1
|
|
store i8 %265, i8* %215
|
|
%266 = load i8* %215
|
|
%267 = sub i8 %266, 1
|
|
store i8 %267, i8* %215
|
|
%268 = load i8* %215
|
|
%269 = sub i8 %268, 1
|
|
store i8 %269, i8* %215
|
|
%270 = load i8* %215
|
|
%271 = sub i8 %270, 1
|
|
store i8 %271, i8* %215
|
|
%272 = load i8* %215
|
|
%273 = sub i8 %272, 1
|
|
store i8 %273, i8* %215
|
|
%274 = load i8* %215
|
|
%275 = sub i8 %274, 1
|
|
store i8 %275, i8* %215
|
|
%276 = load i8* %215
|
|
%277 = sub i8 %276, 1
|
|
store i8 %277, i8* %215
|
|
%278 = load i8* %215
|
|
%279 = sub i8 %278, 1
|
|
store i8 %279, i8* %215
|
|
%280 = load i8* %215
|
|
%281 = sext i8 %280 to i32
|
|
%282 = call i32 @putchar(i32 %281)
|
|
%283 = load i8* %215
|
|
%284 = icmp ne i8 %283, 0
|
|
br i1 %284, label %285, label %290
|
|
|
|
; <label>:285 ; preds = %285, %214
|
|
%286 = load i8* %215
|
|
%287 = sub i8 %286, 1
|
|
store i8 %287, i8* %215
|
|
%288 = load i8* %215
|
|
%289 = icmp ne i8 %288, 0
|
|
br i1 %289, label %285, label %290
|
|
|
|
; <label>:290 ; preds = %285, %214
|
|
%291 = getelementptr i8* %215, i32 1
|
|
%292 = load i8* %291
|
|
%293 = add i8 %292, 1
|
|
store i8 %293, i8* %291
|
|
%294 = load i8* %291
|
|
%295 = add i8 %294, 1
|
|
store i8 %295, i8* %291
|
|
%296 = load i8* %291
|
|
%297 = add i8 %296, 1
|
|
store i8 %297, i8* %291
|
|
%298 = load i8* %291
|
|
%299 = add i8 %298, 1
|
|
store i8 %299, i8* %291
|
|
%300 = load i8* %291
|
|
%301 = add i8 %300, 1
|
|
store i8 %301, i8* %291
|
|
%302 = load i8* %291
|
|
%303 = add i8 %302, 1
|
|
store i8 %303, i8* %291
|
|
%304 = load i8* %291
|
|
%305 = add i8 %304, 1
|
|
store i8 %305, i8* %291
|
|
%306 = load i8* %291
|
|
%307 = add i8 %306, 1
|
|
store i8 %307, i8* %291
|
|
%308 = load i8* %291
|
|
%309 = icmp ne i8 %308, 0
|
|
br i1 %309, label %310, label %325
|
|
|
|
; <label>:310 ; preds = %310, %290
|
|
%311 = getelementptr i8* %291, i32 -1
|
|
%312 = load i8* %311
|
|
%313 = add i8 %312, 1
|
|
store i8 %313, i8* %311
|
|
%314 = load i8* %311
|
|
%315 = add i8 %314, 1
|
|
store i8 %315, i8* %311
|
|
%316 = load i8* %311
|
|
%317 = add i8 %316, 1
|
|
store i8 %317, i8* %311
|
|
%318 = load i8* %311
|
|
%319 = add i8 %318, 1
|
|
store i8 %319, i8* %311
|
|
%320 = getelementptr i8* %311, i32 1
|
|
%321 = load i8* %320
|
|
%322 = sub i8 %321, 1
|
|
store i8 %322, i8* %320
|
|
%323 = load i8* %320
|
|
%324 = icmp ne i8 %323, 0
|
|
br i1 %324, label %310, label %325
|
|
|
|
; <label>:325 ; preds = %310, %290
|
|
%326 = getelementptr i8* %320, i32 -1
|
|
%327 = load i8* %326
|
|
%328 = add i8 %327, 1
|
|
store i8 %328, i8* %326
|
|
%329 = load i8* %326
|
|
%330 = sext i8 %329 to i32
|
|
%331 = call i32 @putchar(i32 %330)
|
|
%332 = load i8* %326
|
|
%333 = icmp ne i8 %332, 0
|
|
br i1 %333, label %334, label %339
|
|
|
|
; <label>:334 ; preds = %334, %325
|
|
%335 = load i8* %326
|
|
%336 = sub i8 %335, 1
|
|
store i8 %336, i8* %326
|
|
%337 = load i8* %326
|
|
%338 = icmp ne i8 %337, 0
|
|
br i1 %338, label %334, label %339
|
|
|
|
; <label>:339 ; preds = %334, %325
|
|
%340 = load i8* %326
|
|
%341 = add i8 %340, 1
|
|
store i8 %341, i8* %326
|
|
%342 = load i8* %326
|
|
%343 = add i8 %342, 1
|
|
store i8 %343, i8* %326
|
|
%344 = load i8* %326
|
|
%345 = add i8 %344, 1
|
|
store i8 %345, i8* %326
|
|
%346 = load i8* %326
|
|
%347 = add i8 %346, 1
|
|
store i8 %347, i8* %326
|
|
%348 = load i8* %326
|
|
%349 = add i8 %348, 1
|
|
store i8 %349, i8* %326
|
|
%350 = load i8* %326
|
|
%351 = add i8 %350, 1
|
|
store i8 %351, i8* %326
|
|
%352 = load i8* %326
|
|
%353 = add i8 %352, 1
|
|
store i8 %353, i8* %326
|
|
%354 = load i8* %326
|
|
%355 = add i8 %354, 1
|
|
store i8 %355, i8* %326
|
|
%356 = load i8* %326
|
|
%357 = add i8 %356, 1
|
|
store i8 %357, i8* %326
|
|
%358 = load i8* %326
|
|
%359 = add i8 %358, 1
|
|
store i8 %359, i8* %326
|
|
%360 = load i8* %326
|
|
%361 = sext i8 %360 to i32
|
|
%362 = call i32 @putchar(i32 %361)
|
|
tail call void @free(i8* %malloccall)
|
|
ret i32 0
|
|
}
|
|
|
|
declare noalias i8* @malloc(i32)
|
|
|
|
declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind
|
|
|
|
declare void @free(i8*)
|
|
|