public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/65240] New: [5 Regression] ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu
@ 2015-02-27 17:20 doko at gcc dot gnu.org
  2015-03-02  8:45 ` [Bug target/65240] " rguenth at gcc dot gnu.org
                   ` (18 more replies)
  0 siblings, 19 replies; 20+ messages in thread
From: doko at gcc dot gnu.org @ 2015-02-27 17:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65240

            Bug ID: 65240
           Summary: [5 Regression] ICE (insn does not satisfy its
                    constraints) on powerpc64le-linux-gnu
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: doko at gcc dot gnu.org

trunk r221042

$ g++ -c -g -O3 -ffast-math modules_mod.ii 
modules_mod.ii: In member function 'uint32_t D::m_fn3()':
modules_mod.ii:69:1: error: insn does not satisfy its constraints:
 }
 ^
(insn 279 463 432 2 (set (reg:DF 98 21 [360])
        (mem/u/c:DF (lo_sum:DI (reg:DI 10 10)
                (unspec:DI [
                        (symbol_ref/u:DI ("*.LC7") [flags 0x82])
                        (reg:DI 2 2)
                    ] UNSPEC_TOCREL)) [1  S8 A64])) modules_mod.ii:64 499
{*movdf_hardfloat64}
     (expr_list:REG_EQUIV (const_double:DF -5.0e-1 [-0x0.8p+0])
        (nil)))
modules_mod.ii:69:1: internal compiler error: in extract_constrain_insn, at
recog.c:2246
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.

$ cat modules_mod.ii
typedef int uint32_t;
extern "C" double atan(double);
template <typename T, typename U> T lerp(T p1, T p2, U p3) {
  return p1 + (p2 - p1) * p3;
}

template <class> class audio_module {
public:
  float *ins[];
};

struct A {
  double w1;
  double w2;
  double process___trans_tmp_7;
  double process___trans_tmp_6;
  void m_fn1(double p1) {
    double &a = w1;
    if (process___trans_tmp_6 < process___trans_tmp_7)
      a = 0.0;
    double b = p1 - w1 - w2;
    w1 = b;
  }
};
class B {
public:
  float &operator[](int) {}
};
struct C {
  B data;
  int get_interp_1616_ppos;
  int get_interp_1616_pppos;
  float m_fn2(int p1) {
    float c(p1);
    return lerp(data[get_interp_1616_ppos], data[get_interp_1616_pppos], c);
  }
};
struct rotary_speaker_metadata;
class D : audio_module<rotary_speaker_metadata> {
  uint32_t phase_l, phase_h, dphase_h;
  C delay;
  A crossover1r, crossover2l, damper1l, damper1r;
  uint32_t m_fn3();
};
double d, e, f, g, h;
int j;
float k;
uint32_t D::m_fn3() {
  int l;
  for (int i;; i++) {
    double m = atan(ins[1][i]);
    int n = phase_l, o(phase_h), p = l;
    double v = n / 32768.0;
    j = 8 + phase_l / 32768.0;
    l = 8 + 8 * v - 0.3849;
    float q = delay.m_fn2(o) - g * k * delay.m_fn2(o),
          r = g * delay.m_fn2(o) + k * delay.m_fn2(p);
    damper1l.m_fn1(q);
    f = lerp(0.5, phase_h / 65536.0, h);
    float s = f;
    damper1r.m_fn1(r);
    e = lerp(0.5, j / 65536.0, h);
    d = m * e;
    float t = d;
    crossover2l.m_fn1(s);
    crossover1r.m_fn1(t);
    phase_l = phase_h = dphase_h;
  }
}


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2015-04-03 23:17 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-27 17:20 [Bug target/65240] New: [5 Regression] ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu doko at gcc dot gnu.org
2015-03-02  8:45 ` [Bug target/65240] " rguenth at gcc dot gnu.org
2015-03-02 11:36 ` mpolacek at gcc dot gnu.org
2015-03-02 11:40 ` trippels at gcc dot gnu.org
2015-03-02 12:22 ` doko at gcc dot gnu.org
2015-03-02 12:23 ` doko at gcc dot gnu.org
2015-03-02 12:25 ` doko at gcc dot gnu.org
2015-03-02 12:49 ` trippels at gcc dot gnu.org
2015-03-03 20:42 ` msebor at gcc dot gnu.org
2015-03-03 22:15 ` dje at gcc dot gnu.org
2015-03-03 22:27 ` meissner at gcc dot gnu.org
2015-03-03 22:31 ` msebor at gcc dot gnu.org
2015-03-03 22:49 ` law at redhat dot com
2015-03-04 18:20 ` meissner at gcc dot gnu.org
2015-03-04 21:22 ` meissner at gcc dot gnu.org
2015-03-04 21:24 ` meissner at gcc dot gnu.org
2015-03-16 19:31 ` meissner at gcc dot gnu.org
2015-03-19 23:33 ` meissner at gcc dot gnu.org
2015-03-19 23:37 ` meissner at gcc dot gnu.org
2015-04-03 23:17 ` amodra at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).