| Index: test/unittests/compiler/simplified-operator-reducer-unittest.cc
 | 
| diff --git a/test/unittests/compiler/simplified-operator-reducer-unittest.cc b/test/unittests/compiler/simplified-operator-reducer-unittest.cc
 | 
| index b6c041057aff5e0cf6064cc3c31c377d081fa472..fad9df0ed514d5d6d272d1f679ae0e48c24527cd 100644
 | 
| --- a/test/unittests/compiler/simplified-operator-reducer-unittest.cc
 | 
| +++ b/test/unittests/compiler/simplified-operator-reducer-unittest.cc
 | 
| @@ -55,53 +55,42 @@ class SimplifiedOperatorReducerTestWithParam
 | 
|  
 | 
|  namespace {
 | 
|  
 | 
| -static const double kFloat64Values[] = {
 | 
| -    -V8_INFINITY,  -6.52696e+290, -1.05768e+290, -5.34203e+268, -1.01997e+268,
 | 
| +const double kFloat64Values[] = {
 | 
| +    -V8_INFINITY, -6.52696e+290, -1.05768e+290, -5.34203e+268, -1.01997e+268,
 | 
|      -8.22758e+266, -1.58402e+261, -5.15246e+241, -5.92107e+226, -1.21477e+226,
 | 
| -    -1.67913e+188, -1.6257e+184,  -2.60043e+170, -2.52941e+168, -3.06033e+116,
 | 
| -    -4.56201e+52,  -3.56788e+50,  -9.9066e+38,   -3.07261e+31,  -2.1271e+09,
 | 
| -    -1.91489e+09,  -1.73053e+09,  -9.30675e+08,  -26030,        -20453,
 | 
| -    -15790,        -11699,        -111,          -97,           -78,
 | 
| -    -63,           -58,           -1.53858e-06,  -2.98914e-12,  -1.14741e-39,
 | 
| -    -8.20347e-57,  -1.48932e-59,  -3.17692e-66,  -8.93103e-81,  -3.91337e-83,
 | 
| -    -6.0489e-92,   -8.83291e-113, -4.28266e-117, -1.92058e-178, -2.0567e-192,
 | 
| +    -1.67913e+188, -1.6257e+184, -2.60043e+170, -2.52941e+168, -3.06033e+116,
 | 
| +    -4.56201e+52, -3.56788e+50, -9.9066e+38, -3.07261e+31, -2.1271e+09,
 | 
| +    -1.91489e+09, -1.73053e+09, -9.30675e+08, -26030, -20453, -15790, -11699,
 | 
| +    -111, -97, -78, -63, -58, -1.53858e-06, -2.98914e-12, -1.14741e-39,
 | 
| +    -8.20347e-57, -1.48932e-59, -3.17692e-66, -8.93103e-81, -3.91337e-83,
 | 
| +    -6.0489e-92, -8.83291e-113, -4.28266e-117, -1.92058e-178, -2.0567e-192,
 | 
|      -1.68167e-194, -1.51841e-214, -3.98738e-234, -7.31851e-242, -2.21875e-253,
 | 
| -    -1.11612e-293, -0.0,          0.0,           2.22507e-308,  1.06526e-307,
 | 
| -    4.16643e-227,  6.76624e-223,  2.0432e-197,   3.16254e-184,  1.37315e-173,
 | 
| -    2.88603e-172,  1.54155e-99,   4.42923e-81,   1.40539e-73,   5.4462e-73,
 | 
| -    1.24064e-58,   3.11167e-58,   2.75826e-39,   0.143815,      58,
 | 
| -    67,            601,           7941,          11644,         13697,
 | 
| -    25680,         29882,         1.32165e+08,   1.62439e+08,   4.16837e+08,
 | 
| -    9.59097e+08,   1.32491e+09,   1.8728e+09,    1.0672e+17,    2.69606e+46,
 | 
| -    1.98285e+79,   1.0098e+82,    7.93064e+88,   3.67444e+121,  9.36506e+123,
 | 
| -    7.27954e+162,  3.05316e+168,  1.16171e+175,  1.64771e+189,  1.1622e+202,
 | 
| -    2.00748e+239,  2.51778e+244,  3.90282e+306,  1.79769e+308,  V8_INFINITY};
 | 
| -
 | 
| -
 | 
| -static const int32_t kInt32Values[] = {
 | 
| +    -1.11612e-293, -0.0, 0.0, 2.22507e-308, 1.06526e-307, 4.16643e-227,
 | 
| +    6.76624e-223, 2.0432e-197, 3.16254e-184, 1.37315e-173, 2.88603e-172,
 | 
| +    1.54155e-99, 4.42923e-81, 1.40539e-73, 5.4462e-73, 1.24064e-58, 3.11167e-58,
 | 
| +    2.75826e-39, 0.143815, 58, 67, 601, 7941, 11644, 13697, 25680, 29882,
 | 
| +    1.32165e+08, 1.62439e+08, 4.16837e+08, 9.59097e+08, 1.32491e+09, 1.8728e+09,
 | 
| +    1.0672e+17, 2.69606e+46, 1.98285e+79, 1.0098e+82, 7.93064e+88, 3.67444e+121,
 | 
| +    9.36506e+123, 7.27954e+162, 3.05316e+168, 1.16171e+175, 1.64771e+189,
 | 
| +    1.1622e+202, 2.00748e+239, 2.51778e+244, 3.90282e+306, 1.79769e+308,
 | 
| +    V8_INFINITY};
 | 
| +
 | 
| +
 | 
| +const int32_t kInt32Values[] = {
 | 
|      -2147483647 - 1, -2104508227, -2103151830, -1435284490, -1378926425,
 | 
| -    -1318814539,     -1289388009, -1287537572, -1279026536, -1241605942,
 | 
| -    -1226046939,     -941837148,  -779818051,  -413830641,  -245798087,
 | 
| -    -184657557,      -127145950,  -105483328,  -32325,      -26653,
 | 
| -    -23858,          -23834,      -22363,      -19858,      -19044,
 | 
| -    -18744,          -15528,      -5309,       -3372,       -2093,
 | 
| -    -104,            -98,         -97,         -93,         -84,
 | 
| -    -80,             -78,         -76,         -72,         -58,
 | 
| -    -57,             -56,         -55,         -45,         -40,
 | 
| -    -34,             -32,         -25,         -24,         -5,
 | 
| -    -2,              0,           3,           10,          24,
 | 
| -    34,              42,          46,          47,          48,
 | 
| -    52,              56,          64,          65,          71,
 | 
| -    76,              79,          81,          82,          97,
 | 
| -    102,             103,         104,         106,         107,
 | 
| -    109,             116,         122,         3653,        4485,
 | 
| -    12405,           16504,       26262,       28704,       29755,
 | 
| -    30554,           16476817,    605431957,   832401070,   873617242,
 | 
| -    914205764,       1062628108,  1087581664,  1488498068,  1534668023,
 | 
| -    1661587028,      1696896187,  1866841746,  2032089723,  2147483647};
 | 
| -
 | 
| -
 | 
| -static const uint32_t kUint32Values[] = {
 | 
| +    -1318814539, -1289388009, -1287537572, -1279026536, -1241605942,
 | 
| +    -1226046939, -941837148, -779818051, -413830641, -245798087, -184657557,
 | 
| +    -127145950, -105483328, -32325, -26653, -23858, -23834, -22363, -19858,
 | 
| +    -19044, -18744, -15528, -5309, -3372, -2093, -104, -98, -97, -93, -84, -80,
 | 
| +    -78, -76, -72, -58, -57, -56, -55, -45, -40, -34, -32, -25, -24, -5, -2, 0,
 | 
| +    3, 10, 24, 34, 42, 46, 47, 48, 52, 56, 64, 65, 71, 76, 79, 81, 82, 97, 102,
 | 
| +    103, 104, 106, 107, 109, 116, 122, 3653, 4485, 12405, 16504, 26262, 28704,
 | 
| +    29755, 30554, 16476817, 605431957, 832401070, 873617242, 914205764,
 | 
| +    1062628108, 1087581664, 1488498068, 1534668023, 1661587028, 1696896187,
 | 
| +    1866841746, 2032089723, 2147483647};
 | 
| +
 | 
| +
 | 
| +const uint32_t kUint32Values[] = {
 | 
|      0x0,        0x5,        0x8,        0xc,        0xd,        0x26,
 | 
|      0x28,       0x29,       0x30,       0x34,       0x3e,       0x42,
 | 
|      0x50,       0x5b,       0x63,       0x71,       0x77,       0x7c,
 | 
| @@ -120,6 +109,12 @@ static const uint32_t kUint32Values[] = {
 | 
|      0xbeb15c0d, 0xc171c53d, 0xc743dd38, 0xc8e2af50, 0xc98e2df0, 0xd9d1cdf9,
 | 
|      0xdcc91049, 0xe46f396d, 0xee991950, 0xef64e521, 0xf7aeefc9, 0xffffffff};
 | 
|  
 | 
| +
 | 
| +const double kNaNs[] = {-std::numeric_limits<double>::quiet_NaN(),
 | 
| +                        std::numeric_limits<double>::quiet_NaN(),
 | 
| +                        bit_cast<double>(V8_UINT64_C(0x7FFFFFFFFFFFFFFF)),
 | 
| +                        bit_cast<double>(V8_UINT64_C(0xFFFFFFFFFFFFFFFF))};
 | 
| +
 | 
|  }  // namespace
 | 
|  
 | 
|  
 | 
| @@ -321,23 +316,13 @@ TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToFloat64WithConstant) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToFloat64WithNaNConstant1) {
 | 
| -  Reduction reduction =
 | 
| -      Reduce(graph()->NewNode(simplified()->ChangeTaggedToFloat64(),
 | 
| -                              NumberConstant(-base::OS::nan_value())));
 | 
| -  ASSERT_TRUE(reduction.Changed());
 | 
| -  EXPECT_THAT(reduction.replacement(),
 | 
| -              IsFloat64Constant(BitEq(-base::OS::nan_value())));
 | 
| -}
 | 
| -
 | 
| -
 | 
| -TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToFloat64WithNaNConstant2) {
 | 
| -  Reduction reduction =
 | 
| -      Reduce(graph()->NewNode(simplified()->ChangeTaggedToFloat64(),
 | 
| -                              NumberConstant(base::OS::nan_value())));
 | 
| -  ASSERT_TRUE(reduction.Changed());
 | 
| -  EXPECT_THAT(reduction.replacement(),
 | 
| -              IsFloat64Constant(BitEq(base::OS::nan_value())));
 | 
| +TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToFloat64WithNaNConstant) {
 | 
| +  TRACED_FOREACH(double, nan, kNaNs) {
 | 
| +    Reduction reduction = Reduce(graph()->NewNode(
 | 
| +        simplified()->ChangeTaggedToFloat64(), NumberConstant(nan)));
 | 
| +    ASSERT_TRUE(reduction.Changed());
 | 
| +    EXPECT_THAT(reduction.replacement(), IsFloat64Constant(BitEq(nan)));
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -377,21 +362,13 @@ TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToInt32WithConstant) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToInt32WithNaNConstant1) {
 | 
| -  Reduction reduction =
 | 
| -      Reduce(graph()->NewNode(simplified()->ChangeTaggedToInt32(),
 | 
| -                              NumberConstant(-base::OS::nan_value())));
 | 
| -  ASSERT_TRUE(reduction.Changed());
 | 
| -  EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
 | 
| -}
 | 
