aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorAlex Coplan <alex.coplan@arm.com>2025-06-19 12:38:11 +0100
committerAlex Coplan <alex.coplan@arm.com>2025-07-03 09:52:00 +0100
commitc512c9090f52e7666730db9117c6ec6ca11cf3b8 (patch)
treef3c3ef033d4f803d2b4bd5ea854abd0dbe51c66b /libcpp
parentd0749f3774032f74703071cc032fab13122d5c76 (diff)
downloadgcc-c512c9090f52e7666730db9117c6ec6ca11cf3b8.zip
gcc-c512c9090f52e7666730db9117c6ec6ca11cf3b8.tar.gz
gcc-c512c9090f52e7666730db9117c6ec6ca11cf3b8.tar.bz2
aarch64: Drop const_int from aarch64_maskload_else_operand
The "else operand" to maskload should always be a const_vector, never a const_int. This was just an issue I noticed while looking through the code, I don't have a testcase which shows a concrete problem due to this. Testing of that change alone showed ICEs with load lanes vectorization and SVE. That turned out to be because the backend pattern was missing a mode for the else operand (causing the middle-end to choose a const_int during expansion), fixed thusly. That in turn exposed an issue with the unpredicated load lanes expander which was using the wrong mode for the else operand, so fixed that too. gcc/ChangeLog: * config/aarch64/aarch64-sve.md (vec_load_lanes<mode><vsingle>): Expand else operand in subvector mode, as per optab documentation. (vec_mask_load_lanes<mode><vsingle>): Add missing mode for operand 3. * config/aarch64/predicates.md (aarch64_maskload_else_operand): Remove const_int.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions