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

Side by Side Diff: test/cctest/compiler/test-simplified-lowering.cc

Issue 882063002: [turbofan] Use unboxed doubles in range types. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Make tests less fragile. Created 5 years, 10 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/types-inl.h ('k') | test/cctest/compiler/test-typer.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 <limits> 5 #include <limits>
6 6
7 #include "src/compiler/access-builder.h" 7 #include "src/compiler/access-builder.h"
8 #include "src/compiler/change-lowering.h" 8 #include "src/compiler/change-lowering.h"
9 #include "src/compiler/control-builders.h" 9 #include "src/compiler/control-builders.h"
10 #include "src/compiler/graph-reducer.h" 10 #include "src/compiler/graph-reducer.h"
(...skipping 954 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 t.CheckLoweringBinop(IrOpcode::kFloat64LessThan, 965 t.CheckLoweringBinop(IrOpcode::kFloat64LessThan,
966 t.simplified()->NumberLessThan()); 966 t.simplified()->NumberLessThan());
967 t.CheckLoweringBinop(IrOpcode::kFloat64LessThanOrEqual, 967 t.CheckLoweringBinop(IrOpcode::kFloat64LessThanOrEqual,
968 t.simplified()->NumberLessThanOrEqual()); 968 t.simplified()->NumberLessThanOrEqual());
969 } 969 }
970 } 970 }
971 971
972 972
973 TEST(LowerNumberAddSub_to_int32) { 973 TEST(LowerNumberAddSub_to_int32) {
974 HandleAndZoneScope scope; 974 HandleAndZoneScope scope;
975 Factory* f = scope.main_isolate()->factory(); 975 Type* small_range = Type::Range(1, 10, scope.main_zone());
976 Type* small_range = 976 Type* large_range = Type::Range(-1e+13, 1e+14, scope.main_zone());
977 Type::Range(f->NewNumber(1), f->NewNumber(10), scope.main_zone());
978 Type* large_range =
979 Type::Range(f->NewNumber(-1e+13), f->NewNumber(1e+14), scope.main_zone());
980 static Type* types[] = {Type::Signed32(), Type::Integral32(), small_range, 977 static Type* types[] = {Type::Signed32(), Type::Integral32(), small_range,
981 large_range}; 978 large_range};
982 979
983 for (size_t i = 0; i < arraysize(types); i++) { 980 for (size_t i = 0; i < arraysize(types); i++) {
984 for (size_t j = 0; j < arraysize(types); j++) { 981 for (size_t j = 0; j < arraysize(types); j++) {
985 TestingGraph t(types[i], types[j]); 982 TestingGraph t(types[i], types[j]);
986 t.CheckLoweringTruncatedBinop(IrOpcode::kInt32Add, 983 t.CheckLoweringTruncatedBinop(IrOpcode::kInt32Add,
987 t.simplified()->NumberAdd(), 984 t.simplified()->NumberAdd(),
988 t.simplified()->NumberToInt32()); 985 t.simplified()->NumberToInt32());
989 t.CheckLoweringTruncatedBinop(IrOpcode::kInt32Sub, 986 t.CheckLoweringTruncatedBinop(IrOpcode::kInt32Sub,
990 t.simplified()->NumberSubtract(), 987 t.simplified()->NumberSubtract(),
991 t.simplified()->NumberToInt32()); 988 t.simplified()->NumberToInt32());
992 } 989 }
993 } 990 }
994 } 991 }
995 992
996 993
997 TEST(LowerNumberAddSub_to_uint32) { 994 TEST(LowerNumberAddSub_to_uint32) {
998 HandleAndZoneScope scope; 995 HandleAndZoneScope scope;
999 Factory* f = scope.main_isolate()->factory(); 996 Type* small_range = Type::Range(1, 10, scope.main_zone());
1000 Type* small_range = 997 Type* large_range = Type::Range(-1e+13, 1e+14, scope.main_zone());
1001 Type::Range(f->NewNumber(1), f->NewNumber(10), scope.main_zone());
1002 Type* large_range =
1003 Type::Range(f->NewNumber(-1e+13), f->NewNumber(1e+14), scope.main_zone());
1004 static Type* types[] = {Type::Signed32(), Type::Integral32(), small_range, 998 static Type* types[] = {Type::Signed32(), Type::Integral32(), small_range,
1005 large_range}; 999 large_range};
1006 1000
1007 for (size_t i = 0; i < arraysize(types); i++) { 1001 for (size_t i = 0; i < arraysize(types); i++) {
1008 for (size_t j = 0; j < arraysize(types); j++) { 1002 for (size_t j = 0; j < arraysize(types); j++) {
1009 TestingGraph t(types[i], types[j]); 1003 TestingGraph t(types[i], types[j]);
1010 t.CheckLoweringTruncatedBinop(IrOpcode::kInt32Add, 1004 t.CheckLoweringTruncatedBinop(IrOpcode::kInt32Add,
1011 t.simplified()->NumberAdd(), 1005 t.simplified()->NumberAdd(),
1012 t.simplified()->NumberToUint32()); 1006 t.simplified()->NumberToUint32());
1013 t.CheckLoweringTruncatedBinop(IrOpcode::kInt32Sub, 1007 t.CheckLoweringTruncatedBinop(IrOpcode::kInt32Sub,
(...skipping 1030 matching lines...) Expand 10 before | Expand all | Expand 10 after
2044 Bounds phi_bounds = Bounds::Either(Bounds(d.arg1), Bounds(d.arg2), z); 2038 Bounds phi_bounds = Bounds::Either(Bounds(d.arg1), Bounds(d.arg2), z);
2045 NodeProperties::SetBounds(phi, phi_bounds); 2039 NodeProperties::SetBounds(phi, phi_bounds);
2046 2040
2047 Node* use = t.Use(phi, d.use); 2041 Node* use = t.Use(phi, d.use);
2048 t.Return(use); 2042 t.Return(use);
2049 t.Lower(); 2043 t.Lower();
2050 2044
2051 CHECK_EQ(d.expected, OpParameter<MachineType>(phi)); 2045 CHECK_EQ(d.expected, OpParameter<MachineType>(phi));
2052 } 2046 }
2053 } 2047 }
OLDNEW
« no previous file with comments | « src/types-inl.h ('k') | test/cctest/compiler/test-typer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698