Description of problem: Storing a single long double in a vector will cause GCC 4.8.3, 4.9.2 and 5.0.0 to ICE on AArch64: typedef long double a __attribute__((vector_size (16))); a sum(a first, a second) { return first + second; } a.c:3:3: internal compiler error: in emit_move_insn, at expr.c:3609 a sum(a first, a second) { ^ This has been fixed upstream and also affects GCC 4.8.3. Please follow external bug report for the details.
Note, this was never back ported below 5.0.0 as this never worked in any previous GCC release, thus it's not a regression.
David, Since this is not a regression, as you pointed out, it does not meet the criteria for inclusion into RHEL7.2 at this time. It will be considered for 7.3. Thank you for creating this bugzilla.
long double vectors are something people should be really using in real-world; for one, they e.g. will be rejected with errors on i686, we still ICE on x86_64 even on trunk on typedef long double a __attribute__((vector_size (32))); a sum(a first, a second) { return first + second; } which is the same testcase as above, just with 32 instead of 16, they likely aren't implemented in HW on any architecture and 1x vectors are kind of pointless anyway. I'm nervous the patch might have ABI impact. So I'd prefer not to change this at this point.
(In reply to Jakub Jelinek from comment #7) > long double vectors are something people should be really Presumably you meant: long double vectors are not something people should be really
Thank you for submitting this request for inclusion in Red Hat Enterprise Linux. We've carefully evaluated the request, but are unable to include it in a future release. To request that Red Hat re-consider this request, please re-open the bugzilla via appropriate support channels and provide additional business and/or technical details about its importance to you.