fp-bench: fix update_random_ops
authorEmilio G. Cota <cota@braap.org>
Fri, 21 Dec 2018 19:51:59 +0000 (14:51 -0500)
committerAlex Bennée <alex.bennee@linaro.org>
Tue, 22 Jan 2019 20:47:44 +0000 (20:47 +0000)
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>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
tests/fp/fp-bench.c

index f5bc5edebfe0b155a538133b474405cc8bd9d2f8..546bac9c9c53f8b8e0d335b2949ab7ab48a14455 100644 (file)
@@ -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;