KNL Vectorization with larger vector width


If we pass march=knl, the llvm vectorizer (O3) generates max 16xi32 vector width instruction and 8xi32 or 4xi32 in recursive manner.

I am working on a target with larger vector widths like 32,64…
Now how to enable the vectorizer (O3) to automatically generate larger vector size instructions recursively by specifying the new target. Which files have the code for this?

Please help

Thank You

I believe that the thing that you’re trying to affect is this: and so your target’s TargetTransformInfo class should return an appropriate value from getRegisterBitWidth. -Hal