Adding Segher to CC, he can help us.

Martin

On 5/21/20 2:51 PM, Martin Liška wrote:
Hi.

Back to this I noticed that ppc64le target build is broken due to:

g++  -fno-PIE -c   -g   -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE   -fno-exceptions 
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings 
-Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic 
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  
-DHAVE_CONFIG_H -I. -I. -I/home/marxin/Programming/gcc/gcc 
-I/home/marxin/Programming/gcc/gcc/. 
-I/home/marxin/Programming/gcc/gcc/../include 
-I/home/marxin/Programming/gcc/gcc/../libcpp/include  
-I/home/marxin/Programming/gcc/gcc/../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libdecnumber/dpd -I../libdecnumber 
-I/home/marxin/Programming/gcc/gcc/../libbacktrace   -o insn-emit.o -MT 
insn-emit.o -MMD -MP -MF ./.deps/insn-emit.TPo insn-emit.c
/home/marxin/Programming/gcc/gcc/config/rs6000/vector.md:357:11: error: 
vcondv4sfv4sf cannot FAIL
   357 |     FAIL;
       |           ^
/home/marxin/Programming/gcc/gcc/config/rs6000/vector.md:357:11: error: 
vcondv2dfv2df cannot FAIL
   357 |     FAIL;
       |           ^
/home/marxin/Programming/gcc/gcc/config/rs6000/vector.md:374:11: error: 
vcondv16qiv16qi cannot FAIL
   374 |     FAIL;
       |           ^
/home/marxin/Programming/gcc/gcc/config/rs6000/vector.md:374:11: error: 
vcondv8hiv8hi cannot FAIL
   374 |     FAIL;
       |           ^
...


which is caused by the 4 added optabs:

+DEF_INTERNAL_OPTAB_FN (VCOND, 0, vcond, vec_cond)
+DEF_INTERNAL_OPTAB_FN (VCONDU, 0, vcondu, vec_condu)
+DEF_INTERNAL_OPTAB_FN (VCONDEQ, 0, vcondeq, vec_condeq)
+DEF_INTERNAL_OPTAB_FN (VCOND_MASK, 0, vcond_mask, vec_cond_mask)

looking at the generator:

Breakpoint 6, gen_expand (info=0x7fffffffe160) at 
/home/marxin/Programming/gcc/gcc/genemit.c:516
516          if (find_optab (&p, XSTR (expand, 0)))
(gdb) bt
#0  emit_c_code (code=0x7fa0f0 "{\n  if (rs6000_emit_vector_cond_expr (operands[0], 
operands[1], operands[2],\n\t\t\t\t    operands[3], operands[4], operands[5]))\n    DONE;\n  else\n 
   FAIL;\n}", can_fail_p=false, name=0x7fa190 "vcondv4sfv4sf")
     at /home/marxin/Programming/gcc/gcc/genemit.c:306
#1  0x00000000004039b5 in gen_expand (info=0x7fffffffe160) at 
/home/marxin/Programming/gcc/gcc/genemit.c:522
#2  0x0000000000404912 in main (argc=4, argv=0x7fffffffe288) at 
/home/marxin/Programming/gcc/gcc/genemit.c:916

I get there due to:

B- │516               if (find_optab (&p, XSTR (expand, 0)))│
    │517                 {                                   │
    │518                   gcc_assert (p.op < NUM_OPTABS);   │
    │519                   if (nofail_optabs[p.op])          │
    │520                     can_fail_p = false;             │
    │521                 }                                   │


#define DEF_INTERNAL_OPTAB_FN(NAME, FLAGS, OPTAB, TYPE) \
   nofail_optabs[OPTAB##_optab] = true;
#include "internal-fn.def"

Any hint what's bad? Note that x86_64-linux-gnu is fine.
Do I miss a target hook?

Martin

Reply via email to