]> gcc.gnu.org Git - gcc.git/commit
vect: while_ult for integer masks
authorAndrew Stubbs <ams@codesourcery.com>
Fri, 2 Oct 2020 14:12:50 +0000 (15:12 +0100)
committerAndrew Stubbs <ams@codesourcery.com>
Wed, 12 Oct 2022 10:40:07 +0000 (11:40 +0100)
commit46a155c5bb487e0378e52bc3dc016d66bdf426f1
treed7d8b69760ae99127e10acac5f5c435c294850ee
parentb3f25511fb4bd4dbfc4068df665f4ea34f416b2d
vect: while_ult for integer masks

Add a vector length parameter needed by amdgcn without breaking aarch64.

All amdgcn vector masks are DImode, regardless of vector length, so we can't
tell what length is implied simply from the operator mode.  (Even if we used
different integer modes there's no mode small enough to differenciate a 2 or
4 lane mask).  Without knowing the intended length we end up using a mask with
too many lanes enabled, which leads to undefined behaviour..

The extra operand is not added for vector mask types so AArch64 does not need
to be adjusted.

gcc/ChangeLog:

* config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
operand 3.
* doc/md.texi (while_ult): Document new operand 3 usage.
* internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type
maps to a non-vector mode.
gcc/ChangeLog.omp
gcc/config/gcn/gcn-valu.md
gcc/doc/md.texi
gcc/internal-fn.cc
This page took 0.063881 seconds and 6 git commands to generate.