tree-optimization/112405 - SIMD clone calls with (loop) mask
commit9125969086bfa1bf804b246ea574a2329b06d2c5
authorRichard Biener <rguenther@suse.de>
Mon, 6 Nov 2023 13:34:07 +0000 (6 14:34 +0100)
committerRichard Biener <rguenther@suse.de>
Mon, 6 Nov 2023 14:27:47 +0000 (6 15:27 +0100)
tree57184ad8d9bc2224b6a863b8f8f3fbe33dca66ed
parentffa0a73e152807a57fe4159a0d53ede25812fd1f
tree-optimization/112405 - SIMD clone calls with (loop) mask

The following fixes the mask argument generation for SIMD clone
calls under either loop masking or when the actual call is not
masked but only a inbranch simd clone is available.  The issue
was that we tried to directly convert the vector mask to the
call argument type but SIMD clone masks require 1 or 0 (which
could be even float) values for mask elements so we have to
resort to a VEC_COND_EXPR to generate them just like we do for
regular passing of the mask.

PR tree-optimization/112405
* tree-vect-stmts.cc (vectorizable_simd_clone_call):
Properly handle invariant and/or loop mask passing.
gcc/tree-vect-stmts.cc