aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--validation/optim/bool-simplify2.c247
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
+ */