Skip to content

Commit

Permalink
Change enum class to plain enum
Browse files Browse the repository at this point in the history
  • Loading branch information
baldurk committed Oct 13, 2016
1 parent 31d5d48 commit 033d3ef
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
2 changes: 1 addition & 1 deletion SPIRV/SpvBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -797,7 +797,7 @@ Id Builder::makeFloat16Constant(float f16, bool specConstant)

spvutils::HexFloat<spvutils::FloatProxy<float>> fVal(f16);
spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>> f16Val(0);
fVal.castTo(f16Val, spvutils::round_direction::kToZero);
fVal.castTo(f16Val, spvutils::kRoundToZero);

unsigned value = f16Val.value().getAsFloat().get_value();

Expand Down
25 changes: 12 additions & 13 deletions SPIRV/hex_float.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,12 +226,11 @@ struct HexFloatTraits<FloatProxy<Float16>> {
static const uint_type exponent_bias = 15;
};

enum class round_direction {
kToZero,
kToNearestEven,
kToPositiveInfinity,
kToNegativeInfinity,
max = kToNegativeInfinity
enum round_direction {
kRoundToZero,
kRoundToNearestEven,
kRoundToPositiveInfinity,
kRoundToNegativeInfinity
};

// Template class that houses a floating pointer number.
Expand Down Expand Up @@ -520,15 +519,15 @@ class HexFloat {
// We actually have to narrow the significand here, so we have to follow the
// rounding rules.
switch (dir) {
case round_direction::kToZero:
case kRoundToZero:
break;
case round_direction::kToPositiveInfinity:
case kRoundToPositiveInfinity:
round_away_from_zero = !isNegative();
break;
case round_direction::kToNegativeInfinity:
case kRoundToNegativeInfinity:
round_away_from_zero = isNegative();
break;
case round_direction::kToNearestEven:
case kRoundToNearestEven:
// Have to round down, round bit is 0
if ((first_rounded_bit & significand) == 0) {
break;
Expand Down Expand Up @@ -623,8 +622,8 @@ class HexFloat {
}

bool round_underflow_up =
isNegative() ? round_dir == round_direction::kToNegativeInfinity
: round_dir == round_direction::kToPositiveInfinity;
isNegative() ? round_dir == kRoundToNegativeInfinity
: round_dir == kRoundToPositiveInfinity;
using other_int_type = typename other_T::int_type;
// setFromSignUnbiasedExponentAndNormalizedSignificand will
// zero out any underflowing value (but retain the sign).
Expand Down Expand Up @@ -812,7 +811,7 @@ ParseNormalFloat<FloatProxy<Float16>, HexFloatTraits<FloatProxy<Float16>>>(

// Then convert to 16-bit float, saturating at infinities, and
// rounding toward zero.
float_val.castTo(value, round_direction::kToZero);
float_val.castTo(value, kRoundToZero);

// Overflow on 16-bit behaves the same as for 32- and 64-bit: set the
// fail bit and set the lowest or highest value.
Expand Down

0 comments on commit 033d3ef

Please sign in to comment.