diff options
Diffstat (limited to 'test/ExecutionEngine/2007-12-14-BigEndian.ll')
-rw-r--r-- | test/ExecutionEngine/2007-12-14-BigEndian.ll | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/test/ExecutionEngine/2007-12-14-BigEndian.ll b/test/ExecutionEngine/2007-12-14-BigEndian.ll new file mode 100644 index 0000000000..68059fd59a --- /dev/null +++ b/test/ExecutionEngine/2007-12-14-BigEndian.ll @@ -0,0 +1,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 +} |