blob: 015384fbd20161d29ae05b70eb5f812ed1cd6924 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
#include <stdlib.h>
#include <stdio.h>
int gcd(int x, int y) __attribute__ ((pure));
__attribute__ ((noinline))
int gcd(int x, int y)
{
int swap;
if(x <= 0 || y <= 0)
return 0;
if(x < y)
{
swap = x;
x = y;
y = swap;
}
while(x != y)
{
x = x - y;
if(y > x)
{
swap = x;
x = y;
y = swap;
}
}
return x;
}
int nsd(int x, int y) __attribute__ ((pure));
__attribute__ ((noinline))
int nsd(int x, int y)
{
int swap;
if(x <= 0 || y <= 0)
return 0;
if(x < y)
{
swap = x;
x = y;
y = swap;
}
while(x != y)
{
x = x - y;
if(y > x)
{
swap = x;
x = y;
y = swap;
}
}
return x;
}
int main(int argc, char **argv)
{
return 0;
}
/* { dg-final { scan-ipa-dump "Semantic equality hit:gcd/\[0-9+\]+->nsd/\[0-9+\]+" "icf" } } */
/* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */