We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Several vcvt* functions return garbage instead of 0 when the input are < 0. Specifically:
Here is a simple test case, compile without optimizations and the result is 0 (which is correct), but with -O1 or higher it is incorrect.
#include <arm_neon.h> #include <stdio.h> #include <inttypes.h>
uint32_t foo(float a) { return vgetq_lane_u32(vcvtq_u32_f32(vdupq_n_f32(a)), 0); }
int main(void) { printf("%" PRIu32 "\n", foo(-3.14));
return 0;
}
The text was updated successfully, but these errors were encountered:
Looking
Sorry, something went wrong.
Posted https://reviews.llvm.org/D84703
8dfb5d7 fixes 64-bit.
I'm not planning to write the fix for the equivalent issue for 32-bit.
No branches or pull requests
Extended Description
Several vcvt* functions return garbage instead of 0 when the input are < 0. Specifically:
Here is a simple test case, compile without optimizations and the result is 0 (which is correct), but with -O1 or higher it is incorrect.
#include <arm_neon.h>
#include <stdio.h>
#include <inttypes.h>
uint32_t foo(float a) {
return vgetq_lane_u32(vcvtq_u32_f32(vdupq_n_f32(a)), 0);
}
int main(void) {
printf("%" PRIu32 "\n", foo(-3.14));
}
The text was updated successfully, but these errors were encountered: