This commit is contained in:
Christoffer Lerno
2022-08-12 10:46:11 +02:00
parent 5cacc41925
commit 44df6eb75b
75 changed files with 5022 additions and 4810 deletions

View File

@@ -31,41 +31,41 @@ entry:
store [3 x i8] c"\1A\1E\10", [3 x i8]* %xy, align 1
%0 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 0
%1 = load i8, i8* %0, align 1
%2 = zext i8 %1 to i32
%3 = shl i32 %2, 29
%4 = ashr i32 %3, 29
%5 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 0
%6 = load i8, i8* %5, align 1
%7 = zext i8 %6 to i32
%8 = lshr i32 %7, 3
%9 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 1
%zext = zext i8 %1 to i32
%shl = shl i32 %zext, 29
%ashr = ashr i32 %shl, 29
%2 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 0
%3 = load i8, i8* %2, align 1
%zext1 = zext i8 %3 to i32
%lshrl = lshr i32 %zext1, 3
%4 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 1
%5 = load i8, i8* %4, align 1
%zext2 = zext i8 %5 to i32
%shl3 = shl i32 %zext2, 5
%6 = or i32 %shl3, %lshrl
%shl4 = shl i32 %6, 26
%ashr5 = ashr i32 %shl4, 26
%7 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 1
%8 = load i8, i8* %7, align 1
%zext6 = zext i8 %8 to i32
%lshrl7 = lshr i32 %zext6, 1
%9 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%10 = load i8, i8* %9, align 1
%11 = zext i8 %10 to i32
%12 = shl i32 %11, 5
%13 = or i32 %12, %8
%14 = shl i32 %13, 26
%15 = ashr i32 %14, 26
%16 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 1
%17 = load i8, i8* %16, align 1
%18 = zext i8 %17 to i32
%19 = lshr i32 %18, 1
%20 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%21 = load i8, i8* %20, align 1
%22 = zext i8 %21 to i32
%23 = shl i32 %22, 7
%24 = or i32 %23, %19
%25 = shl i32 %24, 22
%26 = ashr i32 %25, 22
%27 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%28 = load i8, i8* %27, align 1
%29 = lshr i8 %28, 3
%30 = trunc i8 %29 to i1
%boolsi = zext i1 %30 to i32
%31 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%32 = load i8, i8* %31, align 1
%33 = lshr i8 %32, 4
%34 = trunc i8 %33 to i1
%boolsi1 = zext i1 %34 to i32
call void (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i32 0, i32 0), i32 %4, i32 %15, i32 %26, i32 %boolsi, i32 %boolsi1)
%zext8 = zext i8 %10 to i32
%shl9 = shl i32 %zext8, 7
%11 = or i32 %shl9, %lshrl7
%shl10 = shl i32 %11, 22
%ashr11 = ashr i32 %shl10, 22
%12 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%13 = load i8, i8* %12, align 1
%lshrl12 = lshr i8 %13, 3
%14 = trunc i8 %lshrl12 to i1
%boolsi = zext i1 %14 to i32
%15 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%16 = load i8, i8* %15, align 1
%lshrl13 = lshr i8 %16, 4
%17 = trunc i8 %lshrl13 to i1
%boolsi14 = zext i1 %17 to i32
call void (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i32 0, i32 0), i32 %ashr, i32 %ashr5, i32 %ashr11, i32 %boolsi, i32 %boolsi14)
ret void
}

View File

