X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=lnvPIMjH+zW45Lhd WJMLHuQvqcsI8xshZTVGSK/fCR067Tdpe2qFqGPI4UgMwx3Zqq1zVL7H5w3FoVE/ Fr6CqjTV+7IReAbzZ1/OIEetiYX1d7+CKKErWXcA2k1h51np/Dj6CaodmzlcDP5+ CD4tlaRGCyKByCgbrpfFjlVDdpM= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; s=default; bh=X5DOmlgJhiSPCS4YkW3Mm0 YCtLI=; b=QkCYQ2MA0vqUGSkdHDjFaYjT+O3LRzwFf8StvabV3N6Duv8BA6ie5S UiPoNSmErtisiAdGVuqpGzdx44+NA8BDphyyZ+eC1nkBANBsToC28++IEjY1iROC cGF0Ur7Sk/CQb+eGcsEVoZAer9jnRL72p8e2D0MNrDbNOGm/dNyI0= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-7.8 required=5.0 tests=AWL,BAYES_00,URI_HEX autolearn=no version=3.3.1 spammy=msg, PLEASE, zip, BUG X-HELO: m0.truegem.net Subject: Re: Clang collapses on template with 64 parameters To: cygwin AT cygwin DOT com References: <279042c8-d6e5-ab4a-88f1-f8cbda8e18c7 AT agner DOT org> From: Mark Geisert Message-ID: Date: Mon, 12 Aug 2019 02:22:48 -0700 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 MIME-Version: 1.0 In-Reply-To: <279042c8-d6e5-ab4a-88f1-f8cbda8e18c7@agner.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Note-from-DJ: This may be spam Agner Fog wrote: > Here's another bug report. > > Cygwin Clang fails when compiling a complicated program with big templates. The > same program compiles OK on Linux clang. > > I have not made a minimal test case because smaller cases compile ok. > > The test case is too big for attaching to a mailing list, so I have made it > available at: > > https://www.agner.org/rapporter/cygwin_clang_template_bug.zip > > Command line: > > clang  -m64 -std=c++17 -O2  -mfma -mavx512bw -mavx512dq -mavx512vl testbench2.cpp > > The compiler issues a long message: > > fatal error: error in backend: Cannot select: 0x6019f23c0: ch = > store)(alias.scope=<0x601890348>,<0x6018c6ab8>)> > 0x601a239c8, >       0x6019f2018, FrameIndex:i64<7>, undef:i64 >   0x6019f2018: v64i8,ch = VPSHUFBZrm 0x6019dadb8, > 0x6019db438, TargetConstant:i8<1>, Register:i64 %noreg, TargetConstant:i32<0>, > Register:i32 %noreg, 0x601926528 >     0x6019dadb8: v64i8 = bitcast 0x6019f1c08 >       0x6019f1c08: v8i64 = VPBROADCASTQZr 0x6019db368 >         0x6019db368: v2i64 = extract_subvector 0x6019f1c08, Constant:i64<0> >           0x6019f1c08: v8i64 = VPBROADCASTQZr 0x6019db368 >             0x6019db368: v2i64 = extract_subvector 0x6019f1c08, Constant:i64<0> >               0x6019f1c08: v8i64 = VPBROADCASTQZr 0x6019db368 >                 0x6019db368: v2i64 = extract_subvector 0x6019f1c08, > Constant:i64<0> >                   0x6019f1c08: v8i64 = VPBROADCASTQZr 0x6019db368 > >                   0x601a23758: i64 = Constant<0> >               0x601a23758: i64 = Constant<0> >           0x601a23758: i64 = Constant<0> >     0x6019db438: i64 = X86ISD::Wrapper TargetConstantPool:i64<<64 x i8> i8 1, i8 2, i8 -128, i8 4, i8 5, i8 6, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128>> 0 >       0x6019dbcc0: i64 = TargetConstantPool<<64 x i8> -128, i8 4, i8 5, i8 6, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 > -128, i8 -128, i8 -128, i8 -128, i8 -128, i8 -128>> 0 >     0x6019db848: i8 = TargetConstant<1> >     0x6019f1a68: i64 = Register %noreg >     0x6019f20e8: i32 = TargetConstant<0> >     0x601a23620: i32 = Register %noreg >   0x6019dae20: i64 = FrameIndex<7> >   0x6019f2288: i64 = undef > In function: main > clang-5.0: error: clang frontend command failed with exit code 70 (use -v to see > invocation) > clang version 5.0.1 (tags/RELEASE_501/final) > Target: x86_64-unknown-windows-cygnus > Thread model: posix > InstalledDir: /usr/bin > clang-5.0: note: diagnostic msg: PLEASE submit a bug report to and include the > crash backtrace, preprocessed source, and associated run script. > clang-5.0: note: diagnostic msg: > ******************** > > PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: > Preprocessed source(s) and associated run script(s) are located at: > clang-5.0: note: diagnostic msg: /tmp/testbench2-31c6c0.cpp > clang-5.0: note: diagnostic msg: /tmp/testbench2-31c6c0.sh > clang-5.0: note: diagnostic msg: > > ******************** > > The diagnostic files are included in the zip as diagnostic* Just like your previous Clang bug report, this one, as detailed and complete as any developer could want :-), should also go to the Clang bugtracker at https://bugs.llvm.org. ..mark -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple