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.
324 lines
7.9 KiB
324 lines
7.9 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 = load i8* %1
|
|
%3 = add i8 %2, 1
|
|
store i8 %3, i8* %1
|
|
%4 = load i8* %1
|
|
%5 = add i8 %4, 1
|
|
store i8 %5, i8* %1
|
|
%6 = load i8* %1
|
|
%7 = add i8 %6, 1
|
|
store i8 %7, i8* %1
|
|
%8 = load i8* %1
|
|
%9 = add i8 %8, 1
|
|
store i8 %9, i8* %1
|
|
%10 = load i8* %1
|
|
%11 = add i8 %10, 1
|
|
store i8 %11, i8* %1
|
|
%12 = load i8* %1
|
|
%13 = add i8 %12, 1
|
|
store i8 %13, i8* %1
|
|
%14 = load i8* %1
|
|
%15 = add i8 %14, 1
|
|
store i8 %15, i8* %1
|
|
%16 = load i8* %1
|
|
%17 = add i8 %16, 1
|
|
store i8 %17, i8* %1
|
|
%18 = load i8* %1
|
|
%19 = add i8 %18, 1
|
|
store i8 %19, i8* %1
|
|
%20 = load i8* %1
|
|
%21 = add i8 %20, 1
|
|
store i8 %21, i8* %1
|
|
%22 = load i8* %1
|
|
%23 = icmp ne i8 %22, 0
|
|
br i1 %23, label %24, label %79
|
|
|
|
; <label>:24 ; preds = %24, %0
|
|
%25 = getelementptr i8* %1, i32 1
|
|
%26 = load i8* %25
|
|
%27 = add i8 %26, 1
|
|
store i8 %27, i8* %25
|
|
%28 = load i8* %25
|
|
%29 = add i8 %28, 1
|
|
store i8 %29, i8* %25
|
|
%30 = load i8* %25
|
|
%31 = add i8 %30, 1
|
|
store i8 %31, i8* %25
|
|
%32 = load i8* %25
|
|
%33 = add i8 %32, 1
|
|
store i8 %33, i8* %25
|
|
%34 = load i8* %25
|
|
%35 = add i8 %34, 1
|
|
store i8 %35, i8* %25
|
|
%36 = load i8* %25
|
|
%37 = add i8 %36, 1
|
|
store i8 %37, i8* %25
|
|
%38 = load i8* %25
|
|
%39 = add i8 %38, 1
|
|
store i8 %39, i8* %25
|
|
%40 = getelementptr i8* %25, i32 1
|
|
%41 = load i8* %40
|
|
%42 = add i8 %41, 1
|
|
store i8 %42, i8* %40
|
|
%43 = load i8* %40
|
|
%44 = add i8 %43, 1
|
|
store i8 %44, i8* %40
|
|
%45 = load i8* %40
|
|
%46 = add i8 %45, 1
|
|
store i8 %46, i8* %40
|
|
%47 = load i8* %40
|
|
%48 = add i8 %47, 1
|
|
store i8 %48, i8* %40
|
|
%49 = load i8* %40
|
|
%50 = add i8 %49, 1
|
|
store i8 %50, i8* %40
|
|
%51 = load i8* %40
|
|
%52 = add i8 %51, 1
|
|
store i8 %52, i8* %40
|
|
%53 = load i8* %40
|
|
%54 = add i8 %53, 1
|
|
store i8 %54, i8* %40
|
|
%55 = load i8* %40
|
|
%56 = add i8 %55, 1
|
|
store i8 %56, i8* %40
|
|
%57 = load i8* %40
|
|
%58 = add i8 %57, 1
|
|
store i8 %58, i8* %40
|
|
%59 = load i8* %40
|
|
%60 = add i8 %59, 1
|
|
store i8 %60, i8* %40
|
|
%61 = getelementptr i8* %40, i32 1
|
|
%62 = load i8* %61
|
|
%63 = add i8 %62, 1
|
|
store i8 %63, i8* %61
|
|
%64 = load i8* %61
|
|
%65 = add i8 %64, 1
|
|
store i8 %65, i8* %61
|
|
%66 = load i8* %61
|
|
%67 = add i8 %66, 1
|
|
store i8 %67, i8* %61
|
|
%68 = getelementptr i8* %61, i32 1
|
|
%69 = load i8* %68
|
|
%70 = add i8 %69, 1
|
|
store i8 %70, i8* %68
|
|
%71 = getelementptr i8* %68, i32 -1
|
|
%72 = getelementptr i8* %71, i32 -1
|
|
%73 = getelementptr i8* %72, i32 -1
|
|
%74 = getelementptr i8* %73, i32 -1
|
|
%75 = load i8* %74
|
|
%76 = sub i8 %75, 1
|
|
store i8 %76, i8* %74
|
|
%77 = load i8* %74
|
|
%78 = icmp ne i8 %77, 0
|
|
br i1 %78, label %24, label %79
|
|
|
|
; <label>:79 ; preds = %24, %0
|
|
%80 = getelementptr i8* %74, i32 1
|
|
%81 = load i8* %80
|
|
%82 = add i8 %81, 1
|
|
store i8 %82, i8* %80
|
|
%83 = load i8* %80
|
|
%84 = add i8 %83, 1
|
|
store i8 %84, i8* %80
|
|
%85 = load i8* %80
|
|
%86 = sext i8 %85 to i32
|
|
%87 = call i32 @putchar(i32 %86)
|
|
%88 = getelementptr i8* %80, i32 1
|
|
%89 = load i8* %88
|
|
%90 = add i8 %89, 1
|
|
store i8 %90, i8* %88
|
|
%91 = load i8* %88
|
|
%92 = sext i8 %91 to i32
|
|
%93 = call i32 @putchar(i32 %92)
|
|
%94 = load i8* %88
|
|
%95 = add i8 %94, 1
|
|
store i8 %95, i8* %88
|
|
%96 = load i8* %88
|
|
%97 = add i8 %96, 1
|
|
store i8 %97, i8* %88
|
|
%98 = load i8* %88
|
|
%99 = add i8 %98, 1
|
|
store i8 %99, i8* %88
|
|
%100 = load i8* %88
|
|
%101 = add i8 %100, 1
|
|
store i8 %101, i8* %88
|
|
%102 = load i8* %88
|
|
%103 = add i8 %102, 1
|
|
store i8 %103, i8* %88
|
|
%104 = load i8* %88
|
|
%105 = add i8 %104, 1
|
|
store i8 %105, i8* %88
|
|
%106 = load i8* %88
|
|
%107 = add i8 %106, 1
|
|
store i8 %107, i8* %88
|
|
%108 = load i8* %88
|
|
%109 = sext i8 %108 to i32
|
|
%110 = call i32 @putchar(i32 %109)
|
|
%111 = load i8* %88
|
|
%112 = sext i8 %111 to i32
|
|
%113 = call i32 @putchar(i32 %112)
|
|
%114 = load i8* %88
|
|
%115 = add i8 %114, 1
|
|
store i8 %115, i8* %88
|
|
%116 = load i8* %88
|
|
%117 = add i8 %116, 1
|
|
store i8 %117, i8* %88
|
|
%118 = load i8* %88
|
|
%119 = add i8 %118, 1
|
|
store i8 %119, i8* %88
|
|
%120 = load i8* %88
|
|
%121 = sext i8 %120 to i32
|
|
%122 = call i32 @putchar(i32 %121)
|
|
%123 = getelementptr i8* %88, i32 1
|
|
%124 = load i8* %123
|
|
%125 = add i8 %124, 1
|
|
store i8 %125, i8* %123
|
|
%126 = load i8* %123
|
|
%127 = add i8 %126, 1
|
|
store i8 %127, i8* %123
|
|
%128 = load i8* %123
|
|
%129 = sext i8 %128 to i32
|
|
%130 = call i32 @putchar(i32 %129)
|
|
%131 = getelementptr i8* %123, i32 -1
|
|
%132 = getelementptr i8* %131, i32 -1
|
|
%133 = load i8* %132
|
|
%134 = add i8 %133, 1
|
|
store i8 %134, i8* %132
|
|
%135 = load i8* %132
|
|
%136 = add i8 %135, 1
|
|
store i8 %136, i8* %132
|
|
%137 = load i8* %132
|
|
%138 = add i8 %137, 1
|
|
store i8 %138, i8* %132
|
|
%139 = load i8* %132
|
|
%140 = add i8 %139, 1
|
|
store i8 %140, i8* %132
|
|
%141 = load i8* %132
|
|
%142 = add i8 %141, 1
|
|
store i8 %142, i8* %132
|
|
%143 = load i8* %132
|
|
%144 = add i8 %143, 1
|
|
store i8 %144, i8* %132
|
|
%145 = load i8* %132
|
|
%146 = add i8 %145, 1
|
|
store i8 %146, i8* %132
|
|
%147 = load i8* %132
|
|
%148 = add i8 %147, 1
|
|
store i8 %148, i8* %132
|
|
%149 = load i8* %132
|
|
%150 = add i8 %149, 1
|
|
store i8 %150, i8* %132
|
|
%151 = load i8* %132
|
|
%152 = add i8 %151, 1
|
|
store i8 %152, i8* %132
|
|
%153 = load i8* %132
|
|
%154 = add i8 %153, 1
|
|
store i8 %154, i8* %132
|
|
%155 = load i8* %132
|
|
%156 = add i8 %155, 1
|
|
store i8 %156, i8* %132
|
|
%157 = load i8* %132
|
|
%158 = add i8 %157, 1
|
|
store i8 %158, i8* %132
|
|
%159 = load i8* %132
|
|
%160 = add i8 %159, 1
|
|
store i8 %160, i8* %132
|
|
%161 = load i8* %132
|
|
%162 = add i8 %161, 1
|
|
store i8 %162, i8* %132
|
|
%163 = load i8* %132
|
|
%164 = sext i8 %163 to i32
|
|
%165 = call i32 @putchar(i32 %164)
|
|
%166 = getelementptr i8* %132, i32 1
|
|
%167 = load i8* %166
|
|
%168 = sext i8 %167 to i32
|
|
%169 = call i32 @putchar(i32 %168)
|
|
%170 = load i8* %166
|
|
%171 = add i8 %170, 1
|
|
store i8 %171, i8* %166
|
|
%172 = load i8* %166
|
|
%173 = add i8 %172, 1
|
|
store i8 %173, i8* %166
|
|
%174 = load i8* %166
|
|
%175 = add i8 %174, 1
|
|
store i8 %175, i8* %166
|
|
%176 = load i8* %166
|
|
%177 = sext i8 %176 to i32
|
|
%178 = call i32 @putchar(i32 %177)
|
|
%179 = load i8* %166
|
|
%180 = sub i8 %179, 1
|
|
store i8 %180, i8* %166
|
|
%181 = load i8* %166
|
|
%182 = sub i8 %181, 1
|
|
store i8 %182, i8* %166
|
|
%183 = load i8* %166
|
|
%184 = sub i8 %183, 1
|
|
store i8 %184, i8* %166
|
|
%185 = load i8* %166
|
|
%186 = sub i8 %185, 1
|
|
store i8 %186, i8* %166
|
|
%187 = load i8* %166
|
|
%188 = sub i8 %187, 1
|
|
store i8 %188, i8* %166
|
|
%189 = load i8* %166
|
|
%190 = sub i8 %189, 1
|
|
store i8 %190, i8* %166
|
|
%191 = load i8* %166
|
|
%192 = sext i8 %191 to i32
|
|
%193 = call i32 @putchar(i32 %192)
|
|
%194 = load i8* %166
|
|
%195 = sub i8 %194, 1
|
|
store i8 %195, i8* %166
|
|
%196 = load i8* %166
|
|
%197 = sub i8 %196, 1
|
|
store i8 %197, i8* %166
|
|
%198 = load i8* %166
|
|
%199 = sub i8 %198, 1
|
|
store i8 %199, i8* %166
|
|
%200 = load i8* %166
|
|
%201 = sub i8 %200, 1
|
|
store i8 %201, i8* %166
|
|
%202 = load i8* %166
|
|
%203 = sub i8 %202, 1
|
|
store i8 %203, i8* %166
|
|
%204 = load i8* %166
|
|
%205 = sub i8 %204, 1
|
|
store i8 %205, i8* %166
|
|
%206 = load i8* %166
|
|
%207 = sub i8 %206, 1
|
|
store i8 %207, i8* %166
|
|
%208 = load i8* %166
|
|
%209 = sub i8 %208, 1
|
|
store i8 %209, i8* %166
|
|
%210 = load i8* %166
|
|
%211 = sext i8 %210 to i32
|
|
%212 = call i32 @putchar(i32 %211)
|
|
%213 = getelementptr i8* %166, i32 1
|
|
%214 = load i8* %213
|
|
%215 = add i8 %214, 1
|
|
store i8 %215, i8* %213
|
|
%216 = load i8* %213
|
|
%217 = sext i8 %216 to i32
|
|
%218 = call i32 @putchar(i32 %217)
|
|
%219 = getelementptr i8* %213, i32 1
|
|
%220 = load i8* %219
|
|
%221 = sext i8 %220 to i32
|
|
%222 = call i32 @putchar(i32 %221)
|
|
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*)
|
|
|