Bug 1243562 - [aarch64][gcc] ICE, storing a single long double in vector
Summary: [aarch64][gcc] ICE, storing a single long double in vector
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: gcc
Version: 7.1
Hardware: aarch64
OS: Linux
medium
medium
Target Milestone: rc
: 7.3
Assignee: Jakub Jelinek
QA Contact: qe-baseos-tools-bugs
URL:
Whiteboard:
Depends On:
Blocks: 1277314
TreeView+ depends on / blocked
 
Reported: 2015-07-15 19:19 UTC by David Abdurachmanov
Modified: 2016-02-29 19:23 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-02-29 19:23:24 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
GNU Compiler Collection 65491 0 None None None Never

Description David Abdurachmanov 2015-07-15 19:19:50 UTC
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.

Comment 1 David Abdurachmanov 2015-07-15 19:21:27 UTC
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.

Comment 5 John Feeney 2015-07-20 15:59:55 UTC
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.

Comment 7 Jakub Jelinek 2016-02-26 22:12:35 UTC
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.

Comment 8 Nick Clifton 2016-02-29 15:36:13 UTC
(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

Comment 9 Matt Newsome 2016-02-29 19:23:24 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.