aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/optim
diff options
Diffstat (limited to 'validation/optim')
-rw-r--r--validation/optim/cse-size.c5
-rw-r--r--validation/optim/memops-missed01.c23
-rw-r--r--validation/optim/memops-missed02.c14
-rw-r--r--validation/optim/merge_bbe-adjust_phi.c23
4 files changed, 63 insertions, 2 deletions
diff --git a/validation/optim/cse-size.c b/validation/optim/cse-size.c
index 5b31420c..0c0c2d14 100644
--- a/validation/optim/cse-size.c
+++ b/validation/optim/cse-size.c
@@ -1,7 +1,7 @@
static void foo(void)
{
unsigned short p = 0;
- int x;
+ int x = 1;
for (;;)
if (p)
@@ -13,5 +13,6 @@ static void foo(void)
* check-command: test-linearize -Wno-decl $file
*
* check-output-ignore
- * check-output-pattern(2): phi\\.
+ * check-output-excludes: phi\\.
+ * check-output-excludes: cbr
*/
diff --git a/validation/optim/memops-missed01.c b/validation/optim/memops-missed01.c
new file mode 100644
index 00000000..fc616f19
--- /dev/null
+++ b/validation/optim/memops-missed01.c
@@ -0,0 +1,23 @@
+void bar(int);
+
+void foo(void)
+{
+ char buf[1] = { 42 };
+ const char *p = buf;
+ const char **q = &p;
+ int ch = 0;
+ switch (**q) {
+ case 4:
+ ch = 2;
+ }
+ bar(ch);
+}
+
+/*
+ * check-name: memops-missed01
+ * check-command: test-linearize -Wno-decl $file
+ *
+ * check-output-ignore
+ * check-output-excludes: store\\.
+ * check-output-excludes: load\\.
+ */
diff --git a/validation/optim/memops-missed02.c b/validation/optim/memops-missed02.c
new file mode 100644
index 00000000..6f028649
--- /dev/null
+++ b/validation/optim/memops-missed02.c
@@ -0,0 +1,14 @@
+void foo(int a[])
+{
+ int i, val;
+ for (;; i++)
+ val = a[i] ? a[i] : val;
+}
+
+/*
+ * check-name: memops-missed02
+ * check-command: test-linearize -Wno-decl $file
+ *
+ * check-output-ignore
+ * check-output-pattern(1): load\\.
+ */
diff --git a/validation/optim/merge_bbe-adjust_phi.c b/validation/optim/merge_bbe-adjust_phi.c
new file mode 100644
index 00000000..6a8ebb73
--- /dev/null
+++ b/validation/optim/merge_bbe-adjust_phi.c
@@ -0,0 +1,23 @@
+extern int array[2];
+
+static inline int stupid_select(int idx)
+{
+ if (idx)
+ idx = 0;
+ return array[idx];
+}
+
+int select(void)
+{
+ int d = stupid_select(-1);
+ return d;
+}
+
+/*
+ * check-name: merge_bbe-adjust_phi
+ * check-command: test-linearize -Wno-decl $file
+ *
+ * check-output-ignore
+ * check-output-excludes: phisrc\\.
+ * check-output-excludes: phi\\.
+ */