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

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

Issue 2800523002: [WASM SIMD] Implement packing and unpacking integer conversions. (Closed)
Patch Set: Remove extraneous fn signature. 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-scheduler-arm.cc ('k') | src/compiler/instruction-selector.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 "src/base/adapters.h" 5 #include "src/base/adapters.h"
6 #include "src/base/bits.h" 6 #include "src/base/bits.h"
7 #include "src/compiler/instruction-selector-impl.h" 7 #include "src/compiler/instruction-selector-impl.h"
8 #include "src/compiler/node-matchers.h" 8 #include "src/compiler/node-matchers.h"
9 #include "src/compiler/node-properties.h" 9 #include "src/compiler/node-properties.h"
10 10
(...skipping 2302 matching lines...) Expand 10 before | Expand all | Expand 10 after
2313 V(32x4) \ 2313 V(32x4) \
2314 V(16x8) \ 2314 V(16x8) \
2315 V(8x16) 2315 V(8x16)
2316 2316
2317 #define SIMD_ZERO_OP_LIST(V) \ 2317 #define SIMD_ZERO_OP_LIST(V) \
2318 V(S128Zero) \ 2318 V(S128Zero) \
2319 V(S1x4Zero) \ 2319 V(S1x4Zero) \
2320 V(S1x8Zero) \ 2320 V(S1x8Zero) \
2321 V(S1x16Zero) 2321 V(S1x16Zero)
2322 2322
2323 #define SIMD_UNOP_LIST(V) \ 2323 #define SIMD_UNOP_LIST(V) \
2324 V(F32x4SConvertI32x4, kArmF32x4SConvertI32x4) \ 2324 V(F32x4SConvertI32x4, kArmF32x4SConvertI32x4) \
2325 V(F32x4UConvertI32x4, kArmF32x4UConvertI32x4) \ 2325 V(F32x4UConvertI32x4, kArmF32x4UConvertI32x4) \
2326 V(F32x4Abs, kArmF32x4Abs) \ 2326 V(F32x4Abs, kArmF32x4Abs) \
2327 V(F32x4Neg, kArmF32x4Neg) \ 2327 V(F32x4Neg, kArmF32x4Neg) \
2328 V(F32x4RecipApprox, kArmF32x4RecipApprox) \ 2328 V(F32x4RecipApprox, kArmF32x4RecipApprox) \
2329 V(F32x4RecipSqrtApprox, kArmF32x4RecipSqrtApprox) \ 2329 V(F32x4RecipSqrtApprox, kArmF32x4RecipSqrtApprox) \
2330 V(I32x4SConvertF32x4, kArmI32x4SConvertF32x4) \ 2330 V(I32x4SConvertF32x4, kArmI32x4SConvertF32x4) \
2331 V(I32x4Neg, kArmI32x4Neg) \ 2331 V(I32x4SConvertI16x8Low, kArmI32x4SConvertI16x8Low) \
2332 V(I32x4UConvertF32x4, kArmI32x4UConvertF32x4) \ 2332 V(I32x4SConvertI16x8High, kArmI32x4SConvertI16x8High) \
2333 V(I16x8Neg, kArmI16x8Neg) \ 2333 V(I32x4Neg, kArmI32x4Neg) \
2334 V(I8x16Neg, kArmI8x16Neg) \ 2334 V(I32x4UConvertF32x4, kArmI32x4UConvertF32x4) \
2335 V(S128Not, kArmS128Not) \ 2335 V(I32x4UConvertI16x8Low, kArmI32x4UConvertI16x8Low) \
2336 V(S1x4Not, kArmS128Not) \ 2336 V(I32x4UConvertI16x8High, kArmI32x4UConvertI16x8High) \
2337 V(S1x4AnyTrue, kArmS1x4AnyTrue) \ 2337 V(I16x8SConvertI8x16Low, kArmI16x8SConvertI8x16Low) \
2338 V(S1x4AllTrue, kArmS1x4AllTrue) \ 2338 V(I16x8SConvertI8x16High, kArmI16x8SConvertI8x16High) \
2339 V(S1x8Not, kArmS128Not) \ 2339 V(I16x8Neg, kArmI16x8Neg) \
2340 V(S1x8AnyTrue, kArmS1x8AnyTrue) \ 2340 V(I16x8UConvertI8x16Low, kArmI16x8UConvertI8x16Low) \
2341 V(S1x8AllTrue, kArmS1x8AllTrue) \ 2341 V(I16x8UConvertI8x16High, kArmI16x8UConvertI8x16High) \
2342 V(S1x16Not, kArmS128Not) \ 2342 V(I8x16Neg, kArmI8x16Neg) \
2343 V(S1x16AnyTrue, kArmS1x16AnyTrue) \ 2343 V(S128Not, kArmS128Not) \
2344 V(S1x4Not, kArmS128Not) \
2345 V(S1x4AnyTrue, kArmS1x4AnyTrue) \
2346 V(S1x4AllTrue, kArmS1x4AllTrue) \
2347 V(S1x8Not, kArmS128Not) \
2348 V(S1x8AnyTrue, kArmS1x8AnyTrue) \
2349 V(S1x8AllTrue, kArmS1x8AllTrue) \
2350 V(S1x16Not, kArmS128Not) \
2351 V(S1x16AnyTrue, kArmS1x16AnyTrue) \
2344 V(S1x16AllTrue, kArmS1x16AllTrue) 2352 V(S1x16AllTrue, kArmS1x16AllTrue)
2345 2353
2346 #define SIMD_SHIFT_OP_LIST(V) \ 2354 #define SIMD_SHIFT_OP_LIST(V) \
2347 V(I32x4Shl) \ 2355 V(I32x4Shl) \
2348 V(I32x4ShrS) \ 2356 V(I32x4ShrS) \
2349 V(I32x4ShrU) \ 2357 V(I32x4ShrU) \
2350 V(I16x8Shl) \ 2358 V(I16x8Shl) \
2351 V(I16x8ShrS) \ 2359 V(I16x8ShrS) \
2352 V(I16x8ShrU) \ 2360 V(I16x8ShrU) \
2353 V(I8x16Shl) \ 2361 V(I8x16Shl) \
(...skipping 18 matching lines...) Expand all
2372 V(I32x4MinS, kArmI32x4MinS) \ 2380 V(I32x4MinS, kArmI32x4MinS) \
2373 V(I32x4MaxS, kArmI32x4MaxS) \ 2381 V(I32x4MaxS, kArmI32x4MaxS) \
2374 V(I32x4Eq, kArmI32x4Eq) \ 2382 V(I32x4Eq, kArmI32x4Eq) \
2375 V(I32x4Ne, kArmI32x4Ne) \ 2383 V(I32x4Ne, kArmI32x4Ne) \
2376 V(I32x4LtS, kArmI32x4LtS) \ 2384 V(I32x4LtS, kArmI32x4LtS) \
2377 V(I32x4LeS, kArmI32x4LeS) \ 2385 V(I32x4LeS, kArmI32x4LeS) \
2378 V(I32x4MinU, kArmI32x4MinU) \ 2386 V(I32x4MinU, kArmI32x4MinU) \
2379 V(I32x4MaxU, kArmI32x4MaxU) \ 2387 V(I32x4MaxU, kArmI32x4MaxU) \
2380 V(I32x4LtU, kArmI32x4LtU) \ 2388 V(I32x4LtU, kArmI32x4LtU) \
2381 V(I32x4LeU, kArmI32x4LeU) \ 2389 V(I32x4LeU, kArmI32x4LeU) \
2390 V(I16x8SConvertI32x4, kArmI16x8SConvertI32x4) \
2382 V(I16x8Add, kArmI16x8Add) \ 2391 V(I16x8Add, kArmI16x8Add) \
2383 V(I16x8AddSaturateS, kArmI16x8AddSaturateS) \ 2392 V(I16x8AddSaturateS, kArmI16x8AddSaturateS) \
2384 V(I16x8Sub, kArmI16x8Sub) \ 2393 V(I16x8Sub, kArmI16x8Sub) \
2385 V(I16x8SubSaturateS, kArmI16x8SubSaturateS) \ 2394 V(I16x8SubSaturateS, kArmI16x8SubSaturateS) \
2386 V(I16x8Mul, kArmI16x8Mul) \ 2395 V(I16x8Mul, kArmI16x8Mul) \
2387 V(I16x8MinS, kArmI16x8MinS) \ 2396 V(I16x8MinS, kArmI16x8MinS) \
2388 V(I16x8MaxS, kArmI16x8MaxS) \ 2397 V(I16x8MaxS, kArmI16x8MaxS) \
2389 V(I16x8Eq, kArmI16x8Eq) \ 2398 V(I16x8Eq, kArmI16x8Eq) \
2390 V(I16x8Ne, kArmI16x8Ne) \ 2399 V(I16x8Ne, kArmI16x8Ne) \
2391 V(I16x8LtS, kArmI16x8LtS) \ 2400 V(I16x8LtS, kArmI16x8LtS) \
2392 V(I16x8LeS, kArmI16x8LeS) \ 2401 V(I16x8LeS, kArmI16x8LeS) \
2402 V(I16x8UConvertI32x4, kArmI16x8UConvertI32x4) \
2393 V(I16x8AddSaturateU, kArmI16x8AddSaturateU) \ 2403 V(I16x8AddSaturateU, kArmI16x8AddSaturateU) \
2394 V(I16x8SubSaturateU, kArmI16x8SubSaturateU) \ 2404 V(I16x8SubSaturateU, kArmI16x8SubSaturateU) \
2395 V(I16x8MinU, kArmI16x8MinU) \ 2405 V(I16x8MinU, kArmI16x8MinU) \
2396 V(I16x8MaxU, kArmI16x8MaxU) \ 2406 V(I16x8MaxU, kArmI16x8MaxU) \
2397 V(I16x8LtU, kArmI16x8LtU) \ 2407 V(I16x8LtU, kArmI16x8LtU) \
2398 V(I16x8LeU, kArmI16x8LeU) \ 2408 V(I16x8LeU, kArmI16x8LeU) \
2409 V(I8x16SConvertI16x8, kArmI8x16SConvertI16x8) \
2399 V(I8x16Add, kArmI8x16Add) \ 2410 V(I8x16Add, kArmI8x16Add) \
2400 V(I8x16AddSaturateS, kArmI8x16AddSaturateS) \ 2411 V(I8x16AddSaturateS, kArmI8x16AddSaturateS) \
2401 V(I8x16Sub, kArmI8x16Sub) \ 2412 V(I8x16Sub, kArmI8x16Sub) \
2402 V(I8x16SubSaturateS, kArmI8x16SubSaturateS) \ 2413 V(I8x16SubSaturateS, kArmI8x16SubSaturateS) \
2403 V(I8x16Mul, kArmI8x16Mul) \ 2414 V(I8x16Mul, kArmI8x16Mul) \
2404 V(I8x16MinS, kArmI8x16MinS) \ 2415 V(I8x16MinS, kArmI8x16MinS) \
2405 V(I8x16MaxS, kArmI8x16MaxS) \ 2416 V(I8x16MaxS, kArmI8x16MaxS) \
2406 V(I8x16Eq, kArmI8x16Eq) \ 2417 V(I8x16Eq, kArmI8x16Eq) \
2407 V(I8x16Ne, kArmI8x16Ne) \ 2418 V(I8x16Ne, kArmI8x16Ne) \
2408 V(I8x16LtS, kArmI8x16LtS) \ 2419 V(I8x16LtS, kArmI8x16LtS) \
2409 V(I8x16LeS, kArmI8x16LeS) \ 2420 V(I8x16LeS, kArmI8x16LeS) \
2421 V(I8x16UConvertI16x8, kArmI8x16UConvertI16x8) \
2410 V(I8x16AddSaturateU, kArmI8x16AddSaturateU) \ 2422 V(I8x16AddSaturateU, kArmI8x16AddSaturateU) \
2411 V(I8x16SubSaturateU, kArmI8x16SubSaturateU) \ 2423 V(I8x16SubSaturateU, kArmI8x16SubSaturateU) \
2412 V(I8x16MinU, kArmI8x16MinU) \ 2424 V(I8x16MinU, kArmI8x16MinU) \
2413 V(I8x16MaxU, kArmI8x16MaxU) \ 2425 V(I8x16MaxU, kArmI8x16MaxU) \
2414 V(I8x16LtU, kArmI8x16LtU) \ 2426 V(I8x16LtU, kArmI8x16LtU) \
2415 V(I8x16LeU, kArmI8x16LeU) \ 2427 V(I8x16LeU, kArmI8x16LeU) \
2416 V(S128And, kArmS128And) \ 2428 V(S128And, kArmS128And) \
2417 V(S128Or, kArmS128Or) \ 2429 V(S128Or, kArmS128Or) \
2418 V(S128Xor, kArmS128Xor) \ 2430 V(S128Xor, kArmS128Xor) \
2419 V(S1x4And, kArmS128And) \ 2431 V(S1x4And, kArmS128And) \
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
2524 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); 2536 Vector<MachineType> req_aligned = Vector<MachineType>::New(2);
2525 req_aligned[0] = MachineType::Float32(); 2537 req_aligned[0] = MachineType::Float32();
2526 req_aligned[1] = MachineType::Float64(); 2538 req_aligned[1] = MachineType::Float64();
2527 return MachineOperatorBuilder::AlignmentRequirements:: 2539 return MachineOperatorBuilder::AlignmentRequirements::
2528 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); 2540 SomeUnalignedAccessUnsupported(req_aligned, req_aligned);
2529 } 2541 }
2530 2542
2531 } // namespace compiler 2543 } // namespace compiler
2532 } // namespace internal 2544 } // namespace internal
2533 } // namespace v8 2545 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm/instruction-scheduler-arm.cc ('k') | src/compiler/instruction-selector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698