Exploit zeros in isl_mat_product
Exploit zeros in isl_mat_product

The matrices passed to mat_product have commonly a large number of zero
elements. By avoiding multiplications that are known to yield a zero
contribution we can get a compile-time reduction of almost 6%, e.g.,
when running Polly on Polybench-c-3.2's 2mm kernel.

Signed-off-by: Tobias Grosser <059b8b880f8441509ec8a65b50b4c6ae74ebea76@grosser.es>
Signed-off-by: Sven Verdoolaege <e5350bbed4977f5eb8ae1dc6abd9ae59d21ace75@kotnet.org>

tobig/isl,nicolasvasilache/isl,nicolasvasilache/isl,inducer/isl-mirror,inducer/isl-mirror,UBERTC/isl,nicolasvasilache/isl,inducer/isl-mirror,simbuerg/isl,evaautomation/isl,KangDroidSMProject/ISL,evaautomation/isl,inducer/isl-mirror,tobig/isl,evaautomation/isl,PollyLabs/isl,BenzoSM/isl,Distrotech/isl,PollyLabs/isl,BenzoSM/isl,PollyLabs/isl,Distrotech/isl,Meinersbur/isl,KangDroidSMProject/ISL,BenzoSM/isl,Meinersbur/isl,UBERTC/isl,nicolasvasilache/isl,simbuerg/isl,inducer/isl-mirror,nicolasvasilache/isl,evaautomation/isl,UBERTC/isl,simbuerg/isl,Meinersbur/isl,Distrotech/isl,BenzoSM/isl,Distrotech/isl,KangDroidSMProject/ISL,KangDroidSMProject/ISL,simbuerg/isl,BenzoSM/isl,PollyLabs/isl,PollyLabs/isl,UBERTC/isl,tobig/isl,KangDroidSMProject/ISL,simbuerg/isl,Distrotech/isl,Meinersbur/isl,tobig/isl