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

Side by Side 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 ; Test handling of constants in function blocks.
2
3 ; RUN: llvm-as < %s | pnacl-freeze | pnacl-bccompress --remove-abbreviations \
4 ; RUN: | pnacl-bcdis | FileCheck %s
5
6 define void @TestIntegers() {
7
8 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI D = 11
9 ; CHECK-NEXT: {{.*}}| 3: <1, 2> | i8:
10 ; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c0 = i8 0;
11 ; CHECK-NEXT: {{.*}}| 3: <4, 10> | %c1 = i8 5;
12 ; CHECK-NEXT: {{.*}}| 3: <4, 11> | %c2 = i8 -5;
13 ; CHECK-NEXT: {{.*}}| 3: <3> | %c3 = i8 undef;
14 ; CHECK-NEXT: {{.*}}| 3: <1, 4> | i16:
15 ; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c4 = i16 0;
16 ; CHECK-NEXT: {{.*}}| 3: <4, 20> | %c5 = i16 10;
17 ; CHECK-NEXT: {{.*}}| 3: <4, 21> | %c6 = i16 -10;
18 ; CHECK-NEXT: {{.*}}| 3: <3> | %c7 = i16 undef;
19 ; CHECK-NEXT: {{.*}}| 3: <1, 5> | i32:
20 ; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c8 = i32 0;
21 ; CHECK-NEXT: {{.*}}| 3: <4, 40> | %c9 = i32 20;
22 ; CHECK-NEXT: {{.*}}| 3: <4, 41> | %c10 = i32 -20;
23 ; CHECK-NEXT: {{.*}}| 3: <3> | %c11 = i32 undef;
24 ; CHECK-NEXT: {{.*}}| 3: <1, 6> | i64:
25 ; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c12 = i64 0;
26 ; CHECK-NEXT: {{.*}}| 3: <4, 60> | %c13 = i64 30;
27 ; CHECK-NEXT: {{.*}}| 3: <4, 61> | %c14 = i64 -30;
28 ; CHECK-NEXT: {{.*}}| 3: <3> | %c15 = i64 undef;
29 ; CHECK-NEXT: {{.*}}| 3: <1, 7> | i1:
30 ; CHECK-NEXT: {{.*}}| 3: <4, 0> | %c16 = i1 0;
31 ; CHECK-NEXT: {{.*}}| 3: <4, 3> | %c17 = i1 1;
32 ; CHECK-NEXT: {{.*}}| 3: <3> | %c18 = i1 undef;
33 ; CHECK-NEXT: {{.*}}| 0: <65534> | }
34 ; CHECK-NEXT: | | %b0:
35
36 ; Test various sized integers
37 %v0 = or i1 true, false
38 %v1 = add i8 0, 0
39 %v2 = add i8 5, 0
40 %v3 = add i8 -5, 0
41 %v4 = and i16 10, 0
42 %v5 = add i16 -10, 0
43 %v6 = add i32 20, 0
44 %v7 = add i32 -20, 0
45 %v8 = add i64 30, 0
46 %v9 = add i64 -30, 0
47
48 ; CHECK-NEXT: {{.*}}| 3: <2, 2, 3, 11> | %v0 = or i1 %c17, %c16 ;
49 ; CHECK-NEXT: {{.*}}| 3: <2, 20, 20, 0> | %v1 = add i8 %c0, %c0;
50 ; CHECK-NEXT: {{.*}}| 3: <2, 20, 21, 0> | %v2 = add i8 %c1, %c0;
51 ; CHECK-NEXT: {{.*}}| 3: <2, 20, 22, 0> | %v3 = add i8 %c2, %c0;
52 ; CHECK-NEXT: {{.*}}| 3: <2, 18, 19, 10> | %v4 = and i16 %c5, %c4 ;
53 ; CHECK-NEXT: {{.*}}| 3: <2, 18, 20, 0> | %v5 = add i16 %c6, %c4 ;
54 ; CHECK-NEXT: {{.*}}| 3: <2, 16, 17, 0> | %v6 = add i32 %c9, %c8 ;
55 ; CHECK-NEXT: {{.*}}| 3: <2, 16, 18, 0> | %v7 = add i32 %c10, %c 8;
56 ; CHECK-NEXT: {{.*}}| 3: <2, 14, 15, 0> | %v8 = add i64 %c13, %c 12;
57 ; CHECK-NEXT: {{.*}}| 3: <2, 14, 16, 0> | %v9 = add i64 %c14, %c 12;
58
59 ; Test undefined integer values.
60 %v10 = xor i1 undef, 0
61 %v11 = add i8 undef, 0
62 %v12 = add i16 undef, 0
63 %v13 = add i32 undef, 0
64 %v14 = add i64 undef, 0
65 ret void
66
67 ; CHECK-NEXT: {{.*}}| 3: <2, 11, 13, 12> | %v10 = xor i1 %c18, %c 16;
68 ; CHECK-NEXT: {{.*}}| 3: <2, 27, 30, 0> | %v11 = add i8 %c3, %c0 ;
69 ; CHECK-NEXT: {{.*}}| 3: <2, 24, 27, 0> | %v12 = add i16 %c7, %c 4;
70 ; CHECK-NEXT: {{.*}}| 3: <2, 21, 24, 0> | %v13 = add i32 %c11, % c8;
71 ; CHECK-NEXT: {{.*}}| 3: <2, 18, 21, 0> | %v14 = add i64 %c15, % c12;
72 ; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
73 }
74
75 define void @TestFloats() {
76
77 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI D = 11
78 ; CHECK-NEXT: {{.*}}| 3: <1, 0> | float:
79 ; CHECK-NEXT: {{.*}}| 3: <6, 0> | %c0 = float 0;
80 ; CHECK-NEXT: {{.*}}| 3: <6, 1065353216> | %c1 = float 1;
81 ; CHECK-NEXT: {{.*}}| 3: <6, 1088421888> | %c2 = float 7;
82 ; CHECK-NEXT: {{.*}}| 3: <6, 1090519040> | %c3 = float 8;
83 ; CHECK-NEXT: {{.*}}| 3: <3> | %c4 = float undef;
84 ; CHECK-NEXT: {{.*}}| 3: <1, 1> | double:
85 ; CHECK-NEXT: {{.*}}| 3: <6, | %c5 = double 6;
86 ; CHECK-NEXT: | 4618441417868443648> |
87 ; CHECK-NEXT: {{.*}}| 3: <6, | %c6 = double 1;
88 ; CHECK-NEXT: | 4607182418800017408> |
89 ; CHECK-NEXT: {{.*}}| 3: <6, 0> | %c7 = double 0;
90 ; CHECK-NEXT: {{.*}}| 3: <6, | %c8 = double 5;
91 ; CHECK-NEXT: | 4617315517961601024> |
92 ; CHECK-NEXT: {{.*}}| 3: <3> | %c9 = double undef ;
93 ; CHECK-NEXT: {{.*}}| 0: <65534> | }
94 ; CHECK-NEXT: | | %b0:
95
96 ; Test float and double constants
97 %1 = fadd float 1.0, 0.0
98 %2 = fadd double 1.0, 0.0
99 %3 = fsub float 7.000000e+00, 8.000000e+00
100 %4 = fsub double 5.000000e+00, 6.000000e+00
101
102 ; CHECK-NEXT: {{.*}}| 3: <2, 9, 10, 0> | %v0 = fadd float %c1, %c0;
103 ; CHECK-NEXT: {{.*}}| 3: <2, 5, 4, 0> | %v1 = fadd double %c6, %c7;
104 ; CHECK-NEXT: {{.*}}| 3: <2, 10, 9, 1> | %v2 = fsub float %c2, %c3;
105 ; CHECK-NEXT: {{.*}}| 3: <2, 5, 8, 1> | %v3 = fsub double %c8, %c5;
106
107 ; Test undefined float and double.
108 %5 = fadd float undef, 0.0
109 %6 = fsub double undef, 6.000000e+00
110 ret void
111
112 ; CHECK-NEXT: {{.*}}| 3: <2, 10, 14, 0> | %v4 = fadd float %c4, %c0;
113 ; CHECK-NEXT: {{.*}}| 3: <2, 6, 10, 1> | %v5 = fsub double %c9, %c5;
114 ; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
115
116 }
117
118 ; Test float Nan, +Inf, -Inf.
119 ; Note: llvm-as doesn't accept float hex values. Only accepts double
120 ; hex values.
121 define float @GetFloatNan() {
122 ; Generated from NAN in <math.h>
123 ret float 0x7FF8000000000000
124
125 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI D = 11
126 ; CHECK-NEXT: {{.*}}| 3: <1, 0> | float:
127 ; CHECK-NEXT: {{.*}}| 3: <6, 2143289344> | %c0 = float nan;
128 ; CHECK-NEXT: {{.*}}| 0: <65534> | }
129 ; CHECK-NEXT: | | %b0:
130 ; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret float %c0;
131
132 }
133
134 define float @GetFloatInf() {
135 ; Generated from INFINITY in <math.h>
136 ret float 0x7FF0000000000000
137
138 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI D = 11
139 ; CHECK-NEXT: {{.*}}| 3: <1, 0> | float:
140 ; CHECK-NEXT: {{.*}}| 3: <6, 2139095040> | %c0 = float inf;
141 ; CHECK-NEXT: {{.*}}| 0: <65534> | }
142 ; CHECK-NEXT: | | %b0:
143 ; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret float %c0;
144
145 }
146
147 define float @GetFloatNegInf() {
148 ; Generated from -INFINITY in <math.h>
149 ret float 0xFFF0000000000000
150
151 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI D = 11
152 ; CHECK-NEXT: {{.*}}| 3: <1, 0> | float:
153 ; CHECK-NEXT: {{.*}}| 3: <6, 4286578688> | %c0 = float -inf;
154 ; CHECK-NEXT: {{.*}}| 0: <65534> | }
155 ; CHECK-NEXT: | | %b0:
156 ; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret float %c0;
157 }
158
159 ; Test double Nan, +Inf, -Inf.
160 define double @GetDoubleNan() {
161 ; Generated from NAN in <math.h>
162 ret double 0x7FF8000000000000
163
164 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI D = 11
165 ; CHECK-NEXT: {{.*}}| 3: <1, 1> | double:
166 ; CHECK-NEXT: {{.*}}| 3: <6, | %c0 = double nan;
167 ; CHECK-NEXT: | 9221120237041090560> |
168 ; CHECK-NEXT: {{.*}}| 0: <65534> | }
169 ; CHECK-NEXT: | | %b0:
170 ; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret double %c0;
171
172 }
173
174 define double @GetDoubleInf() {
175 ; Generated from INFINITY in <math.h>
176 ret double 0x7FF0000000000000
177
178 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI D = 11
179 ; CHECK-NEXT: {{.*}}| 3: <1, 1> | double:
180 ; CHECK-NEXT: {{.*}}| 3: <6, | %c0 = double inf;
181 ; CHECK-NEXT: | 9218868437227405312> |
182 ; CHECK-NEXT: {{.*}}| 0: <65534> | }
183 ; CHECK-NEXT: | | %b0:
184 ; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret double %c0;
185
186 }
187
188 define double @GetDoubleNegInf() {
189 ; Generated from -INFINITY in <math.h>
190 ret double 0xFFF0000000000000
191
192 ; CHECK: {{.*}}| 1: <65535, 11, 2> | constants { // BlockI D = 11
193 ; CHECK-NEXT: {{.*}}| 3: <1, 1> | double:
194 ; CHECK-NEXT: {{.*}}| 3: <6, | %c0 = double -inf;
195 ; CHECK-NEXT: | 18442240474082181120>|
196 ; CHECK-NEXT: {{.*}}| 0: <65534> | }
197 ; CHECK-NEXT: | | %b0:
198 ; CHECK-NEXT: {{.*}}| 3: <10, 1> | ret double %c0;
199
200 }
201
OLDNEW
« 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