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

Side by Side Diff: test/unittests/compiler/machine-operator-unittest.cc

Issue 654833002: [turbofan] Optimize division/modulus by constant. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/machine-operator.h" 5 #include "src/compiler/machine-operator.h"
6 #include "src/compiler/operator-properties-inl.h" 6 #include "src/compiler/operator-properties-inl.h"
7 #include "testing/gtest-support.h" 7 #include "testing/gtest-support.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 return os << IrOpcode::Mnemonic(pop.opcode); 166 return os << IrOpcode::Mnemonic(pop.opcode);
167 } 167 }
168 168
169 169
170 const PureOperator kPureOperators[] = { 170 const PureOperator kPureOperators[] = {
171 #define PURE(Name, input_count, output_count) \ 171 #define PURE(Name, input_count, output_count) \
172 { \ 172 { \
173 &MachineOperatorBuilder::Name, IrOpcode::k##Name, input_count, \ 173 &MachineOperatorBuilder::Name, IrOpcode::k##Name, input_count, \
174 output_count \ 174 output_count \
175 } 175 }
176 PURE(Word32And, 2, 1), PURE(Word32Or, 2, 1), 176 PURE(Word32And, 2, 1), PURE(Word32Or, 2, 1),
177 PURE(Word32Xor, 2, 1), PURE(Word32Shl, 2, 1), 177 PURE(Word32Xor, 2, 1), PURE(Word32Shl, 2, 1),
178 PURE(Word32Shr, 2, 1), PURE(Word32Sar, 2, 1), 178 PURE(Word32Shr, 2, 1), PURE(Word32Sar, 2, 1),
179 PURE(Word32Ror, 2, 1), PURE(Word32Equal, 2, 1), 179 PURE(Word32Ror, 2, 1), PURE(Word32Equal, 2, 1),
180 PURE(Word64And, 2, 1), PURE(Word64Or, 2, 1), 180 PURE(Word64And, 2, 1), PURE(Word64Or, 2, 1),
181 PURE(Word64Xor, 2, 1), PURE(Word64Shl, 2, 1), 181 PURE(Word64Xor, 2, 1), PURE(Word64Shl, 2, 1),
182 PURE(Word64Shr, 2, 1), PURE(Word64Sar, 2, 1), 182 PURE(Word64Shr, 2, 1), PURE(Word64Sar, 2, 1),
183 PURE(Word64Ror, 2, 1), PURE(Word64Equal, 2, 1), 183 PURE(Word64Ror, 2, 1), PURE(Word64Equal, 2, 1),
184 PURE(Int32Add, 2, 1), PURE(Int32AddWithOverflow, 2, 2), 184 PURE(Int32Add, 2, 1), PURE(Int32AddWithOverflow, 2, 2),
185 PURE(Int32Sub, 2, 1), PURE(Int32SubWithOverflow, 2, 2), 185 PURE(Int32Sub, 2, 1), PURE(Int32SubWithOverflow, 2, 2),
186 PURE(Int32Mul, 2, 1), PURE(Int32Div, 2, 1), 186 PURE(Int32Mul, 2, 1), PURE(Int32MulHigh, 2, 1),
187 PURE(Uint32Div, 2, 1), PURE(Int32Mod, 2, 1), 187 PURE(Int32Div, 2, 1), PURE(Uint32Div, 2, 1),
188 PURE(Uint32Mod, 2, 1), PURE(Int32LessThan, 2, 1), 188 PURE(Int32Mod, 2, 1), PURE(Uint32Mod, 2, 1),
189 PURE(Int32LessThanOrEqual, 2, 1), PURE(Uint32LessThan, 2, 1), 189 PURE(Int32LessThan, 2, 1), PURE(Int32LessThanOrEqual, 2, 1),
190 PURE(Uint32LessThanOrEqual, 2, 1), PURE(Int64Add, 2, 1), 190 PURE(Uint32LessThan, 2, 1), PURE(Uint32LessThanOrEqual, 2, 1),
191 PURE(Int64Sub, 2, 1), PURE(Int64Mul, 2, 1), 191 PURE(Int64Add, 2, 1), PURE(Int64Sub, 2, 1),
192 PURE(Int64Div, 2, 1), PURE(Uint64Div, 2, 1), 192 PURE(Int64Mul, 2, 1), PURE(Int64Div, 2, 1),
193 PURE(Int64Mod, 2, 1), PURE(Uint64Mod, 2, 1), 193 PURE(Uint64Div, 2, 1), PURE(Int64Mod, 2, 1),
194 PURE(Int64LessThan, 2, 1), PURE(Int64LessThanOrEqual, 2, 1), 194 PURE(Uint64Mod, 2, 1), PURE(Int64LessThan, 2, 1),
195 PURE(Uint64LessThan, 2, 1), PURE(ChangeFloat32ToFloat64, 1, 1), 195 PURE(Int64LessThanOrEqual, 2, 1), PURE(Uint64LessThan, 2, 1),
196 PURE(ChangeFloat64ToInt32, 1, 1), PURE(ChangeFloat64ToUint32, 1, 1), 196 PURE(ChangeFloat32ToFloat64, 1, 1), PURE(ChangeFloat64ToInt32, 1, 1),
197 PURE(ChangeInt32ToInt64, 1, 1), PURE(ChangeUint32ToFloat64, 1, 1), 197 PURE(ChangeFloat64ToUint32, 1, 1), PURE(ChangeInt32ToInt64, 1, 1),
198 PURE(ChangeUint32ToUint64, 1, 1), PURE(TruncateFloat64ToFloat32, 1, 1), 198 PURE(ChangeUint32ToFloat64, 1, 1), PURE(ChangeUint32ToUint64, 1, 1),
199 PURE(TruncateFloat64ToInt32, 1, 1), PURE(TruncateInt64ToInt32, 1, 1), 199 PURE(TruncateFloat64ToFloat32, 1, 1), PURE(TruncateFloat64ToInt32, 1, 1),
200 PURE(Float64Add, 2, 1), PURE(Float64Sub, 2, 1), 200 PURE(TruncateInt64ToInt32, 1, 1), PURE(Float64Add, 2, 1),
201 PURE(Float64Mul, 2, 1), PURE(Float64Div, 2, 1), 201 PURE(Float64Sub, 2, 1), PURE(Float64Mul, 2, 1),
202 PURE(Float64Mod, 2, 1), PURE(Float64Sqrt, 1, 1), 202 PURE(Float64Div, 2, 1), PURE(Float64Mod, 2, 1),
203 PURE(Float64Equal, 2, 1), PURE(Float64LessThan, 2, 1), 203 PURE(Float64Sqrt, 1, 1), PURE(Float64Equal, 2, 1),
204 PURE(Float64LessThanOrEqual, 2, 1), PURE(LoadStackPointer, 0, 1) 204 PURE(Float64LessThan, 2, 1), PURE(Float64LessThanOrEqual, 2, 1),
205 PURE(LoadStackPointer, 0, 1)
205 #undef PURE 206 #undef PURE
206 }; 207 };
207 208
208 209
209 typedef MachineOperatorTestWithParam<PureOperator> MachinePureOperatorTest; 210 typedef MachineOperatorTestWithParam<PureOperator> MachinePureOperatorTest;
210 211
211 } // namespace 212 } // namespace
212 213
213 214
214 TEST_P(MachinePureOperatorTest, InstancesAreGloballyShared) { 215 TEST_P(MachinePureOperatorTest, InstancesAreGloballyShared) {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 EXPECT_EQ(machine.Uint64Div(), machine.UintDiv()); 304 EXPECT_EQ(machine.Uint64Div(), machine.UintDiv());
304 EXPECT_EQ(machine.Int64Mod(), machine.IntMod()); 305 EXPECT_EQ(machine.Int64Mod(), machine.IntMod());
305 EXPECT_EQ(machine.Uint64Mod(), machine.UintMod()); 306 EXPECT_EQ(machine.Uint64Mod(), machine.UintMod());
306 EXPECT_EQ(machine.Int64LessThan(), machine.IntLessThan()); 307 EXPECT_EQ(machine.Int64LessThan(), machine.IntLessThan());
307 EXPECT_EQ(machine.Int64LessThanOrEqual(), machine.IntLessThanOrEqual()); 308 EXPECT_EQ(machine.Int64LessThanOrEqual(), machine.IntLessThanOrEqual());
308 } 309 }
309 310
310 } // namespace compiler 311 } // namespace compiler
311 } // namespace internal 312 } // namespace internal
312 } // namespace v8 313 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698