Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(619)

Unified Diff: test/NaCl/Bitcode/pnacl-bcdis/constants.ll

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/NaCl/Bitcode/pnacl-bcdis/casts.ll ('k') | test/NaCl/Bitcode/pnacl-bcdis/fcmp.ll » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/NaCl/Bitcode/pnacl-bcdis/constants.ll
diff --git a/test/NaCl/Bitcode/pnacl-bcdis/constants.ll b/test/NaCl/Bitcode/pnacl-bcdis/constants.ll
new file mode 100644
index 0000000000000000000000000000000000000000..6328bf46ae82da788c17ad7d2a5f8d0b27f1d87e
--- /dev/null
+++ b/test/NaCl/Bitcode/pnacl-bcdis/constants.ll
@@ -0,0 +1,201 @@
+; Test handling of constants in function blocks.
+
+; RUN: llvm-as < %s | pnacl-freeze | pnacl-bccompress --remove-abbreviations \
+; RUN: | pnacl-bcdis | FileCheck %s
+
+define void @TestIntegers() {
+
+; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockID = 11
+; CHECK-NEXT: {{.*}}| 3: <1, 2> | i8:
+; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c0 = i8 0;
+; CHECK-NEXT: {{.*}}| 3: <4, 10> | %c1 = i8 5;
+; CHECK-NEXT: {{.*}}| 3: <4, 11> | %c2 = i8 -5;
+; CHECK-NEXT: {{.*}}| 3: <3> | %c3 = i8 undef;
+; CHECK-NEXT: {{.*}}| 3: <1, 4> | i16:
+; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c4 = i16 0;
+; CHECK-NEXT: {{.*}}| 3: <4, 20> | %c5 = i16 10;
+; CHECK-NEXT: {{.*}}| 3: <4, 21> | %c6 = i16 -10;
+; CHECK-NEXT: {{.*}}| 3: <3> | %c7 = i16 undef;
+; CHECK-NEXT: {{.*}}| 3: <1, 5> | i32:
+; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c8 = i32 0;
+; CHECK-NEXT: {{.*}}| 3: <4, 40> | %c9 = i32 20;
+; CHECK-NEXT: {{.*}}| 3: <4, 41> | %c10 = i32 -20;
+; CHECK-NEXT: {{.*}}| 3: <3> | %c11 = i32 undef;
+; CHECK-NEXT: {{.*}}| 3: <1, 6> | i64:
+; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c12 = i64 0;
+; CHECK-NEXT: {{.*}}| 3: <4, 60> | %c13 = i64 30;
+; CHECK-NEXT: {{.*}}| 3: <4, 61> | %c14 = i64 -30;
+; CHECK-NEXT: {{.*}}| 3: <3> | %c15 = i64 undef;
+; CHECK-NEXT: {{.*}}| 3: <1, 7> | i1:
+; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c16 = i1 0;
+; CHECK-NEXT: {{.*}}| 3: <4, 3> | %c17 = i1 1;
+; CHECK-NEXT: {{.*}}| 3: <3> | %c18 = i1 undef;
+; CHECK-NEXT: {{.*}}| 0: <65534> | }
+; CHECK-NEXT: | | %b0:
+
+ ; Test various sized integers
+ %v0 = or i1 true, false
+ %v1 = add i8 0, 0
+ %v2 = add i8 5, 0
+ %v3 = add i8 -5, 0
+ %v4 = and i16 10, 0
+ %v5 = add i16 -10, 0
+ %v6 = add i32 20, 0
+ %v7 = add i32 -20, 0
+ %v8 = add i64 30, 0
+ %v9 = add i64 -30, 0
+
+; CHECK-NEXT: {{.*}}| 3: <2, 2, 3, 11> | %v0 = or i1 %c17, %c16;
+; CHECK-NEXT: {{.*}}| 3: <2, 20, 20, 0> | %v1 = add i8 %c0, %c0;
+; CHECK-NEXT: {{.*}}| 3: <2, 20, 21, 0> | %v2 = add i8 %c1, %c0;
+; CHECK-NEXT: {{.*}}| 3: <2, 20, 22, 0> | %v3 = add i8 %c2, %c0;
+; CHECK-NEXT: {{.*}}| 3: <2, 18, 19, 10> | %v4 = and i16 %c5, %c4;
+; CHECK-NEXT: {{.*}}| 3: <2, 18, 20, 0> | %v5 = add i16 %c6, %c4;
+; CHECK-NEXT: {{.*}}| 3: <2, 16, 17, 0> | %v6 = add i32 %c9, %c8;
+; CHECK-NEXT: {{.*}}| 3: <2, 16, 18, 0> | %v7 = add i32 %c10, %c8;
+; CHECK-NEXT: {{.*}}| 3: <2, 14, 15, 0> | %v8 = add i64 %c13, %c12;
+; CHECK-NEXT: {{.*}}| 3: <2, 14, 16, 0> | %v9 = add i64 %c14, %c12;
+
+ ; Test undefined integer values.
+ %v10 = xor i1 undef, 0
+ %v11 = add i8 undef, 0
+ %v12 = add i16 undef, 0
+ %v13 = add i32 undef, 0
+ %v14 = add i64 undef, 0
+ ret void
+
+; CHECK-NEXT: {{.*}}| 3: <2, 11, 13, 12> | %v10 = xor i1 %c18, %c16;
+; CHECK-NEXT: {{.*}}| 3: <2, 27, 30, 0> | %v11 = add i8 %c3, %c0;
+; CHECK-NEXT: {{.*}}| 3: <2, 24, 27, 0> | %v12 = add i16 %c7, %c4;
+; CHECK-NEXT: {{.*}}| 3: <2, 21, 24, 0> | %v13 = add i32 %c11, %c8;
+; CHECK-NEXT: {{.*}}| 3: <2, 18, 21, 0> | %v14 = add i64 %c15, %c12;
+; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
+}
+
+define void @TestFloats() {
+
+; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockID = 11
+; CHECK-NEXT: {{.*}}| 3: <1, 0> | float:
+; CHECK-NEXT: {{.*}}| 3: <6, 0> | %c0 = float 0;
+; CHECK-NEXT: {{.*}}| 3: <6, 1065353216> | %c1 = float 1;
+; CHECK-NEXT: {{.*}}| 3: <6, 1088421888> | %c2 = float 7;
+; CHECK-NEXT: {{.*}}| 3: <6, 1090519040> | %c3 = float 8;
+; CHECK-NEXT: {{.*}}| 3: <3> | %c4 = float undef;
+; CHECK-NEXT: {{.*}}| 3: <1, 1> | double:
+; CHECK-NEXT: {{.*}}| 3: <6, | %c5 = double 6;
+; CHECK-NEXT: | 4618441417868443648> |
+; CHECK-NEXT: {{.*}}| 3: <6, | %c6 = double 1;
+; CHECK-NEXT: | 4607182418800017408> |
+; CHECK-NEXT: {{.*}}| 3: <6, 0> | %c7 = double 0;
+; CHECK-NEXT: {{.*}}| 3: <6, | %c8 = double 5;
+; CHECK-NEXT: | 4617315517961601024> |
+; CHECK-NEXT: {{.*}}| 3: <3> | %c9 = double undef;
+; CHECK-NEXT: {{.*}}| 0: <65534> | }
+; CHECK-NEXT: | | %b0:
+
+ ; Test float and double constants
+ %1 = fadd float 1.0, 0.0
+ %2 = fadd double 1.0, 0.0
+ %3 = fsub float 7.000000e+00, 8.000000e+00
+ %4 = fsub double 5.000000e+00, 6.000000e+00
+
+; CHECK-NEXT: {{.*}}| 3: <2, 9, 10, 0> | %v0 = fadd float %c1, %c0;
+; CHECK-NEXT: {{.*}}| 3: <2, 5, 4, 0> | %v1 = fadd double %c6, %c7;
+; CHECK-NEXT: {{.*}}| 3: <2, 10, 9, 1> | %v2 = fsub float %c2, %c3;
+; CHECK-NEXT: {{.*}}| 3: <2, 5, 8, 1> | %v3 = fsub double %c8, %c5;
+
+ ; Test undefined float and double.
+ %5 = fadd float undef, 0.0
+ %6 = fsub double undef, 6.000000e+00
+ ret void
+
+; CHECK-NEXT: {{.*}}| 3: <2, 10, 14, 0> | %v4 = fadd float %c4, %c0;
+; CHECK-NEXT: {{.*}}| 3: <2, 6, 10, 1> | %v5 = fsub double %c9, %c5;
+; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
+
+}
+
+; Test float Nan, +Inf, -Inf.
+; Note: llvm-as doesn't accept float hex values. Only accepts double
+; hex values.
+define float @GetFloatNan() {
+ ; Generated from NAN in <math.h>
+ ret float 0x7FF8000000000000
+
+; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockID = 11
+; CHECK-NEXT: {{.*}}| 3: <1, 0> | float:
+; CHECK-NEXT: {{.*}}| 3: <6, 2143289344> | %c0 = float nan;
+; CHECK-NEXT: {{.*}}| 0: <65534> | }
+; CHECK-NEXT: | | %b0:
+; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret float %c0;
+
+}
+
+define float @GetFloatInf() {
+ ; Generated from INFINITY in <math.h>
+ ret float 0x7FF0000000000000
+
+; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockID = 11
+; CHECK-NEXT: {{.*}}| 3: <1, 0> | float:
+; CHECK-NEXT: {{.*}}| 3: <6, 2139095040> | %c0 = float inf;
+; CHECK-NEXT: {{.*}}| 0: <65534> | }
+; CHECK-NEXT: | | %b0:
+; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret float %c0;
+
+}
+
+define float @GetFloatNegInf() {
+ ; Generated from -INFINITY in <math.h>
+ ret float 0xFFF0000000000000
+
+; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockID = 11
+; CHECK-NEXT: {{.*}}| 3: <1, 0> | float:
+; CHECK-NEXT: {{.*}}| 3: <6, 4286578688> | %c0 = float -inf;
+; CHECK-NEXT: {{.*}}| 0: <65534> | }
+; CHECK-NEXT: | | %b0:
+; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret float %c0;
+}
+
+; Test double Nan, +Inf, -Inf.
+define double @GetDoubleNan() {
+ ; Generated from NAN in <math.h>
+ ret double 0x7FF8000000000000
+
+; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockID = 11
+; CHECK-NEXT: {{.*}}| 3: <1, 1> | double:
+; CHECK-NEXT: {{.*}}| 3: <6, | %c0 = double nan;
+; CHECK-NEXT: | 9221120237041090560> |
+; CHECK-NEXT: {{.*}}| 0: <65534> | }
+; CHECK-NEXT: | | %b0:
+; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret double %c0;
+
+}
+
+define double @GetDoubleInf() {
+ ; Generated from INFINITY in <math.h>
+ ret double 0x7FF0000000000000
+
+; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockID = 11
+; CHECK-NEXT: {{.*}}| 3: <1, 1> | double:
+; CHECK-NEXT: {{.*}}| 3: <6, | %c0 = double inf;
+; CHECK-NEXT: | 9218868437227405312> |
+; CHECK-NEXT: {{.*}}| 0: <65534> | }
+; CHECK-NEXT: | | %b0:
+; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret double %c0;
+
+}
+
+define double @GetDoubleNegInf() {
+ ; Generated from -INFINITY in <math.h>
+ ret double 0xFFF0000000000000
+
+; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockID = 11
+; CHECK-NEXT: {{.*}}| 3: <1, 1> | double:
+; CHECK-NEXT: {{.*}}| 3: <6, | %c0 = double -inf;
+; CHECK-NEXT: | 18442240474082181120>|
+; CHECK-NEXT: {{.*}}| 0: <65534> | }
+; CHECK-NEXT: | | %b0:
+; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret double %c0;
+
+}
+
« no previous file with comments | « test/NaCl/Bitcode/pnacl-bcdis/casts.ll ('k') | test/NaCl/Bitcode/pnacl-bcdis/fcmp.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698