aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/linear
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-08-03 18:27:07 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-08-06 08:50:40 +0200
commitc47f18c7699d0a9fbb8b8adbd2c3bf177214beb4 (patch)
treea15756642eb5d11ee8614a7fba771450600326cd /validation/linear
parent3334fa789234c05da18b9e0e284bc04e5ef6b39b (diff)
downloadsparse-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/linear')
-rw-r--r--validation/linear/logical.c238
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