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

Side by Side Diff: src/compiler/wasm-compiler.cc

Issue 2804883008: [WASM SIMD] Implement horizontal add for float and integer types. (Closed)
Patch Set: Rebase, reformat. 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/opcodes.h ('k') | src/wasm/wasm-opcodes.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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/wasm-compiler.h" 5 #include "src/compiler/wasm-compiler.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/assembler-inl.h" 9 #include "src/assembler-inl.h"
10 #include "src/base/platform/elapsed-timer.h" 10 #include "src/base/platform/elapsed-timer.h"
(...skipping 3179 matching lines...) Expand 10 before | Expand all | Expand 10 after
3190 return graph()->NewNode(jsgraph()->machine()->F32x4Neg(), inputs[0]); 3190 return graph()->NewNode(jsgraph()->machine()->F32x4Neg(), inputs[0]);
3191 case wasm::kExprF32x4RecipApprox: 3191 case wasm::kExprF32x4RecipApprox:
3192 return graph()->NewNode(jsgraph()->machine()->F32x4RecipApprox(), 3192 return graph()->NewNode(jsgraph()->machine()->F32x4RecipApprox(),
3193 inputs[0]); 3193 inputs[0]);
3194 case wasm::kExprF32x4RecipSqrtApprox: 3194 case wasm::kExprF32x4RecipSqrtApprox:
3195 return graph()->NewNode(jsgraph()->machine()->F32x4RecipSqrtApprox(), 3195 return graph()->NewNode(jsgraph()->machine()->F32x4RecipSqrtApprox(),
3196 inputs[0]); 3196 inputs[0]);
3197 case wasm::kExprF32x4Add: 3197 case wasm::kExprF32x4Add:
3198 return graph()->NewNode(jsgraph()->machine()->F32x4Add(), inputs[0], 3198 return graph()->NewNode(jsgraph()->machine()->F32x4Add(), inputs[0],
3199 inputs[1]); 3199 inputs[1]);
3200 case wasm::kExprF32x4AddHoriz:
3201 return graph()->NewNode(jsgraph()->machine()->F32x4AddHoriz(), inputs[0],
3202 inputs[1]);
3200 case wasm::kExprF32x4Sub: 3203 case wasm::kExprF32x4Sub:
3201 return graph()->NewNode(jsgraph()->machine()->F32x4Sub(), inputs[0], 3204 return graph()->NewNode(jsgraph()->machine()->F32x4Sub(), inputs[0],
3202 inputs[1]); 3205 inputs[1]);
3203 case wasm::kExprF32x4Mul: 3206 case wasm::kExprF32x4Mul:
3204 return graph()->NewNode(jsgraph()->machine()->F32x4Mul(), inputs[0], 3207 return graph()->NewNode(jsgraph()->machine()->F32x4Mul(), inputs[0],
3205 inputs[1]); 3208 inputs[1]);
3206 case wasm::kExprF32x4Min: 3209 case wasm::kExprF32x4Min:
3207 return graph()->NewNode(jsgraph()->machine()->F32x4Min(), inputs[0], 3210 return graph()->NewNode(jsgraph()->machine()->F32x4Min(), inputs[0],
3208 inputs[1]); 3211 inputs[1]);
3209 case wasm::kExprF32x4Max: 3212 case wasm::kExprF32x4Max:
(...skipping 29 matching lines...) Expand all
3239 return graph()->NewNode(jsgraph()->machine()->I32x4SConvertI16x8Low(), 3242 return graph()->NewNode(jsgraph()->machine()->I32x4SConvertI16x8Low(),
3240 inputs[0]); 3243 inputs[0]);
3241 case wasm::kExprI32x4SConvertI16x8High: 3244 case wasm::kExprI32x4SConvertI16x8High:
3242 return graph()->NewNode(jsgraph()->machine()->I32x4SConvertI16x8High(), 3245 return graph()->NewNode(jsgraph()->machine()->I32x4SConvertI16x8High(),
3243 inputs[0]); 3246 inputs[0]);
3244 case wasm::kExprI32x4Neg: 3247 case wasm::kExprI32x4Neg:
3245 return graph()->NewNode(jsgraph()->machine()->I32x4Neg(), inputs[0]); 3248 return graph()->NewNode(jsgraph()->machine()->I32x4Neg(), inputs[0]);
3246 case wasm::kExprI32x4Add: 3249 case wasm::kExprI32x4Add:
3247 return graph()->NewNode(jsgraph()->machine()->I32x4Add(), inputs[0], 3250 return graph()->NewNode(jsgraph()->machine()->I32x4Add(), inputs[0],
3248 inputs[1]); 3251 inputs[1]);
3252 case wasm::kExprI32x4AddHoriz:
3253 return graph()->NewNode(jsgraph()->machine()->I32x4AddHoriz(), inputs[0],
3254 inputs[1]);
3249 case wasm::kExprI32x4Sub: 3255 case wasm::kExprI32x4Sub:
3250 return graph()->NewNode(jsgraph()->machine()->I32x4Sub(), inputs[0], 3256 return graph()->NewNode(jsgraph()->machine()->I32x4Sub(), inputs[0],
3251 inputs[1]); 3257 inputs[1]);
3252 case wasm::kExprI32x4Mul: 3258 case wasm::kExprI32x4Mul:
3253 return graph()->NewNode(jsgraph()->machine()->I32x4Mul(), inputs[0], 3259 return graph()->NewNode(jsgraph()->machine()->I32x4Mul(), inputs[0],
3254 inputs[1]); 3260 inputs[1]);
3255 case wasm::kExprI32x4MinS: 3261 case wasm::kExprI32x4MinS:
3256 return graph()->NewNode(jsgraph()->machine()->I32x4MinS(), inputs[0], 3262 return graph()->NewNode(jsgraph()->machine()->I32x4MinS(), inputs[0],
3257 inputs[1]); 3263 inputs[1]);
3258 case wasm::kExprI32x4MaxS: 3264 case wasm::kExprI32x4MaxS:
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
3312 return graph()->NewNode(jsgraph()->machine()->I16x8Neg(), inputs[0]); 3318 return graph()->NewNode(jsgraph()->machine()->I16x8Neg(), inputs[0]);
3313 case wasm::kExprI16x8SConvertI32x4: 3319 case wasm::kExprI16x8SConvertI32x4:
3314 return graph()->NewNode(jsgraph()->machine()->I16x8SConvertI32x4(), 3320 return graph()->NewNode(jsgraph()->machine()->I16x8SConvertI32x4(),
3315 inputs[0], inputs[1]); 3321 inputs[0], inputs[1]);
3316 case wasm::kExprI16x8Add: 3322 case wasm::kExprI16x8Add:
3317 return graph()->NewNode(jsgraph()->machine()->I16x8Add(), inputs[0], 3323 return graph()->NewNode(jsgraph()->machine()->I16x8Add(), inputs[0],
3318 inputs[1]); 3324 inputs[1]);
3319 case wasm::kExprI16x8AddSaturateS: 3325 case wasm::kExprI16x8AddSaturateS:
3320 return graph()->NewNode(jsgraph()->machine()->I16x8AddSaturateS(), 3326 return graph()->NewNode(jsgraph()->machine()->I16x8AddSaturateS(),
3321 inputs[0], inputs[1]); 3327 inputs[0], inputs[1]);
3328 case wasm::kExprI16x8AddHoriz:
3329 return graph()->NewNode(jsgraph()->machine()->I16x8AddHoriz(), inputs[0],
3330 inputs[1]);
3322 case wasm::kExprI16x8Sub: 3331 case wasm::kExprI16x8Sub:
3323 return graph()->NewNode(jsgraph()->machine()->I16x8Sub(), inputs[0], 3332 return graph()->NewNode(jsgraph()->machine()->I16x8Sub(), inputs[0],
3324 inputs[1]); 3333 inputs[1]);
3325 case wasm::kExprI16x8SubSaturateS: 3334 case wasm::kExprI16x8SubSaturateS:
3326 return graph()->NewNode(jsgraph()->machine()->I16x8SubSaturateS(), 3335 return graph()->NewNode(jsgraph()->machine()->I16x8SubSaturateS(),
3327 inputs[0], inputs[1]); 3336 inputs[0], inputs[1]);
3328 case wasm::kExprI16x8Mul: 3337 case wasm::kExprI16x8Mul:
3329 return graph()->NewNode(jsgraph()->machine()->I16x8Mul(), inputs[0], 3338 return graph()->NewNode(jsgraph()->machine()->I16x8Mul(), inputs[0],
3330 inputs[1]); 3339 inputs[1]);
3331 case wasm::kExprI16x8MinS: 3340 case wasm::kExprI16x8MinS:
(...skipping 801 matching lines...) Expand 10 before | Expand all | Expand 10 after
4133 wasm::ModuleBytesEnv* module_env, const wasm::WasmFunction* function) { 4142 wasm::ModuleBytesEnv* module_env, const wasm::WasmFunction* function) {
4134 WasmCompilationUnit unit(isolate, module_env, function); 4143 WasmCompilationUnit unit(isolate, module_env, function);
4135 unit.InitializeHandles(); 4144 unit.InitializeHandles();
4136 unit.ExecuteCompilation(); 4145 unit.ExecuteCompilation();
4137 return unit.FinishCompilation(thrower); 4146 return unit.FinishCompilation(thrower);
4138 } 4147 }
4139 4148
4140 } // namespace compiler 4149 } // namespace compiler
4141 } // namespace internal 4150 } // namespace internal
4142 } // namespace v8 4151 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/opcodes.h ('k') | src/wasm/wasm-opcodes.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698