From 015e747e73015c62601b1ad7fa52f1d218c60221 Mon Sep 17 00:00:00 2001 From: Sebastian Buchwald Date: Wed, 15 Oct 2008 11:54:27 +0000 Subject: [PATCH] Next try to get a wrong infinity result when using PBQP transformer. [r22905] --- ir/be/test/pbqpHeur3.c | 144 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 ir/be/test/pbqpHeur3.c diff --git a/ir/be/test/pbqpHeur3.c b/ir/be/test/pbqpHeur3.c new file mode 100644 index 000000000..c497d8e06 --- /dev/null +++ b/ir/be/test/pbqpHeur3.c @@ -0,0 +1,144 @@ +unsigned a; +unsigned b; +unsigned c; +unsigned d; + +unsigned *block1, *block2, *block3, *block4, *block5, *block6; +unsigned gi1, gi2, gi3, gi4, gi5, gi6, gi7, gi8, gi9, gi10, gi11, gi12; +unsigned use; + +int main(int argc, char **argv) +{ + return 0; +} + +unsigned k3_3(char* base, unsigned i1, unsigned i2, unsigned i3, unsigned k1, unsigned k2, unsigned k3) +{ + char a1, a2, a3; + char b1, b2, b3; + char c1, c2, c3; + + a1 = i1 + k1; + a2 = base[i2 + k1]; + a3 = base[i3 + k1]; + + b1 = i1 + k2; + b2 = base[i2 + k2]; + b3 = base[i3 + k2]; + + c1 = i1 + k3; + c2 = base[i2 + k3]; + c3 = base[i3 + k3]; + + if (a1 != a2) + return a3; + if (b1 != b2) + return b3; + if (c1 != c2) + return c3; + + return 0; +} + +unsigned k3_3_am(char* base, unsigned i1, unsigned i2, unsigned i3, unsigned k1, unsigned k2, unsigned k3) +{ + char a1, a2, a3; + char b1, b2, b3; + char c1, c2, c3; + + a1 = base[i1 + k1]; + a2 = base[i2 + k1]; + a3 = base[i3 + k1]; + + b1 = base[i1 + k2]; + b2 = base[i2 + k2]; + b3 = base[i3 + k2]; + + c1 = base[i1 + k3]; + c2 = base[i2 + k3]; + c3 = base[i3 + k3]; + + if (a1 != a2) + return a3; + if (b1 != b2) + return b3; + if (c1 != c2) + return c3; + + return 0; +} + +unsigned k3_3_2(char* base, int i1, int i2, int i3, int k1, int k2, int k3) +{ + char a1, a2, a3; + char b1, b2, b3; + char c1, c2, c3; + + a1 = base[i1 + k1]; + a2 = base[i2 + k1]; + a3 = base[i3 + k1]; + + b1 = base[i1 + k2]; + b2 = base[i2 + k2]; + b3 = base[i3 + k2]; + + c1 = base[i1 + k3]; + c2 = base[i2 + k3]; + c3 = base[i3 + k3]; + + if (a1 != a2) + return a3; + if (b1 != b2) + return b3; + if (c1 != c2) + return c3; + + return 0; +} + +unsigned k3_3_3(char* base, unsigned i1, unsigned i2, unsigned i3, unsigned k1, unsigned k2, unsigned k3) +{ + char a1, a2, a3; + char b1, b2, b3; + char c1, c2, c3; + + a1 = i1 + k1; + a2 = base[i2 + k1]; + a3 = base[i3 + k1]; + + b1 = i1 + k2; + b2 = base[i2 + k2]; + b3 = base[i3 + k2]; + + c1 = i1 + k3; + c2 = base[i2 + k3]; + c3 = base[i3 + k3]; + + if (a1 != a2) + return a3; + if (b1 != b2) + return b3; + if (c1 != c2) + return c3; + + return 0; +} + +void diamond(void) +{ + unsigned as = a << 3; + unsigned asb = as + 123235; + unsigned asc = as + 235346; + unsigned sum = asb + asc; + + d = sum; + + use = k3_3_3(block1, asb, gi1, gi2, 10, 11, 12); +// use = k3_3(block2, asb, gi3, gi4, 13, 14, 15); +// +// use = k3_3(block3, asb, gi5, gi6, 16, 17, 18); +// use = k3_3(block4, asb, gi7, gi8, 19, 20, 21); +// +// use = k3_3(block5, asb, gi9, gi10, 22, 23, 24); +// use = k3_3(block6, asb, gi11, gi12, 25, 26, 27); +} -- 2.20.1