| -
 | 
| -
 | 
| -TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToInt32WithNaNConstant2) {
 | 
| -  Reduction reduction =
 | 
| -      Reduce(graph()->NewNode(simplified()->ChangeTaggedToInt32(),
 | 
| -                              NumberConstant(base::OS::nan_value())));
 | 
| -  ASSERT_TRUE(reduction.Changed());
 | 
| -  EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
 | 
| +TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToInt32WithNaNConstant) {
 | 
| +  TRACED_FOREACH(double, nan, kNaNs) {
 | 
| +    Reduction reduction = Reduce(graph()->NewNode(
 | 
| +        simplified()->ChangeTaggedToInt32(), NumberConstant(nan)));
 | 
| +    ASSERT_TRUE(reduction.Changed());
 | 
| +    EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -432,21 +409,13 @@ TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToUint32WithConstant) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToUint32WithNaNConstant1) {
 | 
| -  Reduction reduction =
 | 
| -      Reduce(graph()->NewNode(simplified()->ChangeTaggedToUint32(),
 | 
| -                              NumberConstant(-base::OS::nan_value())));
 | 
| -  ASSERT_TRUE(reduction.Changed());
 | 
| -  EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
 | 
| -}
 | 
| -
 | 
| -
 | 
| -TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToUint32WithNaNConstant2) {
 | 
| -  Reduction reduction =
 | 
| -      Reduce(graph()->NewNode(simplified()->ChangeTaggedToUint32(),
 | 
| -                              NumberConstant(base::OS::nan_value())));
 | 
| -  ASSERT_TRUE(reduction.Changed());
 | 
| -  EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
 | 
| +TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToUint32WithNaNConstant) {
 | 
| +  TRACED_FOREACH(double, nan, kNaNs) {
 | 
| +    Reduction reduction = Reduce(graph()->NewNode(
 | 
| +        simplified()->ChangeTaggedToUint32(), NumberConstant(nan)));
 | 
| +    ASSERT_TRUE(reduction.Changed());
 | 
| +    EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |