diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2016-12-15 17:26:43 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-06-28 18:54:58 +0200 |
| commit | 9d7af9cf62124b09e0d4cdf8791fc41081959c65 (patch) | |
| tree | 5ce4931e24f13ef8b866850c7d200c090e448f63 /validation/optim | |
| parent | 395b4de3d5084493d4dea2da74b735cc3bb8e886 (diff) | |
| download | sparse-dev-9d7af9cf62124b09e0d4cdf8791fc41081959c65.tar.gz | |
bool: add testcase for bool simplification
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/optim')
| -rw-r--r-- | validation/optim/bool-simplify2.c | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/validation/optim/bool-simplify2.c b/validation/optim/bool-simplify2.c new file mode 100644 index 00000000..9113e3e5 --- /dev/null +++ b/validation/optim/bool-simplify2.c @@ -0,0 +1,247 @@ +typedef unsigned int uint; +typedef _Bool bool; + +static uint ini(uint a) { return !a; } +static bool bni(uint a) { return !a; } +static uint ioii(uint a, uint b) { return a || b; } +static uint iaii(uint a, uint b) { return a && b; } +static bool boii(uint a, uint b) { return a || b; } +static bool baii(uint a, uint b) { return a && b; } +static uint ioiii(uint a, uint b, uint c) { return a || b || c; } +static uint iaiii(uint a, uint b, uint c) { return a && b && c; } +static bool boiii(uint a, uint b, uint c) { return a || b || c; } +static bool baiii(uint a, uint b, uint c) { return a && b && c; } + +static uint inb(bool a) { return !a; } +static bool bnb(bool a) { return !a; } +static uint iobb(bool a, bool b) { return a || b; } +static uint iabb(bool a, bool b) { return a && b; } +static bool bobb(bool a, bool b) { return a || b; } +static bool babb(bool a, bool b) { return a && b; } +static uint iobbb(bool a, bool b, bool c) { return a || b || c; } +static uint iabbb(bool a, bool b, bool c) { return a && b && c; } +static bool bobbb(bool a, bool b, bool c) { return a || b || c; } +static bool babbb(bool a, bool b, bool c) { return a && b && c; } + +/* + * check-name: bool-simplify2 + * check-command: test-linearize $file + * + * check-output-pattern(36): setne\\. + * check-output-pattern(4): seteq\\. + * check-output-pattern(24): zext\\. + * check-output-pattern(12): and + * check-output-pattern(12): or + * check-output-end + * + * check-output-start +ini: +.L0: + <entry-point> + seteq.32 %r2 <- %arg1, $0 + ret.32 %r2 + + +bni: +.L2: + <entry-point> + seteq.1 %r6 <- %arg1, $0 + ret.1 %r6 + + +ioii: +.L4: + <entry-point> + setne.1 %r9 <- %arg1, $0 + setne.1 %r11 <- %arg2, $0 + or-bool.1 %r12 <- %r9, %r11 + zext.32 %r13 <- (1) %r12 + ret.32 %r13 + + +iaii: +.L6: + <entry-point> + setne.1 %r16 <- %arg1, $0 + setne.1 %r18 <- %arg2, $0 + and-bool.1 %r19 <- %r16, %r18 + zext.32 %r20 <- (1) %r19 + ret.32 %r20 + + +boii: +.L8: + <entry-point> + setne.1 %r23 <- %arg1, $0 + setne.1 %r25 <- %arg2, $0 + or-bool.1 %r26 <- %r23, %r25 + zext.32 %r27 <- (1) %r26 + setne.1 %r28 <- %r27, $0 + ret.1 %r28 + + +baii: +.L10: + <entry-point> + setne.1 %r31 <- %arg1, $0 + setne.1 %r33 <- %arg2, $0 + and-bool.1 %r34 <- %r31, %r33 + zext.32 %r35 <- (1) %r34 + setne.1 %r36 <- %r35, $0 + ret.1 %r36 + + +ioiii: +.L12: + <entry-point> + setne.1 %r39 <- %arg1, $0 + setne.1 %r41 <- %arg2, $0 + or-bool.1 %r42 <- %r39, %r41 + zext.32 %r43 <- (1) %r42 + setne.1 %r44 <- %r43, $0 + setne.1 %r46 <- %arg3, $0 + or-bool.1 %r47 <- %r44, %r46 + zext.32 %r48 <- (1) %r47 + ret.32 %r48 + + +iaiii: +.L14: + <entry-point> + setne.1 %r51 <- %arg1, $0 + setne.1 %r53 <- %arg2, $0 + and-bool.1 %r54 <- %r51, %r53 + zext.32 %r55 <- (1) %r54 + setne.1 %r56 <- %r55, $0 + setne.1 %r58 <- %arg3, $0 + and-bool.1 %r59 <- %r56, %r58 + zext.32 %r60 <- (1) %r59 + ret.32 %r60 + + +boiii: +.L16: + <entry-point> + setne.1 %r63 <- %arg1, $0 + setne.1 %r65 <- %arg2, $0 + or-bool.1 %r66 <- %r63, %r65 + zext.32 %r67 <- (1) %r66 + setne.1 %r68 <- %r67, $0 + setne.1 %r70 <- %arg3, $0 + or-bool.1 %r71 <- %r68, %r70 + zext.32 %r72 <- (1) %r71 + setne.1 %r73 <- %r72, $0 + ret.1 %r73 + + +baiii: +.L18: + <entry-point> + setne.1 %r76 <- %arg1, $0 + setne.1 %r78 <- %arg2, $0 + and-bool.1 %r79 <- %r76, %r78 + zext.32 %r80 <- (1) %r79 + setne.1 %r81 <- %r80, $0 + setne.1 %r83 <- %arg3, $0 + and-bool.1 %r84 <- %r81, %r83 + zext.32 %r85 <- (1) %r84 + setne.1 %r86 <- %r85, $0 + ret.1 %r86 + + +inb: +.L20: + <entry-point> + seteq.32 %r89 <- %arg1, $0 + ret.32 %r89 + + +bnb: +.L22: + <entry-point> + seteq.1 %r93 <- %arg1, $0 + ret.1 %r93 + + +iobb: +.L24: + <entry-point> + or-bool.1 %r97 <- %arg1, %arg2 + zext.32 %r98 <- (1) %r97 + ret.32 %r98 + + +iabb: +.L26: + <entry-point> + and-bool.1 %r102 <- %arg1, %arg2 + zext.32 %r103 <- (1) %r102 + ret.32 %r103 + + +bobb: +.L28: + <entry-point> + or-bool.1 %r107 <- %arg1, %arg2 + zext.32 %r108 <- (1) %r107 + setne.1 %r109 <- %r108, $0 + ret.1 %r109 + + +babb: +.L30: + <entry-point> + and-bool.1 %r113 <- %arg1, %arg2 + zext.32 %r114 <- (1) %r113 + setne.1 %r115 <- %r114, $0 + ret.1 %r115 + + +iobbb: +.L32: + <entry-point> + or-bool.1 %r119 <- %arg1, %arg2 + zext.32 %r120 <- (1) %r119 + setne.1 %r121 <- %r120, $0 + or-bool.1 %r123 <- %r121, %arg3 + zext.32 %r124 <- (1) %r123 + ret.32 %r124 + + +iabbb: +.L34: + <entry-point> + and-bool.1 %r128 <- %arg1, %arg2 + zext.32 %r129 <- (1) %r128 + setne.1 %r130 <- %r129, $0 + and-bool.1 %r132 <- %r130, %arg3 + zext.32 %r133 <- (1) %r132 + ret.32 %r133 + + +bobbb: +.L36: + <entry-point> + or-bool.1 %r137 <- %arg1, %arg2 + zext.32 %r138 <- (1) %r137 + setne.1 %r139 <- %r138, $0 + or-bool.1 %r141 <- %r139, %arg3 + zext.32 %r142 <- (1) %r141 + setne.1 %r143 <- %r142, $0 + ret.1 %r143 + + +babbb: +.L38: + <entry-point> + and-bool.1 %r147 <- %arg1, %arg2 + zext.32 %r148 <- (1) %r147 + setne.1 %r149 <- %r148, $0 + and-bool.1 %r151 <- %r149, %arg3 + zext.32 %r152 <- (1) %r151 + setne.1 %r153 <- %r152, $0 + ret.1 %r153 + + + * check-output-end + */ |
