diff mbox series

[1/2] fp-bench: fix update_random_ops

Message ID 20181221195200.6544-2-cota@braap.org (mailing list archive)
State New, archived
Headers show
Series fp-bench fixes | expand

Commit Message

Emilio Cota Dec. 21, 2018, 7:51 p.m. UTC
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(-)

Comments

Richard Henderson Dec. 25, 2018, 8:45 p.m. UTC | #1
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~
Philippe Mathieu-Daudé Jan. 7, 2019, 5:51 p.m. UTC | #2
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 mbox series

Patch

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;