Index: crosstest/test_arith_bool.ll |
diff --git a/crosstest/test_arith_bool.ll b/crosstest/test_arith_bool.ll |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b3fbbfe2daa3e179332fc54e89926749d3b257f2 |
--- /dev/null |
+++ b/crosstest/test_arith_bool.ll |
@@ -0,0 +1,103 @@ |
+; ModuleID = '/tmp/tmpNm2zJj/test_arith.ll' |
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32" |
+target triple = "i686-pc-linux-gnu" |
+ |
+; This file was generated starting from Output/test_arith.pnacl.ll. |
+; The testBool.*hh( functions were extracted, the hh changed to jj, |
+; and the i8's changed to i1. |
+ |
+define i32 @_Z11testBoolAddjj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %add = add i1 %b.arg_trunc, %a.arg_trunc |
+ %add.ret_ext = zext i1 %add to i32 |
+ ret i32 %add.ret_ext |
+} |
+ |
+define i32 @_Z11testBoolSubjj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %sub = sub i1 %a.arg_trunc, %b.arg_trunc |
+ %sub.ret_ext = zext i1 %sub to i32 |
+ ret i32 %sub.ret_ext |
+} |
+ |
+define i32 @_Z11testBoolMuljj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %mul = mul i1 %b.arg_trunc, %a.arg_trunc |
+ %mul.ret_ext = zext i1 %mul to i32 |
+ ret i32 %mul.ret_ext |
+} |
+ |
+define i32 @_Z12testBoolUdivjj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %div3 = udiv i1 %a.arg_trunc, %b.arg_trunc |
+ %div3.ret_ext = zext i1 %div3 to i32 |
+ ret i32 %div3.ret_ext |
+} |
+ |
+define i32 @_Z12testBoolUremjj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %0 = urem i1 %a.arg_trunc, %b.arg_trunc |
+ %.ret_ext = zext i1 %0 to i32 |
+ ret i32 %.ret_ext |
+} |
+ |
+define i32 @_Z11testBoolShljj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %conv = zext i1 %a.arg_trunc to i32 |
+ %conv1 = zext i1 %b.arg_trunc to i32 |
+ %shl = shl i32 %conv, %conv1 |
+ %conv2 = trunc i32 %shl to i1 |
+ %conv2.ret_ext = zext i1 %conv2 to i32 |
+ ret i32 %conv2.ret_ext |
+} |
+ |
+define i32 @_Z12testBoolLshrjj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %conv = zext i1 %a.arg_trunc to i32 |
+ %conv1 = zext i1 %b.arg_trunc to i32 |
+ %shr = lshr i32 %conv, %conv1 |
+ %conv2 = trunc i32 %shr to i1 |
+ %conv2.ret_ext = zext i1 %conv2 to i32 |
+ ret i32 %conv2.ret_ext |
+} |
+ |
+define i32 @_Z11testBoolAndjj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %and3 = and i1 %b.arg_trunc, %a.arg_trunc |
+ %and3.ret_ext = zext i1 %and3 to i32 |
+ ret i32 %and3.ret_ext |
+} |
+ |
+define i32 @_Z10testBoolOrjj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %or3 = or i1 %b.arg_trunc, %a.arg_trunc |
+ %or3.ret_ext = zext i1 %or3 to i32 |
+ ret i32 %or3.ret_ext |
+} |
+ |
+define i32 @_Z11testBoolXorjj(i32 %a, i32 %b) { |
+entry: |
+ %b.arg_trunc = trunc i32 %b to i1 |
+ %a.arg_trunc = trunc i32 %a to i1 |
+ %xor3 = xor i1 %b.arg_trunc, %a.arg_trunc |
+ %xor3.ret_ext = zext i1 %xor3 to i32 |
+ ret i32 %xor3.ret_ext |
+} |