Landing: 6abaf53d84db

Project / Subsystem

gcc / loongarch

Date

2026-07-14

Author

Xi Ruoyao

Commit

6abaf53d84db86bd917d18cac5aac3c3bf37929c

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
loongarch
patch_id
commit_hash
6abaf53d84db86bd917d18cac5aac3c3bf37929c
source_type
github
headline
Fix conditional vector shuffle operand handling for LoongArch.
tldr
Corrected predicate logic for LoongArch's vector shuffle instructions to handle operand modes properly.
author
Xi Ruoyao
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • loongarch
  • vector
  • bugfix
discussion_id_link
github:gcc-mirror/gcc#126200
bugzilla_pr
date
2026-07-14T00:00:00.000Z

This commit addresses an issue in the LoongArch backend concerning the predicate par_const_vector_shf_set_operand, which was used to validate operands for constant vector shuffle instructions like lsx_vshuf4i. The predicate incorrectly accepted any mode for the selector operand because it was declared as VOIDmode. The fix modifies this predicate to be a special predicate and specifies VIMODE for the selector, ensuring it matches the expected mode and preventing incorrect folding of vector select operations.