Fixed two major problems
authorjsteube <jens.steube@gmail.com>
Sat, 27 Feb 2016 16:18:54 +0000 (17:18 +0100)
committerjsteube <jens.steube@gmail.com>
Sat, 27 Feb 2016 16:18:54 +0000 (17:18 +0100)
commitdad03e394d815bc45b3f2c571f7195aab8746156
tree41abedadb9c67525da7e77a78b264a4c23d76fac
parente688e9438452d02f053694bc101d9abe3ea89aff
Fixed two major problems

1) SIMD code for all attack-mode

Macro vector_accessible() was not refactored and missing completely.
Had to rename variables rules_cnt, combs_cnt and bfs_cnt into il_cnt which was a good thing anyway as with new SIMD code they all act in the same way.

2) SIMD code for attack-mode 0

With new SIMD code, apply_rules_vect() has to return u32 not u32x.
This has massive impact on all *_a0 kernels.

I've rewritten most of them. Deep testing using test.sh is still required.

Some kernel need more fixes:

- Some are kind of completely incompatible like m10400 but they still use old check_* includes, we should get rid of them as they are no longer neccessary as we have simd.c
- Some have a chance but require additional effort like m11500. We can use commented out "#define NEW_SIMD_CODE" to find them

This change can have negative impact on -a0 performance for device that require vectorization. That is mostly CPU devices. New GPU's are all scalar, so they wont get hurt by this.
This change also proofes that there's no way to efficiently vectorize kernel rules with new SIMD code, but it enables the addition of the rule functions like @ that we were missing for some long time. This is a TODO.
330 files changed:
OpenCL/common.c
OpenCL/m00000_a0.cl
OpenCL/m00000_a1.cl
OpenCL/m00000_a3.cl
OpenCL/m00010_a0.cl
OpenCL/m00010_a1.cl
OpenCL/m00010_a3.cl
OpenCL/m00020_a0.cl
OpenCL/m00020_a1.cl
OpenCL/m00020_a3.cl
OpenCL/m00030_a0.cl
OpenCL/m00030_a1.cl
OpenCL/m00030_a3.cl
OpenCL/m00040_a0.cl
OpenCL/m00040_a1.cl
OpenCL/m00040_a3.cl
OpenCL/m00050_a0.cl
OpenCL/m00050_a1.cl
OpenCL/m00050_a3.cl
OpenCL/m00060_a0.cl
OpenCL/m00060_a1.cl
OpenCL/m00060_a3.cl
OpenCL/m00100_a0.cl
OpenCL/m00100_a1.cl
OpenCL/m00100_a3.cl
OpenCL/m00110_a0.cl
OpenCL/m00110_a1.cl
OpenCL/m00110_a3.cl
OpenCL/m00120_a0.cl
OpenCL/m00120_a1.cl
OpenCL/m00120_a3.cl
OpenCL/m00130_a0.cl
OpenCL/m00130_a1.cl
OpenCL/m00130_a3.cl
OpenCL/m00140_a0.cl
OpenCL/m00140_a1.cl
OpenCL/m00140_a3.cl
OpenCL/m00150_a0.cl
OpenCL/m00150_a1.cl
OpenCL/m00150_a3.cl
OpenCL/m00160_a0.cl
OpenCL/m00160_a1.cl
OpenCL/m00160_a3.cl
OpenCL/m00190_a0.cl
OpenCL/m00190_a1.cl
OpenCL/m00190_a3.cl
OpenCL/m00200_a0.cl
OpenCL/m00200_a1.cl
OpenCL/m00200_a3.cl
OpenCL/m00300_a0.cl
OpenCL/m00300_a1.cl
OpenCL/m00300_a3.cl
OpenCL/m00400.cl
OpenCL/m00500.cl
OpenCL/m00900_a0.cl
OpenCL/m00900_a1.cl
OpenCL/m00900_a3.cl
OpenCL/m01000_a0.cl
OpenCL/m01000_a1.cl
OpenCL/m01000_a3.cl
OpenCL/m01100_a0.cl
OpenCL/m01100_a1.cl
OpenCL/m01100_a3.cl
OpenCL/m01400_a0.cl
OpenCL/m01400_a1.cl
OpenCL/m01400_a3.cl
OpenCL/m01410_a0.cl
OpenCL/m01410_a1.cl
OpenCL/m01410_a3.cl
OpenCL/m01420_a0.cl
OpenCL/m01420_a1.cl
OpenCL/m01420_a3.cl
OpenCL/m01430_a0.cl
OpenCL/m01430_a1.cl
OpenCL/m01430_a3.cl
OpenCL/m01440_a0.cl
OpenCL/m01440_a1.cl
OpenCL/m01440_a3.cl
OpenCL/m01450_a0.cl
OpenCL/m01450_a1.cl
OpenCL/m01450_a3.cl
OpenCL/m01460_a0.cl
OpenCL/m01460_a1.cl
OpenCL/m01460_a3.cl
OpenCL/m01500_a0.cl
OpenCL/m01500_a1.cl
OpenCL/m01500_a3.cl
OpenCL/m01600.cl
OpenCL/m01700_a0.cl
OpenCL/m01700_a1.cl
OpenCL/m01700_a3.cl
OpenCL/m01710_a0.cl
OpenCL/m01710_a1.cl
OpenCL/m01710_a3.cl
OpenCL/m01720_a0.cl
OpenCL/m01720_a1.cl
OpenCL/m01720_a3.cl
OpenCL/m01730_a0.cl
OpenCL/m01730_a1.cl
OpenCL/m01730_a3.cl
OpenCL/m01740_a0.cl
OpenCL/m01740_a1.cl
OpenCL/m01740_a3.cl
OpenCL/m01750_a0.cl
OpenCL/m01750_a1.cl
OpenCL/m01750_a3.cl
OpenCL/m01760_a0.cl
OpenCL/m01760_a1.cl
OpenCL/m01760_a3.cl
OpenCL/m01800.cl
OpenCL/m02100.cl
OpenCL/m02400_a0.cl
OpenCL/m02400_a1.cl
OpenCL/m02400_a3.cl
OpenCL/m02410_a0.cl
OpenCL/m02410_a1.cl
OpenCL/m02410_a3.cl
OpenCL/m02500.cl
OpenCL/m02610_a0.cl
OpenCL/m02610_a1.cl
OpenCL/m02610_a3.cl
OpenCL/m02710_a0.cl
OpenCL/m02710_a1.cl
OpenCL/m02710_a3.cl
OpenCL/m02810_a0.cl
OpenCL/m02810_a1.cl
OpenCL/m02810_a3.cl
OpenCL/m03000_a0.cl
OpenCL/m03000_a1.cl
OpenCL/m03000_a3.cl
OpenCL/m03100_a0.cl
OpenCL/m03100_a1.cl
OpenCL/m03100_a3.cl
OpenCL/m03200.cl
OpenCL/m03710_a0.cl
OpenCL/m03710_a1.cl
OpenCL/m03710_a3.cl
OpenCL/m03800_a0.cl
OpenCL/m03800_a1.cl
OpenCL/m03800_a3.cl
OpenCL/m04310_a0.cl
OpenCL/m04310_a1.cl
OpenCL/m04310_a3.cl
OpenCL/m04400_a0.cl
OpenCL/m04400_a1.cl
OpenCL/m04400_a3.cl
OpenCL/m04500_a0.cl
OpenCL/m04500_a1.cl
OpenCL/m04500_a3.cl
OpenCL/m04700_a0.cl
OpenCL/m04700_a1.cl
OpenCL/m04700_a3.cl
OpenCL/m04800_a0.cl
OpenCL/m04800_a1.cl
OpenCL/m04800_a3.cl
OpenCL/m04900_a0.cl
OpenCL/m04900_a1.cl
OpenCL/m04900_a3.cl
OpenCL/m05000_a0.cl
OpenCL/m05000_a1.cl
OpenCL/m05000_a3.cl
OpenCL/m05100_a0.cl
OpenCL/m05100_a1.cl
OpenCL/m05100_a3.cl
OpenCL/m05200.cl
OpenCL/m05300_a0.cl
OpenCL/m05300_a1.cl
OpenCL/m05300_a3.cl
OpenCL/m05400_a0.cl
OpenCL/m05400_a1.cl
OpenCL/m05400_a3.cl
OpenCL/m05500_a0.cl
OpenCL/m05500_a1.cl
OpenCL/m05500_a3.cl
OpenCL/m05600_a0.cl
OpenCL/m05600_a1.cl
OpenCL/m05600_a3.cl
OpenCL/m05800.cl
OpenCL/m06000_a0.cl
OpenCL/m06000_a1.cl
OpenCL/m06000_a3.cl
OpenCL/m06100_a0.cl
OpenCL/m06100_a1.cl
OpenCL/m06100_a3.cl
OpenCL/m06211.cl
OpenCL/m06212.cl
OpenCL/m06213.cl
OpenCL/m06221.cl
OpenCL/m06222.cl
OpenCL/m06223.cl
OpenCL/m06231.cl
OpenCL/m06232.cl
OpenCL/m06233.cl
OpenCL/m06300.cl
OpenCL/m06400.cl
OpenCL/m06500.cl
OpenCL/m06600.cl
OpenCL/m06700.cl
OpenCL/m06800.cl
OpenCL/m06900_a0.cl
OpenCL/m06900_a1.cl
OpenCL/m06900_a3.cl
OpenCL/m07100.cl
OpenCL/m07300_a0.cl
OpenCL/m07300_a1.cl
OpenCL/m07300_a3.cl
OpenCL/m07400.cl
OpenCL/m07500_a0.cl
OpenCL/m07500_a1.cl
OpenCL/m07500_a3.cl
OpenCL/m07600_a0.cl
OpenCL/m07600_a1.cl
OpenCL/m07600_a3.cl
OpenCL/m07700_a0.cl
OpenCL/m07700_a1.cl
OpenCL/m07700_a3.cl
OpenCL/m07800_a0.cl
OpenCL/m07800_a1.cl
OpenCL/m07800_a3.cl
OpenCL/m07900.cl
OpenCL/m08000_a0.cl
OpenCL/m08000_a1.cl
OpenCL/m08000_a3.cl
OpenCL/m08100_a0.cl
OpenCL/m08100_a1.cl
OpenCL/m08100_a3.cl
OpenCL/m08200.cl
OpenCL/m08300_a0.cl
OpenCL/m08300_a1.cl
OpenCL/m08300_a3.cl
OpenCL/m08400_a0.cl
OpenCL/m08400_a1.cl
OpenCL/m08400_a3.cl
OpenCL/m08500_a0.cl
OpenCL/m08500_a1.cl
OpenCL/m08500_a3.cl
OpenCL/m08600_a0.cl
OpenCL/m08600_a1.cl
OpenCL/m08600_a3.cl
OpenCL/m08700_a0.cl
OpenCL/m08700_a1.cl
OpenCL/m08700_a3.cl
OpenCL/m08800.cl
OpenCL/m08900.cl
OpenCL/m09000.cl
OpenCL/m09100.cl
OpenCL/m09400.cl
OpenCL/m09500.cl
OpenCL/m09600.cl
OpenCL/m09700_a0.cl
OpenCL/m09700_a1.cl
OpenCL/m09700_a3.cl
OpenCL/m09710_a0.cl
OpenCL/m09710_a1.cl
OpenCL/m09710_a3.cl
OpenCL/m09720_a0.cl
OpenCL/m09720_a1.cl
OpenCL/m09720_a3.cl
OpenCL/m09800_a0.cl
OpenCL/m09800_a1.cl
OpenCL/m09800_a3.cl
OpenCL/m09810_a0.cl
OpenCL/m09810_a1.cl
OpenCL/m09810_a3.cl
OpenCL/m09820_a0.cl
OpenCL/m09820_a1.cl
OpenCL/m09820_a3.cl
OpenCL/m09900_a0.cl
OpenCL/m09900_a1.cl
OpenCL/m09900_a3.cl
OpenCL/m10100_a0.cl
OpenCL/m10100_a1.cl
OpenCL/m10100_a3.cl
OpenCL/m10300.cl
OpenCL/m10400_a0.cl
OpenCL/m10400_a1.cl
OpenCL/m10400_a3.cl
OpenCL/m10410_a0.cl
OpenCL/m10410_a1.cl
OpenCL/m10410_a3.cl
OpenCL/m10420_a0.cl
OpenCL/m10420_a1.cl
OpenCL/m10420_a3.cl
OpenCL/m10500.cl
OpenCL/m10700.cl
OpenCL/m10800_a0.cl
OpenCL/m10800_a1.cl
OpenCL/m10800_a3.cl
OpenCL/m10900.cl
OpenCL/m11000_a0.cl
OpenCL/m11000_a1.cl
OpenCL/m11000_a3.cl
OpenCL/m11100_a0.cl
OpenCL/m11100_a1.cl
OpenCL/m11100_a3.cl
OpenCL/m11200_a0.cl
OpenCL/m11200_a1.cl
OpenCL/m11200_a3.cl
OpenCL/m11300.cl
OpenCL/m11400_a0.cl
OpenCL/m11400_a1.cl
OpenCL/m11400_a3.cl
OpenCL/m11500_a0.cl
OpenCL/m11500_a1.cl
OpenCL/m11500_a3.cl
OpenCL/m11600.cl
OpenCL/m11700_a0.cl
OpenCL/m11700_a1.cl
OpenCL/m11700_a3.cl
OpenCL/m11800_a0.cl
OpenCL/m11800_a1.cl
OpenCL/m11800_a3.cl
OpenCL/m11900.cl
OpenCL/m12000.cl
OpenCL/m12200.cl
OpenCL/m12300.cl
OpenCL/m12400.cl
OpenCL/m12500.cl
OpenCL/m12600_a0.cl
OpenCL/m12600_a1.cl
OpenCL/m12600_a3.cl
OpenCL/m12700.cl
OpenCL/m12800.cl
OpenCL/m12900.cl
OpenCL/m13000.cl
OpenCL/m13100_a0.cl
OpenCL/m13100_a1.cl
OpenCL/m13100_a3.cl
OpenCL/rp.c
OpenCL/simd.c