Message ID | 20181221195200.6544-2-cota@braap.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fp-bench fixes | expand |
On 12/22/18 6:51 AM, Emilio G. Cota wrote: > The second test in the branches is wrong; fix while converting > to a switch statement, which is easier to get right. > > Signed-off-by: Emilio G. Cota <cota@braap.org> > --- > tests/fp/fp-bench.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) Whoops. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On 12/21/18 8:51 PM, Emilio G. Cota wrote: > The second test in the branches is wrong; fix while converting > to a switch statement, which is easier to get right. > > Signed-off-by: Emilio G. Cota <cota@braap.org> > --- > tests/fp/fp-bench.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/tests/fp/fp-bench.c b/tests/fp/fp-bench.c > index f5bc5edebf..546bac9c9c 100644 > --- a/tests/fp/fp-bench.c > +++ b/tests/fp/fp-bench.c > @@ -143,15 +143,20 @@ static void update_random_ops(int n_ops, enum precision prec) > for (i = 0; i < n_ops; i++) { > uint64_t r = random_ops[i]; > > - if (prec == PREC_SINGLE || PREC_FLOAT32) { :) Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > + switch (prec) { > + case PREC_SINGLE: > + case PREC_FLOAT32: > do { > r = xorshift64star(r); > } while (!float32_is_normal(r)); > - } else if (prec == PREC_DOUBLE || PREC_FLOAT64) { > + break; > + case PREC_DOUBLE: > + case PREC_FLOAT64: > do { > r = xorshift64star(r); > } while (!float64_is_normal(r)); > - } else { > + break; > + default: > g_assert_not_reached(); > } > random_ops[i] = r; >
diff --git a/tests/fp/fp-bench.c b/tests/fp/fp-bench.c index f5bc5edebf..546bac9c9c 100644 --- a/tests/fp/fp-bench.c +++ b/tests/fp/fp-bench.c @@ -143,15 +143,20 @@ static void update_random_ops(int n_ops, enum precision prec) for (i = 0; i < n_ops; i++) { uint64_t r = random_ops[i]; - if (prec == PREC_SINGLE || PREC_FLOAT32) { + switch (prec) { + case PREC_SINGLE: + case PREC_FLOAT32: do { r = xorshift64star(r); } while (!float32_is_normal(r)); - } else if (prec == PREC_DOUBLE || PREC_FLOAT64) { + break; + case PREC_DOUBLE: + case PREC_FLOAT64: do { r = xorshift64star(r); } while (!float64_is_normal(r)); - } else { + break; + default: g_assert_not_reached(); } random_ops[i] = r;
The second test in the branches is wrong; fix while converting to a switch statement, which is easier to get right. Signed-off-by: Emilio G. Cota <cota@braap.org> --- tests/fp/fp-bench.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)