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));

Reply via email to