i386: Fix vec_concatv2df condition to match its constraints
i386: Corrects a miss-optimization in vec_concatv2df by refining its condition to prevent unnecessary reloads.
This patch corrects a miss-optimization in the i386 vec_concatv2df instruction pattern. The previous condition incorrectly allowed memory operands in certain cases, forcing a reload and potentially an extra instruction. By restricting the condition to only accept CONST0_RTX as operand 2 when operand 1 is a memory operand, the compiler avoids this issue and generates more efficient code, as demonstrated in the provided example.
In Details
The vec_concatv2df pattern in sse.md had an overly permissive condition that allowed memory operands in a way that combine could fold, but LRA would later need to reload. This change narrows the condition to reject MEM as operand 1 unless operand 2 is CONST 0, preventing unnecessary reloads and instructions.