diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2016-12-06 10:25:05 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2017-11-13 14:16:51 +0100 |
| commit | b3dc605badcd4930fa68fa6b5ab031970f54bde3 (patch) | |
| tree | 810683324806e95932a8558c5161998f6f4ac8d8 /validation/optim/canonical-mul.c | |
| parent | 425aca24c35c02aad7e779d5eb7500cba2123238 (diff) | |
| download | sparse-dev-b3dc605badcd4930fa68fa6b5ab031970f54bde3.tar.gz | |
add test cases for canonicalization of mul chains
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/optim/canonical-mul.c')
| -rw-r--r-- | validation/optim/canonical-mul.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/validation/optim/canonical-mul.c b/validation/optim/canonical-mul.c new file mode 100644 index 00000000..90d59f2e --- /dev/null +++ b/validation/optim/canonical-mul.c @@ -0,0 +1,24 @@ +#define uint unsigned int + +uint xtc_umul_ytc(uint x, uint y) { return (x * 3) * (y * 2); } + +/* + * check-name: canonical-muldiv + * check-description: + * 1) verify that constants in mul chains are + * pushed at the right of the whole chain. + * For example '(a * 3) * b' must be canonicalized into '(a * b) * 1' + * This is needed in general for constant simplification; + * for example, for: + * '(a * 3) * (b * 2)' + * to be simplified into: + * '(a * b) * 6' + * + * check-command: test-linearize -Wno-decl $file + * check-known-to-fail + * check-output-ignore + * + * check-output-excludes: \$3 + * check-output-excludes: \$2 + * check-output-contains: \$6 + */ |
