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

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

Issue 2801183002: [WASM SIMD] Implement primitive shuffles. (Closed)
Patch Set: Fix non-ARM build. Created 3 years, 8 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 | « src/compiler/arm/instruction-selector-arm.cc ('k') | src/compiler/machine-operator.h » ('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 "src/compiler/instruction-selector.h" 5 #include "src/compiler/instruction-selector.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/assembler-inl.h" 9 #include "src/assembler-inl.h"
10 #include "src/base/adapters.h" 10 #include "src/base/adapters.h"
(...skipping 1685 matching lines...) Expand 10 before | Expand all | Expand 10 after
1696 case IrOpcode::kS128Zero: 1696 case IrOpcode::kS128Zero:
1697 return MarkAsSimd128(node), VisitS128Zero(node); 1697 return MarkAsSimd128(node), VisitS128Zero(node);
1698 case IrOpcode::kS128And: 1698 case IrOpcode::kS128And:
1699 return MarkAsSimd128(node), VisitS128And(node); 1699 return MarkAsSimd128(node), VisitS128And(node);
1700 case IrOpcode::kS128Or: 1700 case IrOpcode::kS128Or:
1701 return MarkAsSimd128(node), VisitS128Or(node); 1701 return MarkAsSimd128(node), VisitS128Or(node);
1702 case IrOpcode::kS128Xor: 1702 case IrOpcode::kS128Xor:
1703 return MarkAsSimd128(node), VisitS128Xor(node); 1703 return MarkAsSimd128(node), VisitS128Xor(node);
1704 case IrOpcode::kS128Not: 1704 case IrOpcode::kS128Not:
1705 return MarkAsSimd128(node), VisitS128Not(node); 1705 return MarkAsSimd128(node), VisitS128Not(node);
1706 case IrOpcode::kS32x4ZipLeft:
1707 return MarkAsSimd128(node), VisitS32x4ZipLeft(node);
1708 case IrOpcode::kS32x4ZipRight:
1709 return MarkAsSimd128(node), VisitS32x4ZipRight(node);
1710 case IrOpcode::kS32x4UnzipLeft:
1711 return MarkAsSimd128(node), VisitS32x4UnzipLeft(node);
1712 case IrOpcode::kS32x4UnzipRight:
1713 return MarkAsSimd128(node), VisitS32x4UnzipRight(node);
1714 case IrOpcode::kS32x4TransposeLeft:
1715 return MarkAsSimd128(node), VisitS32x4TransposeLeft(node);
1716 case IrOpcode::kS32x4TransposeRight:
1717 return MarkAsSimd128(node), VisitS32x4TransposeRight(node);
1706 case IrOpcode::kS32x4Select: 1718 case IrOpcode::kS32x4Select:
1707 return MarkAsSimd128(node), VisitS32x4Select(node); 1719 return MarkAsSimd128(node), VisitS32x4Select(node);
1720 case IrOpcode::kS16x8ZipLeft:
1721 return MarkAsSimd128(node), VisitS16x8ZipLeft(node);
1722 case IrOpcode::kS16x8ZipRight:
1723 return MarkAsSimd128(node), VisitS16x8ZipRight(node);
1724 case IrOpcode::kS16x8UnzipLeft:
1725 return MarkAsSimd128(node), VisitS16x8UnzipLeft(node);
1726 case IrOpcode::kS16x8UnzipRight:
1727 return MarkAsSimd128(node), VisitS16x8UnzipRight(node);
1728 case IrOpcode::kS16x8TransposeLeft:
1729 return MarkAsSimd128(node), VisitS16x8TransposeLeft(node);
1730 case IrOpcode::kS16x8TransposeRight:
1731 return MarkAsSimd128(node), VisitS16x8TransposeRight(node);
1708 case IrOpcode::kS16x8Select: 1732 case IrOpcode::kS16x8Select:
1709 return MarkAsSimd128(node), VisitS16x8Select(node); 1733 return MarkAsSimd128(node), VisitS16x8Select(node);
1734 case IrOpcode::kS8x16ZipLeft:
1735 return MarkAsSimd128(node), VisitS8x16ZipLeft(node);
1736 case IrOpcode::kS8x16ZipRight:
1737 return MarkAsSimd128(node), VisitS8x16ZipRight(node);
1738 case IrOpcode::kS8x16UnzipLeft:
1739 return MarkAsSimd128(node), VisitS8x16UnzipLeft(node);
1740 case IrOpcode::kS8x16UnzipRight:
1741 return MarkAsSimd128(node), VisitS8x16UnzipRight(node);
1742 case IrOpcode::kS8x16TransposeLeft:
1743 return MarkAsSimd128(node), VisitS8x16TransposeLeft(node);
1744 case IrOpcode::kS8x16TransposeRight:
1745 return MarkAsSimd128(node), VisitS8x16TransposeRight(node);
1710 case IrOpcode::kS8x16Select: 1746 case IrOpcode::kS8x16Select:
1711 return MarkAsSimd128(node), VisitS8x16Select(node); 1747 return MarkAsSimd128(node), VisitS8x16Select(node);
1748 case IrOpcode::kS8x16Concat:
1749 return MarkAsSimd128(node), VisitS8x16Concat(node);
1750 case IrOpcode::kS32x2Reverse:
1751 return MarkAsSimd128(node), VisitS32x2Reverse(node);
1752 case IrOpcode::kS16x4Reverse:
1753 return MarkAsSimd128(node), VisitS16x4Reverse(node);
1754 case IrOpcode::kS16x2Reverse:
1755 return MarkAsSimd128(node), VisitS16x2Reverse(node);
1756 case IrOpcode::kS8x8Reverse:
1757 return MarkAsSimd128(node), VisitS8x8Reverse(node);
1758 case IrOpcode::kS8x4Reverse:
1759 return MarkAsSimd128(node), VisitS8x4Reverse(node);
1760 case IrOpcode::kS8x2Reverse:
1761 return MarkAsSimd128(node), VisitS8x2Reverse(node);
1712 case IrOpcode::kS1x4Zero: 1762 case IrOpcode::kS1x4Zero:
1713 return MarkAsSimd1x4(node), VisitS1x4Zero(node); 1763 return MarkAsSimd1x4(node), VisitS1x4Zero(node);
1714 case IrOpcode::kS1x4And: 1764 case IrOpcode::kS1x4And:
1715 return MarkAsSimd1x4(node), VisitS1x4And(node); 1765 return MarkAsSimd1x4(node), VisitS1x4And(node);
1716 case IrOpcode::kS1x4Or: 1766 case IrOpcode::kS1x4Or:
1717 return MarkAsSimd1x4(node), VisitS1x4Or(node); 1767 return MarkAsSimd1x4(node), VisitS1x4Or(node);
1718 case IrOpcode::kS1x4Xor: 1768 case IrOpcode::kS1x4Xor:
1719 return MarkAsSimd1x4(node), VisitS1x4Xor(node); 1769 return MarkAsSimd1x4(node), VisitS1x4Xor(node);
1720 case IrOpcode::kS1x4Not: 1770 case IrOpcode::kS1x4Not:
1721 return MarkAsSimd1x4(node), VisitS1x4Not(node); 1771 return MarkAsSimd1x4(node), VisitS1x4Not(node);
(...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after
2384 void InstructionSelector::VisitS1x16Zero(Node* node) { UNIMPLEMENTED(); } 2434 void InstructionSelector::VisitS1x16Zero(Node* node) { UNIMPLEMENTED(); }
2385 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && 2435 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS &&
2386 // !V8_TARGET_ARCH_MIPS64 2436 // !V8_TARGET_ARCH_MIPS64
2387 2437
2388 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ 2438 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \
2389 !V8_TARGET_ARCH_MIPS64 2439 !V8_TARGET_ARCH_MIPS64
2390 void InstructionSelector::VisitS32x4Select(Node* node) { UNIMPLEMENTED(); } 2440 void InstructionSelector::VisitS32x4Select(Node* node) { UNIMPLEMENTED(); }
2391 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && 2441 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS &&
2392 // !V8_TARGET_ARCH_MIPS64 2442 // !V8_TARGET_ARCH_MIPS64
2393 2443
2444 #if !V8_TARGET_ARCH_ARM
2445 void InstructionSelector::VisitS32x4ZipLeft(Node* node) { UNIMPLEMENTED(); }
2446
2447 void InstructionSelector::VisitS32x4ZipRight(Node* node) { UNIMPLEMENTED(); }
2448
2449 void InstructionSelector::VisitS32x4UnzipLeft(Node* node) { UNIMPLEMENTED(); }
2450
2451 void InstructionSelector::VisitS32x4UnzipRight(Node* node) { UNIMPLEMENTED(); }
2452
2453 void InstructionSelector::VisitS32x4TransposeLeft(Node* node) {
2454 UNIMPLEMENTED();
2455 }
2456
2457 void InstructionSelector::VisitS32x4TransposeRight(Node* node) {
2458 UNIMPLEMENTED();
2459 }
2460
2461 void InstructionSelector::VisitS16x8ZipLeft(Node* node) { UNIMPLEMENTED(); }
2462
2463 void InstructionSelector::VisitS16x8ZipRight(Node* node) { UNIMPLEMENTED(); }
2464
2465 void InstructionSelector::VisitS16x8UnzipLeft(Node* node) { UNIMPLEMENTED(); }
2466
2467 void InstructionSelector::VisitS16x8UnzipRight(Node* node) { UNIMPLEMENTED(); }
2468
2469 void InstructionSelector::VisitS16x8TransposeLeft(Node* node) {
2470 UNIMPLEMENTED();
2471 }
2472
2473 void InstructionSelector::VisitS16x8TransposeRight(Node* node) {
2474 UNIMPLEMENTED();
2475 }
2476 #endif // !V8_TARGET_ARCH_ARM
2477
2394 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM 2478 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM
2395 void InstructionSelector::VisitS16x8Select(Node* node) { UNIMPLEMENTED(); } 2479 void InstructionSelector::VisitS16x8Select(Node* node) { UNIMPLEMENTED(); }
2480 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM
2396 2481
2482 #if !V8_TARGET_ARCH_ARM
2483 void InstructionSelector::VisitS8x16ZipLeft(Node* node) { UNIMPLEMENTED(); }
2484
2485 void InstructionSelector::VisitS8x16ZipRight(Node* node) { UNIMPLEMENTED(); }
2486
2487 void InstructionSelector::VisitS8x16UnzipLeft(Node* node) { UNIMPLEMENTED(); }
2488
2489 void InstructionSelector::VisitS8x16UnzipRight(Node* node) { UNIMPLEMENTED(); }
2490
2491 void InstructionSelector::VisitS8x16TransposeLeft(Node* node) {
2492 UNIMPLEMENTED();
2493 }
2494
2495 void InstructionSelector::VisitS8x16TransposeRight(Node* node) {
2496 UNIMPLEMENTED();
2497 }
2498 #endif // !V8_TARGET_ARCH_ARM
2499
2500 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM
2397 void InstructionSelector::VisitS8x16Select(Node* node) { UNIMPLEMENTED(); } 2501 void InstructionSelector::VisitS8x16Select(Node* node) { UNIMPLEMENTED(); }
2398 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM 2502 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM
2399 2503
2400 #if !V8_TARGET_ARCH_ARM 2504 #if !V8_TARGET_ARCH_ARM
2505 void InstructionSelector::VisitS8x16Concat(Node* node) { UNIMPLEMENTED(); }
2506
2507 void InstructionSelector::VisitS32x2Reverse(Node* node) { UNIMPLEMENTED(); }
2508
2509 void InstructionSelector::VisitS16x4Reverse(Node* node) { UNIMPLEMENTED(); }
2510
2511 void InstructionSelector::VisitS16x2Reverse(Node* node) { UNIMPLEMENTED(); }
2512
2513 void InstructionSelector::VisitS8x8Reverse(Node* node) { UNIMPLEMENTED(); }
2514
2515 void InstructionSelector::VisitS8x4Reverse(Node* node) { UNIMPLEMENTED(); }
2516
2517 void InstructionSelector::VisitS8x2Reverse(Node* node) { UNIMPLEMENTED(); }
2518
2401 void InstructionSelector::VisitS1x4And(Node* node) { UNIMPLEMENTED(); } 2519 void InstructionSelector::VisitS1x4And(Node* node) { UNIMPLEMENTED(); }
2402 2520
2403 void InstructionSelector::VisitS1x4Or(Node* node) { UNIMPLEMENTED(); } 2521 void InstructionSelector::VisitS1x4Or(Node* node) { UNIMPLEMENTED(); }
2404 2522
2405 void InstructionSelector::VisitS1x4Xor(Node* node) { UNIMPLEMENTED(); } 2523 void InstructionSelector::VisitS1x4Xor(Node* node) { UNIMPLEMENTED(); }
2406 2524
2407 void InstructionSelector::VisitS1x4Not(Node* node) { UNIMPLEMENTED(); } 2525 void InstructionSelector::VisitS1x4Not(Node* node) { UNIMPLEMENTED(); }
2408 2526
2409 void InstructionSelector::VisitS1x4AnyTrue(Node* node) { UNIMPLEMENTED(); } 2527 void InstructionSelector::VisitS1x4AnyTrue(Node* node) { UNIMPLEMENTED(); }
2410 2528
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
2807 return new (instruction_zone()) FrameStateDescriptor( 2925 return new (instruction_zone()) FrameStateDescriptor(
2808 instruction_zone(), state_info.type(), state_info.bailout_id(), 2926 instruction_zone(), state_info.type(), state_info.bailout_id(),
2809 state_info.state_combine(), parameters, locals, stack, 2927 state_info.state_combine(), parameters, locals, stack,
2810 state_info.shared_info(), outer_state); 2928 state_info.shared_info(), outer_state);
2811 } 2929 }
2812 2930
2813 2931
2814 } // namespace compiler 2932 } // namespace compiler
2815 } // namespace internal 2933 } // namespace internal
2816 } // namespace v8 2934 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm/instruction-selector-arm.cc ('k') | src/compiler/machine-operator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698