NEON 레지스터로로드 유형 uint32x4_t
의 r1
, r3
및 r4
를 갖는 나는 다음과 같은 코드를 가지고 : 난 그냥 GCC 실제로 vmov
명령에 r4 = r1
변환 여부를 궁금NEON 간단한 벡터 지정 내장?
r3 = veorq_u32(r0,r3);
r4 = r1;
r1 = vandq_u32(r1,r3);
r4 = veorq_u32(r4,r2);
r1 = veorq_u32(r1,r0);
그리고있다. 해체 된 코드를 보면 나는 그렇게 놀랍지 않았다. (또한 생성 된 어셈블리 코드가 실제로 무엇을하는지 알 수 없습니다.)
ARM NEON 내장 함수 참조를 통해 스키밍 단순 벡터 -> 벡터 할당 내장 함수를 찾을 수 없습니다.
가장 쉬운 방법은 무엇입니까? 어떤 레지스터가 r1
이고 r4
이 vld1q_u32
에 의해 할당되었는지 알지 못하기 때문에 인라인 어셈블리 코드가 어떻게 생겼는지 나는 잘 모르겠습니다. 나는 실제적인 스왑이 필요없고, 단지 임무를 부여 받는다.
어셈블리는 어떻게 생겼습니까? -O2로 컴파일 했습니까? – auselen
예, 단지 논리적 인 지시 사항이 있지만 예상했던 'vmov'는 없습니다. – NumberFour
NEON 명령어'vmov'의 변형에 대한 내장 함수가 누락되었다고 생각되면 http://gcc.gnu.org/에서 opcode, 인수, 문서 링크 등으로 버그를 게시하십시오. – ydroneaud