1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
; RUN: llvm-as %s -o - | lli -force-interpreter
target datalayout = "E"
define i32 @main() {
entry:
%i = alloca i93
store i93 18364758544493064720, i93* %i
%i1 = load i93* %i
%i2 = shl i93 %i1, 32
%i3 = or i93 %i2, 3753679480
store i93 %i3, i93* %i
%i4 = load i93* %i
%C = icmp eq i93 %i3, %i4
br i1 %C, label %ok1, label %fail
ok1:
%b = bitcast i93* %i to [12 x i8]*
%b0 = getelementptr [12 x i8]* %b, i32 0, i32 0
%v0 = load i8* %b0
%c0 = icmp eq i8 %v0, 30
br i1 %c0, label %ok2, label %fail
ok2:
%b1 = getelementptr [12 x i8]* %b, i32 0, i32 1
%v1 = load i8* %b1
%c1 = icmp eq i8 %v1, 220
br i1 %c1, label %ok3, label %fail
ok3:
%b2 = getelementptr [12 x i8]* %b, i32 0, i32 2
%v2 = load i8* %b2
%c2 = icmp eq i8 %v2, 186
br i1 %c2, label %ok4, label %fail
ok4:
%b3 = getelementptr [12 x i8]* %b, i32 0, i32 3
%v3 = load i8* %b3
%c3 = icmp eq i8 %v3, 152
br i1 %c3, label %ok5, label %fail
ok5:
%b4 = getelementptr [12 x i8]* %b, i32 0, i32 4
%v4 = load i8* %b4
%c4 = icmp eq i8 %v4, 118
br i1 %c4, label %ok6, label %fail
ok6:
%b5 = getelementptr [12 x i8]* %b, i32 0, i32 5
%v5 = load i8* %b5
%c5 = icmp eq i8 %v5, 84
br i1 %c5, label %ok7, label %fail
ok7:
%b6 = getelementptr [12 x i8]* %b, i32 0, i32 6
%v6 = load i8* %b6
%c6 = icmp eq i8 %v6, 50
br i1 %c6, label %ok8, label %fail
ok8:
%b7 = getelementptr [12 x i8]* %b, i32 0, i32 7
%v7 = load i8* %b7
%c7 = icmp eq i8 %v7, 16
br i1 %c7, label %ok9, label %fail
ok9:
%b8 = getelementptr [12 x i8]* %b, i32 0, i32 8
%v8 = load i8* %b8
%c8 = icmp eq i8 %v8, 223
br i1 %c8, label %okA, label %fail
okA:
%b9 = getelementptr [12 x i8]* %b, i32 0, i32 9
%v9 = load i8* %b9
%c9 = icmp eq i8 %v9, 188
br i1 %c9, label %okB, label %fail
okB:
%bA = getelementptr [12 x i8]* %b, i32 0, i32 10
%vA = load i8* %bA
%cA = icmp eq i8 %vA, 154
br i1 %cA, label %okC, label %fail
okC:
%bB = getelementptr [12 x i8]* %b, i32 0, i32 11
%vB = load i8* %bB
%cB = icmp eq i8 %vB, 120
br i1 %cB, label %okD, label %fail
okD:
ret i32 0
fail:
ret i32 1
}
|