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

Unified Diff: runtime/vm/flow_graph_optimizer.cc

Issue 24240020: Cleanup bit casting methods between SIMD types (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/flow_graph_optimizer.cc
diff --git a/runtime/vm/flow_graph_optimizer.cc b/runtime/vm/flow_graph_optimizer.cc
index fab3254d2a0c55309b520695c0607d3dbfd22d73..77949d8b145195c611720b19494a50c5e9c04fcc 100644
--- a/runtime/vm/flow_graph_optimizer.cc
+++ b/runtime/vm/flow_graph_optimizer.cc
@@ -2183,6 +2183,12 @@ bool FlowGraphOptimizer::TryInlineFloat32x4Constructor(
call->deopt_id());
ReplaceCall(call, con);
return true;
+ } else if (recognized_kind == MethodRecognizer::kFloat32x4Uint32x4Bits) {
zra 2013/09/24 00:29:09 It's a little confusing that Float32x4 and Uint32x
Cutch 2013/09/24 16:00:05 I have cleaned up the MethodRecognizer name to be
+ Uint32x4ToFloat32x4Instr* cast =
+ new Uint32x4ToFloat32x4Instr(new Value(call->ArgumentAt(1)),
zra 2013/09/24 00:29:09 I guess you'd have to rename this to Float32x4From
+ call->deopt_id());
+ ReplaceCall(call, cast);
+ return true;
}
return false;
}
@@ -2203,6 +2209,12 @@ bool FlowGraphOptimizer::TryInlineUint32x4Constructor(
call->deopt_id());
ReplaceCall(call, con);
return true;
+ } else if (recognized_kind == MethodRecognizer::kUint32x4Float32x4Bits) {
zra 2013/09/24 00:29:09 Similar here.
+ Float32x4ToUint32x4Instr* cast =
+ new Float32x4ToUint32x4Instr(new Value(call->ArgumentAt(1)),
+ call->deopt_id());
+ ReplaceCall(call, cast);
+ return true;
}
return false;
}
@@ -2373,20 +2385,6 @@ bool FlowGraphOptimizer::TryInlineFloat32x4Method(
ReplaceCall(call, clamp);
return true;
}
- case MethodRecognizer::kFloat32x4ToUint32x4: {
- Definition* left = call->ArgumentAt(0);
- // Type check left.
- AddCheckClass(left,
- ICData::ZoneHandle(
- call->ic_data()->AsUnaryClassChecksForArgNr(0)),
- call->deopt_id(),
- call->env(),
- call);
- Float32x4ToUint32x4Instr* cast =
- new Float32x4ToUint32x4Instr(new Value(left), call->deopt_id());
- ReplaceCall(call, cast);
- return true;
- }
case MethodRecognizer::kFloat32x4Shuffle: {
return InlineFloat32x4Getter(call, recognized_kind);
}
@@ -2432,20 +2430,6 @@ bool FlowGraphOptimizer::TryInlineUint32x4Method(
ReplaceCall(call, select);
return true;
}
- case MethodRecognizer::kUint32x4ToUint32x4: {
- Definition* left = call->ArgumentAt(0);
- // Type check left.
- AddCheckClass(left,
- ICData::ZoneHandle(
- call->ic_data()->AsUnaryClassChecksForArgNr(0)),
- call->deopt_id(),
- call->env(),
- call);
- Uint32x4ToFloat32x4Instr* cast =
- new Uint32x4ToFloat32x4Instr(new Value(left), call->deopt_id());
- ReplaceCall(call, cast);
- return true;
- }
case MethodRecognizer::kUint32x4WithFlagX:
case MethodRecognizer::kUint32x4WithFlagY:
case MethodRecognizer::kUint32x4WithFlagZ:

Powered by Google App Engine
This is Rietveld 408576698