Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1922599
Summary: | [armv7hl] Firefox 85.0 fails to build on rawhide with internal compiler error: in neon_output_shift_immediate, at config/arm/arm.c | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Martin Stransky <stransky> |
Component: | gcc | Assignee: | Jakub Jelinek <jakub> |
Status: | NEW --- | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 34 | CC: | aoliva, dmalcolm, erack, fweimer, gecko-bugs-nobody, jakub, jhorak, jwakely, kai-engert-fedora, law, mpolacek, msebor, nickc, pbrobinson, pjasicek, rhughes, rstrode, sandmann, sipoyare |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | Type: | Bug | |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 245418 |
Description
Martin Stransky
2021-01-30 14:11:41 UTC
Compiler is gcc-11.0.0-0.17.fc34.armv7hl This bug appears to have been reported against 'rawhide' during the Fedora 34 development cycle. Changing version to 34. Sorry, missed this. Is this still reproduceable on some src.rpm? I think koji now has the support to request a tarball of the buildroot of failed builds, but it needs to happen soon after the failure (we could find the /tmp/cc*.out in there). (In reply to Jakub Jelinek from comment #3) > Sorry, missed this. Is this still reproduceable on some src.rpm? I think > koji now has the support to request a tarball of the buildroot of failed > builds, but it needs to happen soon after the failure (we could find the > /tmp/cc*.out in there). I think so. I fired new builds for it - firefox-86.0.1-2. Thanks, got preprocessed source, reducing now. -mtune=generic-armv7-a -mfloat-abi=hard -mfpu=neon -O2 typedef __simd64_int16_t e; typedef __simd64_uint16_t f; typedef __simd128_int32_t g; typedef __simd128_float32_t h; typedef __simd128_uint32_t i; g j, p; g k(int l) { return __builtin_neon_vdup_nv4si(l); } i n(f l) { return (i)__builtin_neon_vmovluv4hi((e)l); } template <int, typename> struct q; template <int r, typename aa> q<r, aa> operator<(aa s, q<r, aa> t) { return q<r, aa>(s) < t; } template <typename ab, typename ac, int r> q<r, ab> ad(const q<r, ac> &); typedef q<4, int> ae; template <> class q<4, float> { public: q(h af) : ag(af) {} q(float) {} static q ah(void *ai) { float *l = (float *)ai; return __builtin_neon_vld1v4sf(l); } q operator+(q o) { h l = ag, m = o.ag; return __builtin_neon_vaddv4sf(l, m); } q operator*(q) { h l = ag, m; return __builtin_neon_vmulfv4sf(l, m); } h ag; }; template <> class q<4, unsigned short> { public: q(f af) : ag(af) {} static q ah(void *ai) { unsigned short *l = (unsigned short *)ai; return (f)__builtin_neon_vld1v4hi((__builtin_neon_hi *)l); } void aj() { f m = ag; __builtin_neon_vst1v4hi(0, (e)m); } f ag; }; template <> class q<4, int> { public: q(g af) : ag(af) {} q(int u) { ag = k(u); } static q ah(void *ai) { int *l = (int *)ai; return __builtin_neon_vld1v4si(l); } q operator&(q o) { g v = ag & o.ag; return v; } q operator|(q o) { g w = ag | o.ag; return w; } q operator^(q) { g x = ag ^ p; return x; } q operator>>(int ak) { return ag >> q(ak).ag; } q operator<(q) { g y, z = j < ag; y = (g)z; return y; } g ag; }; template <> ae ad(const q<4, unsigned short> &al) { return g(n(al.ag)); } template <> q<4, unsigned short> ad(const ae &al) { i l(i(al.ag)); return (f)__builtin_neon_vmovnv4si((g)l); } q<4, float> am(long long an) { q ao = q<4, unsigned short>::ah(&an); ae ak = ad<int>(ao), ap = ak & 8000, aq = ak ^ ap, ar = 55 < aq, as(aq); q at = as & ar; ae au = ap | at; return q<4, float>::ah(&au); } q<4, unsigned short> av(q<4, float> aw) { ae ak = ae::ah(&aw), ap = ak & 80000000, aq = ap, ax = 5, as = aq >> 3, ay = 6; q az = ax & as; ae au = ay | az; return ad<unsigned short>(au); } struct ba { typedef int bb; static q<4, float> bc(int s) { return am(s); } }; q<4, float> bd(q<4, float> s) { return s * 0; } template <typename be> void bf(void *bg, void *al, int bh, int bi) { int bj; auto bk(static_cast<typename be::bb *>(al) + bh), d = static_cast<typename be::bb *>(bg), bl = be::bc(static_cast<typename be::bb *>(al)[0]), bm = be::bc(0), c = bm; for (; bi;) { auto a = c, bn = be::bc(static_cast<typename be::bb *>(al)[1]), bo = be::bc(1); q bp = bn; q bq = bp; auto b = bq + bo; bl = be::bc(static_cast<typename be::bb *>(al)[2]); bm = be::bc(bk[2]); c = bl + bm; q br = a + b; auto bs = br; q bt = bd(bs); av(bt).aj(); d[0] = bj; } } int bu; void bv() { bf<ba>(0, 0, 0, bu); } |