diff options
Diffstat (limited to 'validation')
| -rw-r--r-- | validation/linear/inline-definition.c | 30 | ||||
| -rw-r--r-- | validation/optim/set-uimm0.c | 14 | ||||
| -rw-r--r-- | validation/optim/simplify-neg-add-cte.c | 11 | ||||
| -rw-r--r-- | validation/optim/simplify-neg-not.c | 9 | ||||
| -rw-r--r-- | validation/optim/simplify-neg-sub.c | 9 | ||||
| -rw-r--r-- | validation/optim/simplify-not-add-cte.c | 11 | ||||
| -rw-r--r-- | validation/optim/simplify-not-neg.c | 9 | ||||
| -rw-r--r-- | validation/optim/simplify-not-sub-cte.c | 11 | ||||
| -rw-r--r-- | validation/optim/simplify-not-xor-cte.c | 11 |
9 files changed, 115 insertions, 0 deletions
diff --git a/validation/linear/inline-definition.c b/validation/linear/inline-definition.c new file mode 100644 index 00000000..2918bd5d --- /dev/null +++ b/validation/linear/inline-definition.c @@ -0,0 +1,30 @@ +extern void use(void *); + +static inline int inl0(int a); +static inline int inl1(int a); + +static inline int inl0(int a) +{ + return a; +} + +void foo(void) +{ + use(inl0); + use(inl1); +} + +static inline int inl1(int a) +{ + return a; +} + +/* + * check-name: inline-definition + * check-command: test-linearize -Wno-decl $file + * check-known-to-fail + * + * check-output-ignore + * check-output-contains: inl0: + * check-output-contains: inl1: + */ diff --git a/validation/optim/set-uimm0.c b/validation/optim/set-uimm0.c new file mode 100644 index 00000000..ded8fc82 --- /dev/null +++ b/validation/optim/set-uimm0.c @@ -0,0 +1,14 @@ +static _Bool setlt0(unsigned int a) { return (a < 0u) == 0; } +static _Bool setge0(unsigned int a) { return (a >= 0u) == 1; } +static _Bool setle0(unsigned int a) { return (a <= 0u) == (a == 0); } +static _Bool setgt0(unsigned int a) { return (a > 0u) == (a != 0); } +static _Bool setlt1(unsigned int a) { return (a < 1u) == (a == 0); } +static _Bool setge1(unsigned int a) { return (a >= 1u) == (a != 0); } + +/* + * check-name: set-uimm0 + * check-command: test-linearize $file + * + * check-output-ignore + * check-output-pattern(6): ret\\.1 *\\$1 + */ diff --git a/validation/optim/simplify-neg-add-cte.c b/validation/optim/simplify-neg-add-cte.c new file mode 100644 index 00000000..a02c474f --- /dev/null +++ b/validation/optim/simplify-neg-add-cte.c @@ -0,0 +1,11 @@ +#define C 3 + +int foo(int x) { return -(x + C) == (-3 - x); } + +/* + * check-name: simplify-neg-add-cte + * check-command: test-linearize -Wno-decl $file + * + * check-output-ignore + * check-output-contains: ret\\..*\\$1 + */ diff --git a/validation/optim/simplify-neg-not.c b/validation/optim/simplify-neg-not.c new file mode 100644 index 00000000..e92352cf --- /dev/null +++ b/validation/optim/simplify-neg-not.c @@ -0,0 +1,9 @@ +int foo(int x) { return -(~x) == x + 1; } + +/* + * check-name: simplify-neg-not + * check-command: test-linearize -Wno-decl $file + * + * check-output-ignore + * check-output-contains: ret\\..*\\$1 + */ diff --git a/validation/optim/simplify-neg-sub.c b/validation/optim/simplify-neg-sub.c new file mode 100644 index 00000000..9a824f09 --- /dev/null +++ b/validation/optim/simplify-neg-sub.c @@ -0,0 +1,9 @@ +int foo(int x, int y) { return -(x - y) == (y - x); } + +/* + * check-name: simplify-neg-sub + * check-command: test-linearize -Wno-decl $file + * + * check-output-ignore + * check-output-contains: ret\\..*\\$1 + */ diff --git a/validation/optim/simplify-not-add-cte.c b/validation/optim/simplify-not-add-cte.c new file mode 100644 index 00000000..6594012b --- /dev/null +++ b/validation/optim/simplify-not-add-cte.c @@ -0,0 +1,11 @@ +#define C 3 + +int foo(int x) { return ~(x + C) == (~C - x); } + +/* + * check-name: simplify-not-add-cte + * check-command: test-linearize -Wno-decl $file + * + * check-output-ignore + * check-output-contains: ret\\..*\\$1 + */ diff --git a/validation/optim/simplify-not-neg.c b/validation/optim/simplify-not-neg.c new file mode 100644 index 00000000..3fd8400d --- /dev/null +++ b/validation/optim/simplify-not-neg.c @@ -0,0 +1,9 @@ +int foo(int x) { return ~(-x) == (x - 1); } + +/* + * check-name: simplify-not-neg + * check-command: test-linearize -Wno-decl $file + * + * check-output-ignore + * check-output-contains: ret\\..*\\$1 + */ diff --git a/validation/optim/simplify-not-sub-cte.c b/validation/optim/simplify-not-sub-cte.c new file mode 100644 index 00000000..1ea73ece --- /dev/null +++ b/validation/optim/simplify-not-sub-cte.c @@ -0,0 +1,11 @@ +#define C 3 + +int foo(int x) { return ~(C - x) == (x + ~C); } + +/* + * check-name: simplify-not-sub-cte + * check-command: test-linearize -Wno-decl $file + * + * check-output-ignore + * check-output-contains: ret\\..*\\$1 + */ diff --git a/validation/optim/simplify-not-xor-cte.c b/validation/optim/simplify-not-xor-cte.c new file mode 100644 index 00000000..c3c803b3 --- /dev/null +++ b/validation/optim/simplify-not-xor-cte.c @@ -0,0 +1,11 @@ +#define C 3 + +int foo(int x) { return ~(x ^ C) == (x ^ ~C); } + +/* + * check-name: simplify-not-xor-cte + * check-command: test-linearize -Wno-decl $file + * + * check-output-ignore + * check-output-contains: ret\\..*\\$1 + */ |
