Fix enabled attribute for V2QI negate/plusminus insns
Corrects the 'enabled' attribute for MMX V2QI negate and plusminus instructions on i386.
The ‘enabled’ attribute for certain MMX instructions on the i386 architecture, specifically negv2qi2 and v2qi3 (plusminus), was incorrectly using a condition that could change during optimization (optimize_function_for_size_p). This commit modifies the attribute to use optimize_size instead, ensuring it remains a stable, pass-invariant property as required by RTL documentation, thereby fixing a bug related to optimization stability.
In Details
The enabled attribute in MMX RTL for i386's negv2qi2 and v2qi3 instructions incorrectly referenced optimize_function_for_size_p(cfun), whose value can fluctuate due to cgraph frequency estimations. This commit replaces it with the static optimize_size property, aligning with the RTL documentation's requirement for pass-invariant attributes and fixing PR114232's missed case.
- V2QI
- A vector data type consisting of two elements of type QI (Quad Integer, typically 8-bit).
- negate/plusminus
- Operations representing negation (unary minus) and increment/decrement (plus-minus) on the V2QI data type.
- enabled attribute
- An attribute in GCC's RTL (Register Transfer Language) that determines whether a particular instruction pattern is available or enabled for use by the backend.
- RTL
- Register Transfer Language. GCC's internal intermediate representation used to describe code transformations between the compiler front-end and the machine-specific back-end.
- MMX
- An instruction set extension for x86 architectures that provides SIMD (Single Instruction, Multiple Data) capabilities for integer operations.