https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90984
Bug ID: 90984 Summary: PowerPC cast from vector unsigned long long to vector double does not do an integer to float conversion Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: slandden at gmail dot com Target Milestone: --- Implicit integer to float conversions are not my favorite part of C, but they are a part of C, and not doing them in this case results in unexpected behavior. #include <altivec.h> int main() { vector unsigned long long in = {1, 1}; vector double out = (vector double)in; if (out[0] != 1.0 || out[1] != 1.0) return 1; }