message: test: Test f64.promote_f32 under all rounding directions
diff: @@ -1224,9 +1224,17 @@ TEST(execute_floating_point, f64_promote_f32)
  {-FP32::nan(FP32::canon), -FP64::nan(FP64::canon)},
  };
  + ASSERT_EQ(std::fegetround(), FE_TONEAREST);
  + for (const auto rounding_direction :
  + execute_floating_point_types<float>::all_rounding_directions)
  + {
  + ASSERT_EQ(std::fesetround(rounding_direction), 0);
  + SCOPED_TRACE(rounding_direction);
  +
  for (const auto& [arg, expected] : test_cases)
  {
  - EXPECT_THAT(execute(*instance, 0, {arg}), Result(expected)) << arg << " -> " << expected;
  + EXPECT_THAT(execute(*instance, 0, {arg}), Result(expected))
  + << arg << " -> " << expected;
  }
  // Check arithmetic NaNs (payload >= canonical payload).
  @@ -1260,6 +1268,8 @@ TEST(execute_floating_point, f64_promote_f32)
  EXPECT_THAT(execute(*instance, 0, {-nan}), ArithmeticNaN(double{}));
  }
  }
  + ASSERT_EQ(std::fesetround(FE_TONEAREST), 0);
  +}
  TEST(execute_floating_point, f32_demote_f64)
  {
  