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

            Bug ID: 64873
           Summary: jit testsuite failures on
                    powerpc64le-unknown-linux-gnu
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: jit
          Assignee: dmalcolm at gcc dot gnu.org
          Reporter: dmalcolm at gcc dot gnu.org
              Host: powerpc64le-unknown-linux-gnu
            Target: powerpc64le-unknown-linux-gnu
             Build: powerpc64le-unknown-linux-gnu

With r220259 (aka 5bb1df18a77ddc8bae7dd610128fec21b64a2ca0),
"make check-jit" fails some testcases with:

jit.sum:358:FAIL: test-accessing-union.c.exe killed: 14656 exp7 0 0 CHILDKILLED
SIGILL {illegal instruction}
jit.sum:857:FAIL: test-combination.c.exe killed: 16447 exp7 0 0 CHILDKILLED
SIGILL {illegal instruction}
jit.sum:1036:FAIL: test-dot-product.c.exe killed: 15939 exp8 0 0 CHILDKILLED
SIGILL {illegal instruction}
jit.sum:1781:FAIL: test-expressions.c.exe killed: 14878 exp7 0 0 CHILDKILLED
SIGILL {illegal instruction}
jit.sum:1842:FAIL: test-functions.c.exe killed: 16230 exp7 0 0 CHILDKILLED
SIGILL {illegal instruction}
jit.sum:2417:FAIL: test-nested-loops.c.exe killed: 14676 exp7 0 0 CHILDKILLED
SIGILL {illegal instruction}
jit.sum:2674:FAIL: test-threads.c.exe killed: 16692 exp7 0 0 CHILDKILLED SIGILL
{illegal instruction}

(I also see PR jit/64752)

Configured with:
   --enable-host-shared --enable-languages=jit,c++ --disable-bootstrap
--enable-checking=release --disable-multilib
Build compiler:
  gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
as:
GNU assembler version 2.23.52.0.1 (ppc64le-redhat-linux) using BFD version
version 2.23.52.0.1-26.bs4 20130226


Setting:
  gcc_jit_context_set_bool_option (
    ctxt,
    GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES,
    1);
to debug.

For test-accessing-union.c.exe, SIGILL happens here:
#0  0x00003fffb0100714 in test_union (i=42) from /tmp/libgccjit-lh83IX/fake.so
(gdb) disassemble
Dump of assembler code for function test_union:
   0x00003fffb0100710 <+0>:     rldicr  r9,r3,32,31
=> 0x00003fffb0100714 <+4>:     mtvsrd  vs1,r9
   0x00003fffb0100718 <+8>:     xscvspdpn vs1,vs1
   0x00003fffb010071c <+12>:    blr
   0x00003fffb0100720 <+16>:    .long 0x0
   0x00003fffb0100724 <+20>:    .long 0x0
   0x00003fffb0100728 <+24>:    .long 0x0
End of assembler dump.

The corresponding fake.s file was:
        .file   "fake.c"
        .machine power8
        .abiversion 2
        .section        ".toc","aw"
        .section        ".text"
.Ltext0:
        .cfi_sections   .debug_frame
        .align 2
        .p2align 4,,15
        .globl test_union
        .type   test_union, @function
test_union:
.LFB0:
        .cfi_startproc
.LVL0:
        sldi 9,3,32
        mtvsrd 1,9
        xscvspdpn 1,1
        blr
        .long 0
        .byte 0,0,0,0,0,0,0,0
        .cfi_endproc
.LFE0:
        .size   test_union,.-test_union
.Letext0:
        .section        .debug_info,"",@progbits
.Ldebug_info0:
  (...snip...)

test-expressions.c.exe dies in this jit-generated code:

Program received signal SIGILL, Illegal instruction.
(gdb) disassemble
Dump of assembler code for function test_cast_from_float_to_int:
   0x00003fffb00d1260 <+0>:     fctiwz  f1,f1
=> 0x00003fffb00d1264 <+4>:     mfvsrd  r3,vs1
   0x00003fffb00d1268 <+8>:     extsw   r3,r3
   0x00003fffb00d126c <+12>:    blr
   0x00003fffb00d1270 <+16>:    .long 0x0
   0x00003fffb00d1274 <+20>:    .long 0x0
   0x00003fffb00d1278 <+24>:    .long 0x0
End of assembler dump.

test-dot-product.c.exe dies in this ahead-of-time compiled
code in "verify_code":

   0x00000000100032bc <+292>:   stfd    f1,104(r31)
   0x00000000100032c0 <+296>:   lfd     f12,104(r31)
   0x00000000100032c4 <+300>:   lfd     f0,104(r31)
=> 0x00000000100032c8 <+304>:   mfvsrd  r4,vs12
   0x00000000100032cc <+308>:   fmr     f1,f0
   0x00000000100032d0 <+312>:   addis   r3,r2,-2
   0x00000000100032d4 <+316>:   addi    r3,r3,31384
   0x00000000100032d8 <+320>:   bl      0x10002168 <note+8>
   0x00000000100032dc <+324>:   lfd     f12,104(r31)
   0x00000000100032e0 <+328>:   addis   r9,r2,-2

Reply via email to