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

Side by Side Diff: src/compiler/x64/instruction-selector-x64.cc

Issue 2454193002: [Turbofan] SIMD tests for Int32x4Add, Sub, ReplaceLane. (Closed)
Patch Set: Pass expected value in to Wasm code. Created 4 years, 1 month 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 | « src/compiler/x64/instruction-scheduler-x64.cc ('k') | src/wasm/ast-decoder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <algorithm> 5 #include <algorithm>
6 6
7 #include "src/base/adapters.h" 7 #include "src/base/adapters.h"
8 #include "src/compiler/instruction-selector-impl.h" 8 #include "src/compiler/instruction-selector-impl.h"
9 #include "src/compiler/node-matchers.h" 9 #include "src/compiler/node-matchers.h"
10 #include "src/compiler/node-properties.h" 10 #include "src/compiler/node-properties.h"
(...skipping 2302 matching lines...) Expand 10 before | Expand all | Expand 10 after
2313 X64OperandGenerator g(this); 2313 X64OperandGenerator g(this);
2314 Emit(kX64Int32x4Create, g.DefineAsRegister(node), g.Use(node->InputAt(0))); 2314 Emit(kX64Int32x4Create, g.DefineAsRegister(node), g.Use(node->InputAt(0)));
2315 } 2315 }
2316 2316
2317 void InstructionSelector::VisitInt32x4ExtractLane(Node* node) { 2317 void InstructionSelector::VisitInt32x4ExtractLane(Node* node) {
2318 X64OperandGenerator g(this); 2318 X64OperandGenerator g(this);
2319 Emit(kX64Int32x4ExtractLane, g.DefineAsRegister(node), 2319 Emit(kX64Int32x4ExtractLane, g.DefineAsRegister(node),
2320 g.UseRegister(node->InputAt(0)), g.UseImmediate(node->InputAt(1))); 2320 g.UseRegister(node->InputAt(0)), g.UseImmediate(node->InputAt(1)));
2321 } 2321 }
2322 2322
2323 void InstructionSelector::VisitInt32x4ReplaceLane(Node* node) {
2324 X64OperandGenerator g(this);
2325 Emit(kX64Int32x4ReplaceLane, g.DefineAsRegister(node),
2326 g.UseRegister(node->InputAt(0)), g.UseImmediate(node->InputAt(1)),
2327 g.Use(node->InputAt(2)));
2328 }
2329
2330 void InstructionSelector::VisitInt32x4Add(Node* node) {
2331 X64OperandGenerator g(this);
2332 Emit(kX64Int32x4Add, g.DefineAsRegister(node),
2333 g.UseRegister(node->InputAt(0)), g.UseRegister(node->InputAt(1)));
2334 }
2335
2336 void InstructionSelector::VisitInt32x4Sub(Node* node) {
2337 X64OperandGenerator g(this);
2338 Emit(kX64Int32x4Sub, g.DefineAsRegister(node),
2339 g.UseRegister(node->InputAt(0)), g.UseRegister(node->InputAt(1)));
2340 }
2341
2323 // static 2342 // static
2324 MachineOperatorBuilder::Flags 2343 MachineOperatorBuilder::Flags
2325 InstructionSelector::SupportedMachineOperatorFlags() { 2344 InstructionSelector::SupportedMachineOperatorFlags() {
2326 MachineOperatorBuilder::Flags flags = 2345 MachineOperatorBuilder::Flags flags =
2327 MachineOperatorBuilder::kWord32ShiftIsSafe | 2346 MachineOperatorBuilder::kWord32ShiftIsSafe |
2328 MachineOperatorBuilder::kWord32Ctz | MachineOperatorBuilder::kWord64Ctz; 2347 MachineOperatorBuilder::kWord32Ctz | MachineOperatorBuilder::kWord64Ctz;
2329 if (CpuFeatures::IsSupported(POPCNT)) { 2348 if (CpuFeatures::IsSupported(POPCNT)) {
2330 flags |= MachineOperatorBuilder::kWord32Popcnt | 2349 flags |= MachineOperatorBuilder::kWord32Popcnt |
2331 MachineOperatorBuilder::kWord64Popcnt; 2350 MachineOperatorBuilder::kWord64Popcnt;
2332 } 2351 }
(...skipping 13 matching lines...) Expand all
2346 // static 2365 // static
2347 MachineOperatorBuilder::AlignmentRequirements 2366 MachineOperatorBuilder::AlignmentRequirements
2348 InstructionSelector::AlignmentRequirements() { 2367 InstructionSelector::AlignmentRequirements() {
2349 return MachineOperatorBuilder::AlignmentRequirements:: 2368 return MachineOperatorBuilder::AlignmentRequirements::
2350 FullUnalignedAccessSupport(); 2369 FullUnalignedAccessSupport();
2351 } 2370 }
2352 2371
2353 } // namespace compiler 2372 } // namespace compiler
2354 } // namespace internal 2373 } // namespace internal
2355 } // namespace v8 2374 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/x64/instruction-scheduler-x64.cc ('k') | src/wasm/ast-decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698