On Mon, Aug 18, 2014 at 1:45 PM, Prathamesh Kulkarni <bilbotheelffri...@gmail.com> wrote: > On Mon, Aug 18, 2014 at 4:37 PM, Richard Biener > <richard.guent...@gmail.com> wrote: >> On Sun, Aug 17, 2014 at 9:50 PM, Prathamesh Kulkarni >> <bilbotheelffri...@gmail.com> wrote: >>> Hi, >>> Apparently this pattern is not getting fired (even in isolation). >>> >>> /* x % 1 -> 0 */ >>> (simplify >>> (trunc_mod @0 integer_onep) >>> { build_zero_cst (type); }) >>> >>> I tried with this test-case: >>> int f(int x) >>> { >>> int t1 = 1; >>> int t2 = x % t1; >>> return t2; >>> } >>> >>> I get the following output in ccp1 dump file: >>> http://pastebin.com/B6HjptkC >> >> It shows (and I also see that): >> >> Visiting statement: >> t2_3 = x_2(D) % t1_1; >> which is likely CONSTANT >> Match-and-simplified x_2(D) % t1_1 to 0 >> Lattice value changed to CONSTANT 0. Adding SSA edges to worklist. >> >> so it works as expected? Or what do you miss? >> >> Note that the function is simplified all the way to return 0; and >> intermediate statemens are removed. > oops, I got mixed up -:) > sorry for the noise. > > This patch adds the test-case for that pattern. > testsuite/ > * match-constant-folding.c: Add new test-case.
Thanks - committed. Richard. > Thanks, > Prathamesh > >> >> Thanks, >> Richard. >> >>> and the following output is generated in gimple-match.c: >>> http://pastebin.com/tmi0cpxv >>> >>> I guess the generated code appears to be correct for the above pattern, >>> so we are not doing anything wrong in genmatch ? >>> >>> Thanks, >>> Prathamesh