https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111584
Bug ID: 111584
Summary: [aarch64] Redundant movprfx with ptrue
Product: gcc
Version: 13.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: zhongyunde at huawei dot com
Target Milestone: ---
* test: https://gcc.godbolt.org/z/E6Eez81jh
```
#include<arm_sve.h>
typedef svfloat32_t fvec32 __attribute__((arm_sve_vector_bits(256)));
typedef svfloat32_t __m256_;
__m256_ _mm256_mul_ps2_z(__m256_ a, __m256_ b)
{
__m256_ res;
res = svmul_f32_z(svptrue_b32(), a, b);
return res;
}
```
* llvm have same output for _mm256_mul_ps2_x and _mm256_mul_ps2_z, while gcc
doesn't has high efficient output for _mm256_mul_ps2_z