Man page says -Mvect=idiom still supported, but compiler rejects it
Can you please provide more details, including the compiler release version and OS you’re using, as well as an example of the error?
“-Mvect=idiom” is still there and accepted by all the compiler drivers, on x86_64, but isn’t supported on ARM. Are you on ARM?
If yes, I’ve put in an RFE (TPR #28879) to see if we can customize the man pages better per platform. Though the best place to look for what flags are or are not supported on a particular platform is via the command line help (-help) flag.
Hey Mat,
20.7 on ARM. RHEL 8.0. I did the --help thing of course. That helped me notice the discrepancy in the documentation.
tx001[1](~) nvc -Mvect=idiom 1.c
nvc-Error-Switch -Mvect with unknown keyword idiom
-M[no]vect[=[no]simd|nocond|[no]assoc|cachesize:<c>|[no]fuse]
Control automatic vector pipelining
[no]simd Generate [don't generate] SIMD instructions
128 Use 128-bit SIMD instructions
nocond Don't generate conditional SIMD instructions
[no]assoc Allow [disallow] reassociation
cachesize:<c> Optimize for cache size c
[no]fuse Enable [disable] loop fusion
$ man nvc
-Mvect [=option[,option,...]] -Mnovect (default)
Pass options to the internal vectorizer. This also sets the
optimization level to a minimum of 2; see -O. If no option list
is specified, then the following vector optimizations are used:
assoc,cachesize:c,nosse, where c is the actual cache size of the
machine. The -Mvect options are:
...
idiom noidiom (default)
Enable idiom recognition; this currently has no effect.
The Mvect=idiom issue on Arm was fixed in our 20.11 release