1*c85f09ccSJohn Levon #define uint unsigned int 2*c85f09ccSJohn Levon xtc_umul_ytc(uint x,uint y)3*c85f09ccSJohn Levonuint 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