@@ -125,56 +125,56 @@ entry:
store i8 0, i8* %d, align 1
%0 = getelementptr inbounds [3 x i8], [3 x i8]* %e1, i64 0, i64 0
%1 = load i8, i8* %0, align 1
%2 = zext i8 %1 to i32
%3 = shl i32 %2, 29
%4 = ashr i32 %3, 29
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %4)
%5 = getelementptr inbounds [3 x i8], [3 x i8]* %e2, i64 0, i64 0
%6 = load i8, i8* %5, align 1
%7 = zext i8 %6 to i32
%8 = shl i32 %7, 29
%9 = ashr i32 %8, 29
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i32 %9)
%10 = getelementptr inbounds [3 x i8], [3 x i8]* %e3, i64 0, i64 0
%11 = load i8, i8* %10, align 1
%12 = zext i8 %11 to i32
%13 = shl i32 %12, 29
%14 = ashr i32 %13, 29
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0), i32 %14)
%zext = zext i8 %1 to i32
%shl = shl i32 %zext, 29
%ashr = ashr i32 %shl, 29
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %ashr)
%2 = getelementptr inbounds [3 x i8], [3 x i8]* %e2, i64 0, i64 0
%3 = load i8, i8* %2, align 1
%zext1 = zext i8 %3 to i32
%shl2 = shl i32 %zext1, 29
%ashr3 = ashr i32 %shl2, 29
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i32 %ashr3)
%4 = getelementptr inbounds [3 x i8], [3 x i8]* %e3, i64 0, i64 0
%5 = load i8, i8* %4, align 1
%zext4 = zext i8 %5 to i32
%shl5 = shl i32 %zext4, 29
%ashr6 = ashr i32 %shl5, 29
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0), i32 %ashr6)
store [3 x i8] c"\0B\06 ", [3 x i8]* %z1, align 1
store [3 x i8] c"\0C\06 ", [3 x i8]* %z2, align 1
store [3 x i8] c"\0F\06 ", [3 x i8]* %z3, align 1
%15 = getelementptr inbounds [3 x i8], [3 x i8]* %z1, i64 0, i64 0
%16 = load i8, i8* %15, align 1
%17 = zext i8 %16 to i32
%18 = and i32 7, %17
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i32 0, i32 0), i32 %18)
%19 = getelementptr inbounds [3 x i8], [3 x i8]* %z2, i64 0, i64 0
%20 = load i8, i8* %19, align 1
%21 = zext i8 %20 to i32
%22 = and i32 7, %21
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i32 0, i32 0), i32 %22)
%23 = getelementptr inbounds [3 x i8], [3 x i8]* %z3, i64 0, i64 0
%24 = load i8, i8* %23, align 1
%25 = zext i8 %24 to i32
%26 = and i32 7, %25
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i32 0, i32 0), i32 %26)
%6 = getelementptr inbounds [3 x i8], [3 x i8]* %z1, i64 0, i64 0
%7 = load i8, i8* %6, align 1
%zext7 = zext i8 %7 to i32
%8 = and i32 7, %zext7
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i32 0, i32 0), i32 %8)
%9 = getelementptr inbounds [3 x i8], [3 x i8]* %z2, i64 0, i64 0
%10 = load i8, i8* %9, align 1
%zext8 = zext i8 %10 to i32
%11 = and i32 7, %zext8
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i32 0, i32 0), i32 %11)
%12 = getelementptr inbounds [3 x i8], [3 x i8]* %z3, i64 0, i64 0
%13 = load i8, i8* %12, align 1
%zext9 = zext i8 %13 to i32
%14 = and i32 7, %zext9
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i32 0, i32 0), i32 %14)
store [5 x i8] c"\00G\02\00\00", [5 x i8]* %xx, align 1
%27 = getelementptr inbounds [5 x i8], [5 x i8]* %xx, i64 0, i64 0
%28 = load i8, i8* %27, align 1
%29 = zext i8 %28 to i32
%30 = lshr i32 %29, 5
%31 = getelementptr inbounds [5 x i8], [5 x i8]* %xx, i64 0, i64 1
%32 = load i8, i8* %31, align 1
%33 = zext i8 %32 to i32
%34 = shl i32 %33, 3
%35 = or i32 %34, %30
%36 = getelementptr inbounds [5 x i8], [5 x i8]* %xx, i64 0, i64 2
%37 = load i8, i8* %36, align 1
%38 = zext i8 %37 to i32
%39 = shl i32 %38, 11
%40 = or i32 %39, %35
%41 = and i32 262143, %40
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i32 0, i32 0), i32 %41)
%15 = getelementptr inbounds [5 x i8], [5 x i8]* %xx, i64 0, i64 0
%16 = load i8, i8* %15, align 1
%zext10 = zext i8 %16 to i32
%lshrl = lshr i32 %zext10, 5
%17 = getelementptr inbounds [5 x i8], [5 x i8]* %xx, i64 0, i64 1
%18 = load i8, i8* %17, align 1
%zext11 = zext i8 %18 to i32
%shl12 = shl i32 %zext11, 3
%19 = or i32 %shl12, %lshrl
%20 = getelementptr inbounds [5 x i8], [5 x i8]* %xx, i64 0, i64 2
%21 = load i8, i8* %20, align 1
%zext13 = zext i8 %21 to i32
%shl14 = shl i32 %zext13, 11
%22 = or i32 %shl14, %19
%23 = and i32 262143, %22
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i32 0, i32 0), i32 %23)
ret void
}

