From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 31D6B386F80C for ; Thu, 21 May 2020 12:51:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 31D6B386F80C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mliska@suse.cz X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id CA7FFABCE; Thu, 21 May 2020 12:51:09 +0000 (UTC) Subject: Re: [stage1][PATCH] Lower VEC_COND_EXPR into internal functions. To: Richard Biener , GCC Patches , Richard Sandiford References: <366dfa22-58e7-e1df-62c3-cc98082a552c@suse.cz> <0e5c0fa7-9719-e3ab-b909-f1c0b052b283@suse.cz> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Message-ID: <1470b2b0-1cc3-f408-c292-a7c95325432d@suse.cz> Date: Thu, 21 May 2020 14:51:06 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 May 2020 12:51:09 -0000 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