[Bug target/117584] PowerPC ABI for BitInt needs to be done
"mmatti at linux dot vnet.ibm.com via Gcc-bugs" <[email protected]>
| Newsgroups | gmane.comp.gcc.bugs |
|---|---|
| Message-ID | <[email protected]/bugzilla/> |
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117584
--- Comment #10 from Manjunath S Matti <mmatti at linux dot vnet.ibm.com> ---
Created attachment 65135
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=65135&action=edit
Final patch
I see a few test cases fail, due to lack of support of float16 on rs6000 port.
Expected UNSUPPORTED (effective-target gated, unrelated to this patch — PowerPC
has no _Float16 hardware/ABI support) for both LE and BE:
gcc.dg/dfp/bitint-7.c
gcc.dg/bitint-132.c
gcc.dg/torture/bitint-25.c (-O0, -O2)
gcc.dg/bitint-108.c (-m32 only) — no __int128 support on 32-bit PowerPC (passes
on -m64).
gcc.dg/torture/bitint-47.c, gcc.dg/torture/bitint-61.c (-m32 only, -O0/-O2) —
same int128-gating pattern.
But a few failures need looking into
gcc.dg/torture/bitint-32.c -m64 -O0 only (passes -O2)
gcc.dg/torture/bitint-33.c -m64 -O0 only (passes -O2)
gcc.dg/torture/bitint-34.c -m64 -O0 only (passes -O2)
gcc.dg/torture/bitint-35.c -m64 -O0 only (passes -O2)
gcc.dg/torture/bitint-36.c -m64 -O0 only (passes -O2)
gcc.dg/torture/bitint-37.c -m64 -O0 only (passes -O2)
gcc.dg/torture/bitint-93.c -m64 both -O0 and -O2
gcc.dg/torture/bitint-94.c -m64 both -O0 and -O2
I am debugging these issues, which points me to a code block in
gcc/gcc/gimple-lower-bitint.cc
=> tree src = build2 (MEM_REF, atype,
build_fold_addr_expr (unshare_expr (obj)), off);
g = gimple_build_call (fn, 3,
build_fold_addr_expr (unshare_expr (obj)),
src, build_int_cst (size_type_node,
obj_nelts * m_limb_size));