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