Index: tests_lit/llvm2ice_tests/8bit.pnacl.ll |
diff --git a/tests_lit/llvm2ice_tests/8bit.pnacl.ll b/tests_lit/llvm2ice_tests/8bit.pnacl.ll |
index 6e98f0e83a507f2161efd0733483db1ef1df8b4b..38c24410bab76d2480da40a61f436471ae9326aa 100644 |
--- a/tests_lit/llvm2ice_tests/8bit.pnacl.ll |
+++ b/tests_lit/llvm2ice_tests/8bit.pnacl.ll |
@@ -276,6 +276,20 @@ entry: |
; CHECK-LABEL: icmp8BitMemSwapped |
; CHECK: cmp {{[abcd]l|byte ptr}} |
+define internal i32 @selectI8Var(i32 %a, i32 %b) { |
+entry: |
+ %a_8 = trunc i32 %a to i8 |
+ %b_8 = trunc i32 %b to i8 |
+ %cmp = icmp slt i8 %a_8, %b_8 |
+ %ret = select i1 %cmp, i8 %a_8, i8 %b_8 |
+ %ret_ext = zext i8 %ret to i32 |
+ ret i32 %ret_ext |
+} |
+; CHECK-LABEL: selectI8Var |
+; CHECK: cmp |
+; CHECK: jl |
+; CHECK: mov {{[a-d]l}} |
+ |
define internal i32 @testPhi8(i32 %arg, i32 %arg2, i32 %arg3, i32 %arg4, i32 %arg5, i32 %arg6, i32 %arg7, i32 %arg8, i32 %arg9, i32 %arg10) { |
entry: |
%trunc = trunc i32 %arg to i8 |
@@ -315,5 +329,46 @@ target: |
; CHECK-DAG: mov {{.*}}, byte ptr |
; CHECK-DAG: mov byte ptr {{.*}} |
+@global8 = internal global [1 x i8] c"\01", align 4 |
+ |
+define i32 @load_i8(i32 %addr_arg) { |
+entry: |
+ %addr = inttoptr i32 %addr_arg to i8* |
+ %ret = load i8* %addr, align 1 |
+ %ret_ext = zext i8 %ret to i32 |
+ ret i32 %ret_ext |
+} |
+; CHECK-LABEL: load_i8 |
+; CHECK: mov {{[a-d]l}}, byte ptr |
+ |
+define i32 @load_i8_global(i32 %addr_arg) { |
+entry: |
+ %addr = bitcast [1 x i8]* @global8 to i8* |
+ %ret = load i8* %addr, align 1 |
+ %ret_ext = zext i8 %ret to i32 |
+ ret i32 %ret_ext |
+} |
+; CHECK-LABEL: load_i8_global |
+; CHECK: mov {{[a-d]l}}, byte ptr |
+ |
+define void @store_i8(i32 %addr_arg, i32 %val) { |
+entry: |
+ %val_trunc = trunc i32 %val to i8 |
+ %addr = inttoptr i32 %addr_arg to i8* |
+ store i8 %val_trunc, i8* %addr, align 1 |
+ ret void |
+} |
+; CHECK-LABEL: store_i8 |
+; CHECK: mov byte ptr {{.*}}, {{[a-d]l}} |
+ |
+define void @store_i8_const(i32 %addr_arg) { |
+entry: |
+ %addr = inttoptr i32 %addr_arg to i8* |
+ store i8 123, i8* %addr, align 1 |
+ ret void |
+} |
+; CHECK-LABEL: store_i8_const |
+; CHECK: mov byte ptr {{.*}}, 123 |
+ |
; ERRORS-NOT: ICE translation error |
; DUMP-NOT: SZ |