When calculations are performed within an 'if-else' statement for scalar operations, only one part of the statement has to be executed ('if' block or 'else' block). When using masking, both blocks have to be executed even if the required conditions do not apply for most of the data elements.
A benchmark should be created to measure this masking overhead and, if possible, show in which cases scalar code might be a better option.