]> gcc.gnu.org Git - gcc.git/commit
tree-optimization/115868 - ICE with .MASK_CALL in simdclone
authorRichard Biener <rguenther@suse.de>
Thu, 11 Jul 2024 07:56:56 +0000 (09:56 +0200)
committerRichard Biener <rguenth@gcc.gnu.org>
Sat, 13 Jul 2024 11:29:49 +0000 (13:29 +0200)
commitabf3964711f05b6858d9775c3595ec2b45483e14
treef3137dcc996b37403307abf3f36e15b9654f7919
parent2ee5b58be62ba83814fd3b09a604ae0858bbd058
tree-optimization/115868 - ICE with .MASK_CALL in simdclone

The following adjusts mask recording which didn't take into account
that we can merge call arguments from two vectors like

  _50 = {vect_d_1.253_41, vect_d_1.254_43};
  _51 = VIEW_CONVERT_EXPR<unsigned char>(mask__19.257_49);
  _52 = (unsigned int) _51;
  _53 = _Z3bazd.simdclone.7 (_50, _52);
  _54 = BIT_FIELD_REF <_53, 256, 0>;
  _55 = BIT_FIELD_REF <_53, 256, 256>;

The testcase g++.dg/vect/pr68762-2.cc exercises this on x86_64 with
partial vector usage enabled and AVX512 support.

PR tree-optimization/115868
* tree-vect-stmts.cc (vectorizable_simd_clone_call): Correctly
compute the number of mask copies required for vect_record_loop_mask.
gcc/tree-vect-stmts.cc
This page took 0.05965 seconds and 5 git commands to generate.