https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71779
Bug ID: 71779
Summary: isl miscompiled with -mabi=ilp32
Product: gcc
Version: 6.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: [email protected]
Target Milestone: ---
Target: aarch64-*-*
Created attachment 38840
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38840&action=edit
Test case
$ gcc -mabi=ilp32 -O2 -S isl_input.i
.L926:
ldr x20, [x29, 128] // tmp466, %sfp
ldr w0, [x19] //, s_2(D)->ctx
stp w4, w3, [x29, 120] // tmp529, tmp526, %sfp
orr x1, x20, x21, lsl 32 //, tmp466, obj1$v,
bl to_union //
The first insn loads 64 bits from [x29,128], but this contains the address of
isl_obj_map_vtable, which is 32 bits. The orr insn is assuming the 32 top bits
of x20 are zero, but they contain the unitialized bits from [x29,128].