[Bug jit/64873] New: jit testsuite failures on powerpc64le-unknown-linux-gnu
dmalcolm at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jan 30 10:33:00 GMT 2015
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
More information about the Gcc-bugs
mailing list