Index: test/NaCl/Bitcode/null.ll |
diff --git a/test/NaCl/Bitcode/null.ll b/test/NaCl/Bitcode/null.ll |
new file mode 100644 |
index 0000000000000000000000000000000000000000..866c2017bfad1dc06e3f2f9a9ad6190c4da9db8e |
--- /dev/null |
+++ b/test/NaCl/Bitcode/null.ll |
@@ -0,0 +1,82 @@ |
+; Test that we no longer generate NULL for numeric constants. |
+ |
+; RUN: llvm-as < %s | pnacl-freeze \ |
+; RUN: | pnacl-bcanalyzer -dump-records \ |
+; RUN: | FileCheck %s -check-prefix=PF |
+ |
+; RUN: llvm-as < %s | pnacl-freeze | pnacl-thaw \ |
+; RUN: | llvm-dis - | FileCheck %s -check-prefix=TD |
+ |
+; ------------------------------------------------------ |
+ |
+define void @TestIntegers() { |
+ %1 = and i1 true, false |
+ %2 = add i8 1, 0 |
+ %3 = add i16 1, 0 |
+ %4 = add i32 1, 0 |
+ %5 = add i64 1, 0 |
+ ret void |
+} |
+ |
+; TD: define void @TestIntegers() { |
+; TD-NEXT: %1 = and i1 true, false |
+; TD-NEXT: %2 = add i8 1, 0 |
+; TD-NEXT: %3 = add i16 1, 0 |
+; TD-NEXT: %4 = add i32 1, 0 |
+; TD-NEXT: %5 = add i64 1, 0 |
+; TD-NEXT: ret void |
+; TD-NEXT: } |
+ |
+; PF: <FUNCTION_BLOCK> |
+; PF-NEXT: <DECLAREBLOCKS op0=1/> |
+; PF-NEXT: <CONSTANTS_BLOCK> |
+; PF-NEXT: <SETTYPE op0=1/> |
+; PF-NEXT: <INTEGER op0=3/> |
+; PF-NEXT: <INTEGER op0=0/> |
+; PF-NEXT: <SETTYPE op0=2/> |
+; PF-NEXT: <INTEGER op0=2/> |
+; PF-NEXT: <INTEGER op0=0/> |
+; PF-NEXT: <SETTYPE op0=3/> |
+; PF-NEXT: <INTEGER op0=2/> |
+; PF-NEXT: <INTEGER op0=0/> |
+; PF-NEXT: <SETTYPE op0=4/> |
+; PF-NEXT: <INTEGER op0=2/> |
+; PF-NEXT: <INTEGER op0=0/> |
+; PF-NEXT: <SETTYPE op0=5/> |
+; PF-NEXT: <INTEGER op0=2/> |
+; PF-NEXT: <INTEGER op0=0/> |
+; PF-NEXT: </CONSTANTS_BLOCK> |
+; PF-NEXT: <INST_BINOP op0=10 op1=9 op2=10/> |
+; PF-NEXT: <INST_BINOP op0=9 op1=8 op2=0/> |
+; PF-NEXT: <INST_BINOP op0=8 op1=7 op2=0/> |
+; PF-NEXT: <INST_BINOP op0=7 op1=6 op2=0/> |
+; PF-NEXT: <INST_BINOP op0=6 op1=5 op2=0/> |
+; PF-NEXT: <INST_RET/> |
+; PF-NEXT: </FUNCTION_BLOCK> |
+ |
+define void @TestFloats() { |
+ %1 = fadd float 1.0, 0.0 |
+ %2 = fadd double 1.0, 0.0 |
+ ret void |
+} |
+ |
+; TD: define void @TestFloats() { |
+; TD-NEXT: %1 = fadd float 1.000000e+00, 0.000000e+00 |
+; TD-NEXT: %2 = fadd double 1.000000e+00, 0.000000e+00 |
+; TD-NEXT: ret void |
+; TD-NEXT: } |
+ |
+; PF: <FUNCTION_BLOCK> |
+; PF-NEXT: <DECLAREBLOCKS op0=1/> |
+; PF-NEXT: <CONSTANTS_BLOCK> |
+; PF-NEXT: <SETTYPE op0=6/> |
+; PF-NEXT: <FLOAT op0=1065353216/> |
+; PF-NEXT: <FLOAT op0=0/> |
+; PF-NEXT: <SETTYPE op0=7/> |
+; PF-NEXT: <FLOAT op0=4607182418800017408/> |
+; PF-NEXT: <FLOAT op0=0/> |
+; PF-NEXT: </CONSTANTS_BLOCK> |
+; PF-NEXT: <INST_BINOP op0=4 op1=3 op2=0/> |
+; PF-NEXT: <INST_BINOP op0=3 op1=2 op2=0/> |
+; PF-NEXT: <INST_RET/> |
+; PF-NEXT: </FUNCTION_BLOCK> |