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

Side by Side Diff: test/NaCl/Bitcode/pnacl-bcdis/fcmp.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/constants.ll ('k') | test/NaCl/Bitcode/pnacl-bcdis/forwarddcl.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 ; Tests the fcmp instruction.
2
3 ; RUN: llvm-as < %s | pnacl-freeze | pnacl-bccompress --remove-abbreviations \
4 ; RUN: | pnacl-bcdis | FileCheck %s
5
6
7 ; Test fcmp on primitive types.
8 define void @SimpleFcmpOps(float %p0, double %p1) {
9
10 ; CHECK: | | %b0:
11
12 %v0 = fcmp false float %p0, 2.0
13 %v1 = fcmp false double %p1, 3.0
14
15 ; CHECK-NEXT: {{.*}}| 3: <28, 4, 2, 0> | %v0 = fcmp false float %p0, %c0;
16 ; CHECK-NEXT: {{.*}}| 3: <28, 4, 2, 0> | %v1 = fcmp false doubl e %p1, %c1;
17
18 %v2 = fcmp oeq float %p0, 2.0
19 %v3 = fcmp oeq double %p1, 3.0
20
21 ; CHECK-NEXT: {{.*}}| 3: <28, 6, 4, 1> | %v2 = fcmp oeq float % p0, %c0;
22 ; CHECK-NEXT: {{.*}}| 3: <28, 6, 4, 1> | %v3 = fcmp oeq double %p1, %c1;
23
24 %v4 = fcmp ogt float %p0, 2.0
25 %v5 = fcmp ogt double %p1, 3.0
26
27 ; CHECK-NEXT: {{.*}}| 3: <28, 8, 6, 2> | %v4 = fcmp ogt float % p0, %c0;
28 ; CHECK-NEXT: {{.*}}| 3: <28, 8, 6, 2> | %v5 = fcmp ogt double %p1, %c1;
29
30 %v6 = fcmp oge float %p0, 2.0
31 %v7 = fcmp oge double %p1, 3.0
32
33 ; CHECK-NEXT: {{.*}}| 3: <28, 10, 8, 3> | %v6 = fcmp oge float % p0, %c0;
34 ; CHECK-NEXT: {{.*}}| 3: <28, 10, 8, 3> | %v7 = fcmp oge double %p1, %c1;
35
36 %v8 = fcmp olt float %p0, 2.0
37 %v9 = fcmp olt double %p1, 3.0
38
39 ; CHECK-NEXT: {{.*}}| 3: <28, 12, 10, 4> | %v8 = fcmp olt float % p0, %c0;
40 ; CHECK-NEXT: {{.*}}| 3: <28, 12, 10, 4> | %v9 = fcmp olt double %p1, %c1;
41
42 %v10 = fcmp ole float %p0, 2.0
43 %v11 = fcmp ole double %p1, 3.0
44
45 ; CHECK-NEXT: {{.*}}| 3: <28, 14, 12, 5> | %v10 = fcmp ole float %p0, %c0;
46 ; CHECK-NEXT: {{.*}}| 3: <28, 14, 12, 5> | %v11 = fcmp ole double %p1, %c1;
47
48 %v12 = fcmp one float %p0, 2.0
49 %v13 = fcmp one double %p1, 3.0
50
51 ; CHECK-NEXT: {{.*}}| 3: <28, 16, 14, 6> | %v12 = fcmp one float %p0, %c0;
52 ; CHECK-NEXT: {{.*}}| 3: <28, 16, 14, 6> | %v13 = fcmp one double %p1, %c1;
53
54 %v14 = fcmp ord float %p0, 2.0
55 %v15 = fcmp ord double %p1, 3.0
56
57 ; CHECK-NEXT: {{.*}}| 3: <28, 18, 16, 7> | %v14 = fcmp ord float %p0, %c0;
58 ; CHECK-NEXT: {{.*}}| 3: <28, 18, 16, 7> | %v15 = fcmp ord double %p1, %c1;
59
60 %v16 = fcmp ueq float %p0, 2.0
61 %v17 = fcmp ueq double %p1, 3.0
62
63 ; CHECK-NEXT: {{.*}}| 3: <28, 20, 18, 9> | %v16 = fcmp ueq float %p0, %c0;
64 ; CHECK-NEXT: {{.*}}| 3: <28, 20, 18, 9> | %v17 = fcmp ueq double %p1, %c1;
65
66 %v18 = fcmp ugt float %p0, 2.0
67 %v19 = fcmp ugt double %p1, 3.0
68
69 ; CHECK-NEXT: {{.*}}| 3: <28, 22, 20, 10> | %v18 = fcmp ugt float %p0, %c0;
70 ; CHECK-NEXT: {{.*}}| 3: <28, 22, 20, 10> | %v19 = fcmp ugt double %p1, %c1;
71
72 %v20 = fcmp uge float %p0, 2.0
73 %v21 = fcmp uge double %p1, 3.0
74
75 ; CHECK-NEXT: {{.*}}| 3: <28, 24, 22, 11> | %v20 = fcmp uge float %p0, %c0;
76 ; CHECK-NEXT: {{.*}}| 3: <28, 24, 22, 11> | %v21 = fcmp uge double %p1, %c1;
77
78 %v22 = fcmp ult float %p0, 2.0
79 %v23 = fcmp ult double %p1, 3.0
80
81 ; CHECK-NEXT: {{.*}}| 3: <28, 26, 24, 12> | %v22 = fcmp ult float %p0, %c0;
82 ; CHECK-NEXT: {{.*}}| 3: <28, 26, 24, 12> | %v23 = fcmp ult double %p1, %c1;
83
84 %v24 = fcmp ule float %p0, 2.0
85 %v25 = fcmp ule double %p1, 3.0
86
87 ; CHECK-NEXT: {{.*}}| 3: <28, 28, 26, 13> | %v24 = fcmp ule float %p0, %c0;
88 ; CHECK-NEXT: {{.*}}| 3: <28, 28, 26, 13> | %v25 = fcmp ule double %p1, %c1;
89
90 %v26 = fcmp une float %p0, 2.0
91 %v27 = fcmp une double %p1, 3.0
92
93 ; CHECK-NEXT: {{.*}}| 3: <28, 30, 28, 14> | %v26 = fcmp une float %p0, %c0;
94 ; CHECK-NEXT: {{.*}}| 3: <28, 30, 28, 14> | %v27 = fcmp une double %p1, %c1;
95
96 %v28 = fcmp uno float %p0, 2.0
97 %v29 = fcmp uno double %p1, 3.0
98
99 ; CHECK-NEXT: {{.*}}| 3: <28, 32, 30, 8> | %v28 = fcmp uno float %p0, %c0;
100 ; CHECK-NEXT: {{.*}}| 3: <28, 32, 30, 8> | %v29 = fcmp uno double %p1, %c1;
101
102 %v30 = fcmp true float %p0, 2.0
103 %v31 = fcmp true double %p1, 3.0
104
105 ; CHECK-NEXT: {{.*}}| 3: <28, 34, 32, 15> | %v30 = fcmp true float %p0, %c0;
106 ; CHECK-NEXT: {{.*}}| 3: <28, 34, 32, 15> | %v31 = fcmp true doubl e %p1, %c1;
107
108 ; Verifies result is i1.
109 %v32 = and i1 %v0, %v16
110 %v33 = and i1 %v1, %v17
111 %v34 = and i1 %v2, %v18
112 %v35 = and i1 %v3, %v19
113 %v36 = and i1 %v4, %v20
114 %v37 = and i1 %v5, %v21
115 %v38 = and i1 %v6, %v22
116 %v39 = and i1 %v7, %v23
117 %v40 = and i1 %v8, %v24
118 %v41 = and i1 %v9, %v25
119 %v42 = and i1 %v10, %v26
120 %v43 = and i1 %v11, %v27
121 %v44 = and i1 %v12, %v28
122 %v45 = and i1 %v13, %v29
123 %v46 = and i1 %v14, %v30
124 %v47 = and i1 %v15, %v31
125 ret void
126
127 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v32 = and i1 %v0, %v1 6;
128 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v33 = and i1 %v1, %v1 7;
129 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v34 = and i1 %v2, %v1 8;
130 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v35 = and i1 %v3, %v1 9;
131 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v36 = and i1 %v4, %v2 0;
132 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v37 = and i1 %v5, %v2 1;
133 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v38 = and i1 %v6, %v2 2;
134 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v39 = and i1 %v7, %v2 3;
135 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v40 = and i1 %v8, %v2 4;
136 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v41 = and i1 %v9, %v2 5;
137 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v42 = and i1 %v10, %v 26;
138 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v43 = and i1 %v11, %v 27;
139 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v44 = and i1 %v12, %v 28;
140 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v45 = and i1 %v13, %v 29;
141 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v46 = and i1 %v14, %v 30;
142 ; CHECK-NEXT: {{.*}}| 3: <2, 32, 16, 10> | %v47 = and i1 %v15, %v 31;
143 ; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
144
145 }
146
147
148
149 ; Tests floating vector compares
150 define internal void @VecFloatOps(<4 x float> %p0) {
151
152 ; CHECK: | | %b0:
153
154 %v0 = fcmp false <4 x float> %p0, %p0
155 %v1 = fcmp oeq <4 x float> %p0, %p0
156 %v2 = fcmp ogt <4 x float> %p0, %p0
157 %v3 = fcmp oge <4 x float> %p0, %p0
158 %v4 = fcmp olt <4 x float> %p0, %p0
159 %v5 = fcmp ole <4 x float> %p0, %p0
160 %v6 = fcmp one <4 x float> %p0, %p0
161 %v7 = fcmp ord <4 x float> %p0, %p0
162 %v8 = fcmp ueq <4 x float> %p0, %p0
163 %v9 = fcmp ugt <4 x float> %p0, %p0
164 %v10 = fcmp uge <4 x float> %p0, %p0
165 %v11 = fcmp ult <4 x float> %p0, %p0
166 %v12 = fcmp ule <4 x float> %p0, %p0
167 %v13 = fcmp une <4 x float> %p0, %p0
168 %v14 = fcmp uno <4 x float> %p0, %p0
169 %v15 = fcmp true <4 x float> %p0, %p0
170
171 ; CHECK-NEXT: {{.*}}| 3: <28, 1, 1, 0> | %v0 = fcmp false <4 x float> %p0,
172 ; CHECK-NEXT: | | %p0;
173 ; CHECK-NEXT: {{.*}}| 3: <28, 2, 2, 1> | %v1 = fcmp oeq <4 x fl oat> %p0,
174 ; CHECK-NEXT: | | %p0;
175 ; CHECK-NEXT: {{.*}}| 3: <28, 3, 3, 2> | %v2 = fcmp ogt <4 x fl oat> %p0,
176 ; CHECK-NEXT: | | %p0;
177 ; CHECK-NEXT: {{.*}}| 3: <28, 4, 4, 3> | %v3 = fcmp oge <4 x fl oat> %p0,
178 ; CHECK-NEXT: | | %p0;
179 ; CHECK-NEXT: {{.*}}| 3: <28, 5, 5, 4> | %v4 = fcmp olt <4 x fl oat> %p0,
180 ; CHECK-NEXT: | | %p0;
181 ; CHECK-NEXT: {{.*}}| 3: <28, 6, 6, 5> | %v5 = fcmp ole <4 x fl oat> %p0,
182 ; CHECK-NEXT: | | %p0;
183 ; CHECK-NEXT: {{.*}}| 3: <28, 7, 7, 6> | %v6 = fcmp one <4 x fl oat> %p0,
184 ; CHECK-NEXT: | | %p0;
185 ; CHECK-NEXT: {{.*}}| 3: <28, 8, 8, 7> | %v7 = fcmp ord <4 x fl oat> %p0,
186 ; CHECK-NEXT: | | %p0;
187 ; CHECK-NEXT: {{.*}}| 3: <28, 9, 9, 9> | %v8 = fcmp ueq <4 x fl oat> %p0,
188 ; CHECK-NEXT: | | %p0;
189 ; CHECK-NEXT: {{.*}}| 3: <28, 10, 10, 10> | %v9 = fcmp ugt <4 x fl oat> %p0,
190 ; CHECK-NEXT: | | %p0;
191 ; CHECK-NEXT: {{.*}}| 3: <28, 11, 11, 11> | %v10 = fcmp uge <4 x f loat> %p0,
192 ; CHECK-NEXT: | | %p0;
193 ; CHECK-NEXT: {{.*}}| 3: <28, 12, 12, 12> | %v11 = fcmp ult <4 x f loat> %p0,
194 ; CHECK-NEXT: | | %p0;
195 ; CHECK-NEXT: {{.*}}| 3: <28, 13, 13, 13> | %v12 = fcmp ule <4 x f loat> %p0,
196 ; CHECK-NEXT: | | %p0;
197 ; CHECK-NEXT: {{.*}}| 3: <28, 14, 14, 14> | %v13 = fcmp une <4 x f loat> %p0,
198 ; CHECK-NEXT: | | %p0;
199 ; CHECK-NEXT: {{.*}}| 3: <28, 15, 15, 8> | %v14 = fcmp uno <4 x f loat> %p0,
200 ; CHECK-NEXT: | | %p0;
201 ; CHECK-NEXT: {{.*}}| 3: <28, 16, 16, 15> | %v15 = fcmp true <4 x float> %p0,
202 ; CHECK-NEXT: | | %p0;
203
204 ; Verify the result is a vector of the right size.
205 %v16 = and <4 x i1> %v0, %v1
206 %v17 = and <4 x i1> %v2, %v3
207 %v18 = and <4 x i1> %v4, %v5
208 %v19 = and <4 x i1> %v6, %v7
209 %v20 = and <4 x i1> %v8, %v9
210 %v21 = and <4 x i1> %v10, %v11
211 %v22 = and <4 x i1> %v12, %v13
212 %v23 = and <4 x i1> %v14, %v15
213 ret void
214
215 ; CHECK-NEXT: {{.*}}| 3: <2, 16, 15, 10> | %v16 = and <4 x i1> %v 0, %v1;
216 ; CHECK-NEXT: {{.*}}| 3: <2, 15, 14, 10> | %v17 = and <4 x i1> %v 2, %v3;
217 ; CHECK-NEXT: {{.*}}| 3: <2, 14, 13, 10> | %v18 = and <4 x i1> %v 4, %v5;
218 ; CHECK-NEXT: {{.*}}| 3: <2, 13, 12, 10> | %v19 = and <4 x i1> %v 6, %v7;
219 ; CHECK-NEXT: {{.*}}| 3: <2, 12, 11, 10> | %v20 = and <4 x i1> %v 8, %v9;
220 ; CHECK-NEXT: {{.*}}| 3: <2, 11, 10, 10> | %v21 = and <4 x i1> %v 10, %v11;
221 ; CHECK-NEXT: {{.*}}| 3: <2, 10, 9, 10> | %v22 = and <4 x i1> %v 12, %v13;
222 ; CHECK-NEXT: {{.*}}| 3: <2, 9, 8, 10> | %v23 = and <4 x i1> %v 14, %v15;
223 ; CHECK-NEXT: {{.*}}| 3: <10> | ret void;
224
225 }
226
OLDNEW
« no previous file with comments | « test/NaCl/Bitcode/pnacl-bcdis/constants.ll ('k') | test/NaCl/Bitcode/pnacl-bcdis/forwarddcl.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698