blob: cfaa6b9fd26e2cf264245203a6c86909093264cb [file] [log] [blame]
/* PR tree-optimization/110726 */
#define DECLS(n,VOL) \
__attribute__((noinline,noclone)) \
int h##n(VOL int A, VOL int B){ \
return (A | B) & (A == B); \
} \
__attribute__((noinline,noclone)) \
int i##n(VOL int A, VOL int B){ \
return A | (A == B); \
} \
__attribute__((noinline,noclone)) \
int k##n(VOL int A, VOL int B){ \
return (A & B) | (A == B); \
} \
DECLS(0,)
DECLS(1,volatile)
int values[] = { 0, 1, 2, 3, -1, -2, -3, 0x10080 };
int numvalues = sizeof(values)/sizeof(values[0]);
int main(){
for(int A = 0; A < numvalues; A++)
for(int B = 0; B < numvalues; B++)
{
int a = values[A];
int b = values[B];
if (h0 (a, b) != h1 (a, b)) __builtin_abort();
if (i0 (a, b) != i1 (a, b)) __builtin_abort();
if (k0 (a, b) != k1 (a, b)) __builtin_abort();
}
}