Scalar function array bounds confound EWLF half the time
|
|
Bugzilla Link |
520 |
Created on |
Jul 05, 2009 22:10 |
Version |
1.00beta |
OS |
Linux |
Architecture |
PC |
Extended Description
The attached or-dot-and inner product function, if compiled with -DFAST,
loop-fuses the ∨/scalar∧vector loops, but not otherwise.
The problem is that the Cond function containing them is not able to
tell that the two array bounds are the same. Switching the operation
order allows EWLF to proceed.
VEC = xel & y[[colx]];
#ifdef FAST
Crow = VEC | Crow;
#else // FAST
Crow = Crow | VEC;
#endif //FAST
The compiler, perhaps aided by conformance guards, should be able
to solve this problem.
This entry is more of a place-holder than any else, to jog my memory
when I get the guard stuff working.