View File

@@ -37,55 +37,55 @@ entry:
store [3 x i8] c"\E0\FD\7F", [3 x i8]* %xx, align 1
%0 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 0
%1 = load i8, i8* %0, align 1
%2 = zext i8 %1 to i32
%3 = lshr i32 %2, 5
%4 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 1
%5 = load i8, i8* %4, align 1
%6 = zext i8 %5 to i32
%7 = shl i32 %6, 3
%8 = or i32 %7, %3
%9 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%10 = load i8, i8* %9, align 1
%11 = zext i8 %10 to i32
%12 = shl i32 %11, 11
%13 = or i32 %12, %8
%14 = shl i32 %13, 14
%15 = ashr i32 %14, 14
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %15)
%zext = zext i8 %1 to i32
%lshrl = lshr i32 %zext, 5
%2 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 1
%3 = load i8, i8* %2, align 1
%zext1 = zext i8 %3 to i32
%shl = shl i32 %zext1, 3
%4 = or i32 %shl, %lshrl
%5 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%6 = load i8, i8* %5, align 1
%zext2 = zext i8 %6 to i32
%shl3 = shl i32 %zext2, 11
%7 = or i32 %shl3, %4
%shl4 = shl i32 %7, 14
%ashr = ashr i32 %shl4, 14
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %ashr)
store [3 x i8] c"\FF\FD\FF", [3 x i8]* %xx, align 1
%16 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 0
%17 = load i8, i8* %16, align 1
%18 = zext i8 %17 to i32
%19 = lshr i32 %18, 5
%20 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 1
%21 = load i8, i8* %20, align 1
%22 = zext i8 %21 to i32
%23 = shl i32 %22, 3
%24 = or i32 %23, %19
%25 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%26 = load i8, i8* %25, align 1
%27 = zext i8 %26 to i32
%28 = shl i32 %27, 11
%29 = or i32 %28, %24
%30 = shl i32 %29, 14
%31 = ashr i32 %30, 14
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i32 %31)
%8 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 0
%9 = load i8, i8* %8, align 1
%zext5 = zext i8 %9 to i32
%lshrl6 = lshr i32 %zext5, 5
%10 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 1
%11 = load i8, i8* %10, align 1
%zext7 = zext i8 %11 to i32
%shl8 = shl i32 %zext7, 3
%12 = or i32 %shl8, %lshrl6
%13 = getelementptr inbounds [3 x i8], [3 x i8]* %xx, i64 0, i64 2
%14 = load i8, i8* %13, align 1
%zext9 = zext i8 %14 to i32
%shl10 = shl i32 %zext9, 11
%15 = or i32 %shl10, %12
%shl11 = shl i32 %15, 14
%ashr12 = ashr i32 %shl11, 14
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i32 %ashr12)
store [3 x i8] c"\1F\CF\AA", [3 x i8]* %xxu, align 1
%32 = getelementptr inbounds [3 x i8], [3 x i8]* %xxu, i64 0, i64 0
%33 = load i8, i8* %32, align 1
%34 = zext i8 %33 to i32
%35 = lshr i32 %34, 5
%36 = getelementptr inbounds [3 x i8], [3 x i8]* %xxu, i64 0, i64 1
%37 = load i8, i8* %36, align 1
%38 = zext i8 %37 to i32
%39 = shl i32 %38, 3
%40 = or i32 %39, %35
%41 = getelementptr inbounds [3 x i8], [3 x i8]* %xxu, i64 0, i64 2
%42 = load i8, i8* %41, align 1
%43 = zext i8 %42 to i32
%44 = shl i32 %43, 11
%45 = or i32 %44, %40
%46 = and i32 262143, %45
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0), i32 %46)
%16 = getelementptr inbounds [3 x i8], [3 x i8]* %xxu, i64 0, i64 0
%17 = load i8, i8* %16, align 1
%zext13 = zext i8 %17 to i32
%lshrl14 = lshr i32 %zext13, 5
%18 = getelementptr inbounds [3 x i8], [3 x i8]* %xxu, i64 0, i64 1
%19 = load i8, i8* %18, align 1
%zext15 = zext i8 %19 to i32
%shl16 = shl i32 %zext15, 3
%20 = or i32 %shl16, %lshrl14
%21 = getelementptr inbounds [3 x i8], [3 x i8]* %xxu, i64 0, i64 2
%22 = load i8, i8* %21, align 1
%zext17 = zext i8 %22 to i32
%shl18 = shl i32 %zext17, 11
%23 = or i32 %shl18, %20
%24 = and i32 262143, %23
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0), i32 %24)
ret void
}

File diff suppressed because it is too large Load Diff

View File

@@ -46,101 +46,101 @@ entry:
store [4 x i8] c"\E0\FB\0A\00", [4 x i8]* %xx, align 1
%0 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 0
%1 = load i8, i8* %0, align 1
%2 = zext i8 %1 to i32
%3 = lshr i32 %2, 4
%4 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 1
%5 = load i8, i8* %4, align 1
%6 = zext i8 %5 to i32
%7 = shl i32 %6, 4
%8 = or i32 %7, %3
%9 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 2
%10 = load i8, i8* %9, align 1
%11 = zext i8 %10 to i32
%12 = shl i32 %11, 12
%13 = or i32 %12, %8
%14 = shl i32 %13, 16
%15 = call i32 @llvm.bswap.i32(i32 %14)
%16 = and i32 65535, %15
call void (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0), i32 %16)
%zext = zext i8 %1 to i32
%lshrl = lshr i32 %zext, 4
%2 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 1
%3 = load i8, i8* %2, align 1
%zext1 = zext i8 %3 to i32
%shl = shl i32 %zext1, 4
%4 = or i32 %shl, %lshrl
%5 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 2
%6 = load i8, i8* %5, align 1
%zext2 = zext i8 %6 to i32
%shl3 = shl i32 %zext2, 12
%7 = or i32 %shl3, %4
%shl4 = shl i32 %7, 16
%8 = call i32 @llvm.bswap.i32(i32 %shl4)
%9 = and i32 65535, %8
call void (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0), i32 %9)
store [4 x i8] c"\F0\EA\0B\00", [4 x i8]* %xy, align 1
%ptrptr = bitcast [4 x i8]* %xy to i8*
store i8* %ptrptr, i8** %abc, align 8
%17 = load i8*, i8** %abc, align 8
%ptrptr1 = bitcast i8* %17 to [4 x i8]*
store [4 x i8]* %ptrptr1, [4 x i8]** %z, align 8
%18 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 0
%19 = load i8, i8* %18, align 1
%20 = zext i8 %19 to i32
%21 = lshr i32 %20, 4
%22 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 1
%23 = load i8, i8* %22, align 1
%24 = zext i8 %23 to i32
%25 = shl i32 %24, 4
%26 = or i32 %25, %21
%27 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 2
%28 = load i8, i8* %27, align 1
%29 = zext i8 %28 to i32
%30 = shl i32 %29, 12
%31 = or i32 %30, %26
%32 = and i32 65535, %31
call void (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.1, i32 0, i32 0), i32 %32)
%33 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 0
%34 = load i8, i8* %33, align 1
%35 = and i8 %34, 15
%36 = or i8 %35, -16
store i8 %36, i8* %33, align 1
%37 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 1
store i8 -18, i8* %37, align 1
%38 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 2
%10 = load i8*, i8** %abc, align 8
%ptrptr5 = bitcast i8* %10 to [4 x i8]*
store [4 x i8]* %ptrptr5, [4 x i8]** %z, align 8
%11 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 0
%12 = load i8, i8* %11, align 1
%zext6 = zext i8 %12 to i32
%lshrl7 = lshr i32 %zext6, 4
%13 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 1
%14 = load i8, i8* %13, align 1
%zext8 = zext i8 %14 to i32
%shl9 = shl i32 %zext8, 4
%15 = or i32 %shl9, %lshrl7
%16 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 2
%17 = load i8, i8* %16, align 1
%zext10 = zext i8 %17 to i32
%shl11 = shl i32 %zext10, 12
%18 = or i32 %shl11, %15
%19 = and i32 65535, %18
call void (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.1, i32 0, i32 0), i32 %19)
%20 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 0
%21 = load i8, i8* %20, align 1
%22 = and i8 %21, 15
%23 = or i8 %22, -16
store i8 %23, i8* %20, align 1
%24 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 1
store i8 -18, i8* %24, align 1
%25 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 2
%26 = load i8, i8* %25, align 1
%27 = and i8 %26, -16
%28 = or i8 %27, 11
store i8 %28, i8* %25, align 1
%29 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 0
%30 = load i8, i8* %29, align 1
%zext12 = zext i8 %30 to i32
%lshrl13 = lshr i32 %zext12, 4
%31 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 1
%32 = load i8, i8* %31, align 1
%zext14 = zext i8 %32 to i32
%shl15 = shl i32 %zext14, 4
%33 = or i32 %shl15, %lshrl13
%34 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 2
%35 = load i8, i8* %34, align 1
%zext16 = zext i8 %35 to i32
%shl17 = shl i32 %zext16, 12
%36 = or i32 %shl17, %33
%37 = and i32 65535, %36
call void (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i32 0, i32 0), i32 %37)
%38 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 0
%39 = load i8, i8* %38, align 1
%40 = and i8 %39, -16
%41 = or i8 %40, 11
%40 = and i8 %39, 15
%41 = or i8 %40, -32
store i8 %41, i8* %38, align 1
%42 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 0
%43 = load i8, i8* %42, align 1
%44 = zext i8 %43 to i32
%45 = lshr i32 %44, 4
%46 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 1
%47 = load i8, i8* %46, align 1
%48 = zext i8 %47 to i32
%49 = shl i32 %48, 4
%50 = or i32 %49, %45
%51 = getelementptr inbounds [4 x i8], [4 x i8]* %xy, i64 0, i64 2
%52 = load i8, i8* %51, align 1
%53 = zext i8 %52 to i32
%54 = shl i32 %53, 12
%55 = or i32 %54, %50
%42 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 1
store i8 -5, i8* %42, align 1
%43 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 2
%44 = load i8, i8* %43, align 1
%45 = and i8 %44, -16
%46 = or i8 %45, 14
store i8 %46, i8* %43, align 1
%47 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 0
%48 = load i8, i8* %47, align 1
%zext18 = zext i8 %48 to i32
%lshrl19 = lshr i32 %zext18, 4
%49 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 1
%50 = load i8, i8* %49, align 1
%zext20 = zext i8 %50 to i32
%shl21 = shl i32 %zext20, 4
%51 = or i32 %shl21, %lshrl19
%52 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 2
%53 = load i8, i8* %52, align 1
%zext22 = zext i8 %53 to i32
%shl23 = shl i32 %zext22, 12
%54 = or i32 %shl23, %51
%shl24 = shl i32 %54, 16
%55 = call i32 @llvm.bswap.i32(i32 %shl24)
%56 = and i32 65535, %55
call void (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i32 0, i32 0), i32 %56)
%57 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 0
%58 = load i8, i8* %57, align 1
%59 = and i8 %58, 15
%60 = or i8 %59, -32
store i8 %60, i8* %57, align 1
%61 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 1
store i8 -5, i8* %61, align 1
%62 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 2
%63 = load i8, i8* %62, align 1
%64 = and i8 %63, -16
%65 = or i8 %64, 14
store i8 %65, i8* %62, align 1
%66 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 0
%67 = load i8, i8* %66, align 1
%68 = zext i8 %67 to i32
%69 = lshr i32 %68, 4
%70 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 1
%71 = load i8, i8* %70, align 1
%72 = zext i8 %71 to i32
%73 = shl i32 %72, 4
%74 = or i32 %73, %69
%75 = getelementptr inbounds [4 x i8], [4 x i8]* %xx, i64 0, i64 2
%76 = load i8, i8* %75, align 1
%77 = zext i8 %76 to i32
%78 = shl i32 %77, 12
%79 = or i32 %78, %74
%80 = shl i32 %79, 16
%81 = call i32 @llvm.bswap.i32(i32 %80)
%82 = and i32 65535, %81
call void (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i32 0, i32 0), i32 %82)
call void (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i32 0, i32 0), i32 %56)
ret void
}

View File

@@ -57,49 +57,49 @@ entry:
%xxybe = alloca i64, align 8
store i32 8388128, i32* %xx, align 4
%0 = load i32, i32* %xx, align 4
%1 = shl i32 %0, 9
%2 = ashr i32 %1, 14
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %2)
%shl = shl i32 %0, 9
%ashr = ashr i32 %shl, 14
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %ashr)
store i32 1073741375, i32* %xx, align 4
%3 = load i32, i32* %xx, align 4
%4 = shl i32 %3, 9
%5 = ashr i32 %4, 14
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i32 %5)
%1 = load i32, i32* %xx, align 4
%shl1 = shl i32 %1, 9
%ashr2 = ashr i32 %shl1, 14
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i32 %ashr2)
store i32 -3485921, i32* %xxu, align 4
%6 = load i32, i32* %xxu, align 4
%7 = lshr i32 %6, 5
%8 = and i32 262143, %7
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0), i32 %8)
%2 = load i32, i32* %xxu, align 4
%lshrl = lshr i32 %2, 5
%3 = and i32 262143, %lshrl
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0), i32 %3)
store i64 1525363991714123551, i64* %xxy, align 8
%9 = load i64, i64* %xxy, align 8
%10 = lshr i64 %9, 5
%11 = and i64 262143, %10
%12 = trunc i64 %11 to i32
%13 = load i64, i64* %xxy, align 8
%14 = lshr i64 %13, 23
%15 = and i64 262143, %14
%16 = trunc i64 %15 to i32
%17 = load i64, i64* %xxy, align 8
%18 = lshr i64 %17, 41
%19 = and i64 2097151, %18
%20 = trunc i64 %19 to i32
call void (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i32 0, i32 0), i32 %12, i32 %16, i32 %20)
%4 = load i64, i64* %xxy, align 8
%lshrl3 = lshr i64 %4, 5
%5 = and i64 262143, %lshrl3
%ztrunc = trunc i64 %5 to i32
%6 = load i64, i64* %xxy, align 8
%lshrl4 = lshr i64 %6, 23
%7 = and i64 262143, %lshrl4
%ztrunc5 = trunc i64 %7 to i32
%8 = load i64, i64* %xxy, align 8
%lshrl6 = lshr i64 %8, 41
%9 = and i64 2097151, %lshrl6
%ztrunc7 = trunc i64 %9 to i32
call void (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i32 0, i32 0), i32 %ztrunc, i32 %ztrunc5, i32 %ztrunc7)
store i64 2292133196431502101, i64* %xxybe, align 8
%21 = load i64, i64* %xxybe, align 8
%22 = call i64 @llvm.bswap.i64(i64 %21)
%23 = lshr i64 %22, 5
%24 = and i64 262143, %23
%25 = trunc i64 %24 to i32
%26 = load i64, i64* %xxybe, align 8
%27 = call i64 @llvm.bswap.i64(i64 %26)
%28 = lshr i64 %27, 23
%29 = and i64 262143, %28
%30 = trunc i64 %29 to i32
%31 = load i64, i64* %xxybe, align 8
%32 = call i64 @llvm.bswap.i64(i64 %31)
%33 = lshr i64 %32, 41
%34 = and i64 2097151, %33
%35 = trunc i64 %34 to i32
call void (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i32 0, i32 0), i32 %25, i32 %30, i32 %35)
%10 = load i64, i64* %xxybe, align 8
%11 = call i64 @llvm.bswap.i64(i64 %10)
%lshrl8 = lshr i64 %11, 5
%12 = and i64 262143, %lshrl8
%ztrunc9 = trunc i64 %12 to i32
%13 = load i64, i64* %xxybe, align 8
%14 = call i64 @llvm.bswap.i64(i64 %13)
%lshrl10 = lshr i64 %14, 23
%15 = and i64 262143, %lshrl10
%ztrunc11 = trunc i64 %15 to i32
%16 = load i64, i64* %xxybe, align 8
%17 = call i64 @llvm.bswap.i64(i64 %16)
%lshrl12 = lshr i64 %17, 41
%18 = and i64 2097151, %lshrl12
%ztrunc13 = trunc i64 %18 to i32
call void (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i32 0, i32 0), i32 %ztrunc9, i32 %ztrunc11, i32 %ztrunc13)
ret void
}

View File

@@ -65,12 +65,12 @@ entry:
store i32* %b, i32** %c, align 8
%3 = load i32*, i32** %c, align 8
%4 = load i32, i32* %3, align 8
%5 = shl i32 %4, 28
%6 = ashr i32 %5, 29
%7 = load i32*, i32** %c, align 8
store i32* %7, i32** %x2, align 8
%8 = load i32*, i32** %c, align 8
%ptrptr = bitcast i32* %8 to [4 x i8]*
%shl = shl i32 %4, 28
%ashr = ashr i32 %shl, 29
%5 = load i32*, i32** %c, align 8
store i32* %5, i32** %x2, align 8
%6 = load i32*, i32** %c, align 8
%ptrptr = bitcast i32* %6 to [4 x i8]*
store [4 x i8]* %ptrptr, [4 x i8]** %y2, align 8
ret void
}
@@ -95,15 +95,15 @@ entry:
%4 = load [4 x i8]*, [4 x i8]** %c, align 8
%5 = getelementptr inbounds [4 x i8], [4 x i8]* %4, i64 0, i64 0
%6 = load i8, i8* %5, align 1
%7 = zext i8 %6 to i32
%8 = lshr i32 %7, 1
%9 = shl i32 %8, 29
%10 = ashr i32 %9, 29
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %10)
%11 = load [4 x i8]*, [4 x i8]** %c, align 8
%ptrptr = bitcast [4 x i8]* %11 to i32*
%zext = zext i8 %6 to i32
%lshrl = lshr i32 %zext, 1
%shl = shl i32 %lshrl, 29
%ashr = ashr i32 %shl, 29
call void (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %ashr)
%7 = load [4 x i8]*, [4 x i8]** %c, align 8
%ptrptr = bitcast [4 x i8]* %7 to i32*
store i32* %ptrptr, i32** %x2, align 8
%12 = load [4 x i8]*, [4 x i8]** %c, align 8
store [4 x i8]* %12, [4 x i8]** %y2, align 8
%8 = load [4 x i8]*, [4 x i8]** %c, align 8
store [4 x i8]* %8, [4 x i8]** %y2, align 8
ret void
}

View File

@@ -58,24 +58,24 @@ entry:
%4 = load i32, i32* %3, align 4
%5 = getelementptr inbounds %Bar, %Bar* %b, i32 0, i32 2
%6 = load i32, i32* %5, align 4
%7 = shl i32 %6, 21
%8 = ashr i32 %7, 23
call void (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i32 0, i32 0), i32 %4, i32 %8)
%9 = bitcast %Foo* %f to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 bitcast (%Foo* @.__const.10 to i8*), i32 16, i1 false)
%10 = getelementptr inbounds %Foo, %Foo* %f, i32 0, i32 0
%11 = getelementptr inbounds %anon.1, %anon.1* %10, i32 0, i32 0
%12 = getelementptr inbounds %anon.2, %anon.2* %11, i32 0, i32 0
%13 = load i32, i32* %12, align 4
%14 = getelementptr inbounds %Foo, %Foo* %f, i32 0, i32 0
%15 = getelementptr inbounds %anon.1, %anon.1* %14, i32 0, i32 1
%16 = getelementptr inbounds %anon.3, %anon.3* %15, i32 0, i32 0
%17 = load i32, i32* %16, align 4
%18 = getelementptr inbounds %Foo, %Foo* %f, i32 0, i32 0
%19 = getelementptr inbounds %anon.1, %anon.1* %18, i32 0, i32 2
%shl = shl i32 %6, 21
%ashr = ashr i32 %shl, 23
call void (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i32 0, i32 0), i32 %4, i32 %ashr)
%7 = bitcast %Foo* %f to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 bitcast (%Foo* @.__const.10 to i8*), i32 16, i1 false)
%8 = getelementptr inbounds %Foo, %Foo* %f, i32 0, i32 0
%9 = getelementptr inbounds %anon.1, %anon.1* %8, i32 0, i32 0
%10 = getelementptr inbounds %anon.2, %anon.2* %9, i32 0, i32 0
%11 = load i32, i32* %10, align 4
%12 = getelementptr inbounds %Foo, %Foo* %f, i32 0, i32 0
%13 = getelementptr inbounds %anon.1, %anon.1* %12, i32 0, i32 1
%14 = getelementptr inbounds %anon.3, %anon.3* %13, i32 0, i32 0
%15 = load i32, i32* %14, align 4
%16 = getelementptr inbounds %Foo, %Foo* %f, i32 0, i32 0
%17 = getelementptr inbounds %anon.1, %anon.1* %16, i32 0, i32 2
%18 = load i32, i32* %17, align 4
%19 = getelementptr inbounds %Foo, %Foo* %f, i32 0, i32 1
%20 = load i32, i32* %19, align 4
%21 = getelementptr inbounds %Foo, %Foo* %f, i32 0, i32 1
%22 = load i32, i32* %21, align 4
call void (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i32 0, i32 0), i32 %13, i32 %17, i32 %20, i32 %22)
call void (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i32 0, i32 0), i32 %11, i32 %15, i32 %18, i32 %20)
ret void
}