diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-08-03 18:27:07 +0200 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-08-06 08:50:40 +0200 |
| commit | c47f18c7699d0a9fbb8b8adbd2c3bf177214beb4 (patch) | |
| tree | a15756642eb5d11ee8614a7fba771450600326cd /validation | |
| parent | 3334fa789234c05da18b9e0e284bc04e5ef6b39b (diff) | |
| download | sparse-dev-c47f18c7699d0a9fbb8b8adbd2c3bf177214beb4.tar.gz | |
expand linearize_conditional() into linearize_logical()
linearize_logical() call linearize_conditional() but needs additional
tests there and generate code more complicated than needed.
Change this by expanding the call to linearize_conditional() and make
the obvious simplification concerning the shortcut expressions 0 & 1.
Also, removes the logical-specific parts in linearize_conditional(),
since there are now unneeded.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation')
| -rw-r--r-- | validation/linear/logical.c | 238 |
1 files changed, 111 insertions, 127 deletions
diff --git a/validation/linear/logical.c b/validation/linear/logical.c index 972f8709..ed0dd70e 100644 --- a/validation/linear/logical.c +++ b/validation/linear/logical.c @@ -31,29 +31,27 @@ os: cbr %r2, .L2, .L3 .L2: - setne.1 %r3 <- $1, $0 - zext.32 %r4 <- (1) %r3 - phisrc.32 %phi1 <- %r4 + phisrc.32 %phi1 <- $1 br .L4 .L3: - load.64 %r5 <- 0[b] - load.32 %r6 <- 0[%r5] - lsr.32 %r7 <- %r6, $1 - trunc.2 %r8 <- (32) %r7 - setne.1 %r9 <- %r8, $0 - zext.32 %r10 <- (1) %r9 - phisrc.32 %phi2 <- %r10 + load.64 %r3 <- 0[b] + load.32 %r4 <- 0[%r3] + lsr.32 %r5 <- %r4, $1 + trunc.2 %r6 <- (32) %r5 + setne.1 %r7 <- %r6, $0 + zext.32 %r8 <- (1) %r7 + phisrc.32 %phi2 <- %r8 br .L4 .L4: - phi.32 %r11 <- %phi1, %phi2 - phisrc.32 %phi3(return) <- %r11 + phi.32 %r9 <- %phi1, %phi2 + phisrc.32 %phi3(return) <- %r9 br .L1 .L1: - phi.32 %r12 <- %phi3(return) - ret.32 %r12 + phi.32 %r10 <- %phi3(return) + ret.32 %r10 ou: @@ -61,34 +59,32 @@ ou: <entry-point> store.32 %arg1 -> 0[i] store.64 %arg2 -> 0[b] - load.32 %r13 <- 0[i] - setne.1 %r14 <- %r13, $0 - cbr %r14, .L7, .L8 + load.32 %r11 <- 0[i] + setne.1 %r12 <- %r11, $0 + cbr %r12, .L7, .L8 .L7: - setne.1 %r15 <- $1, $0 - zext.32 %r16 <- (1) %r15 - phisrc.32 %phi5 <- %r16 + phisrc.32 %phi5 <- $1 br .L9 .L8: - load.64 %r17 <- 0[b] - load.32 %r18 <- 0[%r17] - lsr.32 %r19 <- %r18, $3 - trunc.3 %r20 <- (32) %r19 - setne.1 %r21 <- %r20, $0 - zext.32 %r22 <- (1) %r21 - phisrc.32 %phi6 <- %r22 + load.64 %r13 <- 0[b] + load.32 %r14 <- 0[%r13] + lsr.32 %r15 <- %r14, $3 + trunc.3 %r16 <- (32) %r15 + setne.1 %r17 <- %r16, $0 + zext.32 %r18 <- (1) %r17 + phisrc.32 %phi6 <- %r18 br .L9 .L9: - phi.32 %r23 <- %phi5, %phi6 - phisrc.32 %phi7(return) <- %r23 + phi.32 %r19 <- %phi5, %phi6 + phisrc.32 %phi7(return) <- %r19 br .L6 .L6: - phi.32 %r24 <- %phi7(return) - ret.32 %r24 + phi.32 %r20 <- %phi7(return) + ret.32 %r20 ol: @@ -96,32 +92,30 @@ ol: <entry-point> store.32 %arg1 -> 0[i] store.64 %arg2 -> 0[b] - load.32 %r25 <- 0[i] - setne.1 %r26 <- %r25, $0 - cbr %r26, .L12, .L13 + load.32 %r21 <- 0[i] + setne.1 %r22 <- %r21, $0 + cbr %r22, .L12, .L13 .L12: - setne.1 %r27 <- $1, $0 - zext.32 %r28 <- (1) %r27 - phisrc.32 %phi9 <- %r28 + phisrc.32 %phi9 <- $1 br .L14 .L13: - load.64 %r29 <- 0[b] - load.64 %r30 <- 8[%r29] - setne.1 %r31 <- %r30, $0 - zext.32 %r32 <- (1) %r31 - phisrc.32 %phi10 <- %r32 + load.64 %r23 <- 0[b] + load.64 %r24 <- 8[%r23] + setne.1 %r25 <- %r24, $0 + zext.32 %r26 <- (1) %r25 + phisrc.32 %phi10 <- %r26 br .L14 .L14: - phi.32 %r33 <- %phi9, %phi10 - phisrc.32 %phi11(return) <- %r33 + phi.32 %r27 <- %phi9, %phi10 + phisrc.32 %phi11(return) <- %r27 br .L11 .L11: - phi.32 %r34 <- %phi11(return) - ret.32 %r34 + phi.32 %r28 <- %phi11(return) + ret.32 %r28 od: @@ -129,33 +123,31 @@ od: <entry-point> store.32 %arg1 -> 0[i] store.64 %arg2 -> 0[b] - load.32 %r35 <- 0[i] - setne.1 %r36 <- %r35, $0 - cbr %r36, .L17, .L18 + load.32 %r29 <- 0[i] + setne.1 %r30 <- %r29, $0 + cbr %r30, .L17, .L18 .L17: - setne.1 %r37 <- $1, $0 - zext.32 %r38 <- (1) %r37 - phisrc.32 %phi13 <- %r38 + phisrc.32 %phi13 <- $1 br .L19 .L18: - load.64 %r39 <- 0[b] - load.64 %r40 <- 16[%r39] - setfval.64 %r41 <- 0.000000e+00 - fcmpune.1 %r42 <- %r40, %r41 - zext.32 %r43 <- (1) %r42 - phisrc.32 %phi14 <- %r43 + load.64 %r31 <- 0[b] + load.64 %r32 <- 16[%r31] + setfval.64 %r33 <- 0.000000e+00 + fcmpune.1 %r34 <- %r32, %r33 + zext.32 %r35 <- (1) %r34 + phisrc.32 %phi14 <- %r35 br .L19 .L19: - phi.32 %r44 <- %phi13, %phi14 - phisrc.32 %phi15(return) <- %r44 + phi.32 %r36 <- %phi13, %phi14 + phisrc.32 %phi15(return) <- %r36 br .L16 .L16: - phi.32 %r45 <- %phi15(return) - ret.32 %r45 + phi.32 %r37 <- %phi15(return) + ret.32 %r37 as: @@ -163,34 +155,32 @@ as: <entry-point> store.32 %arg1 -> 0[i] store.64 %arg2 -> 0[b] - load.32 %r46 <- 0[i] - setne.1 %r47 <- %r46, $0 - cbr %r47, .L22, .L23 + load.32 %r38 <- 0[i] + setne.1 %r39 <- %r38, $0 + cbr %r39, .L22, .L23 .L22: - load.64 %r48 <- 0[b] - load.32 %r49 <- 0[%r48] - lsr.32 %r50 <- %r49, $1 - trunc.2 %r51 <- (32) %r50 - setne.1 %r52 <- %r51, $0 - zext.32 %r53 <- (1) %r52 - phisrc.32 %phi17 <- %r53 + load.64 %r40 <- 0[b] + load.32 %r41 <- 0[%r40] + lsr.32 %r42 <- %r41, $1 + trunc.2 %r43 <- (32) %r42 + setne.1 %r44 <- %r43, $0 + zext.32 %r45 <- (1) %r44 + phisrc.32 %phi17 <- %r45 br .L24 .L23: - setne.1 %r54 <- $0, $0 - zext.32 %r55 <- (1) %r54 - phisrc.32 %phi18 <- %r55 + phisrc.32 %phi18 <- $0 br .L24 .L24: - phi.32 %r56 <- %phi17, %phi18 - phisrc.32 %phi19(return) <- %r56 + phi.32 %r46 <- %phi17, %phi18 + phisrc.32 %phi19(return) <- %r46 br .L21 .L21: - phi.32 %r57 <- %phi19(return) - ret.32 %r57 + phi.32 %r47 <- %phi19(return) + ret.32 %r47 au: @@ -198,34 +188,32 @@ au: <entry-point> store.32 %arg1 -> 0[i] store.64 %arg2 -> 0[b] - load.32 %r58 <- 0[i] - setne.1 %r59 <- %r58, $0 - cbr %r59, .L27, .L28 + load.32 %r48 <- 0[i] + setne.1 %r49 <- %r48, $0 + cbr %r49, .L27, .L28 .L27: - load.64 %r60 <- 0[b] - load.32 %r61 <- 0[%r60] - lsr.32 %r62 <- %r61, $3 - trunc.3 %r63 <- (32) %r62 - setne.1 %r64 <- %r63, $0 - zext.32 %r65 <- (1) %r64 - phisrc.32 %phi21 <- %r65 + load.64 %r50 <- 0[b] + load.32 %r51 <- 0[%r50] + lsr.32 %r52 <- %r51, $3 + trunc.3 %r53 <- (32) %r52 + setne.1 %r54 <- %r53, $0 + zext.32 %r55 <- (1) %r54 + phisrc.32 %phi21 <- %r55 br .L29 .L28: - setne.1 %r66 <- $0, $0 - zext.32 %r67 <- (1) %r66 - phisrc.32 %phi22 <- %r67 + phisrc.32 %phi22 <- $0 br .L29 .L29: - phi.32 %r68 <- %phi21, %phi22 - phisrc.32 %phi23(return) <- %r68 + phi.32 %r56 <- %phi21, %phi22 + phisrc.32 %phi23(return) <- %r56 br .L26 .L26: - phi.32 %r69 <- %phi23(return) - ret.32 %r69 + phi.32 %r57 <- %phi23(return) + ret.32 %r57 al: @@ -233,32 +221,30 @@ al: <entry-point> store.32 %arg1 -> 0[i] store.64 %arg2 -> 0[b] - load.32 %r70 <- 0[i] - setne.1 %r71 <- %r70, $0 - cbr %r71, .L32, .L33 + load.32 %r58 <- 0[i] + setne.1 %r59 <- %r58, $0 + cbr %r59, .L32, .L33 .L32: - load.64 %r72 <- 0[b] - load.64 %r73 <- 8[%r72] - setne.1 %r74 <- %r73, $0 - zext.32 %r75 <- (1) %r74 - phisrc.32 %phi25 <- %r75 + load.64 %r60 <- 0[b] + load.64 %r61 <- 8[%r60] + setne.1 %r62 <- %r61, $0 + zext.32 %r63 <- (1) %r62 + phisrc.32 %phi25 <- %r63 br .L34 .L33: - setne.1 %r76 <- $0, $0 - zext.32 %r77 <- (1) %r76 - phisrc.32 %phi26 <- %r77 + phisrc.32 %phi26 <- $0 br .L34 .L34: - phi.32 %r78 <- %phi25, %phi26 - phisrc.32 %phi27(return) <- %r78 + phi.32 %r64 <- %phi25, %phi26 + phisrc.32 %phi27(return) <- %r64 br .L31 .L31: - phi.32 %r79 <- %phi27(return) - ret.32 %r79 + phi.32 %r65 <- %phi27(return) + ret.32 %r65 ad: @@ -266,33 +252,31 @@ ad: <entry-point> store.32 %arg1 -> 0[i] store.64 %arg2 -> 0[b] - load.32 %r80 <- 0[i] - setne.1 %r81 <- %r80, $0 - cbr %r81, .L37, .L38 + load.32 %r66 <- 0[i] + setne.1 %r67 <- %r66, $0 + cbr %r67, .L37, .L38 .L37: - load.64 %r82 <- 0[b] - load.64 %r83 <- 16[%r82] - setfval.64 %r84 <- 0.000000e+00 - fcmpune.1 %r85 <- %r83, %r84 - zext.32 %r86 <- (1) %r85 - phisrc.32 %phi29 <- %r86 + load.64 %r68 <- 0[b] + load.64 %r69 <- 16[%r68] + setfval.64 %r70 <- 0.000000e+00 + fcmpune.1 %r71 <- %r69, %r70 + zext.32 %r72 <- (1) %r71 + phisrc.32 %phi29 <- %r72 br .L39 .L38: - setne.1 %r87 <- $0, $0 - zext.32 %r88 <- (1) %r87 - phisrc.32 %phi30 <- %r88 + phisrc.32 %phi30 <- $0 br .L39 .L39: - phi.32 %r89 <- %phi29, %phi30 - phisrc.32 %phi31(return) <- %r89 + phi.32 %r73 <- %phi29, %phi30 + phisrc.32 %phi31(return) <- %r73 br .L36 .L36: - phi.32 %r90 <- %phi31(return) - ret.32 %r90 + phi.32 %r74 <- %phi31(return) + ret.32 %r74 * check-output-end |
