xref: /illumos-gate/usr/src/tools/smatch/src/validation/optim/canonical-mul.c (revision 8226594fdd4479be135127f43632f1f995074654)
1 #define uint unsigned int
2 
3 uint xtc_umul_ytc(uint x, uint y) { return (x * 3) * (y * 2); }
4 
5 /*
6  * check-name: canonical-muldiv
7  * check-description:
8  *	1) verify that constants in mul chains are
9  *	   pushed at the right of the whole chain.
10  *	   For example '(a * 3) * b' must be canonicalized into '(a * b) * 1'
11  *	   This is needed in general for constant simplification;
12  *	   for example, for:
13  *		'(a * 3) * (b * 2)'
14  *	   to be simplified into:
15  *		'(a * b) * 6'
16  *
17  * check-command: test-linearize -Wno-decl $file
18  * check-known-to-fail
19  * check-output-ignore
20  *
21  * check-output-excludes: \\$3
22  * check-output-excludes: \\$2
23  * check-output-contains: \\$6
24  